/* Holiday skin. Loaded only while season.active (src/_data/season.js).
   Decoration only: snow over the hero, a light string under the nav,
   Santa hats on the troop, snow on the peaks. Every animation is gated on
   html.motion-enabled, so reduced-motion visitors get a still scene. */

:root{--sw-pine:#39ff9e;--sw-snow:#f5ecff}

/* ---------- Snow-capped mountains (paths live in synth-art.njk) ---------- */
.season-holiday .sw-snowcap{display:inline;fill:var(--sw-snow);opacity:.92;filter:drop-shadow(0 0 6px rgba(255,190,245,.45))}
.season-holiday .sw-snowcap-back{opacity:.5;filter:none}

/* ---------- Light string hanging under the nav ---------- */
.season-holiday .sw-nav::before{
  content:'';position:absolute;left:0;right:0;bottom:-15px;height:18px;pointer-events:none;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='18'%3E%3Cg fill='%23fff'%3E%3Cellipse cx='36' cy='10.5' rx='2.6' ry='3.6' fill='%232de2ff'/%3E%3Cellipse cx='84' cy='10.5' rx='2.6' ry='3.6' fill='%2339ff9e'/%3E%3C/g%3E%3C/svg%3E") 0 0/96px 18px repeat-x,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='18'%3E%3Cpath d='M0 3Q24 10 48 3T96 3' fill='none' stroke='%233b2a63' stroke-width='1.2'/%3E%3Cg fill='%236b5a8a'%3E%3Crect x='10.5' y='5' width='3' height='2'/%3E%3Crect x='34.5' y='5' width='3' height='2'/%3E%3Crect x='58.5' y='5' width='3' height='2'/%3E%3Crect x='82.5' y='5' width='3' height='2'/%3E%3C/g%3E%3Cellipse cx='12' cy='10.5' rx='2.6' ry='3.6' fill='%23ff2ea6'/%3E%3Cellipse cx='36' cy='10.5' rx='2.6' ry='3.6' fill='%232de2ff' opacity='.28'/%3E%3Cellipse cx='60' cy='10.5' rx='2.6' ry='3.6' fill='%23ffd36b'/%3E%3Cellipse cx='84' cy='10.5' rx='2.6' ry='3.6' fill='%2339ff9e' opacity='.28'/%3E%3C/svg%3E") 0 0/96px 18px repeat-x;
  filter:drop-shadow(0 0 3px rgba(255,255,255,.55)) drop-shadow(0 0 8px rgba(255,62,165,.4));
}
html.motion-enabled .season-holiday .sw-nav::before{animation:swBlink 1.8s steps(1) infinite}
@keyframes swBlink{50%{background-position:0 40px,0 0}}

/* ---------- Snow over the homepage hero ---------- */
.sw-snow{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,#000 55%,transparent 88%);mask-image:linear-gradient(180deg,#000 55%,transparent 88%)}
.sw-snow::before,.sw-snow::after{content:'';position:absolute;left:0;right:0;top:-800px;bottom:0}
.sw-snow::before{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cg fill='%23fff'%3E%3Ccircle cx='0' cy='368' r='1.0' opacity='0.42'/%3E%3Ccircle cx='292' cy='213' r='1.1' opacity='0.61'/%3E%3Ccircle cx='302' cy='217' r='1.3' opacity='0.57'/%3E%3Ccircle cx='327' cy='97' r='1.1' opacity='0.60'/%3E%3Ccircle cx='279' cy='22' r='1.3' opacity='0.51'/%3E%3Ccircle cx='369' cy='323' r='0.9' opacity='0.53'/%3E%3Ccircle cx='369' cy='275' r='1.3' opacity='0.55'/%3E%3Ccircle cx='365' cy='363' r='1.1' opacity='0.47'/%3E%3Ccircle cx='335' cy='133' r='0.9' opacity='0.45'/%3E%3Ccircle cx='171' cy='118' r='1.5' opacity='0.55'/%3E%3Ccircle cx='292' cy='351' r='0.8' opacity='0.45'/%3E%3Ccircle cx='224' cy='204' r='1.1' opacity='0.42'/%3E%3Ccircle cx='364' cy='22' r='1.1' opacity='0.47'/%3E%3Ccircle cx='266' cy='370' r='1.2' opacity='0.41'/%3E%3Ccircle cx='162' cy='113' r='1.1' opacity='0.50'/%3E%3Ccircle cx='133' cy='213' r='1.3' opacity='0.43'/%3E%3Ccircle cx='363' cy='183' r='1.5' opacity='0.57'/%3E%3Ccircle cx='254' cy='206' r='1.2' opacity='0.59'/%3E%3Ccircle cx='376' cy='159' r='1.4' opacity='0.44'/%3E%3Ccircle cx='235' cy='140' r='1.1' opacity='0.49'/%3E%3Ccircle cx='318' cy='351' r='0.9' opacity='0.64'/%3E%3Ccircle cx='31' cy='163' r='0.9' opacity='0.38'/%3E%3Ccircle cx='398' cy='88' r='1.3' opacity='0.40'/%3E%3Ccircle cx='183' cy='237' r='0.9' opacity='0.67'/%3E%3Ccircle cx='354' cy='356' r='1.5' opacity='0.67'/%3E%3Ccircle cx='304' cy='110' r='0.8' opacity='0.44'/%3E%3Ccircle cx='30' cy='1' r='1.3' opacity='0.43'/%3E%3Ccircle cx='296' cy='196' r='1.4' opacity='0.43'/%3E%3Ccircle cx='353' cy='94' r='1.1' opacity='0.66'/%3E%3Ccircle cx='47' cy='196' r='0.8' opacity='0.67'/%3E%3Ccircle cx='255' cy='369' r='0.8' opacity='0.67'/%3E%3Ccircle cx='75' cy='387' r='1.3' opacity='0.59'/%3E%3Ccircle cx='107' cy='89' r='1.0' opacity='0.55'/%3E%3Ccircle cx='21' cy='308' r='1.4' opacity='0.60'/%3E%3C/g%3E%3C/svg%3E") 0 0/400px 400px}
.sw-snow::after{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cg fill='%23fff'%3E%3Ccircle cx='199' cy='13' r='1.9' opacity='0.87'/%3E%3Ccircle cx='52' cy='275' r='2.7' opacity='0.56'/%3E%3Ccircle cx='353' cy='345' r='2.8' opacity='0.88'/%3E%3Ccircle cx='306' cy='168' r='2.0' opacity='0.80'/%3E%3Ccircle cx='353' cy='159' r='2.0' opacity='0.69'/%3E%3Ccircle cx='355' cy='224' r='2.2' opacity='0.77'/%3E%3Ccircle cx='294' cy='134' r='2.5' opacity='0.70'/%3E%3Ccircle cx='79' cy='125' r='2.8' opacity='0.90'/%3E%3Ccircle cx='253' cy='349' r='2.7' opacity='0.62'/%3E%3Ccircle cx='258' cy='54' r='2.3' opacity='0.75'/%3E%3Ccircle cx='309' cy='378' r='2.3' opacity='0.62'/%3E%3Ccircle cx='179' cy='66' r='2.5' opacity='0.73'/%3E%3Ccircle cx='225' cy='203' r='2.6' opacity='0.68'/%3E%3Ccircle cx='300' cy='10' r='2.1' opacity='0.74'/%3E%3C/g%3E%3C/svg%3E") 120px 60px/400px 400px;filter:blur(.4px)}
html.motion-enabled .sw-snow::before{animation:swSnow 38s linear infinite}
html.motion-enabled .sw-snow::after{animation:swSnow 22s linear infinite}
@keyframes swSnow{to{transform:translate3d(0,800px,0)}}

/* ---------- Hero script line ---------- */
.synth-page .sw-hero .sw-season-script{display:block;margin:0 auto 6px!important;font-size:clamp(34px,3.4vw,50px);color:#eafff4;
  text-shadow:0 0 2px #fff,0 0 8px var(--sw-pine),0 0 20px #12d47a,0 0 40px rgba(57,255,158,.55)}

/* ---------- Santa hats on the troop (sprite-pixel coordinates) ---------- */
.season-holiday :is(.sw-walker,.sw-bot[data-bot=chip],.sw-bot[data-bot=atlas],.sw-bot[data-bot=lanky],.sw-bot[data-bot=rollo])::before{
  content:'';position:absolute;z-index:1;
  left:calc(var(--hx)*1px*var(--px));top:calc(var(--hy)*1px*var(--px));
  width:calc(11px*var(--px));height:calc(8px*var(--px));image-rendering:pixelated;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 8' shape-rendering='crispEdges'%3E%3Cpath fill='%23ff2e63' d='M6 1h2v1H6zM5 2h4v1H5zM4 3h5v1H4zM3 4h7v1H3zM2 5h8v1H2z'/%3E%3Cpath fill='%23c0124f' d='M5 2h1v1H5zM4 3h1v1H4zM3 4h1v1H3zM2 5h2v1H2z'/%3E%3Cpath fill='%23fff4fb' d='M8 0h2v2H8zM1 6h9v2H1z'/%3E%3Cpath fill='%23d9c8ff' d='M1 7h9v1H1z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;
  filter:drop-shadow(0 0 4px rgba(255,46,99,.55));
}
.season-holiday .sw-walker{--hx:9;--hy:-3}
.season-holiday .sw-bot[data-bot=chip]{--hx:14;--hy:9}
.season-holiday .sw-bot[data-bot=atlas]{--hx:15;--hy:6}
.season-holiday .sw-bot[data-bot=lanky]{--hx:14;--hy:-4}
.season-holiday .sw-bot[data-bot=rollo]{--hx:16;--hy:11}

/* ======================================================================
   Top to bottom: section decor. Hooks are plain classes already on the
   page; the gift tags and copy swaps come from season.js.
   ====================================================================== */

/* Snow on interior heroes and the finale (layers rendered by heroScene and
   index.njk, hidden in synth.css until this sheet loads). */
.season-holiday .sw-snow{display:block}
.season-holiday .sw-finale .sw-snow{-webkit-mask-image:linear-gradient(180deg,#000 40%,transparent 80%);mask-image:linear-gradient(180deg,#000 40%,transparent 80%)}

/* Hero chip: the gift-guide link, in pine and candy red. */
.sw-now-holiday{border-color:rgba(57,255,158,.45);box-shadow:0 0 22px rgba(57,255,158,.18)}
.sw-now-holiday .sw-now-label{color:var(--sw-pine)}

/* Section dividers become candy-cane ribbons. */
.season-holiday .sw-section::before{height:3px;opacity:.55;border-radius:3px;
  background:repeating-linear-gradient(90deg,#ff2e63 0 12px,#fff4fb 12px 24px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent);mask-image:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent)}

/* Ticker separators become ornaments, cycling through the light colors. */
.season-holiday .sw-ticker li::after{width:12px;height:12px;border-radius:50%;transform:none;
  background:radial-gradient(circle at 35% 30%,#fff 0 14%,transparent 15%),var(--orn,#ff2e63);
  box-shadow:0 0 12px var(--orn,#ff2e63),inset 0 -3px 4px rgba(0,0,0,.25)}
.season-holiday .sw-ticker li:nth-child(5n+2){--orn:var(--sw-cyan)}
.season-holiday .sw-ticker li:nth-child(5n+3){--orn:var(--sw-gold)}
.season-holiday .sw-ticker li:nth-child(5n+4){--orn:var(--sw-pine)}
.season-holiday .sw-ticker li:nth-child(5n+5){--orn:var(--sw-magenta)}

/* Gift tags: the little hang tag on tool cards and ladder rungs. */
.sw-gift-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border-radius:3px 999px 999px 3px;
  font:700 9.5px/1.2 var(--font-tech);letter-spacing:.14em;text-transform:uppercase;color:#fff;
  background:linear-gradient(135deg,#ff2e63,#c0124f);box-shadow:0 0 14px rgba(255,46,99,.4)}
.sw-gift-tag::before{content:'';width:5px;height:5px;border-radius:50%;background:#fff4fb;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
.sw-track-kicker .sw-gift-tag{display:flex;width:fit-content;margin:0 0 8px}
.sw-rung-tag{align-self:flex-start}
.season-holiday .sw-rung.is-featured .sw-rung-tag{background:linear-gradient(135deg,#1fd67f,#0b9a5a);box-shadow:0 0 14px rgba(57,255,158,.45)}

/* Tool cards: an ornament hanging off the top-right corner. */
.season-holiday .sw-track{position:relative}
.season-holiday .sw-track::after{content:'';position:absolute;top:0;right:28px;width:22px;height:58px;pointer-events:none;
  background:
    radial-gradient(circle at 40% 36%,rgba(255,255,255,.85) 0 3px,transparent 4px) 0 36px/22px 22px no-repeat,
    radial-gradient(circle,var(--accent,#ff2e63) 0 10px,transparent 11px) 0 36px/22px 22px no-repeat,
    linear-gradient(#d9c8ff,#d9c8ff) 8px 31px/6px 5px no-repeat,
    linear-gradient(rgba(217,200,255,.55),rgba(217,200,255,.55)) 10.5px 0/1px 31px no-repeat;
  filter:drop-shadow(0 0 8px var(--accent,#ff2e63));transform-origin:50% 0}
html.motion-enabled .season-holiday .sw-track::after{animation:swSwing 4.5s ease-in-out infinite}
.season-holiday .sw-track:nth-child(2)::after{animation-delay:-1.2s}
.season-holiday .sw-track:nth-child(3)::after{animation-delay:-2.4s}
.season-holiday .sw-track:nth-child(4)::after{animation-delay:-3.3s}
@keyframes swSwing{0%,100%{transform:rotate(5deg)}50%{transform:rotate(-5deg)}}

/* Testimonials: a ribbon tied across the top-left corner. */
.season-holiday .sw-quote{position:relative;overflow:hidden}
.season-holiday .sw-quote::after{content:'';position:absolute;top:14px;left:-34px;width:120px;height:14px;transform:rotate(-45deg);pointer-events:none;
  background:repeating-linear-gradient(90deg,#ff2e63 0 10px,#fff4fb 10px 20px);opacity:.8;box-shadow:0 0 12px rgba(255,46,99,.35)}

/* The cohort offer card gets wrapped: ribbon cross and a bow on top. */
.season-holiday .sw-offer{position:relative;overflow:visible;
  background-image:
    linear-gradient(90deg,transparent calc(50% - 7px),rgba(255,46,99,.28) calc(50% - 7px),rgba(255,46,99,.28) calc(50% + 7px),transparent calc(50% + 7px)),
    linear-gradient(180deg,transparent 38px,rgba(255,46,99,.28) 38px,rgba(255,46,99,.28) 52px,transparent 52px)}
.season-holiday .sw-offer::before{content:'';position:absolute;top:-26px;left:50%;width:84px;height:46px;transform:translateX(-50%);pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 46'%3E%3Cg fill='%23ff2e63' stroke='%23c0124f' stroke-width='2'%3E%3Cpath d='M42 30C30 4 6 2 6 18s20 16 36 12z'/%3E%3Cpath d='M42 30C54 4 78 2 78 18s-20 16-36 12z'/%3E%3Cpath d='M38 30L26 46h8l8-12 8 12h8L46 30z'/%3E%3C/g%3E%3Ccircle cx='42' cy='29' r='7' fill='%23ff5a85' stroke='%23c0124f' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;
  filter:drop-shadow(0 0 10px rgba(255,46,99,.55))}

/* Footer: candy-cane top edge. */
.season-holiday .sw-footer::before{background:repeating-linear-gradient(90deg,#ff2e63 0 14px,#fff4fb 14px 28px);height:4px;opacity:.7}

/* A compact workshop: the business, the agents, and the operator's decision. */
.holiday-workflow{display:flex;align-items:center;justify-content:center;gap:12px;margin:26px auto 0;color:#e6dcf9}
.holiday-workflow-node{display:flex;align-items:center;gap:8px;font:700 10px/1.2 var(--font-tech);letter-spacing:.09em;white-space:nowrap}
.holiday-workflow-icon{display:grid;place-items:center;width:32px;height:32px;border:1px solid rgba(120,224,255,.6);border-radius:8px;color:#99f9ff;font:700 18px/1 sans-serif;background:rgba(22,16,54,.75);box-shadow:0 0 14px rgba(34,220,255,.15)}
.holiday-workflow-line{width:38px;height:1px;background:linear-gradient(90deg,#eb2fa7,#6ef9ff);opacity:.8}
.holiday-rung-art{display:grid;place-items:center;height:84px;margin:2px 0 12px;color:#8cf5fc;background:radial-gradient(ellipse,rgba(93,55,183,.42),transparent 70%)}
.holiday-rung-art svg{width:78px;height:64px;filter:drop-shadow(0 0 7px rgba(93,236,255,.45))}
.sw-rung:nth-child(2) .holiday-rung-art,.sw-rung:nth-child(5) .holiday-rung-art{color:#ffa1dc}
.sw-rung:nth-child(3) .holiday-rung-art{color:#8bf9c7}
.season-holiday .sw-rung-tag{font-size:10px;letter-spacing:.09em;line-height:1.3}
.holiday-proof-callout{display:flex;flex-direction:column;gap:8px;margin:0 0 24px;padding:17px 20px;border-left:3px solid #66f5db;background:linear-gradient(90deg,rgba(87,241,221,.12),transparent)}
.holiday-proof-callout span{color:#94ecdf;font:700 10px/1.2 var(--font-tech);letter-spacing:.12em}
.holiday-proof-callout strong{color:#fff;font-size:clamp(20px,2.6vw,30px);line-height:1.2}
.holiday-proof-callout i{color:#76f5d8;font-style:normal}
@media(max-width:600px){.holiday-workflow{gap:6px;margin-top:20px}.holiday-workflow-node{flex-direction:column;gap:5px;font-size:8px;letter-spacing:.02em}.holiday-workflow-line{width:18px}.holiday-rung-art{height:65px;margin-bottom:8px}.holiday-rung-art svg{height:58px}}
