:root{color-scheme:dark;--ink:#090f1a;--surface:#111c2bf5;--line:#293849;--muted:#98abba;--text:#eef5f8;--accent:#cdf582;--cyan:#79d6ed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--text);overflow:hidden}button,select{font:inherit}button,select,summary{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:#152334;color:var(--text);border-radius:8px;min-height:44px;padding:10px 14px}button:hover{background:#22364a}button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled{opacity:.38;cursor:default}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none;outline:0;display:block}.topbar{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:max(20px,env(safe-area-inset-top)) max(26px,env(safe-area-inset-right)) 20px max(26px,env(safe-area-inset-left));pointer-events:none;background:linear-gradient(#090f1ae8,transparent)}.identity{display:flex;align-items:center;gap:11px}.cube-icon{font-size:40px;color:var(--accent);line-height:1}.identity strong{display:block;font-size:20px;letter-spacing:.13em;font-weight:850}.identity div>span{display:block;font-size:10px;letter-spacing:.17em;color:var(--muted);margin-top:3px}.top-right{display:flex;align-items:center;gap:10px;pointer-events:auto}.local-badge{font-size:12px;color:#bfd0dd;border:1px solid #344153;border-radius:5px;padding:7px 10px;background:#101a28}#toggle{display:flex;align-items:center;gap:15px;font-size:14px}#toggle span{font-size:22px;line-height:18px}#fullscreen{font-size:25px;padding:0 12px}.panel{position:fixed;left:26px;top:96px;bottom:100px;width:308px;background:var(--surface);border:1px solid #344052;border-radius:14px;padding:20px;overflow:auto;scrollbar-width:thin;scrollbar-color:#354b5d transparent;box-shadow:0 16px 50px #0004}.panel[hidden]{display:none}.panel-head{display:flex;align-items:flex-start;justify-content:space-between}.eyebrow{color:var(--accent);font-size:11px;font-weight:750;letter-spacing:.13em}h1{font-size:25px;margin:6px 0 16px;letter-spacing:-.045em;font-weight:650}.panel-head button{border:0;background:transparent;font-size:24px;min-height:32px;padding:0 3px;color:var(--muted)}.fps-block{display:grid;grid-template-columns:1fr 104px;align-items:center;gap:8px}.fps-block strong{font-size:50px;font-weight:600;letter-spacing:-.075em;font-variant-numeric:tabular-nums;line-height:1}.fps-block div>span{font-size:12px;color:var(--muted);margin-left:8px}.fps-block>span{font-size:12px;color:var(--muted);grid-column:1/-1}.spark{display:flex;align-items:flex-end;height:34px;gap:3px;overflow:hidden}.spark i{display:block;flex:1;background:#80b8b1;min-width:3px;border-radius:1px;opacity:.75}.rule{height:1px;background:var(--line);margin:18px 0}label{display:block;font-size:13px;color:#c3d1dc;margin-bottom:7px}select{width:100%;height:42px;color:var(--text);background:#0b1522;border:1px solid #344253;border-radius:7px;padding:0 10px;font-size:14px;cursor:pointer}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.stats{margin:18px 0;font-size:12px}.stats div{display:flex;justify-content:space-between;gap:8px;margin:9px 0}.stats dt{color:var(--muted)}.stats dd{margin:0;font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace;color:#d6e4ed}.primary,.secondary{width:100%;font-size:14px;min-height:44px}.primary{background:var(--accent);color:#15230a;font-weight:750;border-color:var(--accent);display:flex;align-items:center;justify-content:space-between}.primary:hover{background:#e1ffa4}.primary span{font-size:18px}.secondary{margin-top:9px;background:transparent}.bench-state{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.45}details{margin-top:18px;border-top:1px solid var(--line);padding-top:14px;font-size:12px;color:var(--muted);line-height:1.55}summary{cursor:pointer;color:#c1d1dc}details p{margin-bottom:0}.location{position:fixed;bottom:27px;left:26px;display:flex;align-items:center;gap:10px;pointer-events:none}.coordinate-mark{font-size:25px;color:var(--accent)}.location strong{font-family:ui-monospace,monospace;font-size:12px;font-weight:400;letter-spacing:.04em}.location div>span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.hint{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);font-size:12px;color:#b7c6d4;white-space:nowrap;background:#0b1321c9;border:1px solid #2a384a;padding:10px 13px;border-radius:8px;pointer-events:none}.hint>span{margin:0 8px;color:#5a7388}kbd{display:inline-block;min-width:18px;text-align:center;font:11px ui-monospace,monospace;padding:2px 4px;background:#283449;border-radius:3px;color:#e3edf3;margin:0 1px}.home{position:fixed;bottom:25px;right:26px;font-size:20px}.home span{font-size:12px;margin-left:6px}.touch-controls{display:none;position:fixed;left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right));bottom:max(25px,env(safe-area-inset-bottom));justify-content:space-between;pointer-events:none;user-select:none;-webkit-user-select:none}.touch-controls button{pointer-events:auto;touch-action:none;width:68px;height:68px;border-radius:17px;background:#192c40d9;border-color:#476077;font-size:30px;user-select:none;-webkit-user-select:none}.touch-controls button.pressed{background:#31566a;border-color:#a8e9ed}.directions{display:flex;gap:12px}.touch-controls .jump{background:#b9e877e8;color:#182911;border-color:#d3f99e;font-size:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0}.jump span{font-size:9px;letter-spacing:.15em;font-weight:800}#toast{position:fixed;top:95px;left:50%;transform:translateX(-50%);font-size:14px;padding:10px 16px;border-radius:8px;background:#172f40;border:1px solid #406074;pointer-events:none;opacity:0;transition:opacity .15s;max-width:90vw;text-align:center}.loading{position:fixed;inset:0;background:#090f1aee;display:grid;place-items:center;z-index:5}.loading[hidden]{display:none}.loading-box{padding:30px;width:min(90vw,440px);border:1px solid var(--line);background:#111d2b;border-radius:14px}.loading h2{font-size:26px;letter-spacing:-.03em}.loading p{line-height:1.6;color:var(--muted)}.loading button{background:var(--accent);color:#162309}
@media(pointer:coarse){.touch-controls{display:flex}.hint{display:none}.location{bottom:108px}.home{bottom:110px}.panel{bottom:114px}}
@media(max-width:760px){.topbar{padding:14px 16px}.identity strong{font-size:17px}.identity div>span{font-size:9px}.cube-icon{font-size:32px}.top-right{gap:6px}.local-badge{display:none}#toggle{font-size:13px;padding:9px 12px;gap:8px}#fullscreen{display:none}.panel{left:12px;right:12px;top:76px;width:auto;max-width:340px;bottom:116px;padding:17px}.location{left:20px}.home{right:20px}.hint{display:none}.touch-controls{display:flex}.location{bottom:108px}.home{bottom:109px}#toast{top:78px;width:max-content}.fps-block strong{font-size:42px}}
@media(max-height:500px){.topbar{padding:9px 18px}.identity div>span{display:none}.panel{top:64px;bottom:16px;width:285px;left:12px}.location{bottom:95px;font-size:10px}.location div>span{display:none}.touch-controls{bottom:16px}.touch-controls button{height:60px;width:60px}.home{bottom:90px}.hint{display:none}}

.gpu-details{margin-top:16px}.gpu-details #gpu-name{font:12px/1.5 ui-monospace,monospace;overflow-wrap:anywhere;color:var(--text)}.gpu-details #gpu-status{color:var(--accent)}.gpu-details #gpu-status[data-level="software"]{color:#ff9c91}.gpu-details #gpu-status[data-level="unknown"]{color:#f4d88a}.gpu-details label{margin-top:12px}.gpu-details p{font-size:12px}.gpu-details summary{font-size:14px}.gpu-help{width:min(92vw,440px);padding:0;border:1px solid #405169;border-radius:14px;background:var(--surface);color:var(--text);box-shadow:0 20px 80px #000b}.gpu-help::backdrop{background:#02060dcc}.gpu-help-card{position:relative;padding:24px}.gpu-help-close{position:absolute;top:12px;right:15px;min-height:32px;border:0;background:transparent;color:var(--muted);font-size:24px;padding:0 5px}.gpu-help h2{margin:7px 36px 12px 0;font-size:23px;letter-spacing:-.035em}.gpu-help p,.gpu-help li{color:#c6d2dd;font-size:14px;line-height:1.55}.gpu-help ol{margin:12px 0 0;padding-left:22px}.gpu-help-location{margin-top:14px!important;color:var(--accent)!important}.gpu-help-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.gpu-help-actions button{width:100%;margin-top:0}.gpu-help-never{display:flex;align-items:center;gap:8px;margin-top:16px;color:#c6d2dd;font-size:13px}.gpu-help-never input{width:18px;height:18px;accent-color:var(--accent)}

.network-details summary{font-size:14px}.multiplayer-test{padding:14px 0 3px}.multiplayer-test label,.multiplayer-test p{font-size:14px;line-height:1.5}.multiplayer-test p{margin:10px 0 0}.multiplayer-test .primary{margin-top:10px;justify-content:center}.multiplayer-test [hidden]{display:none}.test-checkbox{display:flex;gap:9px;align-items:center;margin:14px 0 0}.test-checkbox input{width:18px;height:18px;flex:none;accent-color:var(--accent)}.network-details .stats{font-size:14px}.network-details .stats dd{text-align:right;overflow-wrap:anywhere}.network-details>p{font-size:14px}

[hidden]{display:none!important}
:root{--accent:#d9f548;--text:#fffdf5}
.inventory-dialog,.guest-dialog{color:var(--text);background:linear-gradient(135deg,#1e2333,#141824);border:1px solid #4b557a;border-radius:9px;box-shadow:0 24px 100px #000a;max-height:calc(100dvh - 48px);overflow:auto}
.inventory-dialog::backdrop,.guest-dialog::backdrop{background:#080b1f7a;backdrop-filter:blur(5px)}
.guest-dialog{width:min(90vw,480px);padding:32px}
.guest-dialog h2{font-size:32px;line-height:1.15;letter-spacing:-.04em;margin:16px 0}
.guest-dialog p{font-size:16px;color:#c0c5d9;line-height:1.6}
.guest-dialog .primary{margin-top:24px;min-height:52px;font-size:16px}
.guest-dialog .guest-caption{font-size:14px;text-align:center;color:var(--accent);margin:10px 0 0}
.guest-dialog .guest-session{font-size:14px;margin:22px 0 0;border-top:1px solid #39415f;padding-top:16px}
.guest-dialog .guest-demo-note{font-size:14px;text-align:center;margin:6px 0 0;color:#9da7c3}
#inventory-open{font-size:14px;display:flex;align-items:center;gap:10px}
.inventory-dialog{width:min(calc(100vw - 48px),720px);padding:18px}
.inventory-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.inventory-header h2{font-size:26px;letter-spacing:-.03em;margin:6px 0 0}
.inventory-header .eyebrow{font-size:12px}
.inventory-header>button{font-size:24px;padding:4px 12px;background:transparent;border-color:#39415f}
.inventory-layout{display:grid;grid-template-columns:190px 1fr;gap:12px}
.inventory-loadout,.inventory-main{min-width:0;padding:12px;border:1px solid #9aa2bd33;border-radius:6px;background:#080b1f33}
.inventory-loadout{text-align:center}
.inventory-section-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:12px}
.inventory-section-label{font:700 12px/1.4 ui-monospace,monospace;letter-spacing:.06em;color:#aab2ce}
#inventory-count{font-size:12px;white-space:nowrap;color:#9da7c3}
.inventory-loadout>strong{font-size:16px}
.inventory-loadout p{font-size:14px;line-height:1.5;color:#c0c5d9;margin:6px 0}
.inventory-loadout .loadout-hint{margin-top:22px;color:#969fbe}
.cube-preview{position:relative;height:150px;display:grid;place-items:center}
.preview-cube{width:52px;height:52px;background:#ef4538;border:3px solid #171927;box-shadow:inset 0 3px #ff9c91,5px 5px #0003;position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:10px}
.preview-cube i{display:block;width:7px;height:10px;background:#171927;margin-top:-4px}
.preview-floor{position:absolute;bottom:36px;width:105px;height:12px;border-top:3px solid #687395;background:#303950;transform:skewX(-25deg)}
.preview-lantern{position:absolute;right:12px;top:38px;width:12px;height:16px;background:#596179;border:2px solid #a1abc7;border-radius:3px}
.cube-preview.lit .preview-lantern{background:#d9f548;box-shadow:0 0 28px 12px #d9f525;border-color:#fffdf5}
.inventory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.inventory-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:83px;padding:11px 3px 7px;border:1px solid #4b557a;background:#0f1321;border-radius:4px;touch-action:none;user-select:none;-webkit-user-select:none}
.inventory-slot::before{content:'';position:absolute;inset:4px;border:1px dashed #39415f55;pointer-events:none}
.inventory-slot.occupied{background:#222744;cursor:grab}
.inventory-slot.selected{border-color:#d9f548;box-shadow:inset 0 0 0 1px #d9f548;background:#2c314a}
.inventory-slot.move-source{border-style:dashed}.inventory-slot.dragging{opacity:.35}
.inventory-grid .inventory-slot:nth-child(-n+4){margin-bottom:6px;border-bottom-color:#d9f58b}
.item-mark{position:relative;display:block;font-size:25px;line-height:1;font-weight:800;color:#536b80;font-family:ui-monospace,monospace;height:25px;width:26px}
.item-mark[data-item='wood']{font-size:0;height:18px;margin:3px 0 4px;background:linear-gradient(90deg,#aa7249 3px,#e5b27b 3px,#e5b27b 7px,#b17b50 7px,#b17b50 10px,#e5b27b 10px);border:2px solid #f3d5a7;transform:rotate(-14deg);border-radius:4px}
.item-mark[data-item='stone']{font-size:0;background:linear-gradient(145deg,#d4e2eb 40%,#91a9c1 40%,#75869a);clip-path:polygon(26% 0,76% 12%,100% 63%,77% 100%,0 86%,0 32%)}
.item-mark[data-item='crystal']{font-size:0;background:linear-gradient(75deg,#5095c6 40%,#aeeeff 41%,#6bcfe9 72%);clip-path:polygon(50% 0,87% 34%,82% 77%,50% 100%,12% 70%,15% 30%)}
.item-mark[data-item='lantern']{font-size:0;width:18px;height:21px;margin:4px 4px 0;background:linear-gradient(90deg,#72794c 12%,#d9f548 12%,#eefaa6 75%,#72794c 75%);border:2px solid #d4dcb5;border-radius:3px}
.item-mark[data-item='lantern']::before{content:'';position:absolute;left:3px;right:3px;top:-8px;height:6px;border:2px solid #d4dcb5;border-bottom:0;border-radius:6px 6px 0 0}
.slot-name{font-size:14px;line-height:1.2;overflow-wrap:anywhere}
.slot-count{font-size:12px;min-height:14px;color:#c0c5d9;font-variant-numeric:tabular-nums}
.slot-key{position:absolute;left:6px;top:3px;font-size:12px;color:#9da7c3}
.inventory-instruction,.inventory-session{font-size:14px;color:#b0b9d2;line-height:1.5}
.inventory-detail{border-top:1px solid #39415f;padding-top:14px}
.inventory-detail h3{font-size:18px;margin:0 0 6px}
.inventory-detail p{font-size:16px;color:#c0c5d9;line-height:1.5;margin:0 0 14px}
.inventory-actions{display:flex;flex-wrap:wrap;gap:8px}
.inventory-actions button{flex:1 1 150px;width:auto;margin:0;justify-content:center;font-size:14px;border-radius:4px}
.inventory-feedback{color:var(--accent);font-size:14px;min-height:20px;margin:12px 0 0}
.inventory-session{border-top:1px solid #39415f;padding-top:10px;margin:10px 0 0}
.inventory-drag-preview{position:fixed;z-index:100;pointer-events:none;transform:translate(-50%,-50%) rotate(-3deg);background:#222744;border:2px solid #fffdf5;color:#fffdf5;box-shadow:4px 4px #0006;padding:12px;font-size:14px;white-space:nowrap;border-radius:4px}
.inventory-drag-preview.will-drop{border-color:#d9f548;background:#354229}
.inventory-hud{position:fixed;left:50%;bottom:78px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.quick-slots{display:grid;grid-template-columns:repeat(4,66px);gap:6px;padding:6px;border:1px solid #4b557a;background:#181d2aea;border-radius:6px;pointer-events:auto}
.quick-slots .inventory-slot{min-height:66px;padding:8px 3px 4px}.quick-slots .slot-name{display:none}
.collect-button{background:#d9f548;color:#171927;border-color:#d9f548;font-size:14px;font-weight:700;pointer-events:auto;max-width:90vw}
.collect-button:hover{background:#ecff8d}.collect-button kbd{color:#171927;background:#c1d747;font-size:14px}
#toast{z-index:4}
@media(max-width:760px),(pointer:coarse){
 .inventory-hud{bottom:max(16px,env(safe-area-inset-bottom));gap:8px}.quick-slots{grid-template-columns:repeat(4,48px);gap:4px;padding:4px}
 .quick-slots .inventory-slot{min-height:56px}.quick-slots .slot-key{display:none}
 .touch-controls button{width:54px;height:60px;border-radius:12px}.directions{gap:6px}
 .touch-controls{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(17px,env(safe-area-inset-bottom))}
 .location{bottom:150px}.home{bottom:145px}#inventory-open kbd{display:none}
}
@media(max-width:620px){
 .inventory-layout{grid-template-columns:1fr;gap:10px}.inventory-loadout{display:grid;grid-template-columns:90px 1fr;grid-template-rows:auto auto auto;text-align:left;padding:8px 12px;gap:4px 12px}
 .inventory-loadout .cube-preview{grid-column:1;grid-row:1/4;height:84px}.inventory-loadout>.inventory-section-label{grid-column:2}
 .inventory-loadout>strong,.inventory-loadout>p{grid-column:2;margin:0}.inventory-loadout .loadout-hint{display:none}
 .preview-floor{bottom:9px;width:75px}.preview-cube{width:40px;height:40px}.preview-lantern{right:-2px;top:10px}
 .inventory-dialog{padding:12px}.inventory-main{padding:10px}.inventory-header{margin-bottom:12px}.inventory-header h2{font-size:24px}.inventory-grid{gap:5px}.inventory-slot{min-height:76px}
 .inventory-actions button{flex-basis:120px}
}
@media(max-width:540px){
 .inventory-hud{bottom:91px}.quick-slots{grid-template-columns:repeat(4,52px)}.location{bottom:20px;left:50%;transform:translateX(-50%);text-align:center}
 .coordinate-mark,.location div>span{display:none}.home{bottom:91px;right:10px}.home span{display:none}
 .identity .cube-icon{display:none}.identity div>span{font-size:9px;letter-spacing:.05em}.topbar{padding:14px 10px;gap:6px}
 .identity strong{font-size:15px;letter-spacing:.07em}#toggle{padding:8px;font-size:14px;gap:5px}#inventory-open{padding:8px;font-size:14px}
 .guest-dialog{padding:24px}.guest-dialog h2{font-size:28px}.inventory-section-head{align-items:flex-start;flex-direction:column}
}
@media(max-height:500px){.inventory-dialog,.guest-dialog{max-height:calc(100dvh - 32px);padding:12px}.inventory-hud{bottom:12px}.quick-slots .inventory-slot{min-height:52px}.quick-slots .slot-count{display:none}.inventory-slot{min-height:72px}}
@media(max-width:540px) and (max-height:500px){.inventory-hud{bottom:88px}}
