@font-face{font-family:Josefin Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/robotics-endgame/_next/static/media/312bdf69facd99ca-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Josefin Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/robotics-endgame/_next/static/media/1b30b992a554bafd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Josefin Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/robotics-endgame/_next/static/media/accc82dc8525882b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Josefin Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/robotics-endgame/_next/static/media/312bdf69facd99ca-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Josefin Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/robotics-endgame/_next/static/media/1b30b992a554bafd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Josefin Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/robotics-endgame/_next/static/media/accc82dc8525882b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Josefin Sans Fallback;src:local("Arial");ascent-override:73.32%;descent-override:24.44%;line-gap-override:0.00%;size-adjust:102.29%}.__className_455667{font-family:Josefin Sans,Josefin Sans Fallback;font-style:normal}.__variable_455667{--font-josefin:"Josefin Sans","Josefin Sans Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/robotics-endgame/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/robotics-endgame/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/robotics-endgame/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/robotics-endgame/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/robotics-endgame/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/robotics-endgame/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/robotics-endgame/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/robotics-endgame/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/robotics-endgame/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/robotics-endgame/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/robotics-endgame/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/robotics-endgame/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_c693f1{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_c693f1{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{--royal-hi:#24408c;--royal-lo:#13234f;--plate:#ffffff;--ink:#10203f;--gold:#f7c948;--ember:#f25c54;--ghost:#6e7b8f;--font-display:var(--font-josefin),"Josefin Sans",system-ui,sans-serif;--font-data:var(--font-mono),"JetBrains Mono",ui-monospace,monospace;--sheet-ease:cubic-bezier(0.22,1,0.36,1)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{min-height:100dvh;background:radial-gradient(ellipse 120% 90% at 50% 32%,var(--royal-hi) 0,var(--royal-lo) 72%),var(--royal-lo);background-attachment:fixed;color:#fff;font-family:var(--font-display);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}.page{max-width:860px;margin:0 auto;padding:28px 16px 96px}.eyebrow{font-family:var(--font-data);font-weight:600;font-size:11px;letter-spacing:.28em;color:var(--gold);margin:0 0 14px}.eyebrow,h1.title{text-transform:uppercase;text-align:center}h1.title{font-weight:700;font-size:clamp(32px,8.5vw,60px);line-height:.98;letter-spacing:.01em;margin:0 0 10px;text-shadow:0 2px 18px rgba(0,0,0,.35)}.sub,h1.title{font-family:var(--font-display)}.sub{font-weight:600;font-size:clamp(14px,3.6vw,18px);text-align:center;color:rgba(255,255,255,.82);margin:0 auto 20px;max-width:34ch}.sub strong{color:var(--gold);font-weight:700}.legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 10px;margin:0 auto 8px;padding:0;list-style:none;max-width:620px}.chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-data);font-weight:400;font-size:10.5px;letter-spacing:.1em;color:rgba(255,255,255,.78);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:5px 11px 5px 9px}.chip-dot{width:11px;height:11px;border-radius:50%;flex:0 0 auto;position:relative}.chip-dot.unlocked{background:#fff}.chip-dot.researching{background:#fff;box-shadow:0 0 0 2px var(--gold)}.chip-dot.locked{background:transparent;border:1.5px dashed rgba(255,255,255,.7)}.chip-dot.graveyard{background:var(--ghost);color:var(--ink)}.chip-dot.graveyard:after{content:"✕";position:absolute;inset:0;display:grid;place-items:center;font-size:8px;color:#1c2740;font-weight:700}.hint{font-family:var(--font-data);font-size:11px;letter-spacing:.14em;text-align:center;color:rgba(255,255,255,.55);margin:12px 0 6px}.map-wrap{position:relative;width:100%;margin:4px auto 0}.map-svg{display:block;width:100%;height:auto;touch-action:manipulation;overflow:visible}.export-btn{position:absolute;top:6px;right:4px;z-index:5;font-family:var(--font-data);font-weight:600;font-size:10.5px;letter-spacing:.1em;color:var(--ink);background:var(--gold);border:none;border-radius:8px;padding:8px 12px;cursor:pointer;box-shadow:0 3px 12px rgba(0,0,0,.3);transition:transform .12s ease,filter .12s ease}.export-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}.export-btn:active{transform:translateY(0)}.export-btn:disabled{opacity:.6;cursor:progress}.node{cursor:pointer;outline:none}.node-plate-label{font-family:var(--font-display);font-weight:600;font-size:23px;fill:#fff;text-transform:uppercase;letter-spacing:.01em}.node-meta{font-size:15px;fill:var(--gold)}.node-cost,.node-meta{font-family:var(--font-data);font-weight:600}.node-cost{font-size:22px;fill:var(--ink)}.node-cost.locked{fill:rgba(255,255,255,.9)}.node-icon{font-size:44px;dominant-baseline:central;text-anchor:middle}.node-icon.capital{font-size:56px}.node-icon.dead{filter:grayscale(1) brightness(.85)}.tier-ring{fill:none;stroke:rgba(255,255,255,.08);stroke-width:1.5}.tier-label{font-family:var(--font-data);font-weight:400;font-size:13px;fill:rgba(255,255,255,.34);letter-spacing:.22em;text-anchor:middle}.graveyard-wedge{fill:rgba(6,12,28,.45);stroke:rgba(255,255,255,.14);stroke-width:1.5;stroke-dasharray:5 6}.graveyard-label{font-family:var(--font-data);font-weight:600;font-size:16px;fill:rgba(255,255,255,.4);letter-spacing:.34em;text-anchor:middle}.here-flag-rect{fill:var(--gold)}.here-flag-text{font-size:17px;fill:var(--ink);dominant-baseline:central}.here-flag-text,.superseded-tag{font-family:var(--font-data);font-weight:600;text-anchor:middle}.superseded-tag{font-size:15px;fill:var(--ember);letter-spacing:.06em}.halo,.sel-ring{fill:none;stroke:var(--gold);stroke-width:4}.halo{transform-box:fill-box;transform-origin:center;transform:translateZ(0);animation:haloPulse 1.9s ease-in-out infinite}@keyframes haloPulse{0%,to{opacity:.35;stroke-width:3}50%{opacity:1;stroke-width:6}}.victory{margin:26px auto 0;max-width:560px;border:1.5px solid var(--gold);border-radius:14px;background:rgba(247,201,72,.07);padding:16px 20px;text-align:center}.victory-title{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);margin:0 0 6px}.victory-sub{font-family:var(--font-data);font-weight:400;font-size:12px;letter-spacing:.04em;color:rgba(255,255,255,.78);margin:0;line-height:1.5}.footer{margin:30px auto 0;text-align:center}.footer p{font-family:var(--font-data);font-weight:400;font-size:11.5px;letter-spacing:.05em;color:rgba(255,255,255,.4);margin:4px 0}.scrim{position:fixed;inset:0;z-index:40;background:rgba(6,12,28,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;animation:scrimIn .25s var(--sheet-ease) forwards}@keyframes scrimIn{to{opacity:1}}.sheet{position:fixed;left:50%;bottom:0;z-index:41;width:min(560px,100%);transform:translateX(-50%) translateY(100%);animation:sheetIn .34s var(--sheet-ease) forwards;background:#16264f;border:1px solid rgba(255,255,255,.12);border-bottom:none;border-radius:20px 20px 0 0;box-shadow:0 -18px 50px rgba(0,0,0,.45);padding:22px 22px calc(26px + env(safe-area-inset-bottom))}@keyframes sheetIn{to{transform:translateX(-50%) translateY(0)}}.sheet-grip{width:42px;height:4px;border-radius:4px;background:rgba(255,255,255,.22);margin:-6px auto 14px}.sheet-close{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff;font-size:17px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .14s ease}.sheet-close:hover{background:rgba(255,255,255,.14)}.sheet-head{display:flex;align-items:center;gap:14px;padding-right:40px}.sheet-icon{font-size:40px;line-height:1;flex:0 0 auto}.sheet-name{font-family:var(--font-display);font-weight:700;font-size:24px;text-transform:uppercase;letter-spacing:.01em;margin:0;line-height:1.05}.badges{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 4px}.badge{font-family:var(--font-data);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:5px 11px;border:1px solid transparent}.badge.status-unlocked{color:#7bf0a8;border-color:rgba(123,240,168,.4);background:rgba(123,240,168,.1)}.badge.status-researching{color:var(--gold);border-color:rgba(247,201,72,.5);background:rgba(247,201,72,.12)}.badge.status-locked{color:rgba(255,255,255,.75);border:1px dashed rgba(255,255,255,.5);background:transparent}.badge.status-dead{color:var(--ghost);border-color:rgba(110,123,143,.5);background:rgba(110,123,143,.12);text-decoration:line-through}.badge.status-victory{color:var(--ink);background:var(--gold);border-color:var(--gold)}.badge.meta{color:rgba(255,255,255,.82);border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.05);text-transform:none}.badge.cost{color:var(--gold);border-color:rgba(247,201,72,.4);background:rgba(247,201,72,.08)}.sheet-desc{font-family:var(--font-display);font-weight:600;font-size:15.5px;line-height:1.55;color:rgba(255,255,255,.9);margin:14px 0 0}.sheet-unlocks{font-family:var(--font-data);font-weight:400;font-size:12.5px;letter-spacing:.03em;color:rgba(255,255,255,.62);margin:16px 0 0;padding-top:14px;border-top:1px solid rgba(255,255,255,.1)}.sheet-unlocks b{color:var(--gold);font-weight:600;letter-spacing:.08em}@media (prefers-reduced-motion:reduce){.halo{opacity:.9;stroke-width:4}.halo,.scrim{animation:none}.scrim{opacity:1}.sheet{animation:none;transform:translateX(-50%) translateY(0)}.export-btn,.sheet-close{transition:none}}