/* Decoration has its own colors. It never changes primary actions or program badges. */
body[data-season] { --season-motif:url("./seasons/summer-rays.13c6db5b5f9e.svg"); }
body[data-season="winter"] { --season-motif:url("./seasons/snow-crystal.b210c883282f.svg"); }
body[data-season="spring"] { --season-motif:url("./seasons/spring-sprig.45e673524c93.svg"); }
body[data-season="autumn"] { --season-motif:url("./seasons/autumn-leaf.966068a326b0.svg"); }
body[data-season] .camp-hero-content>div>a:first-child { box-shadow:0 10px 26px #25473224; }
body[data-season] .camp-header-nav { box-shadow:0 8px 28px #25473212,inset 0 1px #fffc; }
.season-weather { position:fixed; inset:0; width:100%; height:100%; z-index:45; pointer-events:none; }
.season-weather--page { opacity:1; }
.season-weather[hidden] { display:none; }
.season-weather--hero { position:absolute; z-index:11; mask-image:linear-gradient(180deg,transparent,#000 12%,#000 80%,transparent); }
.season-motion-toggle[hidden] { display:none; }
.season-motion-toggle { position:fixed; right:14px; bottom:14px; z-index:90; width:38px; height:38px; display:grid; place-items:center; border:1px solid #b5c0ad; border-radius:50%; background:#fffdf2ed; color:var(--brand-green); box-shadow:0 4px 14px #193b1e12; }
.season-motion-toggle svg { width:15px; height:15px; }
body:has(.season-preview) .season-motion-toggle { bottom:76px; }
.season-ornament { position:absolute; z-index:3; right:10px; bottom:10px; width:64px; height:64px; pointer-events:none; background:var(--season-motif) center/contain no-repeat; opacity:.2; transition:opacity .7s,transform .9s; }
.season-surface:is(:hover,:focus-within)>.season-ornament { opacity:.55; transform:rotate(-9deg) translateY(-3px); }
.season-title-mark { position:absolute; right:0; top:0; width:clamp(46px,6vw,78px); height:clamp(46px,6vw,78px); background:var(--season-motif) center/contain no-repeat; pointer-events:none; opacity:.5; transform:rotate(10deg); }
.season-heading { position:relative; padding-right:clamp(58px,7vw,90px); }
/* Frost grows into the picture corners; copy and controls remain clear. */
body[data-season="winter"] .season-surface>.season-ornament {
 inset:0; width:auto; height:auto; border-radius:inherit; opacity:.65; transform:none;
 background:url("./seasons/frost-corner.18f059b6e826.svg") top right/130px 90px no-repeat,linear-gradient(180deg,#f4fcffba,transparent 18px);
 box-shadow:inset 0 2px 0 #f3fcff,inset 0 0 0 1px #c7e0e750;
 transition:background-size 1.6s ease,box-shadow 1.6s ease,opacity 1.6s ease;
}
body[data-season="winter"] .season-surface:is(:hover,:focus-within)>.season-ornament {
 opacity:.85; background-size:200px 135px,auto;
 box-shadow:inset 0 3px 0 #fff,inset 0 0 22px #d6eff360,inset 0 0 0 1px #b7d7e380;
}
body[data-season="winter"] .home-shift>.season-ornament { bottom:auto; height:clamp(170px,15vw,220px); border-radius:18px 18px 0 0; }
body[data-season="spring"] .season-surface>.season-ornament { width:72px; height:84px; opacity:.25; transform:rotate(-15deg); }
body[data-season="autumn"] .season-surface>.season-ornament { width:64px; height:72px; transform:rotate(22deg); }
body[data-season="summer"] .season-surface:is(:hover,:focus-within)>.season-ornament { transform:rotate(24deg); }
body[data-season] .camp-paper-map .season-ornament { width:105px; height:105px; opacity:.5; }
body[data-season="winter"] .camp-paper-map .season-ornament { width:auto; height:auto; background-size:300px 205px,auto; }
body[data-season="winter"] .camp-paper-map:is(:hover,:focus-within) .season-ornament { background-size:380px 260px,auto; }
body[data-season="winter"] .camp-map-location-label { background:#f8fcf0; border:1px solid #afc9c7; box-shadow:0 0 0 5px #f6fffb55,0 8px 22px #29473b1c; }
body[data-season] .home-shift-link { color:var(--brand-green); }
body[data-season] .camp-parent-question summary::after { color:var(--brand-green); }
@media(max-width:600px) {
 .season-heading { padding-right:54px; }
 .season-title-mark { width:44px; height:44px; opacity:.4; }
 .season-ornament { width:48px; height:48px; opacity:.16; }
 body[data-season="winter"] .season-surface>.season-ornament { background-size:92px 65px,auto; }
 .season-motion-toggle { width:34px; height:34px; right:10px; bottom:10px; }
}
@media(prefers-reduced-motion:reduce) {
 .season-weather,.season-motion-toggle { display:none!important; }
 .season-ornament { transition:none!important; }
}
@media print { .season-weather,.season-ornament,.season-title-mark,.season-motion-toggle { display:none!important; } }

/* The landscape moves behind stable copy and the paper edge. */
body.camp-native-home #top .has-season-atmosphere .camp-hero-scene {
 transform:translate3d(var(--hero-drift-x,0px),var(--hero-drift-y,0px),0) scale(1.06);
 transform-origin:center; pointer-events:none; will-change:transform; transition:none;
}
body[data-season="winter"] .season-weather--hero { mix-blend-mode:screen; }
/* Seasonal material rests on a real edge; it is never a watermark over copy. */
.season-edge { position:absolute; z-index:7; pointer-events:none; user-select:none; }
body[data-season] .season-edge-raised { overflow:visible; }
body[data-season] .home-shift-image { border-radius:17px 17px 0 0; }
body[data-season] .home-shift-image img { display:block; }
body[data-season="winter"] .season-edge {
 inset:0 0 auto; height:34px;
 background:url("./seasons/snow-shelf.1a237aa7d509.svg") center/100% 100% no-repeat;
 filter:drop-shadow(0 2px 1px #7196a22b);
}
body[data-season="winter"] .season-edge-raised>.season-edge { top:-19px; }
body[data-season="winter"] .season-edge-host:nth-child(even)>.season-edge { transform:scaleX(-1); }
body[data-season="winter"] .season-edge-photo>.season-edge { left:8px; right:auto; width:40%; height:23px; top:-17px; background-image:url("./seasons/snow-pocket.ce559f467267.svg"); }
body[data-season="winter"] .season-edge-photo:nth-child(even)>.season-edge { left:auto; right:9px; width:35%; }
body[data-season="winter"] .camp-paper-map>.season-edge { top:0; height:44px; }
body[data-season="winter"] .camp-hero-content>div>a>.season-edge { height:25px; top:-15px; left:8px; right:8px; }
body[data-season="winter"] .season-edge-photo { box-shadow:0 12px 22px #47667519,inset 0 1px #fff; }
body[data-season="winter"] .camp-parent-question { border-top-color:#bdd6de; box-shadow:inset 0 1px #ffffffa3; }
body[data-season="winter"] .prep-section>.season-edge { width:min(34%,260px); left:auto; right:0; top:-12px; background-image:url("./seasons/snow-pocket.ce559f467267.svg"); }
body[data-season] .prep-section:nth-child(even)>.season-edge { display:none; }
body[data-season="spring"] { --season-edge-image:url("./seasons/spring-edge.b431d3413b58.svg"); }
body[data-season="summer"] { --season-edge-image:url("./seasons/summer-edge.f47e979659ff.svg"); }
body[data-season="autumn"] { --season-edge-image:url("./seasons/autumn-edge.79d81b13fb7a.svg"); }
body[data-season]:not([data-season="winter"]) .season-edge {
 width:92px; height:52px; top:0; right:0;
 background:var(--season-edge-image) center/contain no-repeat;
 filter:drop-shadow(0 2px 1px #54492a20); opacity:.9;
}
body[data-season]:not([data-season="winter"]) .season-edge-raised>.season-edge { top:-26px; right:-6px; }
body[data-season]:not([data-season="winter"]) .season-edge-host>.season-ornament { display:none; }
body[data-season]:not([data-season="winter"]) .season-edge-photo>.season-edge { width:64px; height:36px; top:-22px; right:1px; }
/* A few attached accents per row leave the photographs uncluttered. */
body[data-season]:not([data-season="winter"]) :is(.home-shift,.season-edge-photo):nth-child(even)>.season-edge { display:none; }
body[data-season]:not([data-season="winter"]) .camp-hero-content>div>a>.season-edge { width:54px; height:30px; top:-18px; right:-3px; }
body[data-season]:not([data-season="winter"]) .camp-paper-map>.season-edge { width:110px; height:62px; top:0; right:20px; }
body[data-season="summer"] .camp-hero-content>div>a:first-child { box-shadow:0 10px 28px #c99b3c32,inset 0 1px #fff6; }
@media(max-width:600px) {
 body[data-season="winter"] .season-edge { height:28px; }
 body[data-season="winter"] .season-edge-raised>.season-edge { top:-16px; }
 body[data-season]:not([data-season="winter"]) .season-edge { width:70px; height:40px; }
 body[data-season]:not([data-season="winter"]) .season-edge-raised>.season-edge { top:-21px; right:0; }
 body[data-season]:not([data-season="winter"]) .season-edge-photo>.season-edge { width:55px; height:30px; top:-17px; }
}
@media print { .season-edge { display:none!important; } }
/* Introductory copy needs a clear edge on every interior page. */
body[data-season]:not([data-season="winter"]) .camp-child-hero-shell>.season-edge {
 top:-22px; right:10px; width:70px; height:36px;
}
@media(prefers-reduced-motion:reduce) {
 body.camp-native-home #top .has-season-atmosphere .camp-hero-scene { transform:none; will-change:auto; }
}

/* Parent intro shares pointer feedback, with a quiet moving illustration and stable text. */
.prep-public-hero.has-season-atmosphere { position:relative; isolation:isolate; }
.prep-public-hero.has-season-atmosphere > img {
 transform:translate3d(calc(var(--hero-drift-x,0px) * .45),calc(var(--hero-drift-y,0px) * .45),0);
 will-change:transform;
}
.prep-public-hero .season-weather--hero { overflow:hidden; }
@media(prefers-reduced-motion:reduce) {
 .prep-public-hero.has-season-atmosphere > img { transform:none; will-change:auto; }
}
