:root{--bg:#101713;--bg-deep:#0b110e;--surface:#17221c;--surface-raised:#1d2a23;--surface-soft:#1e2b23c7;--ink:#f0f3ee;--ink-soft:#bdc7be;--ink-dim:#849187;--line:#ddeadf1f;--line-strong:#ddeadf38;--accent:#96cfa8;--accent-strong:#afd9bc;--accent-ink:#102117;--warning:#d7ad77;--danger:#ce7f84;--display:"Outfit", sans-serif;--mono:"Martian Mono", monospace;--typing:"JetBrains Mono", monospace;--shadow:0 28px 70px -42px #020c07e0;--radius-xl:2rem;--radius-lg:1.35rem;--radius-md:.9rem;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;min-height:100%}body{background:radial-gradient(70% 60% at 76% -8%, #5b836729, transparent 64%), var(--bg);min-width:320px;min-height:100dvh;color:var(--ink);font-family:var(--display);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}body:after{content:"";z-index:20;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");position:fixed;inset:0}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;font:inherit}a{color:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}::selection{background:var(--accent);color:var(--accent-ink)}.skip-link{z-index:40;background:var(--accent);color:var(--accent-ink);border-radius:.6rem;padding:.7rem 1rem;font-weight:700;transition:transform .18s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.site-header{grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;width:min(100%,1440px);margin:0 auto;padding:1.25rem clamp(1rem,3vw,2.8rem);display:grid}.brand{font-family:var(--mono);letter-spacing:.13em;justify-self:start;align-items:center;gap:.45rem;font-size:.78rem;font-weight:700;text-decoration:none;display:inline-flex}.brand span{color:var(--accent)}.main-nav{border:1px solid var(--line);background:#0d14108a;border-radius:.95rem;align-items:center;gap:.2rem;padding:.3rem;display:flex;box-shadow:inset 0 1px #ffffff0a}.nav-button{min-height:2.65rem;color:var(--ink-dim);cursor:pointer;background:0 0;border:0;border-radius:.66rem;align-items:center;gap:.5rem;padding:.65rem .9rem;font-size:.88rem;font-weight:600;transition:transform .18s,background-color .18s,color .18s;display:inline-flex}.nav-button svg{width:1.1rem;height:1.1rem}.nav-button:hover{color:var(--ink);background:#ffffff0b}.nav-button.is-active{color:var(--accent-ink);background:var(--accent)}.nav-button:active,.button:active,.text-button:active,.lesson-button:active,.setting-row:active{transform:translateY(1px)scale(.99)}.header-tools{justify-self:end;align-items:center;gap:.65rem;display:flex}.star-total,.locale-link{border:1px solid var(--line);min-height:2.3rem;color:var(--ink-soft);font-family:var(--mono);font-variant-numeric:tabular-nums;border-radius:.7rem;align-items:center;gap:.45rem;padding:.5rem .72rem;font-size:.66rem;text-decoration:none;display:inline-flex}.locale-link:hover{border-color:var(--line-strong);color:var(--ink)}.menu-main{flex:1;width:min(100%,1280px);margin:0 auto;padding:clamp(1.2rem,3vw,2.6rem) clamp(1rem,4vw,3.8rem) 5rem}.eyebrow{color:var(--accent);font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;align-items:center;gap:.45rem;font-size:.67rem;font-weight:600;display:flex}.continue-panel{border-radius:var(--radius-xl);min-height:25rem;box-shadow:var(--shadow), inset 0 1px 0 #ffffff0f;background:radial-gradient(90% 140% at 95% 20%,#73a38038,#0000 58%),linear-gradient(125deg,#1f3127f0,#121b16fa);border:1px solid #96cfa847;grid-template-columns:minmax(0,1.3fr) minmax(15rem,.7fr);align-items:center;gap:3rem;padding:clamp(1.8rem,5vw,4.5rem);display:grid;position:relative;overflow:hidden}.continue-panel:before{content:"";border:1px solid #96cfa838;border-radius:50%;width:26rem;height:26rem;position:absolute;bottom:-16rem;right:-10rem}.continue-copy{z-index:1;position:relative}.continue-copy h1{letter-spacing:-.045em;text-wrap:balance;max-width:18ch;margin-top:.8rem;font-size:clamp(2.15rem,5vw,4.35rem);line-height:.98}.continue-copy>p:not(.eyebrow){max-width:54ch;color:var(--ink-soft);margin-top:1.1rem;font-size:1.05rem}.button{cursor:pointer;border:1px solid #0000;border-radius:.8rem;justify-content:center;align-items:center;gap:.62rem;min-height:2.9rem;padding:.78rem 1.1rem;font-weight:700;text-decoration:none;transition:transform .18s,background-color .18s,border-color .18s;display:inline-flex}.button-primary{background:var(--accent);color:var(--accent-ink);box-shadow:inset 0 1px #ffffff52}.button-primary:hover{background:var(--accent-strong);transform:translateY(-1px)}.button-quiet{border-color:var(--line);color:var(--ink-soft);background:#ffffff09}.button-quiet:hover{border-color:var(--line-strong);color:var(--ink);background:#ffffff0f}.button-large{min-height:3.35rem;margin-top:1.7rem;padding-inline:1.35rem}.continue-visual{flex-direction:column;justify-content:flex-end;gap:1rem;min-height:15rem;display:flex;position:relative}.continue-visual:before,.continue-visual:after{content:"";border:1px solid #96cfa833;border-radius:50%;position:absolute}.continue-visual:before{width:14rem;height:14rem;top:-1rem;right:0}.continue-visual:after{background:#96cfa817;width:8rem;height:8rem;top:2rem;right:3rem}.route-number{z-index:1;font-family:var(--mono);letter-spacing:-.08em;color:#f0f3eeeb;align-self:flex-end;font-size:clamp(3.8rem,9vw,7rem);font-weight:700;line-height:.8;position:relative}.route-track{background:#ffffff14;border-radius:1rem;height:.5rem;overflow:hidden}.route-track i{transform-origin:0;background:var(--accent);border-radius:inherit;width:100%;height:100%;display:block}.continue-visual>span:last-child{color:var(--ink-dim);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem}.course-section,.wide-section{margin-top:clamp(4rem,8vw,7rem)}.section-heading{grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr);align-items:end;gap:3rem;margin-bottom:2rem;display:grid}.section-heading h1,.section-heading h2{letter-spacing:-.04em;text-wrap:balance;max-width:20ch;margin-top:.65rem;font-size:clamp(2rem,4.2vw,3.6rem);line-height:1.03}.section-heading>p{max-width:52ch;color:var(--ink-soft);font-size:1.02rem;line-height:1.65}.level-list{gap:.8rem;list-style:none;display:grid}.level-block{border:1px solid var(--line);border-radius:var(--radius-lg);animation:.52s cubic-bezier(.2,.8,.2,1) both level-enter;animation-delay:var(--delay);background:#141e18a8;overflow:hidden}@keyframes level-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.level-block.is-open{border-color:color-mix(in srgb, var(--level-accent) 42%, transparent);background:#18241de0}.level-header{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) minmax(5rem,10rem) auto;align-items:center;gap:1rem;width:100%;min-height:5.4rem;padding:1rem 1.15rem;display:grid}.level-header:hover{background:#ffffff06}.level-mark{background:color-mix(in srgb, var(--level-accent) 15%, transparent);width:3rem;height:3rem;color:var(--level-accent);border-radius:.85rem;place-items:center;display:grid}.level-heading-copy{gap:.15rem;min-width:0;display:grid}.level-heading-copy strong{letter-spacing:-.015em;font-size:clamp(1rem,2vw,1.3rem)}.level-heading-copy small{color:var(--ink-dim);font-family:var(--mono);font-size:.62rem}.level-progress{background:#ffffff12;border-radius:1rem;height:.4rem;overflow:hidden}.level-progress i{transform-origin:0;background:var(--level-accent);width:100%;height:100%;display:block}.level-caret{color:var(--ink-dim);transition:transform .22s}.level-block.is-open .level-caret{transform:rotate(180deg)}.lesson-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;padding:0 1.1rem 1.15rem 5.15rem;display:grid}.lesson-button{border:1px solid var(--line);border-radius:var(--radius-md);text-align:left;cursor:pointer;background:#090f0b59;grid-template-rows:auto 1fr auto auto;grid-template-columns:auto 1fr;align-items:start;gap:.45rem .7rem;min-height:10rem;padding:.95rem;transition:transform .18s,border-color .18s,background-color .18s;display:grid;position:relative}.lesson-button:hover{border-color:var(--line-strong);background:#ffffff09;transform:translateY(-2px)}.lesson-button.is-recommended{border-color:var(--accent);background:#96cfa817}.lesson-button.is-complete{background:#96cfa809}.lesson-number{color:var(--ink);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:700}.lesson-status{color:var(--accent);font-family:var(--mono);text-transform:uppercase;justify-self:end;align-items:center;gap:.25rem;font-size:.52rem;font-weight:700;display:inline-flex}.lesson-button>strong{text-wrap:pretty;grid-column:1/-1;align-self:end;font-size:.96rem;line-height:1.25}.lesson-meta{color:var(--ink-dim);grid-column:1/-1;font-size:.75rem}.stars{color:#c8b67b;grid-column:1/-1;gap:.2rem;display:inline-flex}.stars svg:not([weight=fill]){opacity:.28}.game-grid{grid-template-columns:1.25fr .75fr;grid-auto-rows:minmax(13rem,auto);gap:.85rem;display:grid}.game-tile{border:1px solid var(--line);border-radius:var(--radius-lg);background:#17221cbf;grid-template-rows:1fr auto auto;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1.25rem;min-height:14rem;padding:clamp(1.3rem,3vw,2rem);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0a}.game-tile:nth-child(3){grid-column:1/-1;min-height:11rem}.game-tile:nth-child(4){grid-area:3/2/span 2}.game-tile:nth-child(5){grid-column:1}.game-tile:nth-child(6){grid-column:1/-1}.game-tile:after{content:"";border:1px solid #96cfa81f;border-radius:50%;width:9rem;height:9rem;position:absolute;top:-4rem;right:-4rem}.game-tile>svg{color:var(--accent)}.game-tile h2{letter-spacing:-.03em;font-size:clamp(1.35rem,2.5vw,2rem)}.game-tile p{max-width:48ch;color:var(--ink-soft);margin-top:.45rem;line-height:1.55}.game-tile small{color:var(--ink-dim);font-family:var(--mono);grid-column:2;align-self:end;font-size:.58rem}.text-button{color:var(--accent);cursor:pointer;background:0 0;border:0;grid-column:2;place-self:end start;align-items:center;gap:.45rem;font-weight:700;display:inline-flex}.text-button:hover{color:var(--accent-strong)}.metrics-strip{border-block:1px solid var(--line);grid-template-columns:repeat(4,1fr);padding-block:1.4rem;display:grid}.metric{border-right:1px solid var(--line);grid-template-columns:auto 1fr;gap:.15rem .7rem;padding:.8rem clamp(.7rem,2vw,1.5rem);display:grid}.metric:last-child{border-right:0}.metric>span{color:var(--accent);grid-row:1/3}.metric svg{width:1.4rem;height:1.4rem}.metric strong{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:clamp(1.15rem,2vw,1.5rem)}.metric small{color:var(--ink-dim);font-size:.74rem}.progress-layout{grid-template-columns:minmax(0,1.4fr) minmax(18rem,.6fr);align-items:start;gap:.9rem;margin-top:2.4rem;display:grid}.records-panel,.settings-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:#16201aad;padding:clamp(1.2rem,3vw,2rem)}.record-row{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(8rem,1fr) auto;align-items:center;gap:.9rem;min-height:4.2rem;display:grid}.record-row:last-child{border-bottom:0}.record-row svg{color:var(--accent)}.record-row span{color:var(--ink-dim);font-family:var(--mono);text-align:right;font-size:.62rem}.settings-panel{gap:.2rem;display:grid}.setting-row{border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:1rem;width:100%;min-height:3.6rem;display:flex}.setting-row>span{align-items:center;gap:.65rem;display:flex}.setting-row>span svg{color:var(--accent)}.setting-row>i{background:#ffffff1a;border-radius:1rem;width:2.6rem;height:1.45rem;padding:.2rem;transition:background .18s}.setting-row>i b{background:var(--ink-dim);border-radius:50%;width:1.05rem;height:1.05rem;transition:transform .18s,background .18s;display:block}.setting-row>i.is-on{background:#96cfa840}.setting-row>i.is-on b{background:var(--accent);transform:translate(1.15rem)}.settings-note{color:var(--ink-dim);margin-top:1rem;font-size:.78rem}.site-footer{border-top:1px solid var(--line);width:min(100%,1440px);color:var(--ink-dim);font-family:var(--mono);justify-content:space-between;gap:1rem;margin:auto auto 0;padding:1.4rem clamp(1rem,3vw,2.8rem);font-size:.58rem;display:flex}.site-footer a{align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}.site-footer a:hover{color:var(--accent)}.skip-dialog{border:1px solid var(--line-strong);border-radius:var(--radius-xl);width:min(100% - 2rem,34rem);color:var(--ink);background:#17221c;padding:clamp(1.5rem,4vw,2.5rem);box-shadow:0 32px 90px #030905b8,inset 0 1px #ffffff0d}.skip-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#060a08c7}.dialog-icon{width:3.3rem;height:3.3rem;color:var(--warning);background:#d7ad771f;border-radius:1rem;place-items:center;margin-bottom:1.4rem;display:grid}.skip-dialog h2{letter-spacing:-.035em;margin-top:.5rem;font-size:clamp(1.7rem,4vw,2.35rem);line-height:1.05}.skip-dialog>p:not(.eyebrow){color:var(--ink-soft);margin-top:1rem;line-height:1.6}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.65rem;margin-top:1.7rem;display:flex}.game-page{background:var(--bg-deep);min-height:100dvh;position:relative;overflow:hidden}.scene{pointer-events:none;position:fixed;inset:0;overflow:hidden}.game-scrim{z-index:1;pointer-events:none;background:linear-gradient(#080e0b40,#080e0bb3);position:fixed;inset:0}.game-content{z-index:2;flex-direction:column;width:min(100%,1320px);min-height:100dvh;margin:0 auto;padding:clamp(.8rem,2vw,1.6rem) clamp(.8rem,3vw,2.4rem) clamp(1rem,3vw,2rem);display:flex;position:relative}.game-header{grid-template-columns:minmax(9rem,1fr) minmax(0,2fr) minmax(9rem,1fr);align-items:center;gap:1rem;min-height:4.6rem;display:grid}.game-back{cursor:pointer;background:#0a110d6b;border:1px solid #ffffff1f;border-radius:.75rem;justify-self:start;align-items:center;gap:.5rem;min-height:2.7rem;padding:.6rem .8rem;font-size:.84rem;font-weight:600;display:inline-flex}.game-back:hover{background:#ffffff12}.game-identity{text-align:center;min-width:0;display:grid}.game-identity span{color:var(--accent);font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;font-size:.58rem}.game-identity strong{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;overflow:hidden}.round-indicator{justify-self:end;gap:.35rem;width:min(100%,11rem);display:grid}.round-indicator>span{color:var(--ink-soft);font-family:var(--mono);text-align:right;font-size:.57rem}.round-indicator>i{background:#ffffff1f;border-radius:1rem;height:.35rem;overflow:hidden}.round-indicator b{transform-origin:0;background:var(--accent);width:100%;height:100%;transition:transform .3s;display:block}.lesson-intro{flex:1;grid-template-columns:minmax(0,.9fr) minmax(24rem,1.1fr);align-items:center;gap:clamp(2rem,6vw,6rem);padding:clamp(2rem,6vh,5rem) clamp(0rem,4vw,3rem);display:grid}.intro-copy h1{letter-spacing:-.05em;text-wrap:balance;max-width:15ch;margin-top:.7rem;font-size:clamp(2.3rem,5vw,4.8rem);line-height:.96}.intro-copy>p:not(.eyebrow){max-width:52ch;color:var(--ink-soft);margin-top:1.2rem;font-size:1.05rem;line-height:1.6}.new-keys{flex-wrap:wrap;gap:.55rem;margin-top:1.3rem;display:flex}.new-keys kbd{min-width:2.8rem;min-height:2.8rem;color:var(--accent);font-family:var(--typing);background:#96cfa81f;border:1px solid #96cfa859;border-radius:.65rem;place-items:center;padding:.55rem;font-size:1.1rem;display:grid;box-shadow:inset 0 -2px #00000038}.round-preview{list-style:none;display:grid}.round-preview li{border-bottom:1px solid #ffffff1f;grid-template-columns:auto auto 1fr;align-items:center;gap:1rem;min-height:7.2rem;padding:1.1rem 0;display:grid}.round-preview li:first-child{border-top:1px solid #ffffff1f}.round-preview li>span{border:1px solid var(--line-strong);width:2rem;height:2rem;color:var(--ink-dim);font-family:var(--mono);border-radius:.6rem;place-items:center;font-size:.7rem;display:grid}.round-preview li.is-done>span{border-color:var(--accent);color:var(--accent)}.round-preview li>svg{color:var(--accent)}.round-preview div{gap:.3rem;display:grid}.round-preview strong{font-size:1.1rem}.round-preview small{max-width:48ch;color:var(--ink-dim)}.free-intro{text-align:left;flex-direction:column;flex:1;justify-content:center;align-items:flex-start;max-width:43rem;margin:0 auto;display:flex}.free-intro>svg{color:var(--accent);margin-bottom:1.4rem}.free-intro h1{letter-spacing:-.055em;margin-top:.6rem;font-size:clamp(2.6rem,7vw,5.4rem);line-height:.94}.free-intro>p:not(.eyebrow){color:var(--ink-soft);margin-top:1.2rem;font-size:1.08rem}.free-intro>small{color:var(--ink-dim);font-family:var(--mono);margin-top:.7rem;font-size:.62rem}.round-stage{flex-direction:column;flex:1;justify-content:center;gap:clamp(.7rem,1.5vw,1.15rem);min-height:0;padding-top:.4rem;display:flex}.round-stats{align-items:stretch;gap:.55rem;display:flex}.round-stats>span{background:#080e0b66;border:1px solid #ffffff1c;border-radius:.7rem;gap:.05rem;min-width:7.4rem;padding:.55rem .72rem;display:grid}.round-stats small{color:var(--ink-dim);font-size:.62rem}.round-stats strong{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.76rem}.text-stage{overscroll-behavior:contain;scrollbar-color:#96cfa861 transparent;border-radius:var(--radius-lg);min-height:clamp(10rem,26dvh,18rem);max-height:34dvh;box-shadow:var(--shadow), inset 0 1px 0 #ffffff0b;background:linear-gradient(150deg,#0f1812d1,#0a100cad);border:1px solid #ddeadf29;align-items:center;padding:clamp(1.15rem,3vw,2.3rem);display:flex;overflow:auto}.typing-copy{width:100%;color:var(--ink-dim);font-family:var(--typing);letter-spacing:-.025em;white-space:pre-wrap;font-size:clamp(1.25rem,2.8vw,2.25rem);font-weight:600;line-height:1.65}.typing-word{display:inline-block}.typing-character{border-radius:.24em;transition:color .1s,background-color .1s;display:inline;position:relative}.typing-character.is-done{color:var(--ink)}.typing-character.is-todo{color:#96a398}.typing-character.is-current,.typing-character.is-error{color:var(--accent-ink);background:var(--accent);margin-inline:-.08em;padding:.04em .08em}.typing-space.is-current,.typing-space.is-error{min-width:.6em;display:inline-block}.typing-character.is-current:after{content:"";background:var(--accent);border-radius:1rem;height:.09em;animation:1s steps(2,end) infinite caret-pulse;position:absolute;bottom:-.18em;left:.08em;right:.08em}.typing-character.is-error{color:#2a1112;background:var(--danger);animation:.18s key-shake}@keyframes caret-pulse{50%{opacity:.25}}@keyframes key-shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}.typing-caret{background:var(--accent);vertical-align:-.12em;width:.12em;height:1.1em;display:inline-block}.race-track{border-bottom:2px solid #ffffff26;height:2.4rem;margin:.15rem 1.4rem 0;position:relative}.race-track:before{content:"";border-bottom:2px dashed #ffffff21;position:absolute;bottom:-2px;left:0;right:0}.race-player,.race-goal{width:calc(100% - 1.4rem);color:var(--accent);transition:transform .22s;display:flex;position:absolute;bottom:.18rem;left:0}.race-goal{color:var(--warning);opacity:.8}.shield-status,.story-milestones{color:var(--ink-soft);align-items:center;gap:.6rem;font-size:.8rem;display:flex}.shield-status>svg{color:var(--accent)}.shield-status>span{gap:.28rem;display:flex}.shield-status i{background:#ffffff1a;border-radius:1rem;width:1.65rem;height:.35rem}.shield-status i.is-full{background:var(--accent)}.story-milestones>span{margin-right:auto}.story-milestones i{border:1px solid var(--line-strong);border-radius:50%;width:.6rem;height:.6rem;transition:transform .2s,background-color .2s}.story-milestones i.is-revealed{border-color:var(--accent);background:var(--accent);transform:scale(1.25)}.sprint-clock{height:1.7rem;color:var(--accent);align-items:center;gap:.7rem;display:flex}.sprint-clock>i{background:#ffffff1a;border-radius:1rem;flex:1;height:.38rem;overflow:hidden}.sprint-clock>i:after{content:"";width:100%;height:100%;transform:inherit;transform-origin:0;background:var(--accent);display:block}.keyboard-scroll{scrollbar-width:thin;width:100%;padding:.2rem 0 .4rem;overflow-x:auto}.keyboard-guide{flex-direction:column;align-items:center;gap:clamp(.2rem,.6vw,.42rem);width:max-content;min-width:min(100%,54rem);margin:0 auto;display:flex}.keyboard-row{justify-content:center;gap:clamp(.2rem,.6vw,.42rem);display:flex}.keycap{--key-width:clamp(2rem, 4.3vw, 3.55rem);width:var(--key-width);height:clamp(2rem,4vw,3.15rem);color:var(--ink-soft);font-family:var(--typing);background:#17221dc7;border:1px solid #ffffff21;border-bottom-width:2px;border-radius:clamp(.4rem,.8vw,.68rem);place-items:center;font-size:clamp(.68rem,1.2vw,.95rem);font-weight:700;transition:transform .1s,background-color .1s,color .1s,border-color .1s;display:grid;position:relative;box-shadow:inset 0 1px #ffffff0a}.keycap:after{content:"";background:var(--finger);opacity:.75;border-radius:1rem;height:2px;position:absolute;bottom:-2px;left:20%;right:20%}.keycap.is-wide{width:clamp(4rem,9vw,7.2rem);font-family:var(--display);font-size:.72rem}.keycap.is-space{width:clamp(9rem,27vw,20rem)}.keycap.is-active{border-color:var(--finger);background:var(--finger);color:#101713;transform:translateY(1px)}.keycap.is-active:after{opacity:0}.keycap>i{opacity:.55;background:currentColor;border-radius:1rem;width:.75rem;height:.12rem;position:absolute;bottom:.3rem}.target-stage{padding-bottom:.5rem}.target-arena{border-radius:var(--radius-lg);background:#080e0b80;border:1px solid #ffffff21;place-items:center;min-height:clamp(13rem,35dvh,24rem);display:grid;position:relative;overflow:hidden}.meteor-lane{position:absolute;inset:0}.meteor-target{color:var(--accent);animation:meteor-fall var(--target-duration) linear both;will-change:transform;align-items:center;gap:.7rem;display:flex;position:absolute;top:1rem;left:50%}.meteor-target strong{background:var(--accent);min-width:4rem;height:4rem;color:var(--accent-ink);font-family:var(--typing);border:1px solid #96cfa873;border-radius:1rem;place-items:center;font-size:2rem;display:grid}@keyframes meteor-fall{0%{transform:translate(-50%,-1rem)}to{transform:translate(-50%,calc(35dvh - 6rem))}}.meteor-ground{background:repeating-linear-gradient(90deg, var(--danger) 0 1.2rem, transparent 1.2rem 2rem);opacity:.55;height:2px;position:absolute;bottom:1.2rem;left:8%;right:8%}.reaction-target{border-radius:var(--radius-xl);background:#96cfa814;border:1px solid #96cfa847;align-content:center;place-items:center;gap:.7rem;min-width:min(80%,22rem);min-height:12rem;display:grid;position:relative}.reaction-target small{color:var(--ink-soft)}.reaction-target strong{font-family:var(--typing);font-size:clamp(3.4rem,10vw,6rem);line-height:1}.reaction-target>i{background:var(--accent);transform-origin:0;border-radius:1rem;height:.35rem;animation:linear both target-time;position:absolute;bottom:0;left:0;right:0}@keyframes target-time{to{transform:scaleX(0)}}.reaction-target.is-wrong{border-color:var(--danger);animation:.18s key-shake}.target-queue{opacity:.6;justify-content:center;gap:.35rem;display:flex;position:absolute;bottom:.8rem;left:1rem;right:1rem}.target-queue span{border:1px solid var(--line);min-width:1.6rem;height:1.6rem;font-family:var(--typing);border-radius:.4rem;place-items:center;font-size:.66rem;display:grid}.result-view{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;width:100%;max-width:56rem;margin:0 auto;padding-block:2rem;display:flex}.result-symbol{border-radius:1.2rem;place-items:center;width:4rem;height:4rem;margin-bottom:1.6rem;display:grid}.result-symbol.is-success{color:var(--accent);background:#96cfa829}.result-symbol.is-failed{color:var(--danger);background:#ce7f8424}.result-view h1{letter-spacing:-.055em;margin-top:.55rem;font-size:clamp(2.5rem,7vw,5.4rem);line-height:.95}.result-view>p:not(.eyebrow){max-width:52ch;color:var(--ink-soft);margin-top:1rem}.result-metrics{border-block:1px solid #ffffff24;grid-template-columns:repeat(4,1fr);width:100%;margin-top:2.3rem;padding-block:1.3rem;display:grid}.result-metrics>span{border-right:1px solid #ffffff1f;gap:.2rem;padding:.5rem 1.2rem;display:grid}.result-metrics>span:last-child{border-right:0}.result-metrics small{color:var(--ink-dim)}.result-metrics strong{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:clamp(1.05rem,2vw,1.4rem)}.result-actions{flex-wrap:wrap;gap:.65rem;margin-top:2rem;display:flex}.lesson-complete .stars{margin-bottom:1rem}.complete-trophy{color:var(--accent);margin-bottom:1.1rem}.not-found{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.2rem;min-height:100dvh;padding:2rem;display:flex}.not-found svg{color:var(--accent)}.scene-ocean{background:linear-gradient(#173b3d 0%,#102d32 40%,#091b22 100%)}.ocean-light{background:radial-gradient(70% 60% at 50% 0,#a4d7cf47,#0000 70%);transition:transform .6s cubic-bezier(.2,.8,.2,1);position:absolute;inset:-20% -10% 20%}.ocean-horizon{background:linear-gradient(#649a8b29,#040f119e);border-radius:50% 50% 0 0;height:52%;transition:transform .6s;position:absolute;bottom:-30%;left:-10%;right:-10%}.bubble{border:1px solid #cee7e159;border-radius:50%;width:.7rem;height:.7rem;animation:8s linear infinite bubble-rise;position:absolute;bottom:-2rem}@keyframes bubble-rise{to{opacity:0;transform:translate(2rem,-110dvh)}}.scene-forest{background:linear-gradient(#243c2b,#14291c 48%,#0a1710)}.forest-light{background:radial-gradient(80% 60% at 60% -5%,#bed3983d,#0000 64%);position:absolute;inset:0}.plant{transform-origin:bottom;background:linear-gradient(145deg,#648d63,#2e593c);border-radius:70% 15% 30% 8%;width:4.2%;min-width:1.8rem;transition:transform .55s cubic-bezier(.25,.8,.25,1);position:absolute;bottom:-2%;box-shadow:inset -8px -10px 18px #04110840}.scene-orbit{background:radial-gradient(100% 90% at 78% 15%,#313147 0%,#1b2333 46%,#0c1320 100%)}.star-dot{background:#f0f3eec7;border-radius:50%;animation:4s ease-in-out infinite star-fade;position:absolute}@keyframes star-fade{50%{opacity:.24}}.planet{background:radial-gradient(circle at 35% 28%,#b9a5bd,#6b607f 48%,#26293b 100%);border-radius:50%;width:18rem;height:18rem;transition:transform .6s cubic-bezier(.2,.8,.2,1);position:absolute;top:16%;right:10%;box-shadow:inset -30px -30px 55px #05080f8c}.orbit-ring{border:2px solid #c2b2c738;border-radius:50%;width:29rem;height:9rem;transition:transform .6s;position:absolute;top:28%;right:3%}.warp-line{background:linear-gradient(90deg,#0000,#f0f3ee80);width:6rem;height:1px;animation:2s linear infinite warp;position:absolute;left:56%}@keyframes warp{0%{opacity:0;transform:translate(0)scaleX(.25)}20%{opacity:1}to{opacity:0;transform:translate(45vw)scaleX(1)}}@media (width<=980px){.site-header{grid-template-columns:1fr auto}.main-nav{grid-area:2/1/auto/-1;justify-self:center}.continue-panel{grid-template-columns:1fr .55fr}.lesson-grid{grid-template-columns:repeat(3,1fr);padding-left:1.1rem}.lesson-intro{grid-template-columns:1fr;align-content:center;gap:2rem}.round-preview{grid-template-columns:repeat(3,1fr);gap:.65rem}.round-preview li,.round-preview li:first-child{border:1px solid #ffffff1f;border-radius:1rem;grid-template-columns:auto 1fr;align-content:start;min-height:11rem;padding:1rem}.round-preview li>svg{justify-self:end}.round-preview li div{grid-column:1/-1}.keycap{--key-width:clamp(1.95rem, 5.3vw, 3.2rem)}}@media (width<=720px){.site-header{gap:.7rem;padding:.85rem 1rem}.star-total{display:none}.main-nav{grid-template-columns:repeat(3,1fr);width:100%;display:grid}.nav-button{justify-content:center;padding-inline:.4rem;font-size:.78rem}.menu-main{padding:1rem 1rem 3.5rem}.continue-panel{border-radius:1.35rem;grid-template-columns:1fr;gap:1rem;min-height:0;padding:1.45rem}.continue-copy h1{font-size:clamp(2rem,11vw,3.2rem)}.continue-visual{grid-template-columns:auto 1fr;align-items:end;min-height:6.5rem;display:grid}.continue-visual:before,.continue-visual:after{display:none}.route-number{justify-self:start;font-size:3.8rem}.route-track{align-self:center}.continue-visual>span:last-child{grid-column:1/-1}.section-heading{grid-template-columns:1fr;gap:1rem}.section-heading h1,.section-heading h2{font-size:clamp(2rem,9vw,3rem)}.level-header{grid-template-columns:auto 1fr auto;gap:.7rem}.level-progress{display:none}.lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-button{min-height:9.5rem}.game-grid{grid-template-columns:1fr;grid-auto-rows:auto}.game-tile,.game-tile:nth-child(n){grid-area:auto/1;grid-template-columns:auto minmax(0,1fr);min-height:14rem}.metrics-strip{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.progress-layout{grid-template-columns:1fr}.record-row{grid-template-columns:auto 1fr;padding-block:.65rem}.record-row span{text-align:left;grid-column:2}.site-footer{flex-direction:column}.dialog-actions .button{width:100%}.game-content{padding:.75rem}.game-header{grid-template-columns:auto 1fr auto;gap:.55rem}.game-back{justify-content:center;width:2.65rem;padding:0;font-size:0}.game-identity{text-align:left}.round-indicator{width:4.8rem}.round-indicator span{font-size:.5rem}.lesson-intro{padding:2rem .3rem}.intro-copy h1{font-size:clamp(2.2rem,12vw,3.6rem)}.round-preview{grid-template-columns:1fr}.round-preview li{grid-template-columns:auto auto 1fr;min-height:7rem}.round-preview li div{grid-column:auto}.round-stats{grid-template-columns:repeat(3,1fr);gap:.35rem;display:grid}.round-stats>span{min-width:0;padding:.45rem}.round-stats small{font-size:.54rem}.round-stats strong{font-size:.65rem}.text-stage{min-height:12rem;max-height:38dvh;padding:1rem}.typing-copy{font-size:clamp(1.15rem,6vw,1.55rem)}.keyboard-guide{transform-origin:top}.keyboard-scroll{width:calc(100% + 1.5rem);margin-inline:-.75rem}.target-arena{min-height:15rem}.result-view{padding:2rem .4rem}.result-metrics{grid-template-columns:repeat(2,1fr)}.result-metrics>span:nth-child(2){border-right:0}.result-metrics>span:nth-child(-n+2){border-bottom:1px solid #ffffff1f}.result-actions .button{flex:100%}.planet{top:19%;right:-24%}.orbit-ring{right:-52%}iframe[src*=feedback],[data-feedback-widget]{bottom:max(.75rem, env(safe-area-inset-bottom))!important;right:.75rem!important}}@media (height<=760px) and (width>=721px){.game-header{min-height:3.8rem}.round-stage{gap:.55rem}.text-stage{min-height:8rem;max-height:28dvh;padding-block:.8rem}.typing-copy{font-size:clamp(1.15rem,2.4vw,1.75rem);line-height:1.45}.keycap{height:clamp(1.75rem,4vw,2.6rem)}.lesson-intro{padding-block:1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
