#inv .cg{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:0 0 12px;border-bottom:3px dashed #fff4dc33}#inv .cg-grid{display:grid;grid-template-columns:repeat(3,44px);gap:4px}#inv .cg-cell{background:#44303f}#inv .cg-cell.painted{background:#6a5232}#inv .cg-arrow{position:relative;width:34px;height:14px;background:#fff4dc40;clip-path:polygon(0 30%,62% 30%,62% 0,100% 50%,62% 100%,62% 70%,0 70%)}#inv .cg-arrow i{position:absolute;inset:0 auto 0 0;width:0;background:var(--gold)}#inv .cg-outbox{display:grid;justify-items:center;gap:4px;width:76px}#inv .cg-out{width:56px;height:56px;background:#3a2a40}#inv .cg-out img{width:40px;height:40px}#inv .cg-out.ready{background:#4d4026;box-shadow:inset 0 0 0 2px var(--gold),inset 3px 3px 0 2px #2b1d2e88}#inv .cg-out.ready:hover{background:#6a5730}#inv .cg-out.off img{opacity:.45;filter:grayscale(.7)}#inv .cg-out.off{cursor:not-allowed}#inv .cg-name{min-height:11px;font-size:9px;color:var(--gold);text-align:center}#inv .cg-side{display:grid;gap:4px;flex:1;width:0;min-width:0;align-self:stretch;align-content:start;white-space:normal}#inv .cg-head{display:flex;justify-content:space-between;align-items:center;font-size:9px;opacity:.85}#inv .cg-help{font:inherit;font-size:11px;line-height:1;width:20px;height:20px;padding:0;color:var(--shade);background:var(--gold);border:0;box-shadow:0 0 0 2px var(--shade);cursor:pointer}#inv .cg-help:hover{background:#fff4dc}#inv .cg-stock{display:grid;grid-template-columns:repeat(auto-fill,36px);gap:3px;min-height:36px}#inv .cg-stock .slot{width:36px;height:36px;background:#3a3440}#inv .cg-stock .slot img{width:26px;height:26px}#inv .cg-stock .slot .n{font-size:10px}#inv .cg-stock .slot .plus{position:absolute;right:0;top:-1px;font-size:9px;color:var(--gold)}#inv .cg-empty{font-size:9px;opacity:.55;align-self:center}#inv .cg-hint{margin:2px 0 0;font-size:9px;line-height:1.5;opacity:.75}:root{--ink: #fff4dc;--shade: #2b1d2e;--gold: #ffd36b;--ember: #ff7a4d;--panel: #2b1d2ee6}html,body{margin:0;height:100%;overflow:hidden;background:#e3b48a;color:var(--ink);font-family:Silkscreen,ui-monospace,monospace;user-select:none;-webkit-user-select:none}#app canvas{display:block;touch-action:none}img{image-rendering:pixelated}.muted{opacity:.6}b{color:var(--gold);font-weight:400}.card{background:var(--panel);border:3px solid #fff4dc;box-shadow:0 0 0 3px var(--shade),5px 5px 0 3px #2b1d2e66;padding:10px 14px}#topbar{position:fixed;inset:max(16px,env(safe-area-inset-top)) 16px auto 16px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;pointer-events:none}#topbar .card{pointer-events:auto}#credits{font-size:18px;white-space:nowrap}#credits b{font-size:24px}#goal-card{width:min(300px,46vw);font-size:12px}#goal h2{margin:0 0 4px;font-size:14px;color:var(--gold)}#goal p{margin:0 0 8px;opacity:.8}.goal-row{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:2px 6px;margin-bottom:6px}.goal-row .bar{grid-column:1 / -1;height:6px;background:#4a3a52}.goal-row .bar i{display:block;height:100%;background:var(--gold);box-shadow:0 0 8px #ffb84d}.ico{width:16px;height:16px;vertical-align:-3px}#reset{margin-top:4px;font:inherit;font-size:10px;color:var(--ink);background:none;border:0;padding:0;opacity:.5;cursor:pointer}#reset:hover{opacity:1;color:var(--ember)}#toolbar{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;gap:5px;max-width:calc(100vw - 32px);overflow-x:auto;padding:6px}.tool{position:relative;display:grid;justify-items:center;gap:2px;width:64px;padding:8px 2px 6px;font:inherit;font-size:10px;color:var(--ink);background:var(--panel);border:3px solid #fff4dc88;box-shadow:0 0 0 3px var(--shade);cursor:pointer;flex:none}.tool img{width:32px;height:32px}.tool .key{position:absolute;top:2px;left:4px;color:var(--gold)}.tool .cost{opacity:.7}.tool:hover{border-color:#fff4dc}.tool.on{border-color:var(--gold);background:#5a3a24e6;transform:translateY(-4px)}.tool.poor .cost{color:var(--ember);opacity:1}.tool:disabled{opacity:.45;cursor:not-allowed}#info{position:fixed;left:16px;bottom:120px;max-width:min(320px,calc(100vw - 32px));font-size:12px;pointer-events:none}#info[hidden]{display:none}#info h3{margin:0 0 6px;font-size:14px;color:var(--gold)}#info p{margin:4px 0;line-height:1.5}.st.working{color:#7dff9a}.st.idle{color:#ffd36b}.st.blocked{color:#ff7a5a}.st.nopower{color:#8ab8ff}#credits .power{font-size:13px;margin-top:4px}#credits .power.short{color:#ffd36b}#credits .wood{font-size:13px;margin-top:2px}#credits .wood.full{color:#ffd36b}#hint{position:fixed;right:16px;bottom:8px;font-size:10px;opacity:.75;text-shadow:1px 1px 0 var(--shade);pointer-events:none}@media(max-width:900px){#hint{display:none}}#toast{position:fixed;left:50%;top:110px;transform:translate(-50%,-8px);max-width:calc(100vw - 32px);padding:8px 14px;font-size:13px;text-align:center;background:var(--panel);border:3px solid var(--gold);box-shadow:0 0 0 3px var(--shade);opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}#toast.show{opacity:1;transform:translate(-50%)}#help{position:fixed;inset:0;display:grid;place-items:center;padding:16px;background:radial-gradient(ellipse at center,#2b1d2e22,#2b1d2e99);cursor:pointer}#help[hidden]{display:none}.panel{max-width:560px;padding:24px 28px;background:var(--panel);border:4px solid #fff4dc;box-shadow:0 0 0 4px var(--shade),8px 8px 0 4px #2b1d2e88}h1{margin:0 0 10px;text-align:center;font-size:clamp(28px,7vw,42px);font-weight:700;color:var(--gold);text-shadow:3px 3px 0 #a14a28,6px 6px 0 var(--shade)}.panel p,.panel li{font-size:13px;line-height:1.6}.panel ol{padding-left:20px}.panel .keys{font-size:11px;opacity:.85}.blink{text-align:center;animation:blink 1.1s steps(2) infinite;color:var(--gold)}@keyframes blink{50%{opacity:.25}}.lil-gui{--font-family: ui-monospace, monospace}.lil-gui.root{top:200px}#clock{display:flex;align-items:center;gap:8px;font-size:14px;white-space:nowrap;margin-right:auto}#clock img{width:24px;height:24px;image-rendering:pixelated}#clock{cursor:pointer;user-select:none}#clock:hover{border-color:var(--gold)}#clock.stopped{border-color:#a8b4d8}#clock.stopped>:not(.pause){opacity:.55}#clock img.pause{width:20px;height:20px;margin-left:-2px}#craft{position:fixed;left:16px;top:50%;transform:translateY(-50%);width:min(360px,calc(100vw - 32px));font-size:12px;z-index:20}#craft[hidden]{display:none}#craft h2{margin:0 0 8px;font-size:14px;color:var(--gold)}#craft .x{position:absolute;top:6px;right:8px;font:inherit;font-size:12px;color:var(--ink);background:none;border:0;padding:2px 4px;cursor:pointer;opacity:.7}#craft .x:hover{opacity:1;color:var(--ember)}#craft .recipe{display:grid;grid-template-columns:44px 1fr;gap:6px 10px;padding:8px;margin-bottom:6px;border:3px solid #fff4dc33;cursor:pointer}#craft .recipe.sel{border-color:var(--gold);background:#5a3a2466}#craft .pic{width:44px;height:38px;display:grid;place-items:center;background:#4a3a52;box-shadow:inset 0 0 0 2px #2b1d2e}#craft .pic img{width:40px;height:34px}#craft h3{margin:0 0 2px;font-size:13px;color:var(--ink)}#craft .body p{margin:0 0 6px;opacity:.8;line-height:1.4;font-size:11px}#craft .needs{display:grid;gap:3px}#craft .need{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:6px}#craft .need.ok .num{color:#7dff9a}#craft .need.short .num{color:var(--ember)}#craft .craft-btn{grid-column:1 / -1;position:relative;overflow:hidden;font:inherit;font-size:12px;color:var(--shade);background:var(--gold);border:3px solid #fff4dc;box-shadow:0 0 0 3px var(--shade),3px 3px 0 3px #2b1d2e66;padding:6px 8px;margin:4px 3px 3px;cursor:pointer}#craft .craft-btn:hover:not(:disabled){background:#ffe08f}#craft .craft-btn:active:not(:disabled){transform:translateY(2px)}#craft .craft-btn span{position:relative}#craft .craft-btn i{position:absolute;inset:0 auto 0 0;background:#7dff9a}#craft .craft-btn:disabled{cursor:not-allowed;background:#6d6a78;color:#c8c0d0;border-color:#fff4dc66}#craft .craft-btn.busy{background:#4a3a52;color:var(--ink)}#craft .recipe.done .craft-btn{background:#3d6b4a;color:#c8ffd4}#craft .foot{margin:6px 0 0;font-size:10px;line-height:1.5}#inv{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:16px;background:radial-gradient(ellipse at center,#2b1d2e10,#2b1d2e66)}#inv[hidden]{display:none}#inv .inv-panel{position:relative;zoom:var(--ui, 1);max-width:calc(100vw - 32px);padding:14px 16px 10px;background:var(--panel);border:4px solid #fff4dc;box-shadow:0 0 0 4px var(--shade),8px 8px 0 4px #2b1d2e88;animation:inv-pop .14s steps(3)}@keyframes inv-pop{0%{transform:scale(.94)}}#inv h2{margin:0 0 10px;font-size:16px;color:var(--gold);text-shadow:2px 2px 0 #a14a28}#inv .inv-x{position:absolute;top:6px;right:8px;font:inherit;font-size:13px;color:var(--ink);background:none;border:0;padding:2px 4px;cursor:pointer;opacity:.7}#inv .inv-x:hover{opacity:1;color:var(--ember)}#inv .inv-body{display:flex;gap:14px;align-items:flex-start}#inv .inv-grid{display:grid;grid-template-columns:repeat(9,44px);gap:4px}#inv .inv-sep{height:10px}#inv .slot{position:relative;width:44px;height:44px;display:grid;place-items:center;background:#3a2a40;box-shadow:inset 0 0 0 2px var(--shade),inset 3px 3px 0 2px #2b1d2e88,inset 0 0 0 4px #fff4dc14;cursor:pointer}#inv .slot:hover{background:#57425e}#inv .hotbar .slot{background:#44303f}#inv .hotbar .slot:hover{background:#5e4652}#inv .hotbar .slot:before{content:attr(data-key);position:absolute;left:3px;top:1px;font-size:8px;color:var(--gold);opacity:.55}#inv .slot img,#inv-held img{width:32px;height:32px;image-rendering:pixelated;pointer-events:none}#inv .slot .n,#inv-held .n{position:absolute;right:2px;bottom:0;font-size:12px;color:var(--ink);pointer-events:none;text-shadow:1px 1px 0 var(--shade),-1px 1px 0 var(--shade),1px -1px 0 var(--shade),-1px -1px 0 var(--shade)}#inv .slot .badge{position:absolute;left:1px;bottom:1px;padding:0 2px;font-size:7px;color:var(--shade);background:var(--gold);pointer-events:none}#inv .inv-side{display:grid;gap:10px;justify-items:center;padding-top:2px}#inv .inv-special{display:grid;justify-items:center;gap:3px;font-size:9px;opacity:.9}#inv .slot.trash:hover{background:#6a2e2e}#inv .slot.sell:hover{background:#5a4a24}#inv .slot.sell.off{opacity:.4;cursor:not-allowed}#inv .slot img.sp{width:30px;height:30px}#inv .slot img.ghost{opacity:.45;filter:grayscale(.6)}#inv .inv-foot{margin:10px 0 0;font-size:9px;opacity:.7;line-height:1.5}#inv-held{position:fixed;left:0;top:0;z-index:31;width:40px;height:40px;display:grid;place-items:center;pointer-events:none;filter:drop-shadow(2px 3px 0 #2b1d2e99)}#inv-held[hidden],#inv-tip[hidden]{display:none}#inv-tip{position:fixed;left:0;top:0;z-index:32;max-width:230px;padding:7px 10px;font-size:10px;line-height:1.45;background:#1f1424f2;border:3px solid #fff4dc;box-shadow:0 0 0 3px var(--shade);pointer-events:none}#inv-tip h3{margin:0;font-size:12px;color:var(--gold);font-weight:400}#inv-tip .cat{font-size:8px;opacity:.6;margin-bottom:4px;text-transform:uppercase}#inv-tip p{margin:3px 0}#inv-tip .facts{color:#c8ffd4}#inv-tip .dim{opacity:.6;color:var(--ink)}#ui-inv{cursor:pointer}#rb{position:fixed;top:72px;right:16px;bottom:16px;z-index:30;display:flex;flex-direction:column;justify-content:flex-start;pointer-events:none;zoom:var(--ui, 1)}#rb[hidden],#rb [hidden],#rb-tip[hidden]{display:none!important}#rb .rb-panel{pointer-events:auto;display:flex;flex-direction:column;gap:8px;width:300px;height:100%;box-sizing:border-box;min-height:0;padding:10px 10px 8px;background:#2b1d2ef7;border:4px solid #fff4dc;box-shadow:0 0 0 4px var(--shade),8px 8px 0 4px #2b1d2e88;font-size:10px;animation:rb-pop .14s steps(3)}@keyframes rb-pop{0%{transform:translate(12px)}}#rb h2{margin:0;font-size:14px;color:var(--gold);text-shadow:2px 2px 0 #a14a28;font-weight:400}#rb h3{margin:0;font-size:12px;color:var(--gold);font-weight:400}#rb button{font:inherit;color:var(--ink);cursor:pointer}#rb .rb-x{margin-left:auto;font-size:12px;background:none;border:0;padding:2px 4px;opacity:.7}#rb .rb-x:hover{opacity:1;color:var(--ember)}#rb .rb-slot{position:relative;flex:none;width:40px;height:40px;display:grid;place-items:center;background:#3a2a40;box-shadow:inset 0 0 0 2px var(--shade),inset 3px 3px 0 2px #2b1d2e88,inset 0 0 0 4px #fff4dc14;cursor:pointer}#rb .rb-slot:hover{background:#57425e}#rb .rb-slot.sel{background:#5a3a24;box-shadow:inset 0 0 0 2px var(--gold),inset 3px 3px 0 2px #2b1d2e88}#rb .rb-slot.empty{cursor:default;background:#33243a}#rb .rb-slot.empty:hover{background:#33243a}#rb .rb-slot.out{background:#44303f;box-shadow:inset 0 0 0 2px var(--shade),inset 0 0 0 4px #ffd36b44}#rb .rb-slot.big{width:44px;height:44px;cursor:default}#rb .rb-slot img,#rb .rb-mach img,#rb .rb-station img,#rb .rb-cat img,#rb .rb-need img,#rb .rb-crumb img{image-rendering:pixelated;pointer-events:none}#rb .rb-slot img{width:32px;height:32px}#rb .rb-slot .n,#rb .rb-slot .have{position:absolute;right:2px;bottom:0;font-size:11px;color:var(--ink);pointer-events:none;text-shadow:1px 1px 0 var(--shade),-1px 1px 0 var(--shade),1px -1px 0 var(--shade),-1px -1px 0 var(--shade)}#rb .rb-slot .have{font-size:8px;color:#c8ffd4}#rb .rb-list{display:flex;flex-direction:column;gap:6px;min-height:0;flex:1 1 0}#rb .rb-head{display:flex;align-items:center;gap:8px}#rb .rb-cheat{padding:1px 4px;font-size:8px;color:var(--shade);background:var(--ember);text-transform:uppercase}#rb .rb-search{position:relative}#rb .rb-search input{width:100%;box-sizing:border-box;padding:6px 26px 6px 8px;font:inherit;font-size:11px;color:var(--ink);background:#1f1424;border:2px solid #fff4dc55;outline:none}#rb .rb-search input:focus{border-color:var(--gold)}#rb .rb-search input::placeholder{color:#fff4dc66}#rb .rb-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:0;opacity:.7;font-size:10px}#rb .rb-cats{display:flex;flex-wrap:wrap;gap:3px}#rb .rb-cat{min-width:28px;height:26px;padding:0 4px;display:grid;place-items:center;font-size:9px;background:#3a2a40;border:2px solid #fff4dc33}#rb .rb-cat img{width:16px;height:16px}#rb .rb-cat:hover{border-color:#fff4dc88}#rb .rb-cat.on{border-color:var(--gold);background:#5a3a24}#rb .rb-grid{flex:1 1 0;min-height:44px;display:grid;grid-template-columns:repeat(6,40px);grid-auto-rows:40px;align-content:start;gap:4px;overflow:hidden}#rb .rb-none{grid-column:1 / -1;opacity:.6;margin:8px 0}#rb .rb-pager{display:flex;align-items:center;justify-content:center;gap:10px}#rb .rb-pager.one{visibility:hidden;height:0;margin-top:-6px}#rb .rb-pager button,#rb .rb-cycle button{width:26px;height:22px;padding:0;font-size:14px;line-height:1;background:#3a2a40;border:2px solid #fff4dc55}#rb .rb-pager button:hover,#rb .rb-cycle button:hover{border-color:var(--gold);background:#5a3a24}#rb .rb-foot{margin:0;font-size:8px;opacity:.65;line-height:1.5}#rb .rb-view{display:flex;flex-direction:column;gap:6px;flex:none;padding-bottom:8px;border-bottom:3px solid #fff4dc22}#rb .rb-vhead{display:flex;align-items:center;gap:4px;min-height:22px}#rb .rb-back{width:26px;height:22px;padding:0;font-size:12px;background:#3a2a40;border:2px solid #fff4dc55}#rb .rb-back:hover:not(:disabled){border-color:var(--gold);background:#5a3a24}#rb .rb-back:disabled{opacity:.3;cursor:default}#rb .rb-crumbs{display:flex;align-items:center;gap:1px;overflow:hidden;opacity:.85}#rb .rb-crumb{padding:1px;background:none;border:2px solid transparent;display:grid}#rb .rb-crumb:hover{border-color:var(--gold)}#rb .rb-crumb img{width:16px;height:16px}#rb .rb-title{display:flex;align-items:center;gap:8px}#rb .rb-sub{margin-top:3px;font-size:9px;opacity:.8;display:flex;align-items:center;gap:4px;flex-wrap:wrap}#rb .rb-value{display:inline-flex;align-items:center;gap:3px;color:var(--gold)}#rb .rb-value.dim,#rb .dim{color:var(--ink);opacity:.6}#rb .rb-coin{width:10px;height:10px;image-rendering:pixelated}#rb .rb-tabs{display:flex;gap:4px}#rb .rb-tabs button{flex:1;padding:4px 0;font-size:10px;background:#3a2a40;border:2px solid #fff4dc33}#rb .rb-tabs button:hover{border-color:#fff4dc88}#rb .rb-tabs button.on{border-color:var(--gold);background:#5a3a24;color:var(--gold)}#rb .rb-card{display:flex;flex-direction:column;gap:6px;padding:8px;background:#1f142466;border:2px solid #fff4dc22}#rb .rb-card.empty{padding:14px 8px;text-align:center}#rb .rb-card-head{display:flex;align-items:center;justify-content:space-between;gap:6px}#rb .rb-station{display:inline-flex;align-items:center;gap:5px;color:var(--gold)}#rb .rb-station[data-id]{cursor:pointer}#rb .rb-station img{width:16px;height:16px}#rb .rb-kind{font-size:8px;opacity:.6;text-transform:uppercase}#rb .rb-craft,#rb .rb-machine{display:flex;align-items:center;justify-content:center;gap:6px;padding:2px 0}#rb .rb-3x3{display:grid;grid-template-columns:repeat(3,38px);grid-auto-rows:38px;gap:2px}#rb .rb-3x3 .rb-slot{width:38px;height:38px}#rb .rb-arrow{font-size:16px;color:var(--gold);opacity:.85}#rb .rb-ins{display:flex;flex-direction:column;gap:3px}#rb .rb-mach{display:grid;justify-items:center;gap:1px;padding:2px 4px;font-size:9px;color:#c8ffd4}#rb .rb-mach img{width:32px;height:32px}#rb .rb-mach.big img{width:48px;height:48px}#rb .rb-outs{display:flex;flex-wrap:wrap;gap:3px}#rb .rb-note{margin:0;font-size:9px;line-height:1.45;opacity:.85}#rb .rb-needs{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}#rb .rb-need{display:inline-flex;align-items:center;gap:3px;font-size:10px;cursor:pointer}#rb .rb-need img{width:16px;height:16px}#rb .rb-need.ok{color:#7dff9a}#rb .rb-need.short{color:var(--ember)}#rb .rb-times{font-size:8px;opacity:.7}#rb .rb-btn{align-self:stretch;padding:5px 8px;font-size:10px;color:var(--shade);background:var(--gold);border:2px solid #fff4dc;box-shadow:0 0 0 2px var(--shade)}#rb .rb-btn:hover:not(:disabled){background:#ffe39b}#rb .rb-btn:disabled{opacity:.45;cursor:not-allowed}#rb .rb-cycle{display:flex;align-items:center;justify-content:center;gap:10px}#rb .rb-cycle.one{display:none}#rb-tip{position:fixed;left:0;top:0;z-index:32;max-width:230px;padding:7px 10px;font-size:10px;line-height:1.45;background:#1f1424f2;border:3px solid #fff4dc;box-shadow:0 0 0 3px var(--shade);pointer-events:none}#rb-tip h3{margin:0;font-size:12px;color:var(--gold);font-weight:400}#rb-tip .cat{font-size:8px;opacity:.6;margin-bottom:4px;text-transform:uppercase}#rb-tip p{margin:3px 0}#rb-tip .facts{color:#c8ffd4}#rb-tip .dim{opacity:.6}#rb-tip .keys{font-size:8px;opacity:.8}@media(max-width:760px){#rb{top:60px;right:8px;bottom:8px}#rb .rb-panel{width:256px}#rb .rb-grid{grid-template-columns:repeat(5,40px)}}:root{--ui: 1;--ink-dim: #fff4dcaa;--plum: #4a3a52;--leaf: #7dff9a}#topbar,#toolbar,#info,#toast,#ui-hud,#craft{zoom:var(--ui)}#hint,#help{display:none!important}#reset,#credits .wood{display:none}.ui-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:40px;padding:8px 14px;font:inherit;font-size:14px;color:var(--ink);background:#3a2a40;border:3px solid #fff4dc88;box-shadow:0 0 0 3px var(--shade),0 4px 0 3px var(--shade);cursor:pointer;text-align:center}.ui-btn:hover,.ui-btn:focus-visible{border-color:var(--gold);background:#5a3a24;outline:none}.ui-btn:focus-visible:before{content:"▶";color:var(--gold);font-size:10px}.ui-btn:active{transform:translateY(2px);box-shadow:0 0 0 3px var(--shade),0 2px 0 3px var(--shade)}.ui-btn.primary{border-color:var(--gold);color:var(--gold);font-size:16px}.ui-btn.danger:hover,.ui-btn.danger:focus-visible{border-color:var(--ember);color:var(--ember)}.ui-btn.small{width:auto;min-height:30px;padding:4px 10px;font-size:11px}kbd,.kbd{display:inline-block;min-width:1.6em;padding:1px 5px 2px;font:inherit;font-size:.9em;line-height:1.2;text-align:center;color:var(--shade);background:var(--ink);border-bottom:3px solid #b89a7a;box-shadow:0 0 0 2px var(--shade);margin:0 2px}#ui-screen{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at center,#2b1d2e33,#2b1d2eb3);overflow-y:auto}#ui-screen[hidden]{display:none}#ui-screen.title{background:linear-gradient(#2b1d2e00 30%,#2b1d2ecc)}#ui-screen.paused{background:radial-gradient(ellipse at center,#2b1d2e66,#2b1d2ee0)}.ui-panel{position:relative;width:min(440px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:22px 24px;background:var(--panel);border:4px solid #fff4dc;box-shadow:0 0 0 4px var(--shade),8px 8px 0 4px #2b1d2e88;zoom:var(--ui);animation:ui-pop .16s steps(4)}.ui-panel.wide{width:min(760px,100%)}@keyframes ui-pop{0%{transform:scale(.94);opacity:0}}.ui-panel h2{margin:0 0 14px;font-size:20px;text-align:center;color:var(--gold);text-shadow:2px 2px 0 #a14a28}.ui-panel h3{margin:16px 0 8px;font-size:12px;color:var(--gold);letter-spacing:1px}.ui-panel p{font-size:12px;line-height:1.6;margin:6px 0}.ui-menu{display:grid;gap:14px;margin-top:8px}.ui-close{position:absolute;top:8px;right:10px;font:inherit;font-size:14px;color:var(--ink);background:none;border:0;cursor:pointer;opacity:.7}.ui-close:hover,.ui-close:focus-visible{opacity:1;color:var(--gold);outline:none}.ui-foot{margin-top:14px;text-align:center;font-size:10px;opacity:.7}.ui-title{width:min(420px,100%);text-align:center;background:none;border:0;box-shadow:none;padding:0;overflow:visible}.ui-title .logo{margin:0 0 4px;font-size:clamp(36px,11vw,64px);line-height:1;font-weight:700;color:var(--gold);text-shadow:3px 3px 0 #a14a28,6px 6px 0 var(--shade),0 0 30px #ffb84d88;animation:ui-bob 2.4s steps(6) infinite}@keyframes ui-bob{50%{transform:translateY(-4px)}}.ui-title .tag{margin:6px 0 22px;font-size:13px;text-shadow:2px 2px 0 var(--shade)}.ui-title .ui-menu{width:min(280px,100%);margin:0 auto}.ui-title .save{font-size:10px;opacity:.8;margin-top:2px}.ui-set{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 12px;font-size:12px}.ui-set label{display:contents}.ui-set .val{min-width:3.5ch;text-align:right;color:var(--gold)}.ui-set .ctl{display:flex;align-items:center;gap:8px}input[type=range].ui-range{-webkit-appearance:none;appearance:none;width:min(160px,38vw);height:12px;background:var(--plum);border:2px solid var(--shade);box-shadow:inset 0 0 0 1px #fff4dc33;cursor:pointer}input[type=range].ui-range::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:20px;background:var(--gold);border:2px solid var(--shade);box-shadow:0 0 0 1px var(--ink)}input[type=range].ui-range::-moz-range-thumb{width:12px;height:18px;border-radius:0;background:var(--gold);border:2px solid var(--shade)}input[type=range].ui-range:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.ui-toggle{position:relative;width:44px;height:22px;padding:0;background:var(--plum);border:2px solid var(--shade);box-shadow:0 0 0 2px #fff4dc66;cursor:pointer}.ui-toggle:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff4dc88}.ui-toggle[aria-checked=true]{background:#3f7a4a}.ui-toggle[aria-checked=true]:after{left:24px;background:var(--leaf)}.ui-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.ui-seg{display:flex;gap:6px}.ui-seg button{font:inherit;font-size:11px;color:var(--ink);background:var(--plum);border:2px solid var(--shade);box-shadow:0 0 0 2px #fff4dc44;padding:3px 8px;cursor:pointer}.ui-seg button[aria-pressed=true]{background:#5a3a24;color:var(--gold);box-shadow:0 0 0 2px var(--gold)}.ui-seg button:focus-visible{outline:2px solid var(--gold)}.ui-tabs{display:flex;gap:8px;justify-content:center;margin-bottom:12px;flex-wrap:wrap}.ui-keys{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:4px 24px}.ui-keys h3{grid-column:1 / -1;margin:12px 0 2px}.ui-keys .row{display:grid;grid-template-columns:128px 1fr;gap:8px;align-items:baseline;font-size:11px;line-height:1.5;padding:3px 0;border-bottom:1px dashed #fff4dc22}.ui-keys .row .k{text-align:right}.ui-keys .row .k kbd{margin-bottom:3px}.ui-how ol{padding-left:20px;margin:0}.ui-how li{font-size:12px;line-height:1.6;margin-bottom:6px}.ui-journal{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.ui-card{position:relative;display:grid;justify-items:center;align-content:start;gap:4px;padding:10px 8px 12px;background:#3a2a40;border:3px solid #fff4dc66;box-shadow:0 0 0 3px var(--shade);text-align:center}.ui-card.met{border-color:#fff4dccc}.ui-card .pic{height:76px;display:grid;place-items:end center}.ui-card .pic canvas{image-rendering:pixelated}.ui-card h4{margin:4px 0 0;font-size:13px;color:var(--gold);font-weight:400}.ui-card .where{font-size:9px;opacity:.7}.ui-card .stats{display:flex;gap:10px;font-size:11px;margin:4px 0}.ui-card .stats span{white-space:nowrap}.ui-card .blurb{font-size:10px;line-height:1.5;opacity:.85;margin:0}.ui-card:not(.met) h4{color:var(--ink-dim)}.ui-card .new{position:absolute;top:-9px;right:-6px;font-size:9px;padding:2px 5px;background:var(--ember);color:var(--ink);box-shadow:0 0 0 2px var(--shade)}.ui-journal-sum{text-align:center;font-size:11px;margin:-6px 0 12px;opacity:.85}.ui-bigmap{display:block;width:min(100%,calc(100dvh - 170px));height:auto;aspect-ratio:1;margin:0 auto;image-rendering:pixelated;background:#2b1d2e;border:3px solid var(--shade);cursor:grab}.ui-legend{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:center;font-size:10px;margin-top:10px}.ui-legend i{display:inline-block;width:10px;height:10px;margin-right:4px;vertical-align:-1px;box-shadow:0 0 0 1px var(--shade)}#ui-hud{position:fixed;inset:0;pointer-events:none;z-index:10}#ui-hud>*{pointer-events:auto}#ui-hud[data-hidden]>:not(#ui-prompt){visibility:hidden}#ui-prompt{position:absolute;left:0;top:0;pointer-events:none;display:grid;gap:4px;justify-items:center;transform:translate(-50%,-100%);transition:opacity .12s;will-change:transform}#ui-prompt[hidden]{display:none}#ui-prompt .p{display:flex;align-items:center;gap:6px;padding:4px 8px 5px 5px;font-size:11px;white-space:nowrap;background:var(--panel);border:2px solid #fff4dc;box-shadow:0 0 0 2px var(--shade),3px 3px 0 2px #2b1d2e66;animation:ui-pop .14s steps(3)}#ui-prompt .p.minor{opacity:.85;border-color:#fff4dc88;font-size:10px}#ui-prompt .p.hold kbd{animation:blink 1.1s steps(2) infinite}#ui-prompt .tip{width:0;height:0;border:6px solid transparent;border-top-color:#fff4dc;margin-top:-4px;filter:drop-shadow(0 2px 0 var(--shade))}#ui-inv{position:absolute;left:16px;bottom:max(16px,env(safe-area-inset-bottom));display:flex;gap:6px;padding:6px;background:var(--panel);border:3px solid #fff4dc;box-shadow:0 0 0 3px var(--shade),5px 5px 0 3px #2b1d2e66}#ui-inv[hidden]{display:none}#ui-inv .slot{position:relative;width:44px;height:44px;display:grid;place-items:center;background:#3a2a40;box-shadow:inset 0 0 0 2px var(--shade),inset 0 0 0 4px #fff4dc22}#ui-inv .slot img{width:32px;height:32px;image-rendering:pixelated}#ui-inv .slot.empty img{opacity:.25;filter:grayscale(1)}#ui-inv .slot .n{position:absolute;right:2px;bottom:0;font-size:12px;color:var(--ink);text-shadow:1px 1px 0 var(--shade),-1px 1px 0 var(--shade),1px -1px 0 var(--shade),-1px -1px 0 var(--shade)}#ui-inv .slot.full .n{color:var(--gold)}#ui-inv .slot.bump{animation:ui-bump .35s steps(5)}@keyframes ui-bump{30%{transform:translateY(-6px) scale(1.15)}60%{transform:translateY(1px) scale(.96)}}#ui-inv .slot .plus{position:absolute;top:-14px;left:50%;transform:translate(-50%);font-size:11px;color:var(--leaf);text-shadow:1px 1px 0 var(--shade);animation:ui-rise .8s steps(8) forwards;pointer-events:none}@keyframes ui-rise{to{transform:translate(-50%,-14px);opacity:0}}#ui-inv .lbl{align-self:center;font-size:9px;opacity:.7;padding:0 4px;max-width:70px;line-height:1.3}#ui-dock{position:absolute;right:16px;bottom:max(16px,env(safe-area-inset-bottom));display:grid;justify-items:end;gap:10px;pointer-events:none}#ui-dock>*{pointer-events:auto}.ui-dockbar{display:flex;gap:6px}.ui-ibtn{min-width:34px;height:30px;padding:0 7px;font:inherit;font-size:10px;color:var(--ink);background:var(--panel);border:2px solid #fff4dc;box-shadow:0 0 0 2px var(--shade);cursor:pointer;display:flex;align-items:center;gap:4px}.ui-ibtn kbd{font-size:9px;padding:0 3px 1px}.ui-ibtn:hover,.ui-ibtn:focus-visible{border-color:var(--gold);color:var(--gold);outline:none}.ui-ibtn[aria-pressed=true]{border-color:var(--gold)}.ui-ibtn .dot{width:6px;height:6px;background:var(--ember);box-shadow:0 0 0 1px var(--shade)}#ui-keys{width:184px;padding:6px 8px;font-size:9px;background:var(--panel);border:3px solid #fff4dc;box-shadow:0 0 0 3px var(--shade),5px 5px 0 3px #2b1d2e66}#ui-keys[hidden]{display:none}#ui-keys .row{display:grid;grid-template-columns:74px 1fr;gap:6px;padding:1px 0;align-items:baseline}#ui-keys kbd{font-size:8px;padding:0 3px 1px;border-bottom-width:2px;margin:0 1px}#ui-keys .row .k{text-align:right;white-space:nowrap}#ui-keys .row.ctx{color:var(--gold)}#ui-keys .more{margin-top:4px;text-align:center;opacity:.7}#ui-mini{position:relative;width:168px;height:168px;background:var(--panel);border:3px solid #fff4dc;box-shadow:0 0 0 3px var(--shade),5px 5px 0 3px #2b1d2e66;cursor:pointer}#ui-mini[hidden]{display:none}#ui-mini canvas{display:block;width:100%;height:100%;image-rendering:pixelated}#ui-mini .zoom{position:absolute;left:4px;top:4px;display:grid;gap:3px}#ui-mini .zoom button{width:22px;height:20px;padding:0;font:inherit;font-size:12px;line-height:1;color:var(--ink);background:#2b1d2ecc;border:2px solid #fff4dc88;cursor:pointer}#ui-mini .zoom button:hover,#ui-mini .zoom button:focus-visible{border-color:var(--gold);color:var(--gold);outline:none}#ui-mini .name{position:absolute;left:0;right:0;bottom:3px;text-align:center;font-size:9px;text-shadow:1px 1px 0 var(--shade),-1px -1px 0 var(--shade);pointer-events:none}#toast{z-index:40;border-width:3px;box-shadow:0 0 0 3px var(--shade),5px 5px 0 3px #2b1d2e66}@media(max-width:1000px){#ui-inv,#ui-dock{bottom:calc(max(16px,env(safe-area-inset-bottom)) + 104px)}#ui-mini{width:128px;height:128px}#info{bottom:calc(max(16px,env(safe-area-inset-bottom)) + 176px)!important}}@media(max-width:600px){#topbar{flex-wrap:wrap;gap:10px;inset:max(10px,env(safe-area-inset-top)) 10px auto 10px}#topbar .card{padding:6px 10px}#credits{font-size:13px}#credits b{font-size:18px}#clock{font-size:11px;margin-right:0}#clock img{width:18px;height:18px}#goal-card{flex:1 1 100%;width:auto;font-size:10px}#goal h2{font-size:12px}#goal p{margin-bottom:4px}#toast{top:190px}#ui-inv{left:10px;gap:4px;padding:4px}#ui-inv .slot{width:36px;height:36px}#ui-inv .slot img{width:26px;height:26px}#ui-inv .lbl{display:none}#ui-dock{right:10px}#ui-mini{width:104px;height:104px}.ui-ibtn .t{display:none}#ui-keys{width:min(220px,calc(100vw - 20px))}.ui-panel{padding:18px 14px}.ui-keys .row{grid-template-columns:80px 1fr}.ui-journal{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}}@media(hover:none){#ui-prompt .p kbd{display:none}}@media(prefers-reduced-motion:reduce){.ui-title .logo,.ui-panel,#ui-inv .slot.bump,#ui-prompt .p{animation:none}}body.ui-title-on #topbar,body.ui-title-on #toolbar,body.ui-title-on #info,body.ui-title-on #ui-hud,body.ui-title-on .lil-gui,body.ui-title-on #craft,body.ui-title-on #toast{visibility:hidden}#chat{position:fixed;left:16px;bottom:136px;z-index:30;width:min(430px,calc(100vw - 32px));display:flex;flex-direction:column;gap:6px;pointer-events:none;zoom:var(--ui, 1);font-size:12px}#chat.open{pointer-events:auto}.chat-log{display:flex;flex-direction:column;gap:1px;max-height:min(34vh,300px);overflow:hidden;scrollbar-width:thin;scrollbar-color:#fff4dc66 transparent}#chat.open .chat-log{overflow-y:auto;padding:6px 8px;background:#2b1d2ecc;border:3px solid #fff4dc66;box-shadow:0 0 0 3px var(--shade)}#chat.open .chat-log:empty{display:none}.chat-line{padding:2px 6px;line-height:1.45;overflow-wrap:anywhere;user-select:text;-webkit-user-select:text;text-shadow:1px 1px 0 var(--shade)}#chat:not(.open) .chat-line{background:#2b1d2eb3;width:fit-content;max-width:100%}#chat:not(.open) .chat-line:not(.recent){display:none}#chat:not(.open) .chat-line.fading{opacity:0;transition:opacity .8s steps(4)}.chat-line.echo{opacity:.75}.chat-line.ok{color:var(--leaf, #7dff9a)}.chat-line.err{color:var(--ember)}.chat-line.player .who{color:var(--gold)}.chat-line .arg{color:#fff4dcaa}.chat-line b{color:var(--gold)}.chat-hint{align-self:flex-start;display:flex;flex-wrap:wrap;gap:4px 10px;padding:4px 8px;font-size:11px;background:var(--panel);border:2px solid #fff4dc66;box-shadow:0 0 0 2px var(--shade)}.chat-hint[hidden]{display:none}.chat-hint .on{color:var(--gold)}.chat-hint .on:before{content:"▶ ";font-size:8px}.chat-bar{display:none;margin:0}#chat.open .chat-bar{display:flex;align-items:center;gap:6px;padding:5px 8px;background:var(--panel);border:3px solid var(--gold);box-shadow:0 0 0 3px var(--shade),5px 5px 0 3px #2b1d2e66}.chat-caret{color:var(--gold)}.chat-input{flex:1;min-width:0;padding:2px 0;font:inherit;font-size:13px;color:var(--ink);background:transparent;border:0;outline:none;caret-color:var(--gold);user-select:text;-webkit-user-select:text}.chat-input::placeholder{color:#fff4dc66}body.chat-open #info{display:none!important}@media(max-width:600px){#chat{left:10px;width:calc(100vw - 20px);font-size:11px}.chat-log{max-height:26vh}}@media(prefers-reduced-motion:reduce){#chat:not(.open) .chat-line.fading{transition:none}}#mp-tags{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:5}.mp-tag{position:absolute;left:0;top:0;display:flex;align-items:center;gap:4px;padding:1px 5px 2px;font-family:Silkscreen,ui-monospace,monospace;font-size:calc(10px * var(--ui, 1));line-height:1.2;white-space:nowrap;color:var(--ink, #fff4dc);background:#2b1d2ecc;box-shadow:0 0 0 2px var(--shade, #2b1d2e);text-shadow:1px 1px 0 var(--shade, #2b1d2e)}.mp-tag[hidden]{display:none}.mp-tag i{width:6px;height:6px;box-shadow:0 0 0 1px var(--shade, #2b1d2e)}body.ui-modal #mp-tags{display:none}.mp-badge .mp-dot{width:6px;height:6px;background:#8a7a8e;box-shadow:0 0 0 1px var(--shade, #2b1d2e)}.mp-badge[data-status=online] .mp-dot{background:var(--leaf, #7dff9a)}.mp-badge[data-status=connecting] .mp-dot{background:var(--gold, #ffd36b)}.mp-badge[data-status=offline] .mp-dot,.mp-badge[data-status=full] .mp-dot{background:var(--ember, #ff6a4a)}.mp-badge:not([data-status=online]){opacity:.8}.mp-badge.floating{position:fixed;right:16px;top:16px;z-index:20;zoom:var(--ui, 1)}
