:root{--cream:#f7f0e1;--cream-2:#efe5cf;--ink:#33301f;--ink-soft:#6b6450;--moss:#7ca24f;--moss-deep:#4c6b34;--sun:#f2c14e;--clay:#c97b5a;--sky:#8be;--night:#1d2433;--panel-shadow:0 12px 40px #1e1a0c59;--radius:14px;--font:"Avenir Next Rounded", ui-rounded, "SF Pro Rounded", "Nunito", "Varela Round", system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--sky);height:100%;font-family:var(--font);color:var(--ink);margin:0;overflow:hidden}#app{position:fixed;inset:0}#game-canvas{touch-action:none;width:100%;height:100%;display:block}.hidden{display:none!important}button{font-family:inherit}#app[data-input=touch]{user-select:none}#crosshair{pointer-events:none;width:36px;height:36px;margin:-18px 0 0 -18px;position:fixed;top:50%;left:50%}#crosshair:before,#crosshair:after{content:"";background:#fff;border-radius:1px;position:absolute;box-shadow:0 0 3px #0009}#crosshair:before{width:2px;height:14px;top:11px;left:17px}#crosshair:after{width:14px;height:2px;top:17px;left:11px}#break-ring{position:absolute;inset:0;transform:rotate(-90deg)}#break-ring circle{fill:none;stroke-width:3.5px;stroke-linecap:round}#break-ring .ring-track{stroke:#0000}#break-ring .ring-fill{stroke:#fff;filter:drop-shadow(0 0 2px #000000b3);stroke-dasharray:94.2;stroke-dashoffset:94.2px}#break-ring.active .ring-track{stroke:#ffffff40}#clock{color:#fff;letter-spacing:.5px;backdrop-filter:blur(4px);background:#1e1a0c8c;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:14px;font-weight:700;display:flex;position:fixed;top:14px;right:14px}#clock-icon{font-size:15px}#mode-badge{color:#fff;text-transform:uppercase;letter-spacing:1px;backdrop-filter:blur(4px);background:#1e1a0c8c;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:700;position:fixed;top:14px;left:14px}#mode-badge.creative{background:#7ca24fbf}#mode-badge.spectator{background:#5a6ea0bf}#hint-bar{color:#fff;backdrop-filter:blur(4px);background:#1e1a0c73;border-radius:999px;padding:6px 12px;font-size:12px;position:fixed;bottom:14px;right:72px}#hint-bar b{color:var(--sun)}#hotbar{backdrop-filter:blur(6px);background:#1e1a0c80;border-radius:16px;gap:6px;padding:8px;display:flex;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.slot{background:#ffffff1f;border:2px solid #ffffff2e;border-radius:10px;place-items:center;width:52px;height:52px;display:grid;position:relative}.slot canvas{width:38px;height:38px;image-rendering:pixelated}.slot .count{color:#fff;text-shadow:0 1px 2px #000000e6;font-size:12px;font-weight:800;position:absolute;bottom:2px;right:4px}.slot.selected{border-color:var(--sun);background:#f2c14e40;box-shadow:0 0 10px #f2c14e80}.slot .key{color:#ffffff8c;font-size:9px;font-weight:700;position:absolute;top:2px;left:4px}.slot .wear{background:#00000073;border-radius:2px;height:3px;display:none;position:absolute;bottom:4px;left:5px;right:5px;overflow:hidden}.slot .wear.show{display:block}.slot .wear i{background:#8fce6a;border-radius:2px;height:100%;transition:width .12s linear;display:block}.slot .wear.warn i{background:var(--sun)}.slot .wear.low i{background:#e8734a}.slot .wear.show~.count{bottom:8px}.pack-grid .slot .wear{bottom:7%;left:8%;right:8%}#held-label{color:#fff;text-shadow:0 1px 3px #000c;pointer-events:none;opacity:0;font-size:13px;font-weight:700;transition:opacity .4s;position:fixed;bottom:86px;left:50%;transform:translate(-50%)}#held-label.show{opacity:1}#toasts{pointer-events:none;flex-direction:column-reverse;gap:6px;display:flex;position:fixed;bottom:14px;left:14px}.toast{color:#fff;backdrop-filter:blur(4px);background:#1e1a0ca6;border-radius:10px;padding:7px 13px;font-size:13px;font-weight:600;transition:opacity .5s;animation:.18s ease-out toast-in}.toast.fading{opacity:0}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}#cmd{z-index:40;backdrop-filter:blur(6px);background:linear-gradient(#1411088c,#141108e0);flex-direction:column;gap:0;padding:10px 14px 12px;display:flex;position:fixed;bottom:0;left:0;right:0}#cmd[hidden]{display:none}#cmd-log{overscroll-behavior:contain;flex-direction:column;gap:2px;max-height:34vh;margin-bottom:8px;display:flex;overflow-y:auto}.cmd-line{color:#efe7d2;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.45}.cmd-line.echo{color:var(--sun)}.cmd-line.bad{color:#f0a08a}#cmd-row{align-items:center;gap:8px;display:flex}#cmd-input{color:#fff;background:#14110899;border:2px solid #f7f0e140;border-radius:10px;flex:1;min-width:0;padding:9px 12px;font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace;font-size:14px}#cmd-input:focus{border-color:var(--sun);outline:none}#app[data-console=true] #hotbar,#app[data-console=true] #hint-bar,#app[data-console=true] #toasts{opacity:0;pointer-events:none}#app[data-console=true] #touch{display:none}.overlay{backdrop-filter:blur(5px);z-index:20;background:#18140a73;place-items:center;display:grid;position:fixed;inset:0}.panel{background:var(--cream);border-radius:var(--radius);box-shadow:var(--panel-shadow);max-width:min(92vw,640px);max-height:86vh;padding:22px 26px;overflow:auto}.panel h2.panel-title{letter-spacing:.3px;margin:0 0 4px;font-size:26px}.panel h2{margin:0 0 12px;font-size:17px}.panel .sub{color:var(--ink-soft);margin:0 0 16px;font-size:13px}.panel-footer{color:var(--ink-soft);text-align:center;margin-top:18px;font-size:12px}.panel-footer a{color:var(--moss-deep);font-weight:700;text-decoration:none}.btn{background:var(--cream-2);width:100%;color:var(--ink);cursor:pointer;text-align:center;border:0;border-radius:12px;margin:8px 0;padding:12px 16px;font-size:15px;font-weight:700;transition:transform 60ms,background .15s;display:block}.btn:hover{background:#e6d9bd}.btn:active{transform:scale(.98)}.btn.primary{background:var(--moss);color:#fff}.btn.primary:hover{background:var(--moss-deep)}.btn.danger{color:#a04b2e;background:#eadfd2}.btn.danger:hover{background:#e2cfbc}.btn-row{gap:8px;display:flex}.btn-row .btn{flex:1}#title-screen .panel{text-align:center;width:min(92vw,460px)}.title-logo{letter-spacing:1px;color:var(--moss-deep);margin:6px 0 0;font-size:40px;font-weight:800}.title-logo .leaf{color:var(--moss)}.title-tag{color:var(--ink-soft);margin:4px 0 18px;font-size:14px}.world-list{text-align:left;margin:14px 0 4px}.world-row{background:var(--cream-2);border-radius:10px;align-items:center;gap:10px;margin:6px 0;padding:9px 12px;font-size:14px;display:flex}.world-row .grow{flex:1;font-weight:700}.world-row .meta{color:var(--ink-soft);font-size:12px}.world-row button{cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 6px;font-size:14px}.world-row button:hover{background:#00000012}.seed-form{gap:8px;margin-top:10px;display:flex}.seed-form input{border:2px solid var(--cream-2);background:#fff;border-radius:10px;flex:1;padding:10px 12px;font-family:inherit;font-size:14px}.seed-form .btn{width:auto;margin:0}.setting-row{border-bottom:1px solid var(--cream-2);justify-content:space-between;align-items:center;gap:16px;padding:9px 0;font-size:14px;display:flex}.setting-row:last-of-type{border-bottom:0}.setting-row label{font-weight:700}.setting-row input[type=range]{width:160px;accent-color:var(--moss)}.setting-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--moss)}.setting-row select{border:2px solid var(--cream-2);background:#fff;border-radius:8px;padding:6px 8px;font-family:inherit}.setting-note{color:var(--ink-soft);margin:8px 0 0;font-size:12px}#pack-panel .panel{width:min(94vw,720px)}.pack-cols{grid-template-columns:minmax(0,1fr) 240px}.pack-grid{grid-template-columns:repeat(9,minmax(0,1fr));gap:6px;margin-bottom:8px;display:grid}.pack-grid .slot{aspect-ratio:1;background:var(--cream-2);border-color:#ddcfae;width:100%;height:auto}.pack-grid .slot canvas{aspect-ratio:1;width:78%;height:auto}#app[data-input=touch][data-narrow=true] .pack-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.pack-grid .slot .count{color:var(--ink);text-shadow:0 1px #fff}.pack-grid .slot:hover{border-color:var(--sun);cursor:pointer}.pack-grid .slot.selected{background:#f2c14e59}.pack-grid .slot-empty{background:0 0;border-style:dashed}.pack-grid .slot-empty .empty-mark{text-transform:uppercase;letter-spacing:.5px;color:var(--ink-soft);font-size:11px;font-weight:800}.pack-section-label{text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft);margin:10px 0 6px;font-size:12px;font-weight:800}.pack-cols{grid-template-columns:1fr 240px;gap:18px;display:grid}@media (width<=640px){.pack-cols{grid-template-columns:1fr}}.recipe-list{flex-direction:column;gap:6px;max-height:52vh;display:flex;overflow:auto}.recipe{background:var(--cream-2);border:2px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.recipe canvas{width:26px;height:26px;image-rendering:pixelated}.recipe .io{flex-wrap:wrap;flex:1;align-items:center;gap:4px;display:flex}.recipe .arrow{color:var(--ink-soft);font-weight:800}.recipe .qty{color:var(--ink-soft);margin-left:-4px;font-size:11px;font-weight:800}.recipe button{background:var(--moss);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:800}.recipe button:disabled{cursor:default;background:#cfc4a8}.recipe.uncraftable{opacity:.6}#postcard-modal .panel{text-align:center;width:min(94vw,700px)}#postcard-modal img{border-radius:10px;width:100%;box-shadow:0 6px 24px #00000040}#cross-promo{text-align:left;background:#7ca24f1a;border:2px dashed #4c6b3459;border-radius:12px;flex-direction:column;gap:2px;margin:10px 0 2px;padding:12px 16px;text-decoration:none;transition:border-color .15s,background .15s;display:flex}#cross-promo:hover{border-color:var(--moss-deep);background:#7ca24f2e}#cross-promo .promo-kicker{text-transform:uppercase;letter-spacing:1.2px;color:var(--moss-deep);font-size:11px;font-weight:800}#cross-promo .promo-body{color:var(--ink-soft);font-size:13.5px;line-height:1.45}#cross-promo .promo-body b{color:var(--ink);margin-right:4px;font-size:15px}.help-grid{grid-template-columns:auto 1fr;gap:6px 14px;margin:12px 0;font-size:14px;display:grid}.help-grid b{background:var(--cream-2);text-align:center;border-radius:6px;padding:2px 8px;font-size:12px}#boot-status{color:#fff;text-shadow:0 1px 3px #0009;z-index:30;font-size:14px;font-weight:700;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}#touch{pointer-events:none;z-index:10;position:fixed;inset:0}#touch[hidden],#app.paneled #touch,#app[data-paused] #touch{display:none}.pad{padding:0 max(10px, env(safe-area-inset-right)) 8px max(10px, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:0;left:0;right:0}.pad>*{pointer-events:auto}.move-pad{grid-template-rows:repeat(2,46px);grid-template-columns:repeat(3,46px);gap:5px;display:grid}.move.up{grid-area:1/2}.move.jump{grid-area:1/3}.move.left{grid-area:2/1}.move.down{grid-area:2/2}.move.right{grid-area:2/3}.move,.verb{color:#fff;font:inherit;letter-spacing:.02em;cursor:pointer;touch-action:none;backdrop-filter:blur(4px);-webkit-tap-highlight-color:transparent;background:#1e1a0c9e;border:2px solid #ffffff38;border-radius:13px;justify-content:center;align-items:center;font-size:15px;font-weight:800;display:flex}.move.jump{font-size:12px}.move[data-on=true]{color:var(--ink);background:#f7f0e1d9;border-color:#0000}.verbs{flex-direction:column;gap:5px;width:112px;display:flex}.verb.pack{min-height:44px;font-size:13px}.verb.gather{min-height:48px}.verb.place{min-height:60px;font-size:17px}#go-gather[data-on=true]{color:#fff;background:#c97b5aeb;border-color:#0000}#go-place[data-on=true]{background:var(--moss);color:#fff;border-color:#0000}#go-place{background:#4c6b34b3}#app[data-input=touch][data-short=true] .move-pad{grid-template-rows:repeat(2,44px);grid-template-columns:repeat(3,44px)}#app[data-input=touch][data-short=true] .verb.place{min-height:52px}#app[data-input=touch][data-short=true] .verb.gather{min-height:46px}#app[data-input=touch][data-short=true] .verbs{width:104px}#app[data-input=touch] #hotbar{left:50%;bottom:max(8px, env(safe-area-inset-bottom));grid-template-columns:repeat(9,46px);gap:5px;padding:6px;display:grid;transform:translate(-50%)}#app[data-input=touch][data-narrow=true] #hotbar{grid-template-columns:repeat(5,46px)}#app[data-input=touch] #hotbar .slot{width:46px;height:46px}#app[data-input=touch] #hotbar .slot canvas{width:32px;height:32px}#app[data-input=touch] .pad{bottom:66px}#app[data-input=touch][data-narrow=true] .pad{bottom:117px}#app[data-input=touch] #clock{pointer-events:none;right:72px}#app[data-input=touch] #mode-badge{pointer-events:none}#app[data-input=touch] #hint-bar{display:none}#app[data-input=touch] #toasts{top:52px;bottom:auto;left:12px}#app[data-input=touch] #held-label{top:92px;bottom:auto}#app[data-input=touch] #pp-pause-open{top:max(10px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right));bottom:auto}.panel .btn.sticky-action{z-index:2;box-shadow:0 0 0 10px var(--cream);position:sticky;bottom:0}.panel .panel-foot{z-index:2;background:var(--cream);box-shadow:0 -8px 12px 8px var(--cream);margin-top:12px;padding-top:10px;position:sticky;bottom:0}.panel .panel-foot .btn-row{margin-bottom:8px}#sleep-veil{pointer-events:none;opacity:0;background:radial-gradient(at 50% 45%,#0a0e1c26 0%,#0a0e1c9e 78%);transition:opacity .55s;position:fixed;inset:0}#app[data-sleeping] #sleep-veil{opacity:1}.furnace{align-items:center;gap:14px;margin-bottom:10px;display:flex}.furnace-stack,.furnace-out{flex-direction:column;align-items:center;gap:6px;display:flex}.fslot-wrap{flex-direction:column;align-items:center;gap:3px;display:flex}.fslot-wrap .slot{background:var(--cream-2);cursor:pointer;border-color:#ddcfae;width:52px;height:52px}.fslot-wrap .slot:hover{border-color:var(--sun)}.fslot-wrap .slot canvas{width:40px;height:40px}.fslot-wrap .slot .count{color:var(--ink);text-shadow:0 1px #fff}.fslot-cap{color:var(--ink-soft);letter-spacing:.4px;font-size:11px}.gauge{background:#00000029;border-radius:4px;overflow:hidden}.gauge.flame{align-items:flex-end;width:14px;height:34px;display:flex}.gauge.flame i{background:#cf6a34;width:100%;height:0;transition:height .25s linear;display:block}.gauge.flame.lit i{background:linear-gradient(180deg, var(--sun), #cf6a34)}.gauge.cook{width:74px;height:12px}.gauge.cook i{background:var(--moss);width:0;height:100%;transition:width .25s linear;display:block}@media (width<=520px){.furnace{gap:10px}.gauge.cook{width:54px}}
