@font-face{font-family:Orbitron;font-weight:500;font-display:swap;src:url(/assets/orbitron-latin-C4ZOLPH_.woff2)format("woff2");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:Orbitron;font-weight:700;font-display:swap;src:url(/assets/orbitron-latin-C4ZOLPH_.woff2)format("woff2");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:Orbitron;font-weight:900;font-display:swap;src:url(/assets/orbitron-latin-C4ZOLPH_.woff2)format("woff2");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;font-weight:400;font-display:swap;src:url(/assets/inter-latin-8kRkwJBP.woff2)format("woff2");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;font-weight:500;font-display:swap;src:url(/assets/inter-latin-8kRkwJBP.woff2)format("woff2");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;font-weight:600;font-display:swap;src:url(/assets/inter-latin-8kRkwJBP.woff2)format("woff2");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:Cinzel;font-weight:600;font-display:swap;src:url(/assets/cinzel-latin-BOqWLKHx.woff2)format("woff2");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:Cinzel;font-weight:700;font-display:swap;src:url(/assets/cinzel-latin-BOqWLKHx.woff2)format("woff2");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:#05070d;--panel:#0c1220e0;--panel-solid:#0d1424;--border:#78aaff2e;--border-strong:#78aaff66;--text:#e3ecff;--muted:#8494b3;--accent:#4cc9f0;--accent-2:#ffd166;--good:#06d6a0;--warn:#ffb703;--bad:#ef476f;--rival:#c77dff;--radius:10px;--font-display:"Orbitron", "Inter", system-ui, sans-serif;--font:"Inter", system-ui, -apple-system, sans-serif;--topbar-h:84px}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px}button{font:inherit;color:inherit}input,select{font:inherit;color:var(--text);border:1px solid var(--border);background:#00000059;border-radius:6px;outline:none;padding:8px 10px}input:focus,select:focus{border-color:var(--accent)}a{color:var(--accent)}h1,h2,h3,h4{margin:0 0 8px;font-weight:600}p{margin:0 0 10px;line-height:1.5}code,kbd{background:#ffffff14;border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#78aaff40;border-radius:4px}.muted{color:var(--muted)}.small{font-size:12px}.pad{padding:12px}.good-text{color:var(--good)}.warn-text{color:var(--warn)}.bad-text{color:var(--bad)}.row-end{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.error{color:var(--bad);background:#ef476f1a;border:1px solid #ef476f59;border-radius:6px;margin:8px 0;padding:8px 10px}.notice{color:var(--text);background:#4cc9f014;border:1px solid #4cc9f04d;border-radius:6px;margin:8px 0 12px;padding:10px 12px;line-height:1.5}.btn{border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:linear-gradient(#4cc9f038,#4cc9f014);border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent);background:linear-gradient(#4cc9f059,#4cc9f024)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{color:#031022;background:linear-gradient(#4cc9f0,#3a86ff);border-color:#0000;font-weight:700}.btn.primary:hover:not(:disabled){background:linear-gradient(#72d7f5,#5b9bff)}.btn.ghost{border-color:var(--border);background:0 0}.btn.ghost:hover:not(:disabled){background:#ffffff0f}.btn.danger{background:#ef476f26;border-color:#ef476f80}.btn.danger:hover:not(:disabled){border-color:var(--bad);background:#ef476f4d}.btn.small{padding:5px 10px;font-size:12px}.btn.tiny{border-radius:5px;padding:2px 7px;font-size:11px}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:2px 6px;font-size:15px}.icon-btn:hover{color:var(--text);background:#ffffff14}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:11px}.chip{border:1px solid var(--border);cursor:pointer;background:#4cc9f01f;border-radius:999px;padding:2px 10px;font-size:12px}.chip:hover{border-color:var(--bad)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 40px #00000073}.panel-title{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:12px;display:flex}.panel-title>.muted{text-transform:none;letter-spacing:0;font-family:var(--font);margin-left:auto}.tag-row{flex-wrap:wrap;gap:5px;margin:4px 0 10px;display:flex}.tag{border:1px solid var(--border);background:#ffffff0a;border-radius:999px;margin-left:4px;padding:2px 8px;font-size:11px;display:inline-block}.tag-row .tag{margin-left:0}.tag.warn{color:var(--warn);border-color:#ffb70380}.tag.done{color:var(--good);border-color:#06d6a080}.tag.dim{opacity:.45}.kv{grid-template-columns:100px 1fr;align-items:center;gap:8px;margin:6px 0;font-size:13px;display:grid}.kv>span:first-child{color:var(--muted);font-size:12px}.cond-grid{grid-template-columns:auto 1fr;gap:4px 14px;margin:8px 0 12px;font-size:13px;display:grid}.cond-grid>span:nth-child(odd){color:var(--muted);font-size:12px}.progress{background:#ffffff14;border-radius:3px;width:100%;height:6px;overflow:hidden}.progress.big{height:8px;margin-top:14px}.progress-fill{background:var(--accent);height:100%;transition:width .2s linear}.res-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block;box-shadow:0 0 6px #ffffff26}.planet-dot{vertical-align:middle;border-radius:50%;flex-shrink:0;width:14px;height:14px;display:inline-block;box-shadow:0 0 10px #fff3}.swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block}.cost-list{flex-wrap:wrap;gap:4px 10px;font-size:12px;display:flex}.cost{align-items:center;gap:4px;display:inline-flex}.cost.short{color:var(--bad)}.lock-reason{color:var(--warn);margin:4px 0;font-size:12px}.section-title{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-top:18px;font-size:12px}.starfield{z-index:0;pointer-events:none;background:radial-gradient(1px 1px at 10% 20%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 30% 70%, #cfe 50%, transparent 51%), radial-gradient(1.5px 1.5px at 55% 35%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 75% 80%, #ffd 50%, transparent 51%), radial-gradient(1px 1px at 88% 15%, #fff 50%, transparent 51%), radial-gradient(1.5px 1.5px at 20% 90%, #dff 50%, transparent 51%), radial-gradient(1px 1px at 65% 55%, #fff 50%, transparent 51%), radial-gradient(ellipse at 80% 20%, #3a86ff2e, transparent 55%), radial-gradient(ellipse at 15% 85%, #c77dff1f, transparent 50%), radial-gradient(circle at 50% 120%, #ffaa3c40, transparent 45%), var(--bg);background-size:220px 220px,310px 310px,270px 270px,190px 190px,350px 350px,240px 240px,400px 400px,100% 100%,100% 100%,100% 100%,100% 100%;animation:120s linear infinite drift;position:fixed;inset:0}@keyframes drift{0%{background-position:0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0}to{background-position:220px 440px,310px 620px,270px 540px,190px 380px,350px 700px,240px 480px,400px 800px,0 0,0 0,0 0,0 0}}.logo{font-family:var(--font-display);letter-spacing:.14em;background:linear-gradient(90deg,#e3ecff,#4cc9f0);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:38px;font-weight:800}.logo span{background:linear-gradient(90deg,#ffd166,#ff9f1c);color:#0000;-webkit-background-clip:text;background-clip:text}.logo.small{margin-bottom:14px;font-size:16px}.tagline{color:var(--muted);letter-spacing:.03em;margin-top:8px}.auth-screen{flex-direction:column;justify-content:center;align-items:center;gap:28px;min-height:100%;padding:40px 16px;display:flex;position:relative}.auth-brand{z-index:1;text-align:center;position:relative}.auth-card{z-index:1;width:100%;max-width:400px;padding:26px 26px 20px;position:relative}.auth-card h2{font-family:var(--font-display);letter-spacing:.06em;font-size:18px}.auth-card form,.new-game-modal{flex-direction:column;gap:12px;margin-top:10px;display:flex}.auth-card label,.new-game-modal label{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.auth-card .btn.primary{margin-top:6px;padding:11px}.auth-links{justify-content:space-between;margin-top:16px;font-size:13px;display:flex}.auth-legal{z-index:1;justify-content:center;gap:18px;margin:14px 0 0;font-size:12px;display:flex;position:relative}.auth-legal a{color:var(--muted)}.consent{z-index:80;background:radial-gradient(circle at 50% 60%,#0d1a33,#03050a 70%);place-items:center;padding:18px;display:grid;position:fixed;inset:0;overflow-y:auto}.consent-card{text-align:center;background:#0a081ed1;border:1px solid #ffa65738;flex-direction:column;gap:12px;width:min(460px,100%);padding:26px 28px;display:flex}.consent-card h1{letter-spacing:.1em;color:#ffd6a8;margin:0 0 4px;font:700 22px Cinzel,serif}.consent-card p{color:#e9f6ffd9;margin:0;font-size:14px;line-height:1.55}.consent-card .consent-small{color:#e9f6ff99;font-size:12px}.consent-card a{color:#ffb36b}.consent-btn{color:#ffa657;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:#ffa65724;border:1px solid #ffa6578c;padding:12px 16px;font:700 12px Orbitron,sans-serif}.consent-btn:hover{background:#ffa6573d}.consent-btn:focus-visible{outline-offset:2px;outline:2px solid #ffd6a8}.consent-btn.ghost{color:#e9f6ffb3;background:0 0;border-color:#ffa65724}.consent-card b{color:#ffd6a8}.consent-card form{text-align:left;flex-direction:column;gap:12px;display:flex}.consent-card label{color:#e9f6ffb3;text-align:left;flex-direction:column;gap:5px;font-size:12px;display:flex}.consent-card input:not([type=checkbox]):not([type=radio]),.consent-card select{width:100%}.consent-error{color:#ff9a76;text-align:left;font-size:13px}.consent-card .consent-note,.consent-note{color:#9df5c0;font-size:13px}.consent-row{flex-wrap:wrap;gap:10px;display:flex}.consent-row>*{flex:auto}.consent-card .email-updates{flex-direction:row;align-items:flex-start;gap:8px}.born-fields{grid-template-columns:1.4fr 1fr;gap:10px;display:grid}.born-fields label{min-width:0}.age-step{flex-direction:column;gap:12px;display:flex}.age-step h3{margin:4px 0 0}.auth-row{flex-wrap:wrap;gap:10px;display:flex}.parent-page .consent-card{text-align:left;width:min(620px,100%)}.parent-page h2{letter-spacing:.12em;text-transform:uppercase;color:#ffb36b;margin:8px 0 0;font:700 13px Orbitron,sans-serif}.parent-page ul{color:#e9f6ffd9;margin:0;padding-left:20px;font-size:14px;line-height:1.55}.parent-kicker{letter-spacing:.2em;text-transform:uppercase;color:#e9f6ff80;font:700 10px Orbitron,sans-serif}.parent-choice{border:1px solid #ffa65738;flex-direction:column;gap:8px;margin:0;padding:10px 12px;display:flex}.parent-choice legend{color:#e9f6ffb3;padding:0 6px;font-size:12px}.consent-card .parent-choice label,.consent-card .parent-sure{color:#e9f6ffd9;flex-direction:row;align-items:flex-start;gap:8px;font-size:14px}.parent-facts{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;font-size:14px;display:grid}.parent-facts dt{color:#e9f6ff8c}.parent-facts dd{overflow-wrap:anywhere;margin:0}.parent-inline{gap:8px;display:flex}.parent-inline input{flex:1}.parent-page a.consent-btn{text-align:center;text-decoration:none}.consent.account-check{z-index:85;background:#03050adb}.account-check .consent-card{background:#0a081e}.legal{color:#dfe6f5;font:15px/1.65 var(--font);-webkit-user-select:text;user-select:text;background:#070912;position:fixed;inset:0;overflow-y:auto}.legal header,.legal footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;max-width:760px;margin:0 auto;padding:22px 24px;display:flex}.legal header nav{gap:20px;display:flex}.legal-home{letter-spacing:.12em;color:#ffd6a8;font:700 16px Cinzel,serif;text-decoration:none}.legal a{color:#ffb36b}.legal article{max-width:760px;margin:0 auto;padding:8px 24px 32px}.legal h1{letter-spacing:.04em;color:#fff3e2;margin:12px 0 4px;font:700 30px Cinzel,serif}.legal-date{color:var(--muted);margin:0 0 24px}.legal h2{color:#fff3e2;margin:30px 0 8px;font-size:18px}.legal h3{color:#ffd6a8;margin:18px 0 4px;font-size:15px}.legal ul{padding-left:22px}.legal li{margin:6px 0}.legal code{background:#ffffff12;border-radius:4px;padding:1px 5px;font-size:13px}.legal footer{color:var(--muted);border-top:1px solid #ffffff14;font-size:13px}.auth-card h3{color:var(--text);margin:4px 0 0;font-size:14px;font-weight:600}label small{letter-spacing:0;text-transform:none;opacity:.75;font-size:.9em}.pw-field{display:flex;position:relative}.pw-field input{flex:1;min-width:0;padding-right:64px}.pw-toggle{opacity:.8;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;padding:4px 8px;font-size:11px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pw-rules{color:var(--muted);grid-template-columns:1fr 1fr;gap:4px 12px;margin:0;padding:0;font-size:12px;list-style:none;display:grid}.pw-rules li{align-items:center;gap:6px;transition:color .2s;display:flex}.pw-rules li.ok{color:#8ff0b5}.pw-rules i{text-align:center;width:1em;font-style:normal}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.loading-screen{z-index:60;color:var(--muted);font-family:var(--font-display);letter-spacing:.08em;background:radial-gradient(circle at 50% 60%,#0d1a33,#03050a 70%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-box{text-align:center;width:360px}.menu-screen{min-height:100%;padding:28px 32px 40px;position:relative}.menu-header,.menu-grid,.menu-footer,.cadet-banner{z-index:1;position:relative}.cadet-banner{background:linear-gradient(120deg,#4cc9f024,#ff7b391f);border-color:#ffd16680;align-items:center;gap:24px;max-width:1200px;margin:0 auto 20px;padding:20px 24px;display:flex}.cadet-banner h2{font-family:var(--font-display);margin:8px 0 6px;font-size:20px}.cadet-banner p{max-width:760px;margin:0;line-height:1.5}.cadet-banner .btn{flex:none;margin-left:auto;padding:12px 26px;font-size:16px}.menu-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.menu-user{align-items:center;gap:14px;display:flex}.menu-grid{grid-template-columns:minmax(360px,1.2fr) minmax(300px,1fr);grid-template-areas:"slots brief""slots board";gap:20px;max-width:1200px;margin:0 auto;display:grid}.menu-grid>section{padding:20px}.menu-grid h2{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;font-size:15px}.menu-slots{grid-area:slots}.menu-brief{grid-area:brief}.menu-board{grid-area:board}.menu-footer{text-align:center;margin-top:24px}@media (width<=860px){.menu-grid{grid-template-columns:1fr;grid-template-areas:"slots""brief""board"}}.slot-card{border:1px solid var(--border);border-radius:var(--radius);background:#ffffff08;align-items:center;gap:16px;margin-bottom:12px;padding:16px;display:flex}.slot-card.empty{border-style:dashed}.slot-num{font-family:var(--font-display);color:var(--accent);text-align:center;opacity:.8;width:34px;font-size:26px}.slot-info{flex:1;min-width:0}.slot-info .tag-row{margin:6px 0 0}.slot-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.rival-list{flex-direction:column;gap:8px;margin-top:12px;display:flex}.rival-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.board-table,.market-table{border-collapse:collapse;width:100%;font-size:13px}.board-table th,.market-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);padding:6px;font-size:11px;font-weight:500}.board-table td,.market-table td{border-bottom:1px solid #ffffff0a;padding:6px}.difficulty-grid,.star-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.difficulty-card,.star-card{text-align:left;border:1px solid var(--border);cursor:pointer;background:#ffffff08;border-radius:8px;flex-direction:column;gap:4px;padding:12px;display:flex}.difficulty-card:hover,.star-card:hover{border-color:var(--border-strong)}.difficulty-card.selected,.star-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:#4cc9f01f}.modal-backdrop{z-index:40;background:#02040a99;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-backdrop.solid{background:#02040ae0}.modal{background:var(--panel-solid);border:1px solid var(--border-strong);border-radius:14px;width:100%;max-width:640px;max-height:100%;padding:24px;overflow:auto;box-shadow:0 30px 80px #0009}.modal h2{font-family:var(--font-display);letter-spacing:.05em}.game-root{-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}.game-container{position:absolute;inset:0}.game-canvas{outline:none;width:100%;height:100%;display:block}.selection-box{border:1px solid var(--accent);pointer-events:none;z-index:5;background:#4cc9f01f;display:none;position:absolute}.topbar{z-index:10;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#050810eb,#050810bf);position:absolute;top:0;left:0;right:0}.topbar-row{justify-content:space-between;align-items:center;gap:12px;padding:8px 14px 4px;display:flex}.planet-badge{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.planet-name{font-family:var(--font-display);letter-spacing:.08em;font-size:15px}.planet-stats{color:var(--muted);font-size:11px}.hazard-chip{color:var(--warn);background:#ffb70326;border:1px solid #ffb70380;border-radius:999px;padding:3px 9px;font-size:11px;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.6}}.top-stats{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;display:flex}.stat{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.stat-label{color:var(--muted);letter-spacing:.08em;margin-right:2px;font-size:10px}.stat.bad{color:var(--bad)}.speed-controls{border:1px solid var(--border);border-radius:6px;display:flex;overflow:hidden}.speed-controls button{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:3px 9px;font-size:12px}.speed-controls button.active{color:var(--text);background:#4cc9f040}.save-status{color:var(--muted);text-align:right;min-width:80px;font-size:11px}.save-status.cloud{color:var(--good)}.save-status.local{color:var(--accent-2)}.save-status.error{color:var(--bad)}.resource-strip{flex-wrap:wrap;align-items:center;gap:4px 14px;padding:2px 14px 7px;font-size:12px;display:flex}.res-chip{white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:5px;display:inline-flex}.res-name{color:var(--muted)}.res-amt{font-weight:600}.res-rate{color:var(--good);font-size:11px}.res-rate.neg{color:var(--bad)}.toolbar{z-index:10;background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;gap:4px;padding:5px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.tool-btn{cursor:pointer;min-width:62px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;font-size:12px;display:flex}.tool-btn:hover{color:var(--text);background:#ffffff0d}.tool-btn.active{color:var(--text);border-color:var(--accent);background:#4cc9f026}.tool-key{font-family:var(--font-display);color:var(--accent);font-size:10px}.hover-info{z-index:10;background:var(--panel);border:1px solid var(--border);pointer-events:none;white-space:nowrap;border-radius:8px;padding:7px 14px;font-size:12px;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}.hover-info.ok{border-color:#06d6a080}.hover-info.bad{color:#ffc2d1;border-color:#ef476f99}.build-menu{top:calc(var(--topbar-h) + 10px);width:310px;max-height:calc(100vh - var(--topbar-h) - 290px);z-index:9;flex-direction:column;min-height:220px;display:flex;position:absolute;left:12px}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;padding:6px;display:flex}.tabs button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:5px;flex:1;padding:5px 4px;font-size:11px}.tabs button.active{color:var(--text);background:#4cc9f02e}.build-list{flex-direction:column;gap:5px;padding:6px;display:flex;overflow-y:auto}.build-item{text-align:left;cursor:pointer;background:#ffffff08;border:1px solid #0000;border-radius:7px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.build-item:hover{border-color:var(--border-strong)}.build-item.selected{border-color:var(--accent);background:#4cc9f024}.build-item.blocked{opacity:.75}.build-item.locked{opacity:.5}.build-head{align-items:center;gap:8px;display:flex}.build-head strong{flex:1;font-weight:600}.io-line{flex-wrap:wrap;gap:3px 10px;margin:3px 0;font-size:11px;display:flex}.io.in{color:#ff9eb5}.io.out{color:#7ff0cc}.selected-panel{z-index:9;width:310px;position:absolute;bottom:84px;right:12px}.selected-panel>:not(.panel-title){margin-left:12px;margin-right:12px}.selected-panel .row-end{margin-bottom:12px}.selected-panel>p{margin-top:10px}.tutorial{top:calc(var(--topbar-h) + 10px);z-index:8;width:310px;padding-bottom:12px;position:absolute;right:12px}.tutorial h4,.tutorial p,.tutorial .row-end{margin-left:12px;margin-right:12px}.tutorial h4{margin-top:10px}.tutorial p{color:#c7d3ee;font-size:13px}.event-log{z-index:9;width:370px;padding-bottom:6px;font-size:12px;position:absolute;bottom:14px;left:12px}.event-log.collapsed{width:200px;padding-bottom:0}.event-log .panel-title{cursor:pointer;padding:7px 12px}.event{padding:3px 12px;line-height:1.4}.event-day{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:4px}.event.good{color:#9ff5d8}.event.warn{color:#ffd98a}.event.bad{color:#ff9eb5}.event.rival{color:#dcbcff}.toasts{top:calc(var(--topbar-h) + 12px);z-index:50;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.toast{background:var(--panel-solid);border:1px solid var(--border-strong);text-align:center;border-radius:8px;max-width:520px;padding:8px 16px;font-size:13px;animation:.25s ease-out toast-in;box-shadow:0 8px 30px #00000080}.toast.good{border-color:var(--good)}.toast.warn{border-color:var(--warn)}.toast.bad{border-color:var(--bad)}.toast.rival{border-color:var(--rival)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}.side-panel{top:calc(var(--topbar-h) + 10px);z-index:20;flex-direction:column;width:440px;display:flex;position:absolute;bottom:84px;right:12px}.side-panel.wide{width:min(600px,100vw - 24px)}.side-body{padding:12px 14px;overflow-y:auto}.market-table .tier-row td{color:var(--accent);font-family:var(--font-display);letter-spacing:.08em;padding-top:12px;font-size:11px}.market-table td:first-child{white-space:nowrap}.price{font-variant-numeric:tabular-nums}.price.up{color:var(--bad)}.price.down{color:var(--good)}.trade-cell{white-space:nowrap}.trade-cell .btn{margin-right:3px}.ship-building{flex-direction:column;gap:6px;margin:8px 0 14px;display:flex}.ship-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;display:grid}.ship-card{border:1px solid var(--border);background:#ffffff08;border-radius:9px;flex-direction:column;gap:6px;padding:12px;display:flex}.ship-card h4{margin:0;font-size:14px}.ship-card p{margin:0}.ship-card .btn{align-self:flex-start;margin-top:4px}.ship-card.built{background:#06d6a012;border-color:#06d6a080}.ship-card.building{border-color:#ffd16699}.ship-card.locked{opacity:.6}.race-row,.rocket-row,.attempt{grid-template-columns:130px 1fr 40px;align-items:center;gap:10px;margin:6px 0;font-size:13px;display:grid}.rival-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.rival-card{border:1px solid var(--border);background:#ffffff08;border-left-width:3px;border-radius:9px;padding:12px}.claim-planet{margin-bottom:16px}.claim-planet h4{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.claim-row{background:#ffffff08;border-radius:7px;grid-template-columns:1fr 1.3fr auto;align-items:center;gap:10px;margin-bottom:5px;padding:8px 10px;display:grid}.claim-info{flex-direction:column;display:flex}.claim-state .attempt{grid-template-columns:90px 1fr 30px;margin:2px 0;font-size:12px}.tech-modal{flex-direction:column;width:100%;max-width:1400px;height:calc(100vh - 48px);padding:0;display:flex;overflow:hidden}.tech-top{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:20px;padding:10px 14px;display:flex}.tech-current{flex-direction:column;flex:1;gap:6px;min-width:280px;display:flex}.tech-current .btn{align-self:flex-start}.tech-queue{flex-wrap:wrap;flex:1;align-items:center;gap:6px;display:flex}.tech-body{flex:1;min-height:0;display:flex}.tech-scroll{flex:1;overflow:auto}.tech-canvas{position:relative}.era-header{text-align:center;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:11px;position:absolute;top:12px}.tech-links{pointer-events:none;position:absolute;inset:0}.tech-links .link{fill:none;stroke:#78aaff38;stroke-width:1.5px}.tech-links .link.done{stroke:#06d6a073}.tech-links .link.hot{stroke:var(--accent-2);stroke-width:2.5px}.tech-node{text-align:left;border:1px solid var(--border);cursor:pointer;background:#0f1729;border-radius:8px;flex-direction:column;justify-content:center;gap:3px;padding:7px 10px;transition:border-color .12s,transform .12s;display:flex;position:absolute}.tech-node:hover{border-color:var(--accent-2);transform:translateY(-1px)}.tech-name{font-size:12.5px;font-weight:600;line-height:1.2}.tech-meta{color:var(--muted);font-size:11px}.tech-node.done{background:#06d6a01f;border-color:#06d6a08c}.tech-node.researching{border-color:var(--accent);box-shadow:0 0 14px #4cc9f059}.tech-node.queued{border-color:#ffd16699}.tech-node.available{border-color:#4cc9f080}.tech-node.locked{opacity:.5}.tech-node.final{background:linear-gradient(135deg,#ffd1662e,#ff9f1c14);border-color:#ffd166b3}.tech-detail{border-left:1px solid var(--border);flex-shrink:0;width:300px;padding:16px;overflow-y:auto}.tech-detail h3{font-family:var(--font-display);letter-spacing:.04em;margin-bottom:2px;font-size:16px}.tech-detail p{margin-top:10px}.unlock-list{margin:4px 0 0;padding-left:18px;font-size:13px;line-height:1.6}.map-planets{top:calc(var(--topbar-h) + 10px);z-index:9;flex-direction:column;width:230px;padding-bottom:12px;display:flex;position:absolute;left:12px}.map-planets>.btn{margin:8px 12px 0}.map-planet-btn{text-align:left;cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;align-items:center;gap:8px;padding:8px 12px;display:flex}.map-planet-btn .muted{margin-left:auto}.map-planet-btn:hover{background:#ffffff0a}.map-planet-btn.active{border-left-color:var(--accent);background:#4cc9f01a}.legend{border-top:1px solid var(--border);flex-direction:column;gap:4px;margin-top:8px;padding:10px 12px 0;font-size:12px;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.map-detail{top:calc(var(--topbar-h) + 10px);z-index:9;width:360px;padding-bottom:14px;position:absolute;bottom:84px;right:12px;overflow-y:auto}.map-detail>:not(.panel-title){margin-left:14px;margin-right:14px}.map-detail>p{margin-top:10px}.map-detail .panel-title span{align-items:center;gap:8px;display:flex}.site-row{border-bottom:1px solid #ffffff0a;grid-template-columns:1fr auto auto;gap:8px;padding:4px 0;font-size:12px;display:grid}.map-actions{border:1px solid var(--border);background:#ffffff08;border-radius:8px;flex-direction:column;gap:6px;margin-top:14px;margin-bottom:10px;padding:12px;display:flex}.fps-hud{z-index:8;pointer-events:none;position:absolute;inset:0}.crosshair{width:18px;height:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair:before,.crosshair:after{content:"";background:#ffffffd9;position:absolute;box-shadow:0 0 3px #000c}.crosshair:before{width:2px;height:18px;top:0;left:8px}.crosshair:after{width:18px;height:2px;top:8px;left:0}.fps-target{text-shadow:0 1px 3px #000;font-size:12px;position:absolute;top:calc(50% + 22px);left:50%;transform:translate(-50%)}.fps-lock-hint{background:var(--panel);border:1px solid var(--border-strong);border-radius:8px;padding:10px 18px;position:absolute;top:40%;left:50%;transform:translate(-50%)}.o2{top:calc(var(--topbar-h) + 14px);width:240px;font-family:var(--font-display);letter-spacing:.1em;text-align:center;text-shadow:0 1px 3px #000;flex-direction:column;gap:4px;font-size:11px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.o2 .progress-fill{background:#80ffdb}.o2.low{color:var(--bad);animation:.8s ease-in-out infinite pulse}.o2.low .progress-fill{background:var(--bad)}.hotbar{gap:6px;display:flex;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.hotbar-slot{background:var(--panel);border:1px solid var(--border);border-radius:8px;align-items:center;gap:7px;padding:8px 12px;font-size:12px;display:flex}.hotbar-slot.active{border-color:var(--accent);box-shadow:0 0 12px #4cc9f059}.hotbar-key{font-family:var(--font-display);color:var(--accent);font-size:10px}.fps-help{color:#ffffffb3;text-shadow:0 1px 3px #000;white-space:nowrap;font-size:11px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.victory-cinematic{z-index:30;pointer-events:none;text-align:center;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:12vh;animation:2s ease-out fade-in;display:flex;position:absolute;inset:0}.victory-cinematic h1{font-family:var(--font-display);letter-spacing:.2em;color:#fff3c4;text-shadow:0 0 30px #ffd166cc;font-size:54px}.victory-cinematic p{color:#ffe6a8;text-shadow:0 1px 6px #000;font-size:17px}@keyframes fade-in{0%{opacity:0}}.victory-modal{max-width:760px}.victory-modal h1{font-family:var(--font-display);letter-spacing:.06em;color:var(--accent-2);font-size:24px}.star-grid{margin-top:12px}.star-card h4{margin:0}.star-card p{margin:6px 0 0}.pause-modal{max-width:520px}.pause-actions{flex-direction:column;gap:8px;margin-bottom:18px;display:flex}.controls-grid{flex-direction:column;gap:5px;font-size:13px;display:flex}.control-row{grid-template-columns:140px 1fr;align-items:center;gap:10px;display:grid}.control-row kbd{justify-self:start}.email-updates{text-align:left;align-items:flex-start;gap:8px;margin:4px 0;font-size:13px;flex-direction:row!important;display:flex!important}.email-updates input{flex:none;margin-top:3px;width:auto!important}p.email-updates{display:block!important}
