/* Decorations have no controls, labels, sound, or pointer targets. */
.seasonal-decoration { position: relative; z-index: 2; display: flex; align-items: flex-end; justify-content: flex-end; gap: 10px; margin-top: 14px; pointer-events: none; user-select: none; }
.seasonal-decoration > svg { display: block; width: 70px; height: 68px; flex: 0 0 auto; }
.seasonal-christmas-scene { justify-content: space-between; max-width: 440px; margin: 18px auto -10px; }
.seasonal-christmas-scene > svg:nth-child(2) { width: 190px; height: 90px; }
.seasonal-section-scene { height: 58px; margin-bottom: -6px; opacity: .9; }
.seasonal-section-scene > svg { width: 64px; height: 62px; }
.seasonal-occasion-scene { justify-content: space-between; height: 52px; opacity: .8; }
.seasonal-occasion-scene > svg { width: 58px; height: 54px; }
html[data-season-event="christmas"] { --accent: #b8ddda; --accent-soft: #e8d2a2; --violet: #adcbe5; --season-edge: #a8dad04a; --season-wash: #507b7530; }
html[data-season-event="newyear"] { --accent: #dfbc78; --accent-soft: #ffe7aa; --season-edge: #e4c57855; --season-wash: #a8833030; }
html[data-season-event="valentine"], html[data-season-event="family"] { --accent: #ee87b3; --accent-soft: #ffc2d8; --season-edge: #ee87b34a; --season-wash: #a73f7126; }
html[data-season-event="estonia"] { --accent: #6faeea; --accent-soft: #c5e3ff; --season-edge: #8bbbec59; --season-wash: #347cbe2b; }
html[data-season-event="easter"], html[data-season-event="flowers"] { --accent: #bfb0e6; --accent-soft: #f0dca5; --season-edge: #cdc49e4a; --season-wash: #858a4a24; }
html[data-season-event="midsummer"] { --accent: #c6cf8d; --accent-soft: #f2cf8d; --season-edge: #c5d5a54a; --season-wash: #82a45b26; }
html[data-season-event]:not([data-season-event="ordinary"]):not([data-season-event="halloween"]) :is(.hero,.georgia-news,.horoscope-card,.contact-section,.account,.qr-modal-card) { border-color: var(--season-edge); }
html[data-season-event]:not([data-season-event="ordinary"]):not([data-season-event="halloween"]) .recipient-card { border-color: var(--season-edge); background: linear-gradient(110deg,var(--season-wash),transparent); }
html[data-season-event]:not([data-season-event="ordinary"]):not([data-season-event="halloween"]) :is(.signal-label,.idea-easter-egg,.stats-ad-button,.site-mute:not(.is-muted)) { color: #20232b; background: linear-gradient(120deg,var(--accent-soft),var(--accent)); }
html[data-season-event="christmas"] #georgia-ambient { background: radial-gradient(ellipse at 80% 15%,#365e6577,transparent 55%),linear-gradient(180deg,#101d2c,#173239 70%,#223e47); }
html[data-season-event="christmas"] .georgia-ridge--far { fill: #a0bec04a; }
html[data-season-event="christmas"] .georgia-ridge--near { fill: #dce9ea38; }
html[data-season-event="christmas"] .hero::after { border-color: #dbf3ef35; }
html[data-season-event="newyear"] #georgia-ambient { background: radial-gradient(ellipse at 20% 10%,#85612e44,transparent 40%),linear-gradient(180deg,#181526,#141b30 70%,#242337); }
html[data-season-event="estonia"] #georgia-ambient { background: radial-gradient(ellipse at 75% 8%,#3f8acf55,transparent 60%),linear-gradient(180deg,#15263d,#0e1521 65%,#28313b); }
html[data-season-event="midsummer"] #georgia-ambient { background: radial-gradient(ellipse at 30% 15%,#a3774140,transparent 50%),linear-gradient(180deg,#293749,#253e35 70%,#17261f); }
#seasonal-snow { position: fixed; inset: 0; z-index: 2; overflow: hidden; pointer-events: none; contain: strict; }
#seasonal-snow i { position: absolute; top: -12px; left: var(--snow-x); width: var(--snow-size); height: var(--snow-size); background: #f8fcff; border-radius: 50%; opacity: .5; animation: seasonal-snowfall var(--snow-time) var(--snow-delay) linear infinite; }
@keyframes seasonal-snowfall { from { transform: translate(0,-12px); } to { transform: translate(var(--snow-drift),105vh); } }
#georgia-ambient[data-seasonal-fauna="true"] > :is(.georgia-birds,.georgia-animal-track) { display: none; }
.seasonal-fauna { position: absolute; inset: 0; overflow: hidden; pointer-events: none; contain: strict; }
.seasonal-animal-track { position: absolute; top: var(--animal-lane); left: -140px; width: 98px; height: 70px; color: #b2c2c8; opacity: .42; animation: seasonal-crossing var(--animal-duration) var(--animal-delay) linear infinite; }
.seasonal-animal-track svg { width: 100%; height: 100%; fill: currentColor; overflow: visible; }
.seasonal-flight { width: 61px; height: 43px; }
.seasonal-flight svg { animation: seasonal-flight-drift 4.8s ease-in-out infinite alternate; }
.seasonal-animal-track[data-animal="fox"] { color: #d7a278; }
.seasonal-animal-track[data-animal="rabbit"] { width: 65px; color: #e1e9e8; }
.seasonal-animal-track[data-animal="butterfly"] { width: 37px; color: #d3bf96; opacity: .58; }
.seasonal-animal-track[data-animal="bat"] { color: #cbabd8; }
.seasonal-animal-track[data-animal="reindeer"] { width: 118px; height: 84px; color: #d2c4a2; }
@keyframes seasonal-crossing { from { transform: translateX(0); } to { transform: translateX(calc(100vw + 280px)); } }
@keyframes seasonal-flight-drift { from { transform: translateY(-6px) rotate(-3deg); } to { transform: translateY(8px) rotate(3deg); } }
html[data-season-paused="true"] :is(.seasonal-animal-track,.seasonal-flight svg,#seasonal-snow i),
body:has(.qr-modal.show) :is(.seasonal-animal-track,.seasonal-flight svg,#seasonal-snow i),
body.age-check-pending :is(.seasonal-animal-track,.seasonal-flight svg,#seasonal-snow i) { animation-play-state: paused; }
html[data-season-motion="still"] .seasonal-animal-track { animation: none; left: 4%; }
html[data-season-motion="still"] .seasonal-flight svg { animation: none; }
html[data-season-motion="still"] #seasonal-snow { display: none; }
@media (pointer: coarse), (max-width: 720px) {
  .seasonal-christmas-scene { max-width: 300px; gap: 3px; margin-top: 12px; }
  .seasonal-christmas-scene > svg { width: 52px; height: 56px; }
  .seasonal-christmas-scene > svg:nth-child(2) { width: 150px; height: 72px; }
  .seasonal-section-scene { height: 42px; }
  .seasonal-section-scene > svg { width: 48px; height: 48px; }
  .seasonal-flight svg { animation: none; }
  .seasonal-animal-track { opacity: .7; }
  #seasonal-snow i { opacity: .33; }
}
/* Android whole-screen flicker: flatten expensive viewport compositing layers.
   Live weather and small, isolated seasonal animations remain visible. */
@media (pointer: coarse), (max-width: 720px) {
  body::before, body::after { display: none !important; }
  *, *::before, *::after {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    mix-blend-mode: normal !important;
  }
  html, body, #georgia-ambient { transition: none !important; }
  #georgia-ambient { opacity: 1 !important; contain: strict; }
  #georgia-ambient > :is(.georgia-ambient-stars,.georgia-ambient-cloud,.georgia-ambient-rain,.georgia-ambient-horizon) { display: none !important; }
  #georgia-ambient > :not(.seasonal-fauna), #georgia-ambient > :not(.seasonal-fauna) *,
  .hero-weather-stage *, .age-weather-visual * {
    filter: none !important; will-change: auto !important; animation: none !important;
  }
  .hero-weather-stage *, .hero-weather-stage *::before, .hero-weather-stage *::after {
    transition: none !important; transform: none !important;
  }
  .hero-weather-compare { background: #151723 !important; }
  .signal-window { contain: paint; -webkit-mask-image: none; mask-image: none; }
  .age-gate, .qr-modal { background: #0d0f16f7 !important; }
  .thank-you:not(.show) { visibility: hidden; }
  .seasonal-animal-track { contain: layout paint; }
  .seasonal-flight svg { animation: none !important; }
  .seasonal-animal-track[data-animal] { opacity: .62; }
  html[data-theme="light"] .hero-weather-compare { background: #f5f0f5 !important; }
}
@media (prefers-reduced-motion: reduce) {
  #seasonal-snow { display: none; }
  .seasonal-animal-track { animation: none !important; left: 4%; }
  .seasonal-flight svg { animation: none !important; }
}

/* Thank-you celebrates the same event, returning to pink on ordinary days. */
#thank-you { background: radial-gradient(ellipse at 50% 45%,#ee69aa,#9d2c70 60%,#67204e); -webkit-backdrop-filter: none; backdrop-filter: none; transform: none; overflow: hidden; }
#thank-you > div:not(#seasonal-thanks-decor) { position: relative; z-index: 2; }
html[data-season-event="halloween"] #thank-you { background: radial-gradient(ellipse at 50% 75%,#a74c2d,#50294f 58%,#201b35); }
html[data-season-event="christmas"] #thank-you { background: radial-gradient(ellipse at 50% 40%,#426d79,#224b5b 62%,#132a40); }
html[data-season-event="newyear"] #thank-you { background: radial-gradient(ellipse at 50% 40%,#806b4c,#39304c 65%,#1f2037); }
html[data-season-event="estonia"] #thank-you { background: radial-gradient(ellipse at 50% 40%,#4079b2,#203951 62%,#131c2c); }
html[data-season-event="easter"] #thank-you, html[data-season-event="flowers"] #thank-you { background: radial-gradient(ellipse at 50% 40%,#9277ad,#67528b 62%,#34384f); }
html[data-season-event="midsummer"] #thank-you { background: radial-gradient(ellipse at 50% 70%,#8d7545,#36594d 62%,#203f41); }
#seasonal-thanks-decor, .thanks-snow { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.thanks-ornament { position: absolute; display: block; width: clamp(90px,19vw,230px); height: clamp(90px,19vw,230px); opacity: .92; }
.thanks-ornament svg { width: 100%; height: 100%; fill: #d7bbde; }
.thanks-bottom-left { left: 8%; bottom: 9%; transform: rotate(-8deg); }
.thanks-bottom-right { right: 8%; bottom: 9%; transform: rotate(8deg); }
.thanks-top-left { left: 12%; top: 12%; width: 12vw; opacity: .65; transform: rotate(-16deg); }
.thanks-top-right { right: 14%; top: 19%; width: 9vw; opacity: .55; transform: rotate(12deg); }
.thanks-snow i { position: absolute; top: -12px; display: block; width: 5px; height: 5px; border-radius: 50%; background: #fff; opacity: .65; animation: thanks-snowfall 11s linear infinite; animation-play-state: paused; }
#thank-you.show .thanks-snow i { animation-play-state: running; }
@keyframes thanks-snowfall { from { transform: translate(0,-12px); } to { transform: translate(32px,105vh); } }
@media (max-width:720px) {
  .thanks-bottom-left { left: 6%; bottom: 13%; }
  .thanks-bottom-right { right: 6%; bottom: 13%; }
  .thanks-top-left { width: 74px; top: 17%; }
  .thanks-top-right { width: 55px; top: 24%; }
}
@media (prefers-reduced-motion:reduce) { .thanks-snow { display: none; } }
.seasonal-fireworks { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
#seasonal-fireworks { position: fixed; z-index: 2; contain: strict; }
.seasonal-firework { position: absolute; left: var(--burst-x); top: var(--burst-y); width: clamp(120px,19vw,240px); height: clamp(120px,19vw,240px); margin: -60px 0 0 -60px; opacity: 0; animation: seasonal-firework-bloom 10s var(--burst-delay) ease-out infinite; }
.seasonal-firework svg { width: 100%; height: 100%; fill: var(--burst-color); stroke: var(--burst-color); stroke-width: 2; stroke-linecap: round; }
@keyframes seasonal-firework-bloom {
  0%, 8% { opacity: 0; transform: scale(.2); }
  21% { opacity: .62; }
  48% { opacity: 0; transform: scale(1.08); }
  100% { opacity: 0; transform: scale(1.08); }
}
#thank-you .seasonal-firework { animation-play-state: paused; }
#thank-you.show .seasonal-firework { animation-play-state: running; }
html[data-season-paused="true"] .seasonal-firework { animation-play-state: paused; }
@media (pointer:coarse), (max-width:720px) { .seasonal-firework { width: 140px; height: 140px; } }
@media (prefers-reduced-motion:reduce) { .seasonal-fireworks { display: none; } }

/* Halloween sits in the header flow, never over the portrait or controls. */
.halloween-welcome.seasonal-decoration{display:flex;align-items:center;justify-content:center;gap:18px;width:100%;max-width:660px;margin:20px auto 8px;isolation:isolate}
.halloween-welcome>svg{width:86px;height:74px;flex:0 0 auto}
.halloween-welcome>svg:last-child{transform:scaleX(-1)}
.halloween-welcome-copy{text-align:center;min-width:0}
.halloween-welcome-copy p:first-child{margin:0;color:#ffd29b;font:700 clamp(23px,3vw,32px)/1.2 'Playfair Display',Georgia,serif}
.halloween-welcome-copy p:last-child{margin:7px 0 0;color:#dfc5dc;font:500 13px/1.4 'DM Sans',sans-serif}
.halloween-lantern-face{animation:halloween-lantern-warmth 4s ease-in-out infinite alternate}
@keyframes halloween-lantern-warmth{from{opacity:.76}to{opacity:1}}
html[data-theme=light] .halloween-welcome-copy p:first-child{color:#9d470d}
html[data-theme=light] .halloween-welcome-copy p:last-child{color:#67496a}
html[data-theme=light] .hero .halloween-welcome-copy p:first-child{color:#ffd29b}
html[data-theme=light] .hero .halloween-welcome-copy p:last-child{color:#dfc5dc}
html[data-season-paused=true] .halloween-lantern-face,body.qr-modal-open .halloween-lantern-face{animation-play-state:paused}
html[data-season-motion=still] .halloween-lantern-face{animation:none}
@media(max-width:720px){.halloween-welcome.seasonal-decoration{gap:8px;margin:15px auto 6px}.halloween-welcome>svg{width:49px;height:49px}.halloween-welcome-copy p:first-child{font-size:22px}.halloween-welcome-copy p:last-child{font-size:11px;max-width:210px;margin:5px auto 0}}
@media(prefers-reduced-motion:reduce){.halloween-lantern-face{animation:none}}
