/* The entrance has exactly one persistent utility: Get in touch. */
.contact-corner{position:fixed;z-index:60;right:2.6vw;top:24px;border-radius:100px;background:#eee6d5;color:#211f18;padding:15px 25px;font-size:11px;font-weight:700;letter-spacing:.09em;line-height:1;box-shadow:0 2px 15px #0002}
.contact-corner:hover{background:#fff7e6;color:#111}
.masthead,.control-bar,.intro,.intro-coordinate{display:none!important}
.gateway{position:fixed;inset:0;z-index:25;isolation:isolate;overflow:hidden;background:#0b0d0a;opacity:1;visibility:visible;transition:opacity .65s,visibility .65s}
.gateway[hidden]{display:none}
.gateway:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(0deg,#060c0bed,transparent 40%);opacity:0;transition:opacity 1s}
.gateway[data-state=core]:after{opacity:1}
.gateway-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1s}
.gateway.ready .gateway-canvas{opacity:1}
.gateway-backdrop{position:absolute;inset:0;background:url('/images/plates/refined-core.jpg') center/cover;opacity:.5;transition:opacity 1s}
.gateway.ready .gateway-backdrop{opacity:0}
.gateway-word{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:clamp(330px,max(36vw,54vh),780px);padding-bottom:5vh;pointer-events:none;margin:0;font:700 clamp(60px,8.3vw,180px)/1 'Schibsted Grotesk',sans-serif;letter-spacing:-.065em;color:#ede6d5;transition:opacity .65s,transform 1.3s cubic-bezier(.22,1,.36,1);z-index:2}
.core-trigger{position:absolute;left:50%;top:46%;width:min(37vw,60vh);height:min(45vw,67vh);transform:translate(-50%,-50%);border-radius:40%;z-index:3;cursor:pointer;outline-offset:0}
.core-trigger:focus-visible{outline:1px solid #c4b080;box-shadow:0 0 50px #a9dbba20}
.core-trigger:disabled{cursor:wait}
.gateway-cue{position:absolute;bottom:18vh;left:0;width:100%;text-align:center;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#d9c9a5;pointer-events:none;transition:opacity .5s;z-index:2}
.gateway-windows{position:absolute;inset:0;z-index:4;pointer-events:none}
.world-window{position:absolute;left:0;top:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;text-align:left;padding:18px 20px;pointer-events:auto;opacity:0;visibility:hidden;transform:translate(-50%,-50%);color:#f4eedc;isolation:isolate;text-shadow:0 2px 16px #000;transition:opacity .5s,color .3s;overflow:hidden}
.world-window:before{content:'';position:absolute;inset:30% 0 0;background:linear-gradient(transparent,#030b09c4);z-index:-1}
.world-window small{font-size:9px;letter-spacing:.18em;color:#e0c997;line-height:1.5}
.world-window span{font:400 clamp(24px,2.5vw,43px)/1.1 'Cormorant Garamond',Georgia,serif;white-space:nowrap}
.world-window b{position:absolute;right:18px;bottom:21px;font-size:19px;font-weight:400;transition:transform .4s}
.world-window:hover b,.world-window:focus-visible b{transform:translate(3px,-3px)}
.world-window:focus-visible{outline-offset:-4px}
.gateway[data-state=worlds] .world-window{opacity:1;visibility:visible}
.gateway:not([data-state=core]) .gateway-word{opacity:0;transform:scale(1.12);visibility:hidden}
.gateway:not([data-state=core]) .core-trigger{display:none}
.gateway:not([data-state=core]) .gateway-cue{opacity:0}
.gateway[data-state=entering] .world-window{visibility:hidden;opacity:0;pointer-events:none}
body[data-journey]:not([data-journey=room]) .edge-shade{opacity:0}
body[data-journey=returning] .edge-shade{opacity:1}
body[data-journey]:not([data-journey=room]) .room-ui{opacity:0;visibility:hidden}
body[data-journey=room] .room-heading{bottom:45px}
body[data-journey=room] .next-room{bottom:48px}
body[data-journey=room] .gallery-button{top:28px}
body[data-journey=room] .machine-controls{bottom:54px}
body[data-journey=room] .quest{top:32px}
body[data-journey=room] .hotspot{top:100px!important}
.gateway.is-fallback .gateway-windows{display:grid;grid-template-columns:repeat(3,1fr);gap:3vw;align-content:center;padding:8vw}
.gateway.is-fallback .world-window{position:relative;left:auto!important;top:auto!important;width:100%!important;height:230px!important;transform:none;background:var(--room-image) center/cover;border:1px solid #bda06f}
.gateway.is-fallback .gateway-word{gap:12vw}
@media(max-width:700px){
 .contact-corner{top:20px;right:20px;padding:13px 19px;font-size:10px}
 .gateway-word{gap:9px;align-items:flex-start;padding-top:19vh;font-size:17vw;letter-spacing:-.065em}
 .core-trigger{top:51%;width:85vw;height:53vh}
 .gateway-cue{bottom:27vh;font-size:9px}
 .world-window{padding:12px 16px}
 .world-window span{font-size:29px}
 .world-window b{bottom:17px}
 body[data-journey=room] .room-heading{bottom:135px;left:24px}
 body[data-journey=room] .room-heading h2{font-size:44px}
 body[data-journey=room] .machine-controls{bottom:82px}
 body[data-journey=room] .next-room{bottom:22px;right:24px}
 body[data-journey=room] .quest{top:115px}
 body[data-journey=room] .gallery-button{top:23px;left:24px;font-size:9px}
 .gateway.is-fallback .gateway-windows{grid-template-columns:1fr;gap:16px;padding:100px 24px 65px}
 .gateway.is-fallback .world-window{height:170px!important}
}
@media(prefers-reduced-motion:reduce){.gateway,.gateway *{transition:none!important}}
@media(max-aspect-ratio:6/5){
 .gateway-word{gap:10px;align-items:flex-start;padding-top:16vh;font-size:clamp(58px,16vw,100px)}
 .core-trigger{top:50%;width:min(85vw,55vh);height:min(90vw,55vh)}
 .gateway-cue{bottom:27vh}
}

/* Room selection: architectural image planes with quiet, contemporary labels. */
.world-window{padding:26px; text-shadow:none}
.world-window:before{inset:45% 0 0;background:linear-gradient(transparent,#040b0ce8)}
.world-window small{position:absolute;top:24px;left:26px;font:500 12px/1 'Schibsted Grotesk',sans-serif;letter-spacing:.1em;color:#e6eee9}
.world-window span{font:500 clamp(22px,2.05vw,42px)/1.08 'Schibsted Grotesk',sans-serif;letter-spacing:-.055em;white-space:normal;max-width:85%;margin-bottom:3px}
.world-window b{right:24px;bottom:26px;width:32px;height:32px;display:grid;place-items:center;border:1px solid #ffffff45;border-radius:50%;font-size:17px}
.world-window:after{content:'';position:absolute;inset:0;pointer-events:none;border:1px solid #d5f1e51c;transition:border-color .35s,box-shadow .35s}
.world-window:hover:after,.world-window:focus-visible:after{border-color:#d5f1e590;box-shadow:inset 0 0 45px #b9f2da0b}
.gateway.is-fallback .world-window{border:1px solid #d5f1e52c}
@media(max-width:700px){.world-window{padding:16px 20px}.world-window span{font-size:25px}.world-window small{top:15px;left:20px;font-size:10px}.world-window b{right:18px;bottom:16px;width:28px;height:28px}.world-window:before{inset:20% 0 0}}

.sound-toggle{position:fixed;z-index:61;right:2.6vw;bottom:24px;display:flex;align-items:center;justify-content:center;gap:10px;min-width:74px;min-height:44px;padding:10px 14px;border:1px solid #e7dfc43d;border-radius:30px;background:#09130ee8;backdrop-filter:blur(12px);color:#e7dfc4;font-size:9px;letter-spacing:.1em}
.sound-toggle .sound-bars i{background:currentColor}.sound-toggle[aria-pressed=false]{color:#b6bcad}.sound-toggle:hover{border-color:#e7dfc480}
@media(max-width:700px){.sound-toggle{top:76px;bottom:auto;right:16px;width:44px;min-width:44px;padding:10px}.sound-toggle .sound-state{display:none}}
@media(prefers-reduced-motion:reduce){.sound-toggle .sound-bars i{animation:none!important}}
