:root{--bg:#1d2a17;--bg-deep:#141d10;--panel:#10160ddb;--panel-solid:#172113;--panel-border:#e6ecdf24;--fg:#e6ecdf;--muted:#9aa894;--accent:#d9c27a;--accent-fg:#1d2a17;--ok:#8fc46a;--bad:#d9775f;--warn:#e0b050;--scrap:#c9d1c0;--core:#d9c27a;--btn:#e6ecdf14;--btn-hover:#e6ecdf29;--btn-border:#e6ecdf38;--bp-fg:#9cc4f0;--bp-line:#6aa8e8;--bp-fill:#6aa8e840;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fs-xs:11px;--fs-sm:12px;--fs-md:14px;--fs-lg:16px;--fs-xl:22px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--radius:6px;--touch:48px;--btn-h:36px;--side-w:248px;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--z-map-ui:10;--z-banner:20;--z-sheet:30;--z-overlay:40;--z-toast:50;font-family:var(--font);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (pointer:coarse){:root{--btn-h:var(--touch)}}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;overflow:hidden}#game{position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}.perf-overlay{left:calc(env(safe-area-inset-left,0px) + var(--sp-2));z-index:var(--z-toast);pointer-events:none;padding:var(--sp-1) var(--sp-2);background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);color:var(--fg);font:var(--fs-xs) / 1.35 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-variant-numeric:tabular-nums;white-space:pre;max-width:calc(100vw - 2 * var(--sp-2));position:fixed;top:50%;overflow:hidden;transform:translateY(-50%)}.tab-notice{z-index:calc(var(--z-toast) + 10);padding:calc(var(--sp-4) + var(--safe-t)) calc(var(--sp-4) + var(--safe-r)) calc(var(--sp-4) + var(--safe-b)) calc(var(--sp-4) + var(--safe-l));font-family:var(--font);color:var(--fg);background:#0a0e08d1;place-items:center;display:grid;position:fixed;inset:0}.tab-notice-card{gap:var(--sp-3);width:min(360px,100%);padding:var(--sp-4);background:var(--panel-solid);text-align:center;flex-direction:column;display:flex}.tab-notice-title{font-size:var(--fs-lg);margin:0;font-weight:600}.tab-notice-text{font-size:var(--fs-md);margin:0;line-height:1.4}.tab-notice-btn{min-height:var(--touch);font-size:var(--fs-md)}.sv-overlay,.sv-broken{padding:calc(var(--safe-t) + var(--sp-4)) calc(var(--safe-r) + var(--sp-4)) calc(var(--safe-b) + var(--sp-4)) calc(var(--safe-l) + var(--sp-4));font-family:var(--font);color:var(--fg);place-items:center;display:grid;position:fixed;inset:0}.sv-overlay{z-index:calc(var(--z-overlay) + 5);background:#0a0e08b8}.sv-broken{z-index:calc(var(--z-toast) + 5);background:var(--bg-deep);overscroll-behavior:contain;place-items:start center;overflow-y:auto}.sv-scrim{cursor:default;background:0 0;border:0;padding:0;position:absolute;inset:0}.sv-dialog{background:var(--panel-solid);flex-direction:column;width:min(520px,100%);min-height:0;max-height:100%;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 40px #00000073}.sv-head{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--panel-border);display:flex}.sv-title,.sv-broken-title{font-size:var(--fs-xl);margin:0;font-weight:600}.sv-broken-title:focus{outline:none}.sv-body{gap:var(--sp-4);overscroll-behavior:contain;padding:var(--sp-3) var(--sp-4) var(--sp-4);flex-direction:column;min-height:0;display:flex;overflow-y:auto}.sv-broken-card{gap:var(--sp-3);width:min(520px,100%);padding:var(--sp-4);background:var(--panel-solid);flex-direction:column;margin:auto 0;display:flex;box-shadow:0 12px 40px #00000073}.sv-broken-text{font-size:var(--fs-md);margin:0;line-height:1.45}.sv-section{gap:var(--sp-2);flex-direction:column;display:flex}.sv-broken-card .sv-section{padding-top:var(--sp-3);border-top:1px solid var(--panel-border)}.sv-subtitle{font-size:var(--fs-lg);margin:0;font-weight:600}.sv-note,.sv-warn,.sv-error{font-size:var(--fs-md);margin:0;line-height:1.4}.sv-warn{color:var(--warn)}.sv-error{color:var(--bad)}.sv-text{box-sizing:border-box;resize:vertical;width:100%;min-height:72px;padding:var(--sp-2);color:var(--fg);background:var(--bg-deep);border:1px solid var(--btn-border);border-radius:var(--radius);word-break:break-all;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.sv-text:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sv-row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.sv-btn{min-height:max(var(--btn-h), 40px);font-size:var(--fs-md)}.sv-row>.sv-btn{flex:140px}.sv-wide{width:100%}.btn.danger{background:var(--bad);border-color:var(--bad);color:var(--bg-deep)}@media (hover:hover){.btn.danger:hover:not(:disabled){filter:brightness(1.08)}}.sv-file{display:none}.sv-preview{gap:var(--sp-1) var(--sp-3);font-size:var(--fs-md);font-variant-numeric:tabular-nums;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));margin:0;padding:0;list-style:none;display:grid}.sv-confirm{gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--panel-border);border-radius:var(--radius);background:var(--bg-deep);flex-direction:column;display:flex}.sv-details{font-size:var(--fs-sm);color:var(--muted)}.sv-details summary{cursor:pointer}.sv-details code{margin-top:var(--sp-1);white-space:pre-wrap;word-break:break-all;max-height:120px;display:block;overflow:auto}.sv-points{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.sv-point{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--panel-border);border-radius:var(--radius);display:flex}.sv-point-info{gap:var(--sp-1);flex-direction:column;flex:1;min-width:0;display:flex}.sv-point-source{font-size:var(--fs-sm);color:var(--muted)}@media (width<=480px){.sv-point{flex-direction:column;align-items:stretch}}.sv-copies>summary{cursor:pointer}.sv-copies[open]>summary{margin-bottom:var(--sp-1)}.sv-reminder{gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);border:1px solid var(--panel-border);border-radius:var(--radius);text-align:left;flex-direction:column;display:flex}.sv-reminder-text{font-size:var(--fs-sm);margin:0;line-height:1.4}.sv-reminder .sv-row>.sv-btn{font-size:var(--fs-sm);flex:96px}.consent{z-index:calc(var(--z-overlay) + 8);padding:var(--sp-3) calc(var(--sp-3) + var(--safe-r)) calc(var(--sp-3) + var(--safe-b)) calc(var(--sp-3) + var(--safe-l));pointer-events:none;font-family:var(--font);color:var(--fg);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.consent-card{gap:var(--sp-2);width:min(520px,100%);padding:var(--sp-3) var(--sp-4);background:var(--panel-solid);pointer-events:auto;flex-direction:column;display:flex}.consent-title{font-size:var(--fs-md);margin:0;font-weight:600}.consent-text{font-size:var(--fs-sm);margin:0;line-height:1.4}.consent-text a{color:inherit}.consent-actions{gap:var(--sp-2);display:flex}.consent-btn{min-height:var(--touch);font-size:var(--fs-md);flex:1}.debug-host{pointer-events:none;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:absolute;bottom:0;left:0;right:0}.debug-panel{pointer-events:auto;background:var(--panel);border:1px solid #e6ecdf26;flex-direction:column;gap:6px;width:fit-content;max-width:calc(100% - 16px);max-height:40vh;margin:8px;padding:8px 10px;font-size:12px;display:flex;overflow:auto}.debug-row{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:4px;display:flex}.debug-panel button{font:inherit;color:var(--fg);cursor:pointer;background:#e6ecdf14;border:1px solid #e6ecdf33;min-height:28px;padding:4px 8px}.debug-panel button.on{background:var(--accent);color:#1d2a17}.debug-panel button:disabled{opacity:.4;cursor:default}.debug-muted{color:var(--muted)}.debug-bad{color:var(--bad)}.amber-gem{background:linear-gradient(135deg,#f4c96b,#c98a2b);border-radius:2px;flex:none;width:12px;height:12px;display:inline-block;transform:rotate(45deg);box-shadow:0 0 6px #f4c96b80}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pause-banner{width:max-content}.pause-banner-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pause-banner-actions{gap:var(--sp-1);flex:none;display:inline-flex}.btn.pause-abandon{color:var(--bad);border-color:#d9775f80}.btn.danger{background:var(--bad);border-color:var(--bad);color:#1d0f0b;font-weight:600}@media (hover:hover){.btn.danger:hover:not(:disabled){filter:brightness(1.08)}}@media (width<=520px){.shell-map-ui>.pause-banner{width:calc(100% - 2 * var(--sp-3));padding:var(--sp-2);text-align:center;flex-wrap:wrap;justify-content:center}.pause-banner-text{white-space:normal}.pause-banner-actions{width:100%}.pause-banner-actions .btn{flex:1 1 0}}.abandon-backdrop{z-index:calc(var(--z-overlay) + 2);padding:calc(var(--safe-t) + var(--sp-4)) calc(var(--safe-r) + var(--sp-4)) calc(var(--safe-b) + var(--sp-4)) calc(var(--safe-l) + var(--sp-4));pointer-events:auto;background:#0a0e0899;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.abandon-scrim{cursor:default;background:0 0;border:0;padding:0;position:absolute;inset:0}.abandon-dialog{gap:var(--sp-3);width:min(360px,100%);padding:var(--sp-4);background:var(--panel-solid);text-align:center;border-color:#d9775f80;flex-direction:column;display:flex;position:relative;box-shadow:0 12px 40px #00000080}.abandon-title{font-size:var(--fs-lg);color:var(--bad);margin:0}.abandon-body{font-size:var(--fs-md);margin:0;line-height:1.4}.abandon-amber{justify-content:center;align-items:center;gap:var(--sp-2);font-size:var(--fs-lg);color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600;display:inline-flex}.abandon-none{font-size:var(--fs-sm);margin:0;line-height:1.4}.abandon-actions{gap:var(--sp-2);display:flex}.abandon-actions .btn{min-height:var(--touch);flex:1 1 0}@media (height<=420px){.abandon-dialog{padding:var(--sp-3);gap:var(--sp-2)}}:root{--r-common:#9aa894;--r-uncommon:#6fa8dc;--r-rare:var(--accent)}.btn.hud-supply{gap:var(--sp-1);padding:0 var(--sp-2);border-color:var(--accent);color:var(--accent);font-weight:600;animation:1.6s ease-in-out infinite supply-pulse}.btn.hud-supply.on{animation:none}@keyframes supply-pulse{0%,to{box-shadow:0 0 #d9c27a8c}50%{box-shadow:0 0 0 6px #d9c27a00}}.supply-gift{background:linear-gradient(var(--accent-fg), var(--accent-fg)) center / 2px 100% no-repeat, linear-gradient(var(--accent-fg), var(--accent-fg)) center / 100% 2px no-repeat, var(--accent);border-radius:2px;flex:none;width:12px;height:12px;display:inline-block}.btn.hud-supply.on .supply-gift{background:linear-gradient(var(--accent), var(--accent)) center / 2px 100% no-repeat, linear-gradient(var(--accent), var(--accent)) center / 100% 2px no-repeat, var(--accent-fg)}.supply-count{background:var(--accent);min-width:18px;color:var(--accent-fg);font-size:var(--fs-xs);text-align:center;border-radius:9px;padding:0 4px;font-weight:600;line-height:18px}.btn.on .supply-count{background:var(--accent-fg);color:var(--accent)}@media (width<=700px){.hud-supply-label{display:none}}.perk-gem{background:var(--r-common);border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.perk-gem.r-uncommon{background:var(--r-uncommon);border-radius:1px;transform:rotate(45deg)scale(.85)}.perk-gem.r-rare{background:var(--r-rare);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);border-radius:0;width:12px;height:11px}.supply-layer{z-index:var(--z-sheet);padding:var(--sp-3) calc(var(--safe-r) + var(--sp-3)) var(--sp-3) calc(var(--safe-l) + var(--sp-3));place-items:center;display:grid;position:absolute;inset:0}.supply-scrim{background:#0a0e0880;position:absolute;inset:0}.panel.supply-sheet{gap:var(--sp-3);width:min(760px,100%);min-height:0;max-height:100%;padding:var(--sp-4);background:var(--panel-solid);border-color:#d9c27a59;flex-direction:column;animation:.16s ease-out supply-in;display:flex;position:relative;overflow:hidden;box-shadow:0 16px 48px #00000080}.supply-sheet:focus{outline:none}.supply-sheet:focus-visible{outline:2px solid var(--accent)}@keyframes supply-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.supply-grip{display:none}.supply-grip,.supply-head,.supply-foot{flex:none}.supply-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);display:flex}.supply-head-text{flex-direction:column;gap:2px;min-width:0;display:flex}.supply-title{align-items:center;gap:var(--sp-2);font-size:var(--fs-lg);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0;display:flex}.supply-hint{font-size:var(--fs-xs)}.supply-head-meta{align-items:center;gap:var(--sp-2);flex:none;display:flex}.supply-paused{padding:2px var(--sp-2);border:1px solid var(--warn);border-radius:var(--radius);color:var(--warn);font-size:var(--fs-xs);white-space:nowrap}.supply-scrap{align-items:center;gap:var(--sp-1);font-weight:600;display:inline-flex}.supply-cards{overscroll-behavior:contain;gap:var(--sp-3);flex:0 auto;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));min-height:0;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.supply-cards[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.supply-cards[data-count="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}.supply-card{--r:var(--r-common);gap:var(--sp-2);min-width:0;padding:var(--sp-3);border:1px solid var(--panel-border);border-top:3px solid var(--r);border-radius:var(--radius);background:linear-gradient(#e6ecdf12,#e6ecdf08);flex-direction:column;display:flex}.supply-card.r-uncommon{--r:var(--r-uncommon)}.supply-card.r-rare{--r:var(--r-rare);background:linear-gradient(#d9c27a24,#e6ecdf08)}.supply-card-top{align-items:center;gap:var(--sp-2);display:flex}.supply-rarity{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--r);flex:auto}.supply-key{border:1px solid var(--btn-border);min-width:18px;color:var(--muted);font-family:inherit;font-size:var(--fs-xs);text-align:center;border-radius:3px;padding:0 4px;line-height:16px}@media (pointer:coarse){.supply-key{display:none}}.supply-name{font-size:var(--fs-lg);font-weight:600;line-height:1.2}.supply-desc{font-size:var(--fs-sm);color:var(--fg);opacity:.85;flex:auto;line-height:1.4}.btn.supply-take{width:100%;font-weight:600;position:relative;overflow:hidden}.btn.supply-take:disabled{opacity:1;background:var(--btn);border-color:var(--btn-border);color:var(--muted)}.supply-progress{background:var(--accent);opacity:.7;transform-origin:0;height:3px;position:absolute;inset:auto 0 0}.supply-take-label{position:relative}.supply-short{font-size:var(--fs-xs);color:var(--muted);text-align:center}.supply-foot{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.supply-actions{gap:var(--sp-2);margin-left:auto;display:flex}.perk-chips{align-items:center;gap:var(--sp-1);min-width:0;font-size:var(--fs-xs);flex-wrap:wrap;flex:240px;display:flex}.perk-chips-label{margin-right:var(--sp-1)}.perk-chip{align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border:1px solid var(--panel-border);background:var(--btn);white-space:nowrap;border-radius:999px;display:inline-flex}.perk-chip-count{color:var(--accent);font-weight:600}.perk-total{margin-left:var(--sp-1);color:var(--accent)}.perk-items{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.perk-item{padding-left:var(--sp-2);border-left:2px solid var(--r-common);flex-direction:column;gap:2px;display:flex}.perk-item.r-uncommon{border-left-color:var(--r-uncommon)}.perk-item.r-rare{border-left-color:var(--r-rare)}.perk-item-head{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:600;display:flex}.perk-item-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.perk-item-count{color:var(--accent);font-size:var(--fs-xs);background:#d9c27a2e;border-radius:9px;margin-left:auto;padding:0 6px}.perk-item-desc{font-size:var(--fs-xs);line-height:1.35}.perk-item-left{font-size:var(--fs-xs);color:var(--ok)}.perk-toggle{top:var(--sp-2);left:calc(var(--safe-l) + var(--sp-2));z-index:var(--z-banner);max-width:calc(100% - 2 * var(--sp-2));display:none;position:absolute}.btn.perk-toggle-btn{background:var(--panel);gap:var(--sp-2)}.panel.perk-pop{margin-top:var(--sp-1);width:min(320px, calc(100vw - 2 * var(--sp-2)));gap:var(--sp-2);max-height:50vh;padding:var(--sp-3);background:var(--panel-solid);flex-direction:column;display:flex;overflow-y:auto;box-shadow:0 8px 24px #00000073}.btn.perk-toggle-btn.on .perk-gem{background:var(--accent-fg)}.btn.perk-pop-close{align-self:flex-end}@media (orientation:portrait) and (width<=700px){.supply-layer{place-items:end stretch;padding:0}.panel.supply-sheet{gap:var(--sp-2);width:100%;max-height:92%;padding:var(--sp-2) calc(var(--safe-r) + var(--sp-3)) var(--sp-3) calc(var(--safe-l) + var(--sp-3));border-bottom:0;border-radius:12px 12px 0 0;animation-name:supply-up}@keyframes supply-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.supply-grip{background:var(--btn-border);border-radius:2px;align-self:center;width:36px;height:4px;display:block}.supply-head{flex-wrap:wrap}.supply-cards,.supply-cards[data-count="3"],.supply-cards[data-count="4"]{gap:var(--sp-2);grid-template-columns:1fr}.supply-card{column-gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-top-width:1px;border-left:3px solid var(--r);grid-template-columns:minmax(0,1fr) auto;row-gap:2px;display:grid}.supply-card>:not(.supply-take,.supply-short){grid-column:1}.supply-card>.supply-short{grid-area:4/2}.btn.supply-take{grid-area:1/2/span 3;align-self:center;width:auto;min-width:96px}.supply-name{font-size:var(--fs-md)}.supply-desc{font-size:var(--fs-xs)}.supply-actions{width:100%}.supply-actions .btn{flex:1 1 0}.perk-toggle{display:block}.shell:has(.supply-layer) .shell-side{visibility:hidden}.shell-side-perks{display:none}}@media (orientation:landscape) and (height<=500px){.supply-layer{padding:var(--sp-1) calc(var(--safe-r) + var(--sp-2)) var(--sp-1) calc(var(--safe-l) + var(--sp-2))}.panel.supply-sheet{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3)}.supply-hint{display:none}:is(.shell:has(.supply-layer) .shell-side,.shell:has(.supply-layer) .shell-side-toggle){visibility:hidden}.supply-card{gap:var(--sp-1);padding:var(--sp-2)}.supply-name{font-size:var(--fs-md)}.supply-desc{font-size:var(--fs-xs)}}@media (orientation:landscape) and (height<=360px){.supply-card-top{display:none}.supply-title{font-size:var(--fs-md)}.panel.supply-sheet{gap:var(--sp-1)}}@media (prefers-reduced-motion:reduce){.btn.hud-supply,.panel.supply-sheet{animation:none}}.coach{z-index:calc(var(--z-overlay) + 5);pointer-events:none;position:fixed;inset:0}.coach-ring{border:2px solid var(--accent);border-radius:calc(var(--radius) + 2px);animation:1.4s ease-in-out infinite coach-pulse;display:none;position:fixed;top:0;left:0;box-shadow:0 0 0 3px #d9c27a40}.coach-ring.tile{background:#d9c27a1f;border-style:dashed;border-radius:50%}@keyframes coach-pulse{50%{box-shadow:0 0 0 7px #d9c27a14}}@media (prefers-reduced-motion:reduce){.coach-ring{animation:none}}.coach .coach-card{visibility:hidden;gap:var(--sp-2);width:max-content;max-width:min(340px,100vw - 16px);padding:var(--sp-2) var(--sp-3) var(--sp-3);background:var(--panel-solid);border:1px solid var(--accent);border-radius:var(--radius);font-size:var(--fs-md);pointer-events:none;flex-direction:column;line-height:1.35;display:flex;position:fixed;top:0;left:0;box-shadow:0 6px 20px #00000073}.coach-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em}.coach-text{margin:0}.coach-actions{justify-content:flex-end;gap:var(--sp-2);display:flex}.coach-actions .btn{pointer-events:auto;white-space:nowrap}.btn.coach-skip{color:var(--muted);background:0 0;border-color:#0000}@media (width<=480px){.coach-card{font-size:var(--fs-sm)}}.bp-backdrop{z-index:calc(var(--z-overlay) + 2);padding:calc(var(--safe-t) + var(--sp-4)) calc(var(--safe-r) + var(--sp-4)) calc(var(--safe-b) + var(--sp-4)) calc(var(--safe-l) + var(--sp-4));font-family:var(--font);color:var(--fg);background:#0a0e0899;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.bp-panel{width:min(420px,100%);max-height:calc(100dvh - 2 * var(--sp-4));gap:var(--sp-3);padding:var(--sp-4);background:var(--panel-solid);flex-direction:column;display:flex;overflow-y:auto;box-shadow:0 12px 40px #00000080}.bp-panel:focus{outline:none}.bp-head{gap:var(--sp-2);align-items:center}.bp-title{font-size:var(--fs-lg);flex:auto;margin:0}.bp-slots{font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.btn.bp-close{width:var(--btn-h);justify-content:center;padding:0}.bp-layout{justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-md);margin:0;display:flex}.bp-note,.bp-error,.bp-ok{font-size:var(--fs-sm);margin:0;line-height:1.4}.bp-error{color:var(--bad)}.bp-ok{color:var(--ok)}.bp-form{gap:var(--sp-2);align-items:flex-end;display:flex}.bp-name-label{gap:var(--sp-1);min-width:0;font-size:var(--fs-sm);flex-direction:column;flex:auto;display:flex}.bp-name{height:var(--btn-h);padding:0 var(--sp-2);border:1px solid var(--btn-border);border-radius:var(--radius);background:var(--bg-deep);color:var(--fg);font:inherit;font-size:var(--fs-md)}.bp-name:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.bp-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bp-row{align-items:center;gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--panel-border);border-radius:var(--radius);display:flex}.bp-row-text{flex-direction:column;flex:auto;min-width:0;display:flex}.bp-row-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.bp-row-items{font-size:var(--fs-sm)}.bp-row-actions{gap:var(--sp-1);flex:none;display:inline-flex}.build-bar-bp,.bp-queue{gap:var(--sp-1);flex-wrap:nowrap;flex:none;align-items:center}.bp-queue-left{align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--bp-fg);white-space:nowrap;font-variant-numeric:tabular-nums;display:inline-flex}.bp-queue-ico{border:2px dashed var(--bp-line);background:var(--bp-fill);border-radius:2px;flex:none;width:12px;height:12px;display:inline-block}.btn.bp-queue-cancel,.btn.bp-open-apply{white-space:nowrap}.bp-left-num,.bp-queue-cancel .ico{display:none}.swatch[data-kind=harpy],.swatch[data-kind=chimera]{clip-path:polygon(50% 0,100% 35%,80% 100%,50% 80%,20% 100%,0 35%);border-radius:0}.swatch[data-kind=harpy]{background:#8fd3f0}.swatch[data-kind=wisp]{background:#e9f7c8}.swatch[data-kind=centaur]{background:#b07a45}.swatch[data-kind=dryad]{background:#3fae7c}.swatch[data-kind=sapper]{background:#6c9a3a;box-shadow:inset 0 0 0 3px #d9534f}.swatch[data-kind=hydra]{background:#2f7d5a}.swatch[data-kind=chimera]{background:#e0782f}.swatch[data-kind=hydra_head]{background:#3f9a6e}.tag-air{color:#0f2430;background:#8fd3f0}.sel-stats{gap:var(--sp-1) var(--sp-3);font-size:var(--fs-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.sel-stat-armed{color:var(--ok)}.sel-stat-recharge{color:var(--warn)}@media (orientation:portrait) and (width<=700px){.shell .shell-bottom .build-bar-tools>.tool-btn{min-width:var(--touch)}.bp-panel .btn{min-height:var(--touch)}.shell .shell-bottom .build-bar-bp{flex:100%}.shell-bottom .build-bar-bp .bp-queue{flex:auto;justify-content:space-between}.shell-bottom .build-bar-bp .bp-open-apply{flex:auto}.bp-queue-left{font-size:var(--fs-xs)}}@media (orientation:landscape) and (height<=500px){.bp-left-text,.bp-btn-text{display:none}.bp-left-num{display:inline}.bp-queue-cancel .ico{display:inline-block}.btn.bp-queue-cancel,.btn.bp-open-apply{width:var(--btn-h);padding:0}.bp-open-apply .bp-queue-ico{width:14px;height:14px}}.swatch[data-kind=wall_reinforced]{background:#7d8590;border:3px solid #39404a;border-radius:2px;box-shadow:inset 0 0 0 1px #c9d1d9}.swatch[data-kind=t_flak],.swatch[data-kind=t_repair],.swatch[data-kind=t_mortar],.swatch[data-kind=t_glue],.swatch[data-kind=t_flame],.swatch[data-kind=t_tesla]{background:radial-gradient(circle, var(--tower-c) 52%, #cab98a 56%);border:2px solid #5f563a;border-radius:3px}.swatch[data-kind=t_flak]{--tower-c:#5fd0e6}.swatch[data-kind=t_repair]{--tower-c:#4fbf6a}.swatch[data-kind=t_mortar]{--tower-c:#9b6a3a}.swatch[data-kind=t_glue]{--tower-c:#c6d63c}.swatch[data-kind=t_flame]{--tower-c:#e0453a}.swatch[data-kind=t_tesla]{--tower-c:#7d7cf2}.swatch[data-kind=t_mines]{background:radial-gradient(circle,#d9534f 0 2px,#4a4f3a 3px);border:2px solid #3b4130;border-radius:50%}.ico{flex:none;width:12px;height:12px;font-style:normal;display:inline-block;position:relative}.ico-timer{opacity:.8;border:2px solid;border-radius:50%}.ico-timer:after{content:"";background:currentColor;width:2px;height:4px;position:absolute;top:1px;left:3px}.ico-play{border:5px solid #0000;border-left:8px solid;border-right-width:0;width:0;height:0}.ico-scrap{background:var(--scrap);border-radius:50%;width:12px;height:12px;box-shadow:inset 0 0 0 3px #7d8775}.ico-repair{background:currentColor;border-radius:2px;width:14px;height:4px;margin:5px 0;transform:rotate(-45deg)}.ico-repair:before{content:"";background:var(--panel-solid);border:2px solid;border-radius:50%;width:6px;height:6px;position:absolute;top:-3px;left:-3px}.ico-close:before,.ico-close:after{content:"";background:currentColor;width:2px;height:12px;position:absolute;top:0;left:5px;transform:rotate(45deg)}.ico-close:after{transform:rotate(-45deg)}.swatch{background:var(--muted);border:1px solid #00000080;border-radius:50%;flex:none;width:14px;height:14px;display:inline-block}.swatch[data-kind=wall_palisade]{background:#8a6a3c;border:2px solid #3a2a14;border-radius:2px}.swatch[data-kind=wall_stone]{background:#8c8c86;border:3px solid #45453f;border-radius:2px}.swatch[data-kind=boulder]{clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);background:#8c8c8c;border-radius:3px}.swatch[data-kind=clear]{background:#2f4f1f;box-shadow:inset 0 0 0 3px #5f8436}.swatch[data-kind=t_mg],.swatch[data-kind=t_cannon],.swatch[data-kind=t_sniper]{background:radial-gradient(circle, var(--tower-c) 52%, #cab98a 56%);border:2px solid #5f563a;border-radius:3px}.swatch[data-kind=t_mg]{--tower-c:#4f8fd0}.swatch[data-kind=t_cannon]{--tower-c:#e0873a}.swatch[data-kind=t_sniper]{--tower-c:#9a6fd6}.swatch[data-kind=core]{background:#d9c27a;border-radius:2px}.swatch[data-kind=kobold]{background:#8fd14f}.swatch[data-kind=satyr]{background:#f2cf3e}.swatch[data-kind=golem]{background:#9b958a}.swatch[data-kind=minotaur]{background:#d5483a}.swatch[data-kind=cyclops]{background:#a95fd8}.swatch.boss{width:18px;height:18px;box-shadow:0 0 0 2px var(--accent)}.tag{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:1px 6px;font-weight:600}.tag-boss{color:var(--accent-fg);background:var(--accent)}.tag-danger{text-align:center;min-width:1.4em;color:var(--accent-fg);background:var(--bad)}.top-bar{row-gap:var(--sp-1);column-gap:var(--sp-3)}.hud-wave{font-weight:600}.hud-wave-short{font-weight:600;display:none}.hud-timer{align-items:center;gap:var(--sp-1);min-width:3.2em;display:inline-flex}.hud-timer.hidden{visibility:hidden}.hud-call{font-weight:600}.hud-call:not(:disabled) .hud-call-bonus{color:var(--ok)}.hud-call-bonus:empty{display:none}.hud-label{color:var(--muted)}.hud-scrap{align-items:center;gap:var(--sp-1);margin-left:auto;display:inline-flex}.hud-scrap-value{min-width:2.5em;font-weight:600}.hud-core{align-items:center;gap:var(--sp-2);display:inline-flex}.core-bar,.hp-bar{border:1px solid var(--panel-border);background:#e6ecdf1f;border-radius:3px;width:96px;height:10px;display:inline-block;position:relative;overflow:hidden}.core-bar-fill,.hp-bar-fill{background:var(--core);transform-origin:0;transition:transform .12s linear;position:absolute;inset:0}.hp-bar-fill{background:var(--ok)}.core-bar.low .core-bar-fill,.hp-bar.low .hp-bar-fill{background:var(--bad)}.core-bar.pulse{animation:.36s ease-out core-pulse}@keyframes core-pulse{0%{box-shadow:0 0 #d9775fe6}to{box-shadow:0 0 0 6px #d9775f00}}.hud-core-pct{min-width:2.8em}.core-edge{pointer-events:none;opacity:0;z-index:var(--z-overlay);transition:opacity .2s ease-out;position:fixed;inset:0;box-shadow:inset 0 0 48px 8px #d9503c8c}.core-edge.on{opacity:1}.top-bar-wave{display:none}.tool-btn{position:relative;overflow:hidden}.tool-price{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.tool-btn.on .tool-price{color:var(--accent-fg)}.tool-btn.short .tool-price{color:var(--muted)}.tool-limit{font-variant-numeric:tabular-nums;color:var(--muted);font-size:var(--fs-xs)}.tool-afford{background:#e6ecdf1a;height:3px;display:none;position:absolute;bottom:0;left:0;right:0}.tool-btn.short .tool-afford{display:block}.tool-afford-fill{background:var(--accent);transform-origin:0;position:absolute;inset:0}.speed-group{flex-wrap:nowrap;gap:2px}.build-bar-run .btn.on{font-weight:600}.tool-short{display:none}.wave-group-short{white-space:nowrap}.wave-preview .panel-title{justify-content:space-between}.wave-preview-n{color:var(--fg);letter-spacing:.04em}.wave-lanes{gap:var(--sp-1);margin-bottom:var(--sp-1)}.lane-chip{font-size:var(--fs-xs);text-align:center;border-radius:var(--radius);border:1px solid var(--warn);min-width:22px;color:var(--warn);padding:2px 6px;font-weight:600}.wave-groups{gap:var(--sp-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.wave-group{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);display:flex}.wave-group.boss .wave-group-name{font-weight:600}.swatch.unknown{border:2px dashed var(--muted);background:0 0}.wave-scout{margin:var(--sp-2) 0 0;font-size:var(--fs-xs)}.wave-preview-compact{gap:var(--sp-2);font-size:var(--fs-sm);flex-wrap:nowrap;overflow:hidden}.wave-preview-compact .wave-group{gap:3px}.selection-panel{gap:var(--sp-2);flex-direction:column;display:flex}.sel-head{flex-wrap:nowrap}.sel-title{font-size:var(--fs-md);white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:600;overflow:hidden}.sel-head .sel-close{background:0 0;border-color:#0000;margin-left:auto;padding:0}.sel-hp .hp-bar{flex:auto;width:auto;min-width:60px}.sel-actions .btn{flex:auto}.seg{gap:2px}.seg .btn{padding:0 var(--sp-2);flex:auto}.toasts{align-items:center;gap:var(--sp-1);flex-direction:column;display:flex}.toast{pointer-events:auto;white-space:nowrap;flex-wrap:nowrap;animation:.14s ease-out toast-in}.toast-close{color:var(--muted);margin:calc(-1 * var(--sp-2)) calc(-1 * var(--sp-3)) calc(-1 * var(--sp-2)) 0;min-width:var(--btn-h);min-height:var(--btn-h);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}@media (orientation:portrait) and (width<=700px){.top-bar{column-gap:var(--sp-2)}.hud-wave{display:none}.hud-wave-short{display:inline}.hud-label,.hud-call-label{display:none}.hud-core .core-bar{width:64px}.top-bar-wave{flex:100%;min-width:0;display:block}.tool-name{display:none}.tool-short{font-size:var(--fs-xs);color:var(--muted);line-height:1.1;display:block}.tool-btn.on .tool-short{color:inherit}.shell-bottom .build-bar{row-gap:var(--sp-1);flex-wrap:wrap}.shell-bottom .build-bar-tools{gap:var(--sp-1);flex:100%}.shell-bottom .build-bar-run{flex:100%;justify-content:space-between}.shell-bottom .build-bar-tools>.tool-btn{padding:0 var(--sp-1);flex-direction:column;flex:1 1 0;gap:2px}.tool-limit{background:#00000059;border-radius:4px;padding:0 3px;line-height:1.3;position:absolute;top:2px;right:2px}.selection-panel{padding-bottom:var(--sp-2)}}@media (orientation:landscape) and (height<=500px){.tool-name,.hud-label{display:none}}@media (width>=701px) and (height>=501px){.shell-bottom .build-bar{align-items:flex-end}.shell-bottom .build-bar-tools{row-gap:var(--sp-1);flex-wrap:wrap;overflow-x:visible}}@media (width>=701px) and (height>=501px) and (width<=1599px){.tool-name{display:none}.tool-short{font-size:var(--fs-xs);color:var(--muted);line-height:1.1;display:block}.tool-btn.on .tool-short{color:inherit}.shell-bottom .build-bar-tools>.tool-btn{min-width:64px;padding:2px var(--sp-2);flex-direction:column;gap:2px}.tool-limit{background:#00000059;border-radius:4px;padding:0 3px;line-height:1.3;position:absolute;top:2px;right:2px}}@media (width>=701px) and (height>=501px) and (width<=1199px){.shell-bottom .build-bar{row-gap:var(--sp-1);flex-wrap:wrap}.shell-bottom .build-bar-tools{gap:var(--sp-1);flex:100%}.shell .shell-bottom .build-bar-tools>.tool-btn{flex:1 1 0;min-width:56px;padding:2px}.shell-bottom .build-bar-run{margin-left:auto}}@media (prefers-reduced-motion:reduce){.core-bar.pulse,.toast{animation:none}.core-edge,.core-bar-fill,.hp-bar-fill{transition:none}}.catchup-overlay{z-index:var(--z-overlay);padding:var(--sp-3);background:#0a0e0899;place-items:center;display:grid;position:absolute;inset:0}.catchup-card{gap:var(--sp-2);width:min(320px,100%);padding:var(--sp-3) var(--sp-4) var(--sp-4);flex-direction:column;display:flex}.catchup-head{justify-content:space-between;align-items:baseline;gap:var(--sp-2);display:flex}.catchup-title{font-size:var(--fs-lg);margin:0;font-weight:600}.catchup-pct{font-size:var(--fs-xl);font-variant-numeric:tabular-nums}.catchup-bar{background:var(--btn);border-radius:4px;height:8px;overflow:hidden}.catchup-bar-fill{background:var(--accent);height:100%;transition:width .1s linear}.catchup-meta{justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-sm);display:flex}.catchup-actions{gap:var(--sp-2);margin-top:var(--sp-1);grid-template-columns:1fr 1fr;display:grid}.catchup-actions .btn{min-height:var(--touch);justify-content:center}.shell-map-ui>.confirm-layer{pointer-events:none;--strip-bottom:calc(var(--sp-2) + var(--btn-h) + 2 * var(--sp-1));--confirm-top:calc(var(--strip-bottom) + var(--sp-2));position:absolute;inset:0}.shell-map-ui>.confirm-layer.lowered{--strip-top:calc(var(--sp-2) + var(--banner-h,calc(var(--btn-h) + 2 * var(--sp-1) + 2px)) + var(--sp-1));--strip-bottom:calc(var(--strip-top) + var(--btn-h) + 2 * var(--sp-1))}.build-strip{top:var(--sp-2);max-width:calc(100% - 2 * var(--sp-2));z-index:var(--z-banner);align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-3);font-size:var(--fs-sm);white-space:nowrap;pointer-events:auto;display:flex;position:absolute;left:50%;transform:translate(-50%)}.build-strip.lowered{top:var(--strip-top)}.build-strip-tool{font-weight:600}.build-strip-hint{text-overflow:ellipsis;min-width:0;overflow:hidden}.build-strip-status{font-variant-numeric:tabular-nums;color:var(--ok)}.build-strip-status.bad{color:var(--bad)}.build-strip-status.short{color:var(--muted)}.build-strip-break{color:var(--bad);font-weight:600}@media (width<=480px){.build-strip:has(.build-strip-break) .build-strip-hint{display:none}}.build-strip .build-strip-close{min-height:var(--btn-h);min-width:var(--btn-h);padding:0}.confirm-bar{left:50%;top:var(--confirm-top);z-index:var(--z-banner);gap:var(--sp-2);pointer-events:auto;display:flex;position:absolute;transform:translate(-50%)}.confirm-bar .confirm-btn{width:var(--touch);height:var(--touch);min-width:var(--touch);min-height:var(--touch);background:var(--panel-solid);border-radius:50%;padding:0;box-shadow:0 2px 8px #00000073}.confirm-bar .confirm-btn.ok{background:var(--ok);border-color:var(--ok);color:var(--accent-fg)}.confirm-bar .confirm-btn:disabled{background:var(--panel-solid);border-color:var(--btn-border);color:var(--muted)}.chl-overlay{z-index:calc(var(--z-overlay) + 5);padding:calc(var(--safe-t) + var(--sp-4)) calc(var(--safe-r) + var(--sp-4)) calc(var(--safe-b) + var(--sp-4)) calc(var(--safe-l) + var(--sp-4));background:#0a0e08b8;place-items:center;display:grid;position:fixed;inset:0}.chl-scrim{cursor:default;background:0 0;border:0;padding:0;position:absolute;inset:0}.chl-dialog{background:var(--panel-solid);flex-direction:column;width:min(520px,100%);min-height:0;max-height:100%;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 40px #00000073}.chl-head{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--panel-border);display:flex}.chl-title{font-size:var(--fs-xl);margin:0;font-weight:600}.chl-body{overscroll-behavior:contain;padding:var(--sp-2) var(--sp-4) var(--sp-4);min-height:0;overflow-y:auto}.chl-body:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.chl-note{align-items:flex-start;gap:var(--sp-2);margin:var(--sp-3) 0;flex-direction:column;display:flex}.chl-note p{margin:0}.chl-list{margin:0;padding:0;list-style:none}.chl-entry{padding:var(--sp-3) 0}.chl-entry+.chl-entry{border-top:1px solid var(--panel-border)}.chl-entry-head{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.chl-version{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.chl-date{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;margin-left:auto}.chl-tag{padding:1px var(--sp-2);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;background:var(--accent);color:var(--accent-fg);border-radius:999px;font-weight:600}.chl-entry-title{margin:var(--sp-1) 0 var(--sp-2);font-size:var(--fs-lg);font-weight:600}.chl-items{padding-left:calc(1.25 * var(--sp-4));font-size:var(--fs-md);margin:0;line-height:1.45;list-style:outside}.chl-items li+li{margin-top:var(--sp-1)}.btn.chl-open{justify-content:center;align-items:center;gap:var(--sp-2);display:inline-flex}.chl-badge{align-items:center;gap:var(--sp-1);padding:1px var(--sp-2);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;background:var(--accent);color:var(--accent-fg);border-radius:999px;font-weight:600;display:inline-flex}.chl-badge-dot{background:currentColor;border-radius:50%;width:6px;height:6px}@media (width<=600px),(height<=420px){.chl-overlay{padding:calc(var(--safe-t) + var(--sp-2)) calc(var(--safe-r) + var(--sp-2)) calc(var(--safe-b) + var(--sp-2)) calc(var(--safe-l) + var(--sp-2))}.chl-dialog{height:100%}.chl-head{padding:var(--sp-2) var(--sp-3)}.chl-body{padding:var(--sp-1) var(--sp-3) var(--sp-3)}}.stg-overlay{z-index:calc(var(--z-overlay) + 4);padding:calc(var(--safe-t) + var(--sp-4)) calc(var(--safe-r) + var(--sp-4)) calc(var(--safe-b) + var(--sp-4)) calc(var(--safe-l) + var(--sp-4));background:#0a0e08b8;place-items:center;display:grid;position:fixed;inset:0}.stg-scrim{cursor:default;background:0 0;border:0;padding:0;position:absolute;inset:0}.stg-dialog,.panel.stg-dialog{background:var(--panel-solid);flex-direction:column;width:min(520px,100%);min-height:0;max-height:100%;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 40px #00000073}.stg-head{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--panel-border);display:flex}.stg-title{font-size:var(--fs-xl);margin:0;font-weight:600}.stg-body{overscroll-behavior:contain;padding:0 var(--sp-4) var(--sp-4);min-height:0;overflow-y:auto}.stg-body:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.stg-section{gap:var(--sp-2);padding:var(--sp-3) 0;border-bottom:1px solid var(--panel-border);flex-direction:column;display:flex}.stg-section:last-child{border-bottom:0}.stg-section-title{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0;font-weight:600}.stg-row{gap:var(--sp-1);font-size:var(--fs-md);flex-direction:column;display:flex}.stg-fieldset{border:0;min-width:0;margin:0;padding:0}.stg-legend{margin-bottom:var(--sp-1);padding:0}.stg-check{align-items:center;gap:var(--sp-2);min-height:var(--btn-h);cursor:pointer;display:flex}.stg-check input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin:0}.stg-check:has(input:disabled){cursor:default;color:var(--muted)}.stg-hint{font-size:var(--fs-sm);line-height:1.4}.stg-range{width:100%;min-height:var(--btn-h);accent-color:var(--accent);margin:0}.stg-seg,.stg-pair{gap:var(--sp-2);grid-template-columns:1fr 1fr;display:grid}.stg-seg .btn,.stg-pair .btn{min-height:var(--btn-h);font-variant-numeric:tabular-nums;justify-content:center}.btn.stg-danger{border-color:var(--bad);color:var(--bad)}.btn.stg-danger:disabled{border-color:var(--btn-border);color:inherit}.stg-row>.btn{align-self:flex-start}.stg-reset{gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--bad);border-radius:var(--radius);flex-direction:column;display:flex}.stg-reset-warning{font-size:var(--fs-sm);margin:0;line-height:1.4}.stg-input{min-height:var(--btn-h);padding:0 var(--sp-2);border:1px solid var(--btn-border);border-radius:var(--radius);background:var(--bg-deep);color:var(--fg);font:inherit;font-size:max(16px, var(--fs-md));letter-spacing:.1em}.stg-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.stg-error{font-size:var(--fs-sm);color:var(--bad)}@media (width<=560px){.stg-overlay{padding:calc(var(--safe-t) + var(--sp-2)) calc(var(--safe-r) + var(--sp-2)) calc(var(--safe-b) + var(--sp-2)) calc(var(--safe-l) + var(--sp-2))}.stg-dialog{height:100%}}.run-settings{right:calc(var(--safe-r) + var(--sp-2));bottom:var(--sp-2);z-index:var(--z-banner);position:absolute}.run-settings>.btn{background:var(--panel-solid)}@media (orientation:portrait) and (width<=700px){.shell:has(.shell-side-selection>*) .run-settings{display:none}}.shell:has(.supply-layer) .run-settings{display:none}.stg-readonly{margin:0 0 8px}.away-overlay{z-index:calc(var(--z-overlay) + 6);padding:calc(var(--safe-t) + var(--sp-4)) calc(var(--safe-r) + var(--sp-4)) calc(var(--safe-b) + var(--sp-4)) calc(var(--safe-l) + var(--sp-4));background:#0a0e08b8;place-items:center;display:grid;position:fixed;inset:0}.away-scrim{position:absolute;inset:0}.away-dialog{align-items:center;gap:var(--sp-2);width:min(360px,100%);max-height:100%;padding:var(--sp-4) var(--sp-4) calc(var(--sp-4) + var(--sp-1));text-align:center;background:var(--panel-solid);flex-direction:column;display:flex;position:relative;overflow-y:auto;box-shadow:0 12px 40px #00000073}.away-title{font-size:var(--fs-xl);margin:0;font-weight:600}.away-time,.away-note,.away-balance{font-size:var(--fs-md);margin:0}.away-amber{align-items:center;gap:var(--sp-3);margin:var(--sp-2) 0;padding:var(--sp-2) var(--sp-4);border-radius:var(--radius);background:#f4c96b14;border:1px solid #f4c96b59;display:inline-flex}.away-gem{background:linear-gradient(135deg,#f4c96b,#c98a2b);border-radius:3px;flex:none;width:18px;height:18px;display:inline-block;transform:rotate(45deg);box-shadow:0 0 10px #f4c96b8c}.away-amber-value{color:#f4c96b;font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.away-cap{color:var(--warn);font-size:var(--fs-sm)}.away-balance{font-size:var(--fs-sm)}.btn.away-collect{min-height:var(--touch);margin-top:var(--sp-2);font-size:var(--fs-lg);align-self:stretch;font-weight:600}.away-dialog:focus{outline:none}.away-research{align-self:stretch;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);text-align:left;background:#8fc46a0f;border:1px solid #8fc46a66;flex-direction:column;display:flex}.away-research-title{font-size:var(--fs-sm);color:var(--ok);margin:0;font-weight:600}.away-research-list{font-size:var(--fs-sm);flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.away-research-list li{align-items:center;gap:var(--sp-2);display:flex}.away-research-mark{background:var(--ok);clip-path:polygon(0 55%,18% 37%,40% 58%,82% 12%,100% 30%,40% 92%);flex:none;width:12px;height:12px}.hq-screen{--relic:#b48ef0;--relic-dim:#b48ef024}.relic-gem{clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:linear-gradient(160deg,#d9c4ff,#7a52c9);flex:none;width:12px;height:13px;display:inline-block}.relic-gem.lg{width:18px;height:20px}.hq-wallet{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.relic-count{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);background:var(--relic-dim);color:var(--relic);font-variant-numeric:tabular-nums;border:1px solid #b48ef073;border-radius:999px;font-weight:700;display:inline-flex}.hq-wallet .relic-count{font-size:var(--fs-lg)}.relic-price{font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:inline-flex}.hq-sections{gap:var(--sp-2);flex-direction:column;display:flex}.hq-subtabs{gap:var(--sp-1);border-bottom:1px solid var(--panel-border);display:flex}.hq-subtab{font:inherit;font-size:var(--fs-md);color:var(--muted);min-height:var(--btn-h);padding:0 var(--sp-4);cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-bottom:3px solid #0000;font-weight:600}.hq-subtab.on{color:var(--fg);border-bottom-color:var(--accent)}.hq-subtab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.rd-top{justify-content:space-between;align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.rd-slots{font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}.rd-list,.relic-list,.sector-miles,.relocate-lists{margin:0;padding:0;list-style:none}.rd-list,.relic-list{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.rd-card,.relic-card{gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);border:1px solid var(--panel-border);border-radius:var(--radius);background:#e6ecdf0a;flex-direction:column;min-width:0;display:flex}.rd-card.running{border-color:var(--ok);background:#8fc46a14}.rd-card.maxed{opacity:.8}.rd-head{align-items:center;gap:var(--sp-2);display:flex}.rd-name{flex:auto;min-width:0;font-weight:600}.rd-level{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.rd-desc{font-size:var(--fs-xs);margin:0;line-height:1.35}.rd-effect{gap:var(--sp-1);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;display:inline-flex}.rd-start-row,.rd-run{gap:var(--sp-1);flex-direction:column;margin-top:auto;display:flex}.btn.rd-start{justify-content:space-between;font-weight:600}.rd-meta{align-items:center;gap:var(--sp-2);font-variant-numeric:tabular-nums;display:inline-flex}.rd-time:before{content:"";vertical-align:-1px;border:2px solid;border-radius:50%;width:9px;height:9px;margin-right:4px;display:inline-block;box-shadow:inset 2px -2px 0 -1px}.rd-why{font-size:var(--fs-xs)}.rd-bar{background:#e6ecdf1f;border-radius:3px;height:6px;overflow:hidden}.rd-bar-fill{background:var(--ok);height:100%;transition:width .9s linear;display:block}.rd-left{font-size:var(--fs-sm);color:var(--ok);font-variant-numeric:tabular-nums}.btn.rd-rush,.btn.relic-buy{color:var(--relic);border-color:#b48ef08c;font-weight:600}.btn.primary.relic-buy{background:var(--relic);border-color:var(--relic);color:#1d1430}.btn.primary.relic-buy .relic-gem{background:linear-gradient(160deg,#f3ecff,#4b2f8a)}@media (prefers-reduced-motion:reduce){.rd-bar-fill{transition:none}}.relocate-block{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);background:#b48ef00d;border:1px dashed #b48ef073}.relocate-cycle{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;margin:0}.relocate-row{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.btn.relocate-open{gap:var(--sp-3);font-weight:600}.relocate-why{font-size:var(--fs-sm)}.relocate-backdrop{z-index:calc(var(--z-overlay) + 2);padding:calc(var(--safe-t) + var(--sp-4)) calc(var(--safe-r) + var(--sp-4)) calc(var(--safe-b) + var(--sp-4)) calc(var(--safe-l) + var(--sp-4));background:#0a0e0899;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.relocate-scrim{cursor:default;background:0 0;border:0;padding:0;position:absolute;inset:0}.relocate-dialog{gap:var(--sp-3);width:min(400px,100%);padding:var(--sp-4);background:var(--panel-solid);border-color:#b48ef08c;flex-direction:column;display:flex;position:relative;box-shadow:0 12px 40px #00000080}.relocate-title{font-size:var(--fs-lg);color:var(--relic);text-align:center;margin:0}.relocate-body{font-size:var(--fs-md);text-align:center;margin:0;line-height:1.4}.relocate-gain{justify-content:center;align-items:center;gap:var(--sp-2);font-size:var(--fs-xl);color:var(--relic);font-variant-numeric:tabular-nums;font-weight:700;display:inline-flex}.relocate-lists{gap:var(--sp-2);font-size:var(--fs-sm);flex-direction:column;line-height:1.4;display:flex}.relocate-lists li{gap:var(--sp-2);align-items:flex-start;display:flex}.relocate-mark{border-radius:50%;flex:none;width:14px;height:14px;margin-top:2px}.relocate-mark.bad{background:var(--bad);clip-path:polygon(20% 0,50% 30%,80% 0,100% 20%,70% 50%,100% 80%,80% 100%,50% 70%,20% 100%,0 80%,30% 50%,0 20%)}.relocate-mark.ok{background:var(--ok);clip-path:polygon(0 55%,18% 37%,40% 58%,82% 12%,100% 30%,40% 92%)}.relocate-actions{gap:var(--sp-2);display:flex}.relocate-actions .btn{min-height:var(--touch);flex:1 1 0}.relics{gap:var(--sp-3)}.relic-sub{font-size:var(--fs-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0}.relic-card .btn{margin-top:auto}.sector-card.owned{border-color:#8fc46a80}.sector-miles{gap:var(--sp-1);font-size:var(--fs-xs);flex-wrap:wrap;display:flex}.sector-miles li{padding:1px var(--sp-2);border:1px solid var(--panel-border);color:var(--muted);border-radius:999px}.sector-miles li.reached{border-color:var(--relic);color:var(--relic)}.sector-record{font-size:var(--fs-sm)}.sector-art{background:radial-gradient(circle,#d9c27a 0 3px,#6f9a45 4px);border:1px solid #00000080;border-radius:4px;flex:none;width:22px;height:22px}.sector-art[data-sector=sector_swamp]{background:radial-gradient(circle at 30% 35%,#3f7fa0 0 4px,#0000 5px),radial-gradient(circle at 70% 70%,#3f7fa0 0 3px,#0000 4px),#4d6b34}.sector-art[data-sector=sector_temple]{background:linear-gradient(#8c8478,#8c8478) 50% 35%/10px 6px no-repeat,radial-gradient(circle at 50% 80%,#d9c27a 0 3px,#0000 4px),#5d7a3c}.perk-chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.btn.perk-chip{gap:var(--sp-2)}.btn.perk-chip.on{background:var(--relic);border-color:var(--relic);color:#1d1430}.perk-chip-mark{border:2px solid;border-radius:2px;width:10px;height:10px}.perk-chip.on .perk-chip-mark{background:currentColor}.sector-picker{border:0;min-width:0;margin:0;padding:0}.sector-picker-label{margin-bottom:var(--sp-1);font-size:var(--fs-sm);padding:0}.sector-options{gap:var(--sp-2);flex-wrap:wrap;flex:auto;display:flex}.sector-opt{font:inherit;color:var(--fg);align-items:center;gap:var(--sp-2);min-height:var(--btn-h);padding:var(--sp-1) var(--sp-3);border:2px solid var(--btn-border);border-radius:var(--radius);background:var(--btn);cursor:pointer;touch-action:manipulation;text-align:left;display:inline-flex}.sector-opt.on{border-color:var(--accent);background:#d9c27a1f}.sector-opt:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sector-opt-text{flex-direction:column;line-height:1.2;display:flex}.sector-opt-name{font-size:var(--fs-sm);font-weight:600}.sector-opt-rec{font-size:var(--fs-xs)}@media (width<=600px){.rd-list,.relic-list{grid-template-columns:minmax(0,1fr)}.hq-subtab{flex:1 1 0}.sector-opt{flex:140px}.hq-wallet .relic-count,.hq-amber{font-size:var(--fs-md)}}.screen-card.hq-card{width:min(880px,100%);padding:var(--sp-4);gap:var(--sp-3);background:var(--panel-solid);text-align:left;align-items:stretch;margin:auto;box-shadow:0 12px 40px #00000073}.hq-head{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.hq-head-title{align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.hq-record{font-size:var(--fs-sm)}.hq-amber{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);font-size:var(--fs-lg);color:var(--accent);font-variant-numeric:tabular-nums;background:#d9c27a14;border:1px solid #d9c27a73;border-radius:999px;font-weight:700;display:inline-flex}.hq-clearing{gap:var(--sp-3);padding:var(--sp-4) var(--sp-3) var(--sp-3);border-radius:calc(2 * var(--radius));background:radial-gradient(70% 90% at 50% 60%,#6f9a45 0%,#557d34 55%,#0000 80%),radial-gradient(circle at 12% 20%,#ffffff0f 0 2px,#0000 3px),radial-gradient(circle at 78% 30%,#ffffff0f 0 2px,#0000 3px),#2d4a1e;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;box-shadow:inset 0 0 0 1px #00000059,inset 0 -10px 30px #00000040}.hq-bld{font:inherit;color:var(--fg);align-items:center;gap:var(--sp-1);min-height:var(--touch);padding:var(--sp-3) var(--sp-2) var(--sp-2);border-radius:calc(2 * var(--radius));cursor:pointer;touch-action:manipulation;background:#141d108c;border:2px solid #0000;flex-direction:column;transition:transform .12s ease-out;display:flex;position:relative}@media (hover:hover){.hq-bld:hover:not(.on){background:#141d10b3}}.hq-bld:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hq-bld.on{border-color:var(--accent);background:#141d10d1;transform:translateY(-2px)}.hq-bld-name{font-size:var(--fs-md);text-align:center;font-weight:600;line-height:1.2}.hq-bld-level{font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}.hq-badge{padding:1px var(--sp-2);background:var(--ok);color:#10200a;font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;font-weight:700;animation:1.6s ease-in-out infinite hq-badge-pulse;position:absolute;top:-8px;right:-6px;box-shadow:0 2px 6px #0006}@keyframes hq-badge-pulse{50%{transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.hq-badge{animation:none}.hq-bld{transition:none}}.hq-bld-art{flex:none;width:56px;height:44px;position:relative}.hq-bld-art:before,.hq-bld-art:after{content:"";position:absolute}.hq-bld-art[data-kind=command_center]:before{background:linear-gradient(#d9c27a,#a88f4c);border-radius:3px 3px 0 0;height:30px;bottom:0;left:12px;right:12px;box-shadow:inset 0 -8px #0003}.hq-bld-art[data-kind=command_center]:after{background:var(--bad);clip-path:polygon(0 0,100% 30%,0 70%);border-left:2px solid #3a2a14;width:14px;height:10px;top:0;left:27px}.hq-bld-art[data-kind=engineering]:before{background:linear-gradient(#8c8c86,#66665f);height:22px;bottom:0;left:8px;right:8px;box-shadow:inset 0 0 0 3px #45453f}.hq-bld-art[data-kind=engineering]:after{clip-path:polygon(50% 0,100% 100%,0 100%);background:#8a6a3c;height:18px;bottom:22px;left:4px;right:4px}.hq-bld-art[data-kind=arsenal]:before{background:linear-gradient(#7d8a5a,#5a6640);border-radius:22px 22px 2px 2px;height:24px;bottom:0;left:6px;right:6px;box-shadow:inset 0 -6px #00000040}.hq-bld-art[data-kind=arsenal]:after{transform-origin:0;background:#3b4130;border-radius:3px;width:26px;height:6px;bottom:18px;left:28px;transform:rotate(-24deg)}.hq-panel{gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--panel-border);border-radius:var(--radius);background:#e6ecdf08;flex-direction:column;display:flex}.hq-panel-head{align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;display:flex}.hq-panel-title{font-size:var(--fs-lg);margin:0}.hq-panel-level{font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.hq-desc{font-size:var(--fs-sm);margin:0}.hq-panel-grid{gap:var(--sp-3);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.hq-col{gap:var(--sp-3);flex-direction:column;min-width:0;display:flex}.hq-block{gap:var(--sp-1);flex-direction:column;display:flex}.hq-stats,.hq-unlock-list,.hq-tree,.hq-tree-kids{margin:0;padding:0;list-style:none}.hq-stats{flex-direction:column;gap:2px;display:flex}.hq-stat{justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-sm);border-bottom:1px solid #e6ecdf0f;padding:3px 0;display:flex}.hq-stat-vals{gap:var(--sp-1);white-space:nowrap;font-variant-numeric:tabular-nums;display:inline-flex}.hq-stat-now,.hq-arrow{color:var(--muted)}.hq-stat-next{color:var(--ok);font-weight:600}.hq-buybox{gap:var(--sp-2)}.btn.hq-buy{min-height:var(--touch);font-size:var(--fs-md);justify-content:space-between;font-weight:600}.hq-price{font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:inline-flex}.btn.hq-buymax{font-variant-numeric:tabular-nums}.hq-afford{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);display:flex}.hq-afford-bar{background:#e6ecdf1f;border-radius:2px;flex:auto;height:4px;overflow:hidden}.hq-afford-fill{background:var(--accent);height:100%;display:block}.hq-maxed{padding:var(--sp-2);border:1px dashed var(--panel-border);border-radius:var(--radius);text-align:center;color:var(--ok);font-weight:600}.hq-unlock-list{flex-direction:column;gap:2px;display:flex}.hq-unlock{align-items:center;gap:var(--sp-2);padding:3px var(--sp-2);border-radius:var(--radius);font-size:var(--fs-sm);color:var(--muted);display:flex}.hq-unlock-mark{border:2px solid;border-radius:50%;flex:none;width:10px;height:10px}.hq-unlock.reached{color:var(--fg)}.hq-unlock.reached .hq-unlock-mark{border-color:var(--ok);background:var(--ok)}.hq-unlock.next{color:var(--accent);background:#d9c27a1a;font-weight:600}.hq-arsenal{gap:var(--sp-2)}.hq-tree,.hq-tree-node{gap:var(--sp-2);flex-direction:column;display:flex}.hq-tree-kids{gap:var(--sp-2);padding-top:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid;position:relative}.hq-tree{--link:#e6ecdf4d}.hq-tree-kids:before{content:"";width:2px;height:var(--sp-2);background:var(--link);position:absolute;top:0;left:calc(50% - 1px)}.hq-tree-kids>.hq-tree-node{position:relative}.hq-tree-kids>.hq-tree-node:before{content:"";top:calc(-1 * var(--sp-1));left:calc(-1 * var(--sp-1));right:calc(-1 * var(--sp-1));background:var(--link);height:2px;position:absolute}.hq-tree-kids>.hq-tree-node:first-child:before{left:50%}.hq-tree-kids>.hq-tree-node:last-child:before{right:50%}.hq-tree-kids>.hq-tree-node:after{content:"";top:calc(-1 * var(--sp-1));width:2px;height:var(--sp-1);background:var(--link);position:absolute;left:calc(50% - 1px)}.hq-tower{gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);border:1px solid var(--panel-border);border-radius:var(--radius);background:#e6ecdf0a;flex-direction:column;display:flex}.hq-tree>.hq-tree-node>.hq-tower{align-self:center;width:min(260px,100%)}.hq-tower.owned,.hq-tower.start{border-color:#8fc46a80}.hq-tower.available{border-color:var(--accent)}.hq-tower.locked{opacity:.7;border-style:dashed}.hq-tower-head{align-items:center;gap:var(--sp-2);display:flex}.hq-tower-name{font-weight:600}.hq-tower-desc{font-size:var(--fs-xs);line-height:1.35}.hq-owned{font-size:var(--fs-sm);color:var(--ok)}.btn.hq-unlock-btn{justify-content:space-between}.hq-tower-locked{justify-content:space-between;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.hq-actions{bottom:calc(-1 * var(--sp-4));gap:var(--sp-2);margin:0 calc(-1 * var(--sp-4)) calc(-1 * var(--sp-4));padding:var(--sp-3) var(--sp-4) var(--sp-4);background:var(--panel-solid);border-top:1px solid var(--panel-border);border-radius:0 0 var(--radius) var(--radius);display:flex;position:sticky}.hq-actions .scr-btn{flex:1 1 0}.hq-actions .scr-btn-lg{flex:2 1 0}@media (width<=600px){.shell-screen.hq-screen{padding:calc(var(--safe-t) + var(--sp-2)) calc(var(--safe-r) + var(--sp-2)) calc(var(--safe-b) + var(--sp-2)) calc(var(--safe-l) + var(--sp-2))}.screen-card.hq-card{padding:var(--sp-3)}.hq-actions{bottom:calc(-1 * var(--sp-3));margin:0 calc(-1 * var(--sp-3)) calc(-1 * var(--sp-3));padding:var(--sp-2) var(--sp-3) calc(var(--sp-3) + var(--safe-b))}.hq-clearing{gap:var(--sp-2);padding:var(--sp-3) var(--sp-2) var(--sp-2)}.hq-bld{padding:var(--sp-2) var(--sp-1)}.hq-bld-name{font-size:var(--fs-sm)}.hq-bld-art{margin:-4px 0;transform:scale(.8)}.hq-panel-grid{grid-template-columns:minmax(0,1fr)}.hq-tree>.hq-tree-node>.hq-tower{align-self:stretch;width:auto}.hq-tree-kids{padding:0 0 0 var(--sp-4);grid-template-columns:minmax(0,1fr)}.hq-tree-kids:before{display:none}.hq-tree-kids>.hq-tree-node:before,.hq-tree-kids>.hq-tree-node:first-child:before,.hq-tree-kids>.hq-tree-node:last-child:before{top:1.6em;left:calc(var(--sp-1) - var(--sp-4));width:calc(var(--sp-4) - var(--sp-1));right:auto}.hq-tree-kids>.hq-tree-node:after{top:calc(-1 * var(--sp-2));left:calc(var(--sp-1) - var(--sp-4));height:calc(100% + var(--sp-2))}.hq-tree-kids>.hq-tree-node:last-child:after{height:calc(1.6em + var(--sp-2) + 2px)}}@media (height<=420px){.screen-card.hq-card{padding:var(--sp-3);gap:var(--sp-2)}.hq-actions{bottom:calc(-1 * var(--sp-3));margin:0 calc(-1 * var(--sp-3)) calc(-1 * var(--sp-3));padding:var(--sp-2) var(--sp-3) var(--sp-3)}.hq-clearing{padding:var(--sp-2)}.hq-bld-art{display:none}}.screen-card.scr-card{width:min(360px,100%);padding:calc(1.5 * var(--sp-4)) var(--sp-4);gap:var(--sp-3);text-align:center;background:var(--panel-solid);margin:auto;box-shadow:0 12px 40px #00000073}@media (height<=420px){.screen-card.scr-card{width:min(480px,100%);padding:var(--sp-3);gap:var(--sp-2)}.scr-emblem{display:none}.scr-actions{flex-direction:row}.btn.scr-btn-lg{min-height:var(--touch)}}.scr-emblem{border:4px solid var(--muted);background:radial-gradient(circle, var(--core) 0 30%, transparent 32%), var(--bg);border-radius:12px;width:56px;height:56px}.scr-tagline{font-size:var(--fs-md);margin:0}.scr-bad{color:var(--bad)}.scr-headline{font-size:var(--fs-lg);font-weight:600}.scr-stats{gap:var(--sp-2);grid-template-columns:repeat(3,1fr);width:100%;margin:0;display:grid}.scr-stat{padding:var(--sp-2) var(--sp-1);border:1px solid var(--panel-border);border-radius:var(--radius);background:var(--btn);flex-direction:column;gap:2px;min-width:0;display:flex}.scr-stat dt{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.scr-stat dd{font-size:var(--fs-lg);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-weight:600}.scr-seed{font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.scr-actions{gap:var(--sp-2);flex-direction:column;width:100%;display:flex}.btn.scr-btn{width:100%;min-height:var(--touch);font-size:var(--fs-md)}.btn.scr-btn-lg{min-height:calc(var(--touch) + var(--sp-2));font-size:var(--fs-lg);font-weight:600}.scr-footer{justify-content:center;gap:var(--sp-1) var(--sp-3);font-size:var(--fs-xs);flex-wrap:wrap;display:flex}.scr-hint{top:var(--sp-2);width:max-content;max-width:calc(100% - 2 * var(--sp-3));z-index:var(--z-banner);align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-3);background:var(--panel);border:1px solid var(--accent);border-radius:var(--radius);font-size:var(--fs-sm);display:flex;position:absolute;left:50%;transform:translate(-50%)}.scr-hint.bottom{top:auto;bottom:var(--sp-3)}.scr-hint-text{min-width:0}.scr-hint>.btn{white-space:nowrap;flex:none}@media (width<=700px){.scr-hint.bottom{bottom:calc(var(--sp-3) + var(--btn-h) + var(--sp-2))}}.scr-warn{color:var(--warn)}.scr-amber{gap:var(--sp-1);width:100%;padding:var(--sp-3);border:1px solid var(--accent);border-radius:var(--radius);background:#d9c27a14;flex-direction:column;display:flex}.scr-amber-total{justify-content:center;align-items:center;gap:var(--sp-2);font-size:var(--fs-xl);color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700;display:inline-flex}.scr-amber-total .amber-gem{transition:transform .3s ease-out}.scr-amber-total.counting .amber-gem{transform:rotate(225deg)scale(1.2)}@media (prefers-reduced-motion:reduce){.scr-amber-total .amber-gem{transition:none}}.scr-amber-lines{justify-content:center;gap:var(--sp-1) var(--sp-3);font-size:var(--fs-sm);flex-wrap:wrap;margin:0;display:flex}.scr-amber-lines div{gap:var(--sp-1);display:flex}.scr-amber-lines dt{color:var(--muted)}.scr-amber-lines dd{font-variant-numeric:tabular-nums;margin:0}.scr-record{color:var(--ok);font-size:var(--fs-sm);font-weight:600}.scr-cause{font-size:var(--fs-sm)}.scr-sum-main,.scr-sum-side{display:contents}@media (height<=420px){.screen-card.scr-card.scr-summary{align-items:start;gap:var(--sp-3);grid-template-columns:1fr 1fr;width:min(600px,100%);display:grid}.scr-summary .scr-sum-main,.scr-summary .scr-sum-side{align-items:center;gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.scr-summary .scr-actions{flex-direction:column}.scr-summary .scr-amber{padding:var(--sp-2)}.scr-summary .scr-amber-total{font-size:var(--fs-lg)}}.shell{background:var(--bg-deep);height:100dvh;color:var(--fg);font-size:var(--fs-md);pointer-events:auto;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid;position:fixed;inset:0}.shell-top{padding:calc(var(--safe-t) + var(--sp-2)) calc(var(--safe-r) + var(--sp-3)) var(--sp-2) calc(var(--safe-l) + var(--sp-3));background:var(--panel-solid);border-bottom:1px solid var(--panel-border);min-height:48px;z-index:var(--z-map-ui);grid-row:1}.shell-main{grid-row:2;grid-template-columns:minmax(0, 1fr) var(--side-w);min-height:0;display:grid;position:relative;overflow:hidden}.shell-map{background:var(--bg);min-width:0;min-height:0;position:relative;overflow:hidden}.shell-canvas,.shell-canvas>#game{position:absolute;inset:0}.shell-map-ui{pointer-events:none;z-index:var(--z-map-ui);position:absolute;inset:0}.shell-map-ui>*{pointer-events:auto}.shell-side{gap:var(--sp-2);padding:var(--sp-2) calc(var(--safe-r) + var(--sp-2)) var(--sp-2) var(--sp-2);background:var(--panel-solid);border-left:1px solid var(--panel-border);min-height:0;z-index:var(--z-sheet);flex-direction:column;display:flex;overflow-y:auto}.shell .shell-side-toggle{display:none}.shell-bottom{padding:var(--sp-2) calc(var(--safe-r) + var(--sp-3)) calc(var(--safe-b) + var(--sp-2)) calc(var(--safe-l) + var(--sp-3));background:var(--panel-solid);border-top:1px solid var(--panel-border);z-index:var(--z-map-ui);grid-row:3}.shell-screen{z-index:var(--z-overlay);padding:calc(var(--safe-t) + var(--sp-4)) calc(var(--safe-r) + var(--sp-4)) calc(var(--safe-b) + var(--sp-4)) calc(var(--safe-l) + var(--sp-4));background:#0a0e08b8;place-items:center;display:grid;position:absolute;inset:0;overflow-y:auto}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:var(--sp-2) var(--sp-3)}.panel-title{margin:0 0 var(--sp-1);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.muted{color:var(--muted)}.row{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.btn{font:inherit;font-size:var(--fs-sm);color:var(--fg);background:var(--btn);border:1px solid var(--btn-border);border-radius:var(--radius);min-height:var(--btn-h);min-width:var(--btn-h);padding:0 var(--sp-3);cursor:pointer;justify-content:center;align-items:center;gap:var(--sp-1);touch-action:manipulation;display:inline-flex}@media (hover:hover){.btn:hover:not(:disabled):not(.on):not(.primary){background:var(--btn-hover)}.btn.on:hover:not(:disabled),.btn.primary:hover:not(:disabled){filter:brightness(1.08)}}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn.on,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn:disabled{opacity:.4;cursor:default}.stat{font-variant-numeric:tabular-nums;white-space:nowrap}.pause-banner{top:var(--sp-2);max-width:calc(100% - 2 * var(--sp-3));z-index:var(--z-banner);align-items:center;gap:var(--sp-3);padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-3);background:var(--panel);border:1px solid var(--warn);border-radius:var(--radius);font-size:var(--fs-sm);display:flex;position:absolute;left:50%;transform:translate(-50%)}@media (orientation:portrait) and (width<=700px){.shell-main{grid-template-columns:minmax(0,1fr)}.shell-side{max-height:45%;padding:var(--sp-2) calc(var(--safe-r) + var(--sp-2)) var(--sp-2) calc(var(--safe-l) + var(--sp-2));border-left:0;border-top:1px solid var(--panel-border);background:var(--panel);pointer-events:none;position:absolute;bottom:0;left:0;right:0}.shell-side>*{pointer-events:auto}.shell-side:not(:has(.shell-side-selection>*)){display:none}.shell-side-wave{display:none}.shell .top-bar-wave{display:block}}@media (orientation:landscape) and (height<=500px){.shell-top{padding-top:calc(var(--safe-t) + var(--sp-1));padding-bottom:var(--sp-1);min-height:40px}.shell-bottom{padding-top:var(--sp-1);padding-bottom:calc(var(--safe-b) + var(--sp-1))}.shell-main{grid-template-columns:minmax(0,1fr)}.shell-side{width:min(var(--side-w), 45%);transition:transform .16s ease-out;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 12px #00000059}.shell[data-side=open] .shell-side{transform:none}.shell .shell-side-toggle{top:var(--sp-2);right:calc(var(--safe-r) + var(--sp-2));z-index:var(--z-sheet);display:inline-flex;position:absolute}.shell[data-side=open] .shell-side-toggle{right:calc(min(var(--side-w), 45%) + var(--sp-2))}}.top-bar-wave{text-overflow:ellipsis;font-size:var(--fs-sm);flex-basis:100%;display:none;overflow:hidden}.top-bar-title{font-size:var(--fs-sm);letter-spacing:.12em;text-transform:uppercase;margin-right:var(--sp-2)}.build-bar{flex-wrap:nowrap;justify-content:space-between}.build-bar-tools{scrollbar-width:none;touch-action:pan-x;flex-wrap:nowrap;flex:auto;min-width:0;overflow-x:auto}.build-bar-tools>.btn,.build-bar-run>.btn{white-space:nowrap;flex:none}.build-bar-run{gap:var(--sp-1);flex-wrap:nowrap;flex:none}.toasts{left:50%;bottom:var(--sp-3);z-index:var(--z-toast);pointer-events:none;position:absolute;transform:translate(-50%)}.toast{font-size:var(--fs-sm);border-color:var(--bad)}.catchup-overlay{z-index:var(--z-overlay);background:#0a0e0899;place-items:center;display:grid;position:absolute;inset:0}.screen-card{align-items:center;gap:var(--sp-3);padding:var(--sp-4) calc(2 * var(--sp-4));flex-direction:column;max-width:100%;display:flex}.screen-title{font-size:var(--fs-xl);letter-spacing:.12em;text-transform:uppercase;margin:0}@media (width<=700px){.top-bar-title{display:none}}@media (prefers-reduced-motion:reduce){.shell-side{transition:none}}
