:root{--ink:#06090d;--surface:#0a0e14d1;--surface-2:#11171feb;--line:#ffffff1a;--line-strong:#fff3;--brand:#ff6a13;--brand-2:#f8560a;--brand-glow:#ff6a1373;--lime:#c8ff3d;--text:#eef3f8;--muted:#9aabbc;--shadow:0 18px 40px #00000080;--font-display:"Chakra Petch", "Outfit", system-ui, sans-serif;--font-ui:"Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;--ease-spring:cubic-bezier(.16, 1.04, .3, 1)}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;touch-action:auto}#app{position:fixed;inset:0}#gl{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.hidden{display:none!important}.muted{color:var(--muted)}.tiny{letter-spacing:.02em;font-size:11.5px}kbd,.k{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-strong);color:#dbe6f0;background:#ffffff17;border-bottom-width:2px;border-radius:3px;padding:1px 5px;font-size:10.5px}#hud{touch-action:none;pointer-events:none;font-size:13px;position:absolute;inset:0}#hud>*{pointer-events:auto}.panel{background:var(--surface);border:1px solid var(--line);backdrop-filter:blur(9px)saturate(1.25);box-shadow:inset 0 1px 0 #ffffff12, var(--shadow);border-radius:5px;padding:9px 11px;font-size:12px;position:absolute}#statusPanel{min-width:186px;top:14px;left:14px}.stat-row{justify-content:space-between;gap:14px;line-height:1.55;display:flex}.stat-row .k{color:var(--muted);background:0 0;border:0;padding:0}.stat-row b{font-family:var(--font-display);letter-spacing:.02em;font-weight:600}#debugPanel{width:300px;max-width:42vw;top:132px;left:14px}.debug-head{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:10.5px;display:flex}#debugText{color:#b9d4e8;white-space:pre;margin:0;font:11px/1.5 ui-monospace,SF Mono,Menlo,monospace}.mini-btn{pointer-events:auto;border:1px solid var(--line-strong);color:var(--text);font:600 9.5px/1 var(--font-display);letter-spacing:.1em;cursor:pointer;background:#ffffff14;border-radius:3px;padding:3px 6px}.mini-btn:hover{background:var(--brand);border-color:var(--brand);color:#fff}#crosshair{pointer-events:none;mix-blend-mode:difference;width:22px;height:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair i{background:#fff;position:absolute}#crosshair i:first-child{width:2px;height:100%;margin-left:-1px;top:0;left:50%}#crosshair i:last-child{width:100%;height:2px;margin-top:-1px;top:50%;left:0}#minimapWrap{border-radius:6px;place-items:safe center;padding:8px;display:grid;top:14px;right:14px}#minimap{background:#0a1017;border-radius:50%;width:132px;height:132px;display:block;box-shadow:inset 0 0 0 1px #ffffff24}.mm-n{font:700 9.5px/1 var(--font-display);color:var(--brand);letter-spacing:.1em;position:absolute;top:3px;left:50%;transform:translate(-50%)}#modeBadges{pointer-events:none;gap:6px;display:flex;position:absolute;top:84px;left:50%;transform:translate(-50%)}.badge{font:700 10px/1 var(--font-display);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--line-strong);color:#cfe0ee;backdrop-filter:blur(6px);animation:pop .28s var(--ease-spring);background:#06090db8;border-radius:3px;padding:5px 8px}.badge.on{color:#06090d;background:var(--lime);border-color:#0000}.badge.warn{color:#fff;background:var(--brand-2);border-color:#0000}#hotbarWrap{align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}#hotbar{border:1px solid var(--line);backdrop-filter:blur(8px);box-shadow:var(--shadow);background:#06090db8;border-radius:7px;gap:4px;padding:5px;display:flex}.slot{cursor:pointer;width:50px;height:50px;transition:transform .16s var(--ease-spring), box-shadow .16s ease, background .16s ease;background:#ffffff0d;border:1px solid #ffffff17;border-radius:4px;position:relative}.slot img{width:calc(100% - 8px);height:calc(100% - 8px);image-rendering:pixelated;pointer-events:none;position:absolute;inset:4px}.slot .num{font:600 9px/1 var(--font-display);color:#ffffff6b;position:absolute;top:2px;left:4px}.slot:hover{background:#ffffff1c;transform:translateY(-3px)}.slot.active{box-shadow:0 0 0 2px var(--brand), 0 0 18px var(--brand-glow);background:#ff6a1324;transform:translateY(-5px)scale(1.03)}.slot .name{white-space:nowrap;font:600 11px/1 var(--font-ui);border:1px solid var(--line);opacity:0;background:#06090ddb;border-radius:3px;padding:4px 7px;transition:opacity .2s;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%)}.slot.active .name{opacity:1}.slot .count{font:700 11px/1 var(--font-display);color:#fff;text-shadow:1px 1px #000000e6,0 0 6px #000000b3;pointer-events:none;position:absolute;bottom:2px;right:3px}.slot .count:empty{display:none}.slot .itemglyph{color:#fff;font:700 17px/1 var(--font-display);text-shadow:1px 1px #0000008c;pointer-events:none;background:linear-gradient(160deg,#fff3,#ffffff0d);border:1px solid #ffffff24;border-radius:4px;place-items:safe center;display:grid;position:absolute;inset:6px}.picker-btn{cursor:pointer;background:linear-gradient(180deg, var(--brand), var(--brand-2));color:#fff;width:50px;height:56px;box-shadow:0 4px 0 #a83c05, var(--shadow);font-family:var(--font-display);border:0;border-radius:7px;place-items:safe center;gap:1px;transition:transform .12s,box-shadow .12s;display:grid}.picker-btn:hover{box-shadow:0 6px 0 #a83c05, var(--shadow);transform:translateY(-2px)}.picker-btn:active{transform:translateY(2px);box-shadow:0 2px #a83c05}.picker-btn span{letter-spacing:.04em;font-size:11px;font-weight:700}#toasts{pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;width:274px;display:flex;position:absolute;top:160px;right:14px}.toast{background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--brand);width:100%;box-shadow:var(--shadow);animation:slideIn .34s var(--ease-spring);border-radius:5px;padding:9px 11px}.toast.out{animation:.3s forwards slideOut}.toast .t-head{font-family:var(--font-display);letter-spacing:.04em;justify-content:space-between;gap:8px;font-size:12px;display:flex}.toast .off{color:var(--lime);font-weight:700}.toast .t-body{color:var(--muted);margin-top:3px;font-size:11.5px;line-height:1.35}#hintBar{max-width:340px;color:var(--muted);flex-wrap:wrap;gap:4px 12px;font-size:11px;display:flex;position:absolute;bottom:20px;left:16px}#hintBar span{align-items:center;gap:4px;display:inline-flex}#fpsChip{color:var(--muted);border:1px solid var(--line);backdrop-filter:blur(6px);background:#06090d99;border-radius:999px;padding:4px 9px;font-size:11px;position:absolute;top:16px;left:50%;transform:translate(-50%)}#fpsChip b{color:var(--lime);font-family:var(--font-display)}#vignette{pointer-events:none;background:radial-gradient(130% 95% at 50% 46%,#0000 62%,#03050866 100%);position:absolute;inset:0}#waterOverlay{pointer-events:none;opacity:0;background:linear-gradient(#2274aa47,#0a345a66);transition:opacity .4s;position:absolute;inset:0}#waterOverlay.on{opacity:1}.screen{--ink:#14231c;--surface-2:#f0efe5;--line:#c5c9b9;--line-strong:#8a9787;--brand:#20372a;--brand-2:#14231c;--lime:#d6f578;--text:#20372a;--muted:#536052;--font-display:Arial, Helvetica, sans-serif;--font-ui:Arial, Helvetica, sans-serif;color:var(--text);font-family:var(--font-ui);touch-action:pan-y pinch-zoom;z-index:20;background:#14231cf0;place-items:safe center;padding:24px;display:grid;position:absolute;inset:0;overflow:auto}.screen :is(button,input,select){font-family:inherit}.screen :is(button,a,input,select):focus-visible{outline:3px solid var(--brand);outline-offset:3px}.screen :is(input,select){user-select:text;touch-action:auto}.screen button:disabled{opacity:.5;cursor:not-allowed}.screen .tiny{font-size:12px;line-height:1.5}.modal-card{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;width:min(760px,100%);max-height:calc(100dvh - 48px);padding:32px;animation:.2s ease-out rise;overflow:auto;box-shadow:0 24px 64px #0000003d}.modal-card.narrow{width:min(500px,100%)}.modal-card.wide{width:min(1040px,100%)}.modal-card.center{text-align:center}.modal-card h2{letter-spacing:-1.2px;margin:0 0 12px;font-size:32px;line-height:1.1}.menu-eyebrow{letter-spacing:1.4px;text-transform:uppercase;margin:0 0 14px;font:700 11px/1.6 Courier New,monospace}.stack{grid-template-columns:1fr 1fr;gap:10px;margin:24px 0;display:grid}.stack .primary{grid-column:1/-1}.stack .danger{grid-column:1/-1;margin-top:6px}#playtimeLabel{overflow-wrap:anywhere;font-size:14px;line-height:1.65}.stats-grid{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:10px 22px;padding-top:18px;display:grid}.stats-grid .stat-row{gap:12px;font-size:13px}.stats-grid .k{font:inherit;color:var(--muted);text-transform:none;letter-spacing:0;background:0 0;border:0;padding:0}.stats-grid b{font-family:var(--font-ui)}#saveStatus{margin:18px 0 0;line-height:1.6}#startScreen{background:var(--ink)}.start-card{border:1px solid #3e5246;border-radius:6px;grid-template-columns:.8fr 1.2fr;width:min(1120px,100%);display:grid;position:relative;overflow:hidden}.start-sidebar{color:#f4f4e9;background:#1b2e24;flex-direction:column;padding:40px;display:flex}.brand{margin-bottom:56px}.brand h1{letter-spacing:-1.3px;margin:0;font-size:29px;font-weight:800}.brand h1 span,.start-sidebar .menu-eyebrow{color:var(--lime)}.start-sidebar h2{letter-spacing:-1.6px;margin:0 0 18px;font-size:40px;line-height:1.05}.setup-description{color:#bac6b8;margin:0;font-size:15px;line-height:1.75}.controls-teaser{border-top:1px solid #3e5246;margin-top:28px;padding-top:24px;display:block}.controls-teaser summary{cursor:pointer;min-height:44px;font-size:14px;font-weight:600;line-height:44px}.controls-teaser>div{margin-top:10px}.controls-teaser summary:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.controls-teaser>div{grid-template-columns:56px 1fr;gap:14px;font-size:12px;line-height:1.6;display:grid}.controls-teaser b{font-weight:600}.controls-teaser span{color:#bac6b8}.back-home{color:#f4f4e9;justify-content:space-between;align-items:center;min-height:44px;margin-top:30px;font-size:13px;text-decoration:none;display:inline-flex}.back-home:hover{color:var(--lime)}.screen .back-home:focus-visible{outline-color:var(--lime)}.world-setup{background:var(--surface-2);padding:40px}.world-setup h2{letter-spacing:-1px;margin:0 0 30px;font-size:28px}.world-fields{gap:18px;margin-bottom:28px;display:grid}.field{gap:9px;display:grid}.field>span,.field-label,.search-label{color:var(--text);font-size:13px;font-weight:600}.field small{color:var(--muted);margin-left:6px;font-size:12px;font-weight:400}.seed-row{gap:8px;display:flex}.seed-row input{flex:1;min-width:0}.screen input:is([type=text],[type=search]),.screen select{width:100%;min-width:0;min-height:48px;color:var(--text);border:1px solid var(--line-strong);background:#fafaf4;border-radius:4px;padding:12px;font-size:15px}.screen input::placeholder{color:var(--muted);opacity:1}.screen input:focus{box-shadow:none}.preset-fieldset{border:0;min-width:0;margin:0;padding:0}.preset-fieldset legend{margin-bottom:12px}.preset-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:28px;display:grid}.preset{text-align:left;border:1px solid var(--line);color:var(--text);cursor:pointer;background:0 0;border-radius:4px;min-height:112px;padding:16px 12px;transition:background .16s,border-color .16s;position:relative}.preset:hover{border-color:var(--brand);background:#e4e8d9}.preset.active{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);background:#e4e8d9}.preset.active:after{content:"";background:var(--brand);width:6px;height:6px;position:absolute;top:8px;right:8px}.preset b{font-size:14px;font-weight:700;line-height:1.35;display:block}.preset span{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.55;display:block}.start-actions{gap:10px;display:grid}.fineprint{color:var(--muted);margin:18px 0 0;font-size:12px;line-height:1.6}.btn{border:1px solid var(--line-strong);min-height:46px;color:var(--text);cursor:pointer;font:600 14px/1.35 var(--font-ui);background:0 0;border-radius:4px;padding:12px 18px;transition:background .16s,border-color .16s}.btn:hover{border-color:var(--brand);background:#e4e8d9}.btn:active{background:#d5ddc9}.btn.primary{background:var(--brand);border-color:var(--brand);color:#f4f4e9}.btn.primary:hover{background:var(--brand-2)}.btn.ghost{background:0 0}.btn.danger{color:#943c2f;border-color:#ba7666}.btn.danger:hover{background:#f0ddd5}.btn.big{min-height:52px;font-size:15px}.btn.sm{min-height:44px;padding:10px 16px;font-size:13px}.picker-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px;display:flex}.picker-head p{margin:0;font-size:14px;line-height:1.6}.picker-search{flex:1;gap:8px;min-width:min(240px,100%);max-width:320px;display:grid}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px;margin-bottom:16px;padding-bottom:18px;display:flex}.tab{border:1px solid var(--line);min-height:44px;color:var(--text);font:600 13px var(--font-ui);cursor:pointer;background:0 0;border-radius:4px;padding:10px 14px;transition:background .16s}.tab:hover{background:#e4e8d9}.tab.active{background:var(--brand);color:#f4f4e9;border-color:var(--brand)}.inv-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;max-height:46vh;padding:4px;display:grid;overflow:auto}.item{border:1px solid var(--line);color:var(--text);cursor:pointer;text-align:center;background:#fafaf4;border-radius:4px;padding:12px 8px;transition:background .16s,border-color .16s}.item:hover{border-color:var(--brand);background:#e4e8d9}.item img{width:46px;height:46px;image-rendering:pixelated;margin:0 auto 8px;display:block}.item .lbl{overflow-wrap:anywhere;font-size:12px;line-height:1.4;display:block}.picker-foot{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.foot-actions{flex-wrap:wrap;justify-content:end;gap:10px;display:flex}.foot-actions.center{justify-content:center}.settings-note{margin:0;font-size:14px;line-height:1.6}.picker-empty{color:var(--muted);grid-column:1/-1;padding:24px 12px;font-size:15px;line-height:1.6}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;margin:28px 0;display:grid}.setting{gap:10px;min-width:0;display:grid}.setting .row{justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;line-height:1.5;display:flex}.setting .val{color:var(--brand);white-space:nowrap;font-size:12px;font-weight:600}.setting input[type=range]{width:100%;accent-color:var(--brand);cursor:pointer;height:36px}.switch{border:1px solid var(--line);width:100%;min-height:56px;color:var(--text);text-align:left;cursor:pointer;background:#fafaf4;border-radius:4px;justify-content:space-between;align-items:center;gap:14px;padding:12px;font-size:14px;display:flex}.switch .track{background:#82907e;border-radius:999px;flex:none;width:40px;height:24px;transition:background .18s;position:relative}.switch .track:after{content:"";background:#fafaf4;border-radius:50%;width:18px;height:18px;transition:transform .18s;position:absolute;top:3px;left:3px}.switch.on .track{background:var(--brand)}.switch.on .track:after{transform:translate(16px)}#consoleBar{z-index:30;border-top:1px solid var(--line);backdrop-filter:blur(8px);background:#04070be6;align-items:center;gap:8px;padding:12px 16px;display:flex;position:absolute;bottom:0;left:0;right:0}#consoleBar .prompt{font-family:var(--font-display);color:var(--lime);font-size:15px}#consoleInput{background:0 0;border:0;flex:1;padding:4px 0;font-size:15px;box-shadow:none!important}.console-hint{color:var(--muted);white-space:pre-wrap;max-width:70vw;font:11.5px/1.5 ui-monospace,monospace;position:absolute;bottom:52px;left:42px}.loader-card{text-align:center;background:var(--surface-2);border-radius:6px;width:min(380px,100%);padding:32px}.bar{background:var(--line);border-radius:3px;height:6px;margin:20px 0 12px;overflow:hidden}.bar i{background:var(--brand);width:8%;height:100%;transition:width .3s;display:block}.cube-spinner{background:var(--brand);width:32px;height:32px;margin:0 auto 24px;animation:1.2s ease-in-out infinite loadingPulse}.cube-spinner i{display:none}.loader-card h3{letter-spacing:-.5px;margin:0;font-size:22px}.loader-card p{font-size:14px;line-height:1.6}#errorOverlay pre{white-space:pre-wrap;overflow-wrap:anywhere;color:#943c2f;background:#f0ddd5;border-radius:4px;max-height:40vh;padding:16px;font-size:13px;line-height:1.6;overflow:auto}@keyframes loadingPulse{50%{opacity:.35}}@media (width<=760px){.screen{padding:16px}.start-card{grid-template-columns:1fr}.start-sidebar{padding:24px}.brand{margin-bottom:16px}.brand h1{font-size:clamp(22px,6.8vw,29px)}.start-sidebar h2{margin-bottom:12px;font-size:26px}.controls-teaser{margin-top:12px;padding-top:8px}.back-home{margin-top:8px}.world-setup{padding:24px}.world-setup h2{font-size:24px}.preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-card{max-height:calc(100dvh - 32px);padding:24px}.settings-grid,.stats-grid,.stack{grid-template-columns:1fr}.inv-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}}@media (height<=780px) and (width>=761px){.start-sidebar,.world-setup{padding:28px}.brand{margin-bottom:30px}.preset{min-height:100px;padding:12px}}#touchUI{touch-action:none;pointer-events:none;z-index:15;position:absolute;inset:0}#stickBase{border:1px solid var(--line-strong);pointer-events:auto;background:#ffffff12;border-radius:50%;width:128px;height:128px;position:absolute;bottom:96px;left:26px}#stickKnob{background:#ff6a13d9;border-radius:50%;width:40px;height:40px;position:absolute;top:44px;left:44px;box-shadow:0 4px 12px #0006}.touch-btns{pointer-events:auto;grid-template-columns:repeat(2,62px);gap:10px;display:grid;position:absolute;bottom:96px;right:18px}.touch-btns button{color:#fff;border:1px solid var(--line-strong);backdrop-filter:blur(6px);background:#0a0e14b3;border-radius:50%;width:62px;height:62px;font-size:22px}.touch-btns button:active{background:var(--brand)}@keyframes pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes rise{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:none}}@keyframes slideIn{0%{opacity:0;transform:translate(26px)}to{opacity:1;transform:none}}@keyframes slideOut{to{opacity:0;transform:translate(30px)scale(.96)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.05ms!important;animation-duration:.01ms!important}}@media (width<=900px){#statusPanel{min-width:150px;font-size:11px}#minimapWrap{padding:6px;top:auto;bottom:86px;right:12px}#minimap{width:92px;height:92px}#hintBar,#fpsChip{display:none}.slot{width:42px;height:42px}#toasts{width:232px;top:108px}}
