:root{--ink:#eceee9;--dim:#b9c2c2;--pad:clamp(22px,3vw,58px);--font:'Pretendard Variable',Pretendard,sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#03070a;color:var(--ink);font:15px/1.7 var(--font)}button,a{font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{border:0;padding:0;background:none;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible{outline:1px solid currentColor;outline-offset:5px}h1,p{margin:0}[hidden]{display:none!important}
#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none;outline:none}#world.target{cursor:pointer}#world:focus-visible{outline:1px solid #ced8d580;outline-offset:-5px}.skip-link{position:fixed;z-index:70;top:16px;left:var(--pad);padding:8px 12px;background:#10191d;transform:translateY(-200%)}.skip-link:focus{transform:none}
/* Unboxed controls remain legible over both the pale cabin and open space. */
.identity{position:fixed;z-index:10;top:26px;left:var(--pad);font-size:11px;font-weight:500;letter-spacing:.24em;mix-blend-mode:difference;opacity:.7;transition:opacity .2s}body[data-mode=walking] .identity{opacity:.3}.identity:hover,.identity:focus-visible{opacity:1}
.tools{position:fixed;z-index:12;right:calc(var(--pad) - 10px);bottom:calc(18px + env(safe-area-inset-bottom));display:flex;gap:5px;mix-blend-mode:difference;opacity:.58;transition:opacity .25s}body[data-mode=walking] .tools{opacity:.24}.tools:hover,.tools:focus-within,body[data-mode=walking] .tools:hover,body[data-mode=walking] .tools:focus-within{opacity:1}.tools button{position:relative;display:grid;place-items:center;width:44px;height:44px;font-size:0}.tools button::before{content:'';display:block;width:19px;height:19px;background:currentColor;mask:var(--icon) center/contain no-repeat;-webkit-mask:var(--icon) center/contain no-repeat}
#camera-mode{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M4 7h4l2-3h4l2 3h4v13H4z'/%3E%3Ccircle cx='12' cy='13' r='4'/%3E%3C/svg%3E")}
#audio{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4 5 9H2v6h3l6 5V4zM16 8a6 6 0 0 1 0 8M19 5a10 10 0 0 1 0 14'/%3E%3C/svg%3E")}#audio[aria-pressed=false]::after{content:'';position:absolute;width:24px;height:1px;background:currentColor;transform:rotate(-45deg)}
#help{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.5 9a2.5 2.5 0 1 1 4.5 1.5c-1.3.9-2 1.1-2 3M12 17h0'/%3E%3C/svg%3E")}.tools button[aria-pressed=true]::before,.tools button[aria-expanded=true]::before{filter:drop-shadow(0 0 3px currentColor)}
.ship-status{position:fixed;z-index:8;left:var(--pad);bottom:calc(31px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:15px;font-size:11px;letter-spacing:.04em;mix-blend-mode:difference;opacity:.55;pointer-events:none}.ship-status #power{opacity:.65}.ship-status button{pointer-events:auto;padding:6px 0}body[data-mode=walking] .ship-status{opacity:.28}.ship-status:focus-within,.ship-status:hover{opacity:.8}
.splash{position:fixed;z-index:6;left:var(--pad);bottom:130px;width:360px;max-width:calc(100% - 44px);pointer-events:none;text-shadow:0 2px 22px #0009}.splash .overline{font-size:10px;letter-spacing:.2em;color:var(--dim);margin-bottom:18px}.splash h1{font-size:clamp(56px,6vw,88px);font-weight:300;line-height:1;letter-spacing:.015em}.splash p:not(.overline){font-size:14px;color:var(--dim);margin-top:21px}.splash button{display:flex;align-items:center;gap:36px;min-height:44px;margin-top:26px;font-size:14px;pointer-events:auto}.splash button span{font-size:21px;transition:transform .2s}.splash button:hover span{transform:translate(3px,-3px)}
.boarding-label{position:fixed;z-index:9;left:50%;bottom:100px;transform:translateX(-50%);text-align:center;font-size:12px;letter-spacing:.04em;text-shadow:0 2px 15px #000}.boarding-label span{opacity:.65}.boarding-label button{display:block;min-height:44px;margin:8px auto 0;font-size:12px}body:not([data-mode=boarding]) .boarding-label,body:not([data-mode=exterior]) .splash{display:none}
.crosshair{position:fixed;z-index:4;left:50%;top:50%;width:3px;height:3px;border-radius:50%;background:#eceee980;mix-blend-mode:difference;transform:translate(-50%,-50%);pointer-events:none}body:not([data-mode=walking]) .crosshair{display:none}
#interact{position:fixed;z-index:10;left:50%;top:52%;max-width:260px;padding:0;font-size:12px;line-height:1.5;color:#f4f5f0;mix-blend-mode:difference;pointer-events:none;white-space:normal}
#message{position:fixed;z-index:15;left:50%;bottom:calc(83px + env(safe-area-inset-bottom));width:max-content;max-width:min(540px,calc(100% - 44px));transform:translateX(-50%);font-size:13px;line-height:1.75;text-align:center;color:#edf0eb;mix-blend-mode:difference;opacity:0;pointer-events:none;transition:opacity .35s}#message.show{opacity:1}
#help-text{position:fixed;z-index:14;right:var(--pad);bottom:calc(85px + env(safe-area-inset-bottom));max-width:calc(100% - 44px);font-size:12px;line-height:1.9;text-align:right;color:#eceee9;mix-blend-mode:difference}.help-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:18px;margin-top:9px}.help-actions button{min-height:36px;font-size:11px;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#eceee950}body:not([data-mode=exterior]):not([data-mode=flight-camera]) .exterior-controls{display:none}body:has(#help-text:not([hidden])) #message{opacity:0}body[data-mode=loading] .identity,body[data-mode=loading] .tools,body[data-mode=loading] .ship-status{visibility:hidden}
.loading{position:fixed;inset:0;z-index:50;background:#050a0f;display:grid;place-content:center;gap:23px;padding:30px;text-align:center;transition:opacity .6s,visibility .6s}.loading strong{font-size:28px;letter-spacing:.3em;font-weight:300}.loading p{max-width:340px;font-size:13px;color:#b6c4c7}.loading i{display:block;width:110px;height:1px;margin:auto;background:linear-gradient(90deg,transparent,#c4d5d5,transparent);animation:load 1.7s infinite}.loading a{font-size:12px;color:#b6c4c7;min-height:30px}.loading-home{opacity:.6}.loading.done{opacity:0;visibility:hidden;pointer-events:none}@keyframes load{50%{transform:scaleX(.4);opacity:.4}}.noscript{position:fixed;z-index:60;left:22px;right:22px;bottom:30px;text-align:center;font-size:14px;background:#050a0f}.noscript a{text-decoration:underline}
@media(max-width:700px){.identity{top:22px;font-size:10px}.splash{bottom:145px;width:300px}.splash h1{font-size:62px}.splash p:not(.overline){font-size:13px}.tools{right:12px;gap:0;bottom:calc(12px + env(safe-area-inset-bottom))}.ship-status{bottom:calc(23px + env(safe-area-inset-bottom));gap:10px;max-width:calc(100% - 164px);font-size:10px;flex-wrap:wrap;line-height:1.4}.ship-status #power{display:none}#exit-orbit{font-size:10px}#message{bottom:calc(78px + env(safe-area-inset-bottom));font-size:12px}#help-text{bottom:calc(80px + env(safe-area-inset-bottom));font-size:11px}.help-actions{gap:16px}#interact{font-size:11px;max-width:210px}}
@media(pointer:coarse){body[data-mode=walking] .tools{opacity:.64}body[data-mode=walking] .ship-status{opacity:.45}.help-actions button{min-height:44px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

#inspect-exit{position:fixed;left:var(--pad);bottom:28px;z-index:16;font-size:13px;color:#d5e1dc;text-shadow:0 1px 8px #000;padding:10px 0}body[data-inspecting=true] .ship-status,body[data-inspecting=true] .crosshair{display:none}body[data-inspecting=true] .identity{opacity:.15}body[data-inspecting=true] #world{cursor:default}

body[data-inspecting=true] #world.target{cursor:pointer}
