@charset "UTF-8";body[data-entry=learning]{background:#132b2b}body[data-entry=learning]:not([data-view]) .shell{visibility:hidden}body[data-view=learning]{background:#132b2b;color:#eee9d9}body[data-view=learning] .masthead{position:sticky;top:0;z-index:20;background:#142d2dee;border-bottom:1px solid #9bb59c33;backdrop-filter:blur(14px)}body[data-view=learning] .page-foot{position:static;max-width:1240px;margin:0 auto;padding:28px 40px;gap:22px;border-top:1px solid #9bb59c22;font-size:12px}.learning-page{min-height:calc(100dvh - 164px);background:radial-gradient(ellipse at 88% 5%,#668c6820,transparent 42%);outline:none}.learning-content{max-width:1240px;margin:0 auto;padding:30px 40px 72px}.page-trail{display:flex;align-items:center;flex-wrap:wrap;gap:12px;color:#a7bba9;font-size:13px;margin:0 0 44px}.page-trail a{display:inline-flex;align-items:center;padding:0;background:none;color:#d4ddc8;min-height:36px;font-size:13px;text-decoration:none}.page-trail a:hover{color:var(--mint)}.learning-page h1{font-size:clamp(32px,4vw,52px);font-weight:500;line-height:1.3;letter-spacing:-1px;margin:14px 0 25px}.learning-page h2{font-size:18px;font-weight:500;margin:0 0 20px;color:#e8e7d5}.learning-page p{line-height:1.85}.learning-page .eyebrow{color:#b5c8b2;font-size:12px;letter-spacing:.8px}.learning-page .text-button{color:#c8d9bc;text-decoration:underline;text-underline-offset:5px}.learning-page .dialog-actions .primary{flex:none;min-width:180px;padding:15px 24px}.learning-page .dialog-actions{gap:24px;margin:26px 0}.learning-page .scope-note{max-width:630px;color:#b4c6b4;line-height:1.8}.lesson-page-body{max-width:780px;margin:0 auto}.learning-page[data-stage=independent] .lesson-page-body{max-width:none}.challenge-layout{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.4fr);gap:70px;margin-top:42px}.challenge-brief{border-top:1px solid #9bb59c44;padding-top:25px}.challenge-brief .dialog-note{font-size:18px;line-height:1.9}.challenge-layout .editor-label{margin-top:0;font-size:14px;color:#becdb6}.challenge-layout .practice-editor{min-height:310px;padding:24px;font-size:19px;line-height:1.9;background:#0d2224;border-color:#789b7966;border-radius:8px}.challenge-layout .dialog-actions{justify-content:space-between}.result-hero{display:flex;align-items:center;justify-content:space-between;gap:50px;padding:0 0 28px}.result-hero>div:first-child{max-width:720px}.result-hero .eyebrow{display:block;font-family:var(--sans);line-height:1.8}.result-hero h1{margin:16px 0}.result-hero p{font-size:19px;color:#c4d2bc;margin:0}.score-orbit{flex:none;width:160px;height:160px;padding:3px;border-radius:50%;background:conic-gradient(var(--mint) var(--score),#64836c44 0);position:relative}.score-orbit:before{content:"";position:absolute;inset:-12px;border:1px solid #a7be9a22;border-radius:50%}.score-orbit>div{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#132b2b;border-radius:50%}.score-orbit strong{font:56px/1.2 var(--mono);font-weight:400;letter-spacing:-2px}.score-orbit span{font-size:12px;color:#bdceb7;margin-top:7px}.result-toolbar{display:flex;align-items:center;justify-content:space-between;gap:40px;border-bottom:1px solid #9bb59c44;padding-bottom:30px;margin-bottom:34px}.result-toolbar .dialog-actions{flex:none;margin:0}.result-toolbar .scope-note{margin:0;max-width:400px;font-size:12px}.result-breakdown{margin-bottom:38px}.result-breakdown .assessment-checks{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin:0}.result-breakdown .assessment-check{background:transparent;border:0;border-top:2px solid #91ac8c;padding:18px 0 0;border-radius:0}.result-breakdown .assessment-check[data-status=pass]{border-color:var(--mint)}.result-breakdown .assessment-check[data-status=fail]{border-color:#edbc88}.result-breakdown .assessment-check>div{font-size:16px;gap:10px}.result-breakdown .assessment-check bdi{color:#dfebd4;font-size:16px}.result-breakdown .assessment-check>small{margin-top:8px;font-size:13px}.result-breakdown .concept-checks{font-size:13px}.result-work{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;border-top:1px solid #9bb59c44;padding-top:30px}.result-work>section{min-width:0}.result-work .exercise-code{font-size:18px;min-height:92px;max-height:none;margin:0;padding:20px 22px;border-inline-start:2px solid #8fae88;background:#0d2224;overflow-wrap:anywhere}.result-work .assessment-outputs{gap:20px}.result-work .assessment-outputs small{display:block;margin-bottom:10px}.result-work .assessment-outputs pre{margin-top:0}.empty-report{max-width:700px;padding:40px 0 90px}.learning-page[data-stage=complete] .lesson-page-body{text-align:center;padding:40px 0}.learning-page[data-stage=complete] .dialog-actions{justify-content:center}.learning-page[data-stage=complete] .scope-note{margin-inline:auto}.learning-page[data-stage=complete] .score-summary{justify-content:space-evenly}.learning-page[data-stage=complete] .signal{font-size:60px;margin:20px 0}@media(max-width:850px){.learning-content{padding:24px 30px 50px}.page-trail{margin-bottom:32px}.challenge-layout{gap:30px;grid-template-columns:1fr}.challenge-layout .practice-editor{min-height:260px}.result-toolbar{display:block}.result-toolbar .scope-note{margin-top:20px;max-width:none}.result-work{gap:28px}.result-breakdown .assessment-checks{gap:22px}}@media(max-width:560px){body[data-view=learning] .masthead{height:76px;padding-inline:18px}body[data-view=learning] .page-foot{padding:22px 20px;display:flex;flex-direction:column}.learning-content{padding:18px 22px 42px}.page-trail{font-size:12px;gap:8px;margin-bottom:26px}.learning-page h1{font-size:32px;letter-spacing:-.5px}.learning-page h2{font-size:17px}.result-hero{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:12px 22px;padding-bottom:26px}.result-hero>div:first-child{display:contents}.result-hero .eyebrow{grid-column:1/-1;font-size:12px;letter-spacing:0}.result-hero h1{grid-column:1/-1;margin:0}.result-hero p{grid-column:1;grid-row:3;align-self:center;font-size:15px}.result-hero .score-orbit{grid-column:2;grid-row:3}.score-orbit{width:108px;height:108px;padding:2px;margin-top:10px}.score-orbit:before{inset:-7px}.score-orbit strong{font-size:39px}.score-orbit span{font-size:10px;max-width:90px;text-align:center;line-height:1.6}.result-toolbar{padding-bottom:22px;margin-bottom:26px}.result-toolbar .dialog-actions{gap:8px;flex-direction:column;align-items:stretch}.learning-page .primary{min-width:156px}.result-toolbar .scope-note{font-size:12px}.result-breakdown .assessment-checks{grid-template-columns:1fr;gap:19px}.result-breakdown .assessment-check{padding-top:14px}.result-breakdown .assessment-check>div{font-size:16px}.result-work{grid-template-columns:1fr;gap:28px;padding-top:26px}.result-work .exercise-code{font-size:16px;padding:17px;min-height:72px}.result-work .assessment-outputs{grid-template-columns:1fr 1fr;gap:14px}.result-work .assessment-outputs small{font-size:12px}.challenge-layout{margin-top:28px}.challenge-brief .dialog-note{font-size:16px}.challenge-layout .practice-editor{font-size:17px;padding:18px}}:root{--paper:#f4f1e9;--ink:#183033;--night:#14282a;--cream:#f4f0df;--muted:#acc0ba;--mint:#bce4b5;--orange:#e9a772;--line:#e1f2df26;--mono:"Cascadia Code","Consolas",monospace;--sans:"Segoe UI","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans)}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #c27942;outline-offset:4px}[hidden]{display:none!important}a{color:inherit;text-decoration:none}.shell{max-width:1640px;margin:auto;padding:0 40px}.masthead{height:100px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;gap:13px;align-items:center}.brand svg{width:38px;height:38px;fill:var(--ink)}.brand svg circle{fill:var(--paper)}.brand>span{font-size:22px;line-height:1.22;font-weight:750;letter-spacing:2px}.brand small{display:block;font:9px/1.5 var(--mono);letter-spacing:2px;margin-top:5px}.edition{font-size:13px;color:#677c78;letter-spacing:.7px}.masthead nav{display:flex;align-items:center;gap:12px}.nav-button{background:transparent;padding:9px 14px;border:1px solid #d4ddd4;border-radius:7px;color:var(--ink);font-size:14px}.nav-button:hover{background:#e5e9df}.nav-button b{font:11px var(--mono);margin-left:9px}.universe{position:relative;isolation:isolate;overflow:hidden;border-radius:18px;background:var(--night);min-height:650px;height:calc(100dvh - 154px);max-height:1080px;color:var(--cream);box-shadow:0 22px 48px #17352e17}#space{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.scene-grain{position:absolute;inset:0;z-index:-1;opacity:.12;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.2' filter='url(%23g)'/%3E%3C/svg%3E")}.coordinate{position:absolute;top:30px;right:35px;font:10px var(--mono);letter-spacing:2px;color:#c5d8c36c}.coordinate span{color:var(--orange);margin:0 8px}.welcome{position:absolute;top:15%;left:6.5%;width:62%;z-index:1}.eyebrow{font:11px/1.6 var(--mono);letter-spacing:2px;color:var(--mint)}.eyebrow i,.welcome-foot i,.input-label i{display:inline-block;width:6px;height:6px;background:var(--mint);border-radius:50%;margin:0 10px 1px 0}.welcome h1{font-size:clamp(54px,5.15vw,88px);line-height:1.2;letter-spacing:-3px;font-weight:650;margin:25px 0 26px}.welcome h1>span{color:var(--mint)}.welcome-copy{font-size:17px;color:#c5d1c4;line-height:1.9;letter-spacing:.3px}.welcome-actions{display:flex;align-items:center;gap:25px;margin:31px 0}.primary{background:var(--mint);color:#1b382d;border:1px solid transparent;padding:14px 23px;border-radius:7px;font-size:15px;font-weight:700;transition:background .18s,transform .18s}.primary>span{margin-left:26px;font-size:20px}.primary:hover{background:#d1efc6;transform:translateY(-2px)}.primary:active{transform:translateY(1px)}.text-button{color:#dbe1cd;background:none;padding:10px 0;font-size:14px}.text-button:hover{color:var(--mint)}.first-command{display:flex;align-items:center;gap:18px;margin-top:40px;color:#b7c5b6}.first-command>span{font-size:11px;letter-spacing:1px}.first-command code{font:19px var(--mono);color:#ede3ce}.first-command svg{width:45px;stroke:#8b9f8f;fill:none;stroke-width:1}.first-command strong{font:25px var(--mono);color:var(--orange)}.welcome-foot{position:absolute;bottom:30px;left:6.5%;right:6.5%;border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;gap:22px;color:#a3b7aa;font-size:11px;letter-spacing:.4px}.welcome-foot b{font-weight:400;margin:0 12px;color:#6d8c7c}.flight-number{font:9px var(--mono);letter-spacing:1.5px;align-self:center}.page-foot{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#7d8a81;padding:15px 2px}.page-foot code{font-size:10px;color:#556e63}.flight-hud{display:flex;align-items:flex-start;justify-content:space-between;padding:36px 44px;gap:24px;position:relative;z-index:1}.mission h2{font-size:27px;letter-spacing:.5px;margin:8px 0 7px;font-weight:600}.mission p{font-size:13px;color:#b6c6b7;margin:0;max-width:550px}.flight-stats{display:flex;gap:28px;text-align:right}.flight-stats small{font-size:10px;color:#9caf9e;display:block;letter-spacing:1px}.flight-stats strong{font:24px/1.5 var(--mono);letter-spacing:2px;color:var(--orange)}#shields{font-size:18px}.target{position:absolute;left:50%;top:30%;transform:translate(-50%,-50%);min-width:180px;text-align:center;filter:drop-shadow(0 12px 24px #001e1d44);z-index:3}.target-label{font:9px/1.5 var(--mono);letter-spacing:1px;display:flex;justify-content:space-between;padding:0 12px 8px;gap:20px;color:#c5d8bb}.target-word{padding:11px 26px;background:#f2e9d5;color:#203e35;border:1px solid #f9f4e6;border-radius:9px;font:clamp(22px,3vw,38px)/1.4 var(--mono);white-space:pre;box-shadow:0 0 0 5px #f2e9d509}.target-word .hit{color:#52835d}.target-word .active-letter{text-decoration:underline;text-decoration-color:#c27545;text-underline-offset:6px}.target-tail{margin:0 auto;width:1px;height:36px;background:linear-gradient(#decb9866,transparent)}.target.error{filter:drop-shadow(0 0 17px #e8a26488)}.combo-pop{position:absolute;left:50%;top:55%;transform:translate(-50%);font:15px var(--mono);color:var(--mint);pointer-events:none;opacity:0;transition:opacity .15s}.combo-pop.show{opacity:1}.cockpit{position:absolute;bottom:30px;left:5%;right:5%;z-index:4;background:#102324f0;border:1px solid #446155;border-radius:12px;box-shadow:0 16px 45px #06171644;overflow:hidden}.code-rail{min-height:41px;display:flex;gap:18px;align-items:center;padding:10px 20px;border-bottom:1px solid var(--line)}.rail-label{font-size:9px;letter-spacing:1px;color:#8ea997;flex:none}.code-rail pre{font:12px/1.6 var(--mono);white-space:pre-wrap;max-height:52px;overflow:auto;color:#bfd6b7;margin:0;flex:1}.code-rail>span:last-child{font:10px var(--mono);color:#8ea997;flex:none}.typing-row{display:flex;align-items:center;gap:20px;padding:12px 20px}.input-label{font-size:10px;color:#a1baa7;white-space:nowrap}#typing-field{resize:none;flex:1;min-width:60px;height:51px;border:0;background:none;color:#f2ead6;padding:10px 0;font:23px/1.35 var(--mono);white-space:pre;overflow:auto;caret-color:var(--mint)}#typing-field::placeholder{color:#a5b8a18c;font:14px var(--sans)}#typing-field.wrong{color:#f6b77f}.next-key{display:flex;align-items:center;gap:12px;flex:none}.next-key small{font-size:9px;color:#8ea997}.next-key kbd{font:18px var(--mono);border:1px solid #73917c;border-bottom-width:3px;border-radius:5px;min-width:35px;max-width:78px;padding:5px 8px;text-align:center;color:var(--mint)}.cockpit-foot{padding:0 20px 10px;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:10px;color:#8fa694}.cockpit-foot p{margin:0}.cockpit-foot>span{font-family:var(--mono);white-space:nowrap;color:#b1ce9c}dialog{color:var(--cream);background:#193033;border:1px solid #617865;border-radius:17px;padding:32px;width:min(540px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 30px 100px #04171588}dialog::backdrop{background:#081919bc;backdrop-filter:blur(7px)}dialog h2{font-size:29px;line-height:1.4;margin:11px 0 13px;font-weight:600;letter-spacing:-.5px}.dialog-note{font-size:14px;line-height:1.9;color:#b9c9b8;margin:12px 0 22px}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.icon-button{color:#c7d7bd;background:#ffffff09;border-radius:50%;font-size:25px;line-height:32px;width:34px;height:34px;padding:0}.icon-button:hover{background:#ffffff18}.dialog-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:24px}.dialog-actions .primary{flex:1}.choice-list{display:grid;gap:10px;margin-top:22px}.choice{display:flex;gap:18px;align-items:center;padding:13px 17px;text-align:left;color:#eceddb;background:#ffffff06;border:1px solid #63806b80;border-radius:8px;transition:background .15s,border-color .15s}.choice:hover{background:#bce4b51a;border-color:var(--mint)}.choice b{font:11px var(--mono);color:#8ea997}.choice.retry{border-color:var(--orange)}.feedback{min-height:25px;font-size:13px;color:var(--orange);line-height:1.7;margin:15px 0 0}.signal{margin:20px 0;color:var(--mint);font:clamp(40px,7vw,64px)/1.5 var(--mono);white-space:pre-wrap;word-break:break-word}.step-dots{display:flex;gap:7px;margin:14px 0 18px}.step-dots span{height:3px;width:31px;background:#607765}.step-dots .on{background:var(--mint)}.exercise-code{padding:18px;background:#102426;border-left:2px solid var(--mint);border-radius:5px;font:16px/1.8 var(--mono);white-space:pre-wrap;overflow:auto;max-height:240px;color:#d9e3cd;margin:20px 0}.exercise-code input{width:82px;font:18px/1.5 var(--mono);color:#14282a;background:var(--mint);border:0;border-radius:3px;padding:2px 6px;text-align:center}.hint-button{padding:0;background:none;border-bottom:1px solid #829d80;color:#b8ceb0;font-size:12px}.medal{font-size:31px;letter-spacing:7px;color:var(--orange);margin:8px 0 16px}.score-summary{display:flex;justify-content:space-between;gap:14px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0}.score-summary small{display:block;color:#a8c0ac;font-size:10px}.score-summary strong{font:21px var(--mono);color:var(--cream)}.mode-select{display:flex;justify-content:space-between;align-items:center;gap:20px;color:#b7cbb6;margin:23px 0;font-size:13px}.mode-select select{color:var(--cream);background:#102426;border:1px solid #526e5d;border-radius:6px;padding:8px}.route-list{display:grid;gap:8px}.route-item{display:flex;align-items:center;gap:15px;padding:13px 16px;background:#ffffff05;border:1px solid #72956d40;color:#d4dfc7;border-radius:7px;text-align:left}.route-item>strong{font:19px var(--mono);color:var(--orange);width:26px}.route-item>span{flex:1;font-size:14px}.route-item small{font:10px var(--mono);color:#9ab692}.route-item:not(:disabled):hover{background:#bce4b514;border-color:#a5cd9f}.route-item.current{border-color:#bad5a3}.route-item:disabled{opacity:.38}.toast{position:fixed;z-index:20;bottom:24px;left:50%;transform:translate(-50%);background:#f2e9d5;color:var(--ink);padding:11px 20px;border-radius:8px;max-width:90%;font-size:13px;box-shadow:0 8px 35px #0a242b33}.loading-mark{width:45px;height:45px;border:1px solid #a6cf9a44;border-top:2px solid var(--mint);border-radius:50%;margin:25px 0;animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:1500px){.welcome{top:18%}.welcome h1{font-size:90px}.welcome-copy{font-size:19px}.welcome-actions{margin-top:38px}.primary{padding:17px 27px}.first-command{margin-top:50px}.universe{min-height:760px}.flight-hud{padding:45px 60px}.mission h2{font-size:32px}.mission p{font-size:15px}.cockpit{bottom:40px}}@media(max-width:900px){.shell{padding:0 22px}.masthead{height:82px}.edition{display:none}.universe{height:calc(100dvh - 132px);min-height:620px}.welcome{left:7%;top:17%;width:80%}.welcome h1{font-size:63px}.welcome-copy{font-size:16px}.flight-number{display:none}.welcome-foot{font-size:10px;gap:16px}.welcome-foot b{margin:0 6px}.flight-hud{padding:26px 28px}.mission h2{font-size:24px}.mission p{font-size:12px;max-width:360px}.flight-stats{gap:16px}.flight-stats strong{font-size:20px}.coordinate{top:20px;right:25px;font-size:8px}.input-label{display:none}.cockpit{bottom:22px;left:4%;right:4%}.next-key small{display:none}.target-word{font-size:29px}.target{min-width:155px}}@media(max-width:560px){.shell{padding:0 12px}.masthead{height:75px;gap:10px}.brand{gap:8px}.brand svg{width:28px;height:28px}.brand>span{font-size:18px;letter-spacing:1px}.brand small{font-size:7px;letter-spacing:1px}.masthead nav{gap:6px}.nav-button{font-size:12px;padding:7px 9px}.nav-button b{font-size:9px;margin-left:5px}.pause-word{display:none}.universe{height:calc(100dvh - 120px);min-height:610px;border-radius:12px}.welcome{top:11%;left:8%;width:85%}.eyebrow{font-size:9px;letter-spacing:1px}.welcome h1{font-size:48px;letter-spacing:-2px;margin:25px 0}.welcome-copy{font-size:14px;line-height:1.9}.welcome-actions{margin:28px 0;gap:20px}.primary{padding:13px 18px;font-size:14px}.primary>span{margin-left:18px}.first-command{gap:12px;margin-top:36px}.first-command>span{font-size:9px}.first-command code{font-size:16px}.first-command svg{width:29px}.welcome-foot{left:8%;right:8%;bottom:24px;display:block}.welcome-foot>span{display:block;margin:5px 0}.welcome-foot>span.flight-number{display:none}.coordinate{font-size:7px;letter-spacing:1px;top:15px;right:18px}.page-foot{font-size:8px;padding-top:12px;gap:5px}.page-foot span:first-child{display:none}.page-foot span:last-child{margin-left:auto}.flight-hud{padding:27px 22px}.mission h2{font-size:21px;max-width:230px;line-height:1.4}.mission p{font-size:11px;max-width:235px}.flight-stats{gap:10px}.flight-stats small{font-size:8px}.flight-stats strong{font-size:17px}.target-word{font-size:20px;padding:10px 18px}.target{min-width:135px;max-width:94%}.target-label{font-size:8px}.cockpit{bottom:17px;left:4%;right:4%}.code-rail{padding:9px 12px;gap:10px}.rail-label{font-size:8px}.code-rail pre{font-size:10px}.typing-row{padding:10px 12px;gap:10px}#typing-field{font-size:20px;height:48px}#typing-field::placeholder{font-size:12px}.next-key kbd{font-size:14px;min-width:28px}.cockpit-foot{padding:0 12px 10px;gap:10px;font-size:9px}.cockpit-foot>span{font-size:8px}dialog{padding:24px;border-radius:12px}dialog h2{font-size:24px}.dialog-note{font-size:13px}.choice{padding:12px;font-size:14px}.exercise-code{font-size:13px;padding:15px 12px}.exercise-code input{width:62px;font-size:16px}.score-summary strong{font-size:18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.code-coach{position:absolute;z-index:2;top:145px;left:44px;width:min(660px,calc(100% - 88px));padding:15px 19px;background:#10282bf2;border-left:2px solid var(--mint);border-radius:0 8px 8px 0;box-shadow:0 8px 24px #071d1c22}.code-coach>div{display:flex;align-items:baseline;gap:15px}.coach-label{font-size:10px;color:#a2b8ac;flex:none}.code-coach strong{font-size:15px;font-weight:600;color:#f1ecd9}.code-coach p{font-size:13px;line-height:1.8;color:#c4d3c3;margin:7px 0}.meaning-connection{display:block;color:var(--mint);font-size:12px;letter-spacing:.3px}@media(min-width:1500px){.code-coach{top:167px;left:60px}}@media(max-width:900px){.code-coach{top:135px;left:28px;width:calc(100% - 56px);padding:12px 16px}.code-coach p{font-size:12px}}@media(max-width:560px){.universe[data-phase=typing],.universe[data-phase=collecting]{min-height:760px}.code-coach{top:145px;left:20px;width:calc(100% - 40px);padding:11px 13px}.code-coach>div{display:block}.coach-label{font-size:9px;margin-right:12px}.code-coach strong{font-size:13px}.code-coach p{font-size:12px;margin:6px 0;line-height:1.7}.meaning-connection{font-size:11px}.target-word{font-size:clamp(14px,4.5vw,20px);padding:10px 12px}}.concept-path{list-style:none;padding:0;margin:22px 0;display:grid;gap:7px;counter-reset:path}.concept-path li{counter-increment:path;padding:10px 13px;border-left:2px solid #bce4b577;background:#102426;color:#cee0c5;font-size:13px;border-radius:0 5px 5px 0}.concept-path li:before{content:counter(path) " / ";color:#92b78d;font:10px var(--mono);margin-right:8px}.concept-question{font-size:14px;line-height:1.8;color:var(--cream)}body{background:var(--night);color:var(--cream)}.shell{position:relative;width:100%;max-width:none;min-height:100dvh;margin:0;padding:0}.universe{height:100dvh;min-height:760px;max-height:none;border-radius:0;box-shadow:none}.masthead{position:absolute;inset:0 0 auto;z-index:6;height:88px;padding:0 clamp(22px,5vw,84px);background:linear-gradient(#10292bc9,transparent)}.brand svg{fill:var(--cream)}.brand svg circle{fill:var(--night)}.edition{color:#adc2b3}.nav-button{background:#10292b80;border-color:#a5c09c42;color:var(--cream)}.nav-button:hover{background:#bce4b519}.welcome{top:50%;left:50%;width:min(920px,88%);transform:translate(-50%,-54%);text-align:center;text-shadow:0 2px 30px #08222290}.welcome-actions,.first-command{justify-content:center}.welcome-foot{bottom:60px}.page-foot{position:absolute;bottom:14px;left:5%;right:5%;padding:0;color:#91aa9b;pointer-events:none}.page-foot code{color:#b1cbb0}.flight-hud{padding:116px 5% 0}.coordinate{top:100px;right:5%}.universe:not([data-phase=welcome]) .coordinate{display:none}.code-coach{top:228px;left:50%;transform:translate(-50%);width:min(700px,calc(100% - 88px))}.cockpit{bottom:48px;left:max(5%,calc((100% - 1200px)/2));right:max(5%,calc((100% - 1200px)/2))}.universe[data-phase=welcome]:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,#10292b66,transparent 75%)}#flow-dialog[data-stage=complete]{width:min(680px,calc(100% - 36px));background:transparent;border:0;box-shadow:none;text-align:center;padding:34px}#flow-dialog[data-stage=complete] .step-dots{justify-content:center}#flow-dialog[data-stage=complete] .signal{margin:15px 0;font-size:76px;line-height:1.3}#flow-dialog[data-stage=complete] .dialog-note{max-width:530px;margin:16px auto 26px}#flow-dialog[data-stage=complete] .score-summary{justify-content:space-around}#flow-dialog[data-stage=complete] .dialog-actions{max-width:480px;margin:25px auto 0}@media(max-width:900px){.masthead{height:82px}.flight-hud{padding:106px 28px 0}.code-coach{top:212px;width:calc(100% - 56px)}.cockpit{left:4%;right:4%}}@media(max-width:560px){.masthead{height:75px;padding:0 18px}.universe{min-height:740px}.universe[data-phase=typing],.universe[data-phase=collecting]{min-height:800px}.welcome{width:88%;transform:translate(-50%,-56%)}.welcome h1{font-size:clamp(35px,10vw,48px)}.welcome-actions{gap:18px}.welcome-foot{left:6%;right:6%;bottom:52px;text-align:center}.welcome-foot>span{line-height:1.9}.flight-hud{padding:100px 22px 0}.code-coach{top:210px;width:calc(100% - 40px)}.cockpit{bottom:46px}.page-foot{padding:0}#flow-dialog[data-stage=complete]{padding:22px 14px}#flow-dialog[data-stage=complete] h2{font-size:26px}}button,.primary,.text-button,.nav-button{font-size:16px;min-height:44px}.eyebrow{font-size:12px;letter-spacing:1px}.welcome-copy{font-size:19px}.mission p{font-size:16px;line-height:1.75}.code-coach strong{font-size:18px}.code-coach p{font-size:16px;line-height:1.8}.coach-label{font-size:12px}.meaning-connection{font-size:15px}.dialog-note{font-size:16px;line-height:1.85}.choice{font-size:16px;line-height:1.65}.feedback{font-size:15px}.rail-label,.code-rail>span:last-child,.input-label,.next-key small{font-size:12px}.code-rail pre{font-size:15px}.cockpit-foot{font-size:13px}.flight-stats small{font-size:12px}.score-summary small{font-size:13px}.hint-button{font-size:14px}.concept-path li,.concept-question{font-size:16px}.page-foot{font-size:11px}.route-item>span{font-size:16px}.route-item small{font-size:12px}.language-control{display:flex;align-items:center;gap:7px;font-size:14px;color:#c7dac5}.language-control select{max-width:145px;background:#153031;border:1px solid #a5c09c55;border-radius:6px;color:var(--cream);padding:8px 10px;min-height:42px;font-size:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.practice-editor{width:100%;min-height:140px;background:#102426;color:var(--cream);border:1px solid #73917a;border-radius:7px;padding:14px;font:18px/1.8 var(--mono);direction:ltr;text-align:left;resize:vertical;tab-size:2}.scope-note{font-size:13px;color:#b4c6b4;line-height:1.75}.runner-label{font-size:12px;color:var(--orange)}@media(max-width:560px){.masthead{padding:0 15px}.brand>span{font-size:20px}.brand svg{width:25px}.masthead nav{gap:6px}.nav-button{font-size:13px;padding:6px 9px}.nav-button b{margin-left:3px}.language-control select{max-width:105px;font-size:13px;padding:7px 5px}.mission p,.code-coach p{font-size:14px}.code-coach strong{font-size:16px}.meaning-connection{font-size:13px}.code-coach{top:230px}.flight-hud{padding-top:100px}.cockpit-foot,.code-rail pre{font-size:12px}.dialog-note,.choice{font-size:15px}.rail-label,.input-label,.next-key small{font-size:11px}.welcome-copy,.concept-path li,.concept-question{font-size:15px}.welcome-actions .text-button{font-size:14px}.code-rail{gap:8px}.cockpit-foot>span{font-size:10px}}html[dir=rtl] .brand{direction:ltr}html[dir=rtl] .welcome-foot{direction:rtl}html[dir=rtl] .code-coach{border-left:0;border-right:2px solid var(--mint)}.exercise-code,.code-rail pre,.target-word,#typing-field,.practice-editor,.signal{direction:ltr;unicode-bidi:isolate}.choices{display:grid;gap:12px;margin:22px 0}.choice{width:100%;text-align:start}.choice>span:first-child{font:12px var(--mono);color:var(--mint);min-width:22px}.route-item{text-align:start}.route-item small{display:block;margin-top:5px}.route-item>span:last-child{flex:none}.value-editor{min-height:58px;height:58px}.editor-label{display:block;margin:15px 0 8px;color:var(--mint);font-size:14px}.practice-output{font-size:14px;color:var(--mint)}.practice-output pre{margin:10px 0}.dialog-top{align-items:center;gap:16px}.dialog-actions{flex-wrap:wrap}.dialog-actions button{white-space:normal}.welcome-copy{max-width:690px;margin-inline:auto}.mission{min-width:0}.mission h2{overflow-wrap:anywhere}.flight-stats{flex-shrink:0}.code-coach p,.dialog-note,.welcome-copy{overflow-wrap:anywhere}.typing-row .input-label{max-width:140px;white-space:normal}.next-key small{max-width:85px}.nav-button{white-space:nowrap}.first-command code,#map-count,#fragment-count,#fragment-progress{direction:ltr;unicode-bidi:isolate}.first-command code,#map-count{display:inline-block}html[dir=rtl] .first-command svg{transform:scaleX(-1)}@media(max-width:760px){.edition{display:none}.masthead{gap:12px}.next-key small,.typing-row .input-label{display:none}.code-rail .rail-label{max-width:90px;white-space:normal}.welcome h1{font-size:clamp(34px,7vw,54px)}.welcome-copy{max-width:520px}.welcome-actions{flex-wrap:wrap;gap:12px}.code-coach{top:250px}.flight-hud{gap:15px}.mission h2{max-width:none}.flight-stats small{max-width:75px}.language-control select{max-width:110px}.masthead nav{gap:6px}.brand small{display:none}}.assessment-report{margin-top:24px;padding:22px;border:1px solid #779b7a;border-radius:12px;background:#bce4b50b;text-align:start;scroll-margin:20px}.assessment-report header{display:flex;align-items:center;justify-content:space-between;gap:18px}.assessment-report h3{margin:0 0 6px;font-size:20px}.assessment-report header p{margin:0;color:#c6d7bd;font-size:15px;line-height:1.7}.assessment-score{font:42px var(--mono);color:var(--cream);white-space:nowrap}.assessment-score small{font-size:16px;color:#b8cbb5}.assessment-checks{list-style:none;padding:0;margin:20px 0;display:grid;gap:10px}.assessment-check{padding:12px 14px;background:#112a2b;border-radius:6px;border-inline-start:3px solid #8daa99}.assessment-check[data-status=pass]{border-color:var(--mint)}.assessment-check[data-status=fail]{border-color:#edbc88}.assessment-check>div{display:flex;align-items:baseline;justify-content:space-between;gap:15px;font-size:16px}.assessment-check>small{display:block;margin-top:5px;color:#c5d5c0;font-size:13px}.assessment-check bdi{white-space:nowrap;font:15px var(--mono)}.concept-checks{list-style:none;padding:0;margin:8px 0 0;font-size:14px;line-height:1.8;color:#c7d5c0}.concept-checks li{display:block}.assessment-explanation{font-size:15px;line-height:1.8;color:#f0d3a8}.assessment-outputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.assessment-outputs>div{min-width:0}.assessment-outputs small{font-size:13px;color:#c6d5c0}.assessment-outputs pre{margin-top:6px;overflow-wrap:anywhere;white-space:pre-wrap}.completed-grade{font-size:18px;color:var(--mint)}.completed-grade bdi{display:inline-block;margin-inline-start:12px;font:24px var(--mono)}#assessment-panel:empty{display:none}#assessment-panel{color:#ceddc5;font-size:15px;line-height:1.7}@media(max-width:560px){.assessment-report{padding:15px}.assessment-report header{align-items:flex-start;flex-wrap:wrap;gap:10px}.assessment-score{font-size:36px}.assessment-outputs{grid-template-columns:1fr}.assessment-check>div{font-size:15px}.assessment-check{padding:10px}}.masthead .page-navigation[hidden],.map-short{display:none}.masthead .page-navigation{display:flex;align-items:center;justify-content:center;gap:30px}.page-navigation a{color:#b9cbb7;text-decoration:none;font-size:15px;line-height:1.5;padding:10px 0;border-bottom:2px solid transparent;white-space:nowrap}.page-navigation a:hover,.page-navigation a[aria-current]{color:var(--mint);border-bottom-color:var(--mint)}body[data-view=learning] .masthead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:26px}body[data-view=learning] .edition{display:none}body[data-view=learning] .header-controls{justify-self:end}@media(max-width:1000px){body[data-view=learning] .masthead{height:auto;min-height:118px;padding-block:8px;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:60px auto;gap:0 16px}body[data-view=learning] .brand{grid-column:1;grid-row:1}body[data-view=learning] .header-controls{grid-column:2;grid-row:1}body[data-view=learning] .page-navigation{grid-column:1/-1;grid-row:2;gap:28px;padding-block:2px}.page-navigation a{font-size:14px;padding-block:7px}}@media(max-width:560px){body[data-view=learning] .map-long{display:none}body[data-view=learning] .map-short{display:inline}}@media(max-width:400px){body[data-view=learning] .masthead{column-gap:12px}body[data-view=learning] .brand{gap:6px}body[data-view=learning] .brand>span{font-size:18px}body[data-view=learning] .brand svg{width:24px}body[data-view=learning] .language-control select{max-width:88px}body[data-view=learning] .page-navigation{gap:18px}.page-navigation a{font-size:13px}}body[data-view=game] .welcome{top:48%;inset-inline:0;left:0;right:0;margin-inline:auto;transform:translateY(-50%);width:min(900px,88%);text-align:center}body[data-view=game] .welcome h1{font-size:clamp(42px,5vw,76px);line-height:1.28;text-wrap:wrap;letter-spacing:-.035em}body[data-view=game] .welcome-copy{margin-inline:auto;max-width:610px;color:#e1e6ce}body[data-view=game] .welcome-actions,body[data-view=game] .first-command{justify-content:center}.primary{box-shadow:0 4px 20px #bbd6a919;border-color:#e7d29a66}.primary:hover{box-shadow:0 5px 24px #e8cc8733}.jump-section{margin:28px 0 32px;border-top:1px solid #c4d4ac38;padding-top:25px;min-width:0}.jump-section>header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.jump-section h2{font-size:clamp(23px,3vw,32px);margin:8px 0 0;color:#f1e7c6;line-height:1.4}.jump-section>p{font-size:15px;line-height:1.9;color:#c9d6be;margin:14px 0 18px;max-width:780px}.jump-target{color:#f2dba0;border:1px solid #cfb67f66;padding:9px 14px;border-radius:24px;font-size:15px}.jump-lab{border:1px solid #adbf9055;border-radius:16px;overflow:hidden;background:#15332e;isolation:isolate}.jump-lab canvas{display:block;width:100%}.jump-lab [role=status]{margin:0;padding:15px 20px;min-height:58px;background:#102d29;color:#dbdec2;font-size:15px;line-height:1.8}.jump-lab[data-outcome=landed] [role=status]{color:#d4e9b3;border-top:1px solid #b7d19155}.jump-lab[data-outcome=short] [role=status],.jump-lab[data-outcome=long] [role=status]{color:#f2d0a0}@media(max-width:760px){body[data-view=game] .welcome{inset-inline:0;left:0;right:0;margin-inline:auto;width:88%;max-width:none}body[data-view=game] .welcome h1{font-size:clamp(37px,8vw,56px)}body[data-view=game] .welcome-copy{max-width:480px}.jump-section{margin-block:23px}.jump-target{font-size:14px}.jump-lab [role=status]{padding:12px 15px;min-height:72px}}@media(prefers-reduced-motion:reduce){.primary{transition:none}}.jump-page-body{max-width:none}.jump-workbench{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:48px;align-items:start}.jump-workbench .jump-section{margin-top:0}.jump-controls{min-width:0}.challenge-brief .jump-section{margin-top:30px}.jump-workbench .dialog-actions{flex-wrap:wrap}@media(max-width:900px){.jump-workbench{grid-template-columns:1fr;gap:20px}.jump-workbench .jump-section{margin-top:0}}.jump-independent .challenge-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:44px;margin-top:24px}.jump-independent .challenge-brief{padding-top:0;border:0}.jump-independent .challenge-brief>h2{margin-bottom:10px}.jump-independent .challenge-brief>.dialog-note{margin:0 0 20px}.jump-independent .jump-section{margin-top:20px}.jump-independent #program-form>.scope-note{font-size:13px}.learning-page:has(.jump-page-body) .page-trail{margin-bottom:22px}@media(max-width:900px){.jump-independent .challenge-layout{grid-template-columns:1fr;gap:28px}}.masthead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:26px}.masthead .edition{display:none}.header-controls{justify-self:end}.masthead .page-navigation{gap:30px}.page-navigation a{padding:12px 0}.welcome-copy{text-wrap:pretty}.levels-page{max-width:1080px;margin:14px auto}.levels-intro{max-width:620px;color:#c0d0bd;font-size:18px}.level-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:36px 0}.level-card{display:flex;align-items:flex-start;gap:22px;text-align:start;padding:28px;background:#163532;border:1px solid #b8ccaa42;border-radius:12px;color:var(--cream);transition:background .2s,border-color .2s}.level-card:hover{background:#20443c;border-color:#bfd7a5}.level-number{font:20px var(--mono);color:#d6bd87}.level-copy{display:flex;flex:1;flex-direction:column;gap:12px;min-width:0}.level-copy strong{font-size:23px;font-weight:600;line-height:1.4}.level-copy>span{font-size:15px;line-height:1.8;color:#c2d2bd}.level-copy small{font-size:13px;color:var(--mint)}@media(max-width:1000px){.masthead,body[data-view=learning] .masthead{height:auto;min-height:112px;padding-block:8px;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:52px auto;gap:0 16px}.masthead .brand{grid-column:1;grid-row:1}.masthead .header-controls{grid-column:2;grid-row:1}.masthead .page-navigation{grid-column:1/-1;grid-row:2;justify-content:center;gap:28px}.page-navigation a{padding:6px 0}.level-grid{gap:14px}.level-card{padding:20px;gap:15px}}@media(max-width:640px){.level-grid{grid-template-columns:1fr;margin-block:25px}.levels-intro{font-size:16px}.level-copy strong{font-size:21px}.masthead .nav-button b{margin:0}.map-long,.map-short{display:none!important}.welcome{max-width:88%}body[data-view=game] .welcome h1{font-size:clamp(34px,8vw,48px)}body[data-view=game] .welcome-copy{font-size:17px}.welcome-actions{margin-block:24px}.first-command{margin-top:20px}}@media(max-width:1000px){.flight-hud{padding-top:140px}.code-coach{top:255px}}.brand .orbit-mark{width:44px;height:44px;flex:none;overflow:visible}.brand .mark-orbit{fill:none;stroke:var(--cream);stroke-width:1.6}.brand .mark-plane{fill:var(--cream)}.brand .mark-cockpit{fill:var(--night)}.brand .mark-star{fill:var(--mint)}.hero-accent{color:var(--mint)}@media(max-width:560px){.brand .orbit-mark{width:34px;height:34px}}.universe[data-phase=welcome] .coordinate{display:none}.welcome-foot{padding:14px 0;border-top-color:#d9e4ce55;color:#e0e6d4;text-shadow:0 1px 5px #071a19}.welcome-foot b{color:#bfd0a9}.first-command{color:#d4decf}#typing-field::placeholder{color:#c1cdbbd9}.page-foot{color:#d2ddce;text-shadow:0 1px 5px #071a19}.page-foot code{color:#e7e8d2;text-shadow:0 1px 5px #071a19}.masthead .page-navigation a,.language-control{color:#d6e0d0}@media(max-width:560px){.welcome-foot{padding:10px 0}}.universe[data-phase=welcome]{display:flex;flex-direction:column;height:auto;min-height:100dvh;padding:clamp(132px,16vh,184px) 0 58px}body[data-view=game] .universe[data-phase=welcome] .welcome{position:relative;inset:auto;margin:auto;transform:none;width:min(900px,88%);max-width:none}.first-flight{display:flex;align-items:center;justify-content:center;gap:70px;margin:18px auto 0;direction:ltr}.first-flight .first-command{margin:0;flex-wrap:wrap}#home-plane-slot{width:160px;height:180px;flex:none}.home-plane{position:absolute;z-index:2;width:160px;height:180px;padding:0;transform:translate(-50%,-50%);background:transparent;border:0;border-radius:0;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.home-plane:focus-visible{outline:none;background:linear-gradient(#c9dfb3,#c9dfb3) center bottom 4px/24px 2px no-repeat}.home-plane[data-dragging]{cursor:grabbing}.universe[data-phase=welcome] .welcome-foot{position:relative;inset:auto;width:87%;margin:26px auto 0}@media(max-width:1000px){.universe[data-phase=welcome]{padding-top:170px}}@media(max-width:560px){.universe[data-phase=welcome]{padding-top:160px;padding-bottom:56px}.first-flight{gap:12px;flex-wrap:wrap;margin-top:22px}.first-flight .first-command{width:100%;gap:12px}#home-plane-slot,.home-plane{width:136px;height:156px}.universe[data-phase=welcome] .welcome-foot{margin-top:16px}}.journey-panel{margin:28px 0 38px;border:1px solid #c9d7c4;background:#eaf0e4;border-radius:16px;padding:24px 28px;color:#24463f}.journey-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.learning-page .journey-heading h2{font-size:18px;margin:0;color:#24463f}.journey-heading>span{font-size:12px;color:#526d61}.journey-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:22px 0;gap:24px}.journey-totals>div+div{border-inline-start:1px solid #c3d2bd;padding-inline-start:24px}.journey-totals dt{font-size:13px;color:#526d61;margin-bottom:4px}.journey-totals dd{margin:0;display:flex;gap:10px;align-items:center;font-size:30px;font-weight:650;line-height:1.4;letter-spacing:-.8px}.journey-totals dd>span{font-size:19px;color:#947133}.journey-next{border-top:1px solid #c3d2bd;padding-top:17px;display:flex;justify-content:space-between;gap:22px;align-items:center}.journey-next>a{display:flex;flex-direction:column;gap:2px;flex-shrink:0;padding:3px 0}.journey-next>a>span{font-size:12px;color:#526d61}.journey-next strong{font-size:16px;line-height:1.6;color:#24463f}.journey-next a:hover strong{text-decoration:underline;text-underline-offset:4px}.journey-next p{font-size:12px;max-width:350px;margin:0!important;color:#526d61;line-height:1.8}.game-record{display:block;font-size:12px;line-height:1.6;color:#526d61;margin:0 0 14px}@media(max-width:600px){.journey-panel{padding:20px;margin:24px 0 30px}.journey-heading{display:block}.journey-heading>span{display:block;margin-top:3px}.journey-totals{gap:12px;margin:20px 0}.journey-totals>div+div{padding-inline-start:12px}.journey-totals dt{font-size:11px}.journey-totals dd{font-size:24px;gap:5px}.journey-next{display:block}.journey-next p{margin-top:12px!important;max-width:none}}.arcade-page{max-width:1100px;margin:auto}.arcade-games{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;margin:38px 0}.arcade-game{display:flex;flex-direction:column;gap:28px;min-width:0;padding:0 0 28px;border:1px solid #b2c5a735;border-radius:16px;overflow:hidden;background:#173530;color:var(--cream);text-decoration:none;text-align:start;transition:transform .2s,border-color .2s}.arcade-game:hover{transform:translateY(-4px);border-color:#bfd7a5}.arcade-game>div:last-child{padding-inline:28px}.arcade-game h2{font-size:28px;margin:12px 0}.arcade-game p{font-size:16px;color:#c7d4c3;max-width:38em}.arcade-game strong{display:inline-block;color:var(--mint);margin-top:14px;font-size:16px}.arcade-vault-art,.arcade-jump-art{height:215px;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 120%,#6f936b60,transparent 70%),linear-gradient(140deg,#102726,#264c40)}.arcade-vault-art>span{display:grid;place-items:center;width:142px;height:142px;font-size:56px;color:#edd09a;border:14px double #8eac8a;border-radius:50%;box-shadow:0 0 0 9px #122c2c,0 0 0 10px #8eac8a99,14px 18px 22px #041c24a0,inset 8px 8px 22px #051e20;transform:rotate(-18deg)}.arcade-jump-art{font-size:118px;color:#d4e9b3;background:radial-gradient(ellipse at 80% 10%,#e2be7050,transparent 50%),linear-gradient(130deg,#25453d,#172b31)}.vault-mission{max-width:1160px;margin:auto}.vault-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}.vault-heading h1{margin:10px 0 12px}.vault-heading p{max-width:660px;margin:0;color:#c4d3be;font-size:17px}.vault-stamps{display:flex;flex-direction:column;align-items:center;gap:8px;flex-shrink:0;color:#d2e3bd;padding:12px 20px;border-inline-start:1px solid #c6d4a644;font-size:13px}.vault-stamps strong{font:28px var(--mono)}.vault-path{display:flex;padding:0;margin:32px 0 36px;list-style:none;gap:22px}.vault-path li{display:flex;align-items:center;gap:10px;flex:1;padding-bottom:14px;color:#90aa9a;border-bottom:2px solid #b6c5a326;font-size:14px}.vault-path bdi{font:15px var(--mono);color:inherit}.vault-path li[aria-current]{color:#e9d49c;border-color:#d1bc82}.vault-path li[data-cleared=true]{color:var(--mint);border-color:var(--mint)}.vault-workspace{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:52px;align-items:start}.vault-observation,.vault-console{min-width:0}.vault-theatre{height:340px;position:relative;display:grid;place-items:center;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 50% 95%,#668b5960,transparent 62%),linear-gradient(140deg,#0c2024,#214139 65%,#122b2a);border-radius:18px;border:1px solid #9bb28b40;perspective:1100px}.vault-stars{position:absolute;inset:0;opacity:.25;background-image:radial-gradient(#e3d5a7 1px,transparent 1px);background-size:37px 41px;transform:rotate(-16deg) scale(1.3)}.vault-rim{width:250px;height:250px;position:relative;perspective:850px;border:13px solid #799786;border-radius:50%;box-shadow:0 0 0 2px #d4c49680,0 0 0 10px #112a29,0 0 0 11px #91ab8e66,15px 20px 28px #051e21a0,inset 0 0 18px #000;transform:rotateY(-12deg)}.vault-core{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(#c9e9a72e,#0b2122 70%);border-radius:50%}.vault-core span{font-size:94px;color:#dbedb4;text-shadow:0 0 40px #b5e3a1;transform:scale(.7);opacity:.4;transition:transform .8s,opacity .8s}.vault-door{position:absolute;inset:-2px;transform-origin:0 50%;border:7px solid #93ac8e;border-radius:50%;background:linear-gradient(140deg,#789480,#284c46 58%,#10292b);box-shadow:inset 2px 2px 5px #d1d8b288,3px 2px 4px #061e23;transition:transform 1s cubic-bezier(.22,.68,.15,1);transform-style:preserve-3d}.vault-ring{position:absolute;inset:24px;border:2px solid #c9be9299;border-radius:50%;box-shadow:inset 0 0 0 7px #173734,inset 0 0 0 8px #8aab8d88;display:grid;place-items:center}.vault-ring>i{position:absolute;top:10px;left:calc(50% - 3px);width:6px;height:55px;background:linear-gradient(#ead3a2,#7f9578);transform-origin:3px 73px;border-radius:4px;box-shadow:2px 2px 3px #112b2b}.vault-ring>i:nth-child(2){transform:rotate(120deg)}.vault-ring>i:nth-child(3){transform:rotate(240deg)}.vault-dial{position:relative;display:grid;place-items:center;min-width:76px;height:76px;padding:5px;border:3px solid #c8b98a;border-radius:50%;background:#173732;box-shadow:4px 6px 6px #0a2124;color:#f1deb2;font:28px var(--mono)}.vault-bolts{position:absolute;inset:0;pointer-events:none}.vault-bolts i{position:absolute;right:-18px;top:38px;width:38px;height:12px;border-radius:3px;background:linear-gradient(#d3c89f,#627f73);transition:transform .45s}.vault-bolts i:nth-child(2){top:calc(50% - 6px);right:-23px}.vault-bolts i:nth-child(3){top:auto;bottom:38px}.vault-scene-label{position:absolute;bottom:18px;inset-inline:18px;text-align:center;font-size:12px;letter-spacing:1.5px;color:#c0c8a5}.vault-scan{position:absolute;inset:0;pointer-events:none;border:1px solid transparent;border-radius:inherit}.vault-theatre[data-state=running] .vault-ring{animation:vault-turn .7s ease-in-out infinite}.vault-theatre[data-state=running] .vault-dial{animation:vault-counterturn .7s ease-in-out infinite}.vault-theatre[data-state=open] .vault-door{transform:rotateY(-105deg)}.vault-theatre[data-state=open] .vault-bolts i{transform:translate(-21px)}.vault-theatre[data-state=open] .vault-core span{transform:scale(1);opacity:1}.vault-theatre[data-state=open] .vault-scan{border-color:#cbe7a87a;box-shadow:inset 0 0 65px #cbe7a81a}.vault-theatre[data-state=retry] .vault-scan{border-color:#ddb78980}.vault-receivers{display:flex;justify-content:center;gap:12px;margin:20px 0}.vault-receivers>span{display:flex;align-items:center;justify-content:center;gap:12px;min-width:90px;padding:11px;border:1px solid #95b29550;border-radius:8px;background:#102a2a;color:#d9debf;font:22px var(--mono)}.vault-receivers small{font:11px var(--mono);color:#93ab9b}.vault-receivers [data-match=true]{border-color:#badb9b;background:#264b3c;color:#d7eebc}.vault-receivers [data-match=false]{border-color:#ddb789;color:#efd3ab}.vault-brief h2{font-size:24px;margin:22px 0 10px}.vault-brief p{font-size:16px;margin:0;color:#d0d9c6}.vault-clues{display:flex;gap:14px;margin-top:18px}.vault-clues span{display:flex;align-items:center;gap:15px;padding:8px 20px 8px 0;color:#e6d5ab;font:22px var(--mono)}.vault-clues small{font:12px var(--mono);color:#99b09a}.vault-console form>label{display:block;color:#ece6ce;font-size:17px;font-weight:600}.vault-editor-note{color:#c1d1bd;font-size:14px;margin:12px 0 14px}.vault-console .practice-editor{box-sizing:border-box;width:100%;min-height:192px;resize:vertical;border-color:#8fab795c;background:#0c2327;color:#edf0d4;font:16px/1.9 var(--mono);tab-size:2}.vault-console .practice-editor:focus{outline:2px solid var(--mint);outline-offset:3px}.vault-console form>small{display:block;color:#a7bba8;font-size:12px;margin-top:10px}.vault-console .dialog-actions{margin:20px 0;gap:16px;flex-wrap:wrap}.vault-console button{min-height:46px}.vault-console button:disabled{opacity:.65;cursor:wait}.vault-feedback{border-inline-start:2px solid #829f8844;padding:0 0 0 18px;padding-inline-start:18px;padding-inline-end:0;margin-top:27px}.vault-feedback strong{font-size:17px;font-weight:500}.vault-feedback p{color:#bbceba;font-size:14px;margin:8px 0}.vault-feedback[data-kind=success]{border-color:var(--mint);color:var(--mint)}.vault-feedback[data-kind=retry]{border-color:#dfbd87;color:#dfc59d}.vault-feedback [data-vault-output]{font-size:12px;color:#a8bda7}.vault-feedback code{display:block;overflow-wrap:anywhere;color:#ede2bd;font:18px/1.8 var(--mono);margin-top:7px}.vault-next{margin-top:24px}.vault-next p{font-size:13px;color:#b5c8af}.vault-help{border-top:1px solid #b6c8a332;padding-top:18px;margin-top:28px}.vault-help summary{font-size:14px;color:#d6e5c6;cursor:pointer;padding-block:5px}.vault-help p{font-size:14px;color:#c0d0b9}.vault-help pre{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.8 var(--mono);background:#0d2729;padding:18px;border-radius:8px}.vault-footnote{color:#a8bda7;font-size:13px;margin-top:42px;max-width:850px}.vault-mission [hidden]{display:none!important}@keyframes vault-turn{50%{transform:rotate(18deg)}}@keyframes vault-counterturn{50%{transform:rotate(-18deg)}}@media(max-width:1000px){.masthead .page-navigation{flex-wrap:wrap;gap:4px 24px}.vault-workspace{gap:30px}.vault-theatre{height:310px}.vault-rim{width:220px;height:220px}.vault-ring{inset:18px}.vault-ring>i{height:45px;transform-origin:3px 66px}.vault-dial{min-width:68px;height:68px;font-size:25px}}@media(max-width:760px){.arcade-games{grid-template-columns:1fr;gap:24px}.vault-workspace{grid-template-columns:1fr;gap:30px}.vault-heading{align-items:flex-start;gap:16px}.vault-heading p{font-size:15px}.vault-stamps{font-size:11px;padding:8px 0 8px 15px;max-width:95px;text-align:center}.vault-stamps strong{font-size:22px}.vault-path{gap:12px;margin:25px 0}.vault-path li{font-size:12px;gap:7px;align-items:flex-start;line-height:1.6}.vault-path bdi{font-size:12px;line-height:1.6}.vault-theatre{height:290px}.vault-brief h2{margin-top:20px}.vault-console .practice-editor{font-size:16px}.vault-footnote{margin-top:30px}}@media(prefers-reduced-motion:reduce){.vault-mission *,.arcade-game{animation:none!important;transition:none!important}}body[data-entry=learning]:not([data-view=game]),body[data-view=learning]{--work-ink:#23493f;--work-muted:#536f63;--work-line:#b9cbb8;background:#f2f3e9;color:var(--work-ink)}body[data-view=learning] .masthead{background:#f7f6ecf5;border-color:#ccd7c5;backdrop-filter:blur(10px)}body[data-view=learning] .brand .mark-orbit{stroke:var(--work-ink)}body[data-view=learning] .brand .mark-plane{fill:var(--work-ink)}body[data-view=learning] .brand .mark-cockpit{fill:#f7f6ec}body[data-view=learning] .brand .mark-star{fill:#8ca880}body[data-view=learning] .masthead .page-navigation a{color:#456358}body[data-view=learning] .masthead .page-navigation a[aria-current]{color:#23493f;border-color:#72996a}body[data-view=learning] .language-control select{background-color:#f7f6ec;color:#23493f;border-color:#a9bdab}body[data-view=learning] .nav-button{background:#e5ecd9;color:#23493f;border-color:#b2c5aa}body[data-view=learning] .nav-button:hover{background:#d8e5c9}body[data-view=learning] .page-foot{border-color:#c6d2c0;color:#5a7165;text-shadow:none}body[data-view=learning] .page-foot code{color:#345a4b;text-shadow:none}.learning-page{background:radial-gradient(ellipse at 100% 0,#d7e5c86b,transparent 60%),#f2f3e9}.learning-content{padding-top:30px}.learning-page h1,.learning-page h2{color:var(--work-ink)}.learning-page h1{font-weight:650;letter-spacing:0}.learning-page .eyebrow,.learning-page .levels-intro,.learning-page .scope-note{color:var(--work-muted)}.learning-page .dialog-note{color:#315747}.learning-page .page-trail{color:#526d5e;margin-bottom:28px}.learning-page .page-trail a{color:#315b4c}.learning-page .text-button{color:#345f4b}.learning-page .primary{background:#c9dfb3;color:#254936;border-color:#abc993}.learning-page .primary:hover{background:#bcd5a2}.learning-page .editor-label{color:#3f6653}.learning-page .practice-editor{border-color:#8eac8f;background:#173632;color:#f2efd9}.learning-page .exercise-code{background:#e3eadb;border-color:#8ba87a;color:#284b3d}.learning-page .signal{color:#3d6a4c}.learning-page .choice{background:#faf9f0;border-color:#b7cbb0;color:#294f40}.learning-page .choice:hover{background:#e5efd9;border-color:#77976b}.learning-page .choice>span:first-child{color:#5d7e49}.learning-page .concept-path,.learning-page .concept-question{color:#315747}.learning-page .step-dots i{background:#b6c6ac}.learning-page .step-dots i.active{background:#4f7d57}.learning-page .challenge-brief{border-color:var(--work-line)}.learning-page .practice-output{color:#365f43}.learning-page .feedback{color:#3d6a4c}.learning-page .feedback[data-kind=error]{color:#875437}.learning-page .result-hero p{color:#496854}.learning-page .result-toolbar,.learning-page .result-work{border-color:var(--work-line)}.learning-page .result-breakdown .assessment-check{border-color:#8aab77}.learning-page .result-breakdown .assessment-check[data-status=pass]{border-color:#6f9862}.learning-page .result-breakdown .assessment-check[data-status=fail]{border-color:#b57b4d}.learning-page .result-breakdown .assessment-check bdi{color:#315747}.learning-page .assessment-check>small,.learning-page .concept-checks,.learning-page .assessment-outputs small{color:#55705c}.learning-page .assessment-explanation{color:#825736}.learning-page .score-orbit>div{background:#2b5446;color:#f4f0da}.learning-page .score-orbit span{color:#d4e3c1}.learning-page .score-summary{border-color:var(--work-line)}.learning-page .score-summary small{color:#55705c}.learning-page .score-summary strong,.learning-page .completed-grade{color:#315747}.level-card{min-height:154px;align-items:center;padding:26px;background:#faf9f0;color:#294f40;border-color:#bacdb1;box-shadow:none}.level-card:hover{background:#e8efde;border-color:#8cab7d}.level-card[data-state=next]{background:#dce9cf;border-color:#7fa36c}.level-number{display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:50%;background:#e8eddf;color:#507442;font-size:19px}.level-card[data-state=next] .level-number{background:#426b4b;color:#f4efda}.level-card[data-state=done] .level-number{background:#d5e3c6;color:#426b4b}.level-card .level-copy>span{color:#506d58;line-height:1.75}.level-card .level-copy small{color:#4d7040;font-weight:600}.level-card>span:last-child{align-self:center;color:#4b7442;font-size:24px}.arcade-games{grid-template-columns:1fr 1fr;gap:24px;margin:30px 0}.arcade-game{display:grid;grid-template-columns:minmax(130px,.85fr) minmax(0,1.25fr);gap:0;align-items:stretch;min-height:270px;padding:0;border-color:#b9cbb0;background:#faf9ef;color:#294f40;border-radius:12px}.arcade-game>div:last-child{display:flex;flex-direction:column;align-items:flex-start;padding:24px}.arcade-game h2{font-size:25px;line-height:1.4;margin:8px 0 12px}.arcade-game p{font-size:15px;line-height:1.8;color:#506d58;margin:0 0 18px}.arcade-game strong{font-size:15px;margin-top:auto;color:#315d43;padding-bottom:2px;border-bottom:1px solid #91ad7a}.arcade-game .eyebrow{font-size:12px;letter-spacing:0}.arcade-vault-art,.arcade-jump-art{height:auto;min-height:260px;background:#d6e1ca;display:flex;align-items:center;justify-content:center}.arcade-jump-art{background:#c8dccc}.arcade-game svg{display:block;width:100%;height:auto;overflow:visible}.arcade-game:hover{border-color:#7e9e70;transform:translateY(-3px)}.learning-page .vault-heading p,.learning-page .vault-footnote{color:#506d58}.learning-page .vault-stamps{color:#476c40;border-color:#b9cbb0}.learning-page .vault-path li{color:#536f5b;border-color:#ccd7c2}.learning-page .vault-path li[aria-current]{color:#466b36;border-color:#6b9255}.learning-page .vault-path li[data-cleared=true]{color:#466b36;border-color:#8eae7d}.learning-page .vault-brief,.learning-page .vault-console p{color:#315747}.learning-page .vault-clue,.learning-page .vault-feedback,.learning-page .vault-help{color:#315747;border-color:#bccdb2;background:#e7eddf}.learning-page .vault-help summary{color:#365f43}.learning-page .vault-help pre{background:#d6e1cb;color:#284b3d}.learning-page .vault-feedback strong{color:#315d43}.learning-page .vault-feedback[data-kind=retry] strong{color:#865536}.learning-page .vault-feedback code{color:#315d43}.learning-page .vault-brief p,.learning-page .vault-console label{color:#315747}.learning-page .vault-console small,.learning-page .vault-clues small{color:#55705c}.learning-page .vault-clues>span{color:#385d3e}.learning-page .vault-feedback [data-vault-output]>span{color:#55705c}.learning-page .vault-receivers small{color:#bfd0ad}.learning-page .vault-next p{color:#4c6f43}.learning-page .jump-section header h2,.learning-page .jump-section>p{color:#315747}.learning-page .jump-target{color:#4b6d3c;border-color:#a9bf92;background:#e5ecd9}@media(max-width:1050px){.arcade-games{grid-template-columns:1fr}.arcade-game{grid-template-columns:minmax(150px,.7fr) minmax(0,1.3fr);min-height:210px}.arcade-vault-art,.arcade-jump-art{min-height:210px}.arcade-game svg{max-width:290px}}@media(max-width:560px){.learning-page h1{font-size:30px;line-height:1.4;letter-spacing:0}.learning-content{padding:22px 22px 40px}.level-card{padding:20px;min-height:130px;gap:15px}.level-number{width:38px;height:38px;font-size:16px}.arcade-game{grid-template-columns:1fr;min-height:0}.arcade-vault-art,.arcade-jump-art{height:150px;min-height:150px;overflow:hidden}.arcade-game svg{height:180px;width:auto;max-width:none}.arcade-game>div:last-child{padding:22px}.arcade-game h2{font-size:24px}}@media(prefers-reduced-motion:reduce){.arcade-game{transition:none}.arcade-game:hover{transform:none}}.header-controls{display:flex;align-items:center;gap:12px}.masthead .page-navigation a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.course-progress{display:inline-flex;align-items:center;padding:2px 7px;border:1px solid #d5e4c860;border-radius:5px;color:#e4edda;font:11px/1.6 var(--mono);letter-spacing:0}body[data-view=learning] .course-progress{color:#365c45;border-color:#abc0a1;background:#e6eddb}@media(max-width:1000px){.masthead .page-navigation{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.masthead .page-navigation a{white-space:normal;text-align:center;line-height:1.45;padding:8px 3px;overflow-wrap:anywhere;flex-wrap:wrap;column-gap:5px;row-gap:2px}.header-controls{gap:8px}}@media(max-width:560px){.masthead .page-navigation{gap:4px}.masthead .page-navigation a{font-size:13px}.course-progress{font-size:10px;padding:1px 4px}}.nav-label-short{display:none}@media(max-width:560px){.masthead .page-navigation,body[data-view=learning] .masthead .page-navigation{gap:4px;align-items:stretch}.masthead .page-navigation a{overflow-wrap:normal;align-content:center}.nav-label-full{display:none}.nav-label-short{display:inline}}.language-control select{appearance:none;-webkit-appearance:none;width:136px;max-width:100%;min-height:44px;padding:8px 32px 8px 11px;border:1px solid #a5c09c88;border-radius:7px;background-color:#153031;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23c5d8bb' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:12px 8px;color:var(--cream);line-height:1.3;text-overflow:ellipsis}.language-control select:focus-visible{border-color:#c9dfb3}html[dir=rtl] .language-control select{direction:rtl;padding-inline:11px 32px;background-position:left 10px center;text-align:start}@media(max-width:560px){.language-control select{width:136px;padding-inline:9px 30px}html[dir=rtl] .language-control select{padding-inline:9px 30px}.header-controls:has(#pause-button:not([hidden])) .language-control select{width:100px}#pause-button{min-width:44px}.masthead:has(#pause-button:not([hidden])) .brand{gap:6px}.masthead:has(#pause-button:not([hidden])) .brand>span{font-size:18px;letter-spacing:1px}.masthead:has(#pause-button:not([hidden])) .brand .orbit-mark{width:28px;height:28px}}@media(max-width:400px){body[data-view=learning] .language-control select{max-width:136px}}.account-entry{color:#355d46;border:1px solid #a9bd9a;border-radius:6px;padding:8px 13px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;line-height:1.4;text-align:center;max-width:170px}body[data-phase=typing] .account-entry,body[data-phase=pause] .account-entry{display:none}.account-entry:hover{background:#e4ecd8}.account-entry[aria-current=page]{background:#dce9cf;border-color:#72996a}.account-page{max-width:900px;margin:24px auto 50px}.account-page>header{max-width:660px;margin-bottom:36px}.account-page h1{margin:14px 0;font-size:42px;line-height:1.3}.account-page>header>p{font-size:17px;color:#536f63}.account-workspace{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:56px;border-top:1px solid #bdccb3;padding-top:32px;align-items:start}.account-story{display:flex;flex-direction:column;align-items:flex-start;color:#536f63}.account-story img{width:125px;height:140px;object-fit:contain;margin-bottom:20px}.account-story p{font-size:13px;margin:0 0 14px}.account-story a{color:#315d43;border-bottom:1px solid #a3ba90;font-size:14px;padding-bottom:4px}.account-form-area{min-width:0}.account-tabs{display:flex;gap:20px;margin-bottom:28px;border-bottom:1px solid #bdccb3}.account-tabs button{background:transparent;color:#536f63;padding:9px 0 12px;font-size:16px;min-height:44px;border-bottom:2px solid transparent;flex:1}.account-tabs button[aria-pressed=true]{color:#23493f;border-color:#54835e;font-weight:650}.account-form-area form{display:flex;flex-direction:column;align-items:stretch;gap:12px}.account-form-area label{font-size:14px;color:#315747}.account-form-area input{display:block;min-height:50px;min-width:0;width:100%;border:1px solid #95b18b;border-radius:6px;background:#faf9f0;color:#23493f;padding:11px 14px;font-size:17px}.account-form-area .primary{margin-top:12px;min-height:50px;border-radius:6px;background:#315c45;color:#f8f5e7;min-width:0}.account-form-area .text-button{font-size:14px;align-self:flex-start;padding-inline:0}.account-status{color:#3f6a43;line-height:1.8;font-size:14px;min-height:2em;margin:20px 0}.account-status[data-error=true]{color:#865536}.account-email{overflow-wrap:anywhere;color:#315747;font-size:18px;margin:0 0 24px}@media(max-width:700px){.account-workspace{grid-template-columns:1fr;gap:32px}.account-story{order:2;align-items:center;text-align:center;border-top:1px solid #bdccb3;padding-top:24px}.account-story img{width:80px;height:90px;margin-bottom:12px}.account-page h1{font-size:32px}}@media(max-width:560px){.header-controls{gap:8px}.account-entry{font-size:11px;padding:7px 9px;max-width:120px}.header-controls .language-control select{width:112px}body[data-phase=welcome] .masthead .brand>span,body[data-view=learning] .masthead .brand>span{font-size:18px;letter-spacing:1px}body[data-phase=welcome] .masthead .brand .orbit-mark,body[data-view=learning] .masthead .brand .orbit-mark{width:30px;height:30px}}@media(max-width:380px){.header-controls .language-control select{width:94px}.account-entry{max-width:106px;padding-inline:6px}.masthead,.masthead:has(.account-entry){column-gap:8px}}body[data-phase=welcome]{--home-ink:#23493f;--home-green:#54835e;--home-muted:#607365;background:#f2f3e9;color:var(--home-ink)}body[data-phase=welcome] .masthead{position:relative;background:#f7f6ec;border-bottom:1px solid #d2ddcb;backdrop-filter:none}body[data-phase=welcome] .brand .mark-orbit{stroke:var(--home-ink)}body[data-phase=welcome] .brand .mark-plane{fill:var(--home-ink)}body[data-phase=welcome] .brand .mark-cockpit{fill:#f7f6ec}body[data-phase=welcome] .brand .mark-star{fill:#8ca880}body[data-phase=welcome] .masthead .page-navigation a{color:#496456}body[data-phase=welcome] .masthead .page-navigation a[aria-current]{color:#23493f;border-color:#72996a}body[data-phase=welcome] .course-progress{color:#365c45;border-color:#abc0a1;background:#e6eddb}body[data-phase=welcome] .language-control select{background-color:#f7f6ec;color:#23493f;border-color:#a9bdab}.universe[data-phase=welcome]{height:auto;max-height:none;min-height:calc(100svh - 138px);padding:clamp(32px,5svh,64px) 0 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f2f3e9;color:#23493f;overflow:hidden}.universe[data-phase=welcome]:after{display:none}.universe[data-phase=welcome] #space,.universe[data-phase=welcome] .scene-grain{display:none}body[data-phase=welcome] .universe[data-phase=welcome] .welcome{position:relative;inset:auto;transform:none;flex:none;margin:0 auto;width:min(1040px,calc(100% - 48px));text-align:center}body[data-phase=welcome] .welcome,body[data-phase=welcome] .welcome *{text-shadow:none}body[data-phase=welcome] .welcome .eyebrow{color:#607365;font-family:var(--sans);letter-spacing:1px;font-size:12px}body[data-phase=welcome] .welcome .eyebrow i{background:#86a874}body[data-phase=welcome] .welcome h1{font-size:clamp(42px,4.5vw,64px);font-weight:650;line-height:1.28;letter-spacing:-.035em;margin:18px 0;color:#23493f}body[data-phase=welcome] .welcome h1 .hero-accent{color:#54835e}body[data-phase=welcome] .welcome-copy{color:#607365;font-size:17px;line-height:1.85;max-width:620px;margin:0 auto}body[data-phase=welcome] .welcome-actions{margin:24px 0 0;gap:24px;justify-content:center}body[data-phase=welcome] .welcome-actions .primary{min-width:190px;min-height:52px;background:#315c45;color:#f8f5e7;border:1px solid #315c45;border-radius:7px;padding:13px 24px;box-shadow:none}body[data-phase=welcome] .welcome-actions .primary:hover{background:#244c38;transform:translateY(-1px)}body[data-phase=welcome] .welcome-actions .text-button{color:#3b6249;font-size:15px;padding:12px 0;border:0;border-radius:0}body[data-phase=welcome] .welcome-actions .text-button:hover{color:#23493f;text-decoration:underline;text-underline-offset:5px}body[data-phase=welcome] .first-command{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;width:max-content;max-width:100%;gap:16px;margin:25px auto 0;padding:0;color:#526d5e;direction:ltr;background:none;border:0;border-radius:0;box-shadow:none}body[data-phase=welcome] .first-command>span{font-family:var(--sans);font-size:12px;color:#71816d;unicode-bidi:plaintext}body[data-phase=welcome] .first-command code{color:#315c45;font-size:20px}body[data-phase=welcome] .first-command svg{width:40px;stroke:#8fa77d}body[data-phase=welcome] .first-command strong{color:#947033;font-size:24px}.home-flight-field{display:none}.universe[data-phase=welcome] .home-flight-field{display:block;position:relative;isolation:isolate;contain:layout paint;overflow:hidden;flex:none;width:100%;height:clamp(190px,24svh,280px);margin:18px auto 0}.home-flight-field .home-terrain{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;z-index:0}.home-flight-field #home-plane-slot{position:absolute;left:50%;top:50%;width:132px;height:152px;transform:translate(-50%,-50%)}.home-plane>img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}body[data-phase=welcome] .home-plane{width:132px;height:152px;filter:none}body[data-phase=welcome] .home-plane:focus-visible{background:linear-gradient(#54835e,#54835e) center bottom 4px/24px 2px no-repeat}.universe[data-phase=welcome] .welcome-foot{position:relative;inset:auto;flex:none;width:min(960px,88%);margin:0 auto;padding:6px 0;border-top:0;justify-content:center;color:#607365;text-shadow:none;font-size:11px;letter-spacing:.2px}.universe[data-phase=welcome] .welcome-foot>span:first-child{display:none}body[data-phase=welcome] .page-foot{position:static;margin:0 auto;padding:16px 0;width:min(1120px,88%);color:#607365;text-shadow:none;border-top:0}body[data-phase=welcome] .page-foot code{color:#42644c;text-shadow:none}@media(max-width:1000px){.universe[data-phase=welcome]{min-height:calc(100svh - 162px);padding-top:36px}body[data-phase=welcome] .welcome h1{font-size:clamp(40px,6.2vw,56px)}}@media(max-width:560px){.universe[data-phase=welcome]{min-height:0;padding:28px 0 14px}body[data-phase=welcome] .welcome h1{font-size:clamp(34px,8.6vw,42px);line-height:1.32;letter-spacing:-.045em;margin-block:16px}body[data-phase=welcome] .welcome-copy{font-size:15px;max-width:340px}body[data-phase=welcome] .welcome-actions{gap:10px 22px;margin-top:22px}body[data-phase=welcome] .welcome-actions .primary{width:100%;min-height:52px}body[data-phase=welcome] .welcome-actions .text-button{font-size:14px}body[data-phase=welcome] .first-command{gap:10px;margin-top:20px}body[data-phase=welcome] .first-command>span{width:100%}body[data-phase=welcome] .first-command code{font-size:19px}.universe[data-phase=welcome] .home-flight-field{height:170px;margin-top:8px}.home-flight-field .home-terrain{object-fit:cover;opacity:.7}body[data-phase=welcome] .home-plane,.home-flight-field #home-plane-slot{width:106px;height:130px}.universe[data-phase=welcome] .welcome-foot{font-size:11px;text-align:center;padding-block:8px}body[data-phase=welcome] .page-foot{display:flex;justify-content:center;font-size:11px;text-align:center}body[data-phase=welcome] .page-foot>span:first-child{display:none}}body:is([data-phase=typing],[data-phase=pause]){--flight-bg:#eaf0e6;--flight-panel:#faf8ef;--flight-panel-raised:#fffdf6;--flight-ink:#23493f;--flight-muted:#536f63;--flight-line:#b9cbb8;--flight-green:#466c4d;--flight-gold:#85612e;--flight-focus:#315f43;background:var(--flight-bg);color:var(--flight-ink)}body:is([data-phase=typing],[data-phase=pause]) .universe{background:var(--flight-bg);color:var(--flight-ink);box-shadow:none}body:is([data-phase=typing],[data-phase=pause]) .scene-grain{display:none}body:is([data-phase=typing],[data-phase=pause]) .masthead,body:is([data-phase=typing],[data-phase=pause]) .page-foot,body:is([data-phase=typing],[data-phase=pause]) .flight-hud,body:is([data-phase=typing],[data-phase=pause]) .flight-hud *,body:is([data-phase=typing],[data-phase=pause]) .code-coach,body:is([data-phase=typing],[data-phase=pause]) .code-coach *,body:is([data-phase=typing],[data-phase=pause]) .target,body:is([data-phase=typing],[data-phase=pause]) .target *,body:is([data-phase=typing],[data-phase=pause]) .cockpit,body:is([data-phase=typing],[data-phase=pause]) .cockpit *,body:is([data-phase=typing],[data-phase=pause]) #flow-dialog,body:is([data-phase=typing],[data-phase=pause]) #flow-dialog *{text-shadow:none}body:is([data-phase=typing],[data-phase=pause]) .brand svg{fill:var(--flight-ink)}body:is([data-phase=typing],[data-phase=pause]) .brand svg circle{fill:var(--flight-bg)}body:is([data-phase=typing],[data-phase=pause]) .brand .mark-orbit{stroke:var(--flight-ink)}body:is([data-phase=typing],[data-phase=pause]) .brand .mark-plane{fill:var(--flight-ink)}body:is([data-phase=typing],[data-phase=pause]) .brand .mark-cockpit{fill:var(--flight-bg)}body:is([data-phase=typing],[data-phase=pause]) .brand .mark-star{fill:var(--flight-green)}body:is([data-phase=typing],[data-phase=pause]) .edition,body:is([data-phase=typing],[data-phase=pause]) .page-navigation a,body:is([data-phase=typing],[data-phase=pause]) .language-control{color:var(--flight-muted)}body:is([data-phase=typing],[data-phase=pause]) .nav-button,body:is([data-phase=typing],[data-phase=pause]) .language-control select{color:var(--flight-ink);background-color:var(--flight-panel);border-color:var(--flight-line)}body:is([data-phase=typing],[data-phase=pause]) .nav-button:hover{background:#e1eadc}body:is([data-phase=typing],[data-phase=pause]) .language-control select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23536f63' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/svg%3E")}body:is([data-phase=typing],[data-phase=pause]) .flight-hud .eyebrow,body:is([data-phase=typing],[data-phase=pause]) .coach-label{color:var(--flight-green)}body:is([data-phase=typing],[data-phase=pause]) .flight-hud .mission h2{color:var(--flight-ink)}body:is([data-phase=typing],[data-phase=pause]) .flight-hud .mission p{color:var(--flight-muted)}body:is([data-phase=typing],[data-phase=pause]) .flight-stats small{color:var(--flight-muted)}body:is([data-phase=typing],[data-phase=pause]) .flight-stats strong{color:var(--flight-gold)}body:is([data-phase=typing],[data-phase=pause]) #shields{color:var(--flight-green)}body:is([data-phase=typing],[data-phase=pause]) .code-coach{color:var(--flight-ink);background:var(--flight-panel);border:1px solid var(--flight-line);box-shadow:none}body:is([data-phase=typing],[data-phase=pause]) .code-coach strong,body:is([data-phase=typing],[data-phase=pause]) .code-coach p{color:var(--flight-ink)}body:is([data-phase=typing],[data-phase=pause]) .meaning-connection{color:var(--flight-muted)}body:is([data-phase=typing],[data-phase=pause]) .target{filter:none}body:is([data-phase=typing],[data-phase=pause]) .target-label{color:var(--flight-muted)}body:is([data-phase=typing],[data-phase=pause]) .target-word{color:var(--flight-ink);background:var(--flight-panel-raised);border-color:var(--flight-line);box-shadow:none}body:is([data-phase=typing],[data-phase=pause]) .target-word .hit{color:var(--flight-green)}body:is([data-phase=typing],[data-phase=pause]) .target-word .active-letter{text-decoration-color:var(--flight-gold)}body:is([data-phase=typing],[data-phase=pause]) .target.error{filter:none}body:is([data-phase=typing],[data-phase=pause]) .target-tail{background:linear-gradient(var(--flight-line),transparent)}body:is([data-phase=typing],[data-phase=pause]) .combo-pop{color:var(--flight-green)}body:is([data-phase=typing],[data-phase=pause]) .cockpit{color:var(--flight-ink);background:var(--flight-panel);border-color:var(--flight-line);box-shadow:none}body:is([data-phase=typing],[data-phase=pause]) .code-rail{border-color:var(--flight-line)}body:is([data-phase=typing],[data-phase=pause]) .rail-label,body:is([data-phase=typing],[data-phase=pause]) .code-rail>span:last-child,body:is([data-phase=typing],[data-phase=pause]) .input-label,body:is([data-phase=typing],[data-phase=pause]) .next-key small{color:var(--flight-muted)}body:is([data-phase=typing],[data-phase=pause]) .input-label i{background:var(--flight-green)}body:is([data-phase=typing],[data-phase=pause]) .code-rail pre{color:var(--flight-ink)}body:is([data-phase=typing],[data-phase=pause]) #typing-field{color:var(--flight-ink);caret-color:var(--flight-green)}body:is([data-phase=typing],[data-phase=pause]) #typing-field::placeholder{color:var(--flight-muted)}body:is([data-phase=typing],[data-phase=pause]) #typing-field.wrong{color:#875437}body:is([data-phase=typing],[data-phase=pause]) .next-key kbd{color:var(--flight-green);border-color:#86a78a}body:is([data-phase=typing],[data-phase=pause]) .cockpit-foot{color:var(--flight-muted)}body:is([data-phase=typing],[data-phase=pause]) .cockpit-foot>span{color:var(--flight-gold)}body:is([data-phase=typing],[data-phase=pause]) .page-foot{color:var(--flight-muted)}body:is([data-phase=typing],[data-phase=pause]) .page-foot code{color:var(--flight-ink)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog{color:var(--flight-ink);background:var(--flight-panel);border:1px solid var(--flight-line);box-shadow:0 20px 54px #23493f24}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog::backdrop{background:#23493f55;backdrop-filter:blur(3px)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog h2,body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .dialog-top,body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .dialog-top>*{color:var(--flight-ink)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .dialog-note,body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .mode-select{color:var(--flight-muted)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .icon-button{color:var(--flight-muted);background:#eaf0e6}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .icon-button:hover{background:#dfe9dc}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .choice,body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .route-item{color:var(--flight-ink);background:var(--flight-panel-raised);border-color:var(--flight-line)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .choice:hover,body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .route-item:hover{background:#eaf0e6;border-color:#86a78a}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .choice b,body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .route-item small{color:var(--flight-muted)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .route-item>strong,body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .medal{color:var(--flight-gold)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .choice.retry{border-color:#b9895a}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .feedback{color:#875437}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .feedback[data-kind=success]{color:var(--flight-green)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .exercise-code{color:var(--flight-ink);background:#e9eee2;border-inline-start-color:var(--flight-green)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .step-dots span{background:#c6d3c1}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .step-dots .on{background:var(--flight-green)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .signal{color:var(--flight-green)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .score-summary{border-color:var(--flight-line)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .score-summary small{color:var(--flight-muted)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog .score-summary strong{color:var(--flight-ink)}body:is([data-phase=typing],[data-phase=pause]) #flow-dialog select{color:var(--flight-ink);background:var(--flight-panel-raised);border-color:var(--flight-line)}body:is([data-phase=typing],[data-phase=pause]) .primary{background:var(--flight-green);color:#fffdf6}body:is([data-phase=typing],[data-phase=pause]) .primary:hover{background:#426e4c}body:is([data-phase=typing],[data-phase=pause]) .text-button,body:is([data-phase=typing],[data-phase=pause]) .hint-button{color:#315f43}body:is([data-phase=typing],[data-phase=pause]) .text-button:hover,body:is([data-phase=typing],[data-phase=pause]) .hint-button:hover{color:var(--flight-ink)}body:is([data-phase=typing],[data-phase=pause]) :is(button,a,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--flight-focus);outline-offset:3px}body:is([data-phase=typing],[data-phase=pause]) #typing-field:focus-visible{outline:2px solid var(--flight-focus);outline-offset:3px;border-radius:3px}body:is([data-phase=typing],[data-phase=pause]) .masthead{background:#f7f6ecf5;border-bottom:1px solid var(--flight-line);backdrop-filter:none}body:is([data-phase=typing],[data-phase=pause]) .page-navigation a[aria-current]{color:var(--flight-ink);border-color:#72996a}body:is([data-phase=typing],[data-phase=pause]) .course-progress{color:#365c45;border-color:#abc0a1;background:#e6eddb}body:is([data-phase=typing],[data-phase=pause]) .code-coach{border-inline-start:3px solid #91ad85;border-radius:7px}body:is([data-phase=typing],[data-phase=pause]) .primary{background:#315c45}body:is([data-phase=typing],[data-phase=pause]) .universe{min-height:max(760px,var(--flight-min-height,0px))}@media(max-width:560px){body:is([data-phase=typing],[data-phase=pause]) .universe{min-height:max(800px,var(--flight-min-height,0px))}}
