: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-nvg-phosphor:#c4ffcc;--c-nvg-edge:#010603;--c-night-light:#ffe2b4;--c-storm-sand:#c9a36a;--c-storm-snow:#e4ecf2;--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;--reload-fill:var(--c-gold);--reload-ready:var(--c-accent);--reload-track:#090c0a99;--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-nvg:4;--z-storm:3;--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,.chip-btn.dim{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)}}.flag-note{width:min(80vw,360px);min-height:48px;padding:0 var(--sp-3,12px);border:1px solid var(--line-strong);background:var(--c-black);color:inherit;font:inherit;border-radius:8px}.dialog-row{gap:var(--sp-3,12px);justify-content:center;display:flex}.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.main-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);overflow-y:auto}.main-head{align-items:center;gap:var(--sp-3);min-height:var(--tap-min);flex:none;display:flex}.main-spacer{flex:auto}.main-body{justify-content:center;align-items:center;gap:var(--sp-4);flex-direction:column;flex:auto;min-height:0;display:flex}.main-title{z-index:1;text-shadow:var(--shadow-text);margin:0;position:relative}.main-hero{flex:260px;justify-content:center;align-items:center;width:min(100%,560px);min-height:0;display:flex;position:relative}.main-stage{z-index:0;pointer-events:none;position:absolute;inset:0}.main-stage .mannequin{background:radial-gradient(ellipse at 50% 72%, color-mix(in srgb, var(--c-accent) 14%, transparent) 0%, transparent 55%);border:none;height:auto;position:absolute;inset:0}.main-buttons{gap:var(--sp-3);flex-direction:column;width:min(100%,360px);display:flex}.main-buttons .mbtn{width:100%;min-height:var(--tap-primary);padding:var(--sp-2) var(--sp-5);font-size:var(--fs-lg);justify-content:flex-start}.main-buttons .main-play-btn{min-height:72px;font-size:var(--fs-xl);font-family:var(--font-display);text-transform:uppercase}.hub-back-btn{flex:none}.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(2,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-night{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.night-chip{align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-pill);border:var(--bw) solid var(--c-info);background:color-mix(in srgb, var(--c-info) 18%, var(--surface-sunken));color:var(--c-info);font-size:var(--fs-xs);font-weight:var(--fw-heavy);flex:none;display:inline-flex}.night-chip.small{padding:0 var(--sp-1);align-self:flex-start}.brief-night-hint{min-width:0;color:var(--text);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.main-panel{padding:var(--sp-2) var(--sp-3);gap:var(--sp-2)}.main-body{gap:var(--sp-5);flex-direction:row;align-items:stretch}.main-hero{flex:1 1 0;width:auto}.main-buttons{align-self:center;gap:var(--sp-2)}.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)}.merc-section{gap:var(--sp-2);flex-direction:column;display:flex}.merc-glyph{border-radius:var(--r-sm);background:var(--surface-sunken);width:40px;height:40px;color:var(--team);justify-content:center;align-items:center;display:inline-flex}.merc-chip .btn-text{flex-direction:column;display:flex}.merc-chip .btn-label{color:var(--text-strong)}.merc-chip .merc-fee{color:var(--warn)}.merc-chip.unaffordable{border-style:dashed}.merc-chip.unaffordable .merc-glyph{opacity:.5}.merc-chip.unaffordable .merc-fee{color:var(--danger)}.merc-total{font-size:var(--fs-xs)}.merc-chip .merc-ability{color:var(--muted)}.merc-chips{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.merc-chips .merc-chip,.merc-chips .merc-chip .btn-text{min-width:0}.merc-all-chip,.merc-chips .hint{grid-column:1/-1}.merc-all-chip.on{border-color:var(--team)}.brief-mods{align-items:center;gap:var(--sp-2);margin:var(--sp-1) 0 var(--sp-2);flex-wrap:wrap;display:flex}.mod-chip{align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-pill);border:var(--bw) solid color-mix(in srgb, var(--warn) 60%, transparent);background:color-mix(in srgb, var(--warn) 14%, var(--surface));color:var(--text-strong);font-size:var(--fs-xs);font-weight:var(--fw-heavy);display:inline-flex}.mod-chip.small{padding:2px 4px}.mod-hint{color:var(--muted);font-weight:var(--fw-regular)}.mod-reward{color:var(--warn);font-size:var(--fs-xs);font-weight:var(--fw-heavy)}.brief-bonus{align-items:flex-start;gap:var(--sp-2);width:100%;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-md);border:var(--bw) dashed color-mix(in srgb, var(--warn) 55%, transparent);color:var(--warn);display:flex}.bonus-text{column-gap:var(--sp-2);font-size:var(--fs-xs);flex-wrap:wrap;display:flex}.bonus-title{font-weight:var(--fw-heavy);text-transform:uppercase;letter-spacing:var(--track-caps)}.bonus-what{color:var(--text-strong)}.bonus-pay{color:var(--muted)}.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)}.pause-tips{width:100%;font-size:var(--fs-sm);color:var(--muted)}.pause-tips summary{min-height:var(--tap-min);cursor:pointer;align-items:center;display:flex}.pause-tip-list{padding-left:var(--sp-5);gap:var(--sp-1);flex-direction:column;margin:0;display:flex}.end-merc{gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);border:var(--bw) solid var(--line);background:var(--surface-raised);text-align:left;font-size:var(--fs-xs);flex-direction:column;display:flex}.end-merc-head{align-items:baseline;gap:var(--sp-2);display:flex}.end-merc-name{font-size:var(--fs-sm);font-weight:var(--fw-heavy);color:var(--text-strong)}.end-merc-type{color:var(--muted)}.end-merc-out{color:var(--danger);font-weight:var(--fw-heavy)}.end-merc-fee{color:var(--warn)}.econ-bonus{align-items:center;gap:var(--sp-1);color:var(--muted);font-size:var(--fs-xs);font-weight:var(--fw-heavy);display:flex}.econ-bonus.met{color:var(--warn)}.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:max(230px,60vh)}}.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}.zoom-ctl{right:var(--sp-1);z-index:2;gap:var(--sp-1);flex-direction:column;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.zoom-ctl .preview-zoom{width:var(--tap-min);height:var(--tap-min);min-width:var(--tap-min);background:color-mix(in srgb, var(--surface-raised) 80%, transparent);color:var(--text-strong);padding:0}@media (min-width:641px) and (min-height:481px){.appearance-panel .mannequin{height:60vh}.appearance-panel .preset-list{gap:var(--sp-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.appearance-panel .preset-row{gap:var(--sp-1);grid-template-columns:1fr 1fr;display:grid}.appearance-panel .preset-row .preset-name{white-space:nowrap;grid-column:1/-1}.appearance-panel .preset-row .mbtn.small{min-width:0;padding:0 var(--sp-1)}}.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{flex:none;min-width:120px;position:relative}.shop-tabs{padding-top:var(--sp-2);flex-wrap:nowrap}.shop-tabs .sort-afford-btn{flex:none}.shop-tabs .sort-afford-btn.selected{color:var(--c-accent);box-shadow:inset 0 0 0 2px var(--c-accent)}.item-stars{color:var(--c-gold);filter:drop-shadow(0 1px 1px var(--c-black));pointer-events:none;gap:1px;display:flex;position:absolute;bottom:2px;left:2px}.service-icon{color:var(--c-sand-100);background:radial-gradient(circle at 40% 30%, var(--c-tile-hi), var(--c-tile-lo) 75%);border-radius:var(--r-sm)}.item-row[data-market]{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--c-epic) 45%, transparent)}.item-row.maxed .item-price{color:var(--c-gold)}.service-desc{margin:var(--sp-2) 0}.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 .cos-text,.cos-item.locked:not(.with-icon){padding-right:20px}.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);min-height:0;margin-bottom:calc(-1 * (var(--tap-min) + var(--sp-1)));flex:0 0 45%;overflow:hidden}.appearance-panel .mannequin{flex:1 1 0;height:auto;min-height:0}.appearance-panel .preset-list{gap:var(--sp-1);flex:none;order:-1;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.appearance-panel .preset-row{grid-template-columns:1fr 1fr;gap:2px;display:grid}.appearance-panel .preset-row .preset-name{font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;grid-column:1/-1;line-height:1.1;overflow:hidden}.appearance-panel .preset-row .mbtn.small{min-height:var(--tap-min);min-width:0;font-size:var(--fs-xs);padding:0 2px;line-height:1.1}.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(172px,1fr));grid-auto-rows:max-content;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-grid .cos-item .cos-icon{width:36px;height:36px}.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{height:var(--tap-min);margin-left:calc(45% + var(--sp-3));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:96px}.item-list.item-grid.shop-list{grid-auto-rows:max-content;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}.inventory-tabs{flex:none}.screen-head .missions-btn{min-height:var(--tap-min);padding:0 var(--sp-3);font-size:var(--fs-sm)}@media (max-width:960px){.gear-panel .screen-head .screen-title{display:none}.gear-panel .screen-head .inventory-tabs{flex:auto}}@media (max-height:520px){.eq-center .zoom-ctl{display:none}}.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}.hud-warm .hud,.hud-warm.input-touch .touch-controls{visibility:hidden;display:block}.hud-warm .top-right{visibility:hidden;display:flex}.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,.object-bar{text-align:center;width:100%;display:none}.boss-bar.on,.object-bar.on{animation:ui-fade-in var(--dur-med) var(--ease-out);display:block}.boss-name,.object-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,.object-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,.object-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}.tbtn.swap-btn.swapping{opacity:1;border-color:var(--team);color:var(--team)}@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}.debug.automated .dbg-btn{display:none}.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}.letterbox-on .player-marker{display:none}.ammo{transform-origin:0;display:inline-block}.reload-ring{background:conic-gradient(var(--reload-fill) calc(var(--reload,0) * 1turn), var(--reload-track) 0);width:18px;height:18px;-webkit-mask:radial-gradient(circle, transparent 4.5px, var(--c-black) 5px);-webkit-mask:radial-gradient(circle, transparent 4.5px, var(--c-black) 5px);mask:radial-gradient(circle, transparent 4.5px, var(--c-black) 5px);filter:drop-shadow(0 0 1px var(--player-ring-outline));visibility:hidden;border-radius:50%;align-self:center}.weapon-row.reload-reloading .reload-ring,.weapon-row.reload-done .reload-ring,.weapon-row.reload-cancelled .reload-ring{visibility:visible}.weapon-row.reload-done .reload-ring{background:var(--reload-ready);animation:.35s ease-out reload-flash}.weapon-row.reload-cancelled .reload-ring{opacity:.6}.weapon-row.reload-done .ammo{color:var(--reload-ready);animation:.35s cubic-bezier(.3,1.6,.5,1) ammo-pop}.weapon-row.reload-empty .ammo{color:var(--danger);animation:.5s ease-in-out infinite alternate ammo-pulse}.reload-btn .ring{background:conic-gradient(var(--reload-fill) calc(var(--reload,0) * 1turn), transparent 0);-webkit-mask:radial-gradient(closest-side, transparent calc(100% - 5px), var(--c-black) calc(100% - 4.5px));-webkit-mask:radial-gradient(closest-side, transparent calc(100% - 5px), var(--c-black) calc(100% - 4.5px));mask:radial-gradient(closest-side, transparent calc(100% - 5px), var(--c-black) calc(100% - 4.5px));pointer-events:none;opacity:0;border-radius:50%;position:absolute;inset:2px}.reload-btn.reload-reloading .ring,.reload-btn.reload-cancelled .ring{opacity:1}.reload-btn.reload-done .ring{opacity:1;background:var(--reload-ready);animation:.35s ease-out forwards reload-flash}.reload-btn.reload-empty{animation:.5s ease-in-out infinite alternate reload-btn-pulse}.player-marker .reload-bar{border-radius:var(--r-pill);background:var(--reload-track);width:36px;height:5px;box-shadow:0 0 0 1px var(--player-ring-outline);display:none;position:absolute;top:11px;left:-18px;overflow:hidden}.player-marker .reload-bar .fill{height:100%;width:calc(var(--reload,0) * 100%);background:var(--reload-fill)}.player-marker.reload-reloading .reload-bar,.player-marker.reload-done .reload-bar,.player-marker.reload-cancelled .reload-bar{display:block}.player-marker.reload-done .reload-bar .fill{background:var(--reload-ready)}@keyframes reload-flash{0%{filter:brightness(2.2);transform:scale(1.25)}to{filter:brightness();transform:scale(1)}}@keyframes ammo-pop{0%{transform:scale(1)}40%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes ammo-pulse{0%{opacity:1}to{opacity:.45}}@keyframes reload-btn-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--danger) 70%, transparent)}to{box-shadow:0 0 0 6px color-mix(in srgb, var(--danger) 0%, transparent)}}@media (max-height:520px) and (pointer:coarse){.hud-top-left{gap:2px}.hud-status{gap:var(--sp-1)}.minimap{width:68px;height:68px}.hud-stats{gap:2px;width:128px;min-width:0}.hp-bar{width:128px;height:10px}.armor-bar{width:128px;height:4px}.ammo{font-size:var(--fs-lg);white-space:nowrap}.dash-meter{width:64px;height:3px}.hud-level,.hud-chips,.playing .version-corner,.paused .version-corner{display:none}.hud-top-left .objective-tracker.on{max-width:calc(20vw - var(--safe-l));padding:1px var(--sp-1);background:color-mix(in srgb, var(--c-ink-950) 55%, transparent);border-left-width:3px;order:2}.hud-top-left .objective-tracker .task{font-size:var(--fs-xs);line-height:15px}.hud-top-left .objective-tracker .hostage-pips{display:none}.hud-top-left .loot-toasts{max-width:calc(20vw - var(--safe-l));order:3;align-items:flex-start;gap:2px;position:static}.hud-top-left .loot-toast{max-width:100%;padding:0 var(--sp-1);font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;background:color-mix(in srgb, var(--c-ink-950) 55%, transparent);border-left-width:3px;line-height:15px;overflow:hidden}.hud-top-left .loot-toast:nth-child(n+3){display:none!important}.hud-top-left .hud-alert{max-width:calc(20vw - var(--safe-l));padding:0 var(--sp-1);font-size:var(--fs-xs);text-overflow:ellipsis;order:4;gap:2px;line-height:15px;overflow:hidden}.hud-top-left .hud-alert svg{display:none}.hud-top-left .hud-alert .alert-text{white-space:nowrap;text-overflow:ellipsis;letter-spacing:0;min-width:0;overflow:hidden}.notify-top{gap:2px;width:34vw;max-width:34vw}.boss-name,.object-name{font-size:var(--fs-xs);margin-bottom:0}.boss-track,.object-track{height:6px}.radio-panel{width:100%;padding:3px var(--sp-2);pointer-events:auto;background:color-mix(in srgb, var(--c-ink-950) 70%, transparent)}.radio-panel .radio-body{-webkit-line-clamp:2;font-size:var(--fs-xs);-webkit-box-orient:vertical;line-height:17px;display:-webkit-box;overflow:hidden}.radio-panel .radio-speaker{margin-right:var(--sp-1);font-size:var(--fs-xs);display:inline}.radio-panel .radio-text{font-size:var(--fs-xs);font-weight:var(--fw-regular);display:inline}.top-right{gap:var(--sp-1)}.playing .top-right .fullscreen-btn{display:none}.top-right .sbtn,.top-right .sbtn.bag-btn,.input-touch .sbtn.pause-btn{min-width:var(--tap-min);min-height:var(--tap-min);width:var(--tap-min);height:var(--tap-min);padding:0}.touch-buttons{gap:2px;top:calc(22.5% + 4px);bottom:auto;right:4px}.action-row{gap:2px}.tbtn{--tap-hud:var(--tap-min);opacity:.62;font-size:var(--fs-xs)}.tbtn:active,.tbtn.held,.tbtn.reload-empty{opacity:1}.tbtn .ico{width:22px;height:22px}.tbtn .tbtn-label{display:none}.heal-btn .count{top:2px;right:6px}.context-buttons{gap:2px;position:absolute;bottom:calc(100% + 4px);right:104px}.top-right .bag-btn{flex-direction:column;gap:0}.playing .hint-bubble{max-width:40vw;padding:2px var(--sp-2)}.playing .hint-bubble .hint-text{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}}@media (max-height:399px){.radio-panel .portrait{display:none}}.loot-label{align-items:center;gap:var(--sp-1);border-radius:var(--r-sm);background:var(--hud-panel);border:1px solid var(--loot-color,var(--text-strong));color:var(--loot-color,var(--text-strong));font-size:var(--fs-xs);white-space:nowrap;pointer-events:none;opacity:0;padding:2px 8px 2px 4px;transition:opacity .15s;display:flex;position:absolute;top:0;left:0}.loot-label.on{opacity:1}.loot-label-icon{width:22px;height:22px;display:inline-flex}.merc-status{align-items:center;gap:var(--sp-1);color:var(--hud-text);text-shadow:var(--hud-shadow);align-self:flex-start;display:inline-flex}.merc-status .ico{color:var(--team)}.merc-hp{border-radius:var(--r-pill);background:var(--reload-track);border:1px solid var(--player-ring-outline);width:48px;height:6px;overflow:hidden}.merc-hp-fill{background:var(--c-success);width:100%;height:100%}.merc-status-state{color:var(--warn)}.merc-status[data-life=out] .merc-status-state{color:color-mix(in srgb, var(--c-danger) 45%, var(--c-white))}.merc-status[data-life=out] .merc-status-name{opacity:.7}.merc-order-btn{right:calc(var(--safe-r) + var(--sp-2));bottom:calc(var(--safe-b) + var(--sp-2));gap:var(--sp-2);position:absolute}.input-touch .merc-order-btn{display:none!important}.merc-key{min-width:22px;height:22px;padding:0 var(--sp-1);border-radius:var(--r-sm);border:1px solid var(--hud-btn-line);font-size:var(--fs-xs);justify-content:center;align-items:center;display:inline-flex}.merc-order-btn.dim,.merc-order-tbtn.dim{opacity:.45}.merc-order-btn.holding,.merc-order-tbtn.holding{border-color:var(--warn)}.merc-order-tbtn .merc-ico-follow,.merc-order-tbtn.holding .merc-ico-hold{display:none}.merc-order-tbtn.holding .merc-ico-follow{display:inline-flex}.merc-marker{pointer-events:none;will-change:transform;width:0;height:0;display:none;position:absolute;top:0;left:0}.merc-marker.on{display:block}.merc-marker:before{content:"";border-right:2.5px solid var(--merc-friend,var(--player-ring));border-bottom:2.5px solid var(--merc-friend,var(--player-ring));opacity:.9;width:8px;height:8px;filter:drop-shadow(0 0 1px var(--player-ring-outline)) drop-shadow(0 0 1px var(--player-ring-outline));position:absolute;top:-12px;left:-6px;transform:rotate(45deg)}.letterbox-on .merc-marker,.letterbox-on .merc-revive,.letterbox-on .merc-mark-tag{display:none}.merc-ability-dot{border-radius:var(--r-pill);border:1px solid var(--player-ring-outline);background:var(--reload-track);width:8px;height:8px}.merc-ability-dot.on{background:var(--team);box-shadow:0 0 4px var(--team)}.merc-mark-tag{pointer-events:none;will-change:transform;width:0;height:0;display:none;position:absolute;top:0;left:0}.merc-mark-tag.on{display:block}.merc-mark-diamond{border:3px solid var(--team);background:color-mix(in srgb, var(--team) 25%, transparent);width:18px;height:18px;filter:drop-shadow(0 0 1px var(--player-ring-outline)) drop-shadow(0 0 2px var(--player-ring-outline));animation:.6s ease-in-out infinite alternate merc-mark-pulse;position:absolute;top:-22px;left:-9px;transform:rotate(45deg)}@keyframes merc-mark-pulse{0%{opacity:.75;scale:.9}to{opacity:1;scale:1.1}}@media (prefers-reduced-motion:reduce){.merc-mark-diamond{animation:none}}.merc-revive{--p:0;pointer-events:none;will-change:transform;width:0;height:0;display:none;position:absolute;top:0;left:0}.merc-revive.on{display:block}.merc-revive-ring{background:conic-gradient(var(--team) calc(var(--p) * 1%), var(--reload-track) 0);width:44px;height:44px;-webkit-mask:radial-gradient(circle, transparent 15px, var(--c-black) 16px);-webkit-mask:radial-gradient(circle, transparent 15px, var(--c-black) 16px);mask:radial-gradient(circle, transparent 15px, var(--c-black) 16px);box-shadow:0 0 0 1px var(--player-ring-outline);border-radius:50%;position:absolute;top:-56px;left:-22px}.merc-revive-text{gap:var(--sp-1);padding:1px var(--sp-2);border-radius:var(--r-sm);background:var(--hud-panel);color:var(--hud-text);font-size:var(--fs-xs);font-weight:var(--fw-heavy);white-space:nowrap;display:flex;position:absolute;top:26px;left:0;transform:translate(-50%)}.merc-revive-left{color:var(--warn)}.night-desk{right:calc(var(--safe-r) + var(--sp-2));bottom:calc(var(--safe-b) + var(--sp-2) + var(--tap-min) + var(--sp-2));align-items:flex-end;gap:var(--sp-2);flex-direction:column;display:flex;position:absolute}.input-touch .night-desk{display:none}.night-btn{gap:var(--sp-2)}.night-btn.on,.night-tbtn.on{border-color:var(--c-night-light);background:color-mix(in srgb, var(--c-night-light) 26%, var(--hud-btn-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--c-night-light) 45%, transparent)}.night-btn.on .ico,.night-tbtn.on .ico{color:var(--c-night-light)}.night-btn.nvg-btn.on,.night-tbtn.nvg-tbtn.on{border-color:var(--c-success);background:color-mix(in srgb, var(--c-success) 26%, var(--hud-btn-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--c-success) 45%, transparent)}.night-btn.nvg-btn.on .ico,.night-tbtn.nvg-tbtn.on .ico{color:var(--c-success)}.night-column{right:var(--safe-r);top:calc(var(--safe-t) + var(--tap-hud) + var(--sp-2));align-items:flex-end;gap:var(--sp-2);pointer-events:none;flex-direction:column;display:flex;position:absolute}@media (max-height:520px) and (pointer:coarse){.night-column{top:calc(env(safe-area-inset-top,0px) + 2px);gap:2px;right:4px}.touch-controls.night-tools .touch-buttons{top:calc(env(safe-area-inset-top,0px) + 102px)}.touch-controls.night-tools .context-buttons{bottom:auto;top:calc(var(--safe-t) - env(safe-area-inset-top,0px) - 102px);right:calc(var(--safe-r) + 152px)}.touch-controls.night-tools~.top-right{right:calc(var(--safe-r) + 52px)}}.input-touch .night-tbtn.on{opacity:1}.night-seen{align-items:center;gap:var(--sp-1);color:var(--hud-text);align-self:flex-start;display:inline-flex}.night-seen[data-seen="0"]{color:var(--muted)}.night-seen[data-seen="0"] .ico{opacity:.55}.night-seen[data-seen="1"]{box-shadow:inset 0 0 0 1px var(--warn)}.night-seen[data-seen="2"]{color:var(--warn);box-shadow:inset 0 0 0 1px var(--warn)}.nvg-overlay{z-index:var(--z-nvg);pointer-events:none;mix-blend-mode:multiply;background-color:var(--c-nvg-phosphor);background-image:radial-gradient(ellipse farthest-corner at center, transparent var(--nvg-from,42%), color-mix(in srgb, var(--c-nvg-edge) var(--nvg-dark,82%), transparent) 100%), var(--nvg-grain,none);background-size:100% 100%, var(--nvg-tile,96px) var(--nvg-tile,96px);background-position:50%,0 0;background-repeat:no-repeat,repeat;display:none;position:absolute;inset:0}.nvg-overlay.on{animation:.6s steps(7,end) infinite nvg-grain;display:block}@keyframes nvg-grain{0%{background-position:50%,0 0}to{background-position:50%,670px 389px}}.object-bar .object-name{color:color-mix(in srgb, var(--team) 55%, var(--c-white))}.object-bar .object-track{border-color:color-mix(in srgb, var(--team) 55%, transparent)}.object-bar .object-fill{background:linear-gradient(180deg, color-mix(in srgb, var(--team) 80%, var(--c-white)) 0%, var(--team) 100%)}.wave-arrow{will-change:transform;display:none;position:absolute;top:0;left:0}.wave-arrow.on{animation:.6s ease-in-out infinite alternate wave-pulse;display:block}.wave-arrow .head{width:32px;height:32px;position:absolute;top:-16px;left:-16px}.wave-arrow .head:before{content:"";border-top:14px solid #0000;border-bottom:14px solid #0000;border-left:26px solid var(--danger);filter:drop-shadow(0 1px 2px color-mix(in srgb, var(--c-black) 80%, transparent));position:absolute;top:2px;left:4px}.wave-arrow .dist{text-align:center;width:40px;font-size:var(--fs-sm);font-weight:var(--fw-heavy);color:var(--danger);position:absolute;top:16px;left:-20px}@keyframes wave-pulse{0%{opacity:.55}to{opacity:1}}.storm-overlay{z-index:var(--z-storm);pointer-events:none;--storm-tint:var(--c-storm-sand);background-image:radial-gradient(ellipse farthest-corner at center, transparent 26%, color-mix(in srgb, var(--storm-tint) 78%, transparent) 100%);background-color:color-mix(in srgb, var(--storm-tint) 14%, transparent);display:none;position:absolute;inset:0}.playing .storm-overlay[data-storm=sand],.playing .storm-overlay[data-storm=snow]{display:block}.storm-overlay[data-storm=snow]{--storm-tint:var(--c-storm-snow)}.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 mount""weapon weapon weapon""secondary secondary secondary";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-column:1/-1;display:flex}.eq-weapon{gap:var(--sp-2);grid-area:weapon;min-width:0;display:flex}.eq-weapon>.eq-slot{flex:auto}.eq-weapon.eq-secondary{grid-area:secondary}.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}}@media (max-height:520px) and (pointer:coarse){.bagfull-prompt{top:auto;bottom:var(--safe-b);border-width:var(--bw);gap:2px;max-width:28vw;padding:2px}.bagfull-prompt .prompt-text{display:none}.bagfull-prompt .item-icon{width:32px;height:32px}.bagfull-prompt .prompt-actions{gap:2px;display:flex}.bagfull-prompt .prompt-actions .mbtn{font-size:var(--fs-xs);padding:0 4px}}.gs-chip{align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-pill);border:var(--bw) solid var(--team);background:color-mix(in srgb, var(--c-ink-950) 80%, transparent);color:var(--text-strong);font-family:var(--font-display);font-size:var(--fs-sm);font-weight:var(--fw-black);white-space:nowrap;display:inline-flex}.gs-chip[data-status=near]{border-color:var(--c-amber);color:var(--c-amber)}.gs-chip[data-status=low]{border-color:var(--danger);color:var(--danger)}.streak-chip{padding:2px var(--sp-2);border-radius:var(--r-pill);border:var(--bw) solid var(--warn);color:var(--warn);font-size:var(--fs-xs);font-weight:var(--fw-heavy);white-space:nowrap}.main-contracts{z-index:1;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-md);border:var(--bw) solid var(--line);background:color-mix(in srgb, var(--c-ink-950) 82%, transparent);font-size:var(--fs-xs);text-align:left;flex-direction:column;gap:2px;display:flex;position:absolute;bottom:0;left:0;right:0}.contracts-head{justify-content:space-between;gap:var(--sp-2);color:var(--muted);display:flex}.contracts-title{color:var(--text-strong);font-weight:var(--fw-heavy);letter-spacing:var(--track-caps);text-transform:uppercase}.contract-row{gap:var(--sp-2);color:var(--text);grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;display:grid}.contract-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.contract-progress{font-family:var(--font-mono);color:var(--muted)}.contract-reward{color:var(--warn);font-weight:var(--fw-bold)}.contract-row.done{color:var(--muted)}.contract-row.done .contract-progress{color:var(--c-success)}.brief-gs{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--muted);flex:none;display:flex}.brief-gs[data-status=low] .brief-gs-note{color:var(--danger)}.brief-gs[data-status=near] .brief-gs-note{color:var(--c-amber)}.mission-card .gs-chip.mission-gs{font-size:var(--fs-xs);padding:0 var(--sp-1)}.gear-screen.inv-screen{padding-top:max(4px, env(safe-area-inset-top));padding-bottom:max(4px, env(safe-area-inset-bottom))}.gear-screen .panel.wide.inv-panel{grid-template-columns:290px minmax(0,1fr) 52px;grid-template-rows:var(--tap-min) minmax(0, 1fr);gap:var(--sp-1) var(--sp-2);width:100%;max-width:1180px;height:100%;max-height:100%;padding:var(--sp-1) var(--sp-2);grid-template-areas:"head tools rail""eq stash rail";display:grid;overflow:hidden}.inv-panel>.inv-head{gap:var(--sp-1);grid-area:head;min-width:0}.inv-panel>.inv-head .screen-title,.inv-panel>.inv-head .back-btn .nav-label{display:none}.inv-panel>.inv-head .back-btn{min-width:var(--tap-min);justify-content:center;padding:0}.inv-panel>.inv-head .inventory-tabs{gap:var(--sp-1);flex:auto;min-width:0}.inv-panel>.inv-head .inventory-tab:not(.selected) .btn-label{display:none}.inv-panel>.inv-head .inventory-tab{min-width:var(--tap-min);padding:0 var(--sp-2)}.inv-panel>.inv-head .head-right{flex:none}.inv-panel>.inv-head .missions-btn{min-width:var(--tap-min);min-height:var(--tap-min);padding:0 var(--sp-2)}.inv-panel>.inv-head .missions-btn .btn-text{display:none}.inv-panel>.inv-eq{flex-direction:column;grid-area:eq;min-width:0;min-height:0;display:flex}.inv-panel .eq-panel{grid-template-columns:60px minmax(0,1fr) 60px;grid-template-rows:repeat(12, minmax(0, 1fr)) var(--tap-min);gap:var(--sp-1);flex:auto;grid-template-areas:"helmet center primary""helmet center primary""helmet center primary""mount center primary""mount center sight""mount center sight""vest center sight""vest center sight""vest center muzzle""backpack center muzzle""backpack center muzzle""backpack center muzzle""secondarySight secondary secondaryMuzzle";min-height:0}.inv-panel .eq-panel .eq-weapon,.inv-panel .eq-panel .eq-weapon-subs{display:contents}.inv-panel .eq-panel .eq-look{display:none!important}.inv-panel .eq-center{min-height:0;position:relative;overflow:hidden}.inv-panel .eq-center .mannequin{height:100%;min-height:0}.inv-panel .eq-slot,.inv-panel .eq-slot.sub{min-width:0;min-height:var(--tap-min);max-width:none;box-shadow:0 2px 0 var(--c-ink-950);flex-direction:column;justify-content:center;align-items:center;gap:0;padding:2px}.inv-panel .eq-slot .item-icon,.inv-panel .eq-slot.sub .item-icon{width:40px;height:40px}.inv-panel .eq-slot .slot-text,.inv-panel .eq-slot .insured-mark .badge-text{display:none}.inv-panel .eq-slot .insured-mark{padding:0 2px;bottom:1px;right:1px}.inv-panel .eq-slot .upgrade-mark{top:1px;right:1px}.inv-gs,.inv-credits{top:var(--sp-1);z-index:1;pointer-events:none;position:absolute}.inv-gs{left:var(--sp-1)}.inv-credits{right:var(--sp-1);font-size:var(--fs-xs);text-shadow:var(--shadow-text)}.inv-panel>.inv-tools{align-items:center;gap:var(--sp-1);grid-area:tools;min-width:0;display:flex;overflow:hidden}.inv-tools .chip-btn{min-height:var(--tap-min);min-width:var(--tap-min);padding:0 var(--sp-2);gap:var(--sp-1);font-size:var(--fs-xs);white-space:nowrap;flex:none}.inv-tools .sort-btn.filtered{border-color:var(--warn)}.inv-tools .chip-btn.dim{opacity:.55}.inv-tools .chip-btn.armed{border-color:var(--danger);color:var(--text-strong);background:color-mix(in srgb, var(--danger) 35%, var(--surface-raised))}.inv-tools .stash-count{font-family:var(--font-mono);font-weight:var(--fw-bold);flex:none;margin-left:auto}.inv-panel>.inv-stash{flex-direction:column;grid-area:stash;gap:0;min-width:0;min-height:0;display:flex;position:relative}.inv-panel .item-list.inv-grid{align-content:start;gap:var(--sp-1);border-radius:var(--r-md);background:var(--surface-sunken);flex:auto;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));grid-auto-rows:max-content;min-height:0;max-height:none;padding:2px;display:grid;overflow:hidden auto}.inv-grid .item-row.inv-tile{aspect-ratio:1;border-width:var(--bw-thick);border-color:color-mix(in srgb, var(--rarity) 75%, var(--line));-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:0;height:auto;min-height:0;padding:2px}.inv-tile .tile-icon .item-icon,.inv-tile .item-icon{width:100%;max-width:64px;height:100%;max-height:64px}.inv-tile .tile-icon{justify-content:center;align-items:center;width:82%;height:82%;display:flex}.inv-tile .tile-name{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.inv-tile .tile-gs{border-radius:var(--r-sm);background:color-mix(in srgb, var(--c-ink-950) 80%, transparent);color:var(--text-strong);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-black);padding:0 3px;line-height:1.1;position:absolute;bottom:1px;left:2px}.inv-tile .ico.tile-cmp{position:absolute;top:1px;left:auto;right:1px}.inv-tile .junk-mark{font-size:var(--fs-xs);font-weight:var(--fw-heavy);color:var(--warn);line-height:1.1;position:absolute;bottom:1px;right:2px}.inv-tile[data-fit=below] .tile-icon{opacity:.5}.inv-tile.pressed{transform:scale(.94)}.inv-pop{z-index:2;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-md);border:var(--bw) solid var(--line-strong);background:var(--surface);box-shadow:var(--shadow-lift);touch-action:pan-y;flex-direction:column;display:none;position:absolute;inset:0;overflow:hidden auto}.inv-pop.on{animation:ui-fade-in var(--dur-fast) var(--ease-out);display:flex}.inv-pop.compare-card.fresh{pointer-events:none}.inv-pop.sort-menu{max-height:100%;bottom:auto}.pop-title{color:var(--muted);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--track-caps);text-transform:uppercase}.pop-row{gap:var(--sp-1);grid-template-columns:repeat(auto-fill,minmax(104px,1fr));display:grid}.pop-row .mbtn.small{min-height:var(--tap-min);font-size:var(--fs-xs)}.pop-row .mbtn.selected{border-color:var(--team);background:color-mix(in srgb, var(--team) 22%, var(--surface-raised));color:var(--text-strong)}.pop-row .rarity-toggle{color:var(--rarity)}.compare-card .card-close-btn{top:var(--sp-1);right:var(--sp-1);z-index:1;min-width:var(--tap-min);min-height:var(--tap-min);position:absolute}.compare-card .item-detail{min-height:0;padding-right:var(--tap-min);overflow:visible}.compare-card .compare-pic .item-icon{width:52px;height:52px}.compare-card .stat-bars{gap:2px}.compare-card .detail-actions{bottom:calc(-1 * var(--sp-2));margin:auto calc(-1 * var(--sp-2)) calc(-1 * var(--sp-2));padding:var(--sp-2);gap:var(--sp-1);background:var(--surface);border-top:1px solid var(--line);flex-wrap:wrap;display:flex;position:sticky}.compare-card .detail-actions .mbtn{min-height:var(--tap-min);flex:1 1 0;min-width:96px}.compare-card .detail-actions .hint{flex-basis:100%}.inv-stash>.gear-message{left:var(--sp-2);right:var(--sp-2);bottom:var(--sp-2);z-index:3;text-align:center;pointer-events:none;min-height:0;text-shadow:var(--shadow-text);position:absolute}.inv-stash>.gear-message:empty{display:none}.inv-panel>.inv-rail{touch-action:pan-y;flex-direction:column;grid-area:rail;gap:0;min-height:0;display:flex;overflow:hidden auto}.inv-rail .rail-btn{width:100%;min-width:var(--tap-min);min-height:var(--tap-min);height:var(--tap-min);border-radius:var(--r-sm);flex:none;justify-content:center;padding:0}.inv-rail .rail-label{display:none}@media (min-width:1000px) and (min-height:600px){.gear-screen .panel.wide.inv-panel{grid-template-columns:440px minmax(0,1fr) 140px;grid-template-rows:var(--tap-primary) minmax(0, 1fr);gap:var(--sp-2) var(--sp-3);padding:var(--sp-3)}.inv-panel>.inv-head .inventory-tab .btn-label,.inv-panel>.inv-head .missions-btn .btn-text,.inv-panel>.inv-head .back-btn .nav-label{display:inline}.inv-panel>.inv-head .back-btn{padding:0 var(--sp-2)}.inv-panel .eq-panel{grid-template-columns:112px minmax(0,1fr) 112px;grid-template-rows:repeat(12, minmax(0, 1fr)) var(--tap-primary)}.inv-panel .eq-slot .slot-text{text-align:center;align-items:center;display:flex}.inv-panel .eq-slot .slot-name{display:none}.inv-panel .item-list.inv-grid{gap:var(--sp-2);padding:var(--sp-1);grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}.inv-tile .tile-icon .item-icon,.inv-tile .item-icon{max-width:80px;max-height:80px}.inv-rail .rail-btn{justify-content:flex-start;gap:var(--sp-2);padding:0 var(--sp-2)}.inv-rail .rail-label{font-size:var(--fs-xs);display:inline}.inv-panel>.inv-rail{gap:var(--sp-1)}}@media (max-width:640px) and (orientation:portrait){.gear-screen .panel.wide.inv-panel{grid-template:"head""eq"260px"rail""tools""stash"minmax(0,1fr)/minmax(0,1fr)}.inv-panel>.inv-rail{flex-flow:wrap;overflow:visible}.inv-rail .rail-btn{flex:1 0 var(--tap-min);width:auto}.inv-panel>.inv-tools{flex-wrap:wrap}}.appearance-panel .cos-tabs{gap:var(--sp-1);touch-action:manipulation;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:visible}.appearance-panel .cos-tabs .filter-chip.cos-tab,.gear-screen .panel.wide.appearance-panel .cos-tabs .filter-chip{min-width:0;min-height:var(--tap-min);padding:0 var(--sp-1);border-radius:var(--r-sm);font-size:var(--fs-xs);white-space:normal;text-align:center;line-height:1.1}.appearance-panel .cos-grid{touch-action:pan-y;overflow:hidden auto}.appearance-panel .cos-grid .cos-swatches,.appearance-panel .cos-grid .cos-grid-note{grid-column:1/-1}.appearance-panel .cos-swatches{padding-top:var(--sp-1);flex-wrap:wrap;align-items:flex-start}.appearance-panel .cos-swatches .color-which{flex-basis:100%}.appearance-panel .cos-swatches .swatch-list{touch-action:manipulation;flex-wrap:wrap;padding:0;overflow:visible}.appearance-panel .cos-colors.empty{display:none}@media (min-width:1000px) and (min-height:600px){.appearance-panel .cos-tabs{grid-template-columns:repeat(8,minmax(0,1fr))}.appearance-panel .cos-grid{flex:1 1 0;min-height:0;max-height:none}}.gear-panel .inventory-tabs{touch-action:manipulation;overflow:hidden}.gear-screen.shopx-screen{padding-top:max(4px, env(safe-area-inset-top));padding-bottom:max(4px, env(safe-area-inset-bottom))}.gear-screen .panel.wide.shopx-panel{grid-template-columns:auto minmax(0,1fr) 52px;grid-template-rows:var(--tap-min) minmax(0, 1fr);gap:var(--sp-1) var(--sp-2);width:100%;max-width:1180px;height:100%;max-height:100%;padding:var(--sp-1) var(--sp-2);grid-template-areas:"head tools rail""stash stash rail";display:grid;overflow:hidden}.shopx-panel>.shopx-head{gap:var(--sp-2);grid-area:head;min-width:0}.shopx-panel>.shopx-head .screen-title,.shopx-panel>.shopx-head .back-btn .nav-label{display:none}.shopx-panel>.shopx-head .back-btn{min-width:var(--tap-min);justify-content:center;padding:0}.shopx-panel>.shopx-head .head-right{align-items:center;gap:var(--sp-2);display:flex}.shopx-panel>.shopx-tools{grid-area:tools}.shopx-tools .shop-note{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:var(--fs-xs);flex:auto;overflow:hidden}.shopx-tools .stash-count{margin-left:0}.shopx-tools .level-filter-btn.selected{border-color:var(--team);color:var(--text-strong);background:color-mix(in srgb, var(--team) 18%, var(--surface-raised))}.shopx-panel>.shopx-stash{flex-direction:column;grid-area:stash;gap:0;min-width:0;min-height:0;display:flex;position:relative}.shopx-stash>.gear-message{left:var(--sp-2);right:var(--sp-2);bottom:var(--sp-2);z-index:3;text-align:center;pointer-events:none;min-height:0;text-shadow:var(--shadow-text);position:absolute}.shopx-stash>.gear-message:empty{display:none}.shopx-panel .item-list.shopx-grid{align-content:start;gap:var(--sp-1);border-radius:var(--r-md);background:var(--surface-sunken);flex:auto;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));grid-auto-rows:max-content;min-height:0;max-height:none;padding:2px;display:grid;overflow:hidden auto}.shopx-grid .shop-section{padding:2px var(--sp-1) 0;color:var(--muted);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--track-caps);text-transform:uppercase;grid-column:1/-1}.shopx-grid .shop-section.rec-title{color:var(--team)}.shopx-grid .shop-tile{--rarity:var(--text);width:100%;min-height:108px;padding:var(--sp-1) 2px 2px;border-radius:var(--r-md);border:var(--bw-thick) solid color-mix(in srgb, var(--rarity) 75%, var(--line));background:var(--surface-raised);color:var(--text);text-align:center;cursor:pointer;touch-action:manipulation;flex-direction:column;justify-content:flex-start;align-items:center;gap:2px;display:flex;position:relative}.shopx-grid .rec-tile{background:color-mix(in srgb, var(--team) 10%, var(--surface-raised));border-style:dashed}.shopx-grid .shop-tile.selected{border-color:var(--team);background:color-mix(in srgb, var(--team) 18%, var(--surface-raised))}.shopx-grid .shop-tile .tile-icon{justify-content:center;align-items:center;display:flex}.shopx-grid .shop-tile .item-icon{width:60px;height:60px}.shopx-grid .shop-tile .tile-text{align-items:center;min-width:0;max-width:100%;padding:0}.shopx-grid .shop-tile .item-name{color:var(--rarity);font-size:var(--fs-xs);font-weight:var(--fw-heavy);line-height:var(--lh-tight);overflow-wrap:anywhere}.shopx-grid .shop-tile .item-name.tile-name{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.shopx-grid .shop-tile .item-slot,.shopx-grid .shop-tile .item-price{font-size:var(--fs-xs);color:var(--muted);line-height:var(--lh-tight)}.shopx-grid .shop-tile.affordable .item-price{color:var(--warn);font-weight:var(--fw-bold)}.shopx-grid .shop-tile.expensive .item-price{color:var(--danger)}.shopx-grid .shop-tile.expensive .item-icon{opacity:.6}.shopx-grid .shop-tile .tile-gs{border-radius:var(--r-sm);background:color-mix(in srgb, var(--c-ink-950) 80%, transparent);color:var(--text-strong);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-black);padding:0 3px;line-height:1.1;position:absolute;top:2px;left:2px}.shopx-grid .shop-tile .tile-above{border-radius:var(--r-pill);background:var(--warn);color:var(--c-gold-ink);display:inline-flex;position:absolute;top:2px;right:2px}.shopx-grid .shop-tile[data-fit=below] .tile-icon{opacity:.45}.shopx-grid .tailor-row{min-height:var(--tap-primary);flex-direction:row;grid-column:span 2;justify-content:flex-start}.shopx-panel>.shop-tabs.inv-rail{gap:var(--sp-1);touch-action:pan-y;flex-direction:column;grid-area:rail;min-height:0;display:flex;overflow:hidden auto}.shopx-panel .shop-tabs .shop-tab{width:100%;min-width:var(--tap-min);min-height:var(--tap-min);height:var(--tap-min);border-radius:var(--r-sm);flex:none;justify-content:center;padding:0}.shopx-panel .shop-tabs .shop-tab .btn-text{display:none}@media (min-width:1000px) and (min-height:600px){.gear-screen .panel.wide.shopx-panel{grid-template-columns:auto minmax(0,1fr) 170px;grid-template-rows:var(--tap-primary) minmax(0, 1fr);gap:var(--sp-2) var(--sp-3);padding:var(--sp-3)}.shopx-panel>.shopx-head .screen-title{display:block}.shopx-panel>.shopx-head .back-btn .nav-label{display:inline}.shopx-panel>.shopx-head .back-btn{padding:0 var(--sp-2)}.shopx-panel .item-list.shopx-grid{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(124px,1fr))}.shopx-panel .shop-tabs .shop-tab{padding:0 var(--sp-2);justify-content:flex-start}.shopx-panel .shop-tabs .shop-tab .btn-text,.inv-panel>.inv-head .inventory-tab:not(.selected) .btn-label{display:inline}}@media (max-width:640px) and (orientation:portrait){.gear-screen .panel.wide.shopx-panel{grid-template:"head""rail""tools""stash"minmax(0,1fr)/minmax(0,1fr)}.shopx-panel>.shop-tabs.inv-rail{flex-flow:wrap}.shopx-panel .shop-tabs .shop-tab{flex:1 0 var(--tap-min);width:auto}.shopx-panel>.shopx-tools{flex-wrap:wrap}}.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)}
