:root{--ink:#12100e;--paper:#f4f1ea;--accent:#c9a227;--fs-body:15px;--fs-caption:12px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--ink);width:100%;height:100%;color:var(--paper);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:Outfit,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,sans-serif;overflow:hidden}canvas#scene{width:100%;height:100%;display:block;position:fixed;top:0;bottom:0;left:0;right:0}.hidden{display:none!important}.overlay{z-index:50;background:radial-gradient(at 50% 40%,#221f1a 0%,#0b0a09 70%);justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.overlay.fade{opacity:0;pointer-events:none}.intro-box{text-align:center;max-width:480px;padding:32px}.eyebrow{letter-spacing:.38em;color:var(--accent);margin-bottom:16px;font-size:11px;font-weight:500}.intro-box h1{letter-spacing:.04em;margin-bottom:24px;font-family:Cormorant Garamond,Georgia,serif;font-size:52px;font-weight:300;line-height:1}.intro-box h1 span{letter-spacing:.3em;opacity:.65;margin-top:8px;font-size:30px;display:block}.desc{font-size:var(--fs-body);opacity:.62;margin-bottom:32px;line-height:1.75}.keys{flex-direction:column;gap:8px;margin-bottom:32px;display:flex}.key-row{justify-content:center;align-items:center;gap:6px;display:flex}.key-row em{font-style:normal;font-size:var(--fs-caption);opacity:.45;margin-left:8px}.kbd{opacity:.8;background:#f4f1ea0a;border:1px solid #f4f1ea33;border-radius:5px;justify-content:center;align-items:center;min-width:30px;height:30px;padding:0 9px;font-size:11px;display:inline-flex}.kbd.wide{min-width:62px}.touch-only{display:none}#startBtn{-webkit-appearance:none;appearance:none;border:1px solid var(--accent);color:var(--accent);letter-spacing:.22em;cursor:pointer;background:0 0;padding:15px 44px;font-family:inherit;font-size:13px;transition:background .25s,color .25s}#startBtn:hover{background:var(--accent);color:var(--ink)}#startBtn:disabled{opacity:.3;cursor:default;color:#f4f1ea66;border-color:#f4f1ea33}.hint{opacity:.35;min-height:15px;margin-top:18px;font-size:11px}.intro-box h1 b{font-weight:300;display:block}#spaceNav{border-top:1px solid #f4f1ea1a;justify-content:center;gap:22px;margin-top:30px;padding-top:22px;display:flex}#spaceNav a{letter-spacing:.18em;color:var(--paper);opacity:.35;font-size:11px;text-decoration:none;transition:opacity .2s}#spaceNav a:hover{opacity:.8}#spaceNav a.current{opacity:1;color:var(--accent)}#hud{z-index:20;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}#crosshair{border:1px solid #f4f1eabf;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;transition:transform .18s,background .18s;position:absolute;top:50%;left:50%}#crosshair.active{background:#c9a227d9;transform:scale(2)}#locationTag{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-left:2px solid var(--accent);background:#0c0b098c;align-items:baseline;gap:10px;padding:11px 18px;display:flex;position:absolute;top:26px;left:26px}#locationTag .dot{background:var(--accent);border-radius:50%;align-self:center;width:5px;height:5px}#locationTag b{letter-spacing:.06em;font-size:14px;font-weight:500}#locationTag i{opacity:.45;font-size:11px;font-style:normal}#stats{letter-spacing:.1em;opacity:.6;font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #0009;align-items:center;gap:14px;font-size:11px;display:flex;position:absolute;top:26px;right:26px}#soundBtn{pointer-events:auto;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--paper);letter-spacing:.14em;opacity:.75;background:#0c0b0980;border:1px solid #f4f1ea2e;border-radius:3px;padding:5px 10px;font-family:inherit;font-size:10px;transition:opacity .2s}#soundBtn:hover{opacity:1}#soundBtn.off{color:#f4f1ea73}#portalHint{white-space:nowrap;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-left:2px solid var(--accent);letter-spacing:.06em;background:#0c0b0999;padding:12px 24px;font-size:13px;position:absolute;bottom:64px;left:50%;transform:translate(-50%)}#fade{z-index:45;pointer-events:none;opacity:0;background:#0b0a09;transition:opacity .38s;position:fixed;top:0;bottom:0;left:0;right:0}#fade.on{opacity:1}#minimap{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0c0b0980;border:1px solid #f4f1ea1a;width:160px;height:160px;position:absolute;bottom:26px;right:26px}#prompt{z-index:25;font-size:var(--fs-caption);letter-spacing:.1em;color:var(--accent);pointer-events:none;white-space:nowrap;text-shadow:0 1px 4px #000000d9,0 0 12px #0009;font-weight:500;position:fixed;top:calc(50% + 38px);left:50%;transform:translate(-50%)}#infoCard{z-index:40;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:2px solid var(--accent);background:#100e0ced;width:min(360px,100vw - 52px);padding:28px 30px 30px;animation:.3s cardIn;position:fixed;bottom:26px;right:26px}@keyframes cardIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}#infoCard .info-kicker{letter-spacing:.3em;color:var(--accent);margin-bottom:12px;font-size:10px}#infoCard h2{margin-bottom:14px;font-family:Cormorant Garamond,Georgia,serif;font-size:24px;font-weight:400;line-height:1.3}#infoCard p:last-child{opacity:.6;font-size:13px;line-height:1.8}#infoCard .meta{letter-spacing:.06em;opacity:.95;color:var(--paper);margin-bottom:12px;font-size:12px;font-style:normal;display:block}#infoClose{color:var(--paper);opacity:.4;cursor:pointer;background:0 0;border:none;font-size:22px;line-height:1;position:absolute;top:14px;right:16px}#infoClose:hover{opacity:1}#touch{z-index:30;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}#stickBase{pointer-events:auto;touch-action:none;background:#0c0b094d;border:1px solid #f4f1ea2e;border-radius:50%;width:116px;height:116px;position:absolute;bottom:42px;left:32px}#stickKnob{background:#f4f1ea47;border-radius:50%;width:46px;height:46px;margin:-23px 0 0 -23px;position:absolute;top:50%;left:50%}#jumpBtn{width:74px;height:74px;color:var(--paper);letter-spacing:.12em;pointer-events:auto;touch-action:none;background:#0c0b094d;border:1px solid #f4f1ea2e;border-radius:50%;font-family:inherit;font-size:10px;position:absolute;bottom:52px;right:32px}@media (max-width:768px){.intro-box h1{font-size:38px}.intro-box h1 span{font-size:22px}#minimap{width:104px;height:104px;bottom:18px;right:18px}#locationTag{padding:9px 14px;top:16px;left:16px}#stats{top:20px;right:18px}#infoCard{width:auto;bottom:148px;left:16px;right:16px}}@media (hover:none) and (pointer:coarse){.touch-only{display:flex}.keys:not(.touch-only){display:none}}
