/* Dark mode night scene. Everything sits behind the page (z-index 0) and never takes clicks. */
.night-sky{display:none}
html[data-mode=film] .night-sky{display:block;position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;animation:nfade 1.6s ease-out}
@keyframes nfade{from{opacity:0}}
html[data-mode=film] main{position:relative;z-index:1}
.nstar{position:absolute;width:2px;height:2px;background:#dfe6ff;animation:ntwinkle 5s ease-in-out infinite alternate}
.nstar.big{width:3px;height:3px;box-shadow:0 0 6px rgba(200,215,255,.7)}
@keyframes ntwinkle{from{opacity:.15}to{opacity:.9}}
.nmoon{position:absolute;top:118px;right:17vw;filter:drop-shadow(0 0 18px rgba(210,222,255,.45))}
.nmoon-glow{position:absolute;top:66px;right:calc(17vw - 60px);width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(190,205,255,.16),transparent 70%)}
.ncloud{position:absolute;left:-160px;animation:ncloud linear infinite}
@keyframes ncloud{from{transform:translateX(-10vw)}to{transform:translateX(115vw)}}
.nset{position:absolute;bottom:0}
.nstudio{left:max(8px,calc((100vw - 1080px)/4 - 80px))}
.nlamp{right:max(24px,calc((100vw - 1080px)/4 - 18px))}
.nset svg{display:block;position:relative;z-index:1}
.nglow{position:absolute;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,196,110,.34),rgba(255,160,70,.08) 45%,transparent 70%);mix-blend-mode:screen;z-index:2}
.nglow.win{background:radial-gradient(circle,rgba(255,214,140,.55),rgba(255,170,80,.12) 50%,transparent 72%);animation:nflicker 4s ease-in-out infinite alternate}
.nglow.lampg{background:radial-gradient(circle,rgba(255,206,120,.30),rgba(255,170,90,.07) 55%,transparent 72%);animation:nflicker 3.2s ease-in-out infinite alternate}
@keyframes nflicker{from{opacity:.88}to{opacity:1}}
.nsmoke{position:absolute;left:118px;top:0;width:10px;height:10px;background:#5b6078;border-radius:2px;z-index:0}
.nfly{position:absolute;width:3px;height:3px;background:#f7ffb0;box-shadow:0 0 8px 2px rgba(240,255,150,.55);animation:nfly ease-in-out infinite alternate}
@keyframes nfly{0%{transform:translate(0,0);opacity:.2}30%{opacity:1}60%{transform:translate(26px,-18px);opacity:.4}100%{transform:translate(-14px,-34px);opacity:.9}}
.nrain{position:absolute;inset:0;opacity:0;transition:opacity 2.5s ease}
.nrain.on{opacity:1}
.nrain i{position:absolute;top:-10%;width:1px;height:14px;background:linear-gradient(transparent,rgba(170,190,255,.55));animation:nrain linear infinite}
@keyframes nrain{to{transform:translate(-40px,112vh)}}
@media(prefers-reduced-motion:reduce){.nstar,.ncloud,.nfly,.nglow{animation:none!important}}
/* the night pass does the shading now, so drop the old pale sticker outline for a grounded shadow */
html[data-mode=film][data-theme=dark] .actor .sprite,html[data-mode=film][data-theme=dark] .cfx .sprite,html[data-mode=film][data-theme=dark] .crew-char .sprite,html[data-mode=film][data-theme=dark] .fx .sprite{filter:drop-shadow(0 2px 0 rgba(6,5,14,.6)) drop-shadow(0 0 12px rgba(130,150,255,.10))}
html[data-mode=film][data-theme=dark] .cfx.flame .sprite,html[data-mode=film][data-theme=dark] .cfx.flick .sprite,html[data-mode=film][data-theme=dark] .fx.flame .sprite,html[data-mode=film][data-theme=dark] .fx.flick .sprite{filter:drop-shadow(0 0 10px rgba(255,170,60,.85))}

.nset{position:absolute;bottom:0;z-index:1}
.nset svg{display:block;position:relative;z-index:1}
.nset .nglow{z-index:2}
.nscaf{position:absolute;left:0;bottom:0;z-index:3;opacity:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 18px,#c9a24a 18px 21px),repeating-linear-gradient(0deg,transparent 0 22px,#a8853a 22px 25px)}
.npuff{position:absolute;border-radius:1px;z-index:4;pointer-events:none}
.nbuilder{position:absolute;bottom:0;left:0;z-index:5}
.nbuilder svg{display:block;filter:drop-shadow(0 2px 0 rgba(6,5,14,.6))}
.nsay{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);background:#f4f1ea;color:#15121f;border:2px solid #15121f;border-radius:3px;padding:4px 7px;font:9px/1.3 'Silkscreen',ui-monospace,monospace;letter-spacing:.04em;white-space:nowrap;box-shadow:3px 3px 0 #15121f}
