:root {
  --season-heading: #d9c18b;
  --season-body: #d6d0c2;
  --season-label: #ad8a5a;
  --season-link: #c69b62;
  --season-rune: #83c99a;
  --season-heading-shadow: 0 1px 2px rgba(0, 0, 0, .9);
  --season-body-shadow: 0 1px 2px rgba(0, 0, 0, .9);
  --season-label-shadow: 0 1px 2px rgba(0, 0, 0, .9);
  --season-link-shadow: 0 1px 2px rgba(0, 0, 0, .9);
  --season-rune-shadow: 0 1px 2px rgba(0, 0, 0, .9);
  --season-background-desktop: none;
  --season-background-mobile: none;
  --season-overlay-image: none;
  --seasonal-top-asset: none;
  --seasonal-bottom-asset: none;
  --season-strength: .5;
}

body[data-seasonal-top-kit="snow"] { --seasonal-top-asset: url("/assets/seasonal-snow-cap-v1.webp"); }
body[data-seasonal-top-kit="snow"] .seasonal-dressing__top { background-size:100% 100% !important; }
body[data-seasonal-bottom-kit="spring"] { --seasonal-bottom-asset: url("/assets/seasonal-spring-thaw-v1.webp"); }
body[data-seasonal-bottom-kit="leaves"] { --seasonal-bottom-asset: url("/assets/seasonal-autumn-leaves-v1.webp"); }
body[data-seasonal-bottom-kit="gold"] { --seasonal-bottom-asset: url("/assets/seasonal-celebration-gold-v1.webp"); }
body[data-seasonal-bottom-kit="clover-gold"] { --seasonal-bottom-asset: url("/assets/seasonal-clover-gold-v1.webp"); }
body[data-seasonal-bottom-kit="valentine"] { --seasonal-bottom-asset: url("/assets/seasonal-valentine-v1.webp"); }
body[data-seasonal-bottom-kit="harvest"] { --seasonal-bottom-asset: url("/assets/seasonal-harvest-v1.webp"); }
body[data-seasonal-bottom-kit="yule"] { --seasonal-bottom-asset: url("/assets/seasonal-yule-v1.webp"); }

body.has-seasonal-atmosphere[data-seasonal-desktop-intensity="subtle"] { --season-strength: .28; }
body.has-seasonal-atmosphere[data-seasonal-desktop-intensity="standard"] { --season-strength: .5; }
body.has-seasonal-atmosphere[data-seasonal-desktop-intensity="full"] { --season-strength: .76; }

.seasonal-atmosphere {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

body.has-seasonal-atmosphere > header,
body.has-seasonal-atmosphere > main,
body.has-seasonal-atmosphere > footer {
  position: relative;
  z-index: 1;
}

.seasonal-atmosphere[hidden] { display: none; }
.seasonal-atmosphere > div { position: absolute; inset: 0; opacity: 0; }
.seasonal-atmosphere__background { background-image: var(--season-background-desktop); background-position: center; background-size: cover; transition: opacity .8s ease; }
.seasonal-atmosphere.show-background .seasonal-atmosphere__background { opacity: calc(var(--season-strength) * .72); }
.seasonal-atmosphere__overlay { background-image: var(--season-overlay-image); background-position: center; background-repeat: no-repeat; background-size: cover; mix-blend-mode: screen; transition: opacity .8s ease; }
.seasonal-atmosphere.show-overlay .seasonal-atmosphere__overlay { opacity: calc(var(--season-strength) * .74); }
.seasonal-atmosphere__light { background: radial-gradient(circle at 18% 24%, color-mix(in srgb, var(--season-rune) 26%, transparent), transparent 34%), radial-gradient(circle at 82% 68%, color-mix(in srgb, var(--season-link) 20%, transparent), transparent 38%); mix-blend-mode: screen; animation: seasonal-light-breathe 8s ease-in-out infinite alternate; }
.seasonal-atmosphere.show-lighting .seasonal-atmosphere__light { opacity: calc(var(--season-strength) * .7); }
.seasonal-atmosphere__smoke { inset: -15%; background: radial-gradient(ellipse at 22% 90%, color-mix(in srgb, var(--season-body) 16%, transparent), transparent 36%), radial-gradient(ellipse at 74% 98%, color-mix(in srgb, var(--season-heading) 12%, transparent), transparent 40%); filter: blur(24px); animation: seasonal-smoke-drift 18s ease-in-out infinite alternate; }
.seasonal-atmosphere.show-smoke .seasonal-atmosphere__smoke { opacity: calc(var(--season-strength) * .46); }
.seasonal-atmosphere__particles { opacity: calc(var(--season-strength) * .8) !important; }
.seasonal-atmosphere__particles i { position: absolute; top: -8vh; left: var(--x); display: block; width: var(--size); height: var(--size); background: var(--season-rune); border-radius: 50%; box-shadow: 0 0 7px color-mix(in srgb, var(--season-rune) 75%, transparent); animation: seasonal-particle-fall var(--duration) linear var(--delay) infinite; }
body[data-seasonal-particle="snow"] .seasonal-atmosphere__particles i { background: #eef4f4; box-shadow: 0 0 5px #fff8; }
body[data-seasonal-particle="leaves"] .seasonal-atmosphere__particles i { width: calc(var(--size) * 1.7); height: var(--size); background: var(--season-label); border-radius: 80% 20% 70% 30%; animation-name: seasonal-leaf-fall; }
body[data-seasonal-particle="embers"] .seasonal-atmosphere__particles i,
body[data-seasonal-particle="sparks"] .seasonal-atmosphere__particles i { background: var(--season-link); box-shadow: 0 0 9px var(--season-link); }
body[data-seasonal-particle="mist"] .seasonal-atmosphere__particles i { width: calc(var(--size) * 12); height: calc(var(--size) * 3); background: color-mix(in srgb, var(--season-body) 30%, transparent); border-radius: 50%; filter: blur(5px); animation-name: seasonal-mist-pass; }
body[data-seasonal-particle="rain"] .seasonal-atmosphere__particles i { width: 1px; height: calc(var(--size) * 5); background: color-mix(in srgb, var(--season-body) 65%, transparent); border-radius: 0; box-shadow: none; animation-duration: calc(var(--duration) * .2); }

.seasonal-text-active h1,
.seasonal-text-active h2,
.seasonal-text-active h3,
.seasonal-text-active h4,
.seasonal-text-active h5,
.seasonal-text-active h6,
.seasonal-text-active .journal-deck,
.seasonal-text-active .section-title {
  color: var(--season-heading) !important;
  text-shadow: var(--season-heading-shadow) !important;
}

.seasonal-text-active p,
.seasonal-text-active li,
.seasonal-text-active td,
.seasonal-text-active th,
.seasonal-text-active blockquote,
.seasonal-text-active .journal-entry-copy,
.seasonal-text-active .dispatch-copy {
  color: var(--season-body) !important;
  text-shadow: var(--season-body-shadow) !important;
}

.seasonal-text-active button,
.seasonal-text-active label,
.seasonal-text-active .eyebrow,
.seasonal-text-active .section-kicker,
.seasonal-text-active .meta,
.seasonal-text-active small,
.seasonal-text-active output,
.seasonal-text-active .nav-link,
.seasonal-text-active .primary-nav a {
  color: var(--season-label) !important;
  text-shadow: var(--season-label-shadow) !important;
}

.seasonal-text-active a:not(.brand),
.seasonal-text-active .text-button {
  color: var(--season-link) !important;
  text-shadow: var(--season-link-shadow) !important;
}

.seasonal-text-active .brand-mark,
.seasonal-text-active .discoverable-rune,
.seasonal-text-active [data-rune-key],
.seasonal-text-active .campaign-marker-glyph,
.seasonal-text-active .detail-mark {
  color: var(--season-rune) !important;
  text-shadow: var(--season-rune-shadow), 0 0 10px color-mix(in srgb, var(--season-rune) 55%, transparent) !important;
}

.seasonal-section-active { box-shadow: inset 0 0 70px color-mix(in srgb, var(--season-rune) 6%, transparent); }

/* Material-aware seasonal dressing. These layers are decorative only and never
   participate in layout, so the approved site geometry stays unchanged. */
.seasonal-dressable { --seasonal-dressing-opacity: .82; --seasonal-dressing-scale: 1; }
body[data-seasonal-dressing-density="subtle"] .seasonal-dressable { --seasonal-dressing-opacity: .56; --seasonal-dressing-scale: .88; }
body[data-seasonal-dressing-density="full"] .seasonal-dressable { --seasonal-dressing-opacity: .96; --seasonal-dressing-scale: 1.08; }
.seasonal-dressable > .seasonal-dressing { position:absolute !important; inset:0 !important; z-index:7 !important; display:block !important; width:auto !important; height:auto !important; margin:0 !important; padding:0 !important; overflow:hidden; border-radius:inherit; transform:none !important; pointer-events:none; }
.seasonal-dressable[data-seasonal-role="anchor"] > .seasonal-dressing { overflow:visible; border-radius:0; }
.seasonal-dressing > i { position:absolute; display:block; pointer-events:none; }
.seasonal-dressing__surface { inset:0; z-index:0; border-radius:inherit; opacity:calc(var(--seasonal-dressing-opacity) * .36); mix-blend-mode:screen; }
.seasonal-dressing__top,
.seasonal-dressing__bottom { z-index:1; width:clamp(220px,32%,390px); height:auto; aspect-ratio:3 / 1; background-position:center; background-repeat:no-repeat; background-size:100% 100%; filter:drop-shadow(0 4px 5px rgba(0,0,0,.48)); opacity:var(--seasonal-dressing-opacity); transform:scale(var(--seasonal-dressing-scale)); }
.seasonal-dressing__top { top:-12px; background-image:var(--seasonal-top-asset); transform-origin:50% 0; }
.seasonal-dressing__bottom { bottom:-16px; background-image:var(--seasonal-bottom-asset); transform-origin:50% 100%; }
.seasonal-dressable[data-seasonal-variant="left"] { --seasonal-dressing-position:left; }
.seasonal-dressable[data-seasonal-variant="center"] { --seasonal-dressing-position:center; }
.seasonal-dressable[data-seasonal-variant="right"] { --seasonal-dressing-position:right; }
.seasonal-dressable[data-seasonal-placement="left"] .seasonal-dressing__top,
.seasonal-dressable[data-seasonal-placement="left"] .seasonal-dressing__bottom { left:1.25%; right:auto; }
.seasonal-dressable[data-seasonal-placement="center"] .seasonal-dressing__top,
.seasonal-dressable[data-seasonal-placement="center"] .seasonal-dressing__bottom { left:50%; right:auto; transform:translateX(-50%) scale(var(--seasonal-dressing-scale)); }
.seasonal-dressable[data-seasonal-placement="right"] .seasonal-dressing__top,
.seasonal-dressable[data-seasonal-placement="right"] .seasonal-dressing__bottom { right:1.25%; left:auto; }
.seasonal-dressable[data-seasonal-size="nav"] .seasonal-dressing__top,
.seasonal-dressable[data-seasonal-size="nav"] .seasonal-dressing__bottom { width:clamp(190px,24vw,340px); height:clamp(28px,3vw,42px); aspect-ratio:auto; top:auto; bottom:-17px; opacity:calc(var(--seasonal-dressing-opacity) * .66); }
.seasonal-dressable[data-seasonal-size="wide"] .seasonal-dressing__top,
.seasonal-dressable[data-seasonal-size="wide"] .seasonal-dressing__bottom { width:clamp(210px,29%,360px); }
.seasonal-dressable[data-seasonal-size="card"] .seasonal-dressing__top,
.seasonal-dressable[data-seasonal-size="card"] .seasonal-dressing__bottom { width:clamp(160px,42%,250px); }
.seasonal-dressable[data-seasonal-size="panel"] .seasonal-dressing__top,
.seasonal-dressable[data-seasonal-size="panel"] .seasonal-dressing__bottom { width:clamp(180px,36%,290px); }
.seasonal-dressable[data-seasonal-size="small"] .seasonal-dressing__top,
.seasonal-dressable[data-seasonal-size="small"] .seasonal-dressing__bottom { width:clamp(130px,42%,190px); opacity:calc(var(--seasonal-dressing-opacity) * .62); }
.seasonal-dressable[data-seasonal-size="accent"] .seasonal-dressing__top,
.seasonal-dressable[data-seasonal-size="accent"] .seasonal-dressing__bottom { width:clamp(118px,18%,168px); height:clamp(42px,4.4vw,58px); aspect-ratio:auto; background-size:auto 100%; opacity:calc(var(--seasonal-dressing-opacity) * .88); }
.seasonal-dressable[data-seasonal-size="accent"] .seasonal-dressing__top { top:-13px; }
.seasonal-dressable[data-seasonal-size="accent"] .seasonal-dressing__bottom { bottom:-13px; }
.seasonal-dressable[data-seasonal-crop="left"] .seasonal-dressing__top,
.seasonal-dressable[data-seasonal-crop="left"] .seasonal-dressing__bottom { background-position:left center; }
.seasonal-dressable[data-seasonal-crop="right"] .seasonal-dressing__top,
.seasonal-dressable[data-seasonal-crop="right"] .seasonal-dressing__bottom { background-position:right center; }
.site-view--home .seasonal-dressable[data-seasonal-size="section"] .seasonal-dressing__top { top:-58px; }
.seasonal-dressable[data-seasonal-surface="false"] .seasonal-dressing__surface { display:none; }
.seasonal-dressable[data-seasonal-edges="none"] .seasonal-dressing__top,
.seasonal-dressable[data-seasonal-edges="none"] .seasonal-dressing__bottom { display:none; }
.seasonal-dressable[data-seasonal-edges="top"] .seasonal-dressing__bottom { display:none; }
.seasonal-dressable[data-seasonal-edges="bottom"] .seasonal-dressing__top { display:none; }

body[data-seasonal-treatment="thaw"] .seasonal-dressing__surface {
  background:linear-gradient(112deg,transparent 0 25%,rgba(210,231,225,.25) 32%,transparent 40% 68%,rgba(180,216,207,.18) 74%,transparent 82%),repeating-linear-gradient(98deg,transparent 0 18px,rgba(210,232,228,.13) 19px,transparent 21px 38px);
  animation:seasonal-wet-sheen 6.8s ease-in-out infinite alternate;
}
body[data-seasonal-treatment="summer"] .seasonal-dressing__surface,
body[data-seasonal-treatment="forge"] .seasonal-dressing__surface { background:radial-gradient(circle at 18% 82%,rgba(211,128,57,.33),transparent 32%),linear-gradient(110deg,transparent 35%,rgba(187,113,54,.18),transparent 66%); }
body[data-seasonal-treatment="autumn"] .seasonal-dressing__surface,
body[data-seasonal-treatment="harvest"] .seasonal-dressing__surface { background:linear-gradient(125deg,rgba(148,77,35,.18),transparent 38%,rgba(187,121,52,.14) 72%,transparent); mix-blend-mode:color-dodge; }
body[data-seasonal-treatment="frost"] .seasonal-dressing__surface { background:linear-gradient(145deg,rgba(224,242,244,.25),transparent 24% 72%,rgba(175,211,218,.18)),repeating-linear-gradient(116deg,transparent 0 23px,rgba(225,245,247,.09) 24px,transparent 26px 51px); }
body[data-seasonal-treatment="celebration"] .seasonal-dressing__surface { background:radial-gradient(circle at 22% 23%,rgba(228,189,94,.3),transparent 18%),radial-gradient(circle at 78% 74%,rgba(226,172,72,.23),transparent 22%); animation:seasonal-metal-glint 5.8s ease-in-out infinite alternate; }
body[data-seasonal-treatment="valentine"] .seasonal-dressing__surface { background:linear-gradient(118deg,rgba(125,36,61,.18),transparent 36%,rgba(94,42,104,.16) 66%,transparent); }
body[data-seasonal-treatment="clover"] .seasonal-dressing__surface,
body[data-seasonal-treatment="spring"] .seasonal-dressing__surface { background:radial-gradient(circle at 18% 82%,rgba(72,137,77,.24),transparent 29%),linear-gradient(115deg,transparent 45%,rgba(190,167,74,.14),transparent 72%); }
body[data-seasonal-treatment="memorial"] .seasonal-dressing__surface { background:linear-gradient(120deg,rgba(105,119,130,.13),transparent 45%,rgba(126,65,59,.1)); }
body[data-seasonal-treatment="independence"] .seasonal-dressing__surface { background:linear-gradient(116deg,rgba(100,51,49,.16),transparent 38% 62%,rgba(67,83,112,.18)); }
body[data-seasonal-treatment="halloween"] .seasonal-dressing__surface { background:radial-gradient(circle at 18% 78%,rgba(184,80,29,.23),transparent 28%),radial-gradient(circle at 82% 22%,rgba(86,38,107,.22),transparent 31%),linear-gradient(rgba(0,0,0,.16),rgba(0,0,0,.16)); }
body[data-seasonal-treatment="yule"] .seasonal-dressing__surface { background:radial-gradient(circle at 17% 78%,rgba(215,147,67,.29),transparent 30%),linear-gradient(118deg,rgba(39,91,59,.16),transparent 42% 64%,rgba(134,39,39,.13)); }

.seasonal-dressable[data-seasonal-material="iron"] .seasonal-dressing__surface,
.seasonal-dressable[data-seasonal-material="onyx"] .seasonal-dressing__surface,
.seasonal-dressable[data-seasonal-material="stone"] .seasonal-dressing__surface { opacity:calc(var(--seasonal-dressing-opacity) * .48); }
.seasonal-dressable[data-seasonal-material="parchment"] .seasonal-dressing__surface { opacity:calc(var(--seasonal-dressing-opacity) * .2); mix-blend-mode:multiply; }
.seasonal-dressable[data-seasonal-material="cloth"] .seasonal-dressing__surface { opacity:calc(var(--seasonal-dressing-opacity) * .25); mix-blend-mode:soft-light; }
.seasonal-dressable[data-seasonal-material="wax"] .seasonal-dressing__surface { opacity:calc(var(--seasonal-dressing-opacity) * .3); mix-blend-mode:screen; }

@keyframes seasonal-light-breathe {
  from { transform: scale(1); filter: brightness(.86); }
  to { transform: scale(1.035); filter: brightness(1.18); }
}

@keyframes seasonal-smoke-drift {
  from { transform: translate3d(-2%, 1%, 0) scale(1); }
  to { transform: translate3d(3%, -1%, 0) scale(1.08); }
}

@keyframes seasonal-particle-fall {
  from { transform: translate3d(0, -10vh, 0) rotate(0deg); }
  to { transform: translate3d(4vw, 118vh, 0) rotate(260deg); }
}

@keyframes seasonal-leaf-fall {
  0% { transform: translate3d(-2vw, -10vh, 0) rotate(0deg); }
  45% { transform: translate3d(5vw, 48vh, 0) rotate(210deg); }
  100% { transform: translate3d(-1vw, 118vh, 0) rotate(440deg); }
}

@keyframes seasonal-mist-pass {
  from { transform: translate3d(-26vw, 12vh, 0); }
  to { transform: translate3d(118vw, 76vh, 0); }
}

@keyframes seasonal-wet-sheen {
  from { background-position:-24% 0,0 0; opacity:.2; }
  to { background-position:118% 0,42px 18px; opacity:.48; }
}

@keyframes seasonal-metal-glint {
  from { filter:brightness(.82); opacity:.22; }
  to { filter:brightness(1.22); opacity:.48; }
}

@media (max-width: 800px) {
  body.has-seasonal-atmosphere[data-seasonal-mobile-intensity="subtle"] { --season-strength: .22; }
  body.has-seasonal-atmosphere[data-seasonal-mobile-intensity="standard"] { --season-strength: .42; }
  body.has-seasonal-atmosphere[data-seasonal-mobile-intensity="full"] { --season-strength: .64; }
  .seasonal-atmosphere__background { background-image: var(--season-background-mobile); }
  .seasonal-dressing__top,
  .seasonal-dressing__bottom { width:clamp(150px,52vw,240px); }
  .seasonal-dressing__top { top:-7px; }
  .seasonal-dressing__bottom { bottom:-9px; }
  .site-view--home .seasonal-dressable[data-seasonal-size="section"] .seasonal-dressing__top { top:-24px; }
  .seasonal-dressable[data-seasonal-size="nav"] .seasonal-dressing__top,
  .seasonal-dressable[data-seasonal-size="nav"] .seasonal-dressing__bottom { width:clamp(145px,48vw,220px); height:30px; bottom:-12px; }
  .seasonal-dressable[data-seasonal-size="accent"] .seasonal-dressing__top,
  .seasonal-dressable[data-seasonal-size="accent"] .seasonal-dressing__bottom { width:clamp(92px,28vw,126px); height:38px; }
  .seasonal-dressable[data-seasonal-size="accent"] .seasonal-dressing__top { top:-8px; }
  .seasonal-dressable[data-seasonal-size="accent"] .seasonal-dressing__bottom { bottom:-8px; }
}

@media (prefers-reduced-motion: reduce) {
  .seasonal-atmosphere__light,
  .seasonal-atmosphere__smoke,
  .seasonal-atmosphere__particles i { animation: none !important; }
  .seasonal-dressing__surface { animation:none !important; }
  .seasonal-atmosphere__particles i { top: var(--x); opacity: .32; }
}
