/* Public-site decoration: floats in front of content without blocking interaction. */
.taz-seasonal {
  position: fixed;
  inset: 84px 0 104px;
  z-index: 12;
  overflow: hidden;
  overflow: clip;
  pointer-events: none;
  user-select: none;
  contain: layout paint style;
}
.taz-seasonal__particle {
  position: absolute;
  top: -48px;
  left: clamp(4px, var(--seasonal-left, 50%), calc(100% - var(--seasonal-size, 28px) - 4px));
  display: block;
  width: var(--seasonal-size,28px);
  height: var(--seasonal-size,28px);
  opacity: var(--seasonal-opacity,.96);
  animation: taz-seasonal-fall var(--seasonal-duration, 24s) linear var(--seasonal-delay, 0s) infinite;
}
.taz-seasonal__particle svg { display: block; width: 100%; height: 100%; filter:drop-shadow(0 1px 1px #080d2480); }
.taz-seasonal__shape {display:block;width:100%;height:100%;animation:taz-seasonal-sway var(--seasonal-sway-time,6s) ease-in-out var(--seasonal-sway-delay,0s) infinite alternate;animation-play-state:inherit;transform-origin:center}
.taz-seasonal-toggle {position:fixed;bottom:max(16px,env(safe-area-inset-bottom));left:16px;z-index:30;min-height:44px;padding:10px 16px;border:1px solid #c8ab67;border-radius:16px;background:#11152ef5;color:#f6efff;font:600 13px/1.4 system-ui,sans-serif;cursor:pointer}
.taz-seasonal-toggle:focus-visible {outline:3px solid #a2e2e8;outline-offset:4px}
.motion-paused .taz-seasonal__particle,
.tab-hidden .taz-seasonal__particle,
.taz-seasonal[data-paused="true"] .taz-seasonal__particle { animation-play-state: paused; }
@keyframes taz-seasonal-sway {
 from{transform:translateX(calc(var(--seasonal-sway,12px) * -.5)) rotate(-9deg)}
 to{transform:translateX(var(--seasonal-sway,12px)) rotate(11deg)}
}
@keyframes taz-seasonal-fall {
  from { transform: translate3d(0, -24px, 0) rotate(-12deg); }
  to { transform: translate3d(0, calc(100vh + 48px), 0) rotate(18deg); }
}
@supports (height: 100dvh) {
  @keyframes taz-seasonal-fall {
    from { transform: translate3d(0, -24px, 0) rotate(-12deg); }
    to { transform: translate3d(0, calc(100dvh + 48px), 0) rotate(18deg); }
  }
}
@media (max-width: 600px) {
  .taz-seasonal { inset-block: 80px 100px; }
  .taz-seasonal__particle:nth-child(n+9) { display: none; }
}
@media (prefers-reduced-motion: reduce), (forced-colors: active), print {
  .taz-seasonal { display: none !important; }
  .taz-seasonal__particle { animation: none !important; }
}
@media print { .taz-seasonal-toggle { display:none !important; } }

/* Autumn: slow descent, broad pendulum sway, and a few leaves resting on frames. */
.taz-seasonal[data-seasonal="autumn"] .taz-seasonal__shape{animation-name:taz-autumn-sway;transform-origin:50% 20%}
@keyframes taz-autumn-sway{0%{transform:translateX(calc(var(--seasonal-sway)*-.5)) rotate(-28deg)}50%{transform:translateX(0) rotate(4deg)}100%{transform:translateX(var(--seasonal-sway)) rotate(32deg)}}
.taz-autumn-frame-relative{position:relative}
.taz-autumn-perch{position:absolute;top:8px;left:var(--leaf-left,25%);display:block;width:30px;height:30px;pointer-events:none;user-select:none;z-index:6;opacity:0;transform-origin:60% 80%;filter:drop-shadow(0 2px 2px #080d2460)}
.taz-autumn-perch svg{display:block;width:100%;height:100%}
.taz-autumn-perch[data-leaf-landed="true"]{animation:taz-autumn-land 18s ease-in-out var(--leaf-delay,5s) both}
@keyframes taz-autumn-land{0%{opacity:0;transform:translate(-22px,-90px) rotate(-34deg)}12%{opacity:.94}40%{transform:translate(23px,-58px) rotate(30deg)}70%{transform:translate(-12px,-20px) rotate(-14deg)}90%{transform:translate(3px,1px) rotate(calc(var(--leaf-angle) + 8deg))}100%{opacity:.94;transform:translate(0,0) rotate(var(--leaf-angle))}}
.motion-paused .taz-autumn-perch,.tab-hidden .taz-autumn-perch,.taz-autumn-perch[data-paused="true"]{animation-play-state:paused}
@media(max-width:600px){.taz-autumn-perch{width:23px;height:23px}}
@media(prefers-reduced-motion:reduce),(forced-colors:active),print{.taz-autumn-perch{display:none!important;animation:none!important}}

/* Feather-like autumn flight: long glides, gentle turns and a very slow descent. */
.taz-seasonal[data-seasonal="autumn"] .taz-seasonal__particle{animation-name:taz-autumn-feather-fall;animation-timing-function:ease-in-out}
.taz-seasonal[data-seasonal="autumn"] .taz-seasonal__shape{animation-name:taz-autumn-feather-tilt;animation-duration:12s}
@keyframes taz-autumn-feather-fall{
 0%{transform:translate3d(0,-40px,0) rotate(-16deg)}
 14%{transform:translate3d(calc(var(--feather-drift)*var(--feather-direction)),12vh,0) rotate(16deg)}
 28%{transform:translate3d(calc(var(--feather-drift)*var(--feather-direction)*-.8),26vh,0) rotate(-20deg)}
 43%{transform:translate3d(calc(var(--feather-drift)*var(--feather-direction)*.9),41vh,0) rotate(14deg)}
 58%{transform:translate3d(calc(var(--feather-drift)*var(--feather-direction)*-.9),56vh,0) rotate(-17deg)}
 73%{transform:translate3d(calc(var(--feather-drift)*var(--feather-direction)*.7),72vh,0) rotate(19deg)}
 87%{transform:translate3d(calc(var(--feather-drift)*var(--feather-direction)*-.7),89vh,0) rotate(-13deg)}
 100%{transform:translate3d(calc(var(--feather-drift)*var(--feather-direction)*.4),110vh,0) rotate(12deg)}
}
@keyframes taz-autumn-feather-tilt{0%{transform:rotate(-10deg) scaleX(.85)}50%{transform:rotate(4deg) scaleX(1)}100%{transform:rotate(12deg) scaleX(.9)}}
.taz-autumn-perch[data-leaf-landed="true"]{animation-duration:26s}

/* Atmospheric depth: fewer foreground objects, small softer distant details. */
.taz-seasonal__particle[data-depth="far"] svg{filter:blur(.35px);opacity:.9}
.taz-seasonal__particle[data-depth="middle"] svg{filter:drop-shadow(0 1px 1px #080d2440)}
.taz-seasonal__particle[data-depth="near"] svg{filter:drop-shadow(0 2px 2px #080d2460)}
.taz-seasonal[data-seasonal="spring"] .taz-seasonal__particle{animation-name:taz-autumn-feather-fall;animation-timing-function:ease-in-out}
.taz-seasonal[data-seasonal="spring"] .taz-seasonal__shape{animation-name:taz-petal-turn;animation-duration:10s}
.taz-seasonal:is([data-seasonal="summer"],[data-seasonal="valentine"]) .taz-seasonal__particle{top:auto;bottom:-48px;animation-name:taz-atmosphere-rise}
.taz-seasonal[data-seasonal="summer"] .taz-seasonal__shape{animation-duration:15s}
.taz-seasonal[data-seasonal="summer"] svg{filter:none}
.taz-seasonal[data-seasonal="valentine"] .taz-seasonal__shape{animation-name:taz-heart-turn;animation-duration:9s}
.taz-seasonal:is([data-seasonal="winter"],[data-seasonal="christmas"]) .taz-seasonal__particle{animation-name:taz-crystal-fall}
.taz-seasonal:is([data-seasonal="winter"],[data-seasonal="christmas"]) .taz-seasonal__shape{animation-duration:10s}
.taz-seasonal[data-seasonal="halloween"] .taz-seasonal__shape{animation-name:taz-lantern-turn;animation-duration:12s}
@keyframes taz-atmosphere-rise{0%{transform:translate3d(-12px,20px,0) rotate(-6deg)}35%{transform:translate3d(24px,-36vh,0) rotate(7deg)}70%{transform:translate3d(-18px,-72vh,0) rotate(-8deg)}100%{transform:translate3d(12px,-115vh,0) rotate(5deg)}}
@keyframes taz-crystal-fall{0%{transform:translate3d(-10px,-24px,0) rotate(-12deg)}40%{transform:translate3d(22px,40vh,0) rotate(14deg)}75%{transform:translate3d(-15px,78vh,0) rotate(-8deg)}100%{transform:translate3d(8px,110vh,0) rotate(20deg)}}
@keyframes taz-petal-turn{from{transform:rotate(-22deg) scaleX(.75)}to{transform:rotate(26deg) scaleX(1)}}
@keyframes taz-heart-turn{from{transform:translateX(-8px) rotate(-7deg) scaleX(.9)}to{transform:translateX(10px) rotate(8deg) scaleX(1)}}
@keyframes taz-lantern-turn{from{transform:translateX(-5px) rotate(-4deg)}to{transform:translateX(7px) rotate(5deg)}}
@media(max-width:600px){.taz-seasonal__particle[data-depth="far"] svg{filter:none}}

/* Winter is snow; the combined Christmas and Epiphany scene is falling presents. */
.taz-seasonal[data-seasonal="christmas"] .taz-seasonal__particle{animation-name:taz-seasonal-fall}
.taz-seasonal[data-seasonal="christmas"] .taz-seasonal__shape{animation-name:taz-lantern-turn;animation-duration:14s}
