@font-face{font-family:Michroma;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/michroma-latin-ext-400-normal-BeYM1uOO.woff2)format("woff2"),url(/assets/michroma-latin-ext-400-normal-DlRaauac.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Michroma;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/michroma-latin-400-normal-4gS0VCia.woff2)format("woff2"),url(/assets/michroma-latin-400-normal-C7Pn7qca.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0a0b0d;--surface:#111316;--surface-2:#171a1e;--ink:#f1f0ec;--muted:#8b9098;--dim:#5a6068;--line:#23272d;--line-strong:#353a42;--glass:var(--surface);--glass-2:var(--surface-2);--accent:#2f6bff;--accent-hi:#7aa2ff;--accent-ink:#fff;--accent-soft:#2f6bff24;--accent-2:var(--accent);--gold:#f4c84a;--good:#46c37b;--warn:#f2a531;--bad:#fc3d21;--m:#8fd6b0;--g:#8ea2ff;--x:#d38cff;--e:#f4c84a;--radius:2px;--font:"Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--display:"Michroma", var(--font);--mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:15px}*{box-sizing:border-box}html,body{overscroll-behavior-y:none}body{min-height:100dvh;margin:0;overflow-x:hidden}::selection{background:var(--accent);color:var(--accent-ink)}img{-webkit-user-select:none;user-select:none;display:block}h1,h2,h3,h4,p{margin:0}.display,.title{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;font-weight:400}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:.82rem}.tiny{font-size:.72rem}.warn{color:var(--warn)}.ok{color:var(--good)}.space{z-index:-1;background:var(--bg);position:fixed;inset:0;overflow:hidden}.starfield{position:absolute;inset:0}.glass{background:var(--surface);border:1px solid var(--line)}button{font:inherit;color:inherit;cursor:pointer}.btn{border-radius:var(--radius);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent);white-space:nowrap;border:0;justify-content:center;align-items:center;gap:.45rem;padding:.62rem 1rem;font-size:.74rem;font-weight:600;transition:background .15s,transform .12s;display:inline-flex;position:relative}.btn:hover:not(:disabled){background:#4a80ff}.btn:active:not(:disabled){transform:translateY(1px)}.btn:focus-visible,.chip-btn:focus-visible,.tabs button:focus-visible{outline:1px solid var(--accent-hi);outline-offset:2px}.btn:disabled{color:var(--dim);box-shadow:inset 0 0 0 1px var(--line-strong);cursor:not-allowed;background:0 0}.btn.small{padding:.42rem .7rem;font-size:.68rem}.btn-lg{padding:.9rem 1.4rem;font-size:.8rem}.icon-btn{border-radius:var(--radius);border:1px solid var(--line-strong);width:32px;height:32px;color:var(--muted);background:0 0;place-items:center;display:grid}.icon-btn:hover:not(:disabled){color:var(--bad);border-color:#fc3d2199}input{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);outline:none;padding:.7rem .85rem;transition:border-color .15s,box-shadow .15s}input::placeholder{color:var(--dim)}input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.chip{border-radius:var(--radius);border:1px solid var(--line-strong);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:0 0;align-items:center;gap:.3rem;padding:.2rem .5rem;font-size:.68rem;display:inline-flex}.chip.biome{color:var(--ink);border-color:color-mix(in srgb, var(--c) 55%, transparent);background:color-mix(in srgb, var(--c) 12%, transparent)}.chip-row{scrollbar-width:none;gap:.4rem;margin:.4rem 0 .2rem;padding:.2rem 0 .6rem;display:flex;overflow-x:auto}.chip-btn{border-radius:var(--radius);border:1px solid var(--line);color:var(--muted);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;background:0 0;flex:none;padding:.42rem .7rem;font-size:.68rem;font-weight:500;transition:color .15s,background .15s,border-color .15s}.chip-btn:hover:not(:disabled):not(.on){color:var(--ink);border-color:var(--line-strong)}.chip-btn.on{color:var(--bg);border-color:var(--ink);background:var(--ink)}.tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-hi);border:1px solid #2f6bff73;padding:.1rem .4rem;font-size:.62rem;font-weight:500}.lvl{color:var(--accent-hi);font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}.bar{background:var(--line);height:4px;position:relative;overflow:hidden}.bar>span{transform-origin:0;background:var(--accent);height:100%;transition:transform .6s;display:block}.mask-icon{-webkit-mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;background:currentColor;display:inline-block}.res-icon{flex:none;display:inline-block}.res-icon-x{filter:hue-rotate(115deg)saturate(1.4)}.empty-line{color:var(--muted);padding:.6rem .2rem;font-size:.9rem}.callout{color:var(--warn);border-radius:var(--radius);background:#f2a5310f;border:1px dashed #f2a53180;margin:.4rem 0;padding:.6rem .8rem;font-size:.9rem}.blocked{color:var(--warn);margin-top:.35rem}.art{border-radius:var(--radius);background:var(--surface-2);box-shadow:0 0 0 1px var(--line);flex:none;position:relative;overflow:hidden}.art img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.art.locked{background:#1a1c20}.art.locked img{filter:grayscale()brightness(.45)contrast(1.1)!important}.art.active{box-shadow:0 0 0 2px var(--accent);animation:2.4s ease-in-out infinite active-outline}@keyframes active-outline{50%{box-shadow:0 0 0 2px var(--accent-hi)}}.art-level{z-index:1;font-family:var(--mono);letter-spacing:.1em;text-align:right;color:var(--ink);background:#0a0b0ddb;padding:.12rem .4rem;font-size:.6rem;font-weight:600;position:absolute;bottom:0;left:0;right:0}.art-level:before{content:"LV ";color:var(--muted);font-weight:500}.unit-card .art-level:before{content:"OWNED "}.art-lock{z-index:1;color:#ffffffb3;place-items:center;display:grid;position:absolute;inset:0 0 1.1rem}.app{max-width:1080px;min-height:100dvh;margin:0 auto}.content{padding:.8rem .9rem calc(5.5rem + env(safe-area-inset-bottom))}.banner{border-radius:var(--radius);color:var(--warn);background:#f2a53112;border:1px solid #f2a53173;border-left-width:3px;margin:.5rem .9rem 0;padding:.55rem .8rem;font-size:.88rem;font-weight:500}.banner strong{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:600}.topbar{z-index:20;background:var(--bg);border-width:0 0 1px;border-radius:0;margin:0;padding:0;position:sticky;top:0}@media (width>=1080px){.topbar{border-width:0 1px 1px}}.topbar-row{align-items:center;gap:.5rem;padding:.5rem .9rem;display:flex}.picker{flex:1;min-width:0;position:relative}.picker-btn{border-radius:var(--radius);text-align:left;width:100%;color:var(--muted);background:0 0;border:1px solid #0000;align-items:center;gap:.6rem;padding:.2rem .4rem .2rem .1rem;display:flex}.picker-btn:hover{border-color:var(--line)}.picker-btn img,.picker-menu img{border-radius:50%;width:34px;height:34px}.picker-text{flex:1;min-width:0;display:grid}.picker-text strong,.picker-menu strong{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:400;overflow:hidden}.picker-text small,.picker-menu small{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:.15rem;font-size:.66rem}.picker-menu{z-index:30;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line-strong);gap:.1rem;max-height:60vh;padding:.25rem;animation:.14s ease-out pop;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto;box-shadow:0 16px 40px -8px #000c}.picker-menu button{border-radius:var(--radius);text-align:left;background:0 0;border:0;align-items:center;gap:.6rem;padding:.4rem;display:flex}.picker-menu button span{display:grid}.picker-menu button:hover{background:var(--surface-2)}.picker-menu button.current{background:var(--surface-2);box-shadow:inset 2px 0 0 var(--accent)}@keyframes pop{0%{opacity:0;transform:translateY(-4px)}}.conn{background:var(--bad);border-radius:50%;flex:none;width:7px;height:7px;margin-left:.15rem;box-shadow:0 0 0 3px #fc3d212e}.conn.online{background:var(--good);box-shadow:0 0 0 3px #46c37b29}.conn.connecting{background:var(--warn);box-shadow:0 0 0 3px #f2a5312e}.resources{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.pill{border-right:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;align-content:start;justify-items:end;gap:.15rem;min-width:0;padding:.45rem .75rem .55rem .6rem;display:grid;position:relative;overflow:hidden}.pill:last-child{border-right:0}.pill-key{font-family:var(--mono);letter-spacing:.14em;color:var(--muted);align-items:center;gap:.3rem;font-size:.62rem;font-weight:500;display:flex}.pill-value{max-width:100%;font-family:var(--mono);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;line-height:1.1;overflow:hidden}.pill-rate{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:.64rem}.pill-m{--rc:var(--m)}.pill-g{--rc:var(--g)}.pill-x{--rc:var(--x)}.pill-e{--rc:var(--e)}.pill:after{content:"";background:var(--line);height:2px;position:absolute;bottom:0;left:0;right:0}.pill-e:after{display:none}.pill-fill{z-index:1;transform-origin:0;background:var(--rc);height:2px;transition:transform .8s;position:absolute;bottom:0;left:0;right:0}.pill.full .pill-rate{letter-spacing:.12em;color:var(--warn);font-weight:600;animation:1.4s ease-in-out infinite blink}.pill-e.deficit{background:#fc3d2114}.pill-e.deficit .pill-value{color:var(--bad)}@keyframes blink{50%{opacity:.35}}.tabs{z-index:20;width:min(100%,1080px);padding:0 0 env(safe-area-inset-bottom);background:var(--bg);border-width:1px 0 0;border-radius:0;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}@media (width>=1080px){.tabs{border-width:1px 1px 0}}.tabs button{color:var(--dim);background:0 0;border:0;border-radius:0;justify-items:center;gap:.3rem;padding:.65rem 0 .6rem;transition:color .15s;display:grid;position:relative}.tabs button:hover{color:var(--muted)}.tabs button.active{color:var(--ink)}.tabs button.active:before{content:"";background:var(--accent);height:2px;position:absolute;top:-1px;left:22%;right:22%}.tab-icon{place-items:center;height:22px;display:grid}.tab-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;font-size:.6rem;font-weight:500}.badge{border-radius:var(--radius);background:var(--accent);min-width:16px;color:var(--accent-ink);font-family:var(--mono);text-align:center;padding:0 .25rem;font-size:.6rem;font-weight:600;line-height:16px;position:absolute;top:4px;right:calc(50% - 22px)}.badge.warn{background:var(--warn);color:#14100a;animation:1.6s ease-in-out infinite blink}.screen-enter{animation:.25s ease-out enter}@keyframes enter{0%{opacity:0;transform:translateY(4px)}}.screen-head{flex-wrap:wrap;align-items:baseline;gap:.3rem .8rem;margin:.6rem 0 .8rem;display:flex}.screen-head h2{font-size:1.3rem;line-height:1.1}.screen-head>.muted,.screen-head>span{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:.7rem}.panel{border-radius:var(--radius);margin-top:.8rem;padding:.85rem .9rem}.panel h3,.screen h3{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:.2rem 0 .75rem;font-size:.68rem;font-weight:500}.panel h3 .muted,.screen h3 .muted{color:var(--muted)}.panel h3+*+h3,.panel .roster+h3,.panel .empty-roster+h3{margin-top:1.1rem}.research-group+.research-group{margin-top:1.4rem}.tt-legend{flex-wrap:wrap;align-items:center;gap:.35rem .8rem;margin-bottom:.6rem;display:flex}.tt-key:before{content:"";background:var(--kc);vertical-align:-1px;border-radius:0;width:10px;height:10px;margin-right:.3rem;display:inline-block}.tt-key-line:before{content:"";border-top:2px solid var(--line-strong);vertical-align:3px;width:18px;height:0;margin-right:.3rem;display:inline-block}.tt-key-line.met:before{border-color:#46c37b99}.kind-building{--kc:var(--gold)}.kind-tech{--kc:var(--accent)}.kind-ship{--kc:var(--g)}.kind-defense{--kc:var(--bad)}.tt-hint{margin:0 0 .6rem}.tt-detail{border-radius:var(--radius);margin-bottom:.6rem;padding:.7rem .8rem}.tt-detail p{margin:.45rem 0 0;line-height:1.9}.tt-detail-head{align-items:center;gap:.6rem;display:flex}.tt-detail-head img{border-radius:var(--radius);object-fit:cover;width:40px;height:40px}.tt-detail-head>div{flex:1;display:grid}.tt-chip{border:1px solid var(--line-strong);border-radius:var(--radius);font-family:var(--mono);background:0 0;margin:0 .3rem .2rem 0;padding:.1rem .45rem;font-size:.7rem}.tt-chip.met{color:var(--good);border-color:#46c37b73}.tt-chip.unmet{color:var(--bad);border-color:#fc3d2173}.tt-scroll{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(var(--line) 1px, transparent 1px) 0 0 / 40px 40px, linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0 / 40px 40px, var(--bg);overscroll-behavior:contain;background-attachment:local;max-height:72vh;overflow:auto}.tt-canvas{position:relative}.tt-edges{pointer-events:none;position:absolute;inset:0}.tt-edge path{fill:none;stroke:var(--line-strong);stroke-width:1.3px}.tt-edge text{font-family:var(--mono);fill:var(--muted);font-size:9px;font-weight:600}.tt-edge.met path{stroke:#46c37b66}.tt-edge.dim{opacity:.08}.tt-edge.lit path{stroke:var(--accent);stroke-width:2.2px}.tt-edge.lit.met path{stroke:var(--good)}.tt-edge.lit text{fill:var(--ink)}.tt-node{border-radius:var(--radius);border-left:3px solid var(--kc);text-align:left;color:var(--ink);align-items:center;gap:.5rem;padding:.3rem .5rem .3rem .35rem;transition:opacity .2s,box-shadow .2s,transform .2s;display:flex;position:absolute}.tt-node img{border-radius:var(--radius);object-fit:cover;flex:none;width:34px;height:34px}.tt-text{min-width:0;display:grid}.tt-name{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:600;line-height:1.15;overflow:hidden}.tt-sub{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.62rem}.tt-node.owned .tt-sub{color:var(--good)}.tt-node.ready .tt-sub{color:var(--accent-hi)}.tt-node.locked img{opacity:.45}.tt-node.dim{opacity:.25}.tt-node.focus{box-shadow:0 0 0 1px var(--kc);z-index:1}.card-grid{grid-template-columns:minmax(0,1fr);gap:.65rem;display:grid}@media (width>=760px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.card{border-radius:var(--radius);gap:0;padding:0;transition:border-color .15s;animation:.25s ease-out both enter;display:flex;overflow:hidden}.card>.art{min-height:116px;box-shadow:none;border-right:1px solid var(--line);border-radius:0;align-self:stretch;width:clamp(116px,30%,150px)!important;height:auto!important}.card:hover{border-color:var(--line-strong)}.card:hover .art img{transform:scale(1.04)}.card.is-locked{opacity:.8}.card.is-locked h4{color:var(--muted)}.card.in-queue{box-shadow:inset 2px 0 0 var(--accent);border-color:#2f6bff8c}.card.level-up{animation:1.6s ease-out level-up}@keyframes level-up{0%{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}to{box-shadow:0 0 #0000}}.card-body{flex:1;align-content:start;gap:.25rem;min-width:0;padding:.65rem .75rem .6rem;display:grid}.card-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.card-head h4{font-size:.95rem;font-weight:700}.requires{font-family:var(--mono);letter-spacing:.02em;color:var(--warn);font-size:.7rem}.effects{font-family:var(--mono);flex-wrap:wrap;gap:.25rem .7rem;font-size:.72rem;display:flex}.effects .good{color:var(--good)}.effects .cost{color:var(--warn)}.card-foot{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.35rem .7rem;margin-top:.35rem;padding-top:.5rem;display:flex}.card-foot .btn{margin-left:auto;padding:.5rem .75rem;font-size:.66rem}.cost{font-family:var(--mono);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:.6rem;font-size:.78rem;font-weight:600;display:flex}.cost-item{align-items:center;gap:.22rem;display:inline-flex}.cost-item.short{color:var(--bad)}.duration{font-family:var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:.72rem}.queue{gap:.45rem;margin:0 0 .4rem;padding:0;list-style:none;display:grid}.queue-item{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);align-items:center;gap:.7rem;padding:.55rem .6rem;display:flex}.queue-item.active{background:var(--surface);box-shadow:inset 2px 0 0 var(--accent);border-color:#2f6bff8c}.queue-main{flex:1;gap:.15rem;min-width:0;display:grid}.queue-title{font-weight:700}.timer{font-variant-numeric:tabular-nums;grid-template-columns:auto 1fr;align-items:baseline;gap:.1rem .6rem;display:grid}.timer .countdown{font-family:var(--mono);letter-spacing:.02em;color:var(--ink);font-size:.95rem;font-weight:600}.timer .ends{font-family:var(--mono);letter-spacing:.04em;color:var(--muted);font-size:.68rem}.timer .bar{grid-column:1/-1;height:3px;margin-top:.2rem}.timer .bar>span{transition:transform 1s linear}.timer.compact{gap:.4rem;display:inline-flex}.timer.compact .countdown{font-size:.8rem}.timer.finalizing{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--good);font-size:.72rem;font-weight:600;animation:1s ease-in-out infinite blink;display:inline-block}.timer.queued{font-family:var(--mono);color:var(--muted);font-size:.72rem;display:inline-block}.idle-list{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.idle-list li{border-bottom:1px solid var(--line);align-items:center;gap:.65rem;padding:.4rem .2rem;display:flex}.idle-list li:last-child{border-bottom:0}.idle-planet{border-radius:50%;width:34px;height:34px}.idle-planet.research{border:1px dashed var(--line-strong);background:var(--surface-2);place-items:center;display:grid}.idle-text{flex:1;display:grid}.idle-when{font-family:var(--mono);color:var(--muted);font-size:.74rem}.is-idle .idle-when{color:var(--warn);font-weight:600}.hero{max-width:560px;margin:0 auto;position:relative}.hero-head{z-index:2;padding-top:.6rem;position:relative}.hero-kicker{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);justify-content:space-between;gap:.5rem;font-size:.66rem;font-weight:500;display:flex}.hero-head h1{color:var(--ink);overflow-wrap:anywhere;margin-top:.45rem;font-size:clamp(1.5rem,7vw,2.2rem);line-height:1.05}.chips{flex-wrap:wrap;gap:.35rem;margin-top:.45rem;display:flex}.hero-flavour{margin-top:.45rem}.hero-chart{display:flow-root;position:relative}.anno-col{z-index:3;pointer-events:none;gap:.7rem;display:grid;position:absolute;top:4%}.anno-tl{left:0}.anno-tr{text-align:right;justify-items:end;right:0}.anno{border-bottom:1px solid var(--line-strong);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);gap:.1rem;padding-bottom:.3rem;font-size:.6rem;font-weight:500;display:grid}.anno b{letter-spacing:.06em;color:var(--ink);font-size:.74rem;font-weight:600}.status-grid{z-index:2;grid-template-columns:1fr;gap:.5rem;margin-top:.4rem;display:grid;position:relative}@media (width>=640px){.status-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}.status-card{border-radius:var(--radius);text-align:left;color:var(--ink);align-items:center;gap:.75rem;padding:.65rem .75rem;transition:border-color .15s;display:flex}.status-card:hover{border-color:var(--line-strong)}.status-card.idle{gap:.2rem;display:grid}.status-card.idle strong{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--warn);align-items:center;gap:.45rem;font-size:.92rem;font-weight:600;display:flex}.status-card.idle strong:before{content:"";background:currentColor;width:7px;height:7px}.status-body{flex:1;gap:.15rem;min-width:0;display:grid}.status-kicker{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.64rem;font-weight:500}.prod-rows{gap:.85rem;display:grid}.prod-row{align-items:center;gap:.7rem;display:flex}.prod-main{flex:1;gap:.3rem;display:grid}.prod-top,.prod-sub{justify-content:space-between;gap:.5rem;display:flex}.prod-top{font-weight:600}.prod-sub{font-family:var(--mono);letter-spacing:.02em;font-size:.68rem}.prod-rate{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}.prod-m{--rc:var(--m)}.prod-g{--rc:var(--g)}.prod-x{--rc:var(--x)}.prod-e{--rc:var(--e)}.prod-row .prod-rate{color:var(--rc)}.prod-row .bar{overflow:visible}.prod-row .bar>span{background:var(--rc)}.prod-row .bar:after{content:"";background:repeating-linear-gradient(90deg, transparent 0 calc(25% - 1px), var(--line-strong) calc(25% - 1px) 25%);pointer-events:none;position:absolute;inset:-3px 0}.prod-e.deficit .prod-rate,.prod-e.deficit .prod-sub{color:var(--bad)}.roster{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:.5rem;display:grid}.roster-item{border-radius:var(--radius);background:var(--bg);border:1px solid var(--line);text-align:center;justify-items:center;gap:.15rem;padding:.5rem .3rem;display:grid}.roster-item>img{object-fit:contain;filter:drop-shadow(0 4px 8px #0009);width:64px;height:56px}.roster-item strong{font-family:var(--mono);font-size:.92rem;font-weight:600}.empty-roster{align-items:center;gap:.9rem;display:flex}.empty-roster>img{opacity:.3;filter:grayscale();width:92px}.empty-roster div{justify-items:start;gap:.35rem;display:grid}.colonies{scroll-snap-type:x mandatory;gap:.5rem;padding-bottom:.3rem;display:flex;overflow-x:auto}.colony{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);scroll-snap-align:start;text-align:center;flex:none;justify-items:center;gap:.15rem;width:136px;padding:.6rem .4rem;transition:border-color .15s;display:grid}.colony:hover{border-color:var(--line-strong)}.colony.current{box-shadow:inset 0 2px 0 var(--accent);border-color:#2f6bff8c}.colony img{width:64px;height:64px;margin-bottom:.25rem}.colony .small{font-family:var(--mono);font-size:.68rem}.colony.ghost{opacity:.7;border-style:dashed}.ghost-planet{border:1px dashed var(--line-strong);border-radius:50%;width:64px;height:64px;margin-bottom:.25rem}.scene{aspect-ratio:1;perspective:1200px;perspective-origin:50% 40%;pointer-events:none;width:min(100%,520px);margin:-12% auto -10%;position:relative;container-type:inline-size}.scene-chart{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.scene-chart circle{fill:none;stroke:var(--line-strong);stroke-width:.25px}.scene-chart .dots{stroke:var(--dim);stroke-dasharray:.3 2.2}.scene-chart path{stroke:var(--muted);stroke-width:.25px}.system{transform-style:preserve-3d;position:absolute;inset:0}.planet-wrap{width:54cqw;height:54cqw;transform-style:preserve-3d;animation:12s ease-in-out infinite float;position:absolute;top:23cqw;left:23cqw}@keyframes float{50%{transform:translateY(-.8cqw)}}.planet-glow{background:radial-gradient(circle closest-side, transparent 85%, color-mix(in srgb, var(--glow) 24%, transparent) 88.5%, transparent 97%);border-radius:50%;position:absolute;inset:0}.planet-img{width:100%;height:100%;position:absolute;inset:0}.planet-shade{pointer-events:none;background:radial-gradient(circle at 32% 28%,#ffffff14 0%,#0000 35% 55%,#00000073 82%);border-radius:50%;position:absolute;inset:7%}.shield-dome{background:radial-gradient(circle, transparent 60%, color-mix(in srgb, #8fb2ff calc(var(--s) * 25%), transparent) 69%, color-mix(in srgb, #d5e2ff calc(var(--s) * 60%), transparent) 70.5%, transparent 71.5%), repeating-conic-gradient(from 0deg, #8fb2ff12 0deg 6deg, transparent 6deg 12deg);border-radius:50%;animation:4s ease-in-out infinite shield,80s linear infinite spin;position:absolute;inset:-9%;-webkit-mask:radial-gradient(circle,#0000 55%,#000 66% 71%,#0000 72%);mask:radial-gradient(circle,#0000 55%,#000 66% 71%,#0000 72%)}@keyframes shield{50%{opacity:.55}}.beacon{background:var(--accent-hi);border-radius:50%;width:1.6cqw;height:1.6cqw;position:absolute;top:30%;left:63%}.beacon:after{content:"";border:1px solid var(--accent-hi);border-radius:50%;animation:2s ease-out infinite ripple;position:absolute;inset:-100%}@keyframes ripple{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(2.2)}}.ring{width:0;height:0;transform-style:preserve-3d;transform:rotateZ(var(--yaw)) rotateX(var(--tilt));position:absolute;top:50%;left:50%}.ring-path{left:calc(var(--r) * -1);top:calc(var(--r) * -1);width:calc(var(--r) * 2);height:calc(var(--r) * 2);border:1px solid #f1f0ec2e;border-radius:50%;position:absolute}.ring.empty .ring-path{border-style:dashed;border-color:#f1f0ec1a}.spinner{transform-style:preserve-3d;animation:spin var(--dur) linear infinite;position:absolute}.slot{transform-style:preserve-3d;transform:rotateZ(var(--a)) translateX(var(--r));position:absolute}.billboard{transform-style:preserve-3d;animation:counter var(--dur) linear infinite;position:absolute}.billboard>*{position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.ship{filter:drop-shadow(0 1cqw 1cqw #0009);max-width:none}.ship-count{border-radius:var(--radius);font-family:var(--mono);white-space:nowrap;color:var(--ink);border:1px solid var(--line-strong);background:#0a0b0dd9;padding:.05rem .4rem;font-size:max(10px,2.2cqw);font-weight:600;transform:translate(-50%,3.4cqw)!important}.platform{background:var(--c);width:1.4cqw;height:1.4cqw;box-shadow:0 0 0 .4cqw color-mix(in srgb, var(--c) 25%, transparent)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes counter{0%{transform:rotateZ(calc(-1 * var(--a))) rotateZ(0deg) rotateX(calc(-1 * var(--tilt))) rotateZ(calc(-1 * var(--yaw)))}to{transform:rotateZ(calc(-1 * var(--a))) rotateZ(-360deg) rotateX(calc(-1 * var(--tilt))) rotateZ(calc(-1 * var(--yaw)))}}.scene-pill{z-index:3;border-radius:var(--radius);white-space:nowrap;border:1px solid var(--line-strong);background:#0a0b0de0;align-items:center;gap:.5rem;padding:.35rem .7rem;font-size:.82rem;display:inline-flex;position:absolute;bottom:15%;left:50%;transform:translate(-50%)}.scene-pill b{font-family:var(--mono);color:var(--accent-hi)}.pulse-dot{background:var(--accent-hi);width:7px;height:7px;animation:1.2s ease-in-out infinite blink}.splash{min-height:100dvh;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);place-content:center;font-size:.78rem;animation:1.6s ease-in-out infinite blink;display:grid}.login{min-height:100dvh;padding:1rem 1.4rem calc(1.4rem + env(safe-area-inset-bottom));align-content:center;justify-items:center;display:grid}.login-col{gap:.4rem;width:min(100%,420px);display:grid}.login-mark{justify-content:space-between;gap:.5rem;display:flex}.login-scene{width:min(100%,58dvh);margin:-2% auto -14%}.login-scene .scene{margin:-8% auto 0}.login-panel{z-index:3;text-align:left;gap:.7rem;display:grid;position:relative}.kicker{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:.66rem;font-weight:500}.title{color:var(--ink);font-size:clamp(2rem,10vw,2.6rem);line-height:1.1}.title em{color:var(--accent-hi);font-style:normal}.login form{gap:.6rem;margin-top:.4rem;display:grid}.coming{border-radius:var(--radius);text-align:center;color:var(--accent-hi);justify-items:center;gap:.5rem;padding:2.5rem 1rem;display:grid}.coming h3{color:var(--ink);letter-spacing:.08em}.toasts{z-index:40;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));gap:.45rem;width:min(100% - 24px,440px);display:grid;position:fixed;transform:translate(-50%)}.toast{border-radius:var(--radius);border-left:3px solid var(--accent);text-align:left;color:var(--ink);background:var(--surface-2);align-items:center;gap:.7rem;padding:.55rem .7rem;animation:.25s ease-out toast-in;display:flex;box-shadow:0 16px 40px -10px #000c}.toast img{border-radius:var(--radius);object-fit:cover;width:44px;height:44px}.toast>span{gap:.1rem;font-size:.88rem;display:grid}.toast strong{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-hi);font-size:.66rem;font-weight:600}.toast.success{border-left-color:var(--good)}.toast.success strong{color:var(--good)}.toast.error{border-left-color:var(--bad)}.toast.error strong{color:var(--bad)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.banner.offline{background:var(--accent-soft);color:#d5e2ff;border-color:#2f6bff80;font-weight:400}.banner.offline strong{color:var(--accent-hi)}.splash.unreachable{text-align:center;gap:.4rem;animation:none}.splash.unreachable span{color:var(--ink);animation:1.6s ease-in-out infinite blink}.splash.unreachable small{font-family:var(--font);letter-spacing:0;text-transform:none;font-size:.85rem}.link{color:var(--accent-hi);background:0 0;border:0;padding:0;font-size:.85rem;font-weight:600}.link:disabled{color:var(--muted);opacity:.5;cursor:not-allowed}.panel h3 .link,.screen h3 .link{float:right;font-family:var(--font);letter-spacing:.02em;text-transform:none}.btn.danger{color:#fff;background:var(--bad)}.btn.danger:hover:not(:disabled){background:#ff5a42}select{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);padding:.55rem .7rem}.mission-attack{--mc:#fc3d21}.mission-spy{--mc:#b49cf0}.mission-transport{--mc:#cfc6b2}.mission-deploy{--mc:#7aa2ff}.mission-colonize{--mc:#f4c84a}.mission-salvage{--mc:#f2a531}.mission-explore{--mc:#5fc4c0}.mission-hold{--mc:#cbb8f5}.chip-btn[class*=mission-]{color:var(--mc);border-color:color-mix(in srgb, var(--mc) 40%, transparent)}.chip-btn[class*=mission-].on{color:#0a0b0d;background:var(--mc);border-color:var(--mc)}.chip-btn.mini{padding:.22rem .55rem;font-size:.64rem}.mission-tag{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;border-radius:var(--radius);color:var(--mc);background:color-mix(in srgb, var(--mc) 16%, transparent);vertical-align:2px;padding:.12rem .45rem;font-size:.62rem}.segmented{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg);scrollbar-width:none;margin:0 0 .9rem;display:flex;overflow-x:auto}.segmented button{min-height:42px;color:var(--muted);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;background:0 0;border:0;border-radius:0;flex:1 0 auto;justify-content:center;align-items:center;gap:.4rem;padding:.6rem .9rem;font-size:.72rem;font-weight:500;transition:color .15s,background .15s;display:inline-flex;position:relative}.segmented button+button{border-left:1px solid var(--line-strong)}.segmented button:hover:not(.on){color:var(--ink);background:var(--surface-2)}.segmented button.on{color:var(--ink);background:var(--accent-soft);font-weight:600}.segmented button.on:before{content:"";background:var(--accent);height:2px;position:absolute;top:0;left:0;right:0}.segmented button:focus-visible{outline:1px solid var(--accent-hi);outline-offset:-3px}.seg-badge{border-radius:var(--radius);letter-spacing:0;text-align:center;background:var(--accent-soft);min-width:16px;color:var(--accent-hi);padding:0 .25rem;font-size:.6rem;line-height:16px;display:inline-block}.segmented button.on .seg-badge{background:var(--accent);color:var(--accent-ink)}.meters{flex-wrap:wrap;gap:.45rem;margin-bottom:.7rem;display:flex}.meter{border-radius:var(--radius);background:var(--bg);border:1px solid var(--line);font-family:var(--mono);font-variant-numeric:tabular-nums;padding:.35rem .75rem;font-size:.85rem;display:grid}.meter small{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.6rem}.meter.warn{color:var(--warn);border-color:#f2a5318c}.stats{flex-wrap:wrap;gap:.3rem;margin:.15rem 0;display:flex}.stat{border-radius:var(--radius);border:1px solid var(--line);font-family:var(--mono);font-variant-numeric:tabular-nums;background:0 0;align-items:baseline;gap:.3rem;padding:.12rem .45rem;font-size:.74rem;font-weight:600;display:inline-flex}.stat small{letter-spacing:.08em;color:var(--muted);font-size:.6rem}.stepper-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.35rem;display:flex}.stepper-row .btn{flex:1 0 auto}.stepper{border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--bg);align-items:stretch;min-width:0;max-width:100%;display:inline-flex;overflow:hidden}.stepper button{color:var(--ink);font-family:var(--mono);background:0 0;border:0;padding:0 .65rem;font-size:1rem;font-weight:600}.stepper button:hover:not(:disabled){background:var(--surface-2)}.stepper button.max{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-hi);border-left:1px solid var(--line);font-size:.64rem}.stepper input{text-align:center;width:4.2rem;min-width:2.5rem;font-family:var(--mono);font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:0;flex:0 auto;padding:.4rem .2rem;font-weight:600}.stepper input:focus{box-shadow:none}.unit-card .art img{object-fit:contain}.fleet-row{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);border-left:2px solid var(--mc,var(--accent));align-items:center;gap:.7rem;padding:.55rem .6rem;display:flex}.fleet-row>img{object-fit:contain;filter:drop-shadow(0 3px 6px #0009);width:56px;height:56px}.fleet-row>img.flip{transform:scaleX(-1)}.bar.travel>span{background:var(--mc,var(--accent));transition:width 1s linear}.icon-btn.recall:hover:not(:disabled){color:var(--warn);border-color:#f2a53180}.fleet-row.hostile{--mc:#fc3d21}.hostile-icon{border-radius:var(--radius);width:44px;height:44px;color:var(--bad);background:#fc3d211a;border:1px solid #fc3d2180;flex:none;place-items:center;font-size:1.3rem;animation:1.4s ease-in-out infinite blink;display:grid}.hostile-panel{box-shadow:inset 2px 0 0 var(--bad);border-color:#fc3d218c}.hostile-panel h3{color:var(--bad)}.incoming-banner{border-radius:var(--radius);color:#ffd9d2;text-align:left;background:#fc3d211f;border:1px solid #fc3d2199;border-left-width:3px;align-items:center;gap:.7rem;width:calc(100% - 1.8rem);margin:.5rem .9rem 0;padding:.55rem .8rem;display:flex}.incoming-banner>span:nth-child(2){flex:1;min-width:0;display:grid}.incoming-banner strong{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:.74rem}.incoming-banner small{color:#ffb3a6}.incoming-banner .countdown{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}.siren{background:#fc3d21;flex:none;width:10px;height:10px;animation:1.2s ease-out infinite siren;box-shadow:0 0 #fc3d21b3}@keyframes siren{to{box-shadow:0 0 0 10px #fc3d2100}}.inbox-btn{border-radius:var(--radius);border:1px solid var(--line-strong);width:34px;height:34px;color:var(--ink);background:0 0;flex:none;place-items:center;transition:color .15s,border-color .15s;display:grid;position:relative}.inbox-btn svg{width:17px;height:17px}.inbox-btn:hover{border-color:var(--muted)}.inbox-btn.on{color:var(--accent-hi);border-color:var(--accent)}.inbox-btn .badge{background:var(--accent);color:#fff;top:-5px;right:-5px}.sheet-backdrop{z-index:50;background:#050506b8;justify-content:center;align-items:flex-end;animation:.2s ease-out fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet{border-radius:var(--radius);background:var(--surface);border-color:var(--line-strong);border-bottom:0;flex-direction:column;width:min(100%,560px);max-height:92dvh;animation:.25s cubic-bezier(.2,1,.3,1) sheet-in;display:flex;box-shadow:0 -20px 60px -20px #000000e6}@keyframes sheet-in{0%{opacity:0;transform:translateY(32px)}}@media (width>=640px){.sheet-backdrop{align-items:center}.sheet{border-radius:var(--radius);border-bottom:1px solid var(--line-strong)}}.sheet-head{border-bottom:1px solid var(--line);align-items:center;gap:.8rem;padding:.9rem 1rem .75rem;display:flex}.sheet-head>img{border-radius:50%;flex:none;width:54px;height:54px}.sheet-head>div{flex:1;gap:.2rem;min-width:0;display:grid}.sheet-head h3{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);margin:0;font-size:.85rem;font-weight:400;line-height:1.35}.sheet-head .icon-btn{align-self:flex-start}.sheet-body{flex:1;align-content:start;gap:.6rem;padding:.8rem 1rem;display:grid;overflow-y:auto}.sheet-foot{padding:.7rem 1rem calc(.9rem + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.sheet-foot .btn{width:100%}.field{color:var(--muted);gap:.3rem;font-size:.85rem;display:grid}.field b{font-family:var(--mono);color:var(--ink);font-weight:600}.field.speed input[type=range]{accent-color:var(--accent);background:0 0;border:0;padding:0}.picker-headline{justify-content:space-between;align-items:baseline;margin-bottom:.3rem;display:flex}.ship-picker,.cargo{gap:.35rem;display:grid}.ship-row,.cargo-row{border-radius:var(--radius);background:var(--bg);border:1px solid var(--line);align-items:center;gap:.6rem;padding:.35rem .5rem;display:flex}.ship-row.disabled{opacity:.4}.ship-row>img{object-fit:contain;width:44px;height:44px}.ship-name{flex:1;min-width:0;font-weight:600;display:grid}.ship-row input,.cargo-row input{text-align:right;width:6.5rem;font-family:var(--mono);font-variant-numeric:tabular-nums;padding:.4rem .55rem}.cargo-row input{flex:1}.summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;display:grid}.summary>div{border-radius:var(--radius);background:var(--bg);border:1px solid var(--line);font-family:var(--mono);font-variant-numeric:tabular-nums;gap:.1rem;padding:.45rem .55rem;font-size:.8rem;display:grid}.summary>div:last-child{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.summary small{width:100%;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.58rem}@media (width<=420px){.summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.head-actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.starmap{border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(#23272d8c 1px, transparent 1px) 0 0 / 48px 48px, linear-gradient(90deg, #23272d8c 1px, transparent 1px) 0 0 / 48px 48px, var(--bg);height:calc(100dvh - 300px);min-height:360px;position:relative;overflow:hidden}.starmap canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.starmap canvas:active{cursor:grabbing}.map-tools{gap:6px;display:grid;position:absolute;top:10px;right:10px}.map-tools button{border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--bg);width:36px;height:36px;color:var(--ink);place-items:center;font-size:1.1rem;line-height:1;transition:color .15s,border-color .15s;display:grid}.map-tools button:hover{color:var(--accent-hi);border-color:var(--accent)}.map-legend{border-radius:var(--radius);border:1px solid var(--line);max-width:calc(100% - 70px);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);pointer-events:none;background:#0a0b0de0;flex-wrap:wrap;gap:.25rem .8rem;padding:.35rem .6rem;font-size:.6rem;display:flex;position:absolute;top:10px;left:10px}.map-legend span:before{content:"";border:1.5px solid var(--c);vertical-align:-1px;border-radius:50%;width:8px;height:8px;margin-right:.35rem;display:inline-block}.lg-mine{--c:#7aa2ff}.lg-other{--c:#fc3d21}.lg-prot{--c:#7fd6a2}.lg-relic{--c:#f4c84a}.lg-relic:before{transform:rotate(45deg)scale(.85);border-radius:1px!important}.lg-seen{--c:#8b9098}.lg-seen:before{border-style:dashed!important}.lg-sensor{--c:#7aa2ff}.lg-sensor:before{border-style:dotted!important}.map-card{border-radius:var(--radius);max-height:52%;animation:.25s cubic-bezier(.2,1,.3,1) sheet-in;position:absolute;bottom:8px;left:8px;right:8px;overflow-y:auto}.map-card .sys-card{background:var(--surface);border-color:var(--line-strong);animation:none;box-shadow:0 16px 40px -12px #000000e6}@media (width>=900px){.map-card{width:420px;max-height:calc(100% - 20px);inset:10px 60px auto auto}}.systems{gap:.65rem;display:grid}@media (width>=900px){.systems{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}.sys-card{border-radius:var(--radius);padding:.7rem .75rem;animation:.25s ease-out both enter}.system-head{flex-wrap:wrap;align-items:center;gap:.3rem .6rem;margin-bottom:.5rem;display:flex}.system-head strong{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;font-weight:400}.star{border-radius:50%;flex:none;width:14px;height:14px}.tag.relic{color:var(--gold);background:#f4c84a1a;border-color:#f4c84a73}.tag.protected{color:#7fd6a2;cursor:help;background:#46c37b1a;border-color:#46c37b73}.orbits{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.orbit-row{border-radius:var(--radius);background:var(--bg);border:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.35rem .6rem;padding:.35rem .45rem;display:flex}.orbit-row.mine{box-shadow:inset 2px 0 0 var(--accent);border-color:#2f6bff8c}.orbit-row.other{border-color:#fc3d214d}.orbit-row>img{border-radius:50%;flex:none;width:38px;height:38px}.orbit-n{text-align:center;width:1.2rem;font-family:var(--mono);color:var(--muted);flex:none;font-size:.72rem}.orbit-info{flex:1;min-width:9rem;display:grid}.orbit-actions{flex-wrap:wrap;gap:.3rem;margin-left:auto;display:flex}.tag.intel.live{color:var(--accent-hi);background:#3d7bff24}.tag.intel.stale{color:#c2c6cc;background:#8b909824}.tag.intel.unknown{color:var(--muted);background:#ffffff0f}.sys-card.uncharted{background-image:repeating-linear-gradient(135deg,#ffffff06 0 6px,#0000 6px 12px)}.uncharted-body{flex-wrap:wrap;align-items:center;gap:.4rem .8rem;display:flex}.uncharted-body .empty-line{flex:1;min-width:12rem;padding:.3rem .2rem}.stale-note{border-radius:var(--radius);color:#c2c6cc;background:#8b90980f;border:1px dashed #8b909859;margin:0 0 .45rem;padding:.35rem .55rem}.stale-text{color:#c2c6cc}.live-text{color:var(--accent-hi)}.star-btn{border-radius:var(--radius);border:1px solid var(--line);width:28px;height:28px;color:var(--muted);background:0 0;flex:none;font-size:.95rem;line-height:1;transition:color .15s,border-color .15s}.star-btn:hover,.star-btn.on{color:var(--gold);border-color:#f4c84a73}.star-btn.on{background:#f4c84a1a}.coord{min-width:2.7rem;font-family:var(--mono);letter-spacing:.04em;text-align:center;flex:none;font-size:.68rem}.bm-label{color:var(--gold)}.sys-dot{background:radial-gradient(circle,#fff 0 8%,#f4c84a 18%,#f2a53140 45%,#0000 70%);border-radius:50%;flex:none;width:38px;height:38px}.player-badge{border-radius:var(--radius);width:26px;height:26px;font-family:var(--mono);color:var(--bad);background:#fc3d211f;border:1px solid #fc3d2159;flex:none;place-items:center;font-size:.8rem;display:grid}.sheet-star{background:radial-gradient(circle,#fff 0 6%,#8fb2ff 16%,#3d7bff4d 42%,#0000 70%);border-radius:50%;flex:none;width:58px;height:58px}.report-list{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.report-row{--tc:var(--accent);border-radius:var(--radius);text-align:left;border-left:3px solid var(--tc);align-items:center;gap:.7rem;width:100%;padding:.55rem .7rem;display:flex}.report-row>img{border-radius:50%;flex:none;width:42px;height:42px}.report-text{flex:1;min-width:0;display:grid}.tone-win{--tc:var(--good)}.tone-loss{--tc:var(--bad)}.tone-draw{--tc:var(--warn)}.tone-intel{--tc:#b49cf0}.tone{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tc);font-size:.66rem}.report-sheet{width:min(100%,680px)}.verdict{--tc:var(--accent);border-radius:var(--radius);text-align:center;border:1px solid color-mix(in srgb, var(--tc) 45%, transparent);border-top:3px solid var(--tc);background:color-mix(in srgb, var(--tc) 7%, transparent);gap:.25rem;padding:.85rem .9rem;display:grid}.verdict>span{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--tc);font-size:1.3rem;font-weight:400}.verdict.win{--tc:var(--good)}.verdict.loss{--tc:var(--bad)}.verdict.draw{--tc:var(--warn)}.verdict.intel{--tc:#b49cf0}.intel-ladder{text-align:center;justify-items:center;gap:.35rem;display:grid}.intel-ladder ol{gap:4px;margin:0;padding:0;list-style:none;display:flex}.intel-ladder li{border-radius:var(--radius);background:#b49cf024;border:1px solid #b49cf040;width:22px;height:6px}.intel-ladder li.on{background:#b49cf0}.tag.approx{color:#cbb8f5;vertical-align:1px;background:#b49cf01a;border-color:#b49cf066;margin-left:.5rem}.report-grid{grid-template-columns:1fr 1fr;gap:.45rem;display:grid}.report-grid>div{border-radius:var(--radius);background:var(--bg);border:1px solid var(--line);gap:.25rem;padding:.5rem .6rem;display:grid}.report-grid small,.side h4{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.62rem;font-weight:500}.side{border-radius:var(--radius);background:var(--bg);border:1px solid var(--line);gap:.3rem;padding:.6rem .65rem;display:grid}.side h4 .muted{font-family:var(--font);letter-spacing:.02em;text-transform:none;color:var(--ink);font-size:.85rem}table.units{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.86rem}table.units td{border-top:1px solid var(--line);padding:.2rem .3rem}table.units img{object-fit:contain;width:30px;height:30px}table.units .num{font-family:var(--mono);text-align:right;white-space:nowrap;font-size:.8rem}table.units .loss{color:var(--bad)}table.units .rebuilt{color:var(--good);font-size:.75rem}.rounds summary{cursor:pointer;color:var(--accent-hi);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:.3rem 0;font-size:.7rem;font-weight:500}.round{border-top:1px solid var(--line);padding:.25rem 0;font-size:.85rem}.intel-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.3rem .6rem;margin:0;padding:0;font-size:.86rem;list-style:none;display:grid}.intel-list li{align-items:center;gap:.4rem;display:flex}.intel-list img{object-fit:contain;width:28px;height:28px}.intel-list b{font-variant-numeric:tabular-nums;margin-left:auto}.intel-list.compact{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));font-size:.8rem}.btn.ghost{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-strong);background:0 0;border:0}.btn.ghost:hover:not(:disabled){background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--muted)}.btn.ghost:disabled{color:var(--dim);box-shadow:inset 0 0 0 1px var(--line)}.head-btn{margin-left:auto}.icon-btn.back{color:var(--ink);align-self:center}.icon-btn.back:hover:not(:disabled){color:var(--accent-hi);border-color:var(--accent)}.sheet-foot{gap:.5rem;display:flex}.sheet-foot .btn{flex:1;width:auto;min-width:0}.sheet-foot .btn.ghost{flex:none}.simulator .screen-head .chip{white-space:normal;max-width:100%}.sim-layout{gap:.8rem;display:grid}@media (width>=900px){.sim-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.sim-results{position:sticky;top:130px}}.sim-inputs{display:grid}.sim-inputs .panel:first-child,.sim-results.panel{margin-top:0}.sim-side.attacker{border-left:3px solid var(--bad)}.sim-side.defender{border-left:3px solid var(--accent)}.sim-actions{float:right;gap:.8rem;display:inline-flex}.sim-actions .link{float:none}.sim-techs{flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;display:flex}.mini-stepper{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);gap:.15rem;font-size:.6rem;display:grid}.mini-stepper>span{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);align-items:center;display:inline-flex}.mini-stepper button{color:var(--ink);background:0 0;border:0;width:26px;height:26px;font-weight:700}.mini-stepper button:hover{color:var(--accent-hi)}.mini-stepper b{text-align:center;min-width:1.6rem;font-family:var(--mono);color:var(--ink);font-size:.8rem}.sim-units{gap:.3rem;display:grid}.sim-unit{border-radius:var(--radius);background:var(--bg);border:1px solid var(--line);align-items:center;gap:.6rem;padding:.25rem .45rem;display:flex}.sim-unit img{object-fit:contain;width:38px;height:38px}.sim-unit span{flex:1;font-weight:600}.sim-unit input{text-align:right;width:6.5rem;font-family:var(--mono);font-variant-numeric:tabular-nums;padding:.35rem .55rem}.sim-add{flex-wrap:wrap;gap:.3rem;margin-top:.55rem;display:flex}.sim-swap{justify-content:center;margin:.5rem 0 -.3rem;display:flex}.sim-results{gap:.6rem;transition:opacity .2s;display:grid}.sim-results.stale{opacity:.6}.odds{border-radius:var(--radius);background:var(--line);height:24px;font-family:var(--mono);font-size:.68rem;font-weight:600;display:flex;overflow:hidden}.odds span{white-space:nowrap;color:#0a0b0d;place-items:center;min-width:4px;transition:flex-grow .4s;display:grid;overflow:hidden}.odds .att{background:var(--bad)}.odds .drw{background:var(--warn)}.odds .def{background:var(--accent);color:#fff}.report-grid .big{font-family:var(--mono);font-size:1.3rem}.report-grid.single{grid-template-columns:1fr}.sim-reset{margin:1rem auto 0;display:block}.sim-strip{z-index:25;left:50%;bottom:calc(72px + env(safe-area-inset-bottom));border-radius:var(--radius);width:min(100% - 24px,440px);color:var(--ink);text-align:left;border-color:var(--line-strong);gap:.3rem;padding:.45rem .7rem;font-size:.82rem;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 12px 30px -10px #000000e6}.sim-strip b{font-family:var(--mono)}.sim-strip .pulse-dot{position:absolute;top:8px;right:10px}.odds.mini{height:6px}@media (width>=900px){.sim-strip{display:none}}.simulator{padding-bottom:3.5rem}.report-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.replay-check{font-size:.85rem}.replay-check.match{color:var(--good)}.replay-check.mismatch,.replay-check.error{color:var(--bad)}.round-viewer .chip-row{margin-top:.2rem}.round-sides{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.round-side{border-radius:var(--radius);background:var(--bg);border:1px solid var(--line);border-top:2px solid var(--bad);align-content:start;gap:.2rem;padding:.45rem .5rem;display:grid}.round-side.defender{border-top-color:var(--accent)}.round-side small{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.62rem}.round-unit{grid-template-columns:26px 1fr auto 2.6rem;align-items:center;gap:.35rem;font-size:.8rem;transition:opacity .3s;display:grid}.round-unit img{object-fit:contain;width:26px;height:26px}.round-unit b{font-family:var(--mono);font-variant-numeric:tabular-nums}.round-unit em{font-family:var(--mono);text-align:right;color:var(--bad);font-size:.7rem;font-style:normal}.round-unit.gone{opacity:.35}@media (width<=420px){.pill{padding:.4rem .55rem .5rem .4rem}.pill-key{letter-spacing:.1em;gap:.25rem}.pill .res-icon{width:12px;height:12px}.pill-value{font-size:.86rem}.pill-rate{font-size:.6rem}}@media (width>=900px){.content{padding:1.2rem 1.5rem 6rem}}.sheet-glyph{border-radius:var(--radius);width:44px;height:44px;color:var(--accent-hi);background:var(--accent-soft);border:1px solid #2f6bff80;flex:none;place-items:center;display:grid}.settings-sheet .sheet-body{padding-bottom:calc(1rem + env(safe-area-inset-bottom));gap:.8rem}.set-group{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);gap:.15rem;padding:.35rem .8rem;display:grid}.set-group h4{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:.5rem 0 .15rem;font-size:.64rem;font-weight:500}.set-row{align-items:center;gap:.8rem;padding:.5rem 0;display:flex}.set-row+.set-row{border-top:1px solid var(--line)}.set-text{flex:1;gap:.1rem;min-width:0;display:grid}.set-text strong{font-weight:600}.set-text small{font-size:.78rem;line-height:1.35}.set-lock{width:46px;color:var(--bad);opacity:.85;place-items:center;display:grid}.set-actions{flex-wrap:wrap;align-items:center;gap:.6rem;padding:.1rem 0 .6rem;display:flex}.switch{border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--bg);flex:none;width:44px;height:24px;padding:0;transition:background .15s,border-color .15s;position:relative}.switch-knob{background:var(--muted);border-radius:1px;width:16px;height:16px;transition:transform .18s;position:absolute;top:3px;left:3px}.switch.on{border-color:var(--accent);background:var(--accent)}.switch.on .switch-knob{background:#fff;transform:translate(20px)}.switch:disabled{opacity:.45;cursor:not-allowed}.switch:focus-visible{outline:1px solid var(--accent-hi);outline-offset:2px}.quiet-times{grid-template-columns:1fr 1fr;gap:.6rem;padding:0 0 .7rem;display:grid}.quiet-times small{grid-column:1/-1}.quiet-times input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;padding:.55rem .7rem}.install-hint{border-radius:var(--radius);background:var(--accent-soft);color:#d5e2ff;border:1px dashed #2f6bff80;margin:0 0 .6rem;padding:.55rem .7rem;font-size:.85rem;line-height:1.45}.install-hint .glyph{vertical-align:-3px;color:var(--accent-hi);display:inline-grid}.push-prompt{z-index:45;left:50%;bottom:calc(72px + env(safe-area-inset-bottom));border-radius:var(--radius);border-color:#2f6bff80;border-top:2px solid var(--accent);background:var(--surface);align-items:flex-start;gap:.75rem;width:min(100% - 24px,440px);padding:.8rem .9rem;animation:.25s ease-out prompt-in;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 18px 40px -14px #000000e6}@keyframes prompt-in{0%{opacity:0;transform:translate(-50%,8px)}}.push-prompt-text{flex:1;gap:.3rem;min-width:0;display:grid}.push-prompt-text strong{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:600}.push-prompt-text small{color:var(--muted);font-size:.82rem;line-height:1.4}.push-prompt-text .install-hint{margin:0}.push-prompt-actions{justify-content:flex-end;gap:.5rem;margin-top:.2rem;display:flex}:root{--rel-member:#b49cf0;--rel-ally:#5fc4c0;--rel-nap:#f2a531;--rel-war:#f35}.ally-tag{color:#d4d6da;font-family:var(--mono);letter-spacing:.04em;font-weight:600}.badge.calm{background:var(--accent)!important;color:#fff!important}.lg-member{--c:var(--rel-member)}.lg-ally{--c:var(--rel-ally)}.lg-nap{--c:var(--rel-nap)}.lg-war{--c:var(--rel-war)}.tag.rel{border-color:color-mix(in srgb, var(--rc) 45%, transparent);background:color-mix(in srgb, var(--rc) 12%, transparent);color:var(--rc)}.rel-member{--rc:var(--rel-member)}.rel-ally{--rc:var(--rel-ally)}.rel-nap{--rc:var(--rel-nap)}.rel-war{--rc:var(--rel-war)}.orbit-row.friend{border-color:color-mix(in srgb, var(--rc) 35%, transparent)}.orbit-row.other.rel-war{border-color:color-mix(in srgb, var(--rel-war) 55%, transparent)}.chip-btn.mini[class*=rel-]{color:var(--rc);border-color:color-mix(in srgb, var(--rc) 45%, transparent)}.chip-btn.mini[class*=rel-]:hover:not(:disabled){background:color-mix(in srgb, var(--rc) 14%, transparent)}.shared-by{color:#b49cf0}.danger-text{color:var(--bad)!important}textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);resize:vertical;outline:none;width:100%;padding:.65rem .8rem}textarea:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.pact-note{color:var(--rc);border-left:2px solid var(--rc);margin:.2rem 0 0;padding-left:.5rem}.confirm-panel{border-radius:var(--radius);border-color:#fc3d218c;border-left:3px solid var(--bad);background:var(--surface);gap:.4rem;margin:0 1rem .6rem;padding:.8rem .9rem;animation:.2s ease-out sheet-in;display:grid}.confirm-panel strong{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--bad);font-size:.72rem;font-weight:600}.confirm-panel p{margin:0;font-size:.9rem}.confirm-actions{justify-content:flex-end;gap:.5rem;display:flex}.ally-grid{gap:.75rem;display:grid}@media (width>=900px){.ally-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.ally-grid>.ally-hero,.ally-grid>.ally-intro,.ally-grid>.ally-card.alert{grid-column:1/-1}}.ally-intro{color:var(--muted);margin:0;font-size:.92rem}.ally-card{border-radius:var(--radius);gap:.5rem;padding:.75rem .8rem;animation:.25s ease-out both enter;display:grid}.ally-card.highlight{box-shadow:inset 0 2px 0 var(--accent);border-color:#2f6bff8c}.ally-card.alert{box-shadow:inset 0 2px 0 var(--bad);background:var(--surface);border-color:#fc3d218c}.ally-card-head{justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.ally-card-head h3{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:0;font-size:.68rem;font-weight:500}.ally-badge{border-radius:var(--radius);text-align:center;min-width:3.1rem;font-family:var(--mono);letter-spacing:.08em;color:var(--bc,#d4d6da);background:color-mix(in srgb, var(--bc,#d4d6da) 10%, transparent);border:1px solid color-mix(in srgb, var(--bc,#d4d6da) 35%, transparent);flex:none;padding:.3rem .45rem;font-size:.72rem;font-weight:700}.ally-badge.big{--bc:var(--rel-member)}.dip-row .ally-badge{--bc:var(--rc)}.ally-badge.big{min-width:4.4rem;padding:.7rem .6rem;font-size:1rem}.ally-hero{border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.6rem .8rem;padding:.85rem .9rem;display:flex}.ally-hero-text{flex:1;min-width:10rem;display:grid}.ally-hero-text h3{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);margin:0;font-size:.95rem;font-weight:400}.ally-description{flex-basis:100%}.ally-description,.ally-announcement{justify-items:start;gap:.35rem;display:grid}.ally-description.editing,.ally-announcement.editing{justify-items:stretch}.ally-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.45}.ally-list{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.ally-row{border-radius:var(--radius);background:var(--bg);border:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.35rem .6rem;padding:.4rem .5rem;display:flex}.ally-row.me{box-shadow:inset 2px 0 0 var(--accent);border-color:#2f6bff8c}.ally-row.dip-row{border-color:color-mix(in srgb, var(--rc) 30%, transparent)}.ally-row.dip-row.proposed{border-style:dashed}.ally-row.alert-row{border-color:#fc3d2166}.ally-row-text{flex:1;min-width:9rem;display:grid}.ally-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.3rem;margin-left:auto;display:flex}.ally-form{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.ally-form .field:first-child input{text-transform:uppercase;width:6.5rem}.ally-form .grow{flex:1;min-width:10rem}.ally-browser{gap:.45rem;display:grid}.dip-help{margin:0}.player-badge.rank-leader{box-shadow:0 0 0 1.5px var(--gold)}.player-badge.rank-officer{box-shadow:0 0 0 1.5px var(--rel-member)}.tag.rank{border-color:var(--line-strong);color:var(--muted);background:0 0}.tag.rank-leader{color:var(--gold);background:#f4c84a1a;border-color:#f4c84a73}.tag.rank-officer{border-color:color-mix(in srgb, var(--rel-member) 45%, transparent);background:color-mix(in srgb, var(--rel-member) 10%, transparent);color:var(--rel-member)}:root{--rel-pirate:#ff8a3d}.lg-pirate{--c:var(--rel-pirate)}.rel-pirate{--rc:var(--rel-pirate)}.orbit-row.other.rel-pirate{border-color:color-mix(in srgb, var(--rel-pirate) 50%, transparent)}.mission-tag.joint{--mc:#f2a531;margin-left:.3rem}.joint-toggle{border-radius:var(--radius);cursor:pointer;background:#f2a5310d;border:1px dashed #f2a53173;align-items:flex-start;gap:.6rem;padding:.55rem .7rem;display:flex}.joint-toggle.on{background:#f2a5311a;border-style:solid}.joint-toggle input{accent-color:#f2a531;margin-top:.2rem}.joint-toggle span{gap:.1rem;display:grid}.holding-list{gap:.3rem;margin:0 0 .6rem;padding:0;list-style:none;display:grid}.holding-row{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--rel-member) 35%, transparent);background:color-mix(in srgb, var(--rel-member) 6%, transparent);flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem;padding:.4rem .55rem;display:flex}.holding-row .small:last-child{margin-left:auto}.chat-layout{gap:.65rem;display:grid}@media (width>=900px){.chat-layout{grid-template-columns:240px minmax(0,1fr);align-items:start}}.chat-channels{border-radius:var(--radius);flex-wrap:wrap;gap:.35rem;padding:.5rem;display:flex}@media (width>=900px){.chat-channels{flex-flow:column}}.chat-channel{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);color:var(--muted);text-align:left;justify-content:space-between;align-items:center;gap:.5rem;padding:.42rem .7rem;font-size:.85rem;font-weight:600;display:flex;position:relative}.chat-channel.on{color:var(--ink);box-shadow:inset 2px 0 0 var(--accent);border-color:#2f6bff8c}.chat-channel.alliance span:first-child{color:var(--rel-member)}.chat-channel .badge{background:var(--accent);color:#fff;position:static}.chat-new{flex:10rem}.chat-new input{width:100%;padding:.45rem .7rem;font-size:.85rem}.chat-blocked{color:var(--muted);flex-basis:100%;font-size:.82rem}.chat-blocked-row{justify-content:space-between;padding:.2rem .3rem;display:flex}.chat-pane{border-radius:var(--radius);flex-direction:column;min-height:55dvh;max-height:calc(100dvh - 260px);display:flex}.chat-pane-head{border-bottom:1px solid var(--line);align-items:baseline;gap:.6rem;padding:.6rem .8rem;display:flex}.chat-pane-head strong{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:400}.chat-messages{flex-direction:column;flex:1;gap:.45rem;padding:.7rem .8rem;display:flex;overflow-y:auto}.chat-msg{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line);align-self:flex-start;max-width:min(85%,560px);padding:.4rem .65rem .45rem;position:relative}.chat-msg.mine{border-radius:var(--radius);background:var(--accent-soft);border-color:#2f6bff66;align-self:flex-end}.chat-msg.hidden{opacity:.6}.chat-meta{align-items:baseline;gap:.5rem;font-size:.8rem;display:flex}.chat-more{margin-left:auto;padding:0 .2rem;font-size:1rem;line-height:1}.chat-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:.15rem 0 0;line-height:1.4}.chat-menu{z-index:5;border-radius:var(--radius);background:var(--surface);border-color:var(--line-strong);min-width:11rem;padding:.3rem;display:grid;position:absolute;top:1.6rem;right:.3rem;box-shadow:0 12px 30px -8px #000000e6}.chat-menu button{text-align:left;border-radius:var(--radius);background:0 0;border:0;padding:.4rem .55rem;font-size:.85rem}.chat-menu button:hover{background:var(--surface-2)}.chat-compose{border-top:1px solid var(--line);gap:.5rem;padding:.6rem .7rem;display:flex}.chat-compose input{flex:1;min-width:0}.mod-panel{border-color:#f2a53166;margin-bottom:.65rem}@media (prefers-reduced-motion:reduce){.spinner,.billboard,.shield-dome,.planet-wrap{animation-play-state:paused!important}.screen-enter,.card,.toast,.push-prompt{animation:none!important}}.owner-status{color:var(--muted);font-size:.85em;font-weight:700}.owner-status.st-vacation{color:var(--accent-hi)}.owner-status.st-longInactive{color:var(--warn)}.banner.vacation{background:var(--accent-soft);color:#d5e2ff;border-color:#2f6bff80}.banner.vacation strong,.timer.paused .countdown{color:var(--accent-hi)}.timer.paused .bar>span{background:var(--muted)}.signin-form input,.register-title{width:100%}.register-title{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;margin:.2rem 0 0;font-size:.78rem;font-weight:600}.google-btn{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-strong);background:0 0;justify-content:center;align-items:center;gap:.55rem;text-decoration:none;display:inline-flex}.google-btn:hover:not(:disabled){background:var(--surface-2)}.dev-signin{text-align:left}.dev-signin summary{cursor:pointer;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;font-size:.66rem}.dev-signin form{margin-top:.6rem}.signin-sent{gap:.6rem;display:grid}.signin-sent h2{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;font-weight:600}.signin-form input.signin-code{font-family:var(--mono);letter-spacing:.4em;text-align:center;font-size:1.6rem}.row-actions{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.legal-links{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-top:.4rem;font-size:.62rem}.legal-links a{color:var(--muted);text-decoration:none}.legal-links a:hover{color:var(--ink)}label.check{text-align:left;align-items:flex-start;gap:.5rem;font-size:.9rem;display:flex}label.check input{width:auto;margin-top:.2rem}label.check a{color:var(--accent-hi)}.warn-list{color:var(--muted);gap:.2rem;margin:.2rem 0 .4rem;padding-left:1.2rem;display:grid}.vacation-group.on{border-color:#2f6bff80}.danger-zone{border:1px solid #fc3d2173;border-left:3px solid var(--bad);border-radius:var(--radius);background:#fc3d210d;gap:.5rem;padding:.8rem;display:grid}.feedback-form{gap:.7rem;display:grid}.feedback-form .chips{flex-wrap:wrap;gap:.4rem;display:flex}.board-tabs{flex-wrap:wrap;gap:.4rem;margin-bottom:.4rem;display:flex}.board{border-radius:var(--radius);padding:.8rem}.board-me{margin:0 0 .6rem}.board-me strong{color:var(--accent-hi)}.board-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.board-row{border-radius:var(--radius);grid-template-columns:2.6rem 1fr auto;align-items:center;gap:.5rem;padding:.45rem .5rem;display:grid}.board-row:nth-child(odd){background:#8b90980a}.board-row.me{background:var(--accent-soft);outline:1px solid #2f6bff80}.board-rank{font-family:var(--mono);text-align:center;color:var(--muted);font-weight:600}.board-row.top-1 .board-rank{color:var(--gold)}.board-row.top-2 .board-rank{color:#d4d6da}.board-row.top-3 .board-rank{color:#e2a46f}.board-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-value{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}.board-gap{text-align:center;color:var(--muted)}.rank-card{text-align:left;width:100%;color:inherit;cursor:pointer;border:1px solid var(--line);align-items:center;gap:.8rem;display:flex}.rank-card>span:nth-child(2){flex:1}.rank-trophy{border:1px solid var(--line-strong);border-radius:var(--radius);width:40px;height:40px;color:var(--gold);flex:none;place-items:center;display:grid}.feedback-sheet .sheet-body{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}
