/* Room pieces are revealed by their contact crew, never a separate fade timer. */
.room-piece{clip-path:inset(0 calc((1 - var(--piece-progress,1))*100%) 0 0);opacity:1;translate:0 calc(var(--piece-settle,0)*1px)}
.room-building .room-inner{scrollbar-width:none}.room-build-overlay{position:fixed;inset:0;z-index:1175;pointer-events:none;overflow:hidden}.room-build-world,.room-build-lines{position:absolute;inset:0;width:100%;height:100%}.room-build-world{z-index:2}.room-build-world canvas{width:100%;height:100%;display:block}.room-build-lines{overflow:visible}.room-contact-line{stroke:#c9b4cf;stroke-width:1;fill:none;filter:drop-shadow(0 0 3px #c987ad55)}.room-build-caption{position:absolute;bottom:76px;left:27px;font:7px Space,monospace;letter-spacing:2px;color:#b098b4;background:#0c0911d9;padding:10px 13px}.room-build-skip{font:7px Space,monospace;letter-spacing:.6px;padding:10px;border:1px solid #b98ca7;background:#231725;color:#e6cfe2;white-space:nowrap}.room-building .room-header>span{display:none}.room-building .room-header{gap:8px}
/* The instrument and console occupy the same space during the handoff. */
.mix-deck{position:relative;display:grid;padding:0;min-width:0;perspective:1000px;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#3a2d4244,transparent 75%),#0b0a11}.gramophone-launch,.deck-interface{grid-area:1/1;min-width:0}.gramophone-launch{border:0;background:none;width:100%;padding:0;position:relative;min-height:400px;cursor:pointer;color:#d6c3d9;display:flex;align-items:stretch;justify-content:center;isolation:isolate}.gramophone-launch:hover{background:radial-gradient(ellipse,#a37f9a11,transparent 65%)}.gramophone-stage{position:absolute;inset:0 0 65px;pointer-events:none;display:grid;place-items:center}.gramophone-stage canvas{display:block;width:100%;height:100%}.gramophone-icon{width:160px;fill:#14111e;stroke:#bbb7cc;stroke-width:2}.gramophone-ready .gramophone-icon{display:none}.gramophone-stage::after{content:'';position:absolute;left:14%;right:14%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#8e7c9c77,transparent)}.gramophone-label{position:absolute;bottom:22px;left:10px;right:10px;display:flex;align-items:center;flex-direction:column;gap:9px;pointer-events:none}.gramophone-label small{font:7px Space,monospace;letter-spacing:2px;color:#a38ba7}.gramophone-label strong{font-weight:400;letter-spacing:-.5px;font-size:20px}.gramophone-label em{font:6px Space,monospace;letter-spacing:1.4px;color:#b18ca9;margin-top:3px}.deck-interface{visibility:hidden;opacity:0;pointer-events:none;padding:18px;transform-origin:50% 38%;position:relative}.deck-interface header{min-height:24px;gap:8px}.deck-interface header b{max-width:50%;font-size:9px}.fold-deck{font:6px Space,monospace;border:1px solid #80647e;color:#cbb0c7;background:#231626;padding:7px;white-space:nowrap;margin-left:auto}.mix-deck.deck-open .deck-interface{visibility:visible;opacity:1;pointer-events:auto}.mix-deck.deck-open .gramophone-launch{visibility:hidden;pointer-events:none}.mix-deck.deck-unfolding .gramophone-launch{animation:instrument-dissolve 1.15s both;pointer-events:none}.mix-deck.deck-unfolding .deck-interface{visibility:visible;animation:console-unfold 1.15s cubic-bezier(.2,.8,.2,1) both;pointer-events:none}.mix-deck.deck-unfolding::after{content:'';position:absolute;inset:0;border:1px solid #dab8d6;pointer-events:none;animation:instrument-seam 1.15s both;z-index:5}.mix-deck.deck-folding .gramophone-launch{animation:instrument-return .8s both}.mix-deck.deck-folding .deck-interface{visibility:visible;animation:console-fold .65s both;pointer-events:none}
@keyframes instrument-dissolve{0%,35%{opacity:1;filter:none}75%{opacity:.3;filter:blur(2px)}100%{opacity:0;visibility:hidden;filter:blur(5px)}}
@keyframes console-unfold{0%,30%{opacity:0;clip-path:inset(47% 40% 47% 40%);transform:perspective(900px) rotateX(62deg) scale(.75)}60%{opacity:.8;clip-path:inset(17% 5% 17% 5%)}100%{opacity:1;clip-path:inset(0);transform:perspective(900px) rotateX(0) scale(1)}}
@keyframes instrument-seam{0%,20%{opacity:0;clip-path:inset(46% 50%)}50%{opacity:.5;clip-path:inset(25% 0)}100%{opacity:0;clip-path:inset(0)}}
@keyframes instrument-return{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
@keyframes console-fold{from{opacity:1;transform:rotateX(0) scale(1)}to{opacity:0;transform:rotateX(60deg) scale(.8)}}
@media(min-width:1000px){.deck-interface{padding:14px}.gramophone-launch{min-height:380px}}
@media(max-width:650px){.room-header .room-build-skip{font-size:6px;padding:9px 6px}.room-building .room-header .fine-print-link{display:none}.room-build-caption{left:15px;bottom:70px;font-size:6px;letter-spacing:1px}.gramophone-launch{min-height:390px}.gramophone-stage{inset:0 0 90px}.gramophone-label strong{font-size:21px}.deck-interface{padding:16px}.deck-interface header b{font-size:8px}.fold-deck{padding:7px 5px;font-size:5px}}
@media(prefers-reduced-motion:reduce){.room-piece{clip-path:none;translate:none}.room-build-overlay{display:none}.mix-deck.deck-unfolding .gramophone-launch,.mix-deck.deck-folding .deck-interface{animation:none;visibility:hidden}.mix-deck.deck-unfolding .deck-interface,.mix-deck.deck-folding .gramophone-launch{animation:none;opacity:1;transform:none;clip-path:none}.mix-deck.deck-unfolding::after{display:none}}
.model-loading-note{position:absolute;left:15%;right:15%;top:44%;text-align:center;color:#bda9bf;font:9px/1.8 Space,monospace;letter-spacing:1px;pointer-events:none;background:#0b0911aa;padding:12px}.gramophone-stage:not(.gramophone-ready) canvas{visibility:hidden}
.typewriter-reading{overflow-x:hidden}.resume-access p{overflow-wrap:anywhere}
