/* Doom Scroll lab — hero finish for the cinematic timing proposal. Loads after scene.css. */

/* Incandescent color: a dimming filament turns amber before it goes dark. */
#room-warm{position:absolute;inset:0;z-index:2;pointer-events:none;background:#5a2106;mix-blend-mode:multiply;opacity:0}
/* A brief surge before the house fails: the lamps bloom. */
#room-surge{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;mix-blend-mode:screen;
  background:radial-gradient(ellipse 34% 30% at 42% 21%,#ffd9a07a,transparent 70%),radial-gradient(ellipse 34% 30% at 64% 21%,#ffd9a07a,transparent 70%),radial-gradient(ellipse 22% 26% at 90% 34%,#ffb4606b,transparent 72%)}
#room-dim{background:#050302}

/* Story beats come into focus: a lens settling and tracking that tightens as the line lands. */
.story-line{letter-spacing:calc(-.045em + var(--track,0) * 1em)}
@media(max-width:760px),(max-width:1000px) and (orientation:portrait){.story-line{letter-spacing:calc(-.035em + var(--track,0) * 1em)}}
.narrative-ghost{pointer-events:none}
.narrative-ghost .story-line{will-change:auto}

/* Title lockup: status tracks in from a little wider. */
.reveal .final-status{letter-spacing:calc(.16em + var(--track,0) * 1em)}
.reveal>span,.reveal>em{will-change:opacity,color}

/* The veil lifts slowly; the invitation arrives after it, not with it. */
.scene-loader{transition:opacity 1100ms cubic-bezier(.45,0,.2,1)}
.scene-loader .loader-status{transition:opacity 500ms ease-out}
.scene-loader.leaving .loader-status{opacity:0}
/* Only during the arrival (lab-boot.js removes .lab-arriving) so scroll-linked fades stay immediate. */
body.lab-arriving.scene-loading .look{opacity:0;transform:translateY(10px)}
body.lab-arriving .look{transition:opacity 1600ms cubic-bezier(.16,1,.3,1) 350ms,transform 1600ms cubic-bezier(.16,1,.3,1) 350ms}
body.lab-arriving .look .scroll-invite{transition:opacity 1400ms ease 1500ms}
body.lab-arriving.scene-loading .look .scroll-invite{opacity:0}

/* Rain: drops fade at the ends of their run instead of jumping back. */
.rain-drop{animation-timing-function:cubic-bezier(.5,0,.8,.6)}
