:root{--bone:#f2eee3;--bone-dim:#f2eee3a8;--slate:#12171aa8;--slate-solid:#161d21;--edge:#f2eee329;--shard:#4fe3e0;--shard-deep:#1e8c9c;--ember:#f2a541;--water:#5aa9e6;--moss:#8fbf6a;--blood:#e5484d;--cut:8px;--facet:polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));color:var(--bone);-webkit-font-smoothing:antialiased;font-family:Chakra Petch,ui-rounded,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:#1b1a1a;height:100%;margin:0;overflow:hidden}#game{width:100vw;height:100vh;display:block}kbd{text-align:center;min-width:1.7em;color:var(--slate-solid);background:var(--shard);clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px);margin-right:.35em;padding:0 .4em;font:600 .8em/1.6 Chakra Petch,system-ui,sans-serif;display:inline-block}[hidden]{display:none!important}#hud{pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}.top{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.compass{background:var(--slate);width:min(420px,70vw);height:26px;clip-path:var(--facet);position:relative;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{height:100%;position:absolute;top:0;left:50%}.tick{background:var(--bone-dim);width:1px;height:6px;position:absolute;bottom:0}.tick.major{width:auto;height:100%;color:var(--bone);background:0 0;font-size:13px;font-weight:600;line-height:26px;transform:translate(-50%)}.compass-needle{border:5px solid #0000;border-bottom-color:var(--shard);width:0;height:0;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.clock{background:var(--slate);clip-path:var(--facet);--cut:5px;align-items:center;gap:6px;padding:2px 10px;font-size:13px;font-weight:500;display:flex}.clock svg{width:14px;height:14px;fill:var(--ember);stroke:var(--ember);stroke-width:1.5px}.clock.night svg{fill:#b9c8ff;stroke:none}.clock-hint{color:var(--ember)}.clock.night .clock-hint{color:#b9c8ff}.banner{text-align:center;max-width:min(640px,100vw - 32px);clip-path:var(--facet);background:#781e22bf;padding:6px 14px;font-size:13px;position:absolute;top:78px;left:50%;transform:translate(-50%)}.crosshair{background:var(--bone);opacity:.8;width:6px;height:6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 0 0 1px #00000059}.crosshair.hit{animation:.25s ease-out hitmark}.crosshair:after{content:"";inset:calc(-16px + var(--draw,0) * 11px);border:1.5px solid var(--bone);opacity:0;transition:opacity .12s;position:absolute}.crosshair[data-drawing]:after{opacity:.85}.crosshair[data-full]:after{border-color:#ffd166}@keyframes hitmark{0%{background:var(--blood);width:14px;height:14px}}.target-marker{border:2px solid var(--shard);filter:drop-shadow(0 0 4px #4fe3e099);width:14px;height:14px;position:absolute;top:0;left:0}.prompt{white-space:nowrap;background:var(--slate);clip-path:var(--facet);--cut:6px;align-items:center;gap:4px;padding:5px 12px;font-size:14px;display:flex;position:absolute;top:calc(50% + 34px);left:50%;transform:translate(-50%)}.prompt .gap{width:14px}.craft-progress{background:var(--slate);width:220px;height:22px;clip-path:var(--facet);--cut:6px;position:absolute;bottom:108px;left:50%;transform:translate(-50%)}.craft-progress:before{content:"";background:var(--shard-deep);transform-origin:0;transform:scaleX(var(--progress,0));position:absolute;inset:0}.craft-progress:after{content:attr(data-label);text-align:center;font-size:12px;line-height:22px;position:absolute;inset:0}.vitals{gap:5px;width:210px;display:grid;position:absolute;bottom:16px;left:16px}.gauge{background:var(--slate);clip-path:var(--facet);--cut:6px;--tone:var(--moss);grid-template-columns:18px 1fr 40px;align-items:center;gap:8px;padding:4px 8px;display:grid}.gauge svg{width:16px;height:16px;fill:var(--tone)}.gauge-hunger{--tone:var(--ember)}.gauge-thirst{--tone:var(--water)}.gauge-temp{--tone:#f07f5e}.gauge-bar{clip-path:polygon(3px 0,100% 0,calc(100% - 3px) 100%,0 100%);background:#f2eee31f;height:6px}.gauge-fill{background:var(--tone);transform-origin:0;height:100%;transition:transform .25s linear}.gauge-value{text-align:right;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.gauge-temp[data-trend=down] .gauge-value:after{content:" ▾";color:#9fc4ff}.gauge-temp[data-trend=up] .gauge-value:after{content:" ▴";color:var(--ember)}.gauge.low{animation:1s ease-in-out infinite pulse}.gauge-health.low{--tone:var(--blood)}@keyframes pulse{50%{background:#781e22b3}}.conditions{flex-wrap:wrap;gap:4px;min-height:0;display:flex}.condition{background:var(--slate);color:var(--bone-dim);clip-path:var(--facet);--cut:4px;padding:1px 8px;font-size:12px}.condition.bad{color:var(--bone);background:#962228cc}.hotbar{gap:5px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.slot{background:var(--slate);width:58px;height:58px;clip-path:var(--facet);place-items:center;display:grid;position:relative}.slot .icon{object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 2px #0006);width:46px;height:46px}.slot .count{text-shadow:0 1px 2px #000;font-size:13px;font-weight:700;position:absolute;bottom:3px;right:6px}.slot .wear{background:#00000073;height:3px;position:absolute;bottom:4px;left:8px;right:8px}.slot .wear span{background:var(--moss);height:100%;display:block}.slot .wear span.low{background:var(--blood)}.slot:has(.wear) .count{bottom:8px}.tooltip p.tooltip-wear{color:var(--bone)}.slot .key{color:var(--bone-dim);font-size:11px;position:absolute;top:2px;left:9px}.slot.hot.selected{box-shadow:inset 0 0 0 2px var(--shard);background:#1e8c9c8c}.slot.hot.selected .key{color:var(--shard)}.toasts{flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:absolute;bottom:120px;right:18px}.toast{background:var(--slate);clip-path:var(--facet);--cut:5px;padding:3px 12px;font-size:14px}.toast.good{color:#c9f2c2}.toast.bad{color:#ffc2c4}.toast.fade{animation:3.2s ease-out forwards toast}@keyframes toast{0%{opacity:0;translate:12px}6%,75%{opacity:1;translate:0}to{opacity:0}}.chat{width:min(380px,100vw - 32px);position:absolute;bottom:196px;left:16px}.chat-log{text-shadow:0 1px 2px #000000e6;flex-direction:column;gap:2px;max-height:180px;font-size:13px;display:flex;overflow:hidden}.chat-log .line{transition:opacity 1s}.chat-log .line b{color:var(--shard);margin-right:6px;font-weight:600}.chat-log .line.system{color:var(--bone-dim);font-style:italic}.chat-log .line.old{opacity:0}.chat-log.active{pointer-events:auto;overflow-y:auto}.chat-log.active .line.old{opacity:1}#chat-input{width:100%;color:var(--bone);background:var(--slate);outline:1px solid var(--shard);pointer-events:auto;border:0;margin-top:6px;padding:6px 10px;font:14px Chakra Petch,system-ui,sans-serif}.damage{opacity:0;background:radial-gradient(#0000 55%,#be141e8c);position:absolute;inset:0}.damage.directional:after{content:"";width:120px;height:22px;translate:-50% -50%;rotate:var(--angle,0deg);clip-path:polygon(0 100%,12% 0,88% 0,100% 100%,50% 60%);background:#e5484dd9;position:absolute;top:50%;left:50%;transform:translateY(-160px)}.labels{position:absolute;inset:0;overflow:hidden}.nameplate{white-space:nowrap;clip-path:var(--facet);--cut:4px;background:#12171a8c;padding:1px 8px;font-size:13px;font-weight:600;position:absolute;top:0;left:0}.nameplate.hit{background:#be1e26cc}.hit-number{color:#c9f2c2;text-shadow:0 1px 3px #000;font-size:15px;font-weight:700;position:absolute;top:0;left:0}.hit-number.player{color:#ffd166;font-size:19px}.hit-number.head{color:#ff6b4a;font-size:23px}.hud-stats{background:var(--slate);white-space:pre;padding:8px 10px;font:12px/1.5 ui-monospace,Menlo,monospace;position:absolute;top:12px;left:12px}.keys{color:var(--bone-dim);justify-items:end;gap:3px;font-size:12px;display:grid;position:absolute;bottom:16px;right:16px}#inventory,#map,#death,#trader,#keypad{background:#0a0e108c;place-items:center;display:grid;position:fixed;inset:0}.inv-panel{max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);clip-path:var(--facet);--cut:16px;background:#12171ae0;align-items:flex-start;gap:18px;padding:18px;display:flex;overflow:auto}.inv-panel h2{margin:0 0 10px;font-size:16px;font-weight:600}.inv-panel h3{color:var(--bone-dim);margin:12px 0 8px;font-size:13px;font-weight:500}.inv-hint{color:var(--bone-dim);margin:12px 0 0;font-size:12px}.grid{grid-template-columns:repeat(4,58px);gap:5px;display:grid}.grid.hotbar-row{grid-template-columns:repeat(8,58px)}.grid.box{grid-template-columns:repeat(4,58px)}.grid .slot{cursor:grab;background:#f2eee312}.grid .slot.empty{cursor:default}.grid .slot:not(.empty):hover{box-shadow:inset 0 0 0 2px var(--shard)}.box-section{border-left:1px solid var(--edge);padding-left:18px}.craft-section{border-left:1px solid var(--edge);width:290px;padding-left:18px}.recipes{gap:6px;display:grid}.recipe{width:100%;font:inherit;text-align:left;color:var(--bone);clip-path:var(--facet);--cut:6px;cursor:pointer;background:#f2eee312;border:0;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;padding:6px 10px 6px 6px;display:grid}.recipe:hover:not(:disabled){background:#1e8c9c73}.recipe:focus-visible{outline:2px solid var(--shard)}.recipe:disabled{cursor:default;color:var(--bone-dim)}.recipe.crafting{color:var(--bone);background:#1e8c9c59}.recipe .icon{object-fit:contain;width:44px;height:44px}.recipe strong{font-weight:600}.recipe-cost{flex-wrap:wrap;gap:8px;margin-top:2px;font-size:12px;display:flex}.recipe-cost span{align-items:center;gap:2px;display:inline-flex}.recipe-cost .missing{color:#ff9ea1}.recipe-cost .mini{object-fit:contain;width:18px;height:18px}.recipe-time{color:var(--bone-dim);font-size:12px}.tooltip{z-index:3;background:var(--slate-solid);width:230px;clip-path:var(--facet);pointer-events:none;padding:8px 10px;position:fixed}.tooltip strong{font-weight:600}.tooltip p{color:var(--bone-dim);margin:4px 0 0;font-size:13px}.drag-ghost{z-index:4;pointer-events:none;filter:drop-shadow(0 6px 8px #00000080);width:50px;height:50px;position:fixed;top:0;left:0}.map-frame{clip-path:var(--facet);--cut:14px;text-align:center;background:#12171ae6;padding:12px}.map-frame canvas{image-rendering:auto;width:min(80vh,100vw - 56px);height:min(80vh,100vw - 56px);display:block}.map-hint{color:var(--bone-dim);margin:8px 0 0;font-size:12px}#death{background:radial-gradient(circle at 50% 45%,#500a108c,#080608e0)}.death-card{text-align:center;width:min(440px,100vw - 32px)}.death-card h1{letter-spacing:.01em;color:var(--bone);margin:0;font-size:clamp(34px,6vw,54px);font-weight:700}.death-detail{color:var(--bone-dim);margin:10px 0 2px}.death-bag{color:var(--bone-dim);margin:0 0 24px;font-size:14px}.keypad-card{width:min(260px,100vw - 32px);clip-path:var(--facet);--cut:14px;text-align:center;background:#12171ae6;padding:18px 18px 16px}.keypad-card h2{color:var(--bone);margin:0 0 12px;font-size:16px;font-weight:600}.keypad-field{box-sizing:border-box;letter-spacing:.4em;text-align:center;color:#9ff7f2;background:#04080acc;border:1px solid #4fe3e059;outline:none;width:100%;margin-bottom:12px;padding:8px 10px;font:600 26px/1 ui-monospace,monospace}.keypad-field.shake{animation:.3s keypad-shake}@keyframes keypad-shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.keypad-keys{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.keypad-key{color:var(--bone);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;padding:10px 0;font:600 16px/1 inherit}.keypad-key:hover{background:#ffffff1f}.keypad-key.ok{color:#0d1214;background:#4fe3e0;border-color:#4fe3e0}#menu{background:radial-gradient(circle at 50% 40%,#1e8c9c4d,#101416db);place-items:center;display:grid;position:fixed;inset:0}.menu-card{width:min(380px,100vw - 32px);max-height:calc(100vh - 32px);clip-path:var(--facet);--cut:18px;text-align:center;background:#12171ad1;padding:28px 24px 20px;overflow-y:auto}.menu-card h1{letter-spacing:.02em;color:var(--shard);text-shadow:0 0 24px #4fe3e073;margin:0;font-size:46px;font-weight:700}.tagline{color:var(--bone-dim);margin:4px 0 20px}.hint{color:var(--bone-dim);margin:12px 0 0;font-size:13px}.field{text-align:left;color:var(--bone-dim);gap:4px;margin-bottom:10px;font-size:13px;display:grid}.field input{color:var(--bone);clip-path:var(--facet);--cut:6px;background:#f2eee312;border:0;padding:10px 12px;font:16px Chakra Petch,system-ui,sans-serif}.field input:focus-visible{background:#1e8c9c4d;outline:none}.picker{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}button{font:inherit;color:var(--bone);clip-path:var(--facet);--cut:6px;cursor:pointer;background:#f2eee312;border:0;padding:10px 12px}button:focus-visible{outline:2px solid var(--shard);outline-offset:-2px}.picker button[aria-checked=true]{box-shadow:inset 0 0 0 2px var(--shard);background:#4fe3e02e}.account{text-align:left;gap:2px;display:grid}.tabs{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px;display:grid}.tabs button[aria-selected=true]{box-shadow:inset 0 0 0 2px var(--shard);background:#4fe3e02e}.field small{color:var(--bone-dim);margin-left:4px;font-size:12px}.field input[aria-invalid=true]{box-shadow:inset 0 0 0 2px var(--blood)}.form-error{color:#ff9ea1;min-height:1.2em;margin:0 0 8px;font-size:13px}.signed-in{color:var(--bone-dim);margin:0 0 12px}.signed-in strong{color:var(--bone);font-weight:600}button.link{clip-path:none;color:var(--shard);text-underline-offset:3px;background:0 0;padding:0;text-decoration:underline}#play,.respawn,button.primary{background:var(--shard-deep);width:100%;font-size:17px;font-weight:600}#play:disabled,.respawn:disabled,button.primary:disabled{opacity:.65;cursor:progress}#play:not(:disabled):hover,.respawn:not(:disabled):hover,button.primary:not(:disabled):hover{background:#23a4b6}.controls{text-align:left;color:var(--bone-dim);margin-top:14px;font-size:13px}.controls summary{cursor:pointer;text-align:center}.volume{opacity:.85;justify-content:center;align-items:center;gap:10px;margin-top:10px;font-size:13px;display:flex}.volume input{width:140px;accent-color:var(--bone)}.controls dl{grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0 0;display:grid}.controls dt{color:var(--shard);font-weight:600}.controls dd{margin:0}@media (max-width:720px){.slot{width:44px;height:44px}.slot .icon{width:34px;height:34px}.vitals{width:170px;bottom:72px}.keys{display:none}.inv-panel{flex-direction:column}.box-section,.craft-section{border-left:0;padding-left:0}}@media (prefers-reduced-motion:reduce){.gauge.low,.toast.fade,.crosshair.hit{animation:none}}.build-bar{white-space:nowrap;background:var(--slate);clip-path:var(--facet);--cut:6px;align-items:center;gap:2px;padding:4px 6px;font-size:13px;display:flex;position:absolute;bottom:140px;left:50%;transform:translate(-50%)}.build-bar .piece{opacity:.6;padding:2px 8px}.build-bar .piece.on{opacity:1;background:var(--shard-deep);clip-path:var(--facet);--cut:4px}.build-bar .build-status{margin-left:10px;font-weight:600}.build-bar .build-status.ok{color:#b9f0a8}.build-bar .build-status.bad{color:#ff9a8a}.build-bar .build-keys{opacity:.75;margin-left:12px}.compass-strip .mate{color:#12171a;background:var(--mate,#e2b23c);white-space:nowrap;border-radius:2px;padding:0 4px;font-size:9px;line-height:11px;position:absolute;top:14px;transform:translate(-50%)}.nameplate.ally{background:color-mix(in srgb, var(--ally,#e2b23c) 70%, black)}.clan-box h3{margin:10px 0 4px;font-size:14px}.clan-box ul{opacity:.7;flex-wrap:wrap;gap:4px 10px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.clan-box li.online{opacity:1;font-weight:600}.clan-box .hint{opacity:.7;margin:4px 0 0;font-size:12px}.condition.good{color:#9fe3a0}.nameplate.hostile:before{content:"⚔ ";color:#ff7a6b}.trader-panel{width:min(1100px,100vw - 32px);display:block}.trader-head{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:10px;display:flex}.trader-greeting{color:var(--bone-dim);margin:0;font-size:13px;font-style:italic}.trader-standing{justify-items:end;gap:4px;min-width:200px;font-size:12px;display:grid}.rep-bar{background:#f2eee31f;width:200px;height:6px}.rep-fill{background:var(--shard);transform-origin:0;height:100%}.trader-scrip{color:var(--gold,#e2b23c);font-size:15px;font-weight:700}.trader-body{grid-template-columns:1fr 1fr 1.2fr;gap:16px;display:grid}.trader-col{align-content:start;gap:5px;display:grid}.trader-col h3{margin:0 0 4px}.trader-row{cursor:pointer}.trader-price{color:#e2b23c;font-weight:700}.trader-price.missing{color:#ff9ea1}.trader-price.up:after{content:" ▲";color:#ff9ea1;font-size:10px}.trader-price.down:after{content:" ▼";color:#ff9ea1;font-size:10px}.mission{clip-path:var(--facet);--cut:6px;background:#f2eee312;padding:8px 10px;font-size:13px}.mission p{color:var(--bone-dim);margin:3px 0}.mission.ready{background:#1e8c9c59}.mission.done{opacity:.55}.mission-reward{color:#e2b23c;margin-top:3px;font-size:12px}.mission-buttons{align-items:center;gap:10px;margin-top:6px;display:flex}.mission-state{color:var(--bone-dim);font-size:12px}button.small{padding:4px 12px;font-size:13px}.nameplate.trader{background:#1e8c9cb3}@media (max-width:860px){.trader-body{grid-template-columns:1fr}}.dashboard{background:var(--slate);width:220px;clip-path:var(--facet);gap:6px;padding:10px 12px;display:grid;position:absolute;bottom:150px;right:16px}.dash-head{align-items:baseline;gap:6px;display:flex}.dash-title{letter-spacing:.08em;text-transform:uppercase;color:var(--bone-dim);flex:1;font-size:12px}.dash-speed{font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;line-height:1}.dash-unit{color:var(--bone-dim);font-size:12px}.dash-row{grid-template-columns:34px 1fr 46px;align-items:center;gap:8px;font-size:12px;display:grid}.dash-row>span:last-child{text-align:right;font-variant-numeric:tabular-nums}.dash-fuel{--tone:var(--ember)}.dash-hp{--tone:var(--moss)}.dash-fuel.low{animation:1s ease-in-out infinite pulse}.dash-row[hidden]{display:none}.dash-keys{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.dash-keys span{border:1px solid var(--edge);color:var(--bone-dim);padding:1px 6px;font-size:11px}.prompt:has(.prompt-hint){flex-wrap:wrap;justify-content:center}.prompt-hint{color:var(--ember);text-align:center;flex-basis:100%;margin-top:2px;font-size:12px}
