:root{--sky-day-top:#5fa8e8;--sky-day-horizon:#f6d9a8;--sun:#ffe2a0;--fog-day:#e9d8bf;--sky-night-top:#0b1330;--sky-night-horizon:#243a6e;--lantern:#ffb454;--neon:#ff5a8a;--ui-panel:#14161ed1;--ui-panel-solid:#14161e;--ui-border:#3a3f4b;--ui-text:#f3f1ea;--ui-text-dim:#b9b5a8;--accent-gold:#f5c451;--accent-blossom:#f4a6c0;--accent-hedge:#3e7c3a;--success:#6bcb77;--danger:#e5584f;--black:#000;--shadow-text:0 1px 2px #000000d9, 0 0 8px #00000073;--radius-s:6px;--radius-m:10px;--radius-l:16px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--motion-fast:.15s;--motion-std:.25s;--motion-slow:.45s;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--font-pixel:"Pixelify Sans", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-ui:"Outfit", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--touch-target:44px}@media (prefers-reduced-motion:reduce){:root{--motion-fast:1ms;--motion-std:1ms;--motion-slow:1ms}}.reduce-motion{--motion-fast:1ms;--motion-std:1ms;--motion-slow:1ms}*,:before,:after{box-sizing:border-box}html,body{background:var(--black);height:100%;color:var(--ui-text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}#world{touch-action:none;outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent-gold);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.debug-overlay{left:var(--space-2);top:var(--space-2);z-index:100;pointer-events:none;background:var(--ui-panel);border-radius:var(--radius-s);padding:var(--space-2) var(--space-3);position:fixed}.debug-overlay pre{color:var(--ui-text);margin:0;font:12px/1.35 ui-monospace,Menlo,monospace}.hud{pointer-events:none;z-index:10;font-family:var(--font-ui);position:fixed;inset:0}.world-prompt{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);background:var(--ui-panel);border:1px solid var(--ui-border);border-radius:var(--radius-s);font:600 14px/1.2 var(--font-ui);white-space:nowrap;opacity:0;transition:opacity var(--motion-fast) var(--ease-out);will-change:transform;display:flex;position:absolute;top:0;left:0}.world-prompt.show{opacity:1}.world-prompt.offscreen,.hud.in-panel .world-prompt{opacity:0}.world-prompt kbd{min-width:24px;height:24px;padding:0 var(--space-1);background:var(--accent-gold);color:var(--ui-panel-solid);font:700 13px/1 var(--font-pixel);border-radius:4px;place-items:center;display:inline-grid}.title-card{text-align:center;opacity:0;transition:opacity var(--motion-slow) var(--ease-out), transform var(--motion-slow) var(--ease-out);text-shadow:var(--shadow-text);position:absolute;top:12vh;left:50%;transform:translate(-50%,-12px)}.title-card.show{opacity:1;transform:translate(-50%)}.title-card h2{margin:var(--space-1) 0;font:600 clamp(28px, 4vw, 44px) / 1.1 var(--font-pixel);letter-spacing:.02em}.title-section{padding:2px var(--space-3);border-top:2px solid var(--accent-gold);border-bottom:2px solid var(--accent-gold);font:600 12px/1.6 var(--font-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-gold);margin:0;display:inline-block}.title-sub{color:var(--ui-text-dim);margin:0;font-size:16px}.toasts{top:calc(var(--space-4) + 48px);right:var(--space-4);gap:var(--space-2);flex-direction:column;align-items:flex-end;display:flex;position:absolute}.toast{gap:var(--space-3);min-width:260px;padding:var(--space-2) var(--space-3);background:var(--ui-panel-solid);border:2px solid var(--ui-border);border-radius:var(--radius-s);transition:transform var(--motion-slow) var(--ease-out);align-items:center;display:flex;transform:translate(120%)}.toast.show{transform:translate(0)}.toast img{image-rendering:pixelated}.toast-title{font:600 13px/1.3 var(--font-pixel);color:var(--accent-gold);margin:0}.toast-sub{margin:0;font-size:14px}.resume-btn{top:var(--space-4);right:var(--space-4);min-height:var(--touch-target);padding:0 var(--space-4);pointer-events:auto;cursor:pointer;background:var(--ui-panel);border:1px solid var(--accent-gold);border-radius:var(--radius-m);font:600 15px/1 var(--font-pixel);color:var(--accent-gold);transition:background var(--motion-fast) var(--ease-out);position:absolute}.resume-btn:hover{background:var(--ui-panel-solid)}.hud.in-panel .resume-btn{opacity:0;pointer-events:none}.travel-fade{color:var(--ui-text-dim);font:600 16px/1 var(--font-pixel);opacity:0;transition:opacity .3s var(--ease-in-out);background:#000;place-items:center;display:grid;position:absolute;inset:0}.travel-fade.show{opacity:1}.panel-backdrop{z-index:20;padding:var(--space-5);opacity:0;transition:opacity var(--motion-std) var(--ease-out);background:#08090e8c;place-items:center;display:grid;position:fixed;inset:0}.panel-backdrop.open{opacity:1}.panel{width:min(720px,100%);max-height:min(86vh,900px);padding:var(--space-6);background:var(--ui-panel-solid);border:1px solid var(--ui-border);border-radius:var(--radius-l);transition:transform var(--motion-std) var(--ease-out);overscroll-behavior:contain;position:relative;overflow:auto;transform:translateY(12px)scale(.98);box-shadow:0 24px 64px #00000080}.panel-backdrop.open .panel{transform:none}.panel-close{top:var(--space-3);right:var(--space-3);width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-m);cursor:pointer;color:var(--ui-text-dim);background:0 0;border:0;font-size:28px;line-height:1;position:absolute}.panel-close:hover{color:var(--ui-text);background:#ffffff0f}.sec-title{margin:0 0 var(--space-4);font:600 22px/1.2 var(--font-pixel);color:var(--accent-gold)}.sec h3{margin:0;font-size:18px}.sec p{line-height:1.55}.kicker{font:600 12px/1.4 var(--font-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--ui-text-dim);margin:0}.name{margin:var(--space-2) 0;font:600 clamp(30px, 5vw, 44px) / 1.1 var(--font-pixel)}.tagline{margin:0 0 var(--space-4);color:var(--accent-blossom);font-size:18px}.summary{color:var(--ui-text);font-size:16px}.meta{margin:var(--space-1) 0 0;color:var(--ui-text-dim);font-size:14px}.entry{padding:var(--space-4) 0;border-top:1px solid var(--ui-border)}.entry:first-of-type{border-top:0;padding-top:0}.bullets{margin:var(--space-3) 0;padding-left:var(--space-5);line-height:1.55}.chips{gap:var(--space-2);margin:var(--space-3) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.chips li{padding:2px var(--space-2);border:1px solid var(--ui-border);color:var(--ui-text-dim);border-radius:999px;font-size:13px}.actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.btn{min-height:var(--touch-target);padding:0 var(--space-4);border:1px solid var(--ui-border);border-radius:var(--radius-m);color:var(--ui-text);font:600 14px/1 var(--font-ui);cursor:pointer;transition:background var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);background:0 0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ui-text-dim);background:#ffffff0f}.btn.primary{background:var(--accent-gold);border-color:var(--accent-gold);color:var(--ui-panel-solid)}.btn.primary:hover{filter:brightness(1.08)}.btn.subtle{color:var(--accent-gold);border-color:#0000}.btn.icon{width:var(--touch-target);padding:0;font-size:22px}.btn:disabled{opacity:.35;cursor:default}.linkish{width:100%;padding:var(--space-3);border:1px solid var(--ui-border);border-radius:var(--radius-m);text-align:left;cursor:pointer;background:0 0;gap:2px;display:grid}.linkish:hover{border-color:var(--accent-gold)}.linkish span{color:var(--ui-text-dim);font-size:14px}.project-index{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.skill-groups{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.skill-group{padding:var(--space-3);border:1px solid var(--ui-border);border-radius:var(--radius-m)}.skill-group.focus{border-color:var(--accent-gold);box-shadow:0 0 0 1px var(--accent-gold) inset}.skills{gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none;display:grid}.skills li{gap:4px;display:grid}.skill-name{font-size:14px}.bar{background:#ffffff14;border-radius:3px;height:6px;overflow:hidden}.bar span{height:100%;width:calc(var(--lvl) * 100%);background:linear-gradient(90deg, var(--accent-hedge), var(--success));display:block}.project-panel .panel,.panel.project-panel{width:min(820px,100%)}.hero-media{aspect-ratio:16/9;object-fit:cover;width:100%;margin-bottom:var(--space-4);border-radius:var(--radius-m);background:#0e1016;display:block}.hero-fallback{background:linear-gradient(135deg,#f5c4512e,#f4a6c01f),repeating-linear-gradient(0deg,#0000 0 15px,#ffffff08 15px 16px),repeating-linear-gradient(90deg,#0000 0 15px,#ffffff08 15px 16px),#12141b;place-items:center;display:grid}.hero-fallback span{font:600 72px/1 var(--font-pixel);color:var(--accent-gold);opacity:.8}.project header h2{font:600 26px/1.2 var(--font-pixel);margin:0}.pitch{font-size:17px}.pager{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--ui-border);display:flex}.page-of{color:var(--ui-text-dim);font-size:13px}.hint{margin:var(--space-3) 0 0;color:var(--ui-text-dim);font-size:12px}.panel.book-panel{width:min(980px,100%);padding:var(--space-5);background:linear-gradient(90deg, #00000040, transparent 6%, transparent 94%, #00000040), var(--ui-panel-solid);border-color:#5a3d22;box-shadow:0 0 0 6px #3b2614,0 24px 64px #0000008c}.book{gap:var(--space-4) var(--space-5);grid-template-rows:1fr auto auto;grid-template-columns:180px 1fr;min-height:min(62vh,620px);display:grid}.book-tabs{padding-right:var(--space-4);border-right:1px solid var(--ui-border);flex-direction:column;grid-row:1/3;gap:2px;display:flex}.book-tabs button{min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-s);text-align:left;color:var(--ui-text-dim);font:500 15px/1 var(--font-ui);cursor:pointer;background:0 0;border:0}.book-tabs button:hover{color:var(--ui-text);background:#ffffff0a}.book-tabs button[aria-selected=true]{color:var(--ui-panel-solid);background:var(--accent-gold)}.book-page{padding-right:var(--space-2);transform-origin:0;overflow:auto}.book.turn-next .book-page{animation:page-in-next var(--motion-slow) var(--ease-out)}.book.turn-prev .book-page{animation:page-in-prev var(--motion-slow) var(--ease-out)}@keyframes page-in-next{0%{opacity:0;transform:perspective(1200px)rotateY(-14deg)translate(24px)}}@keyframes page-in-prev{0%{opacity:0;transform:perspective(1200px)rotateY(14deg)translate(-24px)}}.book-foot{align-items:center;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--ui-border);flex-wrap:wrap;grid-column:2;display:flex}.book-foot .actions{margin:0 0 0 auto}.book .hint{grid-column:2;margin:0}.cover .name{font-size:clamp(36px,6vw,56px)}.adv-grid{gap:var(--space-2);margin:var(--space-4) 0 0;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));padding:0;list-style:none;display:grid}.adv{gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--ui-border);border-radius:var(--radius-m);align-items:center;display:flex}.adv img{image-rendering:pixelated;filter:brightness(0)opacity(.45)}.adv.on{border-color:var(--accent-gold)}.adv.on img{filter:none}.adv-title{font:600 13px/1.3 var(--font-pixel);margin:0}.adv.on .adv-title{color:var(--accent-gold)}.adv-desc{color:var(--ui-text-dim);margin:2px 0 0;font-size:13px}@media (max-width:720px){.panel-backdrop{padding:0}.panel,.panel.book-panel{width:100%;height:100%;max-height:100%;padding:var(--space-5) var(--space-4);box-shadow:none;border-radius:0}.book{grid-template-rows:auto 1fr auto auto;grid-template-columns:1fr}.book-tabs{padding:0 0 var(--space-2);border-right:0;border-bottom:1px solid var(--ui-border);flex-direction:row;grid-row:auto;overflow-x:auto}.book-tabs button{flex:none}.book-foot,.book .hint{grid-column:1}.toast{min-width:0}}[hidden]{display:none!important}.loading{z-index:40;color:var(--ui-text);font-family:var(--font-ui);transition:opacity .8s var(--ease-in-out);background:radial-gradient(at 50% 40%,#1d2130 0%,#0b0c11 70%);place-items:center;display:grid;position:fixed;inset:0}.loading.leaving{opacity:0;pointer-events:none}.load-inner{align-items:center;gap:var(--space-3);text-align:center;opacity:0;width:min(420px,86vw);transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);flex-direction:column;display:flex;transform:translateY(8px)}.loading.show .load-inner{opacity:1;transform:none}.load-logo svg{animation:load-bob 2.4s var(--ease-in-out) infinite;display:block}@keyframes load-bob{50%{transform:translateY(-6px)rotate(-3deg)}}.load-name{font:600 28px/1.1 var(--font-pixel);letter-spacing:.02em;margin:0}.load-bar{border:2px solid var(--ui-border);background:#0b0c11;border-radius:3px;width:100%;height:10px;padding:2px}.load-fill{background:linear-gradient(90deg, var(--accent-hedge), var(--success));transform-origin:0;height:100%;transition:transform .3s var(--ease-out);transform:scaleX(0)}.loading.failed .load-fill{background:var(--danger)}.load-label{font:600 14px/1.2 var(--font-pixel);color:var(--accent-gold);margin:0}.load-tip{min-height:2.6em;color:var(--ui-text-dim);margin:0;font-size:15px}.load-note{gap:var(--space-2);color:var(--ui-text-dim);flex-wrap:wrap;justify-content:center;margin:0;font-size:14px;display:flex}.load-plain{bottom:var(--space-5);color:var(--ui-text-dim);font-size:14px;position:absolute}.title-screen{z-index:30;color:var(--ui-text);font-family:var(--font-ui);opacity:0;transition:opacity .5s var(--ease-out);background:linear-gradient(75deg,#08090ec7 0%,#08090e59 45%,#0000 70%);align-items:flex-end;padding:clamp(24px,8vh,96px) clamp(24px,7vw,120px);display:flex;position:fixed;inset:0}.title-screen.show{opacity:1}#ui[data-state=panel] .title-screen{visibility:hidden}.title-inner{max-width:560px}.title-name{font:600 clamp(40px, 7vw, 84px) / 1 var(--font-pixel);letter-spacing:.01em;text-shadow:0 4px 0 #00000059, var(--shadow-text);margin:0}.title-tagline{margin:var(--space-3) 0 0;color:var(--ui-text-dim);text-shadow:var(--shadow-text);font-size:clamp(16px,2vw,20px)}.title-actions{gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.title-actions .btn:not(.primary){background:var(--ui-panel)}.title-actions .btn.primary{min-width:180px;font-size:16px}.title-hint{margin:var(--space-4) 0 0;color:var(--ui-text-dim);text-shadow:var(--shadow-text);font-size:13px}.letterbox{z-index:28;pointer-events:none;position:fixed;inset:0}.lb-bar{height:11vh;transition:transform .7s var(--ease-in-out);background:#000;position:absolute;left:0;right:0}.lb-bar.top{top:0;transform:translateY(-100%)}.lb-bar.bottom{bottom:0;transform:translateY(100%)}.letterbox.show .lb-bar{transform:none}.lb-skip{right:var(--space-5);bottom:var(--space-4);font:600 12px/1 var(--font-pixel);color:var(--ui-text-dim);position:absolute}.lb-title{text-align:center;color:var(--ui-text);text-shadow:var(--shadow-text);opacity:0;transition:opacity .9s var(--ease-out);position:absolute;bottom:17vh;left:50%;transform:translate(-50%)}.letterbox.show .lb-title{opacity:1;transition-delay:1.2s}.lb-title h2{font:600 clamp(28px, 4vw, 48px) / 1.1 var(--font-pixel);margin:0}.lb-title p{margin:var(--space-2) 0 0;color:var(--ui-text-dim);font-size:17px}.controls-card{left:var(--space-5);bottom:var(--space-5);z-index:12;width:min(300px,100vw - 48px);padding:var(--space-4);background:var(--ui-panel);border:1px solid var(--ui-border);border-radius:var(--radius-m);color:var(--ui-text);font-family:var(--font-ui);opacity:0;transition:opacity var(--motion-slow) var(--ease-out), transform var(--motion-slow) var(--ease-out);pointer-events:none;position:fixed;transform:translateY(12px)}.controls-card.show{opacity:1;transform:none}.controls-card h2{margin:0 0 var(--space-3);font:600 16px/1 var(--font-pixel);color:var(--accent-gold)}.controls-list{gap:var(--space-2) var(--space-3);grid-template-columns:auto 1fr;align-items:center;margin:0;display:grid}.controls-list dt{text-align:right}.controls-list dd{margin:0;font-size:14px}.controls-list kbd{border:1px solid var(--ui-border);background:var(--ui-panel-solid);font:600 12px/1 var(--font-pixel);white-space:nowrap;border-bottom-width:3px;border-radius:4px;padding:3px 6px;display:inline-block}.controls-dismiss{margin:var(--space-3) 0 0;color:var(--ui-text-dim);font-size:12px}.hud-bar{z-index:10;pointer-events:none;font-family:var(--font-ui);color:var(--ui-text);transition:opacity var(--motion-std) var(--ease-out);position:fixed;inset:0}#ui:not(.in-world) .hud-bar,#ui:not(.in-world) .resume-btn{opacity:0;pointer-events:none;visibility:hidden}#ui[data-state=panel] .hud-bar .crosshair,#ui[data-state=paused] .hud-bar .crosshair,#ui[data-state=panel] .look-hint,#ui[data-state=paused] .look-hint{opacity:0}.compass,.hud-bottom{transition:opacity .6s var(--ease-out)}.hud-bar.idle .compass,.hud-bar.idle .xp,.hud-bar.idle .hotbar{opacity:.35}.compass{pointer-events:auto;top:var(--space-4);background:var(--ui-panel);border:1px solid var(--ui-border);border-radius:var(--radius-s);width:280px;height:28px;margin-left:-140px;position:absolute;left:50%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000);mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000)}.compass-strip{will-change:transform;height:100%;position:absolute;top:0;left:50%}.compass-mark{font:600 13px/1 var(--font-pixel);text-shadow:var(--shadow-text);position:absolute;top:50%;transform:translate(-50%,-50%)}.compass-mark.minor{color:var(--ui-text-dim);font-size:10px}.compass-pip{background:var(--ui-text-dim);transform-origin:50%;opacity:.7;width:6px;height:6px;margin-left:-3px;position:absolute;top:3px;left:50%;rotate:45deg}.compass-pip.found{background:var(--accent-gold);opacity:1}.compass-tick{background:var(--accent-gold);width:2px;height:7px;margin-left:-1px;position:absolute;bottom:0;left:50%}.crosshair{width:6px;height:6px;transition:transform var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out), opacity var(--motion-fast) var(--ease-out);background:#ffffffd9;border-radius:50%;margin:-3px 0 0 -3px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #00000073}.crosshair.third{opacity:.35}.crosshair.context{opacity:1;background:var(--accent-gold);transform:scale(1.6)}.look-hint{padding:var(--space-1) var(--space-3);background:var(--ui-panel);border-radius:var(--radius-s);font:600 13px/1.4 var(--font-pixel);opacity:0;transition:opacity var(--motion-std) var(--ease-out);margin:0;position:absolute;top:calc(50% + 28px);left:50%;transform:translate(-50%)}.look-hint.show{opacity:1}.subtitle{max-width:min(640px,90vw);padding:var(--space-2) var(--space-4);border-radius:var(--radius-s);text-align:center;opacity:0;transition:opacity var(--motion-std) var(--ease-out);background:#0009;margin:0;font-size:16px;position:absolute;bottom:150px;left:50%;transform:translate(-50%)}.subtitle.show{opacity:1}.hud-bottom{left:50%;bottom:var(--space-4);align-items:center;gap:var(--space-2);flex-direction:column;display:flex;position:absolute;transform:translate(-50%)}.slot-name{font:600 14px/1 var(--font-pixel);text-shadow:var(--shadow-text);opacity:0;transition:opacity var(--motion-std) var(--ease-out);margin:0}.slot-name.show{opacity:1}.xp{flex-direction:column;align-items:center;width:100%;display:flex;position:relative}.xp-level{font:700 16px/1 var(--font-pixel);color:#8cff6b;text-shadow:1px 1px #000,-1px -1px #000,1px -1px #000,-1px 1px #000;margin-bottom:2px}.xp-bar{background:#0009;border:1px solid #000;width:100%;height:6px}.xp-fill{transform-origin:0;height:100%;transition:transform .8s var(--ease-out);background:linear-gradient(#a6ff7a,#5fd13a);transform:scaleX(0)}.hotbar{pointer-events:auto;background:#0a0b10b3;border:2px solid #000;gap:2px;padding:3px;display:flex}.slot{cursor:pointer;background:#50546059;border:2px solid #ffffff1f;place-items:center;width:46px;height:46px;padding:0;display:grid;position:relative}.slot img{image-rendering:pixelated}.slot:hover{background:#787c8873}.slot.selected{border-color:var(--ui-text);box-shadow:inset 0 0 0 2px #000}.slot.on:after{content:"";background:var(--success);width:6px;height:6px;position:absolute;top:3px;right:3px}.slot-key{font:600 10px/1 var(--font-pixel);color:var(--ui-text-dim);text-shadow:1px 1px #000;position:absolute;bottom:1px;left:3px}.pause{z-index:18;-webkit-backdrop-filter:blur(5px)saturate(.8);backdrop-filter:blur(5px)saturate(.8);font-family:var(--font-ui);color:var(--ui-text);opacity:0;transition:opacity var(--motion-std) var(--ease-out);background:#08090e80;place-items:center;display:grid;position:fixed;inset:0}.pause.show{opacity:1}.pause-inner{gap:var(--space-2);flex-direction:column;width:min(300px,86vw);display:flex}.pause-title{margin:0 0 var(--space-3);text-align:center;font:600 28px/1 var(--font-pixel);text-shadow:var(--shadow-text)}.pause .btn:not(.primary){background:var(--ui-panel)}.panel.map-panel{width:min(1180px,100%)}.map-frame{border:2px solid var(--ui-border);border-radius:var(--radius-s);background:#14161e;width:100%;position:relative;overflow:hidden}.map-frame canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.map-marker{color:var(--ui-text);font:600 12px/1.2 var(--font-pixel);text-shadow:var(--shadow-text);background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:0;display:flex;position:absolute;transform:translate(-50%,-7px)}.map-marker.found{cursor:pointer}.map-dot{background:var(--ui-text-dim);color:#000;border:2px solid #000;place-items:center;width:14px;height:14px;font-size:9px;display:grid}.map-marker.found .map-dot{background:var(--accent-gold)}.map-marker.found:hover .map-dot,.map-marker.found:focus-visible .map-dot{transform:scale(1.3)}.map-label{white-space:nowrap;background:#0000008c;border-radius:3px;padding:1px 4px}.map-player{z-index:1;clip-path:polygon(50% 0,100% 100%,50% 75%,0 100%);filter:drop-shadow(0 0 2px #000);background:#fff;width:18px;height:22px;position:absolute}.map-hint{margin:var(--space-3) 0 0;color:var(--ui-text-dim);font-size:14px}.panel.settings-panel{width:min(900px,100%)}.set-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.set-group{padding:var(--space-3) var(--space-4);border:1px solid var(--ui-border);border-radius:var(--radius-m);margin:0}.set-group legend{padding:0 var(--space-2);font:600 13px/1 var(--font-pixel);color:var(--accent-gold)}.set-row{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:40px;font-size:14px;display:flex}.set-range{align-items:center;gap:var(--space-2);display:flex}.set-range input{width:130px;accent-color:var(--accent-gold)}.set-value{text-align:right;min-width:44px;font:600 12px/1 var(--font-pixel);color:var(--ui-text-dim)}.set-row select{max-width:190px;min-height:34px;padding:0 var(--space-2);background:var(--ui-panel-solid);color:var(--ui-text);border:1px solid var(--ui-border);border-radius:var(--radius-s);font:inherit}.switch{appearance:none;background:var(--ui-border);cursor:pointer;width:40px;height:22px;transition:background var(--motion-fast) var(--ease-out);border-radius:11px;margin:0;position:relative}.switch:after{content:"";background:var(--ui-text);width:16px;height:16px;transition:transform var(--motion-fast) var(--ease-out);border-radius:50%;position:absolute;top:3px;left:3px}.switch:checked{background:var(--success)}.switch:checked:after{transform:translate(18px)}.switch:focus-visible,.set-range input:focus-visible,.set-row select:focus-visible{outline:2px solid var(--accent-gold);outline-offset:2px}.set-footer{margin-top:var(--space-4);justify-content:flex-end;display:flex}@media (max-width:720px){.slot{width:36px;height:36px}.slot img{width:22px;height:22px}.compass{width:200px;margin-left:-100px}.title-actions .btn{flex:100%}}.touch-controls{z-index:11;pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}.look-pad{pointer-events:auto;touch-action:none;width:55%;position:absolute;top:0;bottom:0;right:0}.touch-controls.left .look-pad{left:0;right:auto}.stick{left:calc(var(--space-5) + env(safe-area-inset-left));bottom:calc(var(--space-6) + env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;background:#14161e59;border:2px solid #f3f1ea59;border-radius:50%;width:128px;height:128px;position:absolute}.touch-controls.left .stick{left:auto;right:calc(var(--space-5) + env(safe-area-inset-right))}.stick-knob{background:#f3f1eabf;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%;box-shadow:0 2px 8px #0006}.tbtns{right:calc(var(--space-5) + env(safe-area-inset-right));bottom:calc(var(--space-6) + env(safe-area-inset-bottom));gap:var(--space-3);pointer-events:auto;grid-template-columns:repeat(2,64px);display:grid;position:absolute}.touch-controls.left .tbtns{right:auto;left:calc(var(--space-5) + env(safe-area-inset-left))}.tbtn{width:64px;height:64px;color:var(--ui-text);font:700 18px/1 var(--font-pixel);touch-action:none;background:#14161e8c;border:2px solid #f3f1ea66;border-radius:50%}.tbtn.down,.tbtn[aria-pressed=true]{border-color:var(--accent-gold);background:#f5c4518c}.t-jump{grid-area:2/2}.t-use{background:#f5c45159}.t-menu{top:calc(var(--space-4) + env(safe-area-inset-top));left:calc(var(--space-4) + env(safe-area-inset-left));pointer-events:auto;width:48px;height:48px;position:absolute}.touch .hotbar,.touch .slot-name,.touch .controls-card{display:none}.touch .hud-bottom{bottom:calc(var(--space-2) + env(safe-area-inset-bottom));width:160px}.touch .compass{top:calc(var(--space-4) + env(safe-area-inset-top))}@media (max-width:600px){.title-card{top:20vh}.toast{min-width:0;max-width:calc(100vw - 2 * var(--space-4))}}.lost{z-index:50;color:var(--ui-text);font-family:var(--font-ui);background:#0b0c11e0;place-items:center;display:grid;position:fixed;inset:0}.lost-inner{width:min(440px,88vw);padding:var(--space-5);text-align:center;background:var(--ui-panel-solid);border:2px solid var(--ui-border);border-radius:var(--radius-m)}.lost-inner h2{margin:0 0 var(--space-3);font-family:var(--font-pixel)}.lost-actions{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;justify-content:center;display:flex}#ui[data-state=tour] .hud-bar .crosshair,#ui[data-state=tour] .hud-bottom,#ui[data-state=tour] .world-prompt,#ui[data-state=tour] .resume-btn,#ui[data-state=tour] .controls-card,#ui[data-state=tour] .look-hint,#ui[data-state=tour] .touch-controls{display:none}.tour-hint{top:calc(var(--space-4) + 40px);padding:var(--space-1) var(--space-3);background:var(--ui-panel);border-radius:var(--radius-s);color:var(--ui-text);font:500 14px var(--font-ui);pointer-events:none;margin:0;display:none;position:absolute;left:50%;transform:translate(-50%)}#ui[data-state=tour] .tour-hint{display:block}#ui[data-state=photo] .hud-bar,#ui[data-state=photo] .world-prompt,#ui[data-state=photo] .resume-btn,#ui[data-state=photo] .title-card,#ui[data-state=photo] .controls-card,#ui[data-state=photo] .touch-controls{display:none}.photo{right:var(--space-4);bottom:var(--space-4);width:min(360px, calc(100vw - 2 * var(--space-4)));max-height:calc(100dvh - 2 * var(--space-4));pointer-events:none;position:absolute}.photo-panel{gap:var(--space-3);max-height:inherit;padding:var(--space-4);background:var(--ui-panel);border-radius:var(--radius-m);color:var(--ui-text);font-family:var(--font-ui);pointer-events:auto;flex-direction:column;display:flex;overflow-y:auto}.photo-title{font:600 18px var(--font-pixel);margin:0}.photo-hint{margin:var(--space-1) 0 0;color:var(--ui-text-dim);font-size:13px}.photo-controls{gap:var(--space-2);flex-direction:column;display:flex}.photo-label{margin:0 0 var(--space-1);color:var(--ui-text-dim);font-size:13px}.photo-chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.photo-chip{min-height:32px;padding:0 var(--space-3);border:1px solid var(--ui-border);color:var(--ui-text);font:500 13px var(--font-ui);cursor:pointer;background:0 0;border-radius:999px}.photo-chip[aria-pressed=true]{background:var(--accent-gold);border-color:var(--accent-gold);color:var(--ui-panel-solid)}.photo-chip:focus-visible{outline:2px solid var(--accent-gold);outline-offset:2px}.photo-actions,.photo-result-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.photo-thumb{width:100%;margin-bottom:var(--space-2);border-radius:var(--radius-s);display:block}.photo.collapsed .photo-head,.photo.collapsed .photo-controls,.photo.collapsed .photo-result{display:none}@media (pointer:coarse){.photo-chip{min-height:var(--touch-target)}}@media (max-width:600px){.photo{right:var(--space-2);left:var(--space-2);bottom:var(--space-2);width:auto;max-height:55dvh}}
