:root{--ink: #e9eef3;--ink-dim: #9fb0bf;--glass: rgba(12, 20, 29, .78);--glass-strong: rgba(10, 16, 23, .92);--line: rgba(255, 255, 255, .12);--accent: #5ad1a1;--amber: #ffb547;--red: #ff5a52;--blue: #6fb4ff;--gauge: clamp(78px, 8.6vw, 138px);font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;background:#0d1620}button{font:inherit;color:inherit;cursor:pointer}kbd{display:inline-block;min-width:1.6em;padding:1px 6px;border:1px solid rgba(255,255,255,.28);border-bottom-width:2px;border-radius:5px;background:#ffffff14;font:600 12px/1.5 ui-monospace,SF Mono,Menlo,monospace;text-align:center;white-space:nowrap}.app,.world{position:fixed;inset:0}.world-canvas{display:block;width:100%;height:100%;touch-action:none}.eyebrow{margin:0 0 6px;font-size:12px;letter-spacing:.22em;color:var(--accent);font-weight:700}.menu{position:fixed;inset:0;display:grid;place-items:center;padding:16px;background:radial-gradient(ellipse at 30% 20%,rgba(111,180,255,.35),transparent 60%),linear-gradient(180deg,#16324d,#0c1620 70%);overflow-y:auto}.menu-card{width:min(720px,100%);padding:clamp(20px,4vw,40px);border:1px solid var(--line);border-radius:18px;background:var(--glass);backdrop-filter:blur(12px);box-shadow:0 30px 80px #00000073}.menu h1{margin:0;font-size:clamp(34px,6vw,52px);letter-spacing:-.02em}.lede{margin:10px 0 24px;color:var(--ink-dim);line-height:1.6}.start-options{display:grid;gap:10px}.start{display:flex;flex-direction:column;gap:4px;padding:16px 18px;text-align:left;border:1px solid var(--line);border-radius:12px;background:#ffffff0a;transition:background .15s,border-color .15s,transform .15s}.start:hover{background:#ffffff17;transform:translateY(-1px)}.start strong{font-size:18px}.start span{color:var(--ink-dim);font-size:14px}.start.primary{border-color:#5ad1a199;background:linear-gradient(135deg,#5ad1a138,#5ad1a10f)}.menu-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.menu-facts h2{margin:0 0 4px;font-size:12px;color:var(--ink-dim);font-weight:600}.menu-facts p{margin:0;font-size:13px;color:var(--ink-dim)}.menu-facts .fact-title{color:var(--ink);font-size:15px;font-weight:600;margin-bottom:2px}.roadmap{margin:20px 0 0;font-size:12px;color:var(--ink-dim);opacity:.8}.loading{position:fixed;inset:0;display:grid;place-items:center;background:#080e14b8}.loading-card{width:min(420px,calc(100% - 32px));text-align:center;color:var(--ink-dim)}.progress{height:4px;border-radius:2px;background:#ffffff1f;overflow:hidden}.progress div{height:100%;background:var(--accent);transition:width .3s}.panel{position:fixed;left:50%;bottom:12px;transform:translate(-50%);display:flex;gap:10px;align-items:flex-end;padding:10px 12px 8px;border-radius:16px;background:linear-gradient(180deg,#1c1e22e6,#101114f0);border:1px solid rgba(255,255,255,.08);box-shadow:0 12px 40px #00000073;pointer-events:none}.six-pack{display:grid;grid-template-columns:repeat(3,var(--gauge));gap:6px 8px}.engine-stack{display:grid;grid-template-columns:var(--gauge) auto;grid-template-rows:auto auto;gap:6px 8px;align-items:end}.engine-stack .annunciators{grid-column:1 / 3}.gauge{position:relative;width:var(--gauge);display:flex;flex-direction:column;align-items:center;border-radius:50%;transition:filter .3s}.gauge svg{width:var(--gauge);height:var(--gauge);overflow:visible}.gauge-label{font-size:10px;color:#a9b1b8;margin-top:1px}.gauge.lit svg,.bar.lit .bar-track,.annunciators.lit{filter:drop-shadow(0 0 6px rgba(90,209,161,.95)) drop-shadow(0 0 14px rgba(90,209,161,.6));animation:glow 1.4s ease-in-out infinite}@keyframes glow{50%{filter:drop-shadow(0 0 2px rgba(90,209,161,.5))}}.bezel{fill:#2b2d31;stroke:#0b0b0c;stroke-width:1}.face{fill:#0f1012}.glass{fill:none;stroke:#ffffff0d}.tick{stroke:#d8dcdf;stroke-width:.8}.tick.major{stroke-width:1.6}.num{fill:#eef1f3;font:700 8px/1 system-ui,sans-serif;text-anchor:middle;dominant-baseline:middle}.num.small{font-size:7px}.num.cardinal{fill:#ffcf5a}.unit{fill:#9aa3aa;font:600 5px/1 system-ui,sans-serif;text-anchor:middle;letter-spacing:.08em}.digital{fill:#7ff0bf;font:700 9px/1 ui-monospace,Menlo,monospace;text-anchor:middle}.digital.small{font-size:7px}.needle{fill:#f5f5f2;stroke:#000;stroke-width:.4}.needle.short{fill:#cfd3d6}.hub{fill:#1c1c1c;stroke:#666;stroke-width:.6}.arc{fill:none;stroke-width:3.2}.arc.white{stroke:#f2f2f2;stroke-width:2}.arc.green{stroke:#30c46a}.arc.yellow{stroke:#f2c230}.redline{stroke:#ff3b30;stroke-width:2.4}.sky{fill:#3a86d0}.earth{fill:#8a5a2b}.horizon{stroke:#fff;stroke-width:1}.ladder{stroke:#fff;stroke-width:.8}.ladder-num{fill:#fff;font:600 5px/1 system-ui,sans-serif}.bank-mark{stroke:#fff;stroke-width:1.2}.bank-zero,.bank-pointer{fill:#ffb547}.plane-symbol{fill:none;stroke:#ffb547;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.plane-symbol.white{stroke:#f5f5f2;stroke-width:2;fill:#f5f5f2}.plane-dot{fill:#ffb547}.plane-body{fill:#f5f5f2}.tube{fill:#e9e6d6;stroke:#666;stroke-width:.6}.tube-mark{stroke:#222;stroke-width:.8}.ball{fill:#111}.window{fill:#050505;stroke:#555;stroke-width:.5}.kollsman{fill:#fff;font:600 5.5px/1 ui-monospace,monospace;text-anchor:middle}.lubber{fill:#ffb547}.bug{fill:#ff4fd8}.bars{display:flex;gap:6px;height:var(--gauge)}.bar{width:34px;display:flex;flex-direction:column;align-items:center;gap:2px}.bar-track{position:relative;flex:1;width:12px;border-radius:6px;background:#0d0e10;border:1px solid #3a3d42;overflow:hidden}.bar-fill{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,#2b9c6c,#5ad1a1)}.bar-mark{position:absolute;left:0;right:0;height:1px;background:#ffffff59;z-index:1}.trim-center{position:absolute;left:0;right:0;top:50%;height:1px;background:#ffffff4d}.trim-mark{position:absolute;left:-2px;right:-2px;height:4px;margin-bottom:-2px;background:var(--amber);border-radius:2px}.bar-text{font:700 11px/1 ui-monospace,Menlo,monospace;color:#7ff0bf}.bar-label{font-size:10px;color:#a9b1b8}.annunciators{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;border-radius:6px}.ann{padding:3px 4px;border-radius:4px;background:#1b1c1f;border:1px solid #33363b;color:#5b6167;font-size:10px;font-weight:700;text-align:center;white-space:nowrap}.ann.on.red{background:#5a1412;color:#ff8a84;border-color:#ff5a52}.ann.on.amber{background:#4d360e;color:#ffcf7a;border-color:var(--amber)}.ann.on.green{background:#0f3b27;color:#7ff0bf;border-color:#2b9c6c}.ann.blink{animation:blink .5s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.tutorial{position:fixed;top:16px;left:16px;width:min(390px,calc(100vw - 32px));max-height:calc(100vh - var(--gauge) * 2 - 100px);overflow-y:auto;padding:16px 18px;border-radius:14px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(10px);line-height:1.55;font-size:14px}.tut-head{display:flex;align-items:center;gap:10px}.tut-count{font:700 12px/1 ui-monospace,monospace;color:var(--accent)}.tut-progress{flex:1;height:3px;border-radius:2px;background:#ffffff1a}.tut-progress div{height:100%;border-radius:2px;background:var(--accent);transition:width .4s}.tutorial h2{margin:10px 0 6px;font-size:18px;line-height:1.3}.tutorial p{margin:0 0 8px;color:#d4dde5}.keys{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}.concept{margin-top:8px;padding:10px 12px;border-radius:10px;background:#6fb4ff1a;border:1px solid rgba(111,180,255,.25)}.concept h3{margin:0 0 4px;font-size:13px;color:var(--blue)}.concept p{font-size:13px;margin:0}.concept .formula{margin:4px 0 6px;font:700 15px/1.3 Times New Roman,serif;font-style:italic;color:#fff}.coach{margin-top:10px!important;padding:8px 10px;border-radius:8px;background:#ffb54724;border-left:3px solid var(--amber);color:#ffe0ad!important;font-weight:600}.next{margin-top:6px;padding:8px 14px;border-radius:8px;border:1px solid rgba(90,209,161,.6);background:#5ad1a12e;display:inline-flex;gap:8px;align-items:center}.hold-progress{margin-top:8px;height:3px;background:#ffffff1a}.hold-progress div{height:100%;background:var(--amber)}.nav-card{position:fixed;top:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:8px 16px 8px 10px;border-radius:12px;background:var(--glass);border:1px solid rgba(255,79,216,.45);pointer-events:none}.nav-arrow{width:30px;height:30px;fill:#ff4fd8;transition:transform .2s linear}.nav-label{font-size:13px;font-weight:700}.nav-values{font:600 12px/1.3 ui-monospace,monospace;color:var(--ink-dim)}.papi{position:fixed;top:16px;right:16px;padding:10px 12px;border-radius:12px;background:var(--glass);border:1px solid var(--line);text-align:center}.papi-lights{display:flex;gap:8px;justify-content:center}.papi-light{width:16px;height:16px;border-radius:50%}.papi-light.white{background:#fff;box-shadow:0 0 10px #fff}.papi-light.red{background:#ff3b30;box-shadow:0 0 10px #ff3b30}.papi-text{display:block;margin-top:6px;font-size:12px;font-weight:700}.papi-text.ok{color:var(--accent)}.papi-text.off{color:var(--amber)}.data-strip{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--gauge) * 2 + 60px);display:flex;gap:14px;padding:5px 12px;border-radius:999px;background:#0a101799;font:600 12px/1.2 ui-monospace,Menlo,monospace;white-space:nowrap;pointer-events:none}.data-strip em{font-style:normal;color:var(--ink-dim);margin-right:3px}.data-strip .perf{color:#6c7a86}.toasts{position:fixed;right:16px;top:110px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:none}.toast{padding:8px 14px;border-radius:10px;background:var(--glass-strong);border:1px solid var(--line);font-size:14px;animation:toast-in .2s ease-out}.toast.good{border-color:#5ad1a199}.toast.warn{border-color:#ff5a52b3;color:#ffc4c0}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}}.corner-hint{position:fixed;right:16px;bottom:22px;font-size:11px;color:#ffffff8c;pointer-events:none}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:16px;background:#05090d99;backdrop-filter:blur(3px);z-index:10}.modal{width:min(460px,100%);max-height:calc(100vh - 32px);overflow-y:auto;padding:24px;border-radius:16px;background:var(--glass-strong);border:1px solid var(--line);line-height:1.55}.modal h2{margin:0 0 12px}.modal-actions{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}.modal-actions.vertical{flex-direction:column}.modal-actions button{padding:10px 16px;border-radius:10px;border:1px solid var(--line);background:#ffffff0f}.modal-actions button.primary{border-color:#5ad1a1b3;background:#5ad1a138;font-weight:700}.result.crash{border-color:#ff5a5280}.result.crash .eyebrow{color:var(--red)}.result dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0 0}.result dl div{padding:8px 10px;border-radius:8px;background:#ffffff0d}.result dt{font-size:11px;color:var(--ink-dim)}.result dd{margin:2px 0 0;font-weight:700}.help{width:min(560px,100%)}.help table{width:100%;border-collapse:collapse;font-size:14px}.help td{padding:5px 4px;border-bottom:1px solid var(--line);vertical-align:top}.help td:first-child{width:150px}.muted{color:var(--ink-dim);font-size:12px}.attribution{position:fixed;left:8px;bottom:2px;font-size:9px;color:#ffffff73;pointer-events:none;max-width:40vw}@media(max-width:900px){:root{--gauge: clamp(60px, 13vw, 96px)}.engine-stack,.data-strip .perf{display:none}.tutorial{max-height:36vh;font-size:13px}.nav-card{top:auto;bottom:calc(var(--gauge) * 2 + 100px)}.attribution{display:none}}.menu input{font:inherit;color:var(--ink);padding:8px 12px;border-radius:8px;border:1px solid var(--line);background:#ffffff0f;min-width:0}.menu input:focus{outline:2px solid rgba(90,209,161,.6);outline-offset:1px}.menu button:not(.start):not(.link){padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:#ffffff14;white-space:nowrap}.menu button:disabled{opacity:.45;cursor:default}.menu button.ghost{background:transparent}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.link{border:0;background:none;padding:0 0 0 10px;color:var(--ink-dim);font-size:12px;text-decoration:underline}.hint{margin:8px 0 0;font-size:12px;color:var(--ink-dim)}.hint.warn{color:#ffcf7a}.pilot-card,.friends-card{margin-bottom:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#ffffff08}.pilot-card label,.pilot-card h2,.friends-card h2{display:block;margin:0 0 8px;font-size:12px;color:var(--ink-dim);font-weight:600}.pilot-card input{flex:1}.sso-card .sso-login{width:100%}.sso-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.sso-row .hint{margin:0;min-width:0;overflow-wrap:anywhere}.sso-row button{flex:none}.pilot-line,.room-line{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.pilot-name{font-size:17px;font-weight:700}.pilot-stats{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;font-size:13px}.pilot-stats em{font-style:normal;color:var(--ink-dim);margin-right:4px}.code-input{width:110px;text-transform:uppercase;letter-spacing:.2em;font-family:ui-monospace,Menlo,monospace!important}.friends-card.in-room{border-color:#5ad1a173}.room-code{margin:0 10px;font:700 22px/1 ui-monospace,Menlo,monospace;letter-spacing:.18em;color:var(--accent)}.room-status{font-size:12px;color:var(--ink-dim)}.room-status.closed{color:var(--red)}.room-hud{position:fixed;right:16px;top:110px;width:250px;padding:10px 12px;border-radius:12px;background:var(--glass);border:1px solid var(--line);font-size:13px}.room-hud-head{display:flex;justify-content:space-between;align-items:center;font:700 12px/1 ui-monospace,monospace;color:var(--accent);letter-spacing:.08em}.dot{width:8px;height:8px;border-radius:50%;background:var(--amber)}.dot.open{background:var(--accent)}.dot.closed{background:var(--red)}.room-hud ul{list-style:none;margin:8px 0 0;padding:0}.room-hud li{display:flex;align-items:center;gap:8px;padding:3px 0}.room-hud li.me{color:var(--ink-dim)}.room-hud li.empty{color:var(--ink-dim);font-size:12px}.room-hud .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-hud .meta{font:12px ui-monospace,monospace;color:var(--ink-dim)}.swatch{width:10px;height:10px;border-radius:3px;flex:none}.chat-log{margin-top:8px;max-height:120px;overflow-y:auto;border-top:1px solid var(--line);padding-top:6px}.chat-log p{margin:2px 0;line-height:1.4}.chat-log p.mine b{color:var(--accent)}.room-hud input{width:100%;margin-top:8px;padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:#ffffff0f;color:var(--ink);font:inherit}.toasts.with-room{top:330px}.menu-card.logbook{width:min(880px,100%);max-height:calc(100vh - 32px);overflow-y:auto}.logbook-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.stat-grid div{padding:10px 12px;border-radius:10px;background:#ffffff0d;display:flex;flex-direction:column}.stat-grid em{font-style:normal;font-size:12px;color:var(--ink-dim)}.stat-grid strong{font-size:26px;line-height:1.2}.stat-grid span{font-size:11px;color:var(--ink-dim)}.stat-grid .good strong{color:var(--accent)}.stat-grid .bad strong{color:#ff8a84}h2.section{margin:22px 0 10px;font-size:15px}.medal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.medal{display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#ffffff08}.medal-badge{grid-row:1 / 3;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;font-weight:800;font-size:16px;background:#33363b;color:#8a9097}.medal-name{font-size:13px;font-weight:700}.medal-desc{font-size:11px;color:var(--ink-dim);line-height:1.3}.medal.locked{opacity:.55}.medal.earned.bronze .medal-badge{background:radial-gradient(circle at 35% 30%,#f3c79a,#a4652f);color:#2b1605}.medal.earned.silver .medal-badge{background:radial-gradient(circle at 35% 30%,#fff,#8e99a3);color:#1b2127}.medal.earned.gold .medal-badge{background:radial-gradient(circle at 35% 30%,#fff1a8,#c79a17);color:#2e2100}.medal.earned{border-color:#ffcf7a66}.table-wrap{overflow-x:auto}table.flights{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}table.flights th{text-align:left;font-weight:600;color:var(--ink-dim);font-size:12px;padding:4px 8px}table.flights td{padding:6px 8px;border-top:1px solid var(--line)}table.flights tr.crashed .outcome{color:#ff8a84;font-weight:700}table.flights tr.landed .outcome{color:var(--accent)}.tag{margin-left:6px;padding:1px 6px;border-radius:4px;font-size:10px;background:#6fb4ff2e;color:var(--blue)}.crash-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.crash-list li{padding:10px 12px;border-radius:10px;background:#ff5a5214;border:1px solid rgba(255,90,82,.25);display:flex;flex-direction:column;gap:2px;font-size:13px}.crash-list span{color:var(--ink-dim)}@media(max-width:900px){.room-hud{top:auto;bottom:calc(var(--gauge) * 2 + 140px);width:200px}}.start-options.two{grid-template-columns:1fr 1fr;margin-top:10px}.departure{margin-top:14px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#ffffff08}.departure h2{margin:0 0 8px;font-size:12px;color:var(--ink-dim);font-weight:600}.dep-group{display:grid;grid-template-columns:76px 1fr;gap:8px;align-items:start;margin-top:6px}.dep-country{font-size:12px;color:var(--ink-dim);padding-top:6px}.dep-list{display:flex;flex-wrap:wrap;gap:6px}.menu .dep-list button{padding:5px 10px!important;font-size:13px;border-radius:999px!important}.dep-list button em{font-style:normal;margin-left:6px;font:600 10px ui-monospace,monospace;color:var(--ink-dim)}.menu .dep-list button.on{border-color:#5ad1a1cc;background:#5ad1a138}.nav-hint{margin-top:2px;font-size:12px;color:#ffd6f5;max-width:420px}.landmark-card{position:fixed;left:16px;bottom:calc(var(--gauge) * 2 + 60px);width:min(360px,calc(100vw - 32px));padding:12px 14px;border-radius:12px;background:var(--glass);border:1px solid rgba(255,207,90,.45);animation:toast-in .3s ease-out}.landmark-card .eyebrow{color:#ffcf5a}.landmark-card h3{margin:0 0 4px;font-size:17px}.landmark-card p:last-child{margin:0;font-size:13px;line-height:1.55;color:#d4dde5}.map-view{position:fixed;inset:0;z-index:20;display:grid;grid-template-columns:1fr 340px;background:#0b1a26}.map-canvas{width:100%;height:100%;cursor:grab;touch-action:none}.map-canvas:active{cursor:grabbing}.map-panel{display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--glass-strong);border-left:1px solid var(--line);overflow:hidden}.map-head{display:flex;align-items:center;gap:8px}.map-head strong{font-size:17px}.map-head .muted{flex:1}.map-panel button{padding:7px 12px;border-radius:8px;border:1px solid var(--line);background:#ffffff12}.map-panel button.primary{border-color:#ff4fd8b3;background:#ff4fd838;font-weight:700}.map-panel button.ghost{background:transparent}.map-search{font:inherit;color:var(--ink);padding:8px 12px;border-radius:8px;border:1px solid var(--line);background:#ffffff0f}.map-selected{padding:10px 12px;border-radius:10px;background:#ffffff0d}.map-selected h3{margin:0 0 2px}.map-selected p{margin:0 0 6px;font-size:13px}.map-dist{font:600 12px ui-monospace,monospace;color:#ffd6f5}.map-text{line-height:1.5;color:#d4dde5}.map-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.map-list button{width:100%;display:flex;align-items:center;gap:8px;text-align:left;border:0!important;border-radius:6px!important;background:transparent!important;padding:6px 8px!important}.map-list button:hover,.map-list button.on{background:#ffffff14!important}.map-icon{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;font-size:11px;flex:none}.map-icon.airport{background:#fff;color:#0b1a26}.map-icon.landmark{background:#ffcf5a;color:#3a2a00}.map-name{flex:1;font-size:13px}.map-km{font:12px ui-monospace,monospace;color:var(--ink-dim)}@media(max-width:900px){.map-view{grid-template-columns:1fr;grid-template-rows:1fr 45vh}.map-panel{border-left:0;border-top:1px solid var(--line)}.start-options.two{grid-template-columns:1fr}.landmark-card{display:none}}.menu-head,.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.lang-picker{display:inline-flex;align-items:center;gap:6px;font-size:14px}.lang-picker select{font:inherit;color:var(--ink);background:#ffffff14;border:1px solid var(--line);border-radius:8px;padding:5px 8px}.lang-picker option{color:#111}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.code-input::placeholder{letter-spacing:normal}.bar{width:auto;min-width:34px}.bar-label{white-space:nowrap}.digital.ab{fill:#ffb547}.annunciators{grid-template-columns:repeat(4,1fr)}.hangar{margin-top:14px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#ffffff08}.hangar h2{margin:0 0 8px;font-size:12px;color:var(--ink-dim);font-weight:600}.hangar-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.menu .hangar-card{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 12px!important;text-align:left;white-space:normal!important;border-radius:10px!important}.menu .hangar-card.on{border-color:#5ad1a1cc;background:#5ad1a129}.hangar-icon{font-size:22px}.hangar-card strong{font-size:14px}.hangar-card em{font-style:normal;font-size:11px;color:var(--accent)}.hangar-tag{font-size:12px;color:var(--ink-dim);line-height:1.4}.hangar-spec{margin-top:2px;font:600 11px ui-monospace,monospace;color:#7ff0bf}.tutorial.brief ul{margin:6px 0 10px;padding-left:18px;color:#d4dde5}.tutorial.brief li{margin-bottom:6px}.ap-panel{position:fixed;left:50%;transform:translate(-50%);top:96px;display:flex;align-items:center;gap:14px;padding:6px 14px;border-radius:10px;background:var(--glass);border:1px solid rgba(90,209,161,.6);font:600 13px ui-monospace,Menlo,monospace;pointer-events:none}.ap-panel strong{color:var(--accent)}.ap-panel em{font-style:normal;color:var(--ink-dim);margin-right:3px}.ap-panel .ap-hint{font:11px system-ui,sans-serif;color:var(--ink-dim)}@media(max-width:900px){.hangar-list{grid-template-columns:1fr}.ap-panel .ap-hint{display:none}}.dash.hidden{display:none}.dash.cockpit .panel{left:0;right:0;bottom:0;transform:none;justify-content:center;gap:24px;padding:26px 24px 14px;border-radius:0;border:0;background:radial-gradient(120% 60px at 50% 0,rgba(0,0,0,.55),transparent 70%),linear-gradient(180deg,#202226,#16171a 18%,#111214);box-shadow:0 -18px 30px #00000073;clip-path:polygon(0 18px,8% 0,92% 0,100% 18px,100% 100%,0 100%);--gauge: clamp(84px, 9.5vw, 150px)}.dash.cockpit~.data-strip,.data-strip:has(~.dash.cockpit){bottom:calc(var(--gauge) * 2 + 80px)}.hud-overlay{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;fill:none;stroke:#45ff9d;stroke-width:2;filter:drop-shadow(0 0 3px rgba(69,255,157,.7))}.hud-overlay text{fill:#45ff9d;stroke:none;font:600 16px ui-monospace,Menlo,monospace}.hud-overlay .neg line{stroke-dasharray:8 6}.hud-overlay .hud-horizon{stroke-width:2.5}.hud-overlay .hud-box{fill:#00000059}.hud-overlay .hud-big{font-size:22px}.hud-overlay .hud-small{font-size:15px}.hud-overlay .hud-warn{fill:#ffcf5a;font-size:26px;font-weight:800}.menu-tools{display:flex;gap:8px;align-items:center}.pad-button{padding:5px 10px;border-radius:8px;border:1px solid var(--line);background:#ffffff14;font-size:13px;white-space:nowrap}.modal.pad-settings{width:min(760px,100%)}.pad-device{display:flex;gap:10px;align-items:center;font-size:13px}.pad-device select{flex:1;font:inherit;color:var(--ink);background:#ffffff14;border:1px solid var(--line);border-radius:8px;padding:6px 8px}.pad-device option{color:#111}.pad-live{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:10px 0}.pad-live h3{margin:6px 0;font-size:12px;color:var(--ink-dim)}.axis-row{display:grid;grid-template-columns:22px 1fr 44px;gap:8px;align-items:center;font:12px ui-monospace,monospace;margin-bottom:4px}.axis-bar{position:relative;height:8px;border-radius:4px;background:#ffffff1a;overflow:hidden}.axis-bar div{position:absolute;top:0;bottom:0;background:var(--accent)}.axis-row em{font-style:normal;color:var(--ink-dim)}.btn-grid{display:flex;flex-wrap:wrap;gap:4px}.btn-grid span{width:26px;height:22px;display:grid;place-items:center;border-radius:5px;background:#ffffff14;font:11px ui-monospace,monospace}.btn-grid span.on{background:var(--accent);color:#06140e}.stick-test{position:relative;width:110px;height:110px;border-radius:10px;border:1px solid var(--line);background:linear-gradient(90deg,transparent 49.5%,rgba(255,255,255,.15) 50%,transparent 50.5%),linear-gradient(0deg,transparent 49.5%,rgba(255,255,255,.15) 50%,transparent 50.5%);margin-bottom:8px}.stick-test span{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#ffb547}.pad-table{width:100%;border-collapse:collapse;font-size:13px}.pad-table td{padding:4px;border-bottom:1px solid var(--line)}.pad-table td.bind{font:12px ui-monospace,monospace;color:#7ff0bf;white-space:nowrap}.pad-table button{padding:3px 10px;border-radius:6px;border:1px solid var(--line);background:#ffffff12;font-size:12px;margin-right:4px}.pad-table button.ghost{background:transparent}.pad-table .inv{font-size:12px;margin-right:6px}.pad-slider{display:grid;grid-template-columns:1fr 60px;gap:4px 10px;margin-top:10px;font-size:13px}.pad-slider em{font-style:normal;text-align:right;color:var(--ink-dim)}.pad-slider input{grid-column:1 / 3}@media(max-width:700px){.pad-live{grid-template-columns:1fr}}.flight-menu{display:block;padding:0 clamp(18px,3.5vw,64px) 20px;background:#0c1923;color:#edf3f4}.flight-header{max-width:1680px;margin:auto;min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px}.flight-brand{font-size:16px;font-weight:750;letter-spacing:.18em}.flight-brand>span{color:#aadaca;font-size:30px;margin-right:10px}.flight-brand small{display:inline-block;margin-left:20px;color:#8da4b2;font-size:11px;font-weight:400;letter-spacing:.05em}.flight-layout{max-width:1680px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 350px;min-height:min(730px,calc(100dvh - 156px));border:1px solid #32434c;border-radius:16px;overflow:hidden}.flight-hero{position:relative;min-height:620px;overflow:hidden;background:radial-gradient(ellipse at 80% 25%,#efdbb3 0,transparent 50%),linear-gradient(180deg,#558fae,#b2ccce 55%,#4a8193)}.hangar-scene{position:absolute;inset:0}.hangar-scene canvas{display:block;width:100%;height:100%}.flight-hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#102c4350,transparent 38%,transparent 55%,#0c2537e6)}.hero-copy{position:relative;z-index:1;padding:clamp(25px,3.3vw,56px);pointer-events:none}.hero-copy .eyebrow{color:#e0f0ed;font-size:10px;letter-spacing:.25em}.flight-menu .hero-copy h1{white-space:pre-line;font-size:clamp(28px,3.1vw,48px);font-weight:650;letter-spacing:-.055em;line-height:1.25;margin:16px 0;text-shadow:0 2px 24px #17394b30}.hero-copy>p:last-child{font-size:13px;color:#eef6f6}.hero-aircraft{position:absolute;bottom:38px;left:clamp(25px,3.3vw,56px);z-index:1}.hero-aircraft .eyebrow{color:#bdd7df;font-size:10px}.hero-aircraft h2{margin:8px 0 22px;font-size:clamp(23px,2.4vw,36px);font-weight:500;letter-spacing:-.03em}.hero-specs{display:flex;gap:30px;font:11px ui-monospace,monospace;color:#adc5d0}.hero-specs b{color:#fff;font-size:23px;font-weight:400}.hero-specs small{display:block;font-size:9px;letter-spacing:.16em;margin-top:6px}.hero-index{position:absolute;right:24px;bottom:40px;z-index:1;font:9px ui-monospace,monospace;color:#afc8d3;writing-mode:vertical-rl;letter-spacing:.15em}.flight-dispatch{padding:28px;background:#14242f}.dispatch-title{padding-bottom:20px;border-bottom:1px solid #ffffff18}.dispatch-title .eyebrow{font:9px ui-monospace,monospace;color:#9fb6be;letter-spacing:.2em}.dispatch-title h2{margin:8px 0 0;font-size:23px;font-weight:550}.flight-menu .hangar{padding:0;border:0;background:none;margin:22px 0}.flight-menu .hangar h2,.flight-airport>span{display:block;font-size:11px;font-weight:500;color:#9fb6be;margin-bottom:10px}.flight-menu .hangar-list{grid-template-columns:1fr 1fr;gap:8px}.flight-menu .hangar-card{position:relative;min-height:80px;justify-content:center;padding:12px!important;background:#ffffff03!important;border-color:#ffffff18!important;border-radius:6px!important}.flight-menu .hangar-card.on{background:#b7e7d710!important;border-color:#acd8c7!important}.flight-menu .hangar-card strong{font-size:12px}.flight-menu .hangar-card em{font-size:10px;color:#a1b4be}.hangar-number{position:absolute;right:8px;top:6px;font:8px ui-monospace,monospace;color:#90aca5}.flight-airport select{width:100%;padding:12px 10px;border:1px solid #ffffff25;border-radius:6px;background:#1a303d;color:#f1f5f6;font:inherit;font-size:12px}.flight-details{margin:14px 0 18px;border-bottom:1px solid #ffffff18}.flight-details summary,.flight-social summary{cursor:pointer;padding:12px 0;font-size:12px;color:#b9cbd3}.flight-details .conditions{padding:0 0 12px;margin:0;border:0;background:none}.flight-details .conditions h2,.flight-details .hint{display:none}.flight-details .dep-group{grid-template-columns:1fr}.flight-actions{display:grid;gap:8px}.flight-menu .start.primary{background:#c2e8d5;color:#102f29;border:0;border-radius:6px;padding:17px}.flight-menu .start.primary strong{display:flex;justify-content:space-between;width:100%;font-size:17px}.flight-menu .start.primary>span{font-size:10px;color:#386253}.flight-menu .air-start{padding:12px;align-items:center;border-radius:6px}.flight-menu .air-start strong{font-size:12px;font-weight:500}.flight-menu button.flight-lesson{width:100%;display:flex;align-items:center;gap:12px;margin-top:20px;padding:16px 0 0;border:0;border-top:1px solid #ffffff18;border-radius:0;background:none;text-align:left;white-space:normal}.flight-lesson>span:first-child{font-size:24px;color:#bbd9cc}.flight-lesson>span:nth-child(2){flex:1}.flight-lesson strong{display:block;font-size:12px;font-weight:500}.flight-lesson small{display:block;font-size:10px;line-height:1.5;color:#91a8b5;margin-top:4px}.flight-social{max-width:1680px;margin:4px auto 0}.flight-social summary{display:flex;justify-content:space-between;padding:16px 2px;list-style:none}.flight-social summary::-webkit-details-marker{display:none}.flight-social>div{display:grid;grid-template-columns:1fr 1fr;gap:16px}.flight-menu button:focus-visible,.flight-menu summary:focus-visible,.flight-menu select:focus-visible{outline:2px solid #c2e8d5;outline-offset:4px}.flight-menu button:hover{filter:brightness(1.12)}@media(min-width:1600px){.flight-hero{min-height:730px}}@media(max-width:1000px){.flight-layout{grid-template-columns:minmax(0,1fr) 310px}.flight-dispatch{padding:22px}.flight-brand small{display:none}.hero-copy{padding:28px}.flight-menu .hero-copy h1{font-size:30px}}@media(max-width:720px){.flight-menu{padding:0 12px 12px}.flight-header{min-height:72px;gap:10px;flex-wrap:wrap;padding:12px 2px}.flight-brand{font-size:12px;letter-spacing:.1em}.flight-brand>span{font-size:20px;margin-right:4px}.flight-menu .menu-tools{gap:5px}.flight-menu .pad-button{font-size:10px;padding:6px!important}.flight-menu .lang-picker{font-size:11px}.flight-layout{grid-template-columns:1fr}.flight-hero{min-height:490px}.hero-copy{padding:26px}.flight-menu .hero-copy h1{font-size:30px}.hero-copy>p:last-child{font-size:11px}.hero-aircraft{left:26px;bottom:25px}.hero-aircraft h2{font-size:24px;margin-bottom:12px}.hero-specs b{font-size:20px}.flight-dispatch{padding:24px}.flight-social>div{grid-template-columns:1fr;gap:0}}.flight-header,.flight-layout,.flight-social{width:100%}.flight-menu button.flight-lesson{background:transparent;border:0;border-top:1px solid #ffffff18;border-radius:0;padding:16px 0 0}.hud-overlay .hud-dash{stroke-dasharray:6 6;stroke-width:1.5;opacity:.8}.hud-overlay .hud-target{stroke:#ffb347}.hud-overlay .hud-target text{fill:#ffb347}.hud-overlay .hud-lock{stroke:#ff5a4a;stroke-width:2.5}.hud-overlay .hud-target-arrow{fill:#ff5a4ad9;stroke:none}.mission-panel{position:fixed;top:16px;left:16px;min-width:210px;padding:10px 14px;border-radius:12px;background:#0c1016c7;border:1px solid rgba(255,120,90,.35);color:var(--ink);font-size:13px;pointer-events:none}.mission-panel h3{margin:0 0 6px;font-size:14px;color:#ff9a7a}.mission-panel .row{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}.mission-panel .row em{font-style:normal;color:var(--ink-dim)}.mission-panel .keys{margin-top:6px;font-size:11px;color:var(--ink-dim)}.combat-card{margin-top:12px;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,120,90,.3);background:#ff785a0f}.combat-card h2{margin:0 0 6px;font-size:13px;color:#ff9a7a}.combat-card .mission-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin-top:8px}.menu .combat-card .mission{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px!important;text-align:left;white-space:normal!important}.combat-card .mission .stars{color:#ffcf5a;letter-spacing:2px}.combat-card .mission[disabled]{opacity:.45}.room-hud .relaunch{display:block;width:100%;margin:6px 0 4px;padding:5px 8px;border-radius:8px;border:1px solid rgba(90,209,161,.55);background:#5ad1a129;color:var(--ink);font-size:12px;cursor:pointer;pointer-events:auto}.friends-card .launch-row{gap:8px;margin-top:8px;flex-wrap:wrap}.wings-badge{display:flex;flex-direction:column;align-items:center;gap:8px;margin:10px 0 4px;animation:wings-in .9s cubic-bezier(.2,1.4,.4,1) both}.wings-badge .wings-art{width:min(320px,100%);filter:drop-shadow(0 8px 24px rgba(232,182,74,.25))}.wings-badge.silver .wings-art{filter:drop-shadow(0 8px 24px rgba(200,210,220,.25))}.wings-badge.bronze .wings-art{filter:drop-shadow(0 8px 24px rgba(201,133,78,.25))}.wings-badge .wings-art svg{width:100%;height:auto;display:block}.wings-badge .wings-note{margin:0;text-align:center;font-size:13px;color:var(--ink-dim)}@keyframes wings-in{0%{opacity:0;transform:scale(.6) translateY(12px)}to{opacity:1;transform:none}}.wings-pin{margin-left:6px;font-size:12px;font-weight:700;white-space:nowrap}.wings-badge .wings-save{padding:5px 12px;border-radius:8px;border:1px solid rgba(232,182,74,.5);background:#e8b64a1f;color:var(--ink);font-size:12px;cursor:pointer}.key-prompt{position:fixed;left:50%;top:17%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;z-index:5}.key-prompt-title{font-size:12px;letter-spacing:2px;color:#ffd27a;text-shadow:0 1px 3px rgba(0,0,0,.8)}.key-prompt-keys{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.key-cap{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:64px;padding:8px 10px 6px;border-radius:12px;background:#0a0e14b8;border:1px solid rgba(255,210,122,.45);color:var(--ink);font-size:12px;animation:key-pulse 1.6s ease-in-out infinite}.key-cap kbd{min-width:38px;padding:6px 10px;border-radius:8px;background:linear-gradient(#f4f1e8,#d7d2c4);color:#1b1d20;font:800 20px ui-monospace,Menlo,monospace;text-align:center;box-shadow:0 3px #8f8a7c}.key-cap em{font-style:normal;font-size:11px;color:#9fd8ff}.key-cap.on{border-color:#5ad1a1;background:#5ad1a140;animation:none}.key-cap.on kbd{transform:translateY(2px);box-shadow:0 1px #8f8a7c;background:linear-gradient(#e6fff4,#b8f0d8)}@keyframes key-pulse{50%{box-shadow:0 0 0 6px #ffd27a1f}}.course-bar{position:fixed;left:16px;bottom:36px;width:230px;padding:10px 12px;border-radius:12px;background:#0a0e14c7;border:1px solid rgba(255,255,255,.12);color:var(--ink);font-size:12px;z-index:5}.course-bar .course-head{display:flex;justify-content:space-between;margin-bottom:6px}.course-bar .course-head span{font-variant-numeric:tabular-nums;color:#ffd27a;font-weight:700}.course-bar ol{list-style:none;margin:0;padding:0;display:grid;gap:3px}.course-bar li{display:flex;align-items:center;gap:6px;opacity:.55;margin:0;padding:2px 0;min-height:0;border:0;background:none;box-shadow:none}.course-bar li.now{opacity:1;color:#ffd27a;font-weight:700}.course-bar li.done{opacity:.9}.course-bar li .n{width:18px;height:18px;border-radius:50%;display:inline-grid;place-items:center;font-size:10px;background:#ffffff1f}.course-bar li.now .n{background:#ffd27a;color:#1b1d20}.course-bar li .pts{margin-left:auto;font-variant-numeric:tabular-nums}.course-skip{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.12)}.course-skip p{margin:0 0 6px;color:var(--ink-dim)}.course-skip button{width:100%;padding:5px 8px;border-radius:8px;border:1px solid rgba(255,210,122,.5);background:#ffd27a24;color:var(--ink);cursor:pointer}.controls-map{max-width:820px;width:calc(100vw - 32px)}.controls-map .map-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 18px;margin:10px 0}.controls-map h3{margin:4px 0 6px;font-size:12px;color:#ffd27a}.controls-map .map-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin:3px 0;font-size:13px}.controls-map .map-row kbd{min-width:30px;text-align:center}.controls-map .map-row em{font-style:normal;font-size:11px;color:#9fd8ff}.controls-map p{font-size:12px}.controls-map .map-pad{padding:10px 12px;border-radius:10px;background:#9fd8ff12;border:1px solid rgba(159,216,255,.2)}.controls-map .pad-binds{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px}.controls-map .pad-binds b{color:#9fd8ff}.checklist{margin:8px 0}.checklist .check-score{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.checklist .check-score b{font-size:34px;font-variant-numeric:tabular-nums}.checklist .check-score small{font-size:16px;opacity:.7}.checklist .check-score span{padding:2px 10px;border-radius:999px;font-weight:800}.checklist .check-score.pass span{background:#5ad1a133;color:#5ad1a1}.checklist .check-score.fail span{background:#ff785a2e;color:#ff9a7a}.checklist h3{margin:4px 0;font-size:12px;color:var(--ink-dim)}.checklist .check-courses{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:6px 14px;max-height:38vh;overflow:auto}.checklist h4{margin:4px 0 2px;font-size:12px}.checklist section.crashed h4:after{content:" 💥"}.checklist p{margin:1px 0;font-size:12px}.checklist p.ok span{color:#5ad1a1}.checklist p.no{color:var(--ink-dim)}.checklist p.no span{color:#ff7a6a}.mission-cue{position:fixed;top:8%;left:50%;transform:translate(-50%);z-index:6;padding:8px 18px;border-radius:10px;background:#080e14b8;border:1px solid rgba(255,255,255,.14);color:#f3f6f9;font-size:19px;font-weight:700;white-space:nowrap;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.6)}.mission-cue.cue-dive{border-color:#ffc861;color:#ffe2a3}.mission-cue.cue-fireGun,.mission-cue.cue-fireRocket,.mission-cue.cue-fireMissile{border-color:#6dff9e;color:#b6ffcd;font-size:24px;animation:cue-pulse .5s ease-in-out infinite alternate}.mission-cue.cue-pull{border-color:#ff6b5e;color:#ffb3aa;font-size:23px}@keyframes cue-pulse{to{transform:translate(-50%) scale(1.06)}}@media(max-width:640px){.mission-cue{font-size:15px;white-space:normal;width:calc(100% - 32px);text-align:center}}
