:root{color-scheme:dark;--ink:#f2f1e6;--muted:#a9bdc3;--cyan:#8ae8df;--amber:#ffbc70;--line:#ffffff25;--weapon:var(--cyan)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#142a33;color:var(--ink);font-family:"Segoe UI","Microsoft JhengHei",sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--amber);outline-offset:5px}button:disabled{cursor:wait;opacity:.55}[hidden]{display:none!important}#app{position:relative;width:100%;height:100%;isolation:isolate}#viewport{position:absolute;inset:0;width:100%;height:100%;outline:0}body[data-mode=combat] #viewport{cursor:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#081a29d9 0%,#081a2970 35%,transparent 67%),linear-gradient(0deg,#061923b8,transparent 35%,transparent 80%,#06192370)}body:not([data-mode=menu]) .vignette{background:linear-gradient(0deg,#061923df,transparent 25%,transparent 78%,#061923b0)}.masthead{position:absolute;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:28px 42px;z-index:6;pointer-events:none}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:16px;letter-spacing:2px;font-weight:750;pointer-events:auto}.brand svg{width:32px;fill:var(--amber)}.brand small{display:block;font-size:9px;letter-spacing:4px;color:var(--muted);margin-top:5px;font-weight:400}.light{font-weight:200;color:var(--amber);padding:0 3px}.mast-right{display:flex;gap:12px;align-items:center;color:#c8d6d9;font-size:11px;letter-spacing:1px}.mast-right button{pointer-events:auto;background:#0a202c70;border:1px solid var(--line);padding:8px 12px;font-size:11px;border-radius:3px}.status-dot{width:5px;height:5px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px #8ae8df66}.menu{position:absolute;top:24%;left:8%;width:450px}.eyebrow{display:flex;gap:16px;align-items:center;font:10px Consolas,monospace;letter-spacing:2px;color:#c3d3d6}.eyebrow span{color:var(--amber);font:12px "Microsoft JhengHei",sans-serif;letter-spacing:2px}.eyebrow i{height:1px;width:28px;background:#98adb8}.menu h1{font-size:clamp(58px,6.2vw,100px);letter-spacing:8px;line-height:1.2;margin:22px 0 0;font-weight:850;text-shadow:0 6px 30px #00172340}.menu h1 span{color:var(--amber)}.english-title{font-size:15px;letter-spacing:11px;color:#c5d5d9;margin:12px 0 28px}.intro{font-size:19px;font-weight:300;line-height:1.9;letter-spacing:2px;color:#d6e1e1;margin:0 0 24px}.mission-meta{display:flex;gap:20px;font-size:11px;letter-spacing:1px;align-items:center;color:#b6cace;margin:22px 0}.mission-meta span+span{border-left:1px solid var(--line);padding-left:20px}.mission-meta b{font-size:16px;font-family:Consolas,monospace;color:#fff;margin-right:4px;font-weight:400}.primary{border:1px solid #ffd49d;background:var(--amber);color:#17262b;display:flex;align-items:center;justify-content:space-between;padding:17px 24px;min-width:270px;font-size:16px;font-weight:700;letter-spacing:3px;box-shadow:0 5px 30px #00131b30;transition:background .2s,transform .2s}.primary:hover{background:#ffd29b;transform:translateY(-2px)}.primary>span:last-child{font-size:22px}.start-note{font-size:10px;color:#c1d1d3;margin:14px 0 27px;letter-spacing:1px}.start-note span{color:#89a2ae}.control-strip{display:flex;gap:23px;font-size:11px;color:#b3c4c9}.control-strip>span{display:flex;gap:5px;align-items:center}kbd{font:10px Consolas,"Microsoft JhengHei",monospace;padding:3px 5px;border:1px solid #9cb4bd65;border-radius:2px;color:#cbd7d9;background:#142a3333}.aircraft-label{position:absolute;right:7%;bottom:16%;display:flex;flex-direction:column;gap:9px;width:260px;border-left:1px solid #a1bfca60;padding-left:18px;text-shadow:0 1px 8px #08212d}.tiny{font:10px Consolas,"Microsoft JhengHei",monospace;letter-spacing:2px;color:#adc3cb}.aircraft-label strong{font-size:20px;letter-spacing:2px;font-weight:500}.aircraft-label>span:not(.tiny){font:11px Consolas,monospace;letter-spacing:3px;color:var(--amber)}.aircraft-label small{font-size:10px;letter-spacing:1px;color:#bcced1}.spec-line{height:1px;width:80px;background:var(--amber);opacity:.6}.menu-bottom{position:absolute;bottom:26px;left:42px;right:42px;display:flex;justify-content:space-between;font:9px Consolas,"Microsoft JhengHei",monospace;color:#a1b7bf;letter-spacing:2px}.menu-bottom b{font-weight:400;opacity:.65}.objective{position:absolute;top:115px;left:42px;max-width:330px;pointer-events:none}.objective h2{font-size:25px;font-weight:500;letter-spacing:4px;margin:9px 0}.objective p{font-size:12px;line-height:1.7;letter-spacing:1px;color:#cedbdd;margin:0}.route{display:flex;gap:7px;margin-top:14px}.route i{width:30px;height:2px;background:#87a3ae44}.route i.active{background:var(--amber)}.telemetry{position:absolute;right:42px;top:115px;display:flex;flex-direction:column;gap:7px;text-align:right;pointer-events:none}.telemetry strong{font:30px Consolas,monospace;font-weight:400;letter-spacing:3px}.bottom-hud{position:absolute;bottom:27px;left:42px;right:42px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;pointer-events:none}.hull{width:180px;flex-shrink:0}.hull>div:first-child{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.hull b{font:26px Consolas,monospace}.hull small{font-size:11px;color:#9fb8c1}.health-track{height:4px;background:#bad6db25;margin-bottom:10px}.health-track i{display:block;height:100%;background:var(--cyan);transition:width .2s}.hull>.tiny{font-size:9px;letter-spacing:1px}.weapon-rack{display:flex;gap:6px;pointer-events:auto}.weapon{position:relative;display:grid;grid-template-columns:15px 1fr;gap:3px 9px;width:155px;padding:11px 12px 13px;text-align:left;background:#0b202bca;border:1px solid #b4d1d629;border-radius:3px;overflow:hidden;transition:border .2s,background .2s}.weapon kbd{grid-row:1/3;align-self:start;padding:2px 3px;font-size:10px}.weapon svg{fill:#9bb1ba;width:58px;height:24px}.weapon>span{font-size:12px;letter-spacing:1px}.weapon small{display:block;color:#89a4b0;font:8px Consolas,monospace;letter-spacing:2px;margin-top:4px}.weapon i{position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--weapon);transform-origin:left}.weapon.selected{border-color:var(--weapon);background:#173440e8}.weapon.selected svg{fill:var(--weapon)}.weapon.selected kbd{border-color:var(--weapon);color:var(--weapon)}.weapon:hover{background:#294450}.weapon-state{width:190px;display:flex;align-items:flex-end;flex-direction:column;gap:8px;flex-shrink:0}.weapon-state strong{font:20px Consolas,monospace;letter-spacing:2px;color:var(--weapon)}.weapon-state>span:last-child{font-size:10px;color:#b7cbd1;max-width:210px;text-align:right;line-height:1.6}.weapon-state>.tiny{font-size:9px}#reticle{position:absolute;width:38px;height:38px;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;color:var(--weapon);filter:drop-shadow(0 1px 2px #071a23)}#reticle span{position:absolute;width:4px;height:4px;border:1px solid currentColor;left:17px;top:17px;border-radius:50%}#reticle i,#reticle b{position:absolute;inset:3px;border:1px solid currentColor;clip-path:polygon(0 0,25% 0,25% 4%,4% 4%,4% 25%,0 25%,0 0,100% 0,100% 25%,96% 25%,96% 4%,75% 4%,75% 0,100% 0,100% 100%,75% 100%,75% 96%,96% 96%,96% 75%,100% 75%,100% 100%,0 100%,0 75%,4% 75%,4% 96%,25% 96%,25% 100%,0 100%)}#reticle b{inset:13px;border-radius:50%;clip-path:none;opacity:.6}#reticle em{position:absolute;top:19px;left:43px;width:32px;height:1px;background:currentColor;opacity:.3}#aim-charge{position:absolute;inset:-5px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;opacity:0}body[data-weapon="1"] #reticle i{transform:rotate(45deg)}body[data-weapon="2"] #reticle i{border-radius:50%;clip-path:none}.target{position:absolute;width:58px;height:58px;transform:translate(-50%,-50%);border:1px solid #e0e3d54d;border-radius:2px;pointer-events:none;color:#f0e8d9;transition:border-color .15s;filter:drop-shadow(0 1px 2px #102432)}.target:before{content:"";position:absolute;inset:4px;border-top:1px solid #ffffff20}.target .tag{position:absolute;top:-18px;left:-1px;font:9px Consolas,"Microsoft JhengHei",monospace;white-space:nowrap;letter-spacing:1px}.target .bar{position:absolute;bottom:-5px;height:2px;left:0;background:var(--amber)}.target.locked{border:2px solid #c5dca2;color:#e3f7bc}.target.locked .tag{color:#e3f7bc}.target.shielded{border-color:#8abde8;color:#9bdbff}.target.missile{border-color:#ff715e;border-radius:50%;color:#ffc1aa;width:38px!important;height:38px!important;box-shadow:0 0 15px #ff54242a}.target.missile .bar{background:#ff715e}.target.missile .tag{left:50%;transform:translateX(-50%)}.target.warning{border-color:#ff755c}.target.warning .tag{color:#ffac80}#hit-marker{position:absolute;pointer-events:none;left:50%;top:50%;transform:translate(-50%,-50%);font:42px Arial;color:var(--amber);opacity:0}#toast{position:absolute;top:24%;left:50%;transform:translateX(-50%);text-align:center;font-size:15px;letter-spacing:3px;pointer-events:none;color:#fff3d6;text-shadow:0 2px 15px #142932;opacity:0;transition:opacity .2s;max-width:80%}#combat-hint{position:absolute;bottom:145px;left:50%;transform:translateX(-50%);text-align:center;font-size:12px;letter-spacing:1px;color:#d8e3e0;background:#09202a88;padding:8px 18px;border-left:2px solid var(--weapon);pointer-events:none;white-space:nowrap}#transit{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);text-align:center;width:560px;max-width:90%;padding:25px;background:linear-gradient(90deg,transparent,#081d27bd,transparent);pointer-events:none}#transit h2{font-size:32px;font-weight:400;letter-spacing:7px;margin:17px 0}#transit p{font-size:12px;letter-spacing:2px;color:#c5d6d8}#skip{pointer-events:auto;border:1px solid #d4e5df55;background:#10273299;padding:8px 14px;font-size:11px;margin-top:12px}.transit-line{width:200px;height:2px;background:#ffffff30;margin:22px auto 0}.transit-line i{display:block;background:var(--amber);height:100%;width:0}.modal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0717209e;backdrop-filter:blur(9px);z-index:10}.modal-panel{width:430px;max-width:92vw;padding:35px 40px;background:#102630f2;border:1px solid #a2bdc535;box-shadow:0 20px 100px #0005}.modal-panel h2{font-size:37px;font-weight:500;letter-spacing:5px;margin:18px 0}.modal-panel p{font-size:12px;color:#b6ccd2;line-height:1.8}.modal-panel .primary{width:100%;margin-top:22px;min-width:0}.secondary{display:block;width:100%;padding:12px;border:1px solid #b9d0d735;background:#183642;margin-top:10px;font-size:13px;letter-spacing:2px}.secondary:hover{background:#244a58}.text-button{display:block;border:0;background:transparent;color:#a0bbc6;font-size:11px;margin:16px auto 0}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0}.result-grid div{font-size:11px;color:#adcad1;letter-spacing:1px}.result-grid strong{display:block;color:#fff;font:24px Consolas,monospace;margin-bottom:5px}.result-score{font:40px Consolas,monospace;color:var(--amber);letter-spacing:2px}#damage-flash{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 160px #fa593a;opacity:0;z-index:5}#error{position:absolute;inset:30% 15%;background:#162f3bed;border:1px solid #ffbd70;padding:32px;z-index:20;line-height:1.8}#compatibility{position:absolute;bottom:0;left:0;right:0;background:#102731f5;border-top:1px solid var(--amber);padding:18px;z-index:15;text-align:center;font-size:12px}#compatibility p{color:#a9c0c9}.target,#reticle,#hit-marker{will-change:left,top}body[data-mode=arrival] #reticle,body[data-mode=transit] #reticle,body[data-mode=paused] #reticle,body[data-mode=lost] #reticle,body[data-mode=won] #reticle{display:none}
@media(max-height:760px){.menu{top:21%}.menu h1{font-size:66px;margin-top:15px}.english-title{margin:8px 0 18px}.intro{font-size:16px;margin-bottom:14px}.mission-meta{margin:16px 0}.start-note{margin:12px 0 17px}.primary{padding:13px 20px}.aircraft-label{bottom:15%}.masthead{padding-top:22px}.objective,.telemetry{top:95px}.modal-panel{padding:24px 32px}.modal-panel h2{margin:12px 0;font-size:32px}.result-grid{padding:12px 0;margin:12px 0;gap:12px}}
@media(max-width:1100px){.menu{left:6%;width:420px}.masthead{padding-left:26px;padding-right:26px}.bottom-hud{left:25px;right:25px;gap:15px}.weapon{width:132px}.hull{width:140px}.weapon-state{width:150px}.weapon-state>span:last-child{font-size:9px}.objective{left:26px}.telemetry{right:26px}.aircraft-label{right:4%;width:220px}.menu-bottom{left:26px;right:26px;font-size:8px}.menu h1{font-size:62px}}
@media(max-width:760px){.menu{top:18%;left:7%;width:86%}.menu h1{font-size:58px}.aircraft-label{display:none}.menu-bottom{display:none}.mast-right #system-label,.status-dot{display:none}.brand{font-size:12px}.brand svg{width:25px}.masthead{padding:20px}.english-title{letter-spacing:8px;font-size:12px}.intro{font-size:15px}.bottom-hud{left:12px;right:12px;bottom:15px;gap:8px}.weapon-state{display:none}.weapon{width:105px;padding:8px}.hull{width:105px}.hull .tiny{font-size:8px}.objective{left:20px;top:90px;max-width:250px}.objective h2{font-size:20px}.objective p{font-size:10px}.telemetry{right:20px;top:90px}.telemetry strong{font-size:22px}.telemetry .tiny{font-size:8px}#combat-hint{font-size:10px;bottom:125px;white-space:normal;width:85%}.control-strip{gap:12px;font-size:10px}.mission-meta{gap:12px}.start-note span{display:none}}
@media(prefers-reduced-motion:reduce){button,.target{transition:none}}
.play-button{width:270px;display:flex;justify-content:space-between;align-items:center;padding:11px 17px;font-size:13px;letter-spacing:2px;margin-top:9px;background:#0d2938a8}.play-button span{font-size:10px;letter-spacing:1px;color:#adc3cb}.play-button:disabled{cursor:default;opacity:.5}.menu .start-note{margin-bottom:18px}
#demo-controls{position:absolute;top:90px;left:50%;transform:translateX(-50%);z-index:7;width:400px;max-width:calc(100% - 32px);padding:11px 14px;background:#09212cda;border:1px solid #9bc7cb38;border-radius:4px;backdrop-filter:blur(8px)}.demo-heading{display:flex;align-items:center;gap:9px;font-size:12px}.demo-heading strong{letter-spacing:2px;font-weight:500;color:#c9efe6}.demo-heading>span:last-of-type{font-size:10px;color:#9fb9c2}.demo-heading button{margin-left:auto;background:transparent;border:1px solid #adced240;font-size:11px;padding:7px 9px}.demo-sectors{display:flex;gap:5px;margin-top:9px}.demo-sectors button{flex:1;font-size:10px;padding:8px 3px;background:#193944;border:1px solid #a6d1db28;color:#b6cdd3}.demo-sectors button.active{border-color:var(--amber);color:var(--amber)}#demo-caption{font-size:11px;letter-spacing:1px;color:#c5d7da;line-height:1.5;text-align:center;margin:9px 0 0;min-height:17px}body[data-demo=true] .weapon:disabled{opacity:1;cursor:default}body[data-demo=true] #toast{top:32%}body[data-demo=true] #viewport{cursor:default}
@media(max-height:760px) and (min-width:761px){.menu{top:18%}.menu h1{font-size:60px;margin-top:13px}.menu .intro{font-size:15px;line-height:1.65;margin-bottom:8px}.menu .english-title{margin-bottom:15px}.menu .mission-meta{margin:12px 0}.menu .primary{padding:12px 20px}.menu .start-note{margin:10px 0 15px}#demo-controls{top:82px}}
@media(max-width:760px){
  #app{height:100dvh}.menu{top:17%;left:7%;width:86%}.menu .primary,.menu .play-button{width:100%;min-width:0}.menu .primary{min-height:52px}.menu .play-button{min-height:44px}.menu h1{font-size:clamp(42px,12vw,62px);letter-spacing:5px}.menu .eyebrow{font-size:8px;gap:9px;letter-spacing:1px}.menu .eyebrow i{width:18px}.menu .intro{font-size:15px;line-height:1.7;margin-bottom:10px}.menu .mission-meta{gap:10px;font-size:9px}.menu .mission-meta span+span{padding-left:10px}.menu .control-strip{display:none}.masthead{padding:16px 14px}.brand small{font-size:7px;letter-spacing:2px}.brand{gap:7px;letter-spacing:1px}.mast-right{gap:5px}.mast-right button{min-height:40px;padding:7px 9px;font-size:10px}.mast-right kbd{display:none}
  #demo-controls{top:76px;width:calc(100% - 28px);max-width:none;padding:8px 10px}.demo-heading button{min-height:36px}.demo-sectors button{min-height:36px;font-size:10px}#demo-caption{font-size:10px;margin-top:7px}.objective{top:214px;left:18px;max-width:65%}.objective h2{font-size:19px;letter-spacing:2px;margin:7px 0}.objective p{display:none}.objective .tiny{font-size:8px;letter-spacing:1px}.telemetry{top:214px;right:18px}.telemetry strong{font-size:20px;letter-spacing:1px}.telemetry .tiny{font-size:7px;letter-spacing:1px}.route{margin-top:9px}.route i{width:21px}
  .bottom-hud{display:grid;grid-template-columns:1fr;gap:14px;bottom:max(14px,env(safe-area-inset-bottom));left:14px;right:14px}.hull{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:5px 20px;align-items:center}.hull>div:first-child{margin:0}.hull b{font-size:22px}.hull .health-track{margin:0}.hull>.tiny{grid-column:1/3;font-size:9px}.weapon-rack{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.weapon{width:100%;min-height:76px;padding:8px 7px;gap:1px 5px}.weapon svg{width:50px;height:21px}.weapon>span{font-size:10px;letter-spacing:0}.weapon small{font-size:7px}.weapon kbd{font-size:8px}.weapon-state{display:none}#combat-hint{bottom:160px;width:92%;font-size:10px;padding:7px 10px}body[data-demo=true] #toast{display:none}.target .tag{font-size:8px;letter-spacing:0}.target{width:44px!important;height:44px!important}.target.missile{width:30px!important;height:30px!important}.modal-panel{max-height:88dvh;overflow:auto;padding:22px 28px}.modal-panel h2{font-size:29px}.modal-panel .primary{min-height:48px}.secondary,.text-button{min-height:40px}#transit{top:48%;padding:14px}#transit h2{font-size:24px;letter-spacing:3px}#transit p{font-size:11px;line-height:1.8;letter-spacing:1px}#compatibility{padding:12px 15px;padding-bottom:max(12px,env(safe-area-inset-bottom));font-size:11px}#compatibility p{margin:6px 0 0}#skip{min-height:40px}
}
@media(max-height:500px) and (orientation:landscape){.masthead{padding:10px 18px}.brand small{display:none}.mast-right button{min-height:30px;padding:5px 10px}.menu{top:17%;left:5%;width:360px}.menu h1{font-size:43px;margin:9px 0 0}.english-title{font-size:10px;letter-spacing:7px;margin:5px 0 9px!important}.menu .intro{font-size:12px;line-height:1.5}.menu .mission-meta{margin:8px 0}.menu .primary{padding:9px 15px;min-height:37px}.menu .play-button{padding:8px 15px;min-height:34px;margin-top:5px}.menu .start-note{font-size:8px;margin:6px 0}.menu .control-strip,.menu-bottom,.aircraft-label,#compatibility{display:none!important}#demo-controls{top:62px;width:340px;max-width:43%;padding:6px 10px}.demo-heading button{min-height:26px;padding:4px 7px}.demo-heading strong{font-size:11px}.demo-sectors{margin-top:5px}.demo-sectors button{min-height:26px;padding:4px 2px;font-size:8px}#demo-caption{font-size:9px;margin-top:5px}.objective,.telemetry{top:66px}.objective{max-width:24%}.objective h2{font-size:17px;letter-spacing:2px}.objective p{display:none}.telemetry strong{font-size:19px}.bottom-hud{display:flex;bottom:9px;left:18px;right:18px;gap:15px}.hull{display:block;width:130px}.hull>div:first-child{margin-bottom:4px}.hull .health-track{margin-bottom:5px}.hull>.tiny{font-size:7px}.weapon{width:112px;min-height:59px;padding:5px 8px}.weapon svg{height:17px}.weapon>span{font-size:10px}.weapon small{margin-top:2px;font-size:7px}.weapon-state{display:none}#combat-hint{bottom:80px;width:auto;max-width:80%;font-size:9px;padding:5px 12px}#transit{top:52%;padding:10px}#transit h2{font-size:22px;margin:10px 0}.transit-line{margin-top:10px}#transit p{font-size:10px}#toast{display:none}}
@media(max-width:500px){body[data-demo=true] .target:not(.missile) .tag{display:none}}
