/* Academy is a side mission. Native dialogs pause the simulation and contain
   keyboard focus, so practice cannot accidentally fire a weapon or steer. */
#academy-open{padding:8px 10px;border:1px solid #aedec342;border-radius:6px;color:#b6f4cb;font-size:10px;background:#b6f4cb08;white-space:nowrap}#pilot-open{color:#cbdce7;font-size:10px;max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#command-open{border:1px solid #748fbd55;border-radius:6px;padding:8px;color:#b5c9e8;font-size:10px;white-space:nowrap}.header-actions{gap:10px}.cert-locked{position:relative;opacity:.66}.cert-locked::after{content:'◇';position:absolute;right:5px;bottom:5px;color:#eac28a;font-size:13px}.weapon-card.cert-locked::after{right:12px;top:10px}.cert-locked:hover{opacity:1}#infect-planet.cert-locked::after{top:6px;right:8px;color:#263e31}
.academy-modal{padding:28px 30px;background:radial-gradient(ellipse at 85% 10%,#19333d99,transparent 48%),#0b1420;border-color:#41627570;box-shadow:0 30px 140px #000b;width:min(1080px,96vw);max-width:1080px;max-height:94vh;overflow:auto;scrollbar-width:thin;scrollbar-color:#395368 #0b1420}.academy-modal::backdrop{background:#030810bd;backdrop-filter:blur(9px)}.academy-modal button:disabled{opacity:.38;cursor:default}.academy-modal p{font-size:12px;line-height:1.75}.academy-modal .eyebrow{font-size:9px}.academy-modal .primary{width:auto;flex:1;margin:0;font-size:12px;min-height:43px}.academy-modal .secondary{width:auto;margin:0;font-size:11px;min-height:43px}.academy-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid #7896b127;margin-bottom:22px;gap:20px}.academy-heading h2{font-size:32px;margin:8px 0;letter-spacing:-1px}.academy-heading h2 span{color:var(--mint)}.academy-heading p{margin:0;font-size:11px;color:#8b9fb4}.academy-heading button{margin-right:25px;text-align:right}.academy-heading button b{display:block;font-size:12px;font-weight:500;color:#c0e4da}.academy-heading button small{display:block;font-size:10px;color:#7e9bae;margin-top:7px}.academy-layout{display:grid;grid-template-columns:255px minmax(0,1fr);gap:30px}.rank-step{display:flex;align-items:center;text-align:left;width:100%;gap:11px;padding:15px 9px;border:1px solid transparent;border-radius:9px;margin-bottom:6px;color:#8b9aae;position:relative}.rank-step:not(:last-child)::after{content:'';height:8px;width:1px;background:#738fa833;position:absolute;left:27px;bottom:-8px}.rank-step.selected{border-color:#93b8bc55;background:linear-gradient(90deg,#8db2b512,transparent)}.rank-step .rank-emblem{border:1px solid #7a97ab33;border-radius:10px;width:38px;height:38px;display:grid;place-items:center;flex-shrink:0;color:var(--rank-color);font-size:23px}.rank-step b{font-size:13px;font-weight:500;display:block;color:#c0ceda}.rank-step small{font-size:9px;color:#768da2;display:block;line-height:1.5;margin-top:4px}.rank-step i{margin-left:auto;font-size:8px;font-style:normal;letter-spacing:.7px;color:#8b9baa}.rank-step.earned i{color:var(--mint);font-size:14px}.rank-step.selected b{color:var(--rank-color)}.academy-content{min-width:0;border-left:1px solid #7896b127;padding-left:30px;position:relative}.academy-content h3{font-size:27px;font-weight:500;letter-spacing:-.5px;margin:10px 0;color:#e0eaf4}.academy-content h4{font-size:16px;font-weight:450;color:#b9ddcd;margin:12px 0}.academy-content p{color:#9aafc0}#rank-art{width:190px;height:104px;float:right;color:var(--rank-color);margin:-8px 0 0 12px}#rank-art svg{width:100%;height:100%}#rank-description{min-height:70px}.mission-row{display:flex;gap:12px;padding:15px 0;border-top:1px solid #6b89a023}.mission-row>span{color:var(--mint);font-size:18px}.mission-row b{font-size:12px;font-weight:500;color:#c4d8e6}.mission-row small{display:block;font-size:10px;margin-top:5px;color:#718ea5}.academy-actions{display:flex;align-items:stretch;gap:9px;margin-top:20px}.academy-actions .secondary{padding:10px 17px}#rank-next-note{font-size:11px;color:#9cb6c6;margin-top:18px}.academy-footer{display:flex;gap:15px;justify-content:space-between;flex-wrap:wrap;margin-top:24px;padding-top:17px;border-top:1px solid #7896b127;font-size:10px;color:#829fb3}#academy-save{color:#afcbbc}#academy-sync{color:#e5c38c;text-decoration:underline}.academy-back{font-size:11px;color:#9cb7ca;margin:0 0 20px;padding:0}.typing-stats{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:10px;color:#9eb3c5;margin:15px 0}.typing-stats b{font-weight:500;color:#b9e4cd}.typing-stats span{padding-left:10px;border-left:1px solid #6b8ba433}#typing-text{font:18px/1.9 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.5px;color:#7992a8;background:#050c14;border:1px solid #7b9ab433;border-radius:8px;padding:17px;overflow-wrap:anywhere;white-space:pre-wrap}#typing-text .typed{color:#b7f0ce}#typing-text .next-key{color:#091a16;background:#b7f0ce;border-radius:2px;box-shadow:0 2px 0 #7ed3a6}#typing-pad{width:100%;padding:12px;background:#102335;border:1px solid #557a9d;border-radius:6px;font-size:12px;color:#cae5dd;margin:10px 0 0}#typing-pad:focus{outline:2px solid #a7e8c7;outline-offset:2px}#typing-pad.mistake{border-color:#f79e9e}#typing-feedback{font-size:10px;min-height:34px;margin:10px 0;color:#a2b8cb}#academy-keyboard{padding:12px 8px;background:#0b1723;border:1px solid #617d9333;border-radius:9px}.key-row{display:flex;gap:4px;justify-content:center;margin:4px 0}.keycap{width:33px;height:30px;border:1px solid #62738733;border-bottom-width:3px;border-radius:5px;display:grid;place-items:center;color:#46596b;font:11px ui-monospace,monospace;position:relative}.keycap.taught{color:var(--finger);border-color:color-mix(in srgb,var(--finger) 32%,transparent);background:color-mix(in srgb,var(--finger) 7%,transparent)}.keycap[data-key=" "]{width:190px;font-size:8px;letter-spacing:3px}.keycap.press-next{background:var(--finger);color:#112435;border-color:var(--finger);box-shadow:0 0 15px color-mix(in srgb,var(--finger) 22%,transparent)}.home-bump::after{content:'';height:2px;width:9px;background:currentColor;position:absolute;bottom:4px;left:calc(50% - 4px);border-radius:2px}#next-finger{font-size:12px;color:#c7e4d9;text-align:center;margin-top:12px;min-height:15px}#finger-hands{max-width:350px;margin:6px auto 0}#finger-hands svg{width:100%;display:block}#finger-hands .hand-outline{stroke:#8ca3b5;stroke-width:1.5;stroke-linejoin:round}#finger-hands .hand-finger{transition:filter .12s}#finger-hands .finger-tint{fill:var(--digit-color);fill-opacity:.23;transition:fill-opacity .12s}#finger-hands .finger-nail{fill:#cfdae0;fill-opacity:.22;stroke:#d5e1e8;stroke-opacity:.25;stroke-width:.7}#finger-hands .finger-crease{fill:none;stroke:#213a4c;stroke-width:1.5;stroke-linecap:round}#finger-hands .active-finger{filter:drop-shadow(0 0 5px var(--digit-color))}#finger-hands .active-finger .finger-tint{fill-opacity:.85}#finger-hands .active-finger .finger-nail{fill-opacity:.55}#finger-hands .hand-detail{fill:none;stroke:#a5b8c7;stroke-opacity:.25;stroke-width:1.2;stroke-linecap:round}#finger-hands .hand-cuff{fill:#152c3c;stroke:#69879c;stroke-width:1.5}#finger-hands .hand-home-label{font:600 17px ui-monospace,monospace;text-anchor:middle}#finger-hands .hand-side-label{fill:#8ba5b8;font:11px system-ui;letter-spacing:1.8px;text-anchor:middle}#finger-hands .space-guide{fill:none;stroke:#7c94a7;stroke-width:1;stroke-dasharray:3 4}#finger-hands .thumb-key{fill:#142838;stroke:#526d82}#finger-hands .space-label{fill:#bfd1df;font:11px ui-monospace,monospace;letter-spacing:1px;text-anchor:middle}.academy-content .home-note{font-size:9px;text-align:center;color:#829bb1;margin:3px 0 8px;line-height:1.8}#academy-result{border:1px solid #96dcbb66;background:#99d5b309;padding:18px;border-radius:8px;margin-top:15px}#academy-result h3{font-size:21px}#result-speed{font-size:12px;color:#a7e6c4}#academy-result p{font-size:11px}.profile-modal,.command-modal{max-width:650px}.profile-modal h2,.command-modal h2{margin-bottom:12px}.academy-muted{color:#7e99ae!important;font-size:11px!important}#pilot-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0;max-height:300px;overflow:auto}.pilot-card{display:flex;align-items:center;gap:12px;text-align:left;padding:13px;border:1px solid #7392ac44;background:#7392ac08;border-radius:8px;font-size:13px}.pilot-card:hover{border-color:#a2dfbd88}.pilot-avatar{width:40px;height:40px;display:grid;place-items:center;background:#8fcab715;border:1px solid #8fcab744;color:#bdeace;border-radius:50%;font-size:12px}.pilot-card small{display:block;font-size:10px;color:#7996aa;margin-top:6px}#profile-message{font-size:11px;color:#a3bdcc}#pilot-create label,.command-modal label{font-size:9px;letter-spacing:1.5px;color:#8babc0;display:block;margin:22px 0 10px}#pilot-create>div{display:flex;gap:10px}#pilot-name,#command-input{width:100%;min-width:0;background:#07121e;border:1px solid #597890;border-radius:6px;padding:13px;color:#d9e9f4;font-size:13px}#pilot-create .primary{white-space:nowrap;flex:0 0 120px}.profile-actions{display:flex;gap:10px;margin-top:18px}.profile-actions button{flex:1}#command-input{font:21px ui-monospace,monospace;letter-spacing:2px}#command-finger{margin:10px 0;color:#b9e6cf;font-size:11px}#command-list{max-height:340px;overflow:auto}.command-row{display:grid;grid-template-columns:80px 1fr auto;gap:12px;padding:13px 0;border-bottom:1px solid #6b89a022;align-items:center}.command-row code{font-size:13px;color:#a3b7c9}.command-row code b{color:#bcf5d4}.command-row span{font-size:10px;color:#8da6bc}.command-row small{font-size:8px;color:#d0c1a4}.cinematic #academy-open,.cinematic #pilot-open,.cinematic #command-open{visibility:hidden}
@media(max-width:1450px){.sector{display:none}.header-actions{gap:8px}.brand{font-size:10px;letter-spacing:1.8px}.brand small{font-size:8px}#pilot-open{max-width:125px}}@media(max-width:850px){#pilot-open{max-width:90px;font-size:9px}#academy-open{font-size:9px}#command-open{font-size:0}#command-open::after{content:'/';font-size:13px}.academy-layout{grid-template-columns:175px 1fr;gap:17px}.academy-content{padding-left:17px}.rank-step{padding:11px 5px;gap:8px}.rank-step .rank-emblem{width:29px;height:31px;font-size:19px}.rank-step small{font-size:8px}.rank-step b{font-size:11px}.rank-step i{display:none}.academy-modal{padding:25px 20px}.keycap{width:27px;height:27px}.key-row{gap:3px}#rank-art{width:120px}header{padding:0 15px}.brand small{display:none}}@media(max-width:600px){.academy-layout{display:block}#rank-ladder{display:flex;overflow-x:auto;gap:6px;padding-bottom:10px;margin-bottom:14px}.rank-step{flex:0 0 108px;display:block;padding:10px}.rank-step .rank-emblem{margin-bottom:8px}.rank-step small{display:none}.rank-step:not(:last-child)::after{display:none}.academy-content{border:0;padding:0}.academy-heading{align-items:flex-start;gap:8px}.academy-heading h2{font-size:25px}.academy-heading button b{font-size:10px}.academy-heading p{font-size:10px}.academy-heading button{max-width:115px;margin-right:17px}.academy-footer{font-size:9px}#pilot-list{grid-template-columns:1fr}.brand{max-width:75px;font-size:8px;letter-spacing:.7px}.brand-icon{display:none}.header-actions{gap:3px}#cinema{font-size:7px;max-width:50px}#enemy-toggle{max-width:65px;font-size:7px}#pilot-open{max-width:68px;font-size:8px}#academy-open{font-size:8px;padding:7px 5px}#audio{font-size:8px}.header-actions button:last-child{width:23px;height:23px}.typing-stats{gap:7px}.academy-actions{flex-wrap:wrap}#rank-art{width:100px}.academy-content h3{font-size:23px}.command-row{grid-template-columns:62px 1fr auto;gap:8px}.keycap{width:25px;height:27px}}

.training-active .academy-heading{padding-bottom:12px;margin-bottom:15px}.training-active .academy-heading h2{font-size:24px;margin:5px 0}.training-active .academy-heading p{display:none}.training-active .academy-back{margin-bottom:12px}.training-active .academy-content h3{font-size:23px}.training-active #typing-tip{font-size:11px;margin:9px 0}.typing-guidance{display:grid;grid-template-columns:minmax(250px,1.3fr) minmax(180px,1fr);grid-template-areas:"keys label" "keys hands" "note note";gap:0 14px;align-items:center}.typing-guidance #academy-keyboard{grid-area:keys;padding:8px 5px}.typing-guidance #finger-hands{grid-area:hands;width:100%;margin:0}.typing-guidance #next-finger{grid-area:label;margin:0;font-size:11px}.typing-guidance .home-note{grid-area:note;margin-top:8px}.typing-guidance .keycap{width:27px;height:27px}.typing-guidance .key-row{gap:3px}.training-active .academy-footer{margin-top:15px}.training-active .rank-step{padding-top:12px;padding-bottom:12px}@media(max-width:850px){.typing-guidance{display:block}.typing-guidance #finger-hands{max-width:260px;margin:auto}.typing-guidance #next-finger{margin-top:10px}}
.typing-guidance .keycap[data-key=" "]{width:150px;flex-shrink:0}
/* Expedition service dress: original insignia, collar pips and merit ribbons. */
#academy-dialog{width:min(1180px,97vw);max-width:1180px;background:radial-gradient(ellipse at 85% 12%,#22344599,transparent 50%),#0a111e}.academy-heading{padding-bottom:16px;margin-bottom:18px}.academy-heading h2{font-size:29px}.academy-layout{grid-template-columns:224px minmax(0,1fr);gap:24px}.academy-content{padding-left:24px}.rank-step{padding:9px 8px;gap:10px;margin-bottom:4px}.rank-step .rank-emblem{border:0;border-radius:0;width:39px;height:43px;background:none}.rank-insignia{display:block;width:100%;height:100%;filter:drop-shadow(0 3px 5px #0008)}.rank-step b{font-size:12px}.rank-step small{font-size:8px}.rank-step i{font-size:7px}.class-track{display:flex;gap:5px;margin-top:5px}.class-track span{font:8px ui-monospace,monospace;color:#536276;border:1px solid #53627655;border-radius:3px;padding:1px 7px}.class-track span.earned{color:var(--rank-color);background:color-mix(in srgb,var(--rank-color) 12%,transparent);border-color:color-mix(in srgb,var(--rank-color) 40%,transparent)}#academy-overview{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:22px}.rank-briefing{min-width:0}#rank-art{width:63px;height:67px;margin:0 0 6px 8px;float:right}.academy-content h3{font-size:26px}.academy-content h4{font-size:14px;line-height:1.5}#rank-description{font-size:11px;min-height:62px}.mission-row{padding:11px 0;gap:11px}.mission-row b{font-size:12px}.mission-row small{font-size:9px;line-height:1.6}.class-medal{display:grid;place-items:center;flex:0 0 28px;height:32px;border:1px solid #72849a44;border-radius:5px;color:#778ca2!important;font:13px ui-monospace,monospace}.class-medal.earned{color:#eddaab!important;background:#c8ac5718;border-color:#dec79777;box-shadow:0 0 14px #dec7970a}.checkout-pips{display:flex;gap:6px;margin-top:6px}.checkout-pips span{font-size:8px;letter-spacing:1px;padding:3px 6px;border:1px solid #8293a32b;border-radius:3px;color:#8293a3}.checkout-pips span.earned{color:#b6e6cb;border-color:#8ccb9955;background:#8ccb9910}.service-record{border:1px solid #7b92aa33;border-radius:12px;background:linear-gradient(150deg,#4f6a8120,#02081366);align-self:start;text-align:center;overflow:hidden;padding:16px 9px 12px;position:relative}.service-record::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 4px,#76859a05 5px);pointer-events:none}.service-kicker{font-size:8px;letter-spacing:1.4px;color:#95adbf}.service-uniform{width:100%;height:auto;margin:12px auto 0;filter:drop-shadow(0 8px 9px #0007)}.service-name{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:#c5d6e3;margin:4px 0}.academy-content .service-grade{font-size:16px;color:#ead7a7;margin:8px 0 13px;line-height:1.5}.service-ribbons{display:flex;justify-content:center;gap:5px}.service-ribbon{width:22px;height:22px;border:1px solid #71849533;border-radius:4px;font-size:12px;display:grid;place-items:center;opacity:.23}.service-ribbon.earned{color:var(--ribbon);border-color:var(--ribbon);opacity:1;background:#d1deea0b}.academy-content .service-record p{font-size:9px;color:#718ba2;line-height:1.7;margin:12px 0 0}.academy-actions{gap:7px;margin-top:15px}.academy-actions .primary{font-size:11px}.academy-actions .secondary{padding:9px;font-size:10px}#rank-next-note{font-size:10px;line-height:1.7}.academy-footer{margin-top:18px;font-size:9px}#pilot-open{max-width:175px}.academy-heading button b{font-size:11px}.training-active .rank-step{padding-top:9px;padding-bottom:9px}.training-active .academy-content h3{font-size:23px}.training-active #typing-text{max-height:126px;overflow:hidden}.training-active .typing-guidance{grid-template-columns:minmax(265px,1.2fr) minmax(175px,1fr)}.training-active #typing-pad{height:38px}.training-active #typing-feedback{min-height:24px}.training-active .academy-footer{margin-top:12px}
#new-pilot-details{margin-top:18px;border-top:1px solid #61748933;padding-top:14px}#new-pilot-details summary{cursor:pointer;font-size:12px;color:#b8dacb}#pilot-create>div.password-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}#pilot-create input,.pilot-unlock input{width:100%;min-width:0;padding:12px;border:1px solid #567187;background:#07121e;color:#dfecf7;border-radius:6px;font-size:13px;letter-spacing:1px}#pilot-create label,.pilot-unlock label{display:block;font-size:9px;letter-spacing:1.2px;color:#a5b8c7;margin:15px 0 8px}#pilot-create label input,.pilot-unlock label input{display:block;margin-top:8px}#pilot-create .primary{width:100%;margin-top:15px}.pilot-unlock{padding:18px;background:#8fb4c408;border:1px solid #8fb4c455;border-radius:9px;margin-top:14px}.pilot-unlock h3{font-size:19px;margin:0 0 8px}.pilot-unlock p{font-size:11px;color:#a4bacb}.pilot-unlock input:focus{outline:2px solid #a2ddbe;outline-offset:2px}
@media(max-width:1050px){.academy-layout{grid-template-columns:185px minmax(0,1fr);gap:17px}.academy-content{padding-left:17px}#academy-overview{grid-template-columns:minmax(0,1fr) 155px;gap:14px}.service-record{padding:12px 7px}.service-kicker{font-size:7px}.academy-content .service-grade{font-size:13px}.service-ribbon{width:17px;height:19px;font-size:10px}.service-ribbons{gap:3px}.rank-step{padding:9px 4px}.rank-step i{display:none}#pilot-open{max-width:125px}}
@media(max-width:850px){#academy-overview{display:block}.service-record{margin-top:20px;display:grid;grid-template-columns:135px 1fr;align-items:center;padding:12px 20px}.service-uniform{grid-row:1/6;grid-column:1;width:120px;margin:0}.service-record>*:not(svg){grid-column:2}.service-kicker{font-size:8px}.service-ribbon{width:22px}.training-active .typing-guidance{display:block}.academy-layout{grid-template-columns:165px minmax(0,1fr)}.class-track span{font-size:7px;padding:1px 5px}.rank-step .rank-emblem{width:30px}.rank-step{gap:7px}.rank-step small{font-size:7px}.rank-step b{font-size:11px}}
@media(max-width:600px){.academy-layout{display:block}#rank-ladder{gap:6px}.rank-step{flex:0 0 94px;padding:8px}.rank-step .rank-emblem{height:31px;width:31px}.rank-step small{display:none}.class-track{margin-top:7px}.class-track span{font-size:7px;padding:1px 5px}.academy-content{padding:0}.service-record{margin-top:18px}#pilot-open{max-width:66px}.academy-heading button{max-width:142px}.academy-heading button b{font-size:9px}.academy-modal{padding:22px 16px}.password-pair{grid-template-columns:1fr!important}}
#promotion-badge{width:70px;height:70px;float:right;margin:0 0 8px 12px}#promotion-badge:empty{display:none}#academy-result.promoted{border-color:#d8c08a;background:linear-gradient(115deg,#d5ba7620,#a9dcc309);box-shadow:0 0 35px #d5ba7614}.promoted #promotion-badge{animation:merit-arrives .7s ease-out}@keyframes merit-arrives{from{transform:scale(.65) rotate(-10deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@media(prefers-reduced-motion:reduce){.promoted #promotion-badge{animation:none}}
.service-uniform .rank-insignia{width:34px;height:34px}
.checkout-complete .typing-guidance,.checkout-complete #typing-feedback{display:none}.checkout-complete #academy-result{margin-top:12px}.checkout-complete #academy-retry{margin-top:13px}

.roster-insignia{border-radius:10px;flex-shrink:0}.roster-insignia svg{width:34px;height:34px}.pilot-card .roster-rank{color:#c2dfd1;font-size:11px;line-height:1.5}.pilot-card>span:last-child{min-width:0;overflow-wrap:anywhere}
