@font-face{font-family:Space;src:url('/world/assets/space-grotesk.woff2') format('woff2');font-display:swap}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#181613;color:#efe9dc;font-family:Space,Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #e9c482;outline-offset:5px}[hidden]{display:none!important}#scene{position:fixed;inset:0;width:100%;height:100%;touch-action:none}header{position:fixed;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:26px 32px;background:linear-gradient(#080909aa,transparent);pointer-events:none}.brand{color:inherit;text-decoration:none;font-size:25px;display:flex;gap:9px;align-items:center;pointer-events:auto}.brand img{width:26px;height:35px;object-fit:contain;filter:brightness(0) invert(1)}em{font-family:Georgia,serif;font-weight:400}#location{font-size:10px;letter-spacing:.17em;color:#d4cbbb}#back-lobby{position:fixed;top:91px;left:30px;background:#18161366;border:1px solid #c3ad7544;border-radius:20px;padding:9px 16px;font-size:12px}.movement{position:fixed;bottom:73px;left:28px;display:grid;grid-template-columns:repeat(3,48px);gap:7px}.movement button{height:48px;border-radius:50%;border:1px solid #e8d5aa55;background:#14141188;backdrop-filter:blur(8px);font-size:25px;touch-action:none;user-select:none}.movement button:first-child{grid-column:2}.movement button:nth-child(2){grid-column:1}.movement button:active{background:#af9167aa}.interaction{position:fixed;bottom:200px;width:100%;text-align:center;pointer-events:none}#door{pointer-events:auto;border:1px solid #bba27366;border-radius:30px;background:#191611c9;padding:14px 23px;font-size:12px;backdrop-filter:blur(10px)}#switch{position:fixed;bottom:76px;right:29px;border:0;background:none;display:flex;align-items:center;flex-direction:column;gap:10px;max-width:140px;text-align:center;font-size:11px;line-height:1.4;text-shadow:0 1px 4px #000}.switch-plate{position:relative;width:59px;height:80px;border:2px solid #b99c64;border-radius:9px;background:linear-gradient(120deg,#d4bd85,#665032 45%,#bd9a5e);box-shadow:inset 0 0 0 3px #695234,0 4px 15px #0006}.switch-plate:before,.switch-plate:after{content:'−';position:absolute;left:24px;top:2px;color:#51412c;font-size:13px}.switch-plate:after{top:auto;bottom:2px}.switch-plate i{display:block;margin:18px auto;width:25px;height:40px;border-radius:4px;background:linear-gradient(#867b63,#ede4ce 36%,#ffffe6);border:1px solid #443825;box-shadow:0 4px 4px #0008;transform:perspective(80px) rotateX(-17deg)}.on .switch-plate i{transform:perspective(80px) rotateX(17deg);background:linear-gradient(#ffffe8,#e4d6b8 65%,#958366)}footer{position:fixed;bottom:0;padding:20px 29px 25px;width:100%;display:flex;justify-content:space-between;gap:15px;font-size:9px;letter-spacing:.1em;color:#d7cfbe;background:linear-gradient(transparent,#08090999);pointer-events:none}footer a{color:inherit;pointer-events:auto}#loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#161513;z-index:10}.loading-logo{font-size:35px}#loading p{color:#b7a78b;font-size:12px;letter-spacing:.16em}#loading i{width:90px;height:1px;background:#bda373;animation:pulse 1.6s infinite}@keyframes pulse{50%{opacity:.2;transform:scaleX(.4)}}dialog{inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;padding:25px;background:#101111;color:#efe9dc;overflow:auto}dialog::backdrop{background:#101111}dialog nav{display:flex;justify-content:space-between;gap:15px;margin-bottom:20px}dialog button{background:none;border:1px solid #b3a17d55;padding:11px 16px;border-radius:24px;font-size:12px}#full-art{display:block;width:100%;height:70vh;object-fit:contain}.caption{max-width:640px;margin:20px auto;text-align:center}.caption small{font-size:9px;color:#ae956a;letter-spacing:.2em}.caption h1{font:32px Georgia,serif;margin:10px}.caption p{font-size:13px;line-height:1.7;color:#bbb5aa}@media(max-width:600px){header{padding:22px 20px}.brand{font-size:22px}.brand img{width:23px}#location{font-size:8px;letter-spacing:.1em}.movement{left:19px;bottom:65px;grid-template-columns:repeat(3,43px);gap:6px}.movement button{height:43px}#switch{right:19px;bottom:70px;max-width:120px}footer{font-size:7px;padding:17px 20px 22px}#back-lobby{left:20px;top:77px}dialog{padding:20px 12px}#full-art{height:66vh}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}

/* Scene gestures must never invoke iOS text selection or callout. */
body,canvas,button,header,footer,nav{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
button{touch-action:none}dialog .caption{-webkit-user-select:text;user-select:text}
html,body{overscroll-behavior:none}#scene{height:100dvh}
header{padding-top:max(22px,env(safe-area-inset-top))}footer{padding-bottom:max(22px,env(safe-area-inset-bottom))}
#location{font-size:12px}.movement button{font-size:26px;min-width:44px;min-height:44px}
#switch{font-size:12px}footer{font-size:10px}#door{font-size:14px}

#table-switch{position:fixed;left:50%;bottom:200px;transform:translateX(-50%);border:1px solid #bba27388;border-radius:26px;padding:14px 22px;background:#211b15e8;color:#f1e1c3;backdrop-filter:blur(12px);font-size:13px;max-width:calc(100% - 40px);white-space:nowrap;box-shadow:0 6px 25px #0005}#table-switch[aria-pressed="true"]{border-color:#efc583;background:#493523e8}

/* An illuminated brand seal fills with measured download progress. */
#loading{background:radial-gradient(ellipse at 50% 44%,#29251c 0,#171613 43%,#0e0f0f 100%);gap:0;padding:32px;isolation:isolate}.loading-wordmark{font-size:29px;letter-spacing:-.04em;margin-bottom:46px;color:#e9e4d7}.loading-wordmark em{letter-spacing:-.025em}.load-meter{position:relative;width:210px;height:260px;display:flex;align-items:center;flex-direction:column}.load-orbit{position:absolute;inset:0 0 auto;height:210px;border-radius:50%;background:conic-gradient(from -90deg,#c4a66c var(--progress),#a38c5920 0);mask:radial-gradient(farthest-side,transparent calc(100% - 1px),#000 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 1px),#000 0)}.load-meter:before{content:'';position:absolute;width:180px;height:180px;top:15px;border:1px solid #b8a07019;border-radius:50%}.load-logo{position:relative;width:66px;height:92px;margin-top:46px}.load-logo img{position:absolute;width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1);opacity:.13}.load-logo .load-logo-fill{opacity:1;filter:brightness(0) saturate(100%) invert(74%) sepia(23%) saturate(651%) hue-rotate(1deg) brightness(92%) contrast(84%);clip-path:inset(calc(100% - var(--progress)) 0 0 0);transition:clip-path .25s ease}.load-numeral{position:absolute;top:186px;background:#1a1915;padding:0 15px;display:flex;align-items:baseline;gap:5px;color:#ede2c8;font:54px Georgia,serif;font-variant-numeric:tabular-nums;letter-spacing:-.06em}.load-numeral small{font:12px Space,sans-serif;letter-spacing:0;color:#b99f72}#loading #load-stage{font-size:10px;text-transform:uppercase;letter-spacing:.24em;text-align:center;line-height:1.8;margin:14px 0 25px;color:#bdae92}.load-rule{width:110px;height:1px;background:#a38c5920}.load-rule span{display:block;width:var(--progress);height:100%;background:#c4a66c;transition:width .25s}#loading #load-error{font-size:12px;max-width:260px;letter-spacing:0;text-align:center;line-height:1.6;color:#d6c1a0}#load-retry,#world-retry{border:1px solid #b89c6355;border-radius:22px;background:#3d3325;color:#eee1c8;padding:10px 20px;margin-top:12px}@media(max-width:600px){.loading-wordmark{font-size:27px;margin-bottom:35px}.load-meter{transform:scale(.95)}}@media(prefers-reduced-motion:reduce){.load-logo-fill,.load-rule span{transition:none!important}}

#world-error{position:fixed;z-index:11;left:50%;top:50%;transform:translate(-50%,-50%);width:min(340px,calc(100vw - 40px));padding:28px;text-align:center;border:1px solid #b89c6355;background:#191713;color:#eee1c8;border-radius:12px;font-size:16px;line-height:1.6;box-shadow:0 12px 50px #000a}#world-error p{margin-top:0}
