/* Additive stage polish; no resident or corridor coordinate overrides. */
.white-room .door-label-spacer { display: none; }
.white-room[data-room-shell] .door .door-label {
  position: absolute; top: 13%; left: 50%; width: 82%; max-width: none;
  margin: 0; padding: .7rem .35rem; transform: translateX(-50%);
  border-block: 1px solid rgba(70,75,70,.18); color: #62685f;
  font-size: .65rem; line-height: 1.7; letter-spacing: .15em;
  pointer-events: none;
}
.white-room[data-room-shell] .room::before {
  bottom: calc(100% - var(--white-wall-floor-y, 76%));
  border-bottom: 0; box-shadow: inset 0 0 70px rgba(0,0,0,.05);
}
.dance-controls {
  position: fixed; z-index: 45; left: max(1rem, env(safe-area-inset-left));
  bottom: max(1rem, env(safe-area-inset-bottom)); display: flex; gap: .45rem;
}
.dance-controls button {
  min-height: 44px; padding: .65rem .9rem; font: inherit; font-size: .7rem;
  letter-spacing: .13em; border: 1px solid rgba(110,140,135,.4);
  background: rgba(15,21,24,.92); color: #b7dbd5; cursor: pointer;
}
.dance-controls button:disabled { opacity: .35; cursor: default; }
.dance-controls button:focus-visible { outline: 2px solid #70e5ca; outline-offset: 3px; }
.dance-controls [hidden] { display: none; }
.white-room[data-room-shell] .room > .door-wrap {
  transition: opacity .35s ease;
}
.white-room[data-room-shell]:is(.dance-mode,.event-mode) .room > .door-wrap {
  opacity: 0; pointer-events: none;
}
.dance-controls--corridor { position: static; flex: 0 0 auto; padding: 0 !important; }
.dance-controls--corridor button { font-size: .62rem; background: transparent; border-color: rgba(255,255,255,.13); }
.project-corridor-room .corridor-selector, .project-corridor-room .corridor-note {
  transition: opacity .2s ease, translate .2s ease, visibility 0s;
}
.project-corridor-room.corridor-moving .corridor-selector,
.project-corridor-room.corridor-moving .corridor-note,
.project-corridor-room.corridor-moving .dance-controls--corridor {
  opacity: 0; translate: 0 1.5rem; pointer-events: none; visibility: hidden;
  transition: opacity .2s ease, translate .2s ease, visibility 0s .2s;
}
.project-corridor-room .dance-controls--corridor { transition: opacity .2s, translate .2s; }
.digital-stage {
  position: fixed; inset: 0; z-index: 3; overflow: hidden; pointer-events: none;
  background: transparent;
  opacity: 0; perspective: 1000px; --show-running: running;
}
.digital-stage[hidden] { display: none; }
.digital-stage.is-active { animation: stage-lights-down 2.2s both; }
.digital-stage.is-paused { --show-running: paused; }
.digital-stage, .digital-stage * { animation-play-state: var(--show-running, running) !important; }
.digital-stage[data-phase="7"] { animation: stage-lights-up 1.6s both; }
.digital-grid {
  position: absolute; inset: 50% -20% -35%; transform: rotateX(62deg);
  transform-origin: top; opacity: .32;
  background: repeating-linear-gradient(90deg, transparent 0 79px, #437aa455 80px 81px), repeating-linear-gradient(0deg, transparent 0 59px, #659cbd55 60px 61px);
  mask-image: linear-gradient(transparent, #000 28%, transparent 100%);
}
.digital-lasers { position: absolute; inset: 0; opacity: 0; }
.digital-stage:is([data-phase="2"],[data-phase="3"],[data-phase="4"],[data-phase="5"],[data-phase="6"]) .digital-lasers { opacity:.48; }
.digital-lasers i {
  position:absolute; top:18%; left:-5%; width:68%; height:1px;
  background: linear-gradient(90deg, transparent, #74e9ff, transparent);
  box-shadow: 0 0 12px #2fbbff, 0 0 32px #307acd77;
  transform-origin: 5% 50%; animation: laser-scan 7s ease-in-out infinite alternate;
}
.digital-lasers i:nth-child(2) { top:74%; left:-8%; width:62%; animation-delay:-3s; }
.digital-lasers i:nth-child(3) { top:18%; right:-5%; left:auto; width:68%; transform-origin:95% 50%; animation-delay:-5s; animation-direction:alternate-reverse; background:linear-gradient(90deg,transparent,#c786ff,transparent); }
.digital-lasers i:nth-child(4) { top:74%; right:-8%; left:auto; width:62%; transform-origin:95% 50%; animation-delay:-1s; animation-direction:alternate-reverse; background:linear-gradient(90deg,transparent,#74e9ff,transparent); }
.digital-lasers i:nth-child(n+5) { display:none; }
.digital-stage[data-phase="5"] .digital-lasers { opacity:.72; }
.digital-stage[data-phase="6"] .digital-lasers { opacity:.26; }
.digital-project-wall {
  --dance-core-clearance:clamp(17rem,28vw,22rem);
  position:absolute; top:clamp(4.8rem,9vh,6.5rem); right:clamp(8%,12vw,15%); bottom:calc(var(--white-floor-depth,22%) + .35rem); left:clamp(8%,12vw,15%); display:grid;
  grid-template-columns:minmax(0,1fr) var(--dance-core-clearance) minmax(0,1fr);
  grid-template-rows:1fr; column-gap:clamp(.5rem,2vw,2rem);
  padding:clamp(4.8rem,12vh,7.5rem) clamp(.2rem,1vw,.8rem) clamp(3rem,8vh,5.5rem);
  overflow:hidden; perspective:1100px; transform-style:preserve-3d;
}
.digital-project {
  --card-angle:0deg; --card-tilt:14deg; --card-depth:18px; --card-visibility:.86;
  position:relative; top:auto; left:auto; box-sizing:border-box; width:min(100%,20rem); max-width:20rem; height:clamp(9rem,28vh,12.5rem); align-self:center; justify-self:center;
  overflow:hidden; padding:1.25rem; border:1px solid #56bcdb66; background:linear-gradient(135deg,#0d365447,#10152988);
  box-shadow: inset 0 0 32px #467d9022, 0 0 30px #488fd514;
  color:#a2e9f4; opacity:var(--card-visibility); transform:translateZ(var(--card-depth)) rotateY(calc(var(--card-tilt) + var(--card-angle)));
  transform-origin:50% 50%; transform-style:preserve-3d; backface-visibility:hidden; will-change:transform,opacity;
  transition:opacity .12s linear,filter .16s linear; animation:panel-arrival 1.3s both,panel-drift 8s 1.3s ease-in-out infinite alternate;
}
.digital-project::before { position:absolute; z-index:2; top:-15%; bottom:-15%; left:-22%; width:20%; content:""; opacity:.45; background:linear-gradient(90deg,transparent,#b8f8ff99,transparent); filter:blur(2px); transform:skewX(-12deg); animation:project-card-scan 4.8s linear infinite; }
.digital-project::after { content: ""; display: block; height: 6rem; margin-top: 1rem; opacity: .3; background: repeating-linear-gradient(90deg, transparent 0 23px, #79e0fa 24px 25px), repeating-linear-gradient(0deg, transparent 0 23px, #79e0fa 24px 25px); }
.digital-project small, .digital-project strong, .digital-project span { display: block; }
.digital-project strong { margin: .7rem 0; font-size: clamp(.8rem, 1.4vw, 1.2rem); letter-spacing: .12em; text-transform: uppercase; }
.digital-project small, .digital-project span { font-size: .65rem; line-height: 1.7; letter-spacing: .1em; }
.digital-project--0 { grid-column:1; }
.digital-project--1 { grid-column:3; --card-tilt:-14deg; --card-depth:18px; }
.digital-project.is-turning { filter:brightness(1.18) saturate(1.15) drop-shadow(0 0 .55rem rgba(86,220,244,.28)); }
.digital-particles { position: absolute; inset: 15% 0 5%; opacity: .35; background-image: radial-gradient(circle, #bdf6ff 1px, transparent 2px); background-size: 97px 89px; mask-image: linear-gradient(90deg, #000, transparent 38% 62%, #000); animation: particle-rise 9s linear infinite; }
/* Shared deep-stage projection. It is a passive visual layer: DANCE/EVENT
   body states already own its lifecycle, while the Resident stays above it. */
.white-depth-stage {
  --depth-cyan:#31dff2; --depth-blue:#447dff; --depth-violet:#a55dff;
  position:fixed; z-index:2; inset:0; overflow:hidden; opacity:0; pointer-events:none; perspective:1100px;
  transition:opacity .48s ease; will-change:opacity;
}
.white-depth-stage::before { position:absolute; z-index:0; inset:0; content:""; opacity:0; transition:opacity .7s ease; }
.dance-mode .white-depth-stage::before { opacity:1; background:linear-gradient(180deg,rgba(2,5,14,.97),rgba(3,9,18,.94)); }
.event-mode .white-depth-stage::before { opacity:1; background:radial-gradient(ellipse at 50% 48%,rgba(7,46,57,.38),rgba(8,24,31,.54) 62%,rgba(3,13,18,.62)); }
.white-room:is(.dance-mode,.event-mode) .white-depth-stage { opacity:1; }
.white-depth-stage__aperture {
  position:absolute; z-index:1; top:clamp(4.8rem,9vh,6.5rem); right:clamp(8%,12vw,15%); bottom:calc(var(--white-floor-depth,22%) + .35rem); left:clamp(8%,12vw,15%);
  overflow:hidden; isolation:isolate; transform:scaleX(.72) scaleY(.9); transform-origin:50% 58%; transform-style:preserve-3d;
  transition:transform 1.05s cubic-bezier(.18,.72,.2,1);
  clip-path:polygon(13% 0,87% 0,100% 100%,0 100%);
  background:
    radial-gradient(ellipse at 50% 48%,rgba(32,170,201,.18),rgba(4,18,32,.76) 42%,rgba(1,7,14,.94) 76%),
    linear-gradient(180deg,rgba(5,12,25,.94),rgba(2,8,17,.98));
  box-shadow:inset 0 0 6rem rgba(44,204,232,.09),0 0 4rem rgba(4,36,55,.22);
  mask-image:linear-gradient(90deg,transparent,black 8% 92%,transparent),linear-gradient(180deg,transparent,black 6% 94%,transparent);
  mask-composite:intersect;
}
.white-room:is(.dance-mode,.event-mode) .white-depth-stage__aperture { transform:scale(1); }
.white-room.dance-mode .journey-resident--white { z-index:4; }
.white-depth-stage__haze {
  position:absolute; z-index:1; inset:4% 8% 8%; opacity:.58;
  background:
    radial-gradient(ellipse at 50% 46%,rgba(90,233,249,.2),transparent 35%),
    linear-gradient(76deg,transparent 29%,rgba(49,223,242,.07) 49%,transparent 58%),
    linear-gradient(-76deg,transparent 29%,rgba(165,93,255,.06) 49%,transparent 58%);
  filter:blur(9px); animation:depth-haze 7s ease-in-out infinite alternate;
}
.white-depth-stage__frames { position:absolute; z-index:2; inset:0; transform-style:preserve-3d; }
.white-depth-stage__frames i { position:absolute; border:1px solid rgba(78,203,225,.16); clip-path:polygon(10% 0,90% 0,100% 100%,0 100%); box-shadow:inset 0 0 1.1rem rgba(37,195,222,.05),0 0 .8rem rgba(49,223,242,.05); }
.white-depth-stage__frames i:nth-child(1) { inset:3% 4% 2%; opacity:.7; }
.white-depth-stage__frames i:nth-child(2) { inset:10% 10% 9%; opacity:.58; }
.white-depth-stage__frames i:nth-child(3) { inset:18% 17% 17%; opacity:.46; }
.white-depth-stage__frames i:nth-child(4) { inset:27% 25% 26%; opacity:.34; }
.white-depth-stage__frames i:nth-child(5) { inset:37% 34% 36%; opacity:.24; }
.white-depth-stage__particles {
  position:absolute; z-index:3; inset:4% 6%; opacity:.48;
  background-image:
    radial-gradient(circle,var(--depth-cyan) 0 1px,transparent 1.5px),
    radial-gradient(circle,#a9f9ff 0 1px,transparent 1.7px),
    radial-gradient(circle,var(--depth-violet) 0 1px,transparent 1.6px);
  background-position:0 0,2.7rem 1.8rem,4.1rem 3.2rem; background-size:6.7rem 5.9rem,9.5rem 8.1rem,13rem 11rem;
  mask-image:radial-gradient(ellipse at 50% 48%,black 0 38%,rgba(0,0,0,.65) 58%,transparent 83%);
  animation:depth-particles-far 14s linear infinite;
}
.white-depth-stage__grid {
  position:absolute; z-index:4; right:-12%; bottom:-36%; left:-12%; height:72%; opacity:.52;
  background:
    repeating-linear-gradient(90deg,transparent 0 5.9%,rgba(74,207,231,.2) 6% 6.15%,transparent 6.25% 12%),
    repeating-linear-gradient(0deg,transparent 0 11.7%,rgba(84,181,220,.18) 12% 12.25%,transparent 12.5% 24%);
  mask-image:linear-gradient(transparent 2%,black 36%,transparent 92%);
  transform:rotateX(67deg); transform-origin:50% 0; animation:depth-grid-travel 8s linear infinite;
}
.white-depth-content { position:absolute; z-index:5; inset:0; opacity:0; transition:opacity .7s ease; }
.dance-mode .white-depth-content--dance,.event-mode .white-depth-content--event { opacity:1; }
.white-depth-content--dance { display:grid; place-items:center; padding-bottom:8%; }
.white-depth-content--dance strong {
  position:absolute; top:7%; left:50%; color:rgba(179,246,255,.82); font:400 clamp(.78rem,1.4vw,1.15rem)/1 monospace;
  letter-spacing:.42em; text-shadow:0 0 .7rem rgba(49,223,242,.75),0 0 2.4rem rgba(49,126,255,.42); transform:translateX(-50%);
}
.white-depth-orb { position:absolute; top:44%; left:50%; width:clamp(10rem,24vw,18rem); aspect-ratio:1; translate:-50% -50%; opacity:.82; transform-style:preserve-3d; animation:depth-orb-float 6.5s ease-in-out infinite alternate; }
.white-depth-orb::before {
  position:absolute; inset:8%; content:""; border-radius:50%; opacity:.82;
  background:
    radial-gradient(circle at 50% 50%,rgba(113,241,255,.18),transparent 48%),
    repeating-radial-gradient(circle at 52% 48%,rgba(94,231,246,.52) 0 1px,transparent 1.5px 8px);
  mask-image:radial-gradient(circle,black 0 58%,transparent 76%); filter:drop-shadow(0 0 .75rem rgba(49,223,242,.52));
  animation:depth-orb-points 10s linear infinite;
}
.white-depth-orb::after { position:absolute; inset:18%; content:""; border:1px solid rgba(130,239,250,.34); border-radius:50%; box-shadow:0 0 2rem rgba(49,223,242,.25),inset 0 0 2rem rgba(68,125,255,.16); }
.white-depth-orb i { position:absolute; inset:8%; border:1px solid rgba(87,224,240,.32); border-radius:50%; }
.white-depth-orb i:nth-child(1) { transform:rotateX(66deg); animation:depth-orb-ring 8s linear infinite; }
.white-depth-orb i:nth-child(2) { transform:rotateY(67deg); animation:depth-orb-ring 10s linear infinite reverse; }
.white-depth-orb i:nth-child(3) { transform:rotate(48deg) rotateY(62deg); animation:depth-orb-ring 12s linear infinite; }
.white-depth-orb span { position:absolute; inset:42%; border-radius:50%; background:#b9fbff; box-shadow:0 0 1rem var(--depth-cyan),0 0 3rem var(--depth-blue); animation:depth-core 2.8s ease-in-out infinite alternate; }
.white-depth-content--event { transform-style:preserve-3d; }
.white-depth-avatar { position:absolute; top:8%; left:7%; width:clamp(7.5rem,17vw,13rem); height:68%; opacity:0; transform:translateZ(-40px) rotateY(8deg); filter:drop-shadow(0 0 .8rem rgba(49,223,242,.42)); }
.white-depth-avatar svg { width:100%; height:100%; overflow:visible; fill:none; stroke:var(--depth-cyan); stroke-width:1.1; }
.depth-avatar-layer { opacity:0; }
.depth-avatar-layer--scan { fill:#aaf9ff; stroke:none; filter:drop-shadow(0 0 4px var(--depth-cyan)); }
.depth-avatar-layer--mesh { stroke:#66e3ef; stroke-width:.8; }
.depth-avatar-layer--rig { stroke:#b782ff; stroke-width:1.2; }
.depth-avatar-layer--rig circle { fill:#d8bfff; stroke:none; }
.depth-avatar-layer--motion { stroke:#65b8ff; stroke-width:1; stroke-dasharray:5 8; }
.white-depth-avatar__scanline { position:absolute; top:8%; right:4%; left:4%; height:1px; opacity:0; background:linear-gradient(90deg,transparent,#c8fcff,transparent); box-shadow:0 0 .65rem var(--depth-cyan); }
.white-depth-sequence { position:absolute; top:24%; right:11%; left:11%; display:grid; grid-template-columns:minmax(0,1fr) var(--resident-safe-width,clamp(10rem,24vw,16rem)) minmax(0,1fr); grid-template-rows:repeat(3,auto); gap:.72rem clamp(.65rem,2.4vw,2.4rem); align-items:center; margin:0; padding:.2rem 0; list-style:none; }
.white-depth-sequence li { display:flex; align-items:center; gap:.48rem; color:rgba(190,247,252,.92); font:400 clamp(.5rem,.78vw,.68rem)/1.2 monospace; letter-spacing:.12em; opacity:0; text-shadow:0 0 .65rem rgba(49,223,242,.72); white-space:nowrap; }
.white-depth-sequence li::before,.white-depth-sequence li::after { width:clamp(.85rem,2.2vw,2.2rem); height:1px; content:""; background:linear-gradient(90deg,rgba(49,223,242,.9),transparent); box-shadow:0 0 .45rem rgba(49,223,242,.62); }
.white-depth-sequence li:nth-child(-n+3) { grid-column:1; }
.white-depth-sequence li:nth-child(-n+3)::after { display:none; }
.white-depth-sequence li:nth-child(n+4) { grid-column:3; justify-content:flex-end; text-align:right; }
.white-depth-sequence li:nth-child(n+4)::before { display:none; }
.white-depth-sequence li:nth-child(n+4)::after { background:linear-gradient(90deg,transparent,rgba(49,223,242,.9)); }
.white-depth-sequence li:nth-child(1),.white-depth-sequence li:nth-child(4) { grid-row:1; }
.white-depth-sequence li:nth-child(2),.white-depth-sequence li:nth-child(5) { grid-row:2; }
.white-depth-sequence li:nth-child(3),.white-depth-sequence li:nth-child(6) { grid-row:3; }
.white-depth-resident-focus { position:absolute; top:39%; left:50%; width:clamp(10rem,19vw,15rem); aspect-ratio:1; opacity:0; transform:translate(-50%,-50%) scale(.62); }
.white-depth-resident-focus i { position:absolute; inset:0; border:1px solid rgba(120,235,246,.44); border-radius:50%; box-shadow:0 0 2rem rgba(49,223,242,.2),inset 0 0 1.5rem rgba(49,223,242,.12); }
.white-depth-resident-focus::before,.white-depth-resident-focus::after { position:absolute; content:""; border:1px solid rgba(120,235,246,.3); border-radius:50%; }
.white-depth-resident-focus::before { inset:12%; animation:depth-orb-ring 9s linear infinite; }
.white-depth-resident-focus::after { inset:26%; border-style:dashed; animation:depth-orb-ring 12s linear infinite reverse; }
.white-depth-resident-focus span { position:absolute; right:auto; bottom:calc(100% + .68rem); left:50%; width:max-content; color:rgba(211,251,255,.96); font:400 clamp(.56rem,.82vw,.72rem)/1 monospace; letter-spacing:.28em; text-shadow:0 0 .72rem rgba(49,223,242,.86); transform:translateX(-50%); }
.event-mode .white-depth-avatar { display:none; }
.event-mode:has(.event-projection[data-phase="4"]) .white-depth-sequence li { animation:event-step-reveal .72s ease-out both; }
.event-mode:has(.event-projection[data-phase="4"]) .white-depth-sequence li:nth-child(2) { animation-delay:.12s; }
.event-mode:has(.event-projection[data-phase="4"]) .white-depth-sequence li:nth-child(3) { animation-delay:.24s; }
.event-mode:has(.event-projection[data-phase="4"]) .white-depth-sequence li:nth-child(4) { animation-delay:.36s; }
.event-mode:has(.event-projection[data-phase="4"]) .white-depth-sequence li:nth-child(5) { animation-delay:.48s; }
.event-mode:has(.event-projection[data-phase="4"]) .white-depth-sequence li:nth-child(6) { animation-delay:.6s; }
.event-mode:has(.event-projection:is([data-phase="5"],[data-phase="6"])) .white-depth-sequence li { opacity:.78; }
.event-mode:has(.event-projection[data-phase="5"]),.event-mode:has(.event-projection[data-phase="6"]) { --depth-focus-on:1; }
.event-mode:has(.event-projection:is([data-phase="4"],[data-phase="5"],[data-phase="6"])) .white-depth-resident-focus { opacity:.74; transform:translate(-50%,-50%) scale(1); transition:opacity .75s,transform 1s cubic-bezier(.2,.75,.2,1); }
.event-mode:has(.event-projection[data-phase="6"]) .white-depth-resident-focus { opacity:.5; }
@keyframes depth-haze { from { opacity:.35; transform:scale(.96); } to { opacity:.64; transform:scale(1.04); } }
@keyframes depth-particles-far { to { background-position:0 -5.9rem,2.7rem -6.3rem,4.1rem -7.8rem; } }
@keyframes depth-grid-travel { to { background-position:0 0,0 24%; } }
@keyframes depth-orb-float { from { transform:translateZ(-70px) translateY(.35rem) rotate(-1deg); } to { transform:translateZ(-70px) translateY(-.55rem) rotate(1deg); } }
@keyframes depth-orb-points { to { rotate:360deg; } }
@keyframes depth-orb-ring { to { rotate:360deg; } }
@keyframes depth-core { from { opacity:.55; scale:.72; } to { opacity:1; scale:1.08; } }
@keyframes depth-avatar-step { 0% { opacity:0; filter:blur(3px); } 24%,72% { opacity:.82; filter:none; } 100% { opacity:.12; filter:blur(1px); } }
@keyframes depth-avatar-scan { from { top:8%; opacity:0; } 18%,78% { opacity:.72; } to { top:92%; opacity:0; } }
@keyframes depth-label-step { 0% { opacity:0; translate:0 .3rem; } 24%,72% { opacity:.72; translate:0 0; } 100% { opacity:.22; translate:0 0; } }
@keyframes event-step-reveal { from { opacity:0; translate:0 .35rem; filter:blur(3px); } to { opacity:.88; translate:0 0; filter:none; } }
.event-projection {
  --event-accent:#00dff3; --event-accent-soft:#c3fbff; --event-ink:#9af7ff;
  position:fixed; z-index:20; inset:clamp(4.8rem,9vh,6.5rem) clamp(8%,12vw,15%) calc(var(--white-floor-depth,22%) + .35rem);
  overflow:hidden; pointer-events:none; color:var(--event-ink); font-family:monospace; letter-spacing:.16em;
  opacity:1; isolation:isolate; perspective:1100px; transform-style:preserve-3d;
}
.event-projection[hidden] { display:none; }
.event-projection::before {
  position:fixed; z-index:-2; inset:0; content:""; opacity:0;
  background:radial-gradient(ellipse at 50% 52%,rgba(229,255,255,.03),rgba(8,51,59,.12) 58%,rgba(1,21,27,.22));
  transition:opacity .7s ease;
}
.event-projection.is-active::before { opacity:1; }
.white-room.event-mode .journey-resident--white { z-index:24; }
.event-projection__field { position:absolute; z-index:2; inset:0; transform-style:preserve-3d; }
.event-projection__phase {
  position:absolute; z-index:5; right:0; bottom:.35rem; left:0; margin:0;
  color:rgba(157,245,252,.72); font-size:clamp(.5rem,.75vw,.65rem);
  letter-spacing:.24em; text-align:center; text-shadow:0 0 .7rem rgba(0,213,236,.7);
}
.event-projection__beams { position:absolute; z-index:-1; inset:-8%; overflow:hidden; opacity:0; transition:opacity .65s ease; }
.event-projection.is-active .event-projection__beams { opacity:.78; }
.event-projection__beams i {
  position:absolute; top:58%; left:50%; width:70vmax; height:1px; opacity:0; transform-origin:0 50%;
  background:linear-gradient(90deg,rgba(196,253,255,.9),rgba(0,223,243,.34) 17%,transparent 70%);
  box-shadow:0 0 5px var(--event-accent),0 0 18px rgba(0,211,239,.32);
}
.event-projection__beams i:nth-child(1) { --beam-delay:.02s; transform:rotate(-158deg); }
.event-projection__beams i:nth-child(2) { --beam-delay:.13s; transform:rotate(158deg); }
.event-projection__beams i:nth-child(3) { --beam-delay:.24s; transform:rotate(-24deg); }
.event-projection__beams i:nth-child(4) { --beam-delay:.35s; transform:rotate(24deg); }
.event-projection__beams i:nth-child(5) { --beam-delay:.46s; transform:rotate(-90deg); }
.event-projection.is-active .event-projection__beams i { animation:event-beam-in .7s var(--beam-delay) ease-out forwards,event-beam-drift 4.6s calc(var(--beam-delay) + .7s) ease-in-out infinite alternate; }
.event-projection__particles {
  position:absolute; z-index:0; inset:10% 16% 2%; opacity:0;
  background-image:radial-gradient(circle,var(--event-accent) 0 1px,transparent 1.6px),radial-gradient(circle,var(--event-accent-soft) 0 1px,transparent 1.7px);
  background-position:0 0,2.2rem 1.4rem; background-size:6.4rem 5.6rem,7.8rem 7rem;
  mask-image:radial-gradient(ellipse at 50% 58%,#000 0 19%,rgba(0,0,0,.72) 38%,transparent 72%);
}
.event-projection.is-active .event-projection__particles { animation:event-particles-in 1.3s ease-out forwards,event-particles-drift 4.8s 1.3s ease-in-out infinite alternate; }
.event-projection [data-game-intro-stage] {
  position:absolute; z-index:2; margin:0; opacity:0; filter:blur(7px); transform:translateY(.75rem) scale(.97);
  transition:opacity .42s ease,filter .46s ease,transform .46s ease;
}
.event-projection [data-game-intro-stage].is-visible { opacity:1; filter:none; transform:none; }
.event-projection [data-game-intro-stage].is-past { opacity:0; filter:blur(4px); transform:translateY(-.45rem) scale(1.02); }
.event-projection__title {
  top:5%; left:50%; width:min(94%,48rem); color:#bdfbff; text-align:center;
  font-size:clamp(1.05rem,2.5vw,2rem); font-weight:500; letter-spacing:.34em;
  text-shadow:0 0 8px rgba(0,226,247,.72),0 0 28px rgba(0,194,219,.38); transform:translate(-50%,.75rem) scale(.97)!important;
}
.event-projection__title.is-visible { transform:translate(-50%,0) scale(1)!important; }
.event-projection__title.is-past { transform:translate(-50%,-.5rem) scale(1.02)!important; }
.event-projection__forms { inset:0; transform-style:preserve-3d; }
.event-projection__forms.is-visible { opacity:1; }
.event-hologram {
  position:absolute; width:clamp(6.5rem,13vw,10rem); height:clamp(12rem,35vh,18rem); margin:0; opacity:0;
  color:#8df7ff; transform-style:preserve-3d; filter:drop-shadow(0 0 .7rem rgba(0,217,240,.62));
}
.event-hologram::before { position:absolute; left:12%; right:12%; bottom:-.25rem; height:.65rem; content:""; border:1px solid rgba(0,205,230,.48); border-radius:50%; background:radial-gradient(ellipse,rgba(0,224,243,.22),transparent 70%); box-shadow:0 0 1rem rgba(0,217,240,.35); }
.event-hologram svg { width:100%; height:100%; overflow:visible; fill:rgba(0,214,234,.055); stroke:#69efff; stroke-width:1.45; vector-effect:non-scaling-stroke; }
.event-hologram__detail { opacity:.52; stroke-width:.75; stroke-dasharray:4 6; }
.event-hologram__points,.event-hologram__joints { fill:#8ef8ff; stroke:none; filter:drop-shadow(0 0 4px #00dff3); }
.event-hologram__scan { position:absolute; z-index:2; top:8%; left:5%; right:5%; height:1px; opacity:0; background:linear-gradient(90deg,transparent,var(--event-accent-soft),transparent); box-shadow:0 0 .5rem var(--event-accent); }
.event-hologram figcaption { position:absolute; left:50%; bottom:-1.7rem; width:max-content; color:#a9f9ff; font-size:clamp(.47rem,.76vw,.63rem); font-style:normal; letter-spacing:.15em; text-shadow:0 0 .6rem rgba(0,208,229,.82); transform:translateX(-50%); }
.event-hologram figcaption small { margin-right:.5rem; color:#e0fdff; font:inherit; opacity:.82; }
.event-hologram--human { top:34%; left:15%; transform:translateZ(12px) rotateY(10deg); }
.event-hologram--body { top:12%; left:50%; transform:translateX(-50%) translateZ(-58px) scale(.78); }
.event-hologram--rig { top:34%; right:15%; transform:translateZ(12px) rotateY(-10deg); }
.event-projection__forms.is-visible .event-hologram { animation:event-hologram-build .78s var(--holo-delay,0s) ease-out forwards,event-hologram-float 4.2s calc(var(--holo-delay,0s) + .78s) ease-in-out infinite alternate; }
.event-projection__forms.is-visible .event-hologram--body { --holo-delay:.28s; }
.event-projection__forms.is-visible .event-hologram--rig { --holo-delay:.56s; }
.event-projection__forms.is-visible .event-hologram__scan { animation:event-scan 1.65s var(--holo-delay,0s) linear infinite; }
.event-projection[data-phase="5"] .event-projection__forms.is-past { opacity:.24; filter:none; transform:none; }
.event-projection[data-phase="5"] .event-hologram--human { animation:event-converge-left 1.1s ease-in forwards; }
.event-projection[data-phase="5"] .event-hologram--body { animation:event-converge-top 1.1s ease-in forwards; }
.event-projection[data-phase="5"] .event-hologram--rig { animation:event-converge-right 1.1s ease-in forwards; }
.event-projection__convergence { inset:0; }
.event-projection__convergence i { position:absolute; top:58%; left:50%; width:34%; height:1px; opacity:0; transform-origin:100% 50%; background:linear-gradient(90deg,transparent,var(--event-accent-soft)); box-shadow:0 0 .45rem var(--event-accent); }
.event-projection__convergence i:nth-child(1) { transform:translateX(-100%) rotate(12deg); }
.event-projection__convergence i:nth-child(2) { transform:rotate(-12deg); transform-origin:0 50%; background:linear-gradient(90deg,var(--event-accent-soft),transparent); }
.event-projection__convergence i:nth-child(3) { width:22vh; transform:translate(-100%,-100%) rotate(-90deg); }
.event-projection__convergence .event-resident-core { position:absolute; top:58%; left:50%; width:clamp(8rem,18vw,13rem); aspect-ratio:1; border:1px solid rgba(0,210,232,.55); border-radius:50%; opacity:0; transform:translate(-50%,-50%) scale(.35); box-shadow:0 0 3.2rem rgba(0,218,240,.28),inset 0 0 1.8rem rgba(0,218,240,.18); }
.event-resident-core::before,.event-resident-core::after { position:absolute; content:""; border:1px solid rgba(105,239,255,.48); border-radius:50%; }
.event-resident-core::before { inset:10%; border-style:dashed; animation:depth-orb-ring 8s linear infinite; }
.event-resident-core::after { inset:25%; box-shadow:0 0 1.2rem rgba(0,223,243,.3); animation:depth-orb-ring 5s linear infinite reverse; }
.event-resident-core b { position:absolute; inset:0; display:grid; place-items:center; color:#d7fdff; font-size:clamp(.62rem,1vw,.82rem); font-style:normal; font-weight:500; letter-spacing:.34em; text-indent:.34em; text-shadow:0 0 .8rem #00dff3; }
.event-projection__convergence small { display:none; }
.event-system-rail { position:absolute; top:35%; display:grid; gap:1rem; width:clamp(7.5rem,16vw,12rem); opacity:0; }
.event-system-rail--left { left:10%; text-align:left; }
.event-system-rail--right { right:10%; text-align:right; }
.event-system-rail em { position:relative; display:flex; align-items:center; gap:.5rem; min-width:0; color:#a9f9ff; font-size:clamp(.5rem,.72vw,.62rem); font-style:normal; letter-spacing:.18em; text-shadow:0 0 .6rem rgba(0,213,236,.8); }
.event-system-rail--right em { flex-direction:row-reverse; }
.event-system-rail--left em::after,.event-system-rail--right em::before { flex:1; min-width:.8rem; height:1px; content:""; background:linear-gradient(90deg,#76effa,transparent); box-shadow:0 0 .4rem #00dff3; }
.event-system-rail--right em::before { background:linear-gradient(90deg,transparent,#76effa); }
.event-projection__convergence.is-visible i { animation:event-link-in .72s ease-out forwards; }
.event-projection__convergence.is-visible .event-resident-core { animation:event-core-in 1.15s .16s ease-out forwards,event-core-breathe 2.2s 1.31s ease-in-out infinite alternate; }
.event-projection__convergence.is-visible small { animation:event-label-in .55s .75s ease-out forwards; }
.event-projection__convergence.is-visible .event-system-rail { animation:event-label-in .65s .52s ease-out forwards; }
.event-projection__final { top:9%; left:50%; width:min(90%,34rem); display:grid; place-items:center; gap:.85rem; text-align:center; transform:translate(-50%,.75rem) scale(.97)!important; }
.event-projection__final.is-visible { transform:translate(-50%,0) scale(1)!important; }
.event-projection__final strong { color:#bdfbff; font-size:clamp(.88rem,1.8vw,1.25rem); font-weight:500; letter-spacing:.24em; text-shadow:0 0 10px rgba(0,221,240,.82); }
.event-projection__final span { color:#78edf7; font-size:clamp(.6rem,1vw,.78rem); letter-spacing:.22em; text-shadow:0 0 9px rgba(0,208,229,.72); }
.event-projection[data-phase="6"] .event-projection__beams { opacity:.34; }
.event-projection[data-phase="6"] .event-projection__convergence.is-past { opacity:.32; filter:none; transform:none; }
.event-projection.is-leaving { opacity:0; transition:opacity .7s ease; }
.event-projection.is-paused,.event-projection.is-paused *,.event-paused .white-depth-stage,.event-paused .white-depth-stage * { animation-play-state:paused!important; }
@keyframes event-beam-drift { from { rotate:-2deg; } to { rotate:2deg; } }
@keyframes event-beam-in { from { opacity:0; filter:blur(4px); } to { opacity:.78; filter:none; } }
@keyframes event-particles-in { from { opacity:0; transform:scale(1.45); filter:blur(3px); } to { opacity:.58; transform:scale(.88); filter:none; } }
@keyframes event-particles-drift { from { transform:scale(.88) translateY(.4rem); opacity:.3; } to { transform:scale(.78) translateY(-.4rem); opacity:.58; } }
@keyframes event-hologram-build { from { opacity:0; clip-path:inset(100% 0 0); } to { opacity:.88; clip-path:inset(0); } }
@keyframes event-hologram-float { from { translate:0 .22rem; } to { translate:0 -.32rem; } }
@keyframes event-scan { from { top:8%; opacity:0; } 20%,76% { opacity:.72; } to { top:90%; opacity:0; } }
@keyframes event-converge-left { to { opacity:0; transform:translateZ(-20px) rotateY(10deg) scale(.72); filter:blur(3px); } }
@keyframes event-converge-top { to { opacity:0; transform:translateX(-50%) translateZ(-40px) scale(.62); filter:blur(3px); } }
@keyframes event-converge-right { to { opacity:0; transform:translateZ(-24px) rotateY(-10deg) scale(.72); filter:blur(3px); } }
@keyframes event-link-in { from { opacity:0; scale:.2 1; } to { opacity:.65; scale:1 1; } }
@keyframes event-core-in { from { opacity:0; transform:translate(-50%,-50%) scale(.35); } to { opacity:.72; transform:translate(-50%,-50%) scale(1); } }
@keyframes event-core-breathe { from { opacity:.38; scale:.94; } to { opacity:.72; scale:1.04; } }
@keyframes event-label-in { from { opacity:0; translate:0 .35rem; } to { opacity:.82; translate:0 0; } }
@keyframes stage-lights-down { from { opacity: 0; } to { opacity: 1; } }
@keyframes stage-lights-up { from { opacity: 1; } to { opacity: 0; } }
@keyframes laser-scan { from { rotate:-12deg; } to { rotate:10deg; } }
@keyframes panel-arrival { from { translate:0 1rem; } to { translate:0 0; } }
@keyframes panel-drift { from { translate: 0 0; } to { translate: 0 -.65rem; } }
@keyframes project-card-scan { from { translate:-15% 0; } 45%,100% { translate:720% 0; } }
@keyframes particle-rise { to { background-position: 0 -89px; } }
@media (max-width: 760px) {
  .white-room .door-label-spacer { display: inline-block; visibility: hidden; pointer-events: none; }
  .corridor-selector .dance-controls--corridor { position: absolute; right: .45rem; bottom: .45rem; }
  .digital-project-wall { --dance-core-clearance:calc(clamp(10.5rem,54vw,13rem) + .65rem); top:4.4rem; right:.2rem; bottom:calc(var(--white-floor-depth,22%) + .25rem); left:.2rem; grid-template-columns:minmax(0,1fr) var(--dance-core-clearance) minmax(0,1fr); column-gap:.28rem; padding:5.8rem .3rem 3.4rem; }
  .digital-project { width:100%; height:clamp(7.75rem,24vh,9.5rem); top:auto; padding:.46rem; --card-tilt:10deg; }
  .digital-project--1 { --card-tilt:-10deg; }
  .digital-project strong { font-size: .65rem; overflow-wrap: anywhere; }
  .digital-project span { display: none; }
  .digital-project::after { height: 3rem; }
  .digital-lasers i:nth-child(n+3) { display:none; }
  .digital-particles { background-size: 157px 139px; opacity: .2; }
  .white-room .dance-controls { right:.65rem; bottom:max(.65rem,env(safe-area-inset-bottom)); left:.65rem; display:grid; grid-template-columns:minmax(0,1.65fr) repeat(2,minmax(0,.86fr)); gap:.38rem; }
  .white-room .dance-controls button { min-width:0; padding:.62rem .38rem; font-size:.58rem; letter-spacing:.1em; }
  .white-room .dance-controls button[data-sound-control] { position:fixed; z-index:46; top:4.75rem; right:auto; left:.65rem; min-height:38px; padding:.45rem .6rem; border-color:rgba(90,218,231,.52); background:rgba(4,17,21,.82); color:#aaf8ff; }
  .white-room .journey-resident--white [data-journey-follow] { right:.65rem; bottom:5.35rem; min-height:42px; max-width:calc(100vw - 1.3rem); padding:.55rem .75rem; }
  .white-room.event-mode .dance-controls [data-call-resident],.white-room.dance-mode .dance-controls [data-call-resident] { display:none; }
  .white-room:is(.event-mode,.dance-mode) .dance-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .white-room[data-room-shell] .journey-resident--white canvas { transform:scale(.9); transform-origin:50% 84%; }
  .white-room.event-mode .journey-resident--white { opacity:0; transition:opacity .9s ease,filter .9s ease; filter:blur(5px); }
  .white-room.event-mode:has(.event-projection[data-phase="6"]) .journey-resident--white { opacity:1; filter:none; }
  .white-depth-stage__aperture { top:4.4rem; right:.2rem; bottom:calc(var(--white-floor-depth,22%) + .25rem); left:.2rem; }
  .white-depth-stage__aperture { clip-path:polygon(5% 0,95% 0,100% 100%,0 100%); }
  .white-depth-stage__frames i:nth-child(1) { inset:3% 2% 2%; }
  .white-depth-stage__frames i:nth-child(2) { inset:11% 8% 10%; }
  .white-depth-stage__frames i:nth-child(3) { inset:20% 16% 19%; }
  .white-depth-stage__frames i:nth-child(4) { inset:30% 25% 29%; }
  .white-depth-stage__frames i:nth-child(5) { display:none; }
  .white-depth-content--dance strong { top:6%; font-size:.65rem; letter-spacing:.28em; }
  .white-depth-orb { top:40%; width:clamp(10.5rem,54vw,13rem); opacity:.88; }
  .white-depth-avatar { top:10%; left:5%; width:clamp(5.3rem,24vw,7.5rem); height:56%; }
  .white-depth-sequence { top:24%; right:6%; left:6%; grid-template-columns:minmax(0,1fr) var(--resident-safe-width,7.5rem) minmax(0,1fr); gap:.43rem .18rem; }
  .white-depth-sequence li { gap:.22rem; color:rgba(210,251,255,.96); font-size:clamp(.48rem,2.25vw,.59rem); letter-spacing:.045em; text-shadow:0 0 .6rem rgba(49,223,242,.88); }
  .white-depth-sequence li::before,.white-depth-sequence li::after { width:.7rem; }
  .white-depth-resident-focus { top:42%; left:50%; width:clamp(8rem,36vw,10rem); }
  .white-depth-resident-focus span { bottom:calc(100% + .48rem); font-size:.58rem; letter-spacing:.18em; }
  .event-projection { inset:4.4rem .2rem calc(var(--white-floor-depth,22%) + .25rem); }
  .event-projection.is-active .event-projection__beams { opacity:.92; }
  .event-projection__title { top:4%; width:92%; color:#9af8ff; font-size:.82rem; letter-spacing:.17em; text-shadow:0 0 .65rem rgba(0,226,247,.95),0 0 2rem rgba(0,194,219,.62); }
  .event-projection__phase { bottom:.2rem; padding:0 .5rem; font-size:.49rem; letter-spacing:.12em; }
  .event-hologram { width:clamp(4.9rem,27vw,6.9rem); height:clamp(9rem,28vh,12rem); filter:drop-shadow(0 0 .65rem rgba(0,223,243,.72)); }
  .event-hologram svg { fill:rgba(0,214,234,.07); stroke:#67efff; stroke-width:1.65; }
  .event-hologram__detail { opacity:.62; stroke-width:.9; }
  .event-hologram figcaption { color:#9af8ff; text-shadow:0 0 .6rem rgba(0,226,247,.92); }
  .event-hologram figcaption small { color:#d0fcff; opacity:.9; }
  .event-hologram--human { top:39%; left:6%; transform:translateZ(8px) rotateY(8deg); }
  .event-hologram--body { top:12%; left:50%; transform:translateX(-50%) translateZ(-38px) scale(.7); }
  .event-hologram--rig { top:39%; right:6%; transform:translateZ(8px) rotateY(-8deg); }
  .event-hologram figcaption { bottom:-1.15rem; font-size:.52rem; letter-spacing:.08em; }
  .event-hologram figcaption small { margin-right:.22rem; }
  .event-projection__convergence i { width:42vw; }
  .event-projection__convergence i,.event-projection__convergence .event-resident-core { top:54%;left:50%; }
  .event-projection__convergence .event-resident-core { width:clamp(8.5rem,42vw,11rem); }
  .event-system-rail { top:33%; gap:.75rem; width:29%; }
  .event-system-rail--left { left:5%; }
  .event-system-rail--right { right:5%; }
  .event-system-rail em { font-size:.46rem; letter-spacing:.07em; }
  .event-system-rail--left em::after,.event-system-rail--right em::before { min-width:.35rem; }
  .event-projection__final { top:7%; }
  .event-projection__final strong { color:#9af8ff; font-size:.72rem; letter-spacing:.13em; text-shadow:0 0 .7rem rgba(0,221,240,.92); }
  .event-projection__final span { color:#69e7f3; font-size:.6rem; letter-spacing:.13em; text-shadow:0 0 .65rem rgba(0,208,229,.85); }
  .white-depth-avatar svg { stroke:#7df2ff; stroke-width:1.45; }
}
@media (prefers-reduced-motion: reduce) {
  .digital-lasers i, .digital-project, .digital-project::before, .digital-particles { animation: none; }
  .digital-lasers { opacity: .2 !important; }
  .white-depth-stage :is(.white-depth-stage__haze,.white-depth-stage__particles,.white-depth-stage__grid,.white-depth-orb,.white-depth-orb i,.white-depth-orb span,.depth-avatar-layer,.white-depth-avatar__scanline,.white-depth-sequence li),.white-depth-orb::before { animation:none; }
  .event-mode:has(.event-projection[data-phase="4"]) .depth-avatar-layer--mesh { opacity:.7; }
  .event-projection :is(.event-projection__beams i,.event-projection__particles,.event-hologram,.event-hologram__scan,.event-projection__convergence i,.event-projection__convergence span,.event-projection__convergence small) { animation-duration:.12s; animation-delay:0s; }
  .event-projection [data-game-intro-stage] { filter:none; transition:opacity .1s linear; }
}
/* Kept outside the auto-hidden destination console; never covers the central feet. */
.corridor-dance-minimal { position:fixed;right:1rem;bottom:1rem;z-index:45; }
.corridor-dance-minimal[hidden] { display:none; }
.corridor-dance-minimal button { min-height:44px;padding:.65rem .9rem;background:#080d0e;color:#a6ece0;border:1px solid #49756e;font:inherit;font-size:.7rem;letter-spacing:.12em;cursor:pointer; }
