:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--storm-950:#040b11;--storm-900:#07131d;--storm-850:#0b1c28;--storm-800:#102632;--storm-700:#173846;--teal-500:#2b8b8c;--teal-300:#77c8c3;--orange-500:#f05a35;--orange-400:#ff7046;--amber-400:#ffb43b;--mint-300:#b9f4d0;--bone-100:#f2eadc;--bone-300:#cfc4b2;--danger-400:#ff4d55;--panel:#07131deb;--line:#b9f4d02e;--shadow:0 24px 80px #0000007a;--radius-sm:6px;--radius-md:14px;--radius-lg:24px;--display:Bahnschrift, "Arial Narrow", Impact, sans-serif;--mono:"Cascadia Mono", "SFMono-Regular", Consolas, monospace;font-family:Pretendard,Noto Sans KR,Malgun Gothic,system-ui,sans-serif}[data-hero=juno]{--hero-accent:#ffd45a;--hero-glow:#ffd45a52}[data-hero=eli]{--hero-accent:#72ddff;--hero-glow:#72ddff4d}[data-hero=mara]{--hero-accent:#ff7957;--hero-glow:#ff795752}[data-hero=dae]{--hero-accent:#e4a7ff;--hero-glow:#e4a7ff4d}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-height:100dvh;color:var(--bone-100);background:radial-gradient(circle at 50% -10%, #2b8b8c38, transparent 42rem), repeating-linear-gradient(90deg, transparent 0 63px, #ffffff03 64px), var(--storm-950);overflow-x:hidden}button,input{font:inherit}button{color:inherit}button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--mint-300);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.boot-card{text-align:center;font:700 .74rem/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--bone-300);place-content:center;gap:12px;display:grid;position:fixed;inset:0}.boot-card__signal{background:linear-gradient(90deg, transparent, var(--orange-400), transparent);width:72px;height:4px;margin:auto;animation:1.2s ease-in-out infinite signal}.app-shell{grid-template-rows:auto 1fr;min-height:100dvh;display:grid}.app-bar{z-index:20;min-height:66px;padding:calc(12px + env(safe-area-inset-top)) clamp(16px, 3vw, 38px) 12px;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#040b11d1;justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:11px;display:flex}.brand__mark{clip-path:polygon(50% 0,100% 24%,86% 100%,14% 100%,0 24%);background:linear-gradient(135deg,#ffb43b33,#0000 55%);border:1px solid #ffb43b8f;width:32px;height:32px;position:relative}.brand__mark:after{content:"";border-left:3px solid var(--orange-400);border-right:3px solid var(--teal-300);position:absolute;inset:7px 10px}.brand__name{font:800 clamp(.95rem, 2vw, 1.15rem)/.95 var(--display);letter-spacing:.085em;display:block}.brand__eyebrow,.utility-label,.section-label{font:650 .62rem/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--teal-300);display:block}.app-bar__tools{align-items:center;gap:8px;display:flex}.icon-button,.chip-button,.text-button{border:1px solid var(--line);cursor:pointer;background:#102632a3;transition:border-color .16s,background .16s,transform .16s}.icon-button:hover,.chip-button:hover,.text-button:hover{background:#173846e6;border-color:#b9f4d07a}.icon-button:active,.chip-button:active,.text-button:active,.primary-action:active{transform:translateY(1px)}.icon-button{border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.chip-button{min-height:38px;font:700 .72rem var(--mono);border-radius:999px;padding:0 13px}.screen{min-height:0}.lobby{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);min-height:calc(100dvh - 66px);display:grid;position:relative;overflow:hidden}.lobby__hero{isolation:isolate;background:linear-gradient(90deg, #040b110f 45%, #040b11db), linear-gradient(0deg, var(--storm-950), transparent 42%), url(/assets/harbor-battlefield.png) center 48% / cover;min-height:610px;position:relative;overflow:hidden}.lobby__hero:before{content:"";z-index:-1;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 5px,#b9f4d006 6px);position:absolute;inset:0}.lobby__hero:after{content:"";pointer-events:none;background:linear-gradient(105deg,#040b11f2 0%,#0000 45%);position:absolute;inset:0}.lobby__team{z-index:1;object-fit:contain;object-position:bottom right;filter:drop-shadow(0 18px 40px #0000009e);width:min(72%,760px);height:100%;position:absolute;bottom:-5%;right:max(0%,1vw)}.lobby__copy{z-index:3;width:min(640px,94%);padding:clamp(46px,8vh,92px) clamp(22px,5vw,72px);position:relative}.lobby__title{max-width:9ch;font:900 clamp(3.2rem, 9vw, 8.7rem)/.74 var(--display);letter-spacing:-.065em;text-transform:uppercase;text-wrap:balance;margin:12px 0 18px}.lobby__title span{color:#0000;-webkit-text-stroke:1px var(--bone-100);margin-top:.14em;display:block}.lobby__lede{max-width:34rem;color:var(--bone-300);margin:0;font-size:clamp(.92rem,1.3vw,1.08rem);line-height:1.65}.signal-strip{font:650 .68rem var(--mono);color:var(--mint-300);align-items:center;gap:9px;margin-top:28px;display:flex}.signal-strip:before{content:"";background:var(--mint-300);border-radius:50%;width:9px;height:9px;box-shadow:0 0 18px #b9f4d0e6}.hero-portrait{background-color:var(--storm-800);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--hero-accent,var(--teal-300)) 44%, transparent);background-image:linear-gradient(#0000 52%,#040b11c2),repeating-linear-gradient(135deg,#0000 0 7px,#ffffff09 8px);background-position:50% 5%;background-repeat:no-repeat;background-size:cover;display:block;position:relative;overflow:hidden}.hero-portrait:after{content:"";background:var(--hero-accent,var(--teal-300));height:3px;box-shadow:0 0 12px var(--hero-glow,#77c8c34d);position:absolute;inset:auto 0 0}.hero-portrait:before{content:attr(data-call);z-index:2;text-overflow:ellipsis;max-width:calc(100% - 6px);color:var(--hero-accent,var(--teal-300));font:700 .32rem/1 var(--mono);letter-spacing:.04em;white-space:nowrap;background:#040b11ad;padding:2px 3px;position:absolute;top:3px;left:3px;overflow:hidden}.hero-portrait--juno{background-image:linear-gradient(#0000 52%,#040b11c2),url(/assets/combat/heroes/juno-v2.png),repeating-linear-gradient(135deg,#0000 0 7px,#ffffff09 8px)}.hero-portrait--eli{background-image:linear-gradient(#0000 52%,#040b11c2),url(/assets/combat/heroes/eli-v2.png),repeating-linear-gradient(135deg,#0000 0 7px,#ffffff09 8px)}.hero-portrait--mara{background-image:linear-gradient(#0000 52%,#040b11c2),url(/assets/combat/heroes/mara-v2.png),repeating-linear-gradient(135deg,#0000 0 7px,#ffffff09 8px)}.hero-portrait--dae{background-image:linear-gradient(#0000 52%,#040b11c2),url(/assets/combat/heroes/dae-v2.png),repeating-linear-gradient(135deg,#0000 0 7px,#ffffff09 8px)}.hero-portrait--juno,.hero-portrait--eli,.hero-portrait--mara,.hero-portrait--dae{background-blend-mode:normal, screen, normal;background-size:cover,auto 280%,cover}.crew-manifest{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:min(580px,100%);margin-top:18px;display:grid}.crew-chip{border:1px solid color-mix(in srgb, var(--hero-accent) 35%, var(--line));background:linear-gradient(130deg, var(--hero-glow), #040b11c7 58%);align-items:stretch;min-width:0;min-height:74px;display:flex;position:relative;overflow:hidden}.crew-chip:after{content:"";background:var(--hero-accent);width:14px;height:3px;position:absolute;top:0;right:0}.crew-chip .hero-portrait{background-size:cover,auto 290%,cover;flex:0 0 46px;width:46px}.crew-chip__copy{flex-direction:column;flex:1;justify-content:center;min-width:0;padding:7px 6px;display:flex}.crew-chip__copy small,.crew-chip__copy em{text-overflow:ellipsis;white-space:nowrap;font:650 .43rem/1.2 var(--mono);letter-spacing:.05em;overflow:hidden}.crew-chip__copy small{color:var(--hero-accent)}.crew-chip__copy b{font:800 .77rem/1 var(--display);margin:2px 0}.crew-chip__copy em{color:var(--bone-300);font-style:normal}.crew-chip__trait{text-overflow:ellipsis;white-space:nowrap;color:var(--hero-accent);font:800 .45rem/1.1 var(--mono);letter-spacing:.03em;margin-top:4px;overflow:hidden}.lobby__panel{z-index:4;background:linear-gradient(145deg, #102632b8, transparent 55%), var(--storm-900);border-left:1px solid var(--line);flex-direction:column;justify-content:flex-start;gap:12px;padding:clamp(24px,4vw,56px);display:flex;overflow-y:auto}.operation-select{gap:9px;display:grid}.operation-select__heading{justify-content:space-between;align-items:end;gap:12px;display:flex}.operation-select__heading b{font:800 1rem/1 var(--display);letter-spacing:.04em;margin-top:4px;display:block}.operation-select__heading>small{color:var(--bone-300);font:700 .62rem/1 var(--mono)}.operation-select__cards{gap:7px;display:grid}.operation-card{border:1px solid var(--line);border-left:3px solid var(--operation-accent);border-radius:var(--radius-sm);min-width:0;min-height:94px;color:var(--bone-100);background:linear-gradient(105deg, color-mix(in srgb, var(--operation-accent) 9%, transparent), #040b11ad);text-align:left;cursor:pointer;grid-template-rows:auto auto auto auto;grid-template-columns:66px minmax(0,1fr);gap:3px 10px;padding:10px 12px 10px 10px;display:grid;position:relative}.operation-card:after{content:"";border-radius:inherit;pointer-events:none;border:1px solid #0000;position:absolute;inset:0}.operation-card[data-selected=true]:after{border-color:color-mix(in srgb, var(--operation-accent) 72%, white);box-shadow:inset 0 0 24px color-mix(in srgb, var(--operation-accent) 12%, transparent)}.operation-card[data-operation-state=locked]{color:#cfc4b2a8;cursor:not-allowed;background:#040b1180;border-left-color:#cfc4b247}.operation-card__status{border-right:1px solid var(--line);flex-direction:column;grid-row:1/-1;justify-content:center;align-items:flex-start;gap:5px;display:flex}.operation-card__status small,.operation-card__status span,.operation-card__status b{font:750 .54rem/1 var(--mono);letter-spacing:.05em}.operation-card__status small{color:var(--operation-accent)}.operation-card[data-operation-state=locked] .operation-card__status small,.operation-card__status span{color:var(--bone-300)}.operation-card__status b{color:var(--storm-950);background:var(--operation-accent);padding:3px 4px}.operation-card__heading{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.operation-card__heading b{font:800 .86rem/1 var(--display);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.operation-card__heading small{color:var(--bone-300);font:650 .44rem/1 var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.operation-card__brief,.operation-card__intel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.operation-card__brief{color:var(--bone-300);font-size:.63rem;line-height:1.35}.operation-card__intel{color:color-mix(in srgb, var(--operation-accent) 48%, var(--bone-300));font:650 .5rem/1.25 var(--mono)}.operation-card__intel small{color:var(--operation-accent);letter-spacing:.05em;margin-right:7px;font-size:.48rem}.mission-card,.research-card,.intel-card{border:1px solid var(--line);border-radius:var(--radius-md);background:#040b117a;position:relative;overflow:hidden}.mission-card{padding:22px}.mission-card:before{content:"";background:var(--operation-accent,var(--orange-500));width:3px;position:absolute;inset:0 auto 0 0}.mission-card h2{font:800 clamp(1.35rem, 3vw, 2rem)/1 var(--display);letter-spacing:.02em;margin:7px 0 8px}.mission-card p{color:var(--bone-300);margin:0;line-height:1.55}.mission-card .mission-card__threat{font:650 .65rem/1.45 var(--mono);margin-top:9px}.mission-card__threat b{color:var(--operation-accent,var(--amber-400));margin-right:6px}.mission-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px;display:grid}.mission-stat{border-top:1px solid var(--line);min-width:0;padding:12px 10px}.mission-stat b{font:800 1.1rem var(--mono);color:var(--amber-400);margin-bottom:4px;display:block}.mission-stat span{color:var(--bone-300);font-size:.7rem}.difficulty-switch{border:1px solid var(--line);background:var(--storm-950);border-radius:999px;grid-template-columns:1fr 1fr;gap:7px;padding:5px;display:grid}.difficulty-switch button{min-height:42px;color:var(--bone-300);cursor:pointer;font:700 .72rem var(--mono);background:0 0;border:0;border-radius:999px}.difficulty-switch button[aria-pressed=true]{color:var(--storm-950);background:var(--bone-100)}.primary-action{border-radius:var(--radius-sm);min-height:66px;color:var(--storm-950);background:var(--orange-400);cursor:pointer;font:900 1rem var(--display);letter-spacing:.04em;text-transform:uppercase;border:0;justify-content:space-between;align-items:center;gap:20px;padding:0 22px;display:flex;position:relative;overflow:hidden;box-shadow:0 13px 36px #f05a3547}.primary-action:after{content:"";background:linear-gradient(110deg,#0000,#ffffff6b,#0000);transition:transform .45s;position:absolute;inset:0;transform:translate(-110%)}.primary-action:hover:after{transform:translate(110%)}.primary-action small{font:700 .66rem var(--mono);opacity:.72}.meta-row{font:650 .75rem var(--mono);color:var(--bone-300);justify-content:space-between;align-items:center;gap:12px;padding:12px 2px 0;display:flex}.meta-row b{color:var(--amber-400)}.bottom-nav{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.bottom-nav button{border:1px solid var(--line);border-radius:var(--radius-sm);min-height:48px;color:var(--bone-300);cursor:pointer;font:700 .69rem var(--mono);background:#10263294}.bottom-nav button[aria-current=page]{color:var(--amber-400);background:#ffb43b14;border-color:#ffb43bb3}.research-view{background:linear-gradient(#040b11b8,#040b11fa),url(/assets/harbor-battlefield.png) 50%/cover fixed;min-height:calc(100dvh - 66px);padding:clamp(26px,6vw,78px)}.research-view__inner{width:min(920px,100%);margin:0 auto}.research-view h1{font:900 clamp(2.6rem, 8vw, 6rem)/.9 var(--display);margin:10px 0 12px}.research-view__intro{max-width:48rem;color:var(--bone-300);line-height:1.7}.research-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px;display:grid}.research-card{flex-direction:column;justify-content:space-between;min-height:260px;padding:22px;display:flex}.research-card__icon{width:52px;height:52px;color:var(--teal-300);font:900 1.2rem var(--mono);border:1px solid #77c8c373;border-radius:50%;place-items:center;display:grid}.research-card h2{font:800 1.35rem var(--display);margin:20px 0 8px}.research-card p{color:var(--bone-300);margin:0;font-size:.86rem;line-height:1.55}.research-card__footer{justify-content:space-between;align-items:center;gap:10px;margin-top:24px;display:flex}.text-button{border-radius:var(--radius-sm);min-height:38px;font:750 .7rem var(--mono);padding:0 14px}.battle-layout{background:linear-gradient(90deg,#07131df0,#07131d80 35% 65%,#07131df0),url(/assets/harbor-battlefield.png) 50%/cover;grid-template-columns:minmax(180px,1fr) minmax(320px,540px) minmax(180px,1fr);align-items:stretch;min-height:calc(100dvh - 66px);display:grid}.ops-rail,.intel-rail{align-self:center;padding:clamp(16px,3vw,36px)}.ops-rail{justify-self:end;width:min(330px,100%)}.intel-rail{justify-self:start;width:min(330px,100%)}.intel-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:18px}.intel-card+.intel-card{margin-top:12px}.intel-card h2{font:800 1.05rem var(--display);margin:8px 0 4px}.intel-card p,.intel-card li{color:var(--bone-300);font-size:.75rem;line-height:1.5}.intel-card ul{padding-left:18px}.event-log{height:224px;overflow:hidden}.event-log__header{border-bottom:1px solid #b9f4d029;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;display:flex}.event-log__header b{font:800 .86rem var(--display);margin-top:5px;display:block}.event-log__count{text-align:center;min-width:30px;color:var(--mint-300);font:800 .63rem var(--mono);border:1px solid #77c8c361;padding:5px}.event-log__item{font:600 .65rem/1.35 var(--mono);border-bottom:1px solid #b9f4d014;border-left:2px solid #0000;grid-template-columns:46px 1fr;gap:8px;padding:7px 0 7px 8px;display:grid}.event-log__item[data-event=ability],.event-log__item[data-event=explosion]{border-left-color:var(--amber-400);background:linear-gradient(90deg,#ffb43b14,#0000 72%)}.event-log__item[data-event=critical]{color:#fff2be;text-shadow:0 0 8px #ffb43b6b;background:linear-gradient(90deg,#ffb43b29,#0000 78%);border-left-color:#fff0a6}.event-log__item[data-event=wall-hit]{border-left-color:var(--danger-400);color:#ffd9d8}.event-log__item[data-event=level-up],.event-log__item[data-event=upgrade-picked]{border-left-color:var(--mint-300)}.event-log__item[data-event=stage]{border-left-color:var(--amber-400);color:#ffe2a5;background:linear-gradient(90deg,#ffb43b1a,#0000 78%)}.event-log__time{color:var(--teal-300)}.battle-phone{aspect-ratio:9/16;background:var(--storm-950);min-height:calc(100dvh - 66px);max-height:calc(100dvh - 66px);box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;touch-action:manipulation;border-inline:1px solid #b9f4d03d;justify-self:center;position:relative;overflow:hidden}.battle-canvas{cursor:crosshair;background:var(--storm-900);width:100%;height:100%;display:block}.battle-hud{pointer-events:none;grid-template-rows:auto 1fr auto;display:grid;position:absolute;inset:0}.battle-hud__top{padding:calc(12px + env(safe-area-inset-top)) 12px 28px;background:linear-gradient(#040b11eb,#0000);grid-template-columns:1fr auto 1fr;align-items:start;gap:8px;display:grid}.mission-clock{font:900 1.25rem/1 var(--mono)}.mission-clock small,.wave-readout small,.noise-readout small{font:650 .54rem/1 var(--mono);letter-spacing:.1em;color:var(--teal-300);margin-bottom:5px;display:block}.wave-readout{text-align:center;min-width:112px;font:800 .72rem var(--mono);background:#040b11b8;border:1px solid #ffb43b6b;border-radius:999px;padding:9px 12px}.wave-readout em{max-width:118px;color:var(--stage-accent,var(--amber-400));font:700 .42rem/1 var(--mono);letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-style:normal;display:block;overflow:hidden}.noise-readout{text-align:right;font:800 .8rem var(--mono);justify-self:end}.noise-bar{background:#ffffff1f;border-radius:999px;width:76px;height:5px;margin-top:5px;overflow:hidden}.noise-bar span{width:var(--noise,20%);background:linear-gradient(90deg, var(--teal-300), var(--amber-400), var(--danger-400));height:100%;transition:width .16s linear;display:block}.battle-controls{top:calc(78px + env(safe-area-inset-top));pointer-events:auto;gap:6px;display:flex;position:absolute;right:10px}.battle-controls button{border:1px solid var(--line);cursor:pointer;min-width:2.75rem;height:2.75rem;min-height:2.75rem;font:750 .65rem var(--mono);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#040b11c2;border-radius:999px}.focus-callout{color:var(--mint-300);font:650 .59rem var(--mono);opacity:.82;background:#040b119e;border:1px solid #77c8c359;border-radius:999px;place-self:start center;margin-top:46px;padding:7px 12px}.battle-hud__bottom{padding:34px 10px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#040b11f5 32%);align-self:end}.boss-bar{top:calc(68px + env(safe-area-inset-top));border:1px solid #ff4d5580;border-radius:4px var(--radius-sm) var(--radius-sm) 4px;pointer-events:none;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:linear-gradient(90deg,#2c0910e6,#040b11d1);border-left-width:3px;gap:3px;width:clamp(142px,36%,184px);padding:6px 8px 7px;display:none;position:absolute;left:12px;box-shadow:0 6px 18px #00000038}.boss-bar[data-visible=true]{display:grid}.boss-bar__label{color:#ffb0ad;font:750 .48rem/1 var(--mono);letter-spacing:.07em;justify-content:space-between;align-items:center;gap:8px;display:flex}.boss-bar__label b{color:var(--bone-100);letter-spacing:0;font-size:.64rem}.boss-bar__name{color:var(--bone-100);font:800 .58rem/1.1 var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.boss-bar .bar-track{height:5px;margin-top:1px}.bar-row{font:700 .58rem var(--mono);justify-content:space-between;align-items:center;gap:10px;display:flex}.bar-track{background:#ffffff1a;border:1px solid #ffffff14;border-radius:999px;height:7px;margin-top:6px;overflow:hidden}.bar-track span{width:var(--value,100%);background:var(--fill,var(--mint-300));height:100%;transition:width .1s linear;display:block}.barrier-panel{border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#040b11cc;border:1px solid #b9f4d047;padding:9px 10px}.barrier-panel[data-critical=true]{border-color:#ff4d55cc;animation:1s ease-in-out infinite critical}.xp-row{font:700 .56rem var(--mono);color:var(--bone-300);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-top:8px;display:grid}.xp-row .bar-track{height:4px;margin:0}.squad-dock{grid-template-columns:repeat(5,1fr);gap:5px;margin-top:8px;display:grid}.squad-slot{aspect-ratio:.88;border:1px solid var(--line);background:linear-gradient(160deg,#173846f0,#040b11f0);border-radius:9px 9px 4px 4px;min-width:0;position:relative;overflow:hidden}.squad-slot[data-active=true]{border-color:color-mix(in srgb, var(--hero-accent) 38%, var(--line));background:linear-gradient(160deg, var(--hero-glow), #040b11f2 68%)}.squad-slot[data-active=false]{opacity:.42}.squad-slot__portrait{height:66%;font:900 clamp(.8rem, 4vw, 1.2rem) var(--display);color:var(--mint-300);background:radial-gradient(circle at 50% 40%,#77c8c338,#0000 62%),repeating-linear-gradient(135deg,#0000 0 5px,#ffffff06 6px);place-items:center;display:grid;position:relative}.squad-slot__portrait>.hero-portrait{background-size:cover,auto 280%,cover;width:100%;height:100%}.squad-slot__callsign{color:var(--hero-accent);font:750 .36rem/1 var(--mono);letter-spacing:.05em;background:#040b11bd;padding:2px 3px;position:absolute;inset:auto 3px 3px}.squad-slot__name{font:700 .4rem var(--mono);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:3px;padding:3px 4px 6px;display:grid;overflow:hidden}.squad-slot__name b{color:var(--bone-100);font:800 .52rem var(--display)}.squad-slot__name span{text-overflow:ellipsis;white-space:nowrap;color:var(--hero-accent);overflow:hidden}.squad-slot__name em{color:var(--bone-300);font-style:normal}.reload-meter{background:#ffffff1f;border-radius:99px;height:3px;position:absolute;inset:auto 3px 3px;overflow:hidden}.reload-meter span{width:var(--reload,100%);background:var(--amber-400);height:100%;display:block}.tactical-dock{pointer-events:auto;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:7px;display:grid}.tactical-button{border:1px solid color-mix(in srgb, var(--hero-accent) 38%, var(--line));border-radius:var(--radius-sm);text-align:left;background:linear-gradient(145deg, var(--hero-glow), #040b11f0 68%);cursor:pointer;min-width:0;min-height:54px;font:720 .49rem var(--mono);grid-template-columns:34px minmax(0,1fr);align-items:center;gap:5px;padding:4px 5px;display:grid;position:relative;overflow:hidden}.tactical-button__visual{width:34px;height:44px;position:relative}.tactical-button__visual .hero-portrait{background-size:cover,auto 310%,cover;width:28px;height:42px}.ability-icon{border:1px solid color-mix(in srgb, var(--hero-accent) 58%, transparent);width:22px;height:22px;filter:drop-shadow(0 0 5px var(--hero-glow));background:#040b11e6;border-radius:50%;padding:2px;position:absolute;bottom:0;right:-2px}.tactical-button__copy{z-index:2;flex-direction:column;gap:3px;min-width:0;display:flex;position:relative}.tactical-button__copy b{-webkit-line-clamp:2;font:750 .48rem/1.12 var(--mono);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tactical-button small{color:var(--hero-accent);font:700 .46rem var(--mono);display:block}.tactical-button:not([data-state=blocked]):hover{border-color:var(--hero-accent);box-shadow:0 0 18px var(--hero-glow)}.tactical-button[data-activated=true]{box-shadow:inset 0 0 0 1px var(--hero-accent), 0 0 22px var(--hero-glow)}.tactical-button[data-state=cooldown]{opacity:.5}.tactical-button[data-state=queued]{border-color:var(--hero-accent);box-shadow:inset 0 -3px var(--hero-accent), 0 0 14px var(--hero-glow)}.tactical-button[data-state=blocked]{cursor:not-allowed;opacity:.5}.tactical-button[data-result=no-target],.tactical-button[data-result=cooldown],.tactical-button[data-result=blocked]{border-color:var(--danger-400)}.tactical-button__cooldown{height:var(--cooldown,0%);pointer-events:none;background:#040b11c2;position:absolute;inset:auto 0 0}.choice-overlay,.pause-overlay,.result-overlay{z-index:30;padding:calc(16px + env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;background:#040b11d1;place-items:center;display:grid;position:absolute;inset:0}.choice-overlay[hidden],.dispatch-overlay[hidden],.pause-overlay[hidden],.result-overlay[hidden]{display:none}.dispatch-overlay{--stage-accent:var(--amber-400);z-index:34;padding:0 12px calc(14px + env(safe-area-inset-bottom));pointer-events:auto;background:linear-gradient(#040b110a 24%,#040b119e 52%,#040b11f0 82%);align-items:flex-end;display:flex;position:absolute;inset:0}.dispatch-scene{border-top:2px solid var(--stage-accent);border-right:1px solid color-mix(in srgb, var(--stage-accent) 42%, transparent);background:linear-gradient(114deg, color-mix(in srgb, var(--stage-accent) 11%, transparent), transparent 34%), repeating-linear-gradient(90deg, transparent 0 31px, #ffffff05 32px), #07161ff5;border-bottom:1px solid #b9f4d038;border-left:1px solid #b9f4d038;border-radius:2px 18px 2px 2px;width:100%;padding:42px 14px 14px;position:relative;box-shadow:0 -20px 52px #040b11ad,inset 0 1px #ffffff0a}.dispatch-scene[data-beat-index="0"]{animation:.3s cubic-bezier(.2,.75,.2,1) both dispatch-arrive}.dispatch-scene:after{content:"LIVE COMMS";color:var(--stage-accent);font:700 .46rem/1 var(--mono);letter-spacing:.13em;position:absolute;top:9px;right:12px}.dispatch-route{grid-template-columns:repeat(10,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;display:grid;position:absolute;top:-15px;left:8px;right:8px}.dispatch-route:before{content:"";z-index:0;background:#b9f4d03d;height:1px;position:absolute;top:14px;left:4%;right:4%}.dispatch-route li{z-index:1;color:#d3e2de75;min-width:0;font:650 .38rem/1 var(--mono);letter-spacing:.04em;justify-items:center;gap:4px;display:grid;position:relative}.dispatch-route li span{background:#07161f;border:1px solid #b9f4d038;border-radius:50%;place-items:center;width:29px;height:29px;font-size:.52rem;display:grid}.dispatch-route li b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.dispatch-route li[data-route-state=passed] span{border-color:color-mix(in srgb, var(--stage-accent) 58%, transparent);color:color-mix(in srgb, var(--stage-accent) 72%, white)}.dispatch-route li[data-route-state=current]{color:var(--bone-100)}.dispatch-route li[data-route-state=current] span{border-color:var(--stage-accent);color:#061018;background:var(--stage-accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--stage-accent) 16%, transparent), 0 0 22px color-mix(in srgb, var(--stage-accent) 46%, transparent)}.dispatch-scene__manifest{border-bottom:1px solid #b9f4d026;gap:6px;padding-bottom:10px;display:grid}.dispatch-scene__eyebrow{color:var(--stage-accent);font:700 .48rem/1 var(--mono);letter-spacing:.15em}.dispatch-scene__heading{grid-template-columns:auto 1fr;align-items:end;gap:10px;display:grid}.dispatch-scene__number{border-right:1px solid color-mix(in srgb, var(--stage-accent) 52%, transparent);color:var(--stage-accent);font:900 2.25rem/.82 var(--display);padding-right:10px}.dispatch-scene__heading small{color:var(--bone-300);font:650 .52rem/1 var(--mono);margin-bottom:3px;display:block}.dispatch-scene__heading h2{font:900 1.25rem/.94 var(--display);letter-spacing:.025em;margin:0}.dispatch-scene__brief{color:var(--bone-300);margin:0;font-size:.64rem;line-height:1.45}.dispatch-scene__exchange{grid-template-columns:1fr auto;gap:8px 10px;padding-top:10px;display:grid}.dispatch-channels{grid-column:1/-1;gap:6px;display:flex}.dispatch-channel{color:#d3e2de7a;opacity:.68;background:#040b116b;border:1px solid #b9f4d024;flex:1 1 0;grid-template-columns:42px 1fr 20px;align-items:center;gap:7px;min-width:0;padding:4px 6px 4px 4px;transition:border-color .16s,opacity .16s,transform .16s;display:grid;position:relative}.dispatch-channel[data-active=true]{border-color:color-mix(in srgb, var(--stage-accent) 54%, transparent);color:var(--bone-100);background:color-mix(in srgb, var(--stage-accent) 8%, #040b11b8);opacity:1;transform:translateY(-2px)}.dispatch-channel .hero-portrait{background-position:50% 7%;background-size:cover,auto 250%,cover;width:42px;height:48px}.dispatch-channel span{min-width:0}.dispatch-channel small,.dispatch-channel b,.dispatch-channel em{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dispatch-channel small{color:var(--stage-accent);font:700 .45rem/1 var(--mono);letter-spacing:.08em}.dispatch-channel b{font:800 .7rem/1 var(--display);margin-top:4px}.dispatch-channel em{color:color-mix(in srgb, var(--stage-accent) 76%, var(--bone-300));font:700 .42rem/1 var(--mono);margin-top:3px;font-style:normal}.dispatch-channel i{background:repeating-linear-gradient(90deg, var(--stage-accent) 0 1px, transparent 1px 3px);clip-path:polygon(0 42%,18% 42%,18% 8%,36% 8%,36% 70%,54% 70%,54% 25%,72% 25%,72% 58%,100% 58%,100% 66%,0 66%);opacity:.28;width:18px;height:12px}.dispatch-channel[data-active=true] i{opacity:.9;animation:.8s steps(2,jump-none) infinite dispatch-signal}.dispatch-line{border-left:2px solid var(--stage-accent);background:#040b1194;min-height:88px;margin:0;padding:10px 11px}.dispatch-line header{align-items:baseline;gap:7px;display:flex}.dispatch-line header span,.dispatch-line header small{color:var(--stage-accent);font:700 .44rem/1 var(--mono);letter-spacing:.08em}.dispatch-line header b{font:780 .62rem/1 var(--display)}.dispatch-line header small{color:var(--bone-300);margin-left:auto}.dispatch-line p{color:var(--bone-100);word-break:keep-all;margin:8px 0 0;font-size:.72rem;line-height:1.5}.dispatch-next{border:1px solid var(--stage-accent);color:#061018;background:var(--stage-accent);cursor:pointer;min-width:104px;box-shadow:0 8px 24px color-mix(in srgb, var(--stage-accent) 18%, transparent);border-radius:2px 10px 2px 2px;padding:10px 12px}.dispatch-next span,.dispatch-next small{display:block}.dispatch-next span{font:850 .68rem/1 var(--display)}.dispatch-next small{font:700 .4rem/1 var(--mono);letter-spacing:.04em;margin-top:5px}.dispatch-next:hover{filter:brightness(1.08)}.choice-panel{width:100%;animation:.22s cubic-bezier(.2,.8,.2,1) both rise}.choice-panel__header{text-align:center;margin-bottom:12px}.choice-panel__header h2{font:900 1.55rem var(--display);margin:7px 0 4px}.choice-panel__header p{color:var(--bone-300);margin:0;font-size:.72rem}.choice-grid{grid-template-columns:repeat(3,1fr);gap:7px;display:grid;position:relative}.choice-panel[data-branch-choice=true] .choice-grid:before{content:"A  ◀  SWITCH RAIL  ▶  B";z-index:3;width:51%;height:17px;color:var(--teal-300);text-align:center;font:800 .42rem/1 var(--mono);letter-spacing:.08em;pointer-events:none;border-top:1px solid #77c8c3ad;position:absolute;top:-9px;left:8%}.choice-card{text-align:left;min-height:238px;color:var(--bone-100);background:linear-gradient(160deg, #2b8b8c38, transparent 54%), var(--storm-850);cursor:pointer;border:1px solid #b9f4d047;border-radius:12px 12px 5px 5px;flex-direction:column;align-items:stretch;padding:13px 10px;animation:1.6s ease-in-out infinite choice-pulse;display:flex;position:relative;overflow:hidden}.choice-card:nth-child(2){animation-delay:90ms}.choice-card:nth-child(3){animation-delay:.18s}.choice-card[data-rarity=rare]{background:linear-gradient(160deg, #ffb43b40, transparent 54%), var(--storm-850);border-color:#ffb43bb8}.choice-card[data-branch-side=A]{background:linear-gradient(160deg, #36a5be4f, transparent 56%), var(--storm-850);border-color:#72ddffd1}.choice-card[data-branch-side=B]{background:linear-gradient(160deg, #ff704647, transparent 56%), var(--storm-850);border-color:#ffb43bdb}.choice-card[data-branch-side=A] .choice-card__tag{background:#72ddff}.choice-card[data-branch-side=B] .choice-card__tag{background:var(--amber-400)}.choice-card__tag{color:var(--storm-950);background:var(--mint-300);font:900 .48rem var(--mono);border-radius:99px;align-self:flex-start;padding:4px 6px}.choice-card__art{background:var(--storm-950);border-block:1px solid #b9f4d02e;height:84px;margin:10px 0;display:block;position:relative;overflow:hidden}.choice-card__art--branch{background-image:linear-gradient(110deg,#0000 48%,#b9f4d014),url(/assets/upgrades/weapon-branches-v1.webp);background-repeat:no-repeat;background-position:center, var(--branch-x) var(--branch-y);background-size:100% 100%,400% 200%}.choice-card__art:after{content:"";border-left:3px solid var(--teal-300);pointer-events:none;background:linear-gradient(112deg,#0000 45%,#b9f4d014);position:absolute;inset:0}.choice-card__art[data-upgrade-kind=burnMultiplier]:after,.choice-card__art[data-upgrade-kind=damageMultiplier]:after{border-left-color:var(--orange-400)}.choice-card__art[data-upgrade-kind=slowBoost]:after,.choice-card__art[data-upgrade-kind=abilityCooldownMultiplier]:after{border-left-color:#72ddff}.choice-card__art[data-upgrade-kind=wallMaxHp]:after,.choice-card__art[data-upgrade-kind=wallRepair]:after{border-left-color:var(--amber-400)}.choice-card__art img{object-fit:cover;width:100%;height:100%;display:block}.choice-card__art small{z-index:2;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 12px);color:var(--mint-300);font:700 .42rem/1 var(--mono);background:#040b11d1;padding:3px 5px;position:absolute;bottom:5px;right:5px;overflow:hidden}.choice-card__portrait{border-block:1px solid color-mix(in srgb, var(--hero-accent) 32%, transparent);background:linear-gradient(110deg, var(--hero-glow), transparent 72%);align-items:stretch;gap:8px;height:84px;margin:10px 0;display:flex;position:relative}.choice-card__portrait-visual{flex:0 0 64px;width:64px;min-width:0;position:relative;overflow:hidden}.choice-card__portrait-visual>.hero-portrait{background-size:cover,auto 270%,cover;width:100%;height:100%}.choice-card__recruit-copy{flex-direction:column;justify-content:center;min-width:0;padding-right:0;display:flex;overflow:hidden}.choice-card__portrait small{color:var(--hero-accent);font:750 .45rem var(--mono);letter-spacing:.07em}.choice-card__portrait b{font:750 .54rem/1.25 var(--mono);color:var(--bone-100);word-break:keep-all;overflow-wrap:anywhere;margin-top:5px}.choice-card__ability-icon{border:1px solid color-mix(in srgb, var(--hero-accent) 68%, transparent);width:28px;height:28px;filter:drop-shadow(0 0 7px var(--hero-glow));background:#040b11e6;border-radius:50%;padding:3px;position:absolute;bottom:3px;right:3px}.choice-card h3{font:820 .88rem/1.05 var(--display);margin:0 0 7px}.choice-card p{color:var(--bone-300);margin:0;font-size:.61rem;line-height:1.45}.choice-card__level{font:700 .52rem var(--mono);color:var(--teal-300);margin-top:auto;padding-top:12px}.modal-card{border-radius:var(--radius-lg);text-align:center;background:var(--panel);width:min(390px,100%);box-shadow:var(--shadow);border:1px solid #b9f4d052;padding:26px}.modal-card h2{font:900 2.2rem/.95 var(--display);margin:9px 0}.modal-card p{color:var(--bone-300);line-height:1.55}.modal-card .result-unlock{border-radius:var(--radius-sm);color:var(--bone-100);background:#ffb43b14;border:1px solid #ffb43b61;padding:10px 12px;font-size:.78rem}.result-unlock b{color:var(--amber-400);font:800 .62rem/1.2 var(--mono);margin-bottom:3px;display:block}.modal-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:20px;display:grid}.modal-actions button,.pause-guide-button,.pause-training button{min-height:2.75rem}.pause-training{border-radius:var(--radius-sm);text-align:left;background:linear-gradient(90deg,#ffb43b1f,#07131d66);border:1px solid #ffb43b6b;border-left-width:3px;gap:8px;margin:16px 0;padding:12px;display:grid}.pause-training[hidden]{display:none}.pause-training p{color:var(--bone-100);margin:0;font-size:.78rem}.pause-training button,.pause-guide-button{width:100%}.pause-guide-button{border:1px solid var(--line);margin-top:6px}.tutorial-layer{z-index:46;padding:calc(12px + env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));pointer-events:none;position:fixed;inset:0}.tutorial-layer[data-modal=true]{pointer-events:auto;background:#040b116b}.tutorial-card{top:calc(74px + env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));width:min(360px, calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)));border:1px solid #77c8c375;border-left:3px solid var(--amber-400);border-radius:2px var(--radius-md) var(--radius-md) 2px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:linear-gradient(105deg,#ffb43b1c,#0000 46%),#07131de8;padding:14px 15px 12px;animation:.22s ease-out both tutorial-arrive;position:absolute;box-shadow:0 16px 42px #0006}.tutorial-card__channel{color:var(--teal-300);font:750 .56rem/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;display:block}.tutorial-card h2{color:var(--bone-100);font:900 1rem/1 var(--display);letter-spacing:.06em;margin:6px 0 4px}.tutorial-card p{color:var(--bone-300);margin:0;font-size:.72rem;line-height:1.48}.tutorial-card__actions{justify-content:flex-end;gap:8px;margin-top:9px;display:flex}.tutorial-card__actions button{pointer-events:auto;min-width:5.5rem;min-height:2.75rem;padding:0 12px}.tutorial-card__actions .primary-action{width:auto}.app-shell[data-screen=battle] .tutorial-card{top:calc(136px + env(safe-area-inset-top));width:min(330px, calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)));left:max(12px,50% - 260px)}.app-shell[data-screen=battle] .tutorial-card[data-step=focus]{top:auto;bottom:calc(154px + env(safe-area-inset-bottom))}.tutorial-guide{top:calc(74px + env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));width:min(390px, calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)));max-height:calc(100dvh - 98px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:var(--radius-md);box-shadow:var(--shadow);pointer-events:auto;overscroll-behavior:contain;background:#07131df7;border:1px solid #b9f4d061;padding:18px;position:absolute;overflow:auto}.tutorial-guide h2{font:900 1.65rem/1 var(--display);margin:7px 0 14px}.tutorial-guide dl{gap:7px;margin:0;display:grid}.tutorial-guide dl div{border-left:2px solid var(--teal-500);background:#102632b8;grid-template-columns:3.6rem minmax(0,1fr);align-items:center;min-height:2.75rem;padding:8px 10px;display:grid}.tutorial-guide dt{color:var(--mint-300);font:800 .64rem var(--mono)}.tutorial-guide dd{color:var(--bone-300);margin:0;font-size:.73rem}.tutorial-guide__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.tutorial-guide__actions button{min-height:2.75rem}.tutorial-guide__actions .primary-action{grid-column:1/-1}[data-tutorial-target=true]{outline-offset:3px;animation:1.2s ease-in-out infinite tutorial-target;outline:3px solid var(--amber-400)!important;box-shadow:0 0 0 6px #ffb43b2e,0 0 28px #ffb43b6b!important}#battle-canvas[data-tutorial-target=true]{outline-offset:-6px;box-shadow:inset 0 0 0 6px #ffb43b52!important}.toast-stack{z-index:80;right:clamp(12px,3vw,28px);bottom:calc(14px + env(safe-area-inset-bottom));pointer-events:none;gap:8px;display:grid;position:fixed}.toast{border-radius:var(--radius-sm);width:min(360px,100vw - 24px);color:var(--bone-100);background:#07131df0;border:1px solid #b9f4d04d;padding:13px 15px;font-size:.78rem;animation:.22s both toast-in;box-shadow:0 12px 36px #0000005c}.toast b{color:var(--mint-300);font:750 .62rem var(--mono);margin-bottom:3px;display:block}@media (width<=980px){.lobby{grid-template-columns:1fr}.lobby__hero{min-height:58dvh}.lobby__panel{border-top:1px solid var(--line);border-left:0}.battle-layout{grid-template-columns:1fr minmax(320px,540px) 1fr}.ops-rail,.intel-rail{display:none}.research-grid{grid-template-columns:1fr}}@media (width<=620px){.app-bar{background:linear-gradient(#040b11db,#0000);border:0;width:100%;min-height:58px;position:absolute}.brand__eyebrow{display:none}.brand__name{font-size:.86rem}.app-bar__tools .chip-button,.app-shell[data-screen=battle] .app-bar{display:none}.lobby,.research-view,.battle-layout{min-height:100dvh}.lobby__hero{min-height:66dvh}.lobby__hero:after{background:linear-gradient(0deg, var(--storm-900), transparent 44%)}.lobby__copy{padding:86px 20px 28px}.lobby__title{font-size:clamp(3.6rem,21vw,5.8rem)}.lobby__lede{max-width:76%;font-size:.82rem}.lobby__team{width:104%;height:88%;bottom:-4%;right:-22%}.crew-manifest{grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,350px)}.crew-chip{min-height:66px}.crew-chip .hero-portrait{flex-basis:40px;width:40px}.lobby__panel{padding:24px 16px calc(24px + env(safe-area-inset-bottom))}.operation-select__cards{overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:thin;gap:8px;margin-inline:-16px;padding:2px 16px 10px;display:flex;overflow-x:auto}.operation-card{scroll-snap-align:start;min-width:min(84vw,330px)}.research-view{padding:82px 16px calc(30px + env(safe-area-inset-bottom))}.battle-layout{background:var(--storm-950);display:block}.battle-phone{aspect-ratio:auto;border:0;width:100vw;min-height:100dvh;max-height:100dvh}.boss-bar{top:calc(72px + env(safe-area-inset-top));width:min(158px,46vw - 12px);left:10px}.choice-card{min-height:224px;padding-inline:8px}.choice-card p{font-size:.61rem}.choice-card__portrait{gap:5px;height:72px}.choice-card__art{height:72px}.choice-card__portrait-visual{flex-basis:50px;width:50px}.choice-card__portrait b{font-size:.49rem}.choice-card__ability-icon{width:25px;height:25px}.squad-slot__name span{display:none}.squad-slot__name{grid-template-columns:1fr auto}.tactical-button{grid-template-columns:30px minmax(0,1fr);gap:3px;padding-inline:3px}.tactical-button__visual{width:30px}.tactical-button__copy b{font-size:.44rem}.dispatch-overlay{padding:0 7px calc(7px + env(safe-area-inset-bottom))}.dispatch-scene{padding:39px 10px 10px}.dispatch-route li b{visibility:hidden}.dispatch-route li[data-route-state=current] b{visibility:visible}.dispatch-scene__heading h2{font-size:1.08rem}.dispatch-scene__brief{font-size:.59rem}.dispatch-line p{font-size:.66rem}.dispatch-next{min-width:96px;padding-inline:9px}}@media (orientation:portrait) and (aspect-ratio<=4/5){.app-shell[data-screen=lobby]{grid-template-rows:minmax(0,1fr);height:100dvh;min-height:100svh;max-height:100dvh;overflow:clip}.app-shell[data-screen=lobby] .app-bar{min-height:0;height:calc(clamp(3.5rem, 9dvh, 4rem) + env(safe-area-inset-top));padding:max(1.5%, env(safe-area-inset-top)) 4% 1.5%;gap:2%}.app-shell[data-screen=lobby] .brand{gap:3%;min-width:0}.app-shell[data-screen=lobby] .brand__mark{flex:none;width:clamp(1.75rem,8vw,2rem);height:clamp(1.75rem,8vw,2rem)}.app-shell[data-screen=lobby] .brand__name{font-size:clamp(.68rem,2.8vw,.86rem)}.app-shell[data-screen=lobby] .app-bar__tools{flex:none;gap:2%}.app-shell[data-screen=lobby] .app-bar__tools .chip-button{border-radius:50%;flex:0 0 2.75rem;place-items:center;width:2.75rem;min-height:2.75rem;padding:0;font-size:0;display:grid}.app-shell[data-screen=lobby] .app-bar__tools .chip-button b{font:800 clamp(.48rem, 2vw, .62rem) var(--mono)}.app-shell[data-screen=lobby] .icon-button{flex:0 0 2.75rem;width:2.75rem;height:2.75rem}.app-shell[data-screen=lobby]>.screen{height:100%;min-height:0}.app-shell[data-screen=lobby] .lobby{grid-template:100%/100%;height:100%;min-height:0;overflow:clip}.app-shell[data-screen=lobby] .lobby__hero,.app-shell[data-screen=lobby] .lobby__panel{grid-area:1/1;min-height:0}.app-shell[data-screen=lobby] .lobby__hero{z-index:1;isolation:auto;background:linear-gradient(0deg,#040b11f5 0 10%,#0000 52%),linear-gradient(90deg,#040b1133,#0000 72%),url(/assets/harbor-battlefield.png) 50% 42%/cover;height:100%}.app-shell[data-screen=lobby] .lobby__hero:after{background:linear-gradient(0deg,#07131df5 0 40%,#0000 61%),linear-gradient(105deg,#040b11b8,#0000 68%)}.app-shell[data-screen=lobby] .lobby__team{object-position:bottom right;opacity:.88;width:100%;height:56%;bottom:35%;right:-18%}.app-shell[data-screen=lobby] .lobby__copy{width:100%;height:42%;padding:calc(clamp(3.75rem, 10.5dvh, 4.5rem) + env(safe-area-inset-top)) 4% 0}.app-shell[data-screen=lobby] .section-label{text-overflow:ellipsis;white-space:nowrap;max-width:58%;font-size:clamp(.46rem,2vw,.58rem);overflow:hidden}.app-shell[data-screen=lobby] .lobby__title{max-width:58%;margin:clamp(.2rem,.7dvh,.4rem) 0;font-size:clamp(2.4rem,14vw,4.6rem);line-height:.72}.app-shell[data-screen=lobby] .lobby__lede{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:58%;font-size:clamp(.64rem,2.55vw,.78rem);line-height:1.35;display:-webkit-box;overflow:hidden}.app-shell[data-screen=lobby] .signal-strip{text-overflow:ellipsis;white-space:nowrap;max-width:58%;margin-top:clamp(.2rem,.75dvh,.42rem);font-size:clamp(.48rem,2vw,.58rem);overflow:hidden}.app-shell[data-screen=lobby] .signal-strip:before{flex:none;width:.45rem;height:.45rem}.app-shell[data-screen=lobby] .crew-manifest{z-index:6;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5%;width:auto;height:clamp(2.75rem,8dvh,3.5rem);margin:0;position:absolute;bottom:clamp(.18rem,.6dvh,.35rem);left:4%;right:4%}.app-shell[data-screen=lobby] .crew-chip{height:100%;min-height:0}.app-shell[data-screen=lobby] .crew-chip .hero-portrait{background-size:cover,auto 270%,cover;flex-basis:34%;width:34%}.app-shell[data-screen=lobby] .crew-chip__copy{padding:4%}.app-shell[data-screen=lobby] .crew-chip__copy small{font-size:clamp(.32rem,1.35vw,.42rem)}.app-shell[data-screen=lobby] .crew-chip__copy b{margin:0;font-size:clamp(.55rem,2.2vw,.72rem)}.app-shell[data-screen=lobby] .crew-chip__copy em,.app-shell[data-screen=lobby] .crew-chip__trait{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell[data-screen=lobby] .lobby__panel{z-index:4;height:58%;min-height:0;padding:2% 4% max(2%, env(safe-area-inset-bottom));background:linear-gradient(145deg,#102632bd,#0000 52%),#07131df5;border-top:1px solid #77c8c366;border-left:0;justify-content:space-between;align-self:end;gap:clamp(.15rem,.5dvh,.32rem);position:relative;overflow:hidden;box-shadow:0 -1.5rem 4rem #040b11e6}.app-shell[data-screen=lobby] .operation-select{gap:clamp(.12rem,.4dvh,.25rem);min-height:0}.app-shell[data-screen=lobby] .operation-select__heading{align-items:center;gap:2%;min-height:0}.app-shell[data-screen=lobby] .operation-select__heading .utility-label{display:none}.app-shell[data-screen=lobby] .operation-select__heading b{margin:0;font-size:clamp(.68rem,2.8vw,.84rem)}.app-shell[data-screen=lobby] .operation-select__heading>small{font-size:clamp(.46rem,1.9vw,.58rem)}.app-shell[data-screen=lobby] .operation-select__cards{scroll-snap-type:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5%;margin:0;padding:0;display:grid;overflow:visible}.app-shell[data-screen=lobby] .operation-card{border-left-width:.18rem;grid-template-rows:1fr;grid-template-columns:auto minmax(0,1fr);gap:4%;min-width:0;height:clamp(2.75rem,7.5dvh,3.25rem);min-height:2.75rem;padding:4%}.app-shell[data-screen=lobby] .operation-card__status{grid-row:auto;justify-content:center;gap:0;padding-right:5%}.app-shell[data-screen=lobby] .operation-card__status small{font-size:clamp(.42rem,1.7vw,.54rem)}.app-shell[data-screen=lobby] .operation-card__status span,.app-shell[data-screen=lobby] .operation-card__status b,.app-shell[data-screen=lobby] .operation-card__heading small{display:none}.app-shell[data-screen=lobby] .operation-card__heading{align-items:center;min-width:0}.app-shell[data-screen=lobby] .operation-card__heading b{font-size:clamp(.5rem,2vw,.66rem);line-height:1.1}.app-shell[data-screen=lobby] .operation-card__brief,.app-shell[data-screen=lobby] .operation-card__intel{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell[data-screen=lobby] .mission-card{grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);column-gap:3%;height:clamp(3.5rem,10dvh,4.25rem);min-height:0;padding:2.5% 3%;display:grid}.app-shell[data-screen=lobby] .mission-card>.utility-label,.app-shell[data-screen=lobby] .mission-card>h2,.app-shell[data-screen=lobby] .mission-card>.mission-card__threat{grid-column:1}.app-shell[data-screen=lobby] .mission-card>.utility-label{font-size:clamp(.38rem,1.55vw,.48rem)}.app-shell[data-screen=lobby] .mission-card h2{text-overflow:ellipsis;white-space:nowrap;margin:.12rem 0;font-size:clamp(.72rem,3.1vw,.98rem);overflow:hidden}.app-shell[data-screen=lobby] .mission-card>p:not(.mission-card__threat){clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell[data-screen=lobby] .mission-card .mission-card__threat{text-overflow:ellipsis;white-space:nowrap;align-self:end;margin:0;font-size:clamp(.43rem,1.75vw,.56rem);line-height:1.15;overflow:hidden}.app-shell[data-screen=lobby] .mission-stats{grid-area:1/2/-1;align-self:stretch;gap:2%;margin:0}.app-shell[data-screen=lobby] .mission-stat{border-top:0;border-left:1px solid var(--line);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-width:0;padding:2%;display:flex}.app-shell[data-screen=lobby] .mission-stat b{margin:0;font-size:clamp(.58rem,2.4vw,.78rem)}.app-shell[data-screen=lobby] .mission-stat span{margin-top:.12rem;font-size:clamp(.36rem,1.4vw,.48rem);line-height:1.1}.app-shell[data-screen=lobby] .difficulty-switch,.app-shell[data-screen=lobby] .primary-action,.app-shell[data-screen=lobby] .bottom-nav button{height:clamp(2.75rem,7.5dvh,3.25rem);min-height:2.75rem}.app-shell[data-screen=lobby] .difficulty-switch{gap:1.5%;padding:0}.app-shell[data-screen=lobby] .difficulty-switch button{height:100%;min-height:2.75rem;font-size:clamp(.56rem,2.25vw,.7rem)}.app-shell[data-screen=lobby] .primary-action{gap:4%;padding:0 4%;font-size:clamp(.78rem,3.2vw,1rem)}.app-shell[data-screen=lobby] .primary-action small{font-size:clamp(.48rem,1.9vw,.62rem)}.app-shell[data-screen=lobby] .meta-row{white-space:nowrap;gap:3%;min-height:0;padding:0;font-size:clamp(.46rem,1.9vw,.6rem)}.app-shell[data-screen=lobby] #claim-idle-button{min-height:2.75rem;padding:0 3%;font-size:clamp(.45rem,1.85vw,.58rem)}.app-shell[data-screen=lobby] .lobby__panel:has(#claim-idle-button) .meta-row{flex-direction:column;justify-content:center;align-items:flex-start;gap:.12rem;width:44%;min-height:2.75rem}.app-shell[data-screen=lobby] .lobby__panel:has(#claim-idle-button) #claim-idle-button{right:4%;bottom:calc(max(2%, env(safe-area-inset-bottom)) + 2.75rem + clamp(.15rem, .5dvh, .32rem));width:50%;position:absolute}.app-shell[data-screen=lobby] .bottom-nav{gap:1.5%}.app-shell[data-screen=lobby] .bottom-nav button{font-size:clamp(.56rem,2.2vw,.68rem)}}@keyframes signal{0%,to{opacity:.25;transform:scaleX(.5)}50%{opacity:1;transform:scaleX(1)}}@keyframes rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes choice-pulse{0%,to{box-shadow:0 0 #77c8c300}50%{box-shadow:0 10px 30px #2b8b8c29}}@keyframes critical{0%,to{background-color:#040b11cc}50%{background-color:#6e141cad}}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes tutorial-arrive{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes tutorial-target{0%,to{filter:brightness()}50%{filter:brightness(1.18)}}@keyframes dispatch-arrive{0%{opacity:0;transform:translateY(34px)}to{opacity:1;transform:translateY(0)}}@keyframes dispatch-signal{0%,to{transform:scaleY(.65)}50%{transform:scaleY(1.15)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
