/* Ambient layers stay between the scenery and the track, clear of learning UI. */
.ambient-world {position:absolute;inset:21% 0 34%;overflow:hidden;pointer-events:none;z-index:1;contain:paint;}
.mist {position:absolute;left:-15%;width:130%;height:28%;background:radial-gradient(ellipse at 24% 50%,#b9d5d429,transparent 53%),radial-gradient(ellipse at 78% 55%,#c9ded72b,transparent 48%);opacity:.65;will-change:transform;}
.mist-far {top:10%;animation:mist-drift 34s ease-in-out infinite alternate;}
.mist-near {bottom:1%;height:35%;animation:mist-drift 43s ease-in-out -17s infinite alternate-reverse;opacity:.45;}
@keyframes mist-drift {from{transform:translateX(-3%)}to{transform:translateX(4%)}}
.motes {position:absolute;inset:0;}
.motes i {position:absolute;left:var(--x);top:85%;width:3px;height:3px;border-radius:50%;background:#e3cf93;box-shadow:0 0 5px #decc8b;opacity:0;animation:mote-drift 17s linear var(--delay) infinite;}
@keyframes mote-drift {0%,100%{opacity:0;transform:translate(0,0)}20%,65%{opacity:.35}95%{opacity:0;transform:translate(var(--drift),-130px)}}
#gameScene[data-scene='sky-ruins'] .motes i {background:#cce6f4;box-shadow:0 0 5px #d8ebf4;}
#gameScene[data-scene='sky-ruins'] .mist {opacity:.38;}
#gameScene[data-ceremony='paused'] .ambient-world *,#gameScene[data-ceremony='ready-paused'] .ambient-world * {animation-play-state:paused;}
#gameScene[data-ceremony='setup'] .ambient-world,#gameScene[data-motion='reduced'] .ambient-world {display:none;}
.team[data-input-open='true'] .ground-seal {border-color:var(--accent);opacity:.65;box-shadow:0 0 12px var(--accent),inset 0 0 4px var(--accent);}
.victory-sparks {position:absolute;inset:0;z-index:6;pointer-events:none;}
.victory-sparks i {position:absolute;left:50%;bottom:12%;width:5px;height:9px;background:#f2d990;box-shadow:0 0 8px #e6bc60;transform:translate(calc(var(--dx) * var(--rise,0)),calc(var(--dy) * var(--rise,0))) rotate(45deg);}
.team[data-motion='reduced'] .victory-sparks {display:none;}

/* All chapter accents share the landscape blend; no abrupt scene-label switch. */
.sky-wind{position:absolute;inset:0;opacity:calc(var(--world-blend,0) - var(--elite-blend,0));}
.sky-wind i{position:absolute;left:-20%;top:22%;width:18%;height:1px;background:linear-gradient(90deg,transparent,#d8edfa55,transparent);animation:sky-current 9s linear infinite;}
.sky-wind i:nth-child(2){top:43%;animation-delay:-3s;animation-duration:12s;}
.sky-wind i:nth-child(3){top:64%;animation-delay:-6s;animation-duration:10s;}
.sky-wind i:nth-child(4){top:83%;animation-delay:-8s;animation-duration:14s;}
@keyframes sky-current{0%{transform:translateX(0);opacity:0}15%,70%{opacity:.5}100%{transform:translateX(750%);opacity:0}}
#gameScene .mist{opacity:calc(.65 - var(--world-blend,0)*.27 + var(--elite-blend,0)*.12);}
#gameScene .motes{opacity:calc(1 - var(--world-blend,0)*.7 - var(--elite-blend,0)*.3);}
@media(prefers-reduced-motion:reduce){.sky-wind{display:none;}}
