:root{--c-ink-950:#090c0a;--c-ink-900:#0f1411;--c-ink-800:#161d18;--c-ink-700:#1f2822;--c-ink-600:#29342c;--c-ink-500:#384639;--c-ink-400:#4d5d4c;--c-olive-800:#262f1c;--c-olive-600:#3d4a2a;--c-olive-400:#6b7d45;--c-olive-200:#a9b77e;--c-white:#fff;--c-sand-50:#fbf7ec;--c-sand-100:#efe7d3;--c-sand-300:#c9bfa6;--c-sand-500:#978e78;--c-black:#000;--c-accent:#2fd1a5;--c-accent-strong:#1fb38b;--c-accent-ink:#04241b;--c-gold:#ffcf3f;--c-gold-ink:#241b02;--c-danger:#ef4a3c;--c-danger-deep:#8e1a12;--c-success:#5fd06f;--c-info:#6fc3ff;--c-amber:#ffc21a;--c-common:#a3a9b0;--c-uncommon:#5cc46a;--c-rare:#4ea3f0;--c-epic:#b46be0;--c-tree-assault:#ef5a4a;--c-tree-survival:#5fd06f;--c-tree-tactics:#5aa0f0;--c-tree-general:#d9c27a;--c-boss-a:#ff7a4a;--c-boss-b:#b8312a;--c-boss-c:#ff4a4a;--c-boss-d:#7f1212;--c-armor:#92b8e0;--c-dash:#7fd8ff;--c-dash-ready:#c4f6ff;--c-hostage:#7fe0ff;--c-radio:#9fe6ff;--c-blood:#96080f;--c-perf:#b8ffd9;--c-tile-hi:#8b9096;--c-tile-lo:#5d6268;--bg:var(--c-ink-900);--surface:var(--c-ink-800);--surface-raised:var(--c-ink-700);--surface-sunken:var(--c-ink-950);--line:var(--c-ink-500);--line-strong:var(--c-ink-400);--text:var(--c-sand-100);--text-strong:var(--c-sand-50);--muted:var(--c-sand-300);--faint:var(--c-sand-500);--team:var(--c-accent);--danger:var(--c-danger);--warn:var(--c-gold);--hud-btn-bg:#0c100db8;--hud-btn-line:#ffffffbf;--hud-text:#fff;--hud-panel:#0c100db3;--hud-heal-bg:#8e1a12d1;--hud-shadow:0 0 3px #000000f2, 0 1px 2px #000000e6;--player-ring:var(--c-accent);--player-ring-outline:#090c0ae6;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Bahnschrift", "DIN Alternate", "Roboto Condensed", "sans-serif-condensed", "Arial Narrow", system-ui, sans-serif;--font-mono:ui-monospace, Menlo, Consolas, monospace;--fs-xs:14px;--fs-sm:15px;--fs-md:17px;--fs-lg:20px;--fs-xl:24px;--fs-2xl:30px;--fs-3xl:40px;--fs-hero:52px;--fs-debug:11px;--fw-regular:500;--fw-bold:700;--fw-heavy:800;--fw-black:900;--lh-tight:1.15;--lh-body:1.4;--track-caps:.08em;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:22px;--r-pill:999px;--bw:2px;--bw-thick:3px;--shadow-plate:0 4px 0 #00000073;--shadow-plate-sm:0 2px 0 #00000073;--shadow-lift:0 10px 28px #00000080;--shadow-text:0 2px 0 #0000008c;--shadow-glow-accent:0 0 0 3px #2fd1a559;--dur-fast:.15s;--dur-med:.2s;--dur-slow:.25s;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-in-out:cubic-bezier(.45, 0, .25, 1);--ease-pop:cubic-bezier(.3, 1.5, .5, 1);--z-hud:10;--z-hud-top:12;--z-bag:15;--z-menu:20;--z-toast:30;--z-dialog:40;--z-overlay:50;--z-hint:70;--z-debug:80;--z-error:100;--tap-min:48px;--tap-primary:64px;--tap-hud:72px;--icon-sm:18px;--icon-md:24px;--icon-lg:32px;--safe-t:max(10px, env(safe-area-inset-top));--safe-r:max(12px, env(safe-area-inset-right));--safe-b:max(10px, env(safe-area-inset-bottom));--safe-l:max(12px, env(safe-area-inset-left))}*{box-sizing:border-box}html,body{background:var(--bg);width:100%;height:100%;color:var(--text);font-family:var(--font-ui);font-size:var(--fs-sm);line-height:var(--lh-body);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none;-webkit-font-smoothing:antialiased;margin:0;padding:0;overflow:hidden}#app{touch-action:none;--hud-scale:1;position:fixed;inset:0}#game-canvas{touch-action:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}#input-layer{touch-action:none;position:absolute;inset:0}.input-mouse #input-layer{cursor:none}#ui-root{pointer-events:none;position:absolute;inset:0}button{font-family:var(--font-ui);-webkit-tap-highlight-color:transparent}button:focus-visible{outline:var(--bw-thick) solid var(--c-accent);outline-offset:2px}.ico{flex:none;justify-content:center;align-items:center;line-height:0;display:inline-flex}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.icon .fill{fill:currentColor;stroke:none}h1,h2,h3{font-family:var(--font-display);font-weight:var(--fw-black);line-height:var(--lh-tight);letter-spacing:.02em;margin:0}.title{font-size:var(--fs-hero);color:var(--text-strong);text-transform:uppercase;text-shadow:var(--shadow-text)}.subtitle{color:var(--muted);font-size:var(--fs-md)}.section-label{font-family:var(--font-display);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--warn)}.hint{font-size:var(--fs-xs);color:var(--muted)}.lost,.diff.worse{color:var(--danger)}.diff.better{color:var(--c-success)}@keyframes ui-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ui-pop{0%{transform:scale(1.5)}to{transform:scale(1)}}@keyframes ui-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--c-gold) 55%, transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--c-gold) 0%, transparent)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.screen{padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);pointer-events:auto;background:color-mix(in srgb, var(--c-ink-950) 55%, transparent);touch-action:none;z-index:var(--z-menu);justify-content:center;align-items:center;display:none;position:absolute;inset:0}.screen.on{animation:ui-fade-in var(--dur-med) var(--ease-out);display:flex}.screen.menu{background:radial-gradient(ellipse at 30% 20%, color-mix(in srgb, var(--c-olive-600) 45%, transparent) 0%, transparent 60%), radial-gradient(ellipse at center, color-mix(in srgb, var(--c-ink-800) 70%, transparent) 0%, color-mix(in srgb, var(--c-ink-950) 94%, transparent) 100%)}.panel{background:color-mix(in srgb, var(--surface) 95%, transparent);border:var(--bw) solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-plate), var(--shadow-lift);padding:var(--sp-5) var(--sp-6);gap:var(--sp-3);text-align:center;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;flex-direction:column;align-items:stretch;min-width:260px;max-width:min(92vw,460px);max-height:100%;display:flex;position:relative;overflow:auto}.screen.on>.panel{animation:ui-fade-in var(--dur-slow) var(--ease-out)}.panel.wide{text-align:left;width:min(96vw,980px);max-width:min(96vw,980px)}.screen h2{font-size:var(--fs-2xl);text-transform:uppercase}.screen h2.kia,.end-title.kia{color:var(--danger)}.screen h2.cleared,.end-title.cleared{color:var(--team)}.screen-head{align-items:center;gap:var(--sp-3);min-height:var(--tap-min);flex:none;display:flex}.screen-head .screen-title{min-width:0;font-size:var(--fs-2xl);text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;text-align:left;flex:auto;overflow:hidden}.head-right{align-items:center;gap:var(--sp-2);flex:none;display:flex}.head-right:empty{display:none}.nav-btn{justify-content:center;align-items:center;gap:var(--sp-1);min-width:var(--tap-min);min-height:var(--tap-min);padding:0 var(--sp-3) 0 var(--sp-2);border-radius:var(--r-md);border:var(--bw) solid var(--line-strong);background:var(--surface-raised);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-bold);cursor:pointer;touch-action:manipulation;box-shadow:var(--shadow-plate-sm);transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);flex:none;display:inline-flex;position:relative}.nav-btn.icon-only{width:var(--tap-min);padding:0}.nav-btn:active{box-shadow:none;transform:translateY(2px)}.mbtn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:var(--tap-min);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);border:var(--bw) solid var(--line-strong);background:var(--surface-raised);color:var(--text);font-size:var(--fs-md);font-weight:var(--fw-heavy);line-height:var(--lh-tight);cursor:pointer;touch-action:manipulation;box-shadow:0 3px 0 var(--c-ink-950);transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);display:inline-flex;position:relative}.mbtn:active{box-shadow:0 1px 0 var(--c-ink-950);transform:translateY(2px)}.mbtn.primary{background:var(--c-accent);border-color:var(--c-accent-strong);color:var(--c-accent-ink);box-shadow:0 4px 0 color-mix(in srgb, var(--c-accent-strong) 55%, var(--c-black))}.mbtn.primary:active{box-shadow:0 1px 0 color-mix(in srgb, var(--c-accent-strong) 55%, var(--c-black))}.mbtn.big{min-height:var(--tap-primary);font-size:var(--fs-lg);padding:var(--sp-2) var(--sp-5)}.mbtn.danger,.mbtn.armed{background:color-mix(in srgb, var(--c-danger) 22%, var(--surface-raised));border-color:var(--danger)}.mbtn:disabled,.nav-btn:disabled,.tile:disabled,.chip-btn:disabled{opacity:.45;cursor:default;transform:none}.mbtn.loading{opacity:.75;cursor:progress}.mbtn.locked{opacity:.5}.btn-text{text-align:left;flex-direction:column;align-items:flex-start;min-width:0;display:flex}.btn-label{white-space:nowrap}.btn-sub{font-size:var(--fs-xs);font-weight:var(--fw-bold);opacity:.85;white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.btn-sub:empty{display:none}.btn-row{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;display:flex}.btn-row .mbtn{flex:120px}.action-bar{gap:var(--sp-2);flex-wrap:wrap;flex:none;justify-content:flex-end;display:flex}.action-bar .mbtn{flex:0 auto}.action-bar .mbtn.primary{order:10;min-width:180px}.chip-btn,.filter-chip,.rarity-chip,.tab{justify-content:center;align-items:center;gap:var(--sp-1);min-height:var(--tap-min);min-width:var(--tap-min);padding:0 var(--sp-3);border-radius:var(--r-pill);border:var(--bw) solid var(--line);background:var(--surface-raised);color:var(--text);font-size:var(--fs-xs);font-weight:var(--fw-bold);white-space:nowrap;cursor:pointer;touch-action:manipulation;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);flex:none;display:inline-flex;position:relative}.chip-btn:active,.filter-chip:active,.rarity-chip:active,.tab:active{transform:scale(.97)}.filter-chip.selected,.rarity-chip.selected,.tab.selected{border-color:var(--team);background:color-mix(in srgb, var(--team) 22%, var(--surface-raised));color:var(--text-strong)}.rarity-chip:not(.rarity-all){border-color:color-mix(in srgb, var(--rarity) 70%, transparent);color:var(--rarity)}.rarity-chip.selected:not(.rarity-all){background:color-mix(in srgb, var(--rarity) 24%, var(--surface-raised));border-color:var(--rarity)}.tab-row{gap:var(--sp-2);touch-action:pan-x;scrollbar-width:none;flex:none;display:flex;overflow-x:auto}.tab{border-radius:var(--r-md) var(--r-md) var(--r-sm) var(--r-sm);font-size:var(--fs-sm);padding:0 var(--sp-4)}.filter-row{gap:var(--sp-2);touch-action:pan-x;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:none;display:flex;overflow-x:auto}.tile{justify-content:center;align-items:center;gap:var(--sp-1);min-height:var(--tap-primary);padding:var(--sp-2);border-radius:var(--r-md);border:var(--bw) solid var(--line-strong);background:var(--surface-raised);color:var(--text);font-size:var(--fs-xs);font-weight:var(--fw-heavy);cursor:pointer;touch-action:manipulation;box-shadow:0 3px 0 var(--c-ink-950);transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);flex-direction:column;display:flex;position:relative}.tile .btn-text{align-items:center}.tile:active{box-shadow:0 1px 0 var(--c-ink-950);transform:translateY(2px)}.tile .ico{color:var(--c-olive-200)}.tile.locked{opacity:.55}.tile.attention{border-color:var(--warn);animation:ui-pulse 1.6s var(--ease-in-out) infinite}.tile.attention .ico{color:var(--warn)}.badge-count{min-width:24px;height:24px;padding:0 var(--sp-1);border-radius:var(--r-pill);background:var(--c-gold);color:var(--c-gold-ink);font-size:var(--fs-xs);font-weight:var(--fw-black);text-align:center;box-shadow:0 0 0 var(--bw) var(--c-ink-950);pointer-events:none;animation:ui-pop var(--dur-slow) var(--ease-pop);line-height:24px;position:absolute;top:-8px;right:-8px}.level-badge{min-width:46px;padding:2px var(--sp-2);border-radius:var(--r-sm);background:var(--warn);color:var(--c-gold-ink);font-family:var(--font-display);font-size:var(--fs-xs);font-weight:var(--fw-black);text-align:center;font-variant-numeric:tabular-nums;flex:none}.level-badge.up{animation:ui-pop .5s var(--ease-out)}.credits-label{align-items:center;gap:var(--sp-1);font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-black);color:var(--warn);white-space:nowrap;font-variant-numeric:tabular-nums;display:inline-flex}.new-badge{color:var(--warn);font-weight:var(--fw-heavy)}.stats{gap:var(--sp-1) var(--sp-4);font-size:var(--fs-sm);text-align:left;grid-template-columns:auto auto;display:grid}.stats .v{text-align:right;font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.item-icon{border-radius:var(--r-sm);background-color:color-mix(in srgb, var(--rarity,var(--c-common)) 14%, var(--surface-sunken));width:56px;height:56px;box-shadow:inset 0 0 0 var(--bw) color-mix(in srgb, var(--rarity,var(--c-common)) 75%, transparent);color:var(--rarity,var(--muted));background-repeat:no-repeat;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.item-icon.atlas{background-color:var(--c-tile-lo);background-image:radial-gradient(circle at 40% 30%, var(--c-tile-hi), var(--c-tile-lo) 75%)}.item-icon .glyph-svg{line-height:0;display:inline-flex}.confirm-dialog{padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);background:color-mix(in srgb, var(--c-black) 62%, transparent);z-index:var(--z-dialog);justify-content:center;align-items:center;display:none;position:absolute;inset:0}.confirm-dialog.on{animation:ui-fade-in var(--dur-fast) var(--ease-out);display:flex}.dialog-panel{border-color:var(--line-strong);align-items:center;max-width:min(92vw,420px)}.dialog-icon{color:var(--warn)}.confirm-text{font-size:var(--fs-md);font-weight:var(--fw-bold)}.notice-dialog{pointer-events:auto}.menu-toast{left:50%;bottom:calc(var(--safe-b) + var(--sp-2));z-index:var(--z-toast);align-items:center;gap:var(--sp-2);max-width:min(90vw,520px);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-pill);border:var(--bw) solid var(--line-strong);background:var(--c-ink-900);color:var(--text-strong);font-size:var(--fs-sm);font-weight:var(--fw-bold);box-shadow:var(--shadow-lift);pointer-events:none;display:none;position:absolute;transform:translate(-50%)}.menu-toast.on{animation:ui-fade-in var(--dur-med) var(--ease-out);display:flex}.menu-toast.warn{border-color:var(--warn)}.menu-toast.warn .ico{color:var(--warn)}.menu-toast.success .ico{color:var(--c-success)}.menu-toast.danger{border-color:var(--danger)}@media (max-height:480px){.panel{padding:var(--sp-3) var(--sp-4);gap:var(--sp-2)}.screen h2,.screen-head .screen-title{font-size:var(--fs-xl)}.title{font-size:var(--fs-3xl)}}.screen.start{background:radial-gradient(ellipse at center, color-mix(in srgb, var(--c-ink-700) 55%, transparent) 0%, color-mix(in srgb, var(--c-ink-950) 90%, transparent) 100%);cursor:pointer}.start-corner{bottom:var(--safe-b);right:var(--safe-r);font-size:var(--fs-xs);color:var(--faint);pointer-events:none;position:absolute}.panel.hub-panel{width:min(100%,1120px);max-width:min(100%,1120px);height:100%;max-height:100%;padding:var(--sp-3) var(--sp-4);gap:var(--sp-3);text-align:left;overflow:hidden}.hub-head{align-items:center;gap:var(--sp-3);min-height:var(--tap-min);flex:none;display:flex}.op-chip{--accent:var(--team);align-items:center;gap:var(--sp-2);min-height:var(--tap-min);padding:0 var(--sp-3);border-radius:var(--r-pill);border:var(--bw) solid var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--surface-raised));color:var(--text-strong);font-weight:var(--fw-heavy);cursor:pointer;touch-action:manipulation;box-shadow:var(--shadow-plate-sm);flex:none;display:inline-flex;position:relative}.op-chip .ico{color:var(--accent)}.op-chip .op-name{font-size:var(--fs-md);text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.hub-title{flex-direction:column;flex:auto;min-width:0;display:flex}.hub-title .screen-title{font-size:var(--fs-xl);text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.op-tagline{font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.operations-btn.has-new{border-color:var(--warn);color:var(--warn)}.hub-body{gap:var(--sp-4);flex:auto;grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr);min-height:0;display:grid}.hub-body .mission-list{touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-height:0;padding:2px var(--sp-1) var(--sp-2) 2px;overflow-y:auto}.hub-actions{justify-content:flex-end;gap:var(--sp-3);flex-direction:column;min-height:0;display:flex}.hub-actions .deploy-next-btn{min-height:72px;padding:var(--sp-2) var(--sp-5);font-size:var(--fs-xl);font-family:var(--font-display);text-transform:uppercase;order:2;justify-content:flex-start}.hub-tiles{gap:var(--sp-2);order:1;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.hub-foot:empty{display:none}.hub-foot:not(:has(.on)){display:none}.install-tip{font-size:var(--fs-xs);color:var(--muted);text-align:center;display:none}.install-tip.on{display:block}.mission-list{gap:var(--sp-2);flex-direction:column;display:flex}.mission-card{align-items:center;gap:var(--sp-3);min-height:var(--tap-primary);padding:var(--sp-2) var(--sp-3) var(--sp-2) var(--sp-2);border-radius:var(--r-md);border:var(--bw) solid var(--line);background:var(--surface-raised);color:var(--text);text-align:left;cursor:pointer;touch-action:manipulation;box-shadow:0 3px 0 var(--c-ink-950);transition:transform var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);flex:none;display:flex;position:relative}.mission-card:active{box-shadow:0 1px 0 var(--c-ink-950);transform:translateY(2px)}.mission-card.next{border-color:var(--team);background:color-mix(in srgb, var(--team) 12%, var(--surface-raised))}.mission-card.completed{border-color:color-mix(in srgb, var(--team) 45%, var(--line))}.mission-card.locked{background:color-mix(in srgb, var(--surface-raised) 60%, var(--surface-sunken));cursor:not-allowed;border-style:dashed}.mission-card.locked .mission-thumb,.mission-card.locked .name,.mission-card.locked .area,.mission-card.locked .task-icons{opacity:.55}.mission-thumb{flex:none;position:relative}.mission-thumb .item-icon,.mission-thumb.item-icon{--rarity:var(--c-olive-400);width:56px;height:56px}.mission-card .num,.mission-thumb .num{border-radius:var(--r-sm);background:var(--warn);min-width:24px;height:24px;color:var(--c-gold-ink);font-family:var(--font-display);font-size:var(--fs-xs);font-weight:var(--fw-black);text-align:center;line-height:24px;position:absolute;bottom:-2px;left:-2px}.operation-card .num{font-size:var(--fs-xl);height:auto;line-height:var(--lh-tight);min-width:32px;color:var(--warn);background:0 0;flex:none;position:static}.mission-card .body{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.mission-card .name{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-black);line-height:var(--lh-tight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mission-card .area{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.operation-card .area{white-space:normal}.task-icons{gap:var(--sp-1);color:var(--c-olive-200);display:flex}.task-icons:empty{display:none}.mission-card .status{font-size:var(--fs-xs);text-align:right;flex-direction:column;flex:none;align-items:flex-end;gap:2px;display:flex}.mission-card .check{color:var(--team)}.mission-card.completed .state{color:var(--team);font-weight:var(--fw-bold)}.mission-card .lock-reason{color:var(--warn);font-weight:var(--fw-bold);max-width:140px}.mission-card .best{color:var(--muted);font-variant-numeric:tabular-nums}.operation-card.current{border-color:var(--team)}.panel.briefing-panel{max-width:min(96vw,900px)}.brief-area{margin-top:calc(var(--sp-2) * -1);font-size:var(--fs-xs)}.brief-body{gap:var(--sp-4);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.brief-col{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.brief-say{gap:var(--sp-3);align-items:flex-start;display:flex}.briefing-text{padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-sunken);border:var(--bw) solid var(--line);font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--text);margin:0;position:relative}.briefing-tasks{gap:var(--sp-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.brief-task{align-items:center;gap:var(--sp-2);min-height:32px;font-size:var(--fs-sm);font-weight:var(--fw-bold);display:flex}.brief-task .ico{color:var(--warn)}.seed-label{font-size:var(--fs-xs);color:var(--muted)}.seed-label:empty{display:none}.how-to-play{border:var(--bw) solid color-mix(in srgb, var(--warn) 50%, transparent);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);background:color-mix(in srgb, var(--warn) 8%, transparent)}.how-to-play-text{margin:var(--sp-1) 0 0;font-size:var(--fs-xs);line-height:var(--lh-body)}.insure-chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.insure-chip{--rarity:var(--c-common);align-items:center;gap:var(--sp-2);min-height:var(--tap-min);padding:var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-1);border-radius:var(--r-md);border:var(--bw) solid var(--line);background:var(--surface-raised);color:var(--text);font-size:var(--fs-xs);font-weight:var(--fw-bold);cursor:pointer;touch-action:manipulation;display:inline-flex}.insure-chip .item-icon{width:40px;height:40px}.insure-chip .btn-label{color:var(--rarity);text-overflow:ellipsis;max-width:140px;overflow:hidden}.insure-chip .insure-state{color:var(--faint)}.insure-chip.on{border-color:var(--team);background:color-mix(in srgb, var(--team) 16%, var(--surface-raised))}.insure-chip.on .insure-state{color:var(--team)}.insure-chip.paid{cursor:default}.insurance-note{font-size:var(--fs-xs)}.panel.intel-panel{max-width:min(96vw,760px)}.intel-list{gap:var(--sp-2);flex-direction:column;display:flex}.intel-card{gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);border:var(--bw) solid var(--line);background:var(--surface-raised);align-items:flex-start;display:flex}.intel-card .ico{color:var(--c-info)}.intel-card .name{font-family:var(--font-display);font-size:var(--fs-md);font-weight:var(--fw-heavy)}.intel-card .area{font-size:var(--fs-xs);color:var(--muted)}.intel-card.locked{opacity:.7;border-style:dashed}.intel-card.locked .ico{color:var(--faint)}@media (max-width:640px) and (orientation:portrait){.panel.hub-panel{overflow-y:auto}.hub-head{flex-wrap:wrap}.hub-title{flex-basis:100%;order:3}.hub-body{flex-direction:column;display:flex}.hub-actions{order:-1}.hub-body .mission-list{overflow:visible}.brief-body{grid-template-columns:1fr}.action-bar .mbtn.primary{flex:100%}}@media (max-height:480px){.panel.hub-panel{padding:var(--sp-2) var(--sp-3);gap:var(--sp-2)}.hub-body{gap:var(--sp-3)}.hub-actions .deploy-next-btn{min-height:var(--tap-primary);font-size:var(--fs-lg)}.hub-tiles .tile{gap:var(--sp-2);flex-direction:row;min-height:56px}.hub-tiles .tile .btn-text{min-width:0}.hub-tiles .tile .btn-label{white-space:normal;line-height:var(--lh-tight);text-align:left}.mission-card{min-height:60px;padding-top:var(--sp-1);padding-bottom:var(--sp-1)}.mission-thumb .item-icon,.mission-thumb.item-icon{width:48px;height:48px}.op-tagline{display:none}}.hub-preview{flex:auto;order:0;min-height:0;display:none}.hub-preview.on{display:flex}.hub-preview-card{gap:var(--sp-2);min-height:0;padding:var(--sp-3);border-radius:var(--r-md);border:var(--bw) solid var(--line);background:var(--surface-sunken);color:var(--text);text-align:left;cursor:pointer;touch-action:manipulation;animation:ui-fade-in var(--dur-med) var(--ease-out);flex-direction:column;flex:1;display:flex;overflow:hidden}.preview-thumb{display:none}.preview-thumb.atlas{border-radius:var(--r-sm);flex:none;width:96px;height:96px;display:block}.preview-body{gap:var(--sp-1);flex-direction:column;min-height:0;display:flex}.preview-kicker{font-family:var(--font-display);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--warn)}.preview-name{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-black);line-height:var(--lh-tight);color:var(--text-strong)}.preview-text{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.preview-tasks{margin-top:var(--sp-1);flex-direction:column;gap:2px;display:flex}.preview-task{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:var(--fw-bold);display:flex}.preview-task .ico{color:var(--warn)}@media (max-height:560px){.hub-preview.on{display:none}}.insurance-total{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--warn)}.screen.overlay-screen{background:color-mix(in srgb, var(--c-ink-950) 72%, transparent);z-index:var(--z-dialog)}.panel.pause-panel{align-items:stretch;max-width:min(92vw,420px)}.pause-toggles{gap:var(--sp-2);grid-template-columns:1fr;display:grid}.pause-note{max-width:320px;margin:0 auto}.panel.end-panel{gap:var(--sp-2);max-width:min(96vw,1000px);padding-bottom:var(--sp-3);overflow:hidden}.end-scroll{overscroll-behavior:contain;touch-action:pan-y;gap:var(--sp-3);flex-direction:column;flex:auto;min-height:0;display:flex;overflow-y:auto}.end-head{align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.end-title{font-size:var(--fs-3xl);text-transform:uppercase;text-shadow:var(--shadow-text)}.end-reason{font-size:var(--fs-lg);font-weight:var(--fw-heavy);color:var(--danger)}.end-body{gap:var(--sp-4);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.end-col{gap:var(--sp-3);flex-direction:column;min-width:0;display:flex}.stat-tiles{gap:var(--sp-2);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.stat-tile{padding:var(--sp-2) var(--sp-1);border-radius:var(--r-md);border:var(--bw) solid var(--line);background:var(--surface-sunken);text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.stat-tile .ico{color:var(--c-olive-200)}.stat-tile .k{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}.stat-tile .v{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-black);text-align:center;font-variant-numeric:tabular-nums}.end-note{font-size:var(--fs-xs);color:var(--warn)}.xp-box{gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-sunken);border:var(--bw) solid var(--line);flex-direction:column;display:flex}.xp-lines{gap:2px var(--sp-4);font-size:var(--fs-xs);color:var(--muted);grid-template-columns:auto auto;display:grid}.xp-lines .v{text-align:right;color:var(--text)}.xp-total{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-black);color:var(--warn)}.xp-row{align-items:center;gap:var(--sp-3);display:flex}.xp-bar{background:var(--c-ink-950);border:var(--bw) solid var(--line);border-radius:var(--r-pill);flex:1;height:14px;overflow:hidden}.xp-fill{background:linear-gradient(90deg, var(--c-gold) 0%, color-mix(in srgb, var(--c-gold) 70%, var(--c-white)) 100%);width:0;height:100%}.xp-text{font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}.econ-box{gap:var(--sp-2);text-align:left;flex-direction:column;display:flex}.credit-lines{margin:var(--sp-1) 0;font-size:var(--fs-xs)}.credit-total{align-items:center;gap:var(--sp-2);font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-black);color:var(--warn);display:flex}.kept-note{font-size:var(--fs-xs);color:var(--danger)}.item-chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.item-chip{--rarity:var(--text);align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-1);border-radius:var(--r-md);border:var(--bw) solid color-mix(in srgb, var(--rarity) 70%, transparent);background:color-mix(in srgb, var(--rarity) 10%, var(--surface-sunken));color:var(--rarity);font-size:var(--fs-xs);font-weight:var(--fw-heavy);display:inline-flex}.item-chip .item-icon{width:40px;height:40px}.econ-items.found .section-label{color:var(--c-success)}.econ-items.lost .section-label{color:var(--danger)}.econ-items.lost .item-chip{opacity:.85;text-decoration:line-through}.econ-items.unlocked .item-chip{background:color-mix(in srgb, var(--c-amber) 12%, var(--surface-sunken))}.end-panel .action-bar{padding-top:var(--sp-2);border-top:var(--bw) solid var(--line)}.end-panel .action-bar.no-next .replay-btn{background:var(--c-accent);border-color:var(--c-accent-strong);color:var(--c-accent-ink);min-height:var(--tap-primary);order:10;min-width:160px}@media (max-height:480px){.end-title{font-size:var(--fs-2xl)}.panel.end-panel{padding:var(--sp-2) var(--sp-4)}.end-panel .action-bar{flex-wrap:nowrap}.end-panel .action-bar .mbtn{min-height:var(--tap-min);padding:var(--sp-1) var(--sp-2);font-size:var(--fs-xs);min-width:0}.end-panel .action-bar .mbtn.primary{min-width:0}.end-panel .action-bar .btn-sub{display:none}.stat-tile .v{font-size:var(--fs-lg)}}@media (max-width:640px){.end-body{grid-template-columns:1fr}.stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.pause-tasks{align-self:stretch;margin:0;padding:0}.pause-tasks .brief-task.complete{color:var(--c-success)}.pause-tasks .brief-task.inactive{color:var(--muted)}.pause-tasks .brief-task.failed{color:var(--danger)}.panel.settings-panel{max-width:min(96vw,820px)}.settings-panes{min-height:0}.settings-pane{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:none}.settings-pane.on{animation:ui-fade-in var(--dur-fast) var(--ease-out);display:grid}.mbtn.setting-btn{font-size:var(--fs-sm);font-weight:var(--fw-bold);text-align:left;justify-content:flex-start}.mbtn.setting-btn .ico{color:var(--c-olive-200)}.settings-sub{margin-top:var(--sp-2);font-family:var(--font-display);font-size:var(--fs-xs);font-weight:var(--fw-heavy);color:var(--warn);text-transform:uppercase;letter-spacing:var(--track-caps);grid-column:1/-1}.settings-version,.pane-audio .volume-list{grid-column:1/-1}.volume-list{gap:var(--sp-2);padding:var(--sp-1) 2px;flex-direction:column;display:flex}.volume-row{align-items:center;gap:var(--sp-3);min-height:var(--tap-min);text-align:left;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted);grid-template-columns:110px 1fr;display:grid}.volume-slider{width:100%;height:40px;accent-color:var(--team);touch-action:none;cursor:pointer}.panel.savedata-panel{max-width:min(96vw,760px)}.backup-code{width:100%;font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--surface-sunken);color:var(--text);border:var(--bw) solid var(--line);border-radius:var(--r-md);padding:var(--sp-2);resize:none}.import-box,.confirm-box{gap:var(--sp-2);flex-direction:column;display:flex}.savedata-message,.import-summary{min-height:1.2em;font-weight:var(--fw-bold)}.restore-list{gap:var(--sp-2);margin:var(--sp-1) 0;flex-wrap:wrap;display:flex}.restore-list .snapshot-btn{min-width:0;font-size:var(--fs-xs);flex:40%}@media (max-width:560px){.settings-pane{grid-template-columns:1fr}}.gear-screen .panel.wide.gear-panel{width:min(98vw,1080px);max-width:min(98vw,1080px);max-height:100%;padding:var(--sp-3) var(--sp-4);gap:var(--sp-2)}.gear-screen .mbtn{min-height:var(--tap-primary)}.gear-screen .mbtn.small{min-height:var(--tap-min)}.gear-body{gap:var(--sp-4);text-align:left;flex:none;display:flex}.gear-left{gap:var(--sp-2);flex-direction:column;flex:0 0 320px;min-height:0;display:flex}@media (min-width:1000px) and (min-height:600px){.gear-left{flex-basis:440px}.eq-center .mannequin{min-height:230px}}.gear-right{gap:var(--sp-2);flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex}.mannequin{border-radius:var(--r-md);border:var(--bw) solid var(--line);background:radial-gradient(ellipse at 50% 70%, color-mix(in srgb, var(--c-accent) 18%, transparent) 0%, transparent 60%), linear-gradient(180deg, var(--c-ink-700) 0%, var(--c-ink-950) 100%);flex:none;height:220px;position:relative;overflow:hidden}.closeup-canvas{touch-action:pan-y;outline:none;width:100%;height:100%;position:absolute;inset:0}.gear-slots{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gear-slot{--rarity:var(--c-common);align-items:center;gap:var(--sp-2);min-height:var(--tap-primary);padding:var(--sp-1);border-radius:var(--r-md);border:var(--bw) solid var(--line);background:var(--surface-raised);color:var(--text);text-align:left;cursor:pointer;touch-action:manipulation;box-shadow:0 3px 0 var(--c-ink-950);transition:transform var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);display:flex;position:relative}.gear-slot:active{box-shadow:0 1px 0 var(--c-ink-950);transform:translateY(2px)}.gear-slot .item-icon{width:48px;height:48px}.slot-text{flex-direction:column;min-width:0;display:flex}.gear-slot .slot-name{font-size:var(--fs-xs);color:var(--muted)}.gear-slot .item-name{font-size:var(--fs-xs);font-weight:var(--fw-heavy);color:var(--rarity);line-height:var(--lh-tight);overflow-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.gear-slot.field .item-name{opacity:.75}.gear-slot .badge,.item-insured{font-size:var(--fs-xs);font-weight:var(--fw-heavy);color:var(--team)}.upgrade-mark{top:var(--sp-1);right:var(--sp-1);color:var(--c-success);position:absolute}.gear-slot.selected,.item-row.selected{border-color:var(--team);background:color-mix(in srgb, var(--team) 18%, var(--surface-raised))}.gear-tools{gap:var(--sp-2);flex-direction:column;flex:none;display:flex}.tool-row{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.rarity-row{gap:var(--sp-1);touch-action:pan-x;scrollbar-width:none;flex:auto;min-width:0;display:flex;overflow-x:auto}.equip-best-btn{border-color:var(--c-success);color:var(--c-success)}.stash-count{font-size:var(--fs-xs);color:var(--muted)}.item-list{gap:var(--sp-2);touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;flex:none;min-height:72px;max-height:36vh;display:flex;overflow-y:auto}.item-list.item-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;padding:2px;display:grid}.item-list .hint{grid-column:1/-1}.item-tile{--rarity:var(--c-common);position:relative}.item-row{--rarity:var(--text);align-items:center;gap:var(--sp-2);width:100%;min-height:var(--tap-primary);padding:var(--sp-1);border-radius:var(--r-md);border:var(--bw) solid color-mix(in srgb, var(--rarity) 55%, var(--line));background:var(--surface-raised);color:var(--text);text-align:left;cursor:pointer;touch-action:manipulation;transition:transform var(--dur-fast) var(--ease-out);flex:none;display:flex;position:relative}.item-row:active{transform:scale(.98)}.item-row .item-icon{width:52px;height:52px}.tile-text{flex-direction:column;min-width:0;display:flex}.item-tile .tile-text{padding-right:52px}.item-row .item-name{color:var(--rarity);font-size:var(--fs-xs);font-weight:var(--fw-heavy);line-height:var(--lh-tight);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.item-row .item-slot,.item-row .item-price{font-size:var(--fs-xs);color:var(--muted)}.item-price{align-items:center;gap:2px;display:inline-flex}.item-row.affordable .item-price{color:var(--warn);font-weight:var(--fw-bold)}.item-row.expensive .item-icon,.item-row.expensive .item-name{opacity:.6}.item-short{font-size:var(--fs-xs);color:var(--danger)}.item-row.upgrade{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--c-success) 60%, transparent)}.item-row .ico.cmp-up,.item-row .ico.cmp-down{left:44px;top:var(--sp-1);border-radius:var(--r-pill);background:var(--c-ink-950);position:absolute}.cmp-up{color:var(--c-success)}.cmp-down{color:var(--danger);transform:rotate(180deg)}.quick-equip-btn{right:var(--sp-1);bottom:var(--sp-1);width:var(--tap-min);height:var(--tap-min);border-radius:var(--r-sm);border:var(--bw) solid var(--team);background:color-mix(in srgb, var(--team) 20%, var(--surface));color:var(--team);cursor:pointer;touch-action:manipulation;justify-content:center;align-items:center;display:inline-flex;position:absolute}.quick-equip-btn:active{background:var(--team);color:var(--c-accent-ink)}.compare-box{gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-sunken);border:var(--bw) solid var(--line);flex-direction:column;display:flex}.item-detail{touch-action:pan-y;min-height:90px;overflow-y:auto}.compare-pics{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);display:flex}.compare-pic{--rarity:var(--c-common);align-items:center;gap:var(--sp-2);flex:1 1 0;min-width:0;display:flex}.compare-pic .item-icon{width:72px;height:72px}.compare-pic.theirs .item-icon{opacity:.85;width:56px;height:56px}.pic-text{flex-direction:column;min-width:0;display:flex}.item-title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-black);line-height:var(--lh-tight)}.pic-name{font-size:var(--fs-xs);font-weight:var(--fw-heavy)}.compare-arrow{color:var(--faint)}.item-slot,.item-compare{font-size:var(--fs-xs);color:var(--muted)}.stat-bars{gap:var(--sp-1);font-size:var(--fs-xs);flex-direction:column;display:flex}.stat-row{align-items:center;gap:var(--sp-2);grid-template-columns:minmax(84px,.9fr) minmax(60px,1.2fr) minmax(96px,auto);display:grid}.stat-row .k{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.stat-bar{border-radius:var(--r-pill);background:var(--c-ink-700);height:10px;position:relative;overflow:visible}.stat-fill{border-radius:var(--r-pill);background:var(--c-sand-300);height:100%}.stat-row.better .stat-fill{background:var(--c-success)}.stat-row.worse .stat-fill{background:var(--danger)}.stat-mark{background:var(--text-strong);width:3px;height:16px;box-shadow:0 0 0 1px var(--c-ink-950);border-radius:2px;margin-left:-1px;position:absolute;top:-3px}.stat-row .v{justify-content:flex-end;align-items:center;gap:var(--sp-1);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;text-align:right;display:flex}.diff{font-size:var(--fs-xs);align-items:center;gap:1px;display:inline-flex}.diff.worse .ico{transform:rotate(180deg)}.detail-actions{justify-content:flex-end}.detail-actions .mbtn{flex:0 auto}.gear-message{min-height:20px;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--warn)}.shop-list{max-height:60vh}.item-list.item-grid.shop-list{grid-template-columns:repeat(auto-fill,minmax(176px,1fr))}.shop-tabs .tab{min-width:120px}.cos-grid{gap:var(--sp-2);touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:none;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));max-height:30vh;display:grid;overflow-y:auto}.cos-item{--rarity:var(--text);min-height:var(--tap-primary);border-radius:var(--r-md);border:var(--bw) solid color-mix(in srgb, var(--rarity) 55%, var(--line));background:var(--surface-raised);color:var(--text);text-align:left;padding:var(--sp-1) var(--sp-3);touch-action:manipulation;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out);flex-direction:column;justify-content:center;gap:2px;display:flex;position:relative}.cos-item.with-icon{align-items:center;column-gap:var(--sp-2);padding-left:var(--sp-1);grid-template-columns:auto 1fr;display:grid}.cos-item .cos-icon{width:44px;height:44px}.cos-item .cos-text{flex-direction:column;gap:2px;min-width:0;display:flex}.cos-item:active{transform:scale(.97)}.cos-item .cos-name{font-size:var(--fs-xs);font-weight:var(--fw-heavy);color:var(--rarity)}.cos-item .cos-tag{font-size:var(--fs-xs);color:var(--muted)}.cos-item.selected{border-color:var(--team);background:color-mix(in srgb, var(--team) 18%, var(--surface-raised))}.cos-item.locked,.swatch-btn.locked{opacity:.6}.cos-item.locked:after,.swatch-btn.locked:after{content:"";background:var(--c-sand-100);width:12px;height:9px;box-shadow:0 0 0 1px color-mix(in srgb, var(--c-black) 50%, transparent);border-radius:2px;position:absolute;top:8px;right:8px}.cos-item.locked:before,.swatch-btn.locked:before{content:"";border:2px solid var(--c-sand-100);border-bottom:none;border-radius:5px 5px 0 0;width:6px;height:7px;position:absolute;top:2px;right:10px}.cos-colors{gap:var(--sp-2);flex-direction:column;flex:none;display:flex}.swatch-row{align-items:center;gap:var(--sp-2);display:flex}.swatch-label{font-size:var(--fs-xs);color:var(--muted);flex:0 0 84px}.swatch-list{gap:var(--sp-2);touch-action:pan-x;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:2px;display:flex;overflow-x:auto}.swatch.swatch-btn{width:var(--tap-min);height:var(--tap-min);flex:none;position:relative}.kit-buy-btn{flex:none;display:none}.kit-buy-btn.on{display:inline-flex}.preset-list{gap:var(--sp-2);flex-direction:column;display:flex}.preset-row{align-items:center;gap:var(--sp-2);display:flex}.preset-row .preset-name{font-size:var(--fs-xs);font-weight:var(--fw-bold);flex:auto}.tailor-swatch{border-radius:var(--r-sm);border:1px solid color-mix(in srgb, var(--c-white) 40%, transparent);flex:none;width:24px;height:24px}.tailor-swatch.big{width:64px;height:64px}.detail-name{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-black)}.appearance-panel .gear-left{position:relative}.preview-badge{left:var(--sp-2);top:var(--sp-2);z-index:2;padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);background:var(--warn);color:var(--c-gold-ink);font-size:var(--fs-xs);font-weight:var(--fw-black);letter-spacing:.5px;text-transform:uppercase;pointer-events:none;display:none;position:absolute}.preview-badge.on{display:block}.mbtn.save-outfit-btn.blocked{background:var(--surface-raised);color:var(--warn);border-color:var(--warn)}@media (max-height:480px){.mannequin{height:140px}.item-list{max-height:34vh}.gear-slots{gap:var(--sp-1);grid-template-columns:repeat(3,minmax(0,1fr))}.gear-slot{min-height:56px}.gear-slot .item-icon{width:36px;height:36px}.gear-slot .slot-name{display:none}.gear-left{flex-basis:330px}.compare-pic .item-icon{width:56px;height:56px}.cos-grid{max-height:26vh}}@media (max-height:480px) and (orientation:landscape){.gear-screen .panel.wide.appearance-panel{width:100%;max-width:100%;height:100%;max-height:100%;padding:var(--sp-2) var(--sp-3);gap:var(--sp-1);overflow:hidden}.appearance-panel>.hint{display:none}.appearance-panel .gear-body{gap:var(--sp-3);flex:auto;min-height:0}.appearance-panel .gear-left{gap:var(--sp-1);flex:0 0 34%;min-height:0;overflow:hidden}.appearance-panel .mannequin{flex:1 1 0;height:auto;min-height:0}.appearance-panel .preset-list{flex:none;gap:2px}.appearance-panel .preset-row .mbtn.small{min-height:var(--tap-min);padding:0 var(--sp-2)}.appearance-panel .gear-right{gap:var(--sp-1);min-height:0;position:relative}.appearance-panel .cos-tabs .filter-chip{min-width:68px}.appearance-panel .cos-grid{flex:1 1 0;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));align-content:start;min-height:0;max-height:none}.appearance-panel .cos-grid .cos-item{min-height:var(--tap-min);padding:var(--sp-1) var(--sp-2)}.appearance-panel .cos-colors{gap:2px}.appearance-panel .swatch-label{flex-basis:72px}.appearance-panel .gear-message{pointer-events:none;text-align:center;min-height:0;text-shadow:var(--shadow-text);position:absolute;bottom:84px;left:0;right:0}.appearance-panel .btn-row{flex-wrap:nowrap;flex:none}.appearance-panel .btn-row .mbtn{min-height:var(--tap-min)}}@media (max-width:640px) and (orientation:portrait){.gear-body{flex-direction:column}.gear-left{flex-basis:auto}.gear-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.gear-slot .slot-name{display:none}.item-list.item-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));max-height:none}.mannequin{height:180px}}@media (max-height:480px) and (orientation:landscape){.shop-note,.shop-left .stash-count{display:none}.shop-tabs .tab{min-height:var(--tap-min);min-width:104px}.item-list.item-grid.shop-list{max-height:calc(100vh - 150px)}}.color-which{gap:var(--sp-1);flex:none;display:flex}.color-which-btn{align-items:center;gap:var(--sp-2);min-height:var(--tap-min);min-width:104px;padding:0 var(--sp-2);border-radius:var(--r-sm);border:var(--bw) solid var(--line);background:var(--surface-raised);color:var(--muted);font-size:var(--fs-xs);font-weight:var(--fw-bold);cursor:pointer;touch-action:manipulation;display:inline-flex}.color-which-btn.selected{border-color:var(--team);color:var(--text-strong)}.color-dot{border:1px solid var(--line-strong);border-radius:50%;width:18px;height:18px}.screen.profile .mbtn,.screen.profile .slot-card,.screen.profile .offer-card{min-height:var(--tap-primary)}.screen.profile .panel.wide{max-width:min(96vw,820px)}.slot-list{gap:var(--sp-2);flex-direction:column;display:flex}.slot-row{gap:var(--sp-2);align-items:stretch;display:flex}.slot-card{--accent:var(--line-strong);align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);border:var(--bw) solid var(--line);border-left:8px solid var(--accent);background:var(--surface-raised);color:var(--text);text-align:left;cursor:pointer;touch-action:manipulation;box-shadow:0 3px 0 var(--c-ink-950);flex:1;display:flex}.slot-card .slot-icon{color:var(--accent)}.slot-card.empty{border-style:dashed;border-left-width:var(--bw);background:color-mix(in srgb, var(--surface-raised) 50%, transparent);box-shadow:none}.slot-card.empty .slot-icon{color:var(--faint)}.slot-card .slot-num{font-size:var(--fs-xs);font-weight:var(--fw-heavy);color:var(--muted);width:48px}.slot-card .body{flex-direction:column;display:flex}.slot-card .name{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-black)}.slot-card .meta{font-size:var(--fs-xs);color:var(--muted)}.slot-row .delete-btn{flex:none;width:104px}.name-input{min-height:var(--tap-primary);padding:0 var(--sp-4);border-radius:var(--r-md);border:var(--bw) solid var(--line-strong);background:var(--surface-sunken);color:var(--text-strong);font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-heavy);-webkit-user-select:text;user-select:text}.name-input:focus{border-color:var(--team);box-shadow:var(--shadow-glow-accent);outline:none}.swatches{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;display:flex}.swatch{width:var(--tap-primary);height:var(--tap-primary);border-radius:var(--r-md);border:var(--bw-thick) solid transparent;background:var(--swatch);cursor:pointer;box-shadow:0 3px 0 var(--c-ink-950)}.swatch.selected{border-color:var(--c-white);box-shadow:0 0 0 var(--bw) var(--c-ink-950) inset, var(--shadow-glow-accent)}.op-actions .mbtn{flex:160px}.tree-list{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;display:flex}.tree-box{gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--surface-raised);border:var(--bw) solid var(--line);border-top:5px solid var(--tree);text-align:left;flex-direction:column;flex:180px;display:flex}.tree-assault{--tree:var(--c-tree-assault)}.tree-survival{--tree:var(--c-tree-survival)}.tree-tactics{--tree:var(--c-tree-tactics)}.tree-general{--tree:var(--c-tree-general)}.tree-name{font-family:var(--font-display);font-size:var(--fs-xs);font-weight:var(--fw-black);letter-spacing:var(--track-caps);color:var(--tree)}.owned-card{font-size:var(--fs-xs);justify-content:space-between;display:flex}.rarity-rare .card-name{color:var(--c-rare)}.rarity-epic .card-name{color:var(--c-epic)}.op-stats .v.special{font-size:var(--fs-xs);color:var(--muted)}.levelup-head{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.levelup-glyph{color:var(--team)}.levelup-head .screen-title{font-size:var(--fs-3xl)}.offer-list{gap:var(--sp-3);justify-content:center;display:flex}.offer-card{--ribbon:var(--c-common);gap:var(--sp-2);min-width:0;padding:0 0 var(--sp-3);border-radius:var(--r-lg);border:var(--bw-thick) solid color-mix(in srgb, var(--tree) 55%, var(--line));background:var(--surface-raised);color:var(--text);text-align:left;cursor:pointer;touch-action:manipulation;box-shadow:0 4px 0 var(--c-ink-950);transition:transform var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);flex-direction:column;flex:1 1 0;display:flex;overflow:hidden}.offer-card.rarity-rare{--ribbon:var(--c-rare)}.offer-card.rarity-epic{--ribbon:var(--c-epic);background:color-mix(in srgb, var(--c-epic) 10%, var(--surface-raised))}.offer-card.selected{border-color:var(--warn);box-shadow:0 7px 0 var(--c-ink-950), 0 0 0 3px color-mix(in srgb, var(--warn) 40%, transparent);transform:translateY(-3px)}.card-art{background:radial-gradient(ellipse at 50% 40%, color-mix(in srgb, var(--tree) 45%, transparent) 0%, transparent 70%), linear-gradient(180deg, color-mix(in srgb, var(--tree) 30%, var(--c-ink-800)) 0%, var(--c-ink-900) 100%);border-bottom:var(--bw) solid color-mix(in srgb, var(--tree) 60%, transparent);justify-content:center;align-items:center;min-height:92px;display:flex;position:relative}.card-art .item-icon{--rarity:var(--tree);width:64px;height:64px;box-shadow:none;color:var(--text-strong);background-color:#0000}.offer-card .rarity{left:0;bottom:var(--sp-1);padding:2px var(--sp-2);border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--ribbon);color:var(--c-ink-950);font-size:var(--fs-xs);font-weight:var(--fw-black);letter-spacing:.04em;text-transform:uppercase;position:absolute}.offer-card .card-name{padding:0 var(--sp-3);font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-black);line-height:var(--lh-tight)}.offer-card .card-desc{padding:0 var(--sp-3);font-size:var(--fs-sm);color:var(--text)}.offer-card .card-owned{padding:0 var(--sp-3);justify-content:space-between;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--muted);margin-top:auto;display:flex}.stack-pips{gap:3px;display:flex}.stack-pips .pip{background:var(--c-ink-600);border:1px solid var(--line-strong);border-radius:2px;width:10px;height:10px}.stack-pips .pip.owned{background:var(--tree);border-color:var(--tree)}.stack-pips .pip.next{background:color-mix(in srgb, var(--warn) 60%, transparent);border-color:var(--warn)}@media (max-height:480px){.screen.profile .panel{gap:var(--sp-2)}.card-art{min-height:64px}.card-art .item-icon{width:48px;height:48px}.offer-card{gap:var(--sp-1);padding-bottom:var(--sp-2)}.levelup-head .screen-title{font-size:var(--fs-2xl)}}@media (max-width:640px) and (orientation:portrait){.offer-list{flex-direction:column}}.hud{pointer-events:none;text-shadow:var(--hud-shadow);z-index:var(--z-hud);display:none;position:absolute;inset:0}.playing .hud,.paused .hud{display:block}.letterbox-on .hud,.letterbox-on .touch-controls,.letterbox-on .top-right{opacity:0;transition:opacity var(--dur-slow) var(--ease-out)}.hud-top-left{top:var(--safe-t);left:var(--safe-l);gap:var(--sp-2);transform:scale(var(--hud-scale));transform-origin:0 0;flex-direction:column;display:flex;position:absolute}.hud-status{align-items:flex-start;gap:var(--sp-2);display:flex}.hud-stats{gap:var(--sp-1);flex-direction:column;min-width:180px;display:flex}.hp-row{align-items:center;gap:var(--sp-2);display:flex}.hud-level{min-width:42px;box-shadow:0 0 0 var(--bw) var(--c-ink-950);text-shadow:none}.hp-bar{background:var(--hud-panel);border:var(--bw) solid var(--hud-btn-line);border-radius:var(--r-pill);width:190px;height:16px;overflow:hidden}.hp-fill{background:linear-gradient(180deg, color-mix(in srgb, var(--c-accent) 70%, var(--c-white)) 0%, var(--c-accent) 60%, var(--c-accent-strong) 100%);width:100%;height:100%;transition:width 80ms linear}.hp-fill.low{background:linear-gradient(180deg, color-mix(in srgb, var(--c-danger) 70%, var(--c-white)) 0%, var(--c-danger) 70%)}.armor-bar{background:var(--hud-panel);border-radius:var(--r-pill);width:190px;height:7px;margin-top:-2px;margin-left:50px;overflow:hidden}.armor-fill{background:var(--c-armor);width:100%;height:100%}.weapon-row{align-items:baseline;gap:var(--sp-2);display:flex}.ammo{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-black);color:var(--hud-text);font-variant-numeric:tabular-nums}.ammo.empty{color:var(--danger)}.reloading{font-size:var(--fs-xs);color:var(--warn);font-weight:var(--fw-heavy);text-transform:uppercase;letter-spacing:var(--track-caps);visibility:hidden}.reloading.on{visibility:visible}.dash-meter{background:var(--hud-panel);border-radius:var(--r-pill);width:100px;height:6px;overflow:hidden}.dash-fill{background:var(--c-dash);height:100%}.dash-fill.ready{background:var(--c-dash-ready)}.hud-chips{gap:var(--sp-1);display:flex}.hud-chip{padding:1px var(--sp-2);border-radius:var(--r-pill);background:var(--hud-panel);font-size:var(--fs-xs);font-weight:var(--fw-heavy);color:var(--c-sand-100);text-shadow:none}.bag-label.full{color:var(--warn)}.medkit-label{color:color-mix(in srgb, var(--c-danger) 45%, var(--c-white))}.input-touch .medkit-label{display:none!important}.minimap{border-radius:var(--r-md);border:var(--bw) solid var(--hud-btn-line);background:var(--hud-panel);width:92px;height:92px;box-shadow:0 2px 0 color-mix(in srgb, var(--c-black) 50%, transparent);flex:none;position:relative;overflow:hidden}.minimap-canvas{width:100%;height:100%;display:block}.mission-hud{pointer-events:none;display:none;position:absolute;inset:0}.mission-hud.on{display:block}.objective-tracker{padding:var(--sp-2) var(--sp-3);background:var(--hud-panel);border-left:var(--bw-thick) solid var(--warn);border-radius:var(--r-sm);min-width:210px;max-width:300px;text-shadow:none;flex-direction:column;gap:2px;display:none}.objective-tracker.on{display:flex}.mission-name{font-family:var(--font-display);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--warn)}.task{align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted);display:flex}.task .ico{opacity:.8}.task.inactive{opacity:.7}.task.active{color:var(--hud-text)}.task.active .ico{color:var(--warn);opacity:1}.task.complete{color:var(--team)}.task.complete .task-text{text-decoration:line-through}.task.failed{color:var(--danger)}.hostage-pips{gap:var(--sp-1);margin-top:2px;display:flex}.hostage-pips:empty{display:none}.pip{border:1px solid color-mix(in srgb, var(--c-white) 50%, transparent);background:color-mix(in srgb, var(--c-black) 50%, transparent);border-radius:2px;width:34px;height:8px;overflow:hidden}.pip .fill{background:var(--c-hostage);height:100%}.pip.captive{opacity:.5}.pip.dead{border-color:var(--danger)}.objective-arrow{will-change:transform;display:none;position:absolute;top:0;left:0}.objective-arrow.on{display:block}.objective-arrow .head{width:28px;height:28px;position:absolute;top:-14px;left:-14px}.objective-arrow .head:before{content:"";border-top:12px solid #0000;border-bottom:12px solid #0000;border-left:22px solid var(--warn);filter:drop-shadow(0 1px 2px color-mix(in srgb, var(--c-black) 80%, transparent));position:absolute;top:2px;left:4px}.objective-arrow:not(.edge) .head{top:-44px}.objective-arrow .dist{text-align:center;width:80px;font-size:var(--fs-xs);font-weight:var(--fw-heavy);color:var(--warn);font-variant-numeric:tabular-nums;position:absolute;top:16px;left:-40px}.objective-arrow:not(.edge) .dist{top:-70px}.notify-top{top:var(--safe-t);align-items:center;gap:var(--sp-2);pointer-events:none;flex-direction:column;width:min(52vw,520px);max-width:calc(100vw - 660px);display:flex;position:absolute;left:50%;transform:translate(-50%)}.boss-bar{text-align:center;width:100%;display:none}.boss-bar.on{animation:ui-fade-in var(--dur-med) var(--ease-out);display:block}.boss-name{color:color-mix(in srgb, var(--c-gold) 55%, var(--c-white));font-family:var(--font-display);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--track-caps);text-transform:uppercase;margin-bottom:2px}.boss-track{border-radius:var(--r-pill);background:var(--hud-panel);border:var(--bw) solid color-mix(in srgb, var(--c-gold) 55%, transparent);height:12px;position:relative;overflow:hidden}.boss-fill{background:linear-gradient(180deg, var(--c-boss-a) 0%, var(--c-boss-b) 100%);width:100%;height:100%;transition:width .12s linear}.boss-bar.phase2 .boss-fill{background:linear-gradient(180deg, color-mix(in srgb, var(--c-boss-a) 70%, var(--c-gold)) 0%, var(--c-boss-b) 100%)}.boss-bar.phase3 .boss-fill{background:linear-gradient(180deg, var(--c-boss-c) 0%, var(--c-boss-d) 100%)}.boss-tick{background:color-mix(in srgb, var(--c-gold) 40%, var(--c-white));width:2px;position:absolute;top:0;bottom:0}.boss-tick.t2{left:var(--t2,66%)}.boss-tick.t3{left:var(--t3,33%)}.radio-panel{align-items:center;gap:var(--sp-2);max-width:100%;padding:var(--sp-1) var(--sp-3) var(--sp-1) var(--sp-1);border-radius:var(--r-md);background:var(--hud-panel);border:var(--bw) solid color-mix(in srgb, var(--c-radio) 50%, transparent);text-shadow:none;display:none}.radio-panel.on{animation:ui-fade-in var(--dur-med) var(--ease-out);display:flex}.radio-body{flex-direction:column;min-width:0;display:flex}.radio-speaker{font-family:var(--font-display);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--c-radio)}.radio-text{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--hud-text)}.hud-alert{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);background:color-mix(in srgb, var(--c-danger-deep) 88%, transparent);color:var(--hud-text);font-size:var(--fs-md);font-weight:var(--fw-heavy);letter-spacing:.02em;white-space:nowrap;text-shadow:none;display:none}.hud-alert.on{display:flex}.loot-toasts{right:var(--safe-r);align-items:flex-end;gap:var(--sp-1);pointer-events:none;flex-direction:column;display:flex;position:absolute;top:34%}.loot-toast{--rarity:var(--text);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);background:var(--hud-panel);border-left:5px solid var(--rarity);color:var(--rarity);font-size:var(--fs-sm);font-weight:var(--fw-heavy);text-shadow:none;animation:ui-fade-in var(--dur-fast) var(--ease-out)}.input-touch .loot-toasts{top:calc(42% + var(--sp-1))}.hud-top-center{top:var(--safe-t);text-align:center;position:absolute;left:50%;transform:translate(-50%)}.wave-label{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-heavy)}.enemies-label{font-size:var(--fs-xs);color:var(--muted)}.version-corner{bottom:var(--safe-b);padding:1px var(--sp-2);border-radius:var(--r-sm);background:color-mix(in srgb, var(--c-black) 35%, transparent);font-size:var(--fs-xs);color:color-mix(in srgb, var(--c-white) 60%, transparent);white-space:nowrap;text-shadow:none;position:absolute;left:50%;transform:translate(-50%)}.banner{text-align:center;font-family:var(--font-display);font-size:var(--fs-hero);font-weight:var(--fw-black);letter-spacing:.06em;text-transform:uppercase;opacity:0;transition:opacity var(--dur-slow) var(--ease-out);pointer-events:none;text-shadow:0 3px 0 color-mix(in srgb, var(--c-black) 55%, transparent), 0 2px 10px color-mix(in srgb, var(--c-black) 80%, transparent);position:absolute;top:28%;left:0;right:0}.banner.on{opacity:1}.hitmarker{pointer-events:none;opacity:0;width:22px;height:22px;margin:-11px 0 0 -11px;position:absolute;top:0;left:0}.hitmarker.on{opacity:1}.hitmarker:before,.hitmarker:after{content:"";background:var(--c-white);width:3px;height:100%;box-shadow:0 0 2px var(--c-black);margin-left:-1.5px;position:absolute;top:0;left:50%}.hitmarker:before{transform:rotate(45deg)}.hitmarker:after{transform:rotate(-45deg)}.damage-vignette{pointer-events:none;box-shadow:inset 0 0 90px 30px color-mix(in srgb, var(--c-danger) 75%, transparent);opacity:0;transition:opacity var(--dur-med) var(--ease-out);position:absolute;inset:0}.lowhp-edge{z-index:5;pointer-events:none;background:radial-gradient(ellipse closest-side at center, color-mix(in srgb, var(--c-blood) 0%, transparent) 86%, color-mix(in srgb, var(--c-blood) 75%, transparent) 100%, var(--c-danger-deep) 130%);opacity:0;position:fixed;inset:0}.hit-arc{z-index:6;border-radius:var(--r-pill);background:color-mix(in srgb, var(--c-danger) 90%, transparent);width:80px;height:8px;box-shadow:0 0 10px color-mix(in srgb, var(--c-danger) 70%, transparent);pointer-events:none;opacity:0;transition:opacity var(--dur-slow);margin:-4px 0 0 -40px;position:fixed;top:0;left:0}.hit-arc.on{opacity:1;transition:none}.armor-flash{z-index:6;pointer-events:none;box-shadow:inset 0 0 70px 18px color-mix(in srgb, var(--c-armor) 85%, transparent);opacity:0;transition:opacity .3s;position:fixed;inset:0}.armor-flash.on{opacity:1;transition:none}.enemy-edge{pointer-events:none;will-change:transform;width:0;height:0;display:none;position:absolute;top:0;left:0}.enemy-edge.on{display:block}.enemy-edge:before{content:"";border-top:9px solid #0000;border-bottom:9px solid #0000;border-left:14px solid color-mix(in srgb, var(--c-danger) 90%, transparent);filter:drop-shadow(0 0 2px color-mix(in srgb, var(--c-black) 60%, transparent));position:absolute;top:-9px;left:-7px}.crosshair{pointer-events:none;width:26px;height:26px;margin:-13px 0 0 -13px;display:none;position:absolute}.input-mouse.playing .crosshair{display:block}.crosshair:before,.crosshair:after{content:"";background:var(--c-white);box-shadow:0 0 2px var(--c-black);position:absolute}.crosshair:before{width:2px;height:26px;top:0;left:12px}.crosshair:after{width:26px;height:2px;top:12px;left:0}.crosshair .dot{border:2px solid var(--warn);border-radius:50%;width:6px;height:6px;position:absolute;top:10px;left:10px}.touch-controls{pointer-events:none;display:none;position:absolute;inset:0}.input-touch.playing .touch-controls{display:block}.stick-layer{pointer-events:none;position:absolute;inset:0}.stick-base{border:var(--bw) solid color-mix(in srgb, var(--c-white) 65%, transparent);background:color-mix(in srgb, var(--c-ink-900) 30%, transparent);pointer-events:none;border-radius:50%;position:absolute}.stick-knob{background:color-mix(in srgb, var(--c-sand-100) 72%, transparent);border:var(--bw) solid color-mix(in srgb, var(--c-ink-900) 65%, transparent);pointer-events:none;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%}.touch-buttons{right:var(--safe-r);align-items:center;gap:var(--sp-3);pointer-events:none;flex-direction:row;display:flex;position:absolute;bottom:calc(58% + 8px)}.action-row,.context-buttons{gap:var(--sp-3);align-items:center;display:flex}@media (min-height:520px){.touch-buttons{align-items:flex-end;gap:var(--sp-2);flex-direction:column}}.tbtn{pointer-events:auto;min-width:var(--tap-hud);min-height:var(--tap-hud);width:var(--tap-hud);height:var(--tap-hud);border:var(--bw) solid var(--hud-btn-line);background:var(--hud-btn-bg);color:var(--hud-text);font-size:var(--fs-xs);font-weight:var(--fw-heavy);touch-action:none;text-shadow:var(--hud-shadow);box-shadow:0 2px 6px color-mix(in srgb, var(--c-black) 45%, transparent);transition:transform var(--dur-fast) var(--ease-out);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:0;line-height:1;display:flex;position:relative;overflow:hidden}.tbtn .ico{z-index:1;filter:drop-shadow(0 1px 1px var(--c-black));position:relative}.tbtn-label{z-index:1;margin-top:1px;position:relative}.tbtn .cd{background:color-mix(in srgb, var(--c-sand-300) 45%, transparent);pointer-events:none;z-index:0;position:absolute;bottom:0;left:0;right:0}.tbtn:active{background:color-mix(in srgb, var(--c-ink-600) 88%, transparent);transform:scale(.95)}.heal-btn{background:var(--hud-heal-bg)}.heal-btn .count{font-size:var(--fs-xs);pointer-events:none;z-index:1;position:absolute;top:6px;right:12px}.laser-btn{background:color-mix(in srgb, var(--c-amber) 38%, var(--c-ink-950));border-color:var(--c-amber)}.laser-btn.held{background:color-mix(in srgb, var(--c-amber) 80%, var(--c-ink-950));transform:scale(.94)}.turret-btn{border-color:var(--c-info)}.top-right{top:var(--safe-t);right:var(--safe-r);gap:var(--sp-2);pointer-events:none;z-index:var(--z-hud-top);display:none;position:absolute}.playing .top-right{display:flex}.sbtn{pointer-events:auto;min-width:56px;min-height:var(--tap-min);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);border:var(--bw) solid var(--hud-btn-line);background:var(--hud-btn-bg);color:var(--hud-text);font-size:var(--fs-xs);font-weight:var(--fw-heavy);touch-action:manipulation;text-shadow:var(--hud-shadow);justify-content:center;align-items:center;display:inline-flex}.sbtn.icon-only{width:56px;padding:0}.input-touch .sbtn.pause-btn{min-width:64px;min-height:56px}.dbg-btn{display:none}.debug .dbg-btn{display:inline-flex}.letterbox{pointer-events:none;z-index:var(--z-hud-top);position:absolute;inset:0}.letterbox-bar{background:var(--c-black);height:12vh;transition:transform var(--dur-slow) var(--ease-out);position:absolute;left:0;right:0;transform:scaleY(0)}.letterbox-bar.top{transform-origin:top;top:0}.letterbox-bar.bottom{transform-origin:bottom;justify-content:center;align-items:center;display:flex;bottom:0}.letterbox.on .letterbox-bar{transform:scaleY(1)}.letterbox-caption{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-heavy);color:var(--c-sand-100);letter-spacing:.04em}@media (max-height:420px){.banner{font-size:var(--fs-3xl)}.hp-bar,.armor-bar{width:150px}.minimap{width:80px;height:80px}.objective-tracker{padding:var(--sp-1) var(--sp-2);min-width:180px}.task{font-size:var(--fs-xs)}}@media (max-height:520px) and (pointer:coarse){.hud-top-left{gap:var(--sp-1)}.objective-tracker.on{align-items:center;gap:var(--sp-2);min-width:0;max-width:300px;padding:2px var(--sp-2);flex-direction:row}.objective-tracker .task-list{min-width:0}.objective-tracker .mission-name,.objective-tracker .task:not(.active){display:none}.objective-tracker .task.active .task-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}.player-marker{pointer-events:none;width:0;height:0;z-index:var(--z-hud);will-change:transform;position:absolute;top:0;left:0}.player-marker:before{content:"";border:1.5px solid var(--player-ring);border-color:var(--player-ring);opacity:.85;width:38px;height:14px;box-shadow:0 0 0 1px var(--player-ring-outline), inset 0 0 0 1px var(--player-ring-outline);border-radius:50%;position:absolute;top:-7px;left:-19px}.letterbox-on .player-marker{display:none}.eq-panel{gap:var(--sp-2);border-radius:var(--r-lg);transition:box-shadow var(--dur-fast) var(--ease-out);grid-template-columns:minmax(0,1fr) minmax(88px,.9fr) minmax(0,1fr);grid-template-areas:"helmet center backpack""vest center look""weapon weapon weapon";align-items:stretch;display:grid}.eq-center{min-height:120px;color:var(--c-olive-600);grid-area:center;justify-content:center;align-items:center;display:flex}.eq-center svg{width:auto;height:100%;max-height:150px}.eq-center .mannequin{width:100%;height:100%;min-height:160px}.eq-slot{border-color:color-mix(in srgb, var(--rarity) 60%, var(--line));min-width:0}.eq-slot .insured-mark{bottom:var(--sp-1);right:var(--sp-1);padding:0 var(--sp-1);border-radius:var(--r-sm);background:var(--surface-sunken);color:var(--team);align-items:center;gap:2px;display:inline-flex;position:absolute}.eq-look{justify-content:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-md);border:var(--bw) dashed var(--line);color:var(--muted);font-size:var(--fs-xs);flex-direction:column;grid-area:look;display:flex}.eq-weapon{gap:var(--sp-2);grid-area:weapon;min-width:0;display:flex}.eq-weapon>.eq-slot{flex:auto}.eq-weapon-subs{gap:var(--sp-2);display:flex}.eq-slot.sub{min-width:96px;max-width:132px}.eq-slot.sub .item-icon{width:36px;height:36px}.eq-slot.sub{text-align:center;flex-direction:column;justify-content:center;gap:2px}.eq-slot.sub .slot-text{align-items:center}.eq-armor{border-radius:var(--r-pill);background:var(--surface-sunken);height:6px;margin-top:2px;display:block;overflow:hidden}.eq-armor-fill{background:var(--c-armor);height:100%;display:block}.eq-slot.swapping{border-color:var(--c-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--c-accent) calc(var(--p,0) * 100%), transparent)}.bag-box,.ground-box{gap:var(--sp-1);flex-direction:column;min-width:0;display:flex}.bag-head{align-items:center;gap:var(--sp-2);color:var(--muted);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--track-caps);display:flex}.bag-count-label{color:var(--text-strong);font-size:var(--fs-sm);font-weight:var(--fw-black);font-family:var(--font-mono);margin-left:auto}.bag-count-label.full{color:var(--warn)}.bag-grid{gap:var(--sp-1);padding:var(--sp-1);border-radius:var(--r-md);background:var(--surface-sunken);transition:box-shadow var(--dur-fast) var(--ease-out);grid-template-columns:repeat(auto-fill,minmax(112px,1fr));display:grid}.bag-tile{--rarity:var(--c-common);min-height:128px;min-width:var(--tap-min);padding:var(--sp-1);border-radius:var(--r-md);border:var(--bw-thick) solid color-mix(in srgb, var(--rarity) 70%, var(--line));background:var(--surface-raised);color:var(--text);text-align:center;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out);flex-direction:column;align-items:center;gap:2px;display:flex;position:relative}.bag-tile .item-icon{width:72px;height:72px}.bag-tile-name{font-size:var(--fs-xs);font-weight:var(--fw-heavy);color:var(--rarity);line-height:var(--lh-tight);min-height:calc(2em * var(--lh-tight));overflow-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.bag-tile-stat{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.bag-tile.empty{border-style:dashed;border-color:var(--line);cursor:default;background:0 0}.bag-tile.selected,.ground-tile.selected,.eq-slot.selected{outline:var(--bw-thick) solid var(--c-accent);outline-offset:1px}.bag-tile.swapping{opacity:.6}.ground-list{gap:var(--sp-1);flex-direction:column;max-height:180px;display:flex;overflow-y:auto}.ground-item{--rarity:var(--c-common);align-items:center;gap:var(--sp-2);display:flex}.ground-tile{align-items:center;gap:var(--sp-2);min-height:var(--tap-min);min-width:0;padding:var(--sp-1);border-radius:var(--r-md);border:var(--bw) solid color-mix(in srgb, var(--rarity) 60%, var(--line));background:var(--surface-raised);color:var(--text);text-align:left;cursor:pointer;flex:auto;display:flex}.ground-tile .item-icon{width:40px;height:40px}.ground-tile .item-name{color:var(--rarity);font-weight:var(--fw-heavy);font-size:var(--fs-xs)}.ground-tile .item-slot{color:var(--muted);font-size:var(--fs-xs)}.mbtn.small{min-height:var(--tap-min);padding:var(--sp-1) var(--sp-3);font-size:var(--fs-xs)}.drag-ghost{pointer-events:none;width:64px;height:64px;z-index:var(--z-hint);opacity:.85;position:fixed;top:0;left:0}.dragging{opacity:.4}.drop-over{box-shadow:0 0 0 var(--bw-thick) var(--c-accent)}.field-inv{z-index:var(--z-bag);pointer-events:auto;position:absolute;inset:0}.field-inv-shade{background:color-mix(in srgb, var(--c-ink-950) 35%, transparent);position:absolute;inset:0}.field-inv-panel{top:calc(var(--safe-t) + var(--sp-2));bottom:calc(var(--safe-b) + var(--sp-2));width:min(920px, calc(100vw - var(--safe-l) - var(--safe-r) - 2 * var(--sp-4)));gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-lg);border:var(--bw) solid var(--line-strong);background:color-mix(in srgb, var(--surface) 94%, transparent);box-shadow:var(--shadow-lift);flex-direction:column;display:flex;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.field-inv-head{align-items:center;gap:var(--sp-2);color:var(--text-strong);display:flex}.field-inv-title{font-family:var(--font-display);font-size:var(--fs-md);font-weight:var(--fw-black);letter-spacing:var(--track-caps)}.field-inv-live{color:var(--warn);font-size:var(--fs-xs)}.field-inv-close{margin-left:auto}.field-inv-body{gap:var(--sp-3);flex:auto;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);min-height:0;display:grid;overflow-y:auto}.field-inv-left,.field-inv-right{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.field-inv-sub{color:var(--muted);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--track-caps)}.inv-popup{right:var(--sp-3);bottom:var(--sp-3);width:min(420px, calc(100% - 2 * var(--sp-3)));max-height:calc(100% - 2 * var(--sp-6));padding:var(--sp-3);border-radius:var(--r-lg);border:var(--bw) solid var(--line-strong);background:var(--surface-raised);box-shadow:var(--shadow-lift);position:absolute;overflow-y:auto}.inv-popup-close{top:var(--sp-1);right:var(--sp-1);position:absolute}.sbtn.bag-btn{gap:var(--sp-1);min-width:72px}.bag-btn .bag-count{font-family:var(--font-mono);font-size:var(--fs-xs)}.bag-btn.full{border-color:var(--warn);color:var(--warn)}.swap-badge{top:calc(var(--safe-t) + 96px);align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);background:var(--hud-panel);color:var(--hud-text);font-size:var(--fs-xs);font-weight:var(--fw-heavy);text-shadow:var(--hud-shadow);pointer-events:none;z-index:var(--z-hud-top);display:flex;position:absolute;left:50%;transform:translate(-50%)}.swap-ring{background:conic-gradient(var(--c-accent) calc(var(--p,0) * 360deg), color-mix(in srgb, var(--hud-text) 20%, transparent) 0);border-radius:50%;width:22px;height:22px}.bagfull-prompt{--rarity:var(--c-common);top:calc(var(--safe-t) + 150px);align-items:center;gap:var(--sp-2);width:max-content;max-width:min(480px, calc(100vw - 2 * var(--sp-8)));padding:var(--sp-2);border-radius:var(--r-lg);border:var(--bw-thick) solid color-mix(in srgb, var(--rarity) 70%, var(--line));background:var(--hud-panel);color:var(--hud-text);pointer-events:auto;z-index:var(--z-hud-top);display:flex;position:absolute;left:50%;transform:translate(-50%)}.bagfull-prompt .item-icon{flex:none;width:48px;height:48px}.prompt-text{flex-direction:column;min-width:0;display:flex}.prompt-title{font-size:var(--fs-sm);font-weight:var(--fw-heavy);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.prompt-actions .mbtn{min-height:var(--tap-min);padding:var(--sp-1) var(--sp-3);font-size:var(--fs-xs);white-space:nowrap}.prompt-note{font-size:var(--fs-xs);color:var(--muted)}.prompt-actions{gap:var(--sp-1);margin-left:auto;display:flex}.junk-mark{bottom:var(--sp-1);left:var(--sp-1);padding:0 var(--sp-1);border-radius:var(--r-sm);background:var(--surface-sunken);color:var(--muted);font-size:var(--fs-xs);font-weight:var(--fw-heavy);position:absolute}@media (max-height:520px){.field-inv-panel{top:var(--safe-t);bottom:var(--safe-b);padding:var(--sp-1) var(--sp-2)}.field-inv-live{display:none}.eq-center{min-height:72px}.eq-center svg{max-height:96px}.bag-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.bag-tile{min-height:96px;padding:2px}.bag-tile .item-icon{width:58px;height:58px}.bag-grid.dense{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.bag-grid.dense .bag-tile{min-height:74px}.bag-grid.dense .bag-tile .item-icon{width:40px;height:40px}.bag-grid.dense .bag-tile-name{-webkit-line-clamp:1;min-height:0}.bag-tile-stat,.eq-slot .slot-name{display:none}.eq-weapon .eq-slot{text-align:center;flex-direction:column;justify-content:center;gap:2px}.eq-weapon .eq-slot .item-icon{width:32px;height:32px}.eq-weapon .eq-slot .slot-text{align-items:center}.bagfull-prompt{top:calc(var(--safe-t) + 124px)}.bagfull-prompt .item-icon{width:40px;height:40px}.prompt-note{display:none}}@media (orientation:portrait){.field-inv-body{grid-template-columns:1fr}}.rotate-overlay{padding:var(--sp-6);background:radial-gradient(ellipse at center, var(--c-ink-800) 0%, var(--c-ink-950) 100%);color:var(--text);z-index:var(--z-overlay);pointer-events:auto;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.rotate-overlay.on{animation:ui-fade-in var(--dur-med) var(--ease-out);display:flex}.rotate-box{align-items:center;gap:var(--sp-3);text-align:center;flex-direction:column;max-width:320px;display:flex}.rotate-phone{border-radius:var(--r-md);border:var(--bw-thick) solid var(--c-accent);width:54px;height:92px;animation:rotate-hint 2.4s var(--ease-in-out) infinite;position:relative}.rotate-phone:after{content:"";border-radius:var(--r-pill);background:var(--c-accent);width:14px;height:4px;margin-left:-7px;position:absolute;bottom:6px;left:50%}@keyframes rotate-hint{0%,20%{transform:rotate(0)}50%,80%{transform:rotate(-90deg)}to{transform:rotate(0)}}.rotate-title{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:var(--fw-black);text-transform:uppercase}.rotate-sub{font-size:var(--fs-sm);color:var(--muted)}.error-overlay{left:var(--safe-l);right:var(--safe-r);bottom:var(--safe-b);background:color-mix(in srgb, var(--c-danger-deep) 95%, transparent);border:var(--bw) solid var(--c-danger);border-radius:var(--r-md);max-height:45vh;padding:var(--sp-3) var(--sp-4);color:var(--c-white);z-index:var(--z-error);pointer-events:auto;box-shadow:var(--shadow-lift);position:fixed;overflow:auto}.error-title{font-family:var(--font-display);font-weight:var(--fw-heavy);font-size:var(--fs-md);margin-bottom:var(--sp-1)}.error-message{font-family:var(--font-mono);font-size:var(--fs-xs);white-space:pre-wrap;word-break:break-word}.error-version{margin-top:var(--sp-1);font-size:var(--fs-xs);opacity:.8}.update-banner{left:50%;bottom:calc(var(--safe-b) + var(--sp-1));z-index:var(--z-hint);min-height:var(--tap-min);padding:var(--sp-2) var(--sp-5);border-radius:var(--r-pill);border:var(--bw) solid var(--c-accent-strong);background:var(--c-accent);color:var(--c-accent-ink);font-size:var(--fs-md);font-weight:var(--fw-heavy);cursor:pointer;box-shadow:0 4px 0 color-mix(in srgb, var(--c-accent-strong) 55%, var(--c-black)), var(--shadow-lift);position:fixed;transform:translate(-50%)}.offline-indicator{top:var(--sp-1);z-index:var(--z-toast);align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-pill);background:var(--c-ink-900);border:1px solid var(--line);color:var(--muted);font-size:var(--fs-xs);pointer-events:none;display:none;position:fixed;left:50%;transform:translate(-50%)}.offline-indicator.on{display:flex}.playing .offline-indicator{display:none}.logs-notice{left:var(--safe-l);bottom:var(--safe-b);max-width:30vw;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);background:var(--c-ink-900);border:1px solid var(--line);font-size:var(--fs-xs);text-align:left;pointer-events:none;display:none;position:absolute}.logs-notice.on{display:block}.fs-unavailable .fullscreen-btn{display:none!important}.hint-bubble{--hint-bg:var(--c-gold);z-index:var(--z-hint);max-width:min(40vw,280px);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);background:var(--hint-bg);color:var(--c-gold-ink);font-size:var(--fs-xs);font-weight:var(--fw-bold);line-height:var(--lh-tight);text-align:center;pointer-events:none;cursor:pointer;touch-action:manipulation;opacity:0;transition:opacity var(--dur-med), transform var(--dur-med);box-shadow:0 2px 0 color-mix(in srgb, var(--c-black) 35%, transparent), 0 4px 10px color-mix(in srgb, var(--c-black) 30%, transparent);position:fixed;transform:translateY(4px)}.hint-bubble .hint-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.hint-bubble.on{opacity:1;pointer-events:auto;transform:none}.hint-bubble.above:after,.hint-bubble.below:after,.hint-bubble.left:after,.hint-bubble.right:after{content:"";border:6px solid #0000;position:absolute}.hint-bubble.above:after,.hint-bubble.below:after{left:var(--pointer,50%);margin-left:-6px}.hint-bubble.left:after,.hint-bubble.right:after{top:var(--pointer,50%);margin-top:-6px}.hint-bubble.above:after{border-top-color:var(--hint-bg);top:100%}.hint-bubble.below:after{border-bottom-color:var(--hint-bg);bottom:100%}.hint-bubble.left:after{border-left-color:var(--hint-bg);left:100%}.hint-bubble.right:after{border-right-color:var(--hint-bg);right:100%}.debug-panel{top:64px;right:var(--safe-r);background:color-mix(in srgb, var(--c-black) 82%, transparent);border:1px solid var(--line);border-radius:var(--r-sm);width:260px;max-height:calc(100% - 80px);padding:var(--sp-2);font-size:var(--fs-debug);pointer-events:auto;z-index:var(--z-debug);display:none;position:absolute;overflow:auto}.debug-panel.on{display:block}.debug-panel pre{margin:0 0 var(--sp-2);font-size:var(--fs-debug);white-space:pre-wrap}.debug-panel .row{gap:var(--sp-1);margin:var(--sp-1) 0;flex-wrap:wrap;align-items:center;display:flex}.debug-panel button,.debug-panel select{font-size:var(--fs-debug);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--c-white)}.debug-panel label{gap:var(--sp-1);align-items:center;display:flex}.perf-overlay{top:max(64px, calc(env(safe-area-inset-top) + 56px));right:var(--safe-r);z-index:var(--z-debug);pointer-events:none;background:color-mix(in srgb, var(--c-black) 62%, transparent);border-radius:var(--r-sm);padding:var(--sp-1) var(--sp-2);position:absolute}.perf-overlay pre{font-family:var(--font-mono);font-size:var(--fs-debug);font-weight:var(--fw-bold);color:var(--c-perf);white-space:pre;margin:0;line-height:1.35}.lineup-legend{left:var(--sp-3);top:var(--sp-2);color:var(--c-sand-100);font-family:var(--font-ui);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-shadow:0 1px 2px var(--c-black);pointer-events:none;position:fixed}.portrait{--speaker:var(--c-info);flex-direction:column;flex:none;align-items:center;gap:2px;display:flex}.portrait-frame{border-radius:var(--r-md);border:var(--bw-thick) solid var(--speaker);background:radial-gradient(ellipse at 50% 30%, color-mix(in srgb, var(--speaker) 35%, transparent) 0%, transparent 70%), var(--c-ink-900);width:72px;height:72px;color:color-mix(in srgb, var(--speaker) 65%, var(--c-white));justify-content:center;align-items:center;display:flex;overflow:hidden}.portrait-frame .icon{stroke-width:1.6px;width:58px;height:58px}.portrait-plate{line-height:var(--lh-tight);flex-direction:column;align-items:center;display:flex}.portrait-name{font-family:var(--font-display);font-size:var(--fs-xs);font-weight:var(--fw-heavy);text-transform:uppercase;color:var(--speaker)}.portrait-role{display:none}.portrait-sm .portrait-frame{border-width:var(--bw);width:40px;height:40px}.portrait-sm .portrait-frame .icon{width:32px;height:32px}.portrait-sm .portrait-plate{display:none}.portrait-lg .portrait-frame{width:112px;height:112px}.portrait-lg .portrait-role{font-size:var(--fs-xs);color:var(--muted);display:block}.debrief-panel{gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-sunken);border:var(--bw) solid var(--line);align-items:flex-start;display:flex}.debrief-body{gap:var(--sp-1);flex-direction:column;min-width:0;display:flex}.debrief-text{font-size:var(--fs-sm);line-height:var(--lh-body)}
