:root{--grain:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' shape-rendering='crispEdges'><g fill='%233a2618' fill-opacity='.14'><rect x='1' y='0' width='1' height='1'/><rect x='5' y='1' width='1' height='1'/><rect x='3' y='3' width='1' height='1'/><rect x='7' y='4' width='1' height='1'/><rect x='0' y='5' width='1' height='1'/><rect x='4' y='6' width='1' height='1'/><rect x='6' y='7' width='1' height='1'/></g><g fill='%23fff8e0' fill-opacity='.35'><rect x='3' y='0' width='1' height='1'/><rect x='0' y='2' width='1' height='1'/><rect x='6' y='2' width='1' height='1'/><rect x='2' y='5' width='1' height='1'/><rect x='5' y='5' width='1' height='1'/><rect x='1' y='7' width='1' height='1'/></g></svg>");--bg:#1a1410;--panel:#261c14f0;--edge:#5b4330;--ink:#f5ead6;--muted:#c4b49a;--accent:#e8c53a;--good:#7bd66a;--bad:#ef6f5c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);-webkit-user-select:none;user-select:none;touch-action:none;margin:0;font:14px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#game canvas{display:block}#ui{pointer-events:none;position:fixed;inset:0}.hud>*{pointer-events:auto}button{font:inherit;color:var(--ink);cursor:pointer;background:#6b4a2e;border:1px solid #8a6240;border-radius:8px;min-height:40px;padding:8px 12px}button:hover:not(:disabled){background:#7a5636}button.on{border-color:var(--accent);background:#8a6a24}button.danger{background:#6e2a22;border-color:#92382d}button:disabled{opacity:.5;cursor:default}.topbar{top:max(8px, env(safe-area-inset-top));pointer-events:none;flex-wrap:wrap;gap:6px;display:flex;position:absolute;left:8px;right:8px}.res{background:var(--panel);border:1px solid var(--edge);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;padding:3px 10px}.res small{color:var(--muted)}.res .ico{vertical-align:middle;image-rendering:pixelated;margin:-4px 4px -2px -4px}.res.full{border-color:#e5533d}.res .bang{color:#ff6a52;margin-left:4px}.hint{background:var(--panel);border:1px solid var(--accent);cursor:pointer;border-radius:10px;width:min(560px,100% - 16px);padding:8px 26px 8px 12px;position:absolute;top:56px;left:50%;transform:translate(-50%)}.hint-x{color:var(--accent);position:absolute;top:6px;right:9px}.hint.tucked{width:auto;padding:4px 10px;font-size:12px;left:8px;transform:none}.banner{background:var(--panel);pointer-events:none;border-radius:10px;padding:10px 16px;position:absolute;top:40%;left:50%;transform:translate(-50%)}.toasts{pointer-events:none;flex-direction:column;gap:6px;width:min(320px,100% - 16px);display:flex;position:absolute;top:104px;right:8px}.toast{background:var(--panel);border-left:4px solid var(--muted);border-radius:6px;padding:6px 10px}.toast.good{border-color:var(--good)}.toast.bad{border-color:var(--bad)}.actions{bottom:calc(78px + env(safe-area-inset-bottom));flex-wrap:wrap;justify-content:center;gap:8px;width:min(640px,100% - 16px);display:flex;position:absolute;left:50%;transform:translate(-50%)}.actions button{border-color:var(--accent);background:#8a6a24;font-weight:600}.menu{bottom:max(8px, env(safe-area-inset-bottom));gap:6px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.menu button{color:#3a2618;background:linear-gradient(#f4dfae,#e0b877);border-width:2px;border-color:#3a2618;border-radius:10px;flex-direction:column;align-items:center;gap:1px;min-width:62px;padding:4px 6px 3px;font-size:12px;font-weight:700;line-height:1.1;display:flex;position:relative;box-shadow:inset 0 -3px #c89a5a,0 2px #00000059}.menu button:hover:not(:disabled){background:linear-gradient(#fbecc4,#ecc888)}.menu button.on{background:linear-gradient(#ffe680,#e8c53a);border-color:#6e4a10;transform:translateY(1px);box-shadow:inset 0 -2px #c89a2a}.menu img{image-rendering:pixelated;filter:drop-shadow(0 1px #3a261859);display:block}.menu button:hover img{transform:translateY(-1px)scale(1.06)}.menu kbd{color:#3a26188c;font:700 10px/1 system-ui,sans-serif;position:absolute;top:2px;left:4px}.menu .badge{background:var(--bad);color:#fff;border:2px solid #3a2618;margin:0;position:absolute;top:-7px;right:-7px}@media (hover:none){.menu kbd{display:none}}.panel{top:52px;bottom:calc(78px + env(safe-area-inset-bottom));background:var(--panel);border:1px solid var(--edge);-webkit-user-select:text;user-select:text;touch-action:pan-y;border-radius:12px;width:min(520px,100% - 16px);padding:12px 16px;position:absolute;left:50%;overflow-y:auto;transform:translate(-50%)}.panel h2{margin:0 0 8px;font-size:18px}.panel h3{margin:16px 0 6px;font-size:15px}.close{float:right;min-height:32px;padding:4px 10px;position:sticky;top:0}.list{margin:0;padding:0;list-style:none}.list li{border-top:1px solid var(--edge);padding:8px 0}.row{justify-content:space-between;align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap;justify-content:flex-start}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--bad)}input[type=range]{width:100%;accent-color:var(--accent)}.stepper{flex-shrink:0;align-items:center;gap:4px;display:flex}.stepper button{background:var(--grain) 0 0 / 16px 16px, linear-gradient(#f4dfae, #e0b877);min-width:40px;min-height:38px;image-rendering:pixelated;color:#3a2618;touch-action:manipulation;border:2px solid #3a2618;border-radius:8px;padding:4px 8px 6px;font-weight:800;line-height:1;box-shadow:inset 0 -3px #c89a5a,0 2px #00000059}.stepper button:hover:not(:disabled){background:var(--grain) 0 0 / 16px 16px, linear-gradient(#fbecc4, #ecc888)}.stepper button:active:not(:disabled){background:var(--grain) 0 0 / 16px 16px, linear-gradient(#ffe680, #e8c53a);transform:translateY(2px);box-shadow:inset 0 -1px #c89a2a}.stepper button:disabled{opacity:.4;box-shadow:inset 0 -3px #c89a5a}.stepper .count{min-width:3ch;color:var(--accent);text-align:center;font-variant-numeric:tabular-nums;background:#1e150e;border:2px solid #3a2618;border-radius:6px;padding:6px 4px;font-weight:800;line-height:1;box-shadow:inset 0 2px #00000080}.check{align-items:center;gap:6px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field input{font:inherit;border:1px solid var(--edge);color:var(--ink);background:#2a1f16;border-radius:6px;padding:6px 8px}.tutorial li{color:var(--muted);margin-bottom:6px}.tutorial li.done{opacity:.6;text-decoration:line-through}.tutorial li.now{color:var(--ink);font-weight:600}.modal{background:#00000080;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.card{background:var(--panel);border:1px solid var(--accent);border-radius:12px;width:min(380px,100%);padding:16px 20px}.card h2{margin-top:0}.blocker{pointer-events:auto;text-align:center;place-content:center;height:100%;padding:16px;display:grid}button.blocked{opacity:.55}.stars{color:var(--accent);font-weight:400}.lab{flex-direction:column;gap:4px;margin-top:6px;display:flex}.odds{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:2px 12px;margin:8px 0;padding:0;font-size:13px;list-style:none;display:grid}.odds li{justify-content:space-between;display:flex}.collection{flex-wrap:wrap;gap:4px;font-size:12px;display:flex}.collection span{border:1px solid var(--edge);color:var(--muted);border-radius:6px;padding:2px 6px}.collection span.got{color:var(--ink);border-color:var(--accent)}.raidbar{background:var(--panel);pointer-events:none;border:1px solid #8f7ad8;border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:4px 12px;width:min(560px,100% - 16px);padding:6px 12px;display:flex;position:absolute;top:56px;left:50%;transform:translate(-50%)}.good{color:var(--good)}.list li.locked{opacity:.55}button.res.sound{pointer-events:auto;min-height:0;font:inherit;line-height:inherit;cursor:pointer;padding:2px 8px}.field input[type=range]{accent-color:var(--accent);padding:0}@media (width<=620px){.menu{gap:4px}.menu button{min-width:0;padding:3px 3px 2px;font-size:10px}}@media (width<=480px){.menu .label{display:none}.menu img{width:30px;height:30px}}.dot{vertical-align:baseline;border:1px solid #00000073;border-radius:50%;width:.7em;height:.7em;display:inline-block}.challenge{text-align:center}.challenge .problem{margin:8px 0;font-size:26px;font-weight:700}.challenge .entry{border:1px solid var(--accent);background:#00000040;border-radius:8px;margin-bottom:10px;padding:6px;font-size:22px;display:block}.pad{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px;display:grid}.pad button{padding:10px 0;font-size:18px}.badge{background:var(--accent);color:#1b1714;text-align:center;border-radius:999px;min-width:1.4em;margin-left:5px;padding:0 4px;font-size:11px;font-weight:700;line-height:1.4;display:inline-block}progress{width:100%;height:10px;accent-color:var(--accent)}.minimap{background:var(--bg);border:2px solid var(--edge);border-radius:8px;min-height:0;padding:0;line-height:0;position:absolute;top:104px;left:8px;overflow:hidden}.minimap:hover:not(:disabled){background:var(--bg);border-color:var(--accent)}@media (width<=720px){.minimap{top:164px}.hint.tucked~.minimap{top:96px}}.minimap canvas,.fullmap canvas{display:block}.mapcard{width:auto;max-width:100%;padding:12px 16px}.mapcard h2{margin:0 0 8px;font-size:18px}.fullmap{border:2px solid var(--edge);cursor:pointer;border-radius:8px;width:fit-content;margin:0 auto;line-height:0;overflow:hidden}.mapkey{flex-wrap:wrap;gap:2px 12px;margin-top:8px;display:flex}.mapcard p{margin:4px 0 0}
