:root{color-scheme:dark;font-family:SFMono-Regular,Cascadia Mono,Roboto Mono,ui-monospace,monospace;--ink: #d5d1c3;--muted: #969a91;--accent: #8d998b}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:#414341;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none}body{position:fixed;inset:0;color:var(--ink)}#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;image-rendering:pixelated}.vignette{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(30,34,35,.18),transparent 31%,transparent 74%,rgba(27,28,27,.24)),radial-gradient(ellipse at center,transparent 54%,rgba(24,27,28,.2) 118%)}.prototype-label{position:absolute;z-index:4;left:max(18px,calc(env(safe-area-inset-left) + 12px));top:max(15px,calc(env(safe-area-inset-top) + 8px));display:grid;gap:3px;text-shadow:0 1px 5px rgba(22,25,25,.72);pointer-events:auto;touch-action:none}.prototype-label strong{font-size:.75rem;letter-spacing:.22em}.prototype-label span{color:#d3d3c7b3;font-size:.43rem;letter-spacing:.13em}.game-hud{position:absolute;inset:0;z-index:5;pointer-events:none}.joystick{position:absolute;left:max(26px,calc(env(safe-area-inset-left) + 18px));bottom:max(20px,calc(env(safe-area-inset-bottom) + 13px));width:clamp(100px,14vw,126px);aspect-ratio:1;border:1px solid rgba(237,222,190,.32);border-radius:50%;background:radial-gradient(circle,#ebdcba09 0 37%,#251f1a47 39% 68%,#e6d6b314 69% 70%,#251f1a30 71%);box-shadow:0 4px 22px #221c1726;touch-action:none;pointer-events:auto}.joystick-ring{position:absolute;inset:14%;border:1px dashed rgba(236,221,190,.17);border-radius:50%}.joystick-knob{position:absolute;left:50%;top:50%;width:44%;aspect-ratio:1;margin:-22%;border:1px solid rgba(239,225,194,.58);border-radius:50%;background:#362d26b8;box-shadow:0 4px 12px #1f19154d;will-change:transform}.joystick-knob i{position:absolute;inset:32%;border:1px solid var(--accent);transform:rotate(45deg)}.connection-status{position:absolute;right:max(18px,calc(env(safe-area-inset-right) + 12px));top:max(15px,calc(env(safe-area-inset-top) + 8px));display:flex;align-items:center;gap:.4rem;padding:.32rem .5rem;background:#1f23236b;color:#dadacfb8;font-size:.47rem;letter-spacing:.1em}.connection-status i{width:6px;height:6px;background:#996c59;transform:rotate(45deg)}.connection-status[data-state=online] i{background:#a6b186}.connection-status[data-state=connecting] i,.connection-status[data-state=reconnecting] i{background:var(--accent);animation:blink .8s steps(2,end) infinite}.interaction-hud{position:absolute;z-index:7;right:max(24px,calc(env(safe-area-inset-right) + 18px));bottom:max(24px,calc(env(safe-area-inset-bottom) + 16px));width:min(176px,28vw);display:grid;justify-items:stretch;gap:.34rem;pointer-events:none;filter:drop-shadow(0 2px 8px rgba(20,23,22,.52))}.interaction-name{color:#dedccfc7;font-size:.5rem;font-weight:500;letter-spacing:.13em;text-align:center}.interaction-action{min-height:56px;padding:.55rem .8rem;border:1px solid rgba(188,195,179,.5);background:#232826c2;color:#dddacf;font:inherit;font-size:.64rem;letter-spacing:.14em;pointer-events:auto;touch-action:none}.interaction-action:focus-visible{outline:2px solid rgba(199,208,188,.72);outline-offset:3px}.interaction-hud[data-state=starting] .interaction-action,.interaction-hud[data-state=active] .interaction-action{border-color:#cdc6a5ad}.interaction-key{display:none;margin-right:.45rem;color:#c8cabeb8}.interaction-progress{height:3px;overflow:hidden;border:1px solid rgba(187,192,177,.28);background:#181d1cad}.interaction-progress i{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:#c3c6b1d6;will-change:transform}.interaction-feedback{position:absolute;z-index:7;left:50%;bottom:max(18%,calc(env(safe-area-inset-bottom) + 76px));transform:translate(-50%);padding:.42rem .62rem;background:#1f2422a8;color:#dad8cad6;font-size:.52rem;letter-spacing:.15em;pointer-events:none}.interaction-target-indicator{position:absolute;z-index:6;left:0;top:0;width:24px;height:24px;margin:-12px 0 0 -12px;border:1px solid rgba(194,196,179,.52);pointer-events:none;will-change:transform}.interaction-target-indicator:before,.interaction-target-indicator:after{content:"";position:absolute;background:#cdcdbb94}.interaction-target-indicator:before{left:50%;top:4px;width:1px;height:14px}.interaction-target-indicator:after{left:4px;top:50%;width:14px;height:1px}.interaction-target-indicator[data-blocked=true]{opacity:.35}.inventory-open{position:absolute;z-index:8;right:max(18px,calc(env(safe-area-inset-right) + 12px));top:max(52px,calc(env(safe-area-inset-top) + 45px));min-height:36px;padding:.45rem .65rem;border:1px solid rgba(176,186,171,.42);background:#232826b8;color:#dedccfe0;font:inherit;font-size:.5rem;letter-spacing:.09em;pointer-events:auto;touch-action:manipulation}.inventory-open span{margin-right:.3rem;color:#aeb8a6}.inventory-open:focus-visible,.inventory-shell button:focus-visible,.inventory-shell input:focus-visible{outline:2px solid rgba(195,204,184,.75);outline-offset:2px}.inventory-shell{position:absolute;z-index:20;left:50%;top:50%;width:min(880px,calc(100vw - max(32px,env(safe-area-inset-left) + env(safe-area-inset-right) + 20px)));max-height:calc(100vh - max(24px,env(safe-area-inset-top) + env(safe-area-inset-bottom) + 16px));transform:translate(-50%,-50%);overflow:auto;border:1px solid rgba(162,174,158,.52);background:#181d1cf5;box-shadow:0 12px 42px #0a0d0c8a;color:var(--ink);pointer-events:auto;touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.inventory-header{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:.55rem .7rem;border-bottom:1px solid rgba(157,168,153,.28);background:#242a27f5}.inventory-header>div{display:flex;align-items:baseline;gap:.8rem}.inventory-header strong{font-size:.68rem;letter-spacing:.16em}.inventory-header span{color:#c8cebe;font-size:.58rem;letter-spacing:.08em}.inventory-header small{color:var(--muted);font-size:.48rem;letter-spacing:.07em}.inventory-header button{width:34px;min-height:34px;padding:0}.inventory-shell button,.inventory-shell input{border:1px solid rgba(154,166,151,.38);background:#37403bc7;color:var(--ink);font:inherit}.inventory-workspace{display:flex;align-items:flex-start;gap:.75rem;padding:.65rem .7rem}.inventory-pane{min-width:0;flex:1 1 0}.inventory-player-pane{flex-grow:1.45}.inventory-pane h2{margin:0 0 .45rem;color:#adb5a9;font-size:.5rem;font-weight:600;letter-spacing:.12em}.inventory-grid{display:grid;gap:.32rem}.inventory-player-grid{grid-template-columns:repeat(8,minmax(42px,1fr))}.inventory-container-grid{grid-template-columns:repeat(4,minmax(42px,1fr))}.inventory-slot{position:relative;min-width:0;min-height:48px;padding:0;border-color:#8f998e4d!important;background:#2b312ea8!important;cursor:pointer;touch-action:manipulation}.inventory-slot[data-occupied=true]{background:#3b423dd1!important}.inventory-slot[data-selected=true]{border-color:#ced6bfd6!important;box-shadow:inset 0 0 0 1px #a4b19c52}.inventory-slot-icon{display:grid;place-items:center;color:#bec5b8;font-size:1.1rem;line-height:1}.inventory-slot b{position:absolute;right:4px;bottom:3px;font-size:.52rem;font-weight:600}.inventory-slot i{position:absolute;left:3px;right:3px;bottom:2px;height:2px;background:linear-gradient(90deg,#a6b392 calc(var(--condition) * 100%),#7e847b47 0)}.inventory-shell[data-pending=true] .inventory-slot{opacity:.6;cursor:wait}.inventory-empty{display:none;padding:1rem;color:var(--muted);font-size:.5rem;text-align:center}.inventory-container-grid:empty+.inventory-empty{display:block}.inventory-inspector{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.65fr);gap:.7rem;min-height:78px;padding:.6rem .7rem;border-top:1px solid rgba(157,168,153,.22)}.inventory-details{display:grid;align-content:start;gap:.25rem;min-width:0}.inventory-details strong{color:#d8d7cb;font-size:.59rem;letter-spacing:.09em}.inventory-details span{color:#a7ada3;font-size:.5rem;line-height:1.35}.inventory-details small{color:#858e86;font-size:.44rem;letter-spacing:.06em}.inventory-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}.inventory-actions button{min-height:34px;padding:.35rem;font-size:.48rem;letter-spacing:.07em}.inventory-actions button:disabled{opacity:.32}.inventory-status{display:block;min-height:20px;padding:0 .7rem .45rem;color:#c9a87a;font-size:.47rem;letter-spacing:.08em}.inventory-quantity-dialog{position:absolute;z-index:2;left:50%;top:50%;width:min(280px,calc(100% - 32px));transform:translate(-50%,-50%);display:grid;gap:.65rem;padding:.8rem;border:1px solid rgba(183,194,176,.58);background:#232a27;box-shadow:0 10px 35px #070a09b3}.inventory-quantity-dialog strong{font-size:.58rem;letter-spacing:.11em}.inventory-quantity-dialog input{width:100%;min-height:42px;padding:.5rem;font-size:.8rem}.inventory-quantity-dialog>div{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.inventory-quantity-dialog button{min-height:40px;font-size:.5rem}body.inventory-modal-open .interaction-hud,body.inventory-modal-open .interaction-target-indicator,body.inventory-modal-open .inventory-open{display:none!important}@media(hover:hover)and (pointer:fine){.interaction-hud{right:auto;left:50%;bottom:max(34px,calc(env(safe-area-inset-bottom) + 24px));width:168px;transform:translate(-50%)}.interaction-action{min-height:38px;padding:.45rem .65rem;pointer-events:none}.interaction-key{display:inline}}.debug-overlay{position:absolute;z-index:30;left:max(12px,env(safe-area-inset-left));top:max(48px,calc(env(safe-area-inset-top) + 42px));padding:.5rem .62rem;white-space:pre;background:#1d2121d1;border:1px solid rgba(157,164,151,.34);color:#d4d1c3;font-size:10px;line-height:1.45;pointer-events:none}.developer-auth,.developer-panel{position:absolute;z-index:42;right:max(12px,calc(env(safe-area-inset-right) + 8px));top:max(48px,calc(env(safe-area-inset-top) + 42px));width:min(360px,calc(100vw - 24px));border:1px solid rgba(166,177,160,.42);background:#191e1df0;box-shadow:0 10px 36px #0c0f0e61;color:var(--ink);pointer-events:auto}.developer-auth[hidden],.developer-panel[hidden],.developer-panel-open[hidden],.developer-biome-map[hidden],.developer-map-legend[hidden]{display:none}.developer-auth form{display:grid;gap:.5rem;padding:.8rem}.developer-auth strong,.developer-panel strong{font-size:.6rem;letter-spacing:.13em}.developer-auth label,.developer-auth span{color:var(--muted);font-size:.48rem}.developer-auth form>div{display:flex;gap:.4rem}.developer-auth input{min-width:0;flex:1}.developer-auth input,.developer-auth button,.developer-panel button,.developer-panel input,.developer-panel select,.developer-panel-open{min-height:30px;border:1px solid rgba(166,177,160,.4);background:#3d4641cc;color:var(--ink);font:inherit;font-size:.48rem;letter-spacing:.06em}.developer-panel{max-height:calc(100vh - 62px);overflow:auto;padding-bottom:.65rem}.developer-panel header{position:sticky;z-index:1;top:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.58rem .65rem;background:#202624fa}.developer-panel header span{margin-left:auto;color:#efba5f;font-size:8px;letter-spacing:.1em}.developer-panel header button{width:30px;padding:0}.developer-panel pre{margin:0;padding:.55rem .65rem;white-space:pre-wrap;color:#c8cbbf;font-size:9px;line-height:1.42}.developer-panel details{border-top:1px solid rgba(166,177,160,.17)}.developer-panel summary{position:sticky;top:47px;padding:.5rem .65rem;background:#1b211ff7;color:#b9beb3;font-size:9px;letter-spacing:.1em;cursor:pointer}.developer-panel button[data-active=true],.developer-panel button[data-active=true]:active{border-color:#c1e2abcc;background:#5c7c50c2;color:#efffdf}.developer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.34rem;padding:.45rem .65rem}.developer-speed-buttons{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.25rem;padding:0 .65rem .55rem}.developer-speed-buttons button{min-width:0;padding:.2rem}.developer-coordinate-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:.35rem;padding:.45rem .65rem}.developer-coordinate-form label{display:grid;gap:.2rem;color:var(--muted);font-size:8px}.developer-coordinate-form input{width:100%;min-width:0;padding:.3rem}.developer-item-form{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:.4rem;padding:.45rem .65rem 0}.developer-item-form label{display:grid;gap:.2rem;min-width:0;color:var(--muted);font-size:8px}.developer-item-form input{width:100%;min-width:0;padding:.3rem}.developer-item-form>div{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.34rem}.developer-panel [data-admin-only][hidden]{display:none}.developer-status{display:block;min-height:18px;padding:0 .65rem .35rem;color:#d3ad68;font-size:8px}.developer-teleports{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.32rem;padding:0 .65rem}.developer-teleports button{padding:.35rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.developer-bookmarks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem;padding:.4rem .65rem .6rem}.developer-bookmarks div{display:grid;gap:.22rem}.developer-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem .5rem;padding:.5rem .65rem}.developer-checks label{display:flex;align-items:center;gap:.35rem;min-height:28px;color:#bfc4b8;font-size:8px}.developer-frame-graph{display:block;width:calc(100% - 1.3rem);height:54px;margin:0 .65rem .6rem;border:1px solid rgba(166,177,160,.25);background:#0c100fa3}.developer-panel[data-map-open=true]{width:min(560px,calc(100vw - 24px))}.developer-biome-map{display:block;width:min(calc(100% - 1.3rem),calc(100vh - 138px));height:auto;margin:.2rem auto .3rem;border:1px solid rgba(221,224,205,.58);image-rendering:pixelated;background:#1f2422}.developer-map-legend{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.24rem .45rem;margin:0 .65rem .65rem;color:#d9d8ca;font-size:8px;line-height:1.25}.developer-map-legend span{display:flex;min-width:0;align-items:center;gap:.25rem;white-space:nowrap}.developer-map-legend i{width:9px;height:9px;flex:0 0 9px;border:1px solid rgba(255,255,255,.42)}.developer-map-legend i[data-map-color=ashlands]{background:#be602e}.developer-map-legend i[data-map-color=ground-zero]{background:#473b56}.developer-map-legend i[data-map-color=fertile]{background:#68b146}.developer-map-legend i[data-map-color=nuclear]{background:#145b3b}.developer-map-legend i[data-map-color=ruined]{background:#b5aa8f}.developer-map-legend i[data-map-color=industrial]{background:#856366}.developer-map-legend i[data-map-color=highway]{background:#f9cd3e}.developer-map-legend i[data-map-color=road]{background:#e1dbbe}.developer-map-legend i[data-map-color=river]{background:#2797cc}.developer-map-legend i[data-map-color=poi]{background:#ff9129;transform:rotate(45deg) scale(.72)}.developer-map-legend i[data-map-color=player]{border-radius:50%;background:#fff;box-shadow:0 0 0 1px #111}.developer-panel-open{position:absolute;z-index:41;right:max(12px,calc(env(safe-area-inset-right) + 8px));top:max(48px,calc(env(safe-area-inset-top) + 42px));padding:0 .55rem;pointer-events:auto}.developer-world-overlay{position:absolute;z-index:3;inset:0;pointer-events:none}.developer-vertical-controls{position:absolute;z-index:39;right:max(18px,calc(env(safe-area-inset-right) + 12px));bottom:max(24px,calc(env(safe-area-inset-bottom) + 16px));display:grid;gap:.45rem;pointer-events:auto}.developer-vertical-controls button{width:64px;min-height:46px;border:1px solid rgba(199,211,190,.5);background:#232b28c7;color:var(--ink);font:inherit;font-size:9px;touch-action:none}.developer-vertical-controls[hidden]{display:none}body.screenshot-mode .prototype-label,body.screenshot-mode .game-hud,body.screenshot-mode .interaction-hud,body.screenshot-mode .interaction-feedback,body.screenshot-mode .interaction-target-indicator,body.screenshot-mode .inventory-open,body.screenshot-mode .inventory-shell,body.screenshot-mode .developer-panel,body.screenshot-mode .developer-panel-open,body.screenshot-mode .developer-vertical-controls,body.screenshot-mode .developer-world-overlay,body.screenshot-mode .debug-overlay,body.screenshot-mode .update-notice,body.screenshot-mode .vignette{display:none!important}@media(max-height:430px){.inventory-shell{width:min(790px,calc(100vw - max(28px,env(safe-area-inset-left) + env(safe-area-inset-right) + 16px)));max-height:calc(100vh - 14px)}.inventory-header{min-height:42px;padding:.4rem .55rem}.inventory-workspace{gap:.55rem;padding:.45rem .55rem}.inventory-player-grid{grid-template-columns:repeat(6,minmax(42px,1fr))}.inventory-grid{gap:.26rem}.inventory-slot{min-height:43px}.inventory-inspector{grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);min-height:66px;padding:.45rem .55rem}.inventory-actions button{min-height:31px}.inventory-status{min-height:16px;padding:0 .55rem .3rem}.developer-panel{top:max(8px,env(safe-area-inset-top));max-height:calc(100vh - 16px);width:min(430px,55vw)}.developer-panel[data-map-open=true]{width:min(560px,64vw)}.developer-panel pre{font-size:8px}.developer-panel summary{top:43px}.developer-panel button,.developer-panel input{min-height:34px}}@media(max-width:680px){.inventory-open{min-width:44px;min-height:44px;padding:0;font-size:0}.inventory-open span{margin:0;font-size:1rem}.inventory-workspace{flex-direction:column}.inventory-pane{width:100%}.inventory-player-grid,.inventory-container-grid{grid-template-columns:repeat(6,minmax(42px,1fr))}.inventory-inspector{grid-template-columns:1fr}}.update-notice{position:absolute;z-index:40;right:max(18px,calc(env(safe-area-inset-right) + 12px));bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px));display:grid;min-width:218px;gap:.68rem;padding:.72rem;border:1px solid rgba(174,181,163,.38);background:#1d2121e6;box-shadow:0 8px 30px #12151552}.update-notice[hidden]{display:none}.update-notice>div:first-child{display:grid;gap:.18rem}.update-notice strong{font-size:.63rem;letter-spacing:.15em}.update-notice span{color:var(--muted);font-size:.45rem;letter-spacing:.1em}.update-actions{display:flex;gap:.45rem}.update-actions button{min-height:34px;padding:.48rem .65rem;border:1px solid rgba(174,181,163,.42);background:#404642b8;color:var(--ink);font:inherit;font-size:.5rem;letter-spacing:.09em;cursor:pointer;pointer-events:auto}.update-actions button:last-child{background:transparent;color:var(--muted)}.update-actions button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.update-actions button:disabled{cursor:wait;opacity:.52}.update-notice[data-state=activating] span{animation:blink .8s steps(2,end) infinite}.update-notice[data-state=blocked]{border-color:#aa7d659e}.rotate-device,.context-error,.fatal-error{display:none;position:absolute;inset:0;z-index:50;align-items:center;justify-content:center;flex-direction:column;gap:.55rem;text-align:center;background:#383c3b}.rotate-device div{font-size:2rem;color:var(--accent)}.rotate-device strong,.context-error strong,.fatal-error strong{letter-spacing:.14em}.rotate-device span,.context-error span,.fatal-error span{color:var(--muted);font-size:.66rem}.context-lost .context-error{display:flex}.fatal-error:not([hidden]){display:flex}.fatal-error button{margin-top:.5rem;padding:.6rem 1rem;border:1px solid var(--accent);background:transparent;color:var(--ink)}@keyframes blink{50%{opacity:.38}}@media(orientation:portrait)and (max-width:700px){.rotate-device{display:flex}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important}}
