/* Phu Hai Festive Season V3.2 – Cinematic Living Scenes
   Pure CSS/SVG: no runtime library, no network dependency. Draws/animates only
   the currently active seasonal chapter. Does not modify event-slide imagery. */
.slide.season-hero-slide[data-scene-mode="cinematic"]{
 --cinema-gold:#f2d49b;
 background:
  radial-gradient(ellipse at 79% 38%,rgba(251,219,155,.21) 0,transparent 48%),
  radial-gradient(ellipse at 77% 100%,rgba(255,206,116,.12) 0,transparent 40%),
  linear-gradient(125deg,var(--season-hero-bg,#183647),#081b27 94%);
}
.slide.season-hero-slide[data-group="new_year"][data-scene-mode="cinematic"]{--cinema-gold:#f9dfa3}
.slide.season-hero-slide[data-group="lunar"][data-scene-mode="cinematic"]{--cinema-gold:#ffdf99}
.slide.season-hero-slide[data-scene-mode="cinematic"]:after{background:linear-gradient(90deg,rgba(4,16,24,.75),rgba(4,16,24,.37) 45%,rgba(4,16,24,.09) 80%)}
.slide.season-hero-slide[data-scene-mode="cinematic"] .seasonal-character-scene{isolation:isolate;overflow:hidden;opacity:1}
.slide.season-hero-slide[data-scene-mode="cinematic"] .seasonal-character-scene::before{
 content:"";position:absolute;inset:9% 1% 2% 43%;pointer-events:none;
 border:1px solid rgba(248,217,156,.10);border-radius:50%;
 box-shadow:0 0 0 42px rgba(248,217,156,.035),0 0 0 95px rgba(248,217,156,.012);
 opacity:0;transition:opacity .7s ease;
}
.slide.season-hero-slide[data-scene-mode="cinematic"].active .seasonal-character-scene::before{opacity:1}
.slide.season-hero-slide[data-scene-mode="cinematic"] .season-object{filter:drop-shadow(0 20px 32px rgba(5,10,23,.32)) drop-shadow(0 0 14px rgba(250,220,159,.1))}
/* Controlled timing: cinematic is a slow majestic entrance; rich travels farther. */
.slide.season-hero-slide[data-scene-mode="cinematic"][data-motion-speed="slow"]{--v32-main:1950ms;--v32-halo:2400ms}
.slide.season-hero-slide[data-scene-mode="cinematic"][data-motion-speed="normal"]{--v32-main:1450ms;--v32-halo:1700ms}
.slide.season-hero-slide[data-scene-mode="cinematic"][data-motion-speed="cinematic"]{--v32-main:2300ms;--v32-halo:2100ms}
.slide.season-hero-slide[data-scene-mode="cinematic"].active .season-object{animation-duration:var(--v32-main,1450ms)}
.slide.season-hero-slide[data-scene-mode="cinematic"].active .season-scene-halo{animation-duration:var(--v32-halo,1700ms)}
/* Text follows the object reveal without obstructing scene art. */
.slide.season-hero-slide[data-scene-mode="cinematic"] .content{z-index:5}
.slide.season-hero-slide[data-scene-mode="cinematic"].active .content>*,
.slide.season-hero-slide[data-scene-mode="cinematic"].active .content .glass-panel>*{
 transition-delay:280ms;
}
/* Cinematic decorations and light field. Invisible until seasonal slide is active. */
.season-hero-slide .cinema-decor{position:absolute;display:block;pointer-events:none;z-index:1;opacity:0;will-change:auto}
.season-hero-slide[data-scene-mode="cinematic"] .cinema-mist{left:42%;right:-10%;bottom:-22%;height:66%;border-radius:50%;background:radial-gradient(ellipse,rgba(248,209,145,.20),rgba(248,209,145,.035) 52%,transparent 74%);filter:blur(30px)}
.season-hero-slide[data-scene-mode="cinematic"] .cinema-floor{right:-9%;bottom:-11%;width:74%;height:32%;border:1px solid rgba(255,232,180,.13);border-radius:50%;background:radial-gradient(ellipse,rgba(255,214,137,.12),transparent 73%);transform:perspective(400px) rotateX(56deg)}
.season-hero-slide[data-scene-mode="cinematic"] .cinema-lightbeam{right:-9%;top:-16%;width:74%;height:114%;background:conic-gradient(from 200deg at 57% 4%,transparent 0deg,rgba(245,209,142,.1) 16deg,transparent 29deg,rgba(245,209,142,.07) 42deg,transparent 62deg);transform:rotate(-9deg);filter:blur(14px)}
.season-hero-slide[data-scene-mode="cinematic"] .cinema-stars{width:5px;height:5px;top:var(--stary,22%);right:var(--starx,15%);border-radius:100%;background:#fff6d9;box-shadow:0 0 10px 2px rgba(255,234,170,.48),0 0 28px 5px rgba(247,207,126,.14);z-index:6}
.season-hero-slide .cinema-stars.cinema-1{--starx:13%;--stary:12%}
.season-hero-slide .cinema-stars.cinema-2{--starx:39%;--stary:23%;width:3px;height:3px}
.season-hero-slide .cinema-stars.cinema-3{--starx:5%;--stary:48%}
.season-hero-slide .cinema-stars.cinema-4{--starx:50%;--stary:50%;width:3px;height:3px}
.season-hero-slide .cinema-stars.cinema-5{--starx:21%;--stary:70%}
.season-hero-slide .cinema-stars.cinema-6{--starx:58%;--stary:14%;width:2px;height:2px}
.season-hero-slide .cinema-stars.cinema-7{--starx:9%;--stary:83%;width:3px;height:3px}
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-mist{animation:v32-ambient 2000ms 150ms ease-out both}
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-floor{animation:v32-ambient 1600ms 250ms ease-out both}
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-lightbeam{animation:v32-ambient 2200ms 350ms ease-out both}
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-stars{animation:v32-twinkle 3800ms ease-in-out infinite alternate}
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-stars:nth-child(3n){animation-delay:750ms}
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-stars:nth-child(4n){animation-delay:1300ms}
/* The Magical Arrival */
.season-hero-slide .cinema-sleigh-trail{right:27%;top:17%;width:32%;height:22%;border-top:2px solid rgba(255,224,157,.6);border-radius:50%;transform:rotate(18deg);filter:drop-shadow(0 0 8px #f9d68d)}
.season-hero-slide .cinema-star-top{right:15.3%;top:9.5%;width:19px;height:19px;background:var(--cinema-gold);clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);filter:drop-shadow(0 0 9px #fce7b2)}
.season-hero-slide .cinema-garland{right:5%;top:35%;width:22%;height:15%;border-bottom:2px dotted rgba(250,220,151,.7);border-radius:50%;transform:rotate(-15deg)}
.season-hero-slide .cinema-garland.cinema-2{right:17%;top:48%;width:19%;transform:rotate(12deg)}
.season-hero-slide .cinema-snow-sheen{right:var(--snowx,12%);top:var(--snowy,32%);width:7px;height:7px;background:#fff5e5;border-radius:50%;box-shadow:0 0 11px #fff8df}
.season-hero-slide .cinema-snow-sheen.cinema-2{--snowx:32%;--snowy:14%;width:4px;height:4px}
.season-hero-slide .cinema-snow-sheen.cinema-3{--snowx:43%;--snowy:54%;width:3px;height:3px}
/* The Golden Countdown */
.season-hero-slide .cinema-clock-ring{right:13%;top:14%;width:min(37vw,505px);aspect-ratio:1;border:1px solid rgba(247,214,146,.32);border-radius:50%;box-shadow:0 0 35px rgba(245,201,128,.12),inset 0 0 27px rgba(245,201,128,.08)}
.season-hero-slide .cinema-clock-ring.cinema-2{right:10%;top:11%;width:min(41vw,560px);border-style:dashed;opacity:.3}
.season-hero-slide .cinema-gold-burst{right:var(--burstx,14%);top:var(--bursty,19%);width:2px;height:70px;background:linear-gradient(transparent,#ffe0a0,transparent);transform:rotate(var(--bursta,28deg));filter:drop-shadow(0 0 7px #fae0a9)}
.season-hero-slide .cinema-gold-burst.cinema-2{--burstx:31%;--bursty:24%;--bursta:-43deg;height:44px}
.season-hero-slide .cinema-gold-burst.cinema-3{--burstx:45%;--bursty:42%;--bursta:95deg;height:52px}
.season-hero-slide .cinema-gold-streamer{right:var(--streamx,12%);top:var(--streamy,20%);width:3px;height:100px;border-radius:50%;background:linear-gradient(transparent,#fae2a3,transparent);transform:rotate(48deg)}
.season-hero-slide .cinema-gold-streamer.cinema-2{--streamx:47%;--streamy:12%;height:65px;transform:rotate(-38deg)}
.season-hero-slide .cinema-gold-streamer.cinema-3{--streamx:22%;--streamy:66%;height:42px;transform:rotate(72deg)}
.season-hero-slide .cinema-year-glow{right:13%;bottom:14%;width:34%;height:30%;background:radial-gradient(ellipse,rgba(255,225,161,.18),transparent 65%);filter:blur(18px)}
/* Spring Awakening */
.season-hero-slide .cinema-silk-cloud{right:var(--cloudx,14%);top:var(--cloudy,30%);width:150px;height:50px;border:2px solid rgba(255,220,164,.28);border-top-color:transparent;border-radius:50%;transform:rotate(-10deg)}
.season-hero-slide .cinema-silk-cloud.cinema-2{--cloudx:39%;--cloudy:61%;width:115px;transform:rotate(24deg)}
.season-hero-slide .cinema-petal{right:var(--petalx,19%);top:var(--petaly,32%);width:12px;height:22px;border-radius:80% 20% 70% 30%;background:linear-gradient(130deg,#fff7c9,#f0bd67);transform:rotate(40deg);box-shadow:0 0 9px rgba(248,225,165,.18)}
.season-hero-slide .cinema-petal.cinema-2{--petalx:39%;--petaly:18%;width:9px;height:17px;transform:rotate(-20deg)}
.season-hero-slide .cinema-petal.cinema-3{--petalx:9%;--petaly:58%;width:8px;height:15px}
.season-hero-slide .cinema-petal.cinema-4{--petalx:30%;--petaly:68%;width:14px;height:21px}
.season-hero-slide .cinema-petal.cinema-5{--petalx:46%;--petaly:45%;width:7px;height:14px}
.season-hero-slide .cinema-lantern-glow{right:var(--lanternx,28%);top:9%;width:95px;height:180px;background:radial-gradient(ellipse,rgba(255,222,153,.22),transparent 76%);filter:blur(13px)}
.season-hero-slide .cinema-lantern-glow.cinema-2{--lanternx:8%;top:3%;width:70px;height:130px}
/* Single graceful arrival, then sparse low-cost ambient glimmer. */
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-star-top,
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-sleigh-trail,
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-garland,
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-snow-sheen,
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-clock-ring,
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-gold-burst,
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-gold-streamer,
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-year-glow,
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-silk-cloud,
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-petal,
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-lantern-glow{
 animation:v32-reveal 1500ms 480ms cubic-bezier(.2,.7,.2,1) both;
}
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-star-top{animation-delay:950ms}
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-gold-burst{animation-delay:1300ms}
.season-hero-slide[data-scene-mode="cinematic"].active .cinema-petal{animation-delay:1200ms}
@keyframes v32-ambient{from{opacity:0}to{opacity:1}}
@keyframes v32-reveal{from{opacity:0;scale:.75}to{opacity:1;scale:1}}
@keyframes v32-twinkle{0%,10%{opacity:.15;scale:.75}55%{opacity:.78;scale:1}100%{opacity:.3;scale:.85}}
/* A settled scene shows its complete composition without replay. */
.season-hero-slide.scene-settled .season-object,
.season-hero-slide.scene-settled.active .season-object{animation:none!important;opacity:1!important;translate:0 0!important;rotate:0deg!important;scale:1!important}
.season-hero-slide.scene-settled .season-scene-halo,
.season-hero-slide.scene-settled.active .season-scene-halo{animation:none!important;opacity:1!important;transform:scale(1)!important}
.season-hero-slide.scene-settled .cinema-decor,
.season-hero-slide.scene-settled.active .cinema-decor{animation:none!important;opacity:1!important;scale:1!important}
/* Still mode uses the same fully laid-out illustration; zero animation. */
.season-hero-slide[data-scene-mode="still"] .season-object,
.season-hero-slide[data-scene-mode="still"] .season-scene-halo{animation:none!important;opacity:1!important;translate:0 0!important;scale:1!important}
.season-hero-slide[data-scene-mode="still"] .cinema-decor{display:none}
/* If an older device requests data saving, preserve the scene but stop decorative ambient animation. */
html.perf-lite .season-hero-slide .cinema-decor{animation:none!important;opacity:.55}
html.perf-lite .season-hero-slide .cinema-stars{display:none}
@media(max-width:767px){
 .slide.season-hero-slide[data-scene-mode="cinematic"] .seasonal-character-scene{opacity:.95}
 .slide.season-hero-slide[data-scene-mode="cinematic"] .content{z-index:5}
 .slide.season-hero-slide[data-scene-mode="cinematic"]::after{background:linear-gradient(0deg,rgba(7,19,27,.94) 0%,rgba(7,19,27,.84) 43%,rgba(7,19,27,.12) 83%)}
 .season-hero-slide .cinema-clock-ring{width:59vw;right:17%;top:12%}
 .season-hero-slide .cinema-clock-ring.cinema-2{width:66vw;right:14%;top:10%}
 .season-hero-slide .cinema-star-top{right:15%;top:14%}
 .season-hero-slide .cinema-sleigh-trail{right:22%;top:17%;width:45%}
 .season-hero-slide .cinema-mist{bottom:32%;left:0;right:-10%;height:45%}
 .season-hero-slide .cinema-floor{bottom:38%;right:-5%;width:90%}
 .season-hero-slide .cinema-stars.cinema-4,.season-hero-slide .cinema-stars.cinema-7{display:none}
 .season-hero-slide .cinema-silk-cloud{right:12%;top:17%;width:90px}
 .season-hero-slide .cinema-silk-cloud.cinema-2{right:42%;top:32%;width:76px}
 .season-hero-slide .cinema-lantern-glow{top:10%;height:105px}
}
@media(prefers-reduced-motion:reduce){
 .season-hero-slide .season-object,.season-hero-slide .cinema-decor,.season-hero-slide .season-scene-halo{animation:none!important;transition:none!important;opacity:1!important;translate:0 0!important;scale:1!important}
 .season-hero-slide .cinema-stars{opacity:.5!important}
}

/* The hand-drawn sleigh is a faint storybook accent behind the main Christmas figures. */
.season-hero-slide .season-sleigh-shadow{width:clamp(160px,33vw,460px);height:clamp(75px,20vh,175px);right:27%;top:12%;z-index:1;filter:drop-shadow(0 0 5px rgba(252,223,166,.2));opacity:.55}
.season-hero-slide.active[data-scene-mode="cinematic"] .season-sleigh-shadow{--entrance-delay:0ms;animation-duration:calc(var(--v32-main,1450ms) * 1.25)}
@media(max-width:767px){.season-hero-slide .season-sleigh-shadow{width:54vw;height:12vh;right:37%;top:13%;opacity:.35}}
/* Low-memory / Save-Data fallback: show complete composition without animation.
   This is intentionally more conservative than reducing particle count alone. */
html.perf-lite .season-hero-slide .season-object,
html.perf-lite .season-hero-slide.active .season-object,
html.perf-lite .season-hero-slide .cinema-decor,
html.perf-lite .season-hero-slide.active .cinema-decor{
 animation:none!important;opacity:1!important;translate:0 0!important;scale:1!important;
}
html.perf-lite .season-hero-slide .cinema-stars{display:none!important}
