body:has(#arrival:not([hidden])) .masthead{display:none}
body:has(#arrival:not([hidden])) main{max-width:none;padding:0}
body:has(#arrival:not([hidden])){overflow:hidden;overscroll-behavior:none}
.arrival-scene{position:fixed;inset:0 0 auto;height:calc(var(--app-height,100svh) - var(--console-height));background:#132437;overflow:hidden;isolation:isolate;color:#fff0c1}
.arrival-heading{display:none}
.arrival-viewport{position:absolute;top:0;bottom:30px;left:0;right:0;overflow:hidden;background:linear-gradient(#1e3f60,#6d97b3);touch-action:none}
.arrival-world{position:absolute;left:0;top:0;will-change:transform;background:#293c4b}
.arrival-hero{position:absolute;width:auto;aspect-ratio:1;transform:translate(-50%,-100%) scale(var(--depth-scale,1));transform-origin:50% 100%;z-index:4;pointer-events:none;will-change:left,top,opacity}
.arrival-sprite{position:absolute;inset:0;width:100%;height:100%;display:block;transform-origin:50% 100%;filter:drop-shadow(1px 2px 1px #0005)}
.arrival-doors{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.arrival-footer{position:absolute;left:0;right:0;bottom:0;height:30px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left));background:#102235;border-top:2px solid #b08748;font-size:clamp(9px,1.1vw,13px);z-index:5}.arrival-floor{font-size:10px;color:#e5c37c;white-space:nowrap}.arrival-status{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:700}
.arrival-scene[data-phase="inside"] .arrival-status{color:#f7d578}
@media(max-height:480px){.arrival-viewport{top:0;bottom:23px}.arrival-footer{height:23px;font-size:9px}.arrival-floor{font-size:8px}}

.arrival-floor-art{position:absolute;left:0;width:100%;height:20%;background-image:url('./arrival-floors.png');background-repeat:no-repeat}


.arrival-building-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.arrival-door-target{position:absolute;z-index:3;background:transparent;border:0;padding:0;box-shadow:none;border-radius:0;color:transparent;cursor:pointer;touch-action:none}
.arrival-door-target:focus-visible{outline:3px solid #ffe184;outline-offset:-3px;background:#ffe18422}
.arrival-target{position:absolute;z-index:5;width:18px;height:8px;border:2px solid #ffe28a;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px #ffda67;pointer-events:none}
.arrival-target[hidden]{display:none}
.arrival-scene[data-phase="navigation"] .arrival-viewport{cursor:grab}
.arrival-scene[data-phase="navigation"] .arrival-viewport:active{cursor:grabbing}

/* Brass directory frame and colour-coded room plaques share the console palette. */
.elevator-directory{position:absolute;inset:0 0 30px;z-index:10;display:flex;flex-direction:column;min-height:0;background:radial-gradient(ellipse at top,#324555,#0a1928 72%);border:3px solid #b18443;box-shadow:inset 0 0 0 2px #4e2c1a,inset 0 0 25px #0009;color:#fff0c1}
.elevator-directory[hidden]{display:none!important}
.directory-heading{display:flex;align-items:center;gap:12px;padding:9px 16px;background:linear-gradient(#6e4226,#34251f);border-bottom:2px solid #d1a352;box-shadow:0 3px 10px #0007}
.directory-emblem{display:grid;place-items:center;flex:none;width:38px;height:38px;border:2px solid #ebc579;border-radius:9px;background:linear-gradient(#314b60,#112532);font:bold 29px Georgia;color:#ffe197;box-shadow:inset 0 0 0 2px #0d1722,0 2px 4px #0008}
.directory-heading p{margin:0 0 2px;font-size:9px;letter-spacing:2px;color:#d9b47a}.directory-heading h2{margin:0;font-size:clamp(12px,1.7vw,21px);font-weight:900;letter-spacing:.7px;color:#ffe095;text-shadow:0 2px 0 #261710}
.directory-close{margin-left:auto;flex:none;min-height:38px;padding:4px 12px;background:linear-gradient(#354455,#142533);border:1px solid #b49761;border-radius:8px;color:#fff0c7;font-size:10px;box-shadow:0 2px 4px #0007}.directory-close span{font-size:22px;vertical-align:middle;margin-left:7px}
.directory-guidance{display:flex;justify-content:space-between;gap:12px;padding:6px 16px;font-size:11px;color:#a8bfca;background:#0b1b2c;border-bottom:1px solid #607080}.directory-current{color:#ffe29d;font-size:10px;font-weight:800;letter-spacing:.6px}
.directory-list{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:8px 12px;scrollbar-color:#b58b4b #122536;scrollbar-width:thin}
.directory-list:focus-visible{outline:2px solid #ffdf92;outline-offset:-3px}
.directory-row{--chain:#b89862;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:stretch;gap:9px;margin:0 0 7px;padding:5px 7px 5px 5px;border:1px solid #6a5a42;border-left:3px solid var(--chain);border-radius:8px;background:linear-gradient(90deg,#223443,#102231);box-shadow:0 2px 4px #0006}
.directory-row[data-chain="0"]{--chain:#e46d58}.directory-row[data-chain="1"]{--chain:#81c786}.directory-row[data-chain="2"]{--chain:#75b8e3}.directory-here{box-shadow:inset 0 0 0 1px #ffe19b,0 0 10px #e8c77a22}
.directory-floor-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(#e7bf75,#ad7938);border:1px solid #ffe4a5;outline:1px solid #332719;border-radius:5px;color:#211b15;text-shadow:0 1px #ffe4a5}.directory-floor-badge small{font-size:7px;font-weight:900;letter-spacing:.6px}.directory-floor-badge b{font-size:23px;line-height:1.1;font-weight:900}
.directory-stops{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;align-items:stretch}
.directory-stop{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:44px;margin:0;padding:7px 10px;border:1px solid #6f8190;border-top-color:#9faeae;border-left:3px solid var(--chain);border-radius:5px;background:linear-gradient(#334857,#172b3b);box-shadow:inset 0 1px #ffffff12,0 2px 3px #0006;color:#fff1d0;text-align:left;font-size:clamp(10px,1.1vw,14px);font-weight:750;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
.directory-stop span{min-width:0}.directory-stop b{font-size:22px;color:var(--chain);flex:none}.directory-stop:hover{background:linear-gradient(#4d6574,#2c4253)}.directory-stop:active{transform:translateY(1px);background:#4c5b62}.directory-stop:focus-visible{outline:2px solid #ffdf8e;outline-offset:1px}
.directory-legend{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;padding:5px 10px;border-top:1px solid #706041;font-size:9px;color:#b7c8cc;background:#0b1926}.directory-legend span:before{content:'';display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#b89862}.directory-legend .directory-own:before{background:#e46d58}.directory-legend .directory-rival-one:before{background:#81c786}.directory-legend .directory-rival-two:before{background:#75b8e3}
@media(max-width:600px){.directory-heading{padding:7px 9px;gap:8px}.directory-emblem{width:30px;height:32px;font-size:25px}.directory-heading p{font-size:7px;letter-spacing:1px}.directory-heading h2{font-size:11px;letter-spacing:0}.directory-close{padding:3px 7px;font-size:9px}.directory-close span{margin-left:3px}.directory-guidance{padding:7px 9px;flex-wrap:wrap;gap:3px;font-size:10px}.directory-stops{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-row{grid-template-columns:36px minmax(0,1fr);gap:7px}.directory-list{padding:7px}.directory-stop{font-size:11px;padding:7px;min-height:46px}.directory-floor-badge b{font-size:21px}.directory-legend{gap:6px 12px;font-size:8px}}
@media(max-height:480px){.elevator-directory{top:0;bottom:23px}.directory-heading{padding:4px 10px;gap:8px}.directory-emblem{height:28px;width:30px;font-size:23px}.directory-heading h2{font-size:13px}.directory-heading p{font-size:7px}.directory-close{min-height:30px}.directory-guidance{padding:4px 10px}.directory-legend{padding:3px 8px}.directory-list{padding-top:5px;padding-bottom:5px}}

@media(max-width:600px){.directory-stop{grid-column:auto!important}}
.ambient-people{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}.ambient-people[hidden]{display:none}
/* Hit areas remain invisible after a touch; the generic button hover style must not cover doors. */
.arrival-door-target:hover,.arrival-door-target:active{background:transparent;transform:none;border:0;box-shadow:none}
.player-beacon{position:absolute;z-index:8;top:-9%;left:50%;width:12%;height:9%;min-width:9px;max-width:17px;transform:translateX(-50%);background:#ffe69a;clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 1px 2px #182637);animation:player-beacon-float 2s ease-in-out infinite;opacity:.85;pointer-events:none}
@keyframes player-beacon-float{0%,100%{transform:translate(-50%,0);opacity:.72}50%{transform:translate(-50%,-4px);opacity:1}}
.arrival-hero.in-cabin .player-beacon{display:none}.arrival-hero.reduced-motion .player-beacon{animation:none;opacity:.9}
@media(prefers-reduced-motion:reduce){.player-beacon{animation:none}}

.player-beacon{width:16px;height:12px;min-width:16px;max-width:16px;top:-12%;background:none;clip-path:none;filter:none}.player-beacon svg{display:block;width:100%;height:100%}

.player-beacon::after{content:"";position:absolute;inset:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:11px solid #ffe69a;filter:drop-shadow(0 1px 1px #102235)}.player-beacon svg{display:none}

/* Corridors use all available space above the permanent television console. */
.arrival-footer{display:none}
.arrival-viewport{top:0;bottom:0}
.elevator-directory{top:0;bottom:0}

/* The directory is a fitted wooden lift panel, matching the studio console. */
.elevator-directory{border:5px solid #744420;border-radius:8px;background:repeating-linear-gradient(2deg,#6c3c21 0,#814b29 3px,#61351e 5px,#88512c 9px);box-shadow:inset 0 0 0 2px #efc878,inset 0 0 0 5px #332217,0 0 0 1px #d3a25d;padding:7px}
.directory-heading{position:relative;margin:0 0 7px;padding:8px 60px 8px 15px;border:3px solid #bf8e47;border-radius:10px;background:linear-gradient(#243b4b,#0a1b28);box-shadow:inset 0 1px #e8c785,inset 0 -3px 5px #0007,0 3px 4px #24180d}
.directory-heading::before,.directory-heading::after{content:"⊕";position:absolute;top:50%;transform:translateY(-50%);color:#f3d18d;font-size:15px;text-shadow:0 2px #000}.directory-heading::before{left:2px}.directory-heading::after{right:5px}
.directory-heading h2{font-family:system-ui;font-size:clamp(12px,1.7vw,21px);font-weight:950;letter-spacing:.4px;color:#ffe299;text-shadow:0 2px #000}.directory-heading p{font-size:8px;color:#c49f68}
.directory-emblem{border:3px solid #d6ab5e;border-radius:7px;background:linear-gradient(90deg,#425465,#132e42 45%,#987c4f 49%,#132e42 53%,#425465);box-shadow:inset 0 0 0 2px #0d1d29,0 2px 3px #0008;color:#ffe3a0}
.directory-close{min-height:38px;border:2px solid #f1c475;border-bottom:4px solid #77512c;border-radius:8px;background:linear-gradient(#c03829,#861c18);box-shadow:inset 0 1px #ffbc7e,0 3px 3px #0008;color:#fff0be;text-shadow:0 1px #57170f}.directory-close:hover{background:linear-gradient(#e34c35,#a62920)}.directory-close:active{transform:translateY(2px);border-bottom-width:2px}
.directory-guidance{margin:0 3px 7px;padding:6px 12px;border:1px solid #b38a4a;border-radius:5px;background:#0b1d29;box-shadow:inset 0 2px 4px #0008;color:#b5c5cb;font-size:10px}.directory-current{color:#ffdf88}.directory-current::before{content:"";display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:#8de16d;box-shadow:0 0 6px #8de16d99}
.directory-list{padding:4px 7px 8px;border:2px solid #4a2d1a;border-radius:7px;background:repeating-linear-gradient(0deg,#192b35 0,#192b35 3px,#1e323c 4px,#172a34 6px);box-shadow:inset 0 4px 10px #000b;scrollbar-color:#c39b55 #102330}
.directory-row{position:relative;grid-template-columns:48px minmax(0,1fr);gap:9px;padding:7px 10px;margin-bottom:9px;border:2px solid #6c4526;border-top-color:#d3a461;border-left:3px solid var(--chain);border-radius:8px;background:repeating-linear-gradient(2deg,#5b351f 0,#734328 3px,#62391f 5px,#75472a 8px);box-shadow:inset 0 0 0 1px #bb895077,0 3px 4px #0009}
.directory-row::after{content:"";position:absolute;bottom:2px;left:4px;right:4px;height:2px;background:linear-gradient(90deg,#56371d,#dbb772,#56371d);pointer-events:none}
.directory-floor-badge{border:2px solid #e7c57f;outline:1px solid #372214;border-radius:7px;background:linear-gradient(120deg,#ffdf98,#c7984f 55%,#9c6b32);box-shadow:inset 0 0 0 1px #875624,0 2px 3px #0008;color:#33230f}.directory-floor-badge small{font-size:6px}.directory-floor-badge b{font-family:system-ui;font-size:24px;letter-spacing:-1px}
.directory-here{border-color:#ffe1a0;border-left-color:var(--chain);box-shadow:inset 0 0 0 1px #b18340,0 0 8px #f3c87855,0 3px 4px #0009}.directory-here .directory-floor-badge{background:linear-gradient(#ffecb5,#e3ad51);box-shadow:0 0 7px #ffd78888,inset 0 0 0 1px #8c5723}
.directory-stops{gap:8px}.directory-stop{position:relative;gap:8px;min-height:54px;padding:7px 9px;border:2px solid #d0ad6b;border-bottom:4px solid #6a4827;border-left:4px solid var(--chain);border-radius:6px;background:linear-gradient(120deg,#fff0c9,#e7d3a2 60%,#cdb075);box-shadow:inset 0 1px #fff9,0 3px 3px #0009;color:#342c22;text-shadow:0 1px #fff8;font-family:system-ui;font-size:clamp(10px,1vw,13px);font-weight:850}
.directory-stop:hover{background:linear-gradient(#fff8df,#ebd4a0)}.directory-stop:active{transform:translateY(2px);border-bottom-width:2px;background:#d8be88;box-shadow:inset 0 2px 4px #6a4b2877}.directory-stop b{font-size:22px;line-height:1;color:#82522c;text-shadow:0 1px #fff9}.directory-stop span{flex:1}
.directory-door-icon{position:relative;display:block;flex:none;width:22px;height:33px;border:2px solid #38251b;border-bottom:0;border-radius:3px 3px 0 0;background:linear-gradient(90deg,#6b321c,#a1572b 45%,#73361f);box-shadow:0 0 0 1px #c59049,inset 0 0 0 2px #c08142}
.directory-door-icon::before{content:"";position:absolute;top:4px;left:4px;right:4px;height:9px;border:1px solid #d8b77b;background:linear-gradient(135deg,#b5d3d7,#49647c)}.directory-door-icon::after{content:"";position:absolute;right:3px;bottom:7px;width:3px;height:5px;background:#ffe28c;border-radius:3px;box-shadow:0 1px 1px #321b11}
.directory-legend{margin-top:6px;padding:5px 8px;border:1px solid #9f7c44;border-radius:5px;background:linear-gradient(#203442,#0c1d29);color:#ead9b4;box-shadow:inset 0 1px #c2a56f44}.directory-legend span::before{box-shadow:0 0 0 1px #000,0 1px 3px #0008}
@media(max-width:600px){.elevator-directory{padding:5px;border-width:4px}.directory-heading{gap:7px;padding:6px 40px 6px 10px}.directory-heading h2{font-size:10px;letter-spacing:0}.directory-heading p{font-size:6px}.directory-emblem{width:26px;height:32px;font-size:22px}.directory-close{padding:3px 5px;font-size:8px}.directory-close span{font-size:17px}.directory-row{grid-template-columns:33px minmax(0,1fr);padding:6px;gap:7px}.directory-floor-badge b{font-size:20px}.directory-stops{gap:6px}.directory-stop{font-size:10px;padding:6px;gap:6px;min-height:54px}.directory-door-icon{width:16px;height:26px}.directory-door-icon::before{left:3px;right:3px;height:6px}.directory-guidance{font-size:8px;padding:5px 7px}.directory-current{font-size:9px}.directory-legend{font-size:7px;gap:5px 8px}}
@media(max-height:480px){.directory-heading{padding-top:4px;padding-bottom:4px;margin-bottom:4px}.directory-heading h2{font-size:12px}.directory-heading p{display:none}.directory-guidance{padding-top:3px;padding-bottom:3px;margin-bottom:4px}.directory-row{padding-top:5px;padding-bottom:5px;margin-bottom:7px}.directory-stop{min-height:44px}.directory-door-icon{height:27px;width:19px}.directory-legend{padding:3px 6px;margin-top:4px}}

.night-fade{position:fixed;inset:0;background:#030609;opacity:0;z-index:150;pointer-events:none}.night-fade.active{pointer-events:auto}
