:root{color-scheme:dark;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#dce5f0;background:#050911;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;overflow:hidden}
body{overscroll-behavior:none}
.flight-toolbar{position:fixed;right:max(16px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));z-index:12;display:flex;align-items:center;gap:8px}
.flight-toolbar #touch-actions{position:static}
#fleet-actions button{min-height:44px;font-size:11px;touch-action:manipulation}
@media(pointer:coarse){.telemetry .civilization-stats{font-size:9px}.telemetry .civilization-stats>div{margin:2px 0}.telemetry{max-height:calc(100dvh - 82px);overflow-y:auto;scrollbar-width:none;pointer-events:auto}#recall-fleet kbd{display:none}}
.touch-only,#touch-actions{display:none}
@media(pointer:coarse){
  .keyboard-only{display:none!important}.touch-only{display:block}
  #touch-actions{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));display:flex;gap:8px;z-index:12}
  #touch-actions button{min-height:44px;min-width:48px;font-size:11px;touch-action:manipulation;user-select:none}
  #touch-actions [aria-pressed=true]{border-color:#62dcc970;color:#a9e8df}
  #controls-hint{bottom:max(10px,env(safe-area-inset-bottom));font-size:10px}
  #flavor-text{right:max(16px,env(safe-area-inset-right));bottom:max(35px,env(safe-area-inset-bottom));width:260px;font-size:9px}
  #notice{top:65px;width:min(340px,50vw)}
  button{touch-action:manipulation}
  .brand{top:max(10px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left))}
  .telemetry{top:52px;left:max(16px,env(safe-area-inset-left));width:175px}
  .stats{margin:10px 0}.civilization-stats{margin-bottom:8px}.civilization-stats>div{margin:3px 0}
  dialog{max-height:calc(100dvh - 24px);padding:18px}
}
canvas{display:block;width:100vw;height:100dvh;touch-action:none;cursor:crosshair}
button{font:inherit;color:inherit;cursor:pointer;background:#0d1520b3;border:1px solid #ffffff20;border-radius:6px;padding:10px 14px}
button:hover{background:#1b2a39;border-color:#8fb9c24d}
button:focus-visible,summary:focus-visible{outline:2px solid #62dcc9;outline-offset:4px}
kbd{font-size:10px;margin-left:12px;color:#718397}
.brand{position:absolute;top:26px;left:30px;display:flex;align-items:center;gap:10px;pointer-events:none;font-size:19px;letter-spacing:3px}
.brand-mark{font-size:30px;color:#a2d9df}
.english{font-size:15px;letter-spacing:4px;color:#a2d9df}
.telemetry{position:absolute;top:80px;left:32px;width:210px;pointer-events:none}
.eyebrow{font-size:9px;letter-spacing:2.6px;color:#657a8e}
.stage-line{display:flex;align-items:center;gap:9px}
.stage-line h1{font-size:19px;font-weight:400;letter-spacing:1px;white-space:nowrap;margin:0}
.stage-line>span{flex-shrink:0}
.stage-line>span:last-child{margin-left:auto;color:#718397;font-size:10px}
#stage-dot{height:5px;width:5px;background:#a8b5c9;border-radius:50%;box-shadow:0 0 12px currentColor}
.stats{display:flex;justify-content:space-between;margin:19px 0 15px}
.stats label{display:block;font-size:10px;color:#718397;margin-bottom:6px;letter-spacing:1px}
.stats strong{font-size:16px;font-weight:400;font-variant-numeric:tabular-nums}
.civilization-stats{margin:0 0 15px;font-size:10px;font-variant-numeric:tabular-nums}
.civilization-stats>div{display:flex;justify-content:space-between;gap:10px;margin:6px 0}
.civilization-stats dt{color:#718397;flex-shrink:0}
.civilization-stats dd{margin:0;color:#b7ceda;text-align:right;overflow-wrap:anywhere}
.progress-label{display:flex;justify-content:space-between;color:#718397;font-size:9px}
.progress-track{margin-top:8px;height:2px;background:#ffffff12}
.progress-track i{display:block;width:0;height:100%;background:#62dcc9;transition:width .3s}
.mass-health{margin:0 0 13px;font-size:9px;font-variant-numeric:tabular-nums}
.mass-health-label,.mass-health-caption{display:flex;justify-content:space-between;gap:6px}
.mass-health-label{color:#9bb0c3;margin-bottom:7px}
.mass-health-track{--break-point:30%;position:relative;height:6px;border-radius:2px;background:linear-gradient(to right,#ff657528 var(--break-point),#ffffff12 var(--break-point))}
#mass-health-fill{display:block;height:100%;width:100%;border-radius:2px;background:#62dcc9;transition:width .15s,background .15s}
.mass-health-marker{position:absolute;left:var(--break-point);top:-3px;bottom:-3px;width:2px;transform:translateX(-1px);background:#ff6575;box-shadow:0 0 4px #050911}
.mass-health-caption{margin-top:6px;color:#718397;font-size:8px}
#mass-health-threshold{color:#ff8792}
@media(pointer:coarse){.mass-health{margin-bottom:8px}.mass-health-label{margin-bottom:5px}}
@media(prefers-reduced-motion:reduce){#mass-health-fill{transition:none}}
dialog{width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;padding:28px;border:1px solid #ffffff26;border-radius:14px;background:#0b131df5;color:#dce5f0}
dialog::backdrop{background:#030710bb;backdrop-filter:blur(5px)}
dialog h2{font-size:25px;font-weight:400;letter-spacing:3px;margin:0 0 16px}
dialog p{font-size:12px;color:#91a6ba;line-height:1.85}
.pause-shortcuts{margin-bottom:20px}
.language-choice{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:16px;font-size:11px;color:#91a6ba}
.language-switch{appearance:none;position:relative;width:38px;height:22px;margin:0;border:1px solid #ffffff30;border-radius:12px;background:#172635;cursor:pointer;transition:background .2s}
.language-switch::before{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#c1d3df;transition:transform .2s}
.language-switch:checked{background:#285754;border-color:#62dcc970}
.language-switch:checked::before{transform:translateX(16px);background:#a9e8df}
.language-switch:focus-visible{outline:2px solid #62dcc9;outline-offset:4px}
@media(prefers-reduced-motion:reduce){.language-switch,.language-switch::before{transition:none}}
.pause-actions{display:flex;flex-wrap:wrap;gap:10px;font-size:12px}
.pause-actions [aria-pressed=true]{border-color:#8fb9c25b}
.pause-info{margin:20px 0;padding:12px 0;border-top:1px solid #ffffff12;border-bottom:1px solid #ffffff12}
.pause-info p{margin:5px 0;font-size:11px}
#satellite-selection{color:#91bdbb}
#notice{position:fixed;top:24px;left:50%;transform:translateX(-50%);width:min(440px,calc(100vw - 32px));z-index:10;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;text-align:center;color:#d0e9eb}
.event-notice{padding:9px 15px;border:1px solid #8fd5de30;border-radius:6px;background:#0b1722df;font-size:12px;line-height:1.5;box-shadow:0 4px 24px #0005;animation:notice-life 2s both}
@keyframes notice-life{0%{opacity:0;transform:translateY(-6px)}10%,85%{opacity:1;transform:translateY(0)}100%{opacity:0}}
#notice:empty{display:none}
#controls-hint{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);margin:0;color:#8295a8;font-size:11px;opacity:.65;pointer-events:none;white-space:nowrap}
.guide-section{padding:14px 0;border-top:1px solid #ffffff12}
.guide-section h3{margin:0 0 9px;font-size:13px;font-weight:500;color:#b7ceda}
.guide-section p{margin:5px 0;font-size:11px;line-height:1.7}
.guide-section .legend{grid-template-columns:repeat(3,1fr);margin:12px 0 0;gap:8px;font-size:10px}
.tech-guide{margin:0;padding-left:20px;color:#91a6ba;font-size:11px;line-height:1.9}
.control-guide{display:grid;grid-template-columns:95px 1fr;gap:8px 12px;margin:0;font-size:11px;line-height:1.6}
.control-guide dt{color:#b7ceda}.control-guide dd{margin:0;color:#91a6ba}
.guide-footer{border-top:1px solid #ffffff12;padding-top:16px}.guide-footer .language-choice{margin-bottom:12px}
@media(max-width:900px){#flavor-text{bottom:48px}}
#flavor-text{position:fixed;right:24px;bottom:20px;width:min(340px,calc(100vw - 48px));margin:0;color:#77899b;font-size:10px;line-height:1.7;font-style:italic;text-align:right;opacity:.48;pointer-events:none;transition:opacity .8s}
#flavor-text.fading{opacity:0}
@media(prefers-reduced-motion:reduce){#flavor-text{transition:none}.event-notice{animation:none}}
#help-panel summary{cursor:pointer;font-size:12px;color:#c0d0df}
#help-panel p{font-size:11px}
#help-panel small{display:block;font-size:10px;line-height:1.8;color:#6e8197}
.legend{display:grid;grid-template-columns:1fr 1fr;gap:12px 8px;margin:20px 0;font-size:11px;color:#9daebf}
.legend span:before{content:"";display:inline-block;width:5px;height:5px;background:var(--color);border-radius:50%;margin-right:8px}
.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#030710aa;backdrop-filter:blur(5px)}
[hidden]{display:none!important}
.end-card{text-align:center;border:1px solid #ffffff16;border-radius:16px;padding:40px;background:#0b131ddd;width:min(420px,90vw)}
.end-card h2{font-weight:300;font-size:34px;letter-spacing:6px}
.end-card p{font-size:13px;color:#8da0b5;line-height:2}
.end-card button{margin-top:18px;width:100%;padding:14px;color:#a9e8df}
.end-card button span{float:right}
#start-screen h2{margin-top:15px}
#start-types{border:0;padding:0;margin:23px 0 18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#start-types legend{font-size:11px;color:#718397;margin-bottom:12px}
.start-option{position:relative;cursor:pointer}
.start-option input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.start-option span{display:block;min-height:72px;padding:13px 10px;border:1px solid #ffffff18;border-radius:7px;background:#0d1826;font-size:12px}
.start-option span::before{content:"";display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:var(--color);box-shadow:0 0 9px var(--color)}
.start-option small{display:block;font-size:10px;color:#718397;margin-top:8px}
.start-option input:checked+span{border-color:var(--color);background:#1a2939;color:var(--color)}
.start-option input:focus-visible+span{outline:2px solid var(--color);outline-offset:3px}
.start-button{width:100%;padding:14px;color:#a9e8df}
.save-entry{margin-top:20px;padding-top:16px;border-top:1px solid #ffffff16}
.save-entry button{width:100%;font-size:12px}
.save-entry p{font-size:11px;margin:10px 0 0}
button:disabled{cursor:default;opacity:.4}
#save-status{color:#a9cabf}
@media(max-width:600px){.brand{top:20px;left:20px;font-size:17px}.brand-mark{font-size:26px}.english{font-size:12px;letter-spacing:2px}.telemetry{top:68px;left:22px;width:190px}.stage-line h1{font-size:17px}.stats strong{font-size:15px}dialog{padding:22px}}
@media(max-width:480px){#start-types{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(pointer:coarse) and (orientation:landscape){
  .brand{top:max(10px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left))}
  .telemetry{top:52px;left:max(16px,env(safe-area-inset-left));width:180px;max-height:calc(100dvh - 82px);overflow-y:auto;pointer-events:auto}
  .stats{margin:9px 0}.civilization-stats>div{margin:2px 0}
  #flavor-text{bottom:max(35px,env(safe-area-inset-bottom));font-size:9px}
}
@media(pointer:coarse) and (orientation:portrait){
  .brand{top:calc(env(safe-area-inset-top) + 22px);left:max(12px,env(safe-area-inset-left));gap:5px}
  .brand-mark{font-size:18px}.english{font-size:9px;letter-spacing:1px}
  .flight-toolbar{top:calc(env(safe-area-inset-top) + 10px);right:max(12px,env(safe-area-inset-right));gap:5px}
  #touch-actions{gap:5px}
  #touch-actions button,#fleet-actions button{min-height:44px;min-width:38px;padding:8px;font-size:10px}
  .telemetry{top:calc(env(safe-area-inset-top) + 68px);left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));width:auto;max-height:34dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px;overflow-y:auto;pointer-events:auto;scrollbar-width:none}
  .stage-line{align-self:center}.stage-line h1{font-size:16px}
  .stats{margin:0;gap:6px}.stats label{font-size:8px;letter-spacing:0}.stats strong{font-size:12px}
  .mass-health{grid-column:1 / -1;margin:0 0 2px}
  .telemetry .civilization-stats{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 12px;margin:0;font-size:9px}
  .telemetry .civilization-stats>div{margin:0;gap:4px;min-width:0}
  .civilization-stats dt{flex-shrink:1}
  #hazard-warning-row{grid-column:1 / -1}
  .progress-label,.progress-track{grid-column:1 / -1}
  .progress-track{margin-top:0}
  #notice{top:calc(env(safe-area-inset-top) + 70px + 34dvh);width:calc(100vw - 40px)}
  .event-notice{font-size:11px;padding:7px 10px}
  #flavor-text{right:max(16px,env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 42px);width:min(280px,75vw);font-size:9px}
  #controls-hint{bottom:calc(env(safe-area-inset-bottom) + 14px);font-size:10px}
  dialog{width:calc(100vw - 24px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px);padding:18px}
  dialog h2{font-size:21px;letter-spacing:1px}
  #start-types{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .control-guide{grid-template-columns:72px minmax(0,1fr);gap:8px}
  .guide-section .legend{grid-template-columns:repeat(3,minmax(0,1fr))}
  .end-card{padding:24px;max-height:calc(100dvh - 32px);overflow-y:auto}
  .end-card h2{font-size:26px;letter-spacing:2px}
}
