@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;font-family:'Space Grotesk',system-ui,sans-serif;background:#0b1516;color:#e6ecdd;--ink:#10201e;--border:#c4d4ae2e;--green:#c2df98;--muted:#9bad9a}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--border);background:#1d302bd9;border-radius:7px;padding:10px 15px;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#36513c;border-color:#c6df9b99}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--green);outline-offset:3px}button.primary{background:var(--green);color:#1d3021;border:0;font-weight:700;letter-spacing:.4px;padding:15px 20px}button.primary:hover{background:#d5edb2}button.primary span{float:right}[hidden]{display:none!important}#game{position:relative;width:100vw;height:100dvh;isolation:isolate;overflow:hidden;background:#19313b}#canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center bottom;outline:none;image-rendering:auto}#vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#09191e42,transparent 26%,transparent 70%,#08151166)}#hud{position:absolute;inset:0;pointer-events:none}#hud button,#hud #toolbar{pointer-events:auto}.player-card{position:absolute;top:25px;left:26px;display:flex;align-items:center;gap:12px;background:#12231fe8;border:1px solid var(--border);padding:13px 16px;border-radius:10px;min-width:270px;box-shadow:0 5px 30px #0002}.avatar{border:1px solid #b5d19155;width:36px;height:42px;display:grid;place-items:center;border-radius:5px;color:var(--green);font-size:27px;font-weight:700;background:#304935}.player-info{flex:1}.player-info>div:first-child{display:flex;justify-content:space-between;gap:30px;align-items:center;font-size:13px}.player-info #health{font-size:11px;color:#e9bb9f;font-variant-numeric:tabular-nums}.health-track{height:6px;background:#573b34;margin:8px 0;border-radius:5px;overflow:hidden}#hpbar{display:block;background:linear-gradient(90deg,#bc715e,#e5b08a);width:100%;height:100%;transition:width .15s}#worldname{font-size:9px;color:var(--muted);letter-spacing:.5px}#timehud{position:absolute;top:23px;left:50%;transform:translateX(-50%);text-align:center;background:#10211de8;border:1px solid var(--border);border-radius:10px;padding:11px 26px 9px;min-width:205px;box-shadow:0 5px 30px #0002}#phasetime{display:block;font-size:9px;color:#d0dbbe;margin:7px 0;letter-spacing:.9px}.cycletrack{height:3px;background:linear-gradient(90deg,#d9d29a 0%,#d9d29a 50%,#b68b78 62%,#354b69 65%,#354b69 93%,#b9c1a1 100%);position:relative;margin:8px 0}#cyclemarker{position:absolute;top:-2px;left:0;width:4px;height:7px;background:#f1edcd;transform:translateX(-50%);border-radius:1px}.resource-area{position:absolute;right:26px;top:25px}#resources{display:flex;gap:7px}.resource-chip{display:flex;align-items:center;gap:8px;padding:8px 13px 8px 7px;min-width:96px;background:#12231fe8;border:1px solid var(--border);border-radius:8px}.resource-chip canvas{width:34px;height:32px}.resource-chip small{display:block;color:#96aa98;font-size:8px;margin-bottom:2px}.resource-chip strong{font-size:18px;font-variant-numeric:tabular-nums}.session-info{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:9px;font-size:9px;color:#c2d2bc}#roomlabel{font-size:9px;letter-spacing:1px;padding:6px 10px;background:#152820bc}#connection{font-size:9px;color:#afc4a7}.tools{position:absolute;top:128px;right:26px;display:flex;gap:7px}.tools button{height:34px;width:36px;padding:0;font-size:18px;background:#11211cd9}.tools button:first-child{font-size:15px}#toolbar{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);display:flex;gap:12px;padding:9px;background:#12231fe8;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 35px #0003}#slots{display:flex;gap:5px}.slot{width:59px;height:65px;position:relative;padding:0;display:grid;place-items:center;background:linear-gradient(145deg,#263e32,#142920);border-radius:6px;border:1px solid #79966c38}.slot.active{border-color:#c9e3a4;box-shadow:inset 0 -3px #bcd38a;background:linear-gradient(145deg,#4b603c,#293e2b)}.slot canvas{width:50px;height:49px;pointer-events:none}.slot .slot-key{position:absolute;top:4px;left:6px;font-size:9px;color:#bad1a5}.slot .slot-level{position:absolute;bottom:4px;right:6px;font-size:8px;color:#d5debf}.toolbar-actions{display:flex;flex-direction:column;gap:5px;min-width:125px}.toolbar-actions button{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;font-size:11px;border-radius:5px;flex:1}kbd{font:9px inherit;padding:2px 4px;border:1px solid #9cba864d;border-radius:3px;background:#40503b55;color:#d5dfbf}#notice{position:absolute;top:158px;bottom:auto;left:50%;transform:translateX(-50%);font-size:11px;text-align:center;max-width:70vw;color:#d6e2c7;text-shadow:0 1px 3px #000;background:#14231b99;border:1px solid #acc09a22;padding:8px 16px;border-radius:6px;line-height:1.6}.keys-hint{position:absolute;bottom:10px;left:22px;font-size:9px;color:#b1c2a3;display:flex;align-items:center;gap:5px}#spectator{position:absolute;top:132px;left:26px;font-size:12px;letter-spacing:2px;color:#bddbd1}#spectator span{display:block;font-size:10px;letter-spacing:0;color:#a6bfb6;margin-top:6px}#boss-hud{position:absolute;top:140px;left:50%;transform:translateX(-50%);width:390px;text-align:center;background:#241c2bdb;border:1px solid #b7a1c348;border-radius:7px;padding:10px 14px}#boss-hud>span{font-size:9px;letter-spacing:2px;color:#d9c2df}#boss-hp{float:right;font-size:9px}#boss-hud>div{height:6px;margin-top:9px;background:#4b3448;border-radius:4px;overflow:hidden}#boss-progress{display:block;height:100%;background:linear-gradient(90deg,#9e6e96,#ddacca)}
#lobby{position:absolute;inset:0;background:linear-gradient(90deg,#081814f5,#0d1d18d9 34%,#0d1d1830 70%,transparent);display:flex;align-items:center;padding:35px 7vw}.menu-panel{width:365px;max-height:95dvh;overflow:auto;padding:10px 2px}.eyebrow{font-size:9px;letter-spacing:3px;color:#b4d48a;font-weight:600}h1{font-size:80px;letter-spacing:-6px;line-height:.9;margin:22px 0 0;color:#c5e29f;font-weight:700}h1 span{display:block;font-size:21px;letter-spacing:12px;line-height:1.4;color:#e2e9d7;margin-top:9px}.intro{font-size:14px;color:#b1c4ac;line-height:1.8;margin:23px 0}label{display:block;font-size:10px;color:#b0c0a5;margin:13px 0}input,select{display:block;border:1px solid #a0ba8740;background:#152c23db;border-radius:6px;padding:12px;width:100%;margin-top:7px;font-size:12px;outline:none}#create{width:100%;margin-top:7px}.divider{font-size:8px;color:#8b9f88;letter-spacing:1.5px;margin:23px 0 11px;text-align:center}.join{display:flex;gap:8px}.join input{margin:0;width:62%;letter-spacing:3px;text-transform:uppercase}.join button{flex:1;font-size:12px}.subtle{width:100%;margin-top:10px;background:#1d3527a6;font-size:12px}.menu-foot{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#98ad8c;margin-top:21px}.text-button{border:0;background:none;color:#8fa78b;display:block;margin:17px auto 0;font-size:11px;padding:5px}#error,#panel-error{color:#f0b197;font-size:11px;min-height:15px;margin:10px 0 0}.end-overlay{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:radial-gradient(#281c23df,#0a1817f2);backdrop-filter:blur(6px)}.end-card{text-align:center;width:min(500px,88vw);padding:35px;border:1px solid #bd9a9a44;background:#1e2421;border-radius:12px;box-shadow:0 20px 100px #0006}.end-card .eyebrow{color:#d5a58c}.end-card h2{font-size:38px;letter-spacing:-1px}.end-card p{font-size:12px;line-height:1.9;color:#b4c1ae}.end-card .primary{width:100%;margin-top:25px}#end-stats{display:flex;justify-content:center;gap:35px;margin:25px 0;color:#d2dfbe}#end-stats strong{display:block;font-size:26px}#end-stats small{font-size:9px;color:#8fa58a}
dialog{width:min(870px,92vw);max-height:88dvh;overflow:auto;color:#e0e8d6;background:linear-gradient(130deg,#1c3028,#111f1c);border:1px solid #a9c58b55;border-radius:12px;padding:27px;box-shadow:0 25px 100px #0009}dialog::backdrop{background:#06140dc9;backdrop-filter:blur(4px)}.panel-head{display:flex;justify-content:space-between;align-items:center}.panel-head h2{font-size:27px;letter-spacing:-.5px;margin:8px 0 14px}.close-button{font-size:25px;width:35px;height:35px;padding:0;background:#20342a}.tabs{display:flex;gap:7px;margin:12px 0 20px}.tabs button{font-size:11px;padding:9px 16px}.tabs button.active{border-color:#b5d08c;color:#daebbe;background:#3a5130}#panel-funds{display:flex;gap:18px;color:#b5cba3;font-size:11px;margin-bottom:19px}.upgrade-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.upgrade-card{border:1px solid #88a67638;border-radius:8px;background:#24392a44;padding:17px;position:relative}.upgrade-card.selected{border-color:#c4db98}.item-heading{display:flex;align-items:center;gap:13px}.item-heading canvas{width:64px;height:64px}.item-heading h3{font-size:15px;margin:0 0 6px}.level-badge{font-size:9px;color:#abc58d;letter-spacing:1px}.statline{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#a7bba0;line-height:1.8;margin-top:7px}.statline b{font-weight:500;color:#e5ebd6}.statline em{font-style:normal;color:#c1d993;margin-left:7px}.price{display:flex;gap:12px;font-size:10px;margin:13px 0;flex-wrap:wrap}.price span{display:flex;gap:3px;align-items:center;color:#a5c18a}.price .missing{color:#edab92}.price canvas{width:22px;height:22px}.upgrade-card>button{width:100%;font-size:11px;background:#344d31;border-color:#92b56a55;padding:10px}.max-level{display:block;margin-top:15px;font-size:10px;color:#b5d487;letter-spacing:1px}.card-note,.panel-note{font-size:10px;color:#8da58c;line-height:1.8}.panel-note{margin-bottom:18px}.inventory-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.inventory-grid button{padding:15px 5px;font-size:10px;text-align:center}.inventory-grid canvas{display:block;width:66px;height:66px;margin:auto}.inventory-grid b{display:block;font-size:11px;margin:8px 0}.inventory-grid button.active{border-color:#c9e39c}.skill-box{border:1px solid var(--border);padding:17px;border-radius:7px;margin-top:20px}.skill-box h3{font-size:13px;margin:0 0 8px}.skill-box p{font-size:11px;color:#adc29d;line-height:1.8;margin:3px 0}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:17px 0;border-bottom:1px solid var(--border);font-size:13px}.settings-row input[type=range]{width:52%;margin:0;padding:0;accent-color:#bdd995}.settings-row input[type=checkbox]{width:20px;height:20px;accent-color:#bdd995}.settings-row small{display:block;color:#8ea98b;font-size:10px;margin-top:6px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.help-grid p{font-size:12px;line-height:1.9;color:#b0c3a7}.help-grid h3{font-size:14px;color:#d4e3bf}.settings-footer{display:flex;justify-content:space-between;gap:15px;margin-top:22px}.settings-footer button{font-size:11px}.balance-table{width:100%;border-collapse:collapse;font-size:11px;margin:15px 0}.balance-table td,.balance-table th{padding:10px 8px;border-bottom:1px solid var(--border);text-align:left}.balance-table th{color:#c6dcaa}.balance-table td{color:#a6bda1}#damage-flash{position:absolute;inset:0;pointer-events:none;border:0 solid transparent;box-shadow:inset 0 0 100px #e76d4e00;transition:box-shadow .2s}#damage-flash.hit{box-shadow:inset 0 0 100px #e76d4e55}
@media(max-width:1100px){.player-card{min-width:215px;left:15px;top:15px;padding:10px}.player-info>div:first-child{gap:10px}.avatar{display:none}.resource-area{right:15px;top:15px}.resource-chip{min-width:76px;padding:6px}.resource-chip canvas{width:25px;height:27px}.resource-chip strong{font-size:15px}#timehud{top:15px;min-width:175px;padding:10px 15px}.slot{width:50px;height:59px}.slot canvas{width:45px;height:44px}#toolbar{bottom:20px;gap:8px;padding:7px}.toolbar-actions{min-width:112px}.tools{top:112px;right:15px}.keys-hint{display:none}#notice{top:146px;bottom:auto}#boss-hud{width:310px;top:127px}}
@media(max-height:760px){.menu-panel{padding:5px;max-height:95dvh}h1{font-size:55px;margin:16px 0 0}.intro{margin:14px 0;font-size:12px}label{margin:9px 0}input,select{padding:9px}.divider{margin:15px 0 9px}.menu-foot{margin-top:14px}.menu-panel .text-button{margin-top:10px}dialog{max-height:94dvh;padding:20px}.panel-head h2{font-size:24px}}

.has-boss #notice{top:207px}
.next-preview{margin-left:auto;text-align:center;opacity:.8;flex-shrink:0}.item-heading .next-preview canvas{width:44px;height:44px}.next-preview small{display:block;font-size:6px;letter-spacing:.6px;color:#a5bd90;margin-top:4px}
.shortage{display:block;min-height:14px;margin:-3px 0 10px;font-size:10px;line-height:1.4;color:#e6aa90}

.tools #end-game{width:auto;font-size:11px;padding:0 12px;color:#e8c4ad}.slot{height:79px;width:61px}.slot canvas{transform:translateY(-5px)}.slot-cost{position:absolute;bottom:4px;left:0;right:0;font-size:8px;letter-spacing:-.2px;color:#d5d5b2;white-space:nowrap}.slot .slot-level{bottom:5px}#toolbar{max-width:98vw}#slots{flex-wrap:nowrap}.tabs{flex-wrap:wrap}#timehud{min-width:195px;padding:10px 22px}.cycletrack{height:5px;margin:12px 0 5px}.upgrade-card>button+button{margin-top:7px}@media(max-width:1100px){.slot{width:48px;height:74px}.slot canvas{width:42px}.slot-cost{font-size:7px}.toolbar-actions{min-width:90px}.toolbar-actions button{font-size:10px}}
