.nav{position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:color-mix(in srgb,var(--bg) 78%,transparent);border-bottom:1px solid var(--border)}#try,#how,#pitch,#languages{scroll-margin-top:78px}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:62px}.brand{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:660;letter-spacing:-.02em;color:var(--text);text-decoration:none}.logo{color:var(--accent)}.nav nav{display:flex;align-items:center;gap:var(--space-5)}.nav nav a{color:var(--text-muted);text-decoration:none;font-size:var(--step--1);transition:color .18s var(--ease)}.nav nav a:hover{color:var(--text)}.nav-cta{padding:var(--space-2) var(--space-4);border:1px solid var(--accent-line);border-radius:var(--radius-full);color:var(--accent)!important;background:var(--accent-soft)}@media(max-width:720px){.nav-inner{height:auto;padding:var(--space-3) 0;gap:var(--space-3)}.nav nav{gap:var(--space-3)}.nav nav a[href^="#"]{display:none}.brand span{font-size:var(--step--1)}}@media(max-width:420px){.nav-inner{flex-wrap:wrap}.nav nav{width:100%;justify-content:space-between}}.hero{padding:var(--space-9) 0 var(--space-7);text-align:center}.pill{display:inline-block;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text-muted);font-size:var(--step--1);margin-bottom:var(--space-5)}h1{font-size:var(--step-4);font-weight:700;margin-bottom:var(--space-5)}.grad{background:linear-gradient(96deg,var(--accent),#7ff0d2 55%,var(--warm));-webkit-background-clip:text;background-clip:text;color:transparent}.hero-lede{max-width:62ch;margin-inline:auto;color:var(--text-muted);font-size:var(--step-1)}.hero-lede strong{color:var(--text);font-weight:600}.hero-cta{display:flex;gap:var(--space-3);justify-content:center;margin-top:var(--space-6);flex-wrap:wrap}.btn-primary,.btn-ghost{display:inline-flex;align-items:center;gap:var(--space-2);justify-content:center;padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-weight:580;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:transform .16s var(--ease),background .16s var(--ease),box-shadow .16s var(--ease)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--glow)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{border-color:var(--border-strong);color:var(--text);background:var(--bg-raised)}.btn-ghost:hover{background:var(--surface-hover);transform:translateY(-1px)}.lg{padding:var(--space-4) var(--space-6);font-size:var(--step-0)}.btn-link{background:none;border:0;color:var(--accent);cursor:pointer;padding:0;font-size:var(--step--1);text-decoration:underline;text-underline-offset:3px}.btn-rec{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer;padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:560;transition:background .16s var(--ease),border-color .16s var(--ease)}.btn-rec:hover:not(:disabled){background:var(--surface-hover);border-color:var(--accent-line)}.btn-rec:disabled{opacity:.55;cursor:not-allowed}.btn-rec .dot{width:10px;height:10px;border-radius:50%;background:var(--danger);flex:none}.btn-rec.is-live{border-color:var(--danger);background:var(--danger-soft)}.btn-rec.is-live .dot{animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{50%{opacity:.25;transform:scale(.8)}}.btn-play{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer;padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);border:0;background:var(--accent);color:var(--accent-ink);font-weight:600}.btn-play:hover{background:var(--accent-hover);box-shadow:var(--glow)}.demo{margin:var(--space-7) 0 var(--space-9);padding:var(--space-7);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}@media(max-width:640px){.demo{padding:var(--space-5)}}.demo-head{max-width:60ch;margin-bottom:var(--space-6)}.demo-head h2{font-size:var(--step-2);margin:var(--space-2) 0 var(--space-3)}.eyebrow{color:var(--accent);font-size:var(--step--1);font-weight:620;letter-spacing:.09em;text-transform:uppercase}.lede{color:var(--text-muted)}.lede strong{color:var(--text)}.hint{color:var(--text-faint);font-size:var(--step--1);margin-top:var(--space-2)}.hint strong{color:var(--text-muted)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--danger-soft);border:1px solid var(--danger);color:#ffd9d9;margin-bottom:var(--space-5);font-size:var(--step--1)}.alert-dismiss{margin-left:var(--space-3);color:#ffd9d9!important}.error-boundary{padding:var(--space-8) 0;text-align:center}.error-boundary .alert{display:inline-grid;gap:var(--space-3);justify-items:center;margin-bottom:0}.char-count{align-self:flex-end;color:var(--text-faint);font-size:var(--step--1);font-variant-numeric:tabular-nums}.steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-5)}.step{display:grid;grid-template-columns:40px 1fr;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);transition:border-color .2s var(--ease),opacity .2s var(--ease)}.step.is-active{border-color:var(--accent-line)}.step.is-done{opacity:.82}.step-n{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:660;font-size:var(--step--1);background:var(--bg-sunken);border:1px solid var(--border-strong);color:var(--text-muted)}.step.is-active .step-n{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.step-body h3{font-size:var(--step-1);margin-bottom:var(--space-3)}.step-body h4{font-size:var(--step-0);margin:0 0 var(--space-3)}@media(max-width:560px){.step{grid-template-columns:1fr}}.read-aloud{padding:var(--space-4);border-radius:var(--radius);background:var(--bg-sunken);border-left:3px solid var(--accent);font-size:var(--step-1);line-height:1.55}.rec-row{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-4);flex-wrap:wrap}.wave{display:flex;align-items:center;gap:3px;height:46px}.wave span{width:3px;border-radius:var(--radius-full);background:var(--accent);transition:height .07s linear;opacity:.85}.progress{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);color:var(--text-muted);font-size:var(--step--1)}.spinner{width:15px;height:15px;border-radius:50%;flex:none;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.profile-card{display:flex;gap:var(--space-5);align-items:center;flex-wrap:wrap;padding:var(--space-4);border-radius:var(--radius);background:var(--bg-sunken);border:1px solid var(--border)}.pitch-readout{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.pitch-num{font-size:var(--step-3);font-weight:700;color:var(--accent);line-height:1}.pitch-unit{color:var(--accent);font-size:var(--step-1)}.pitch-label{color:var(--text-faint);font-size:var(--step--1);width:100%}.profile-meta{flex:1;min-width:220px}.heard{color:var(--text-muted);font-size:var(--step--1);font-style:italic;margin-bottom:var(--space-2)}.controls{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--step--1);color:var(--text-muted)}.field.grow{flex:1;min-width:260px}.field select,.field textarea{font:inherit;color:var(--text);background:var(--bg-sunken);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-3);resize:vertical}.field select:focus,.field textarea:focus{border-color:var(--accent);outline:none}.lesson-card{padding:var(--space-5);border-radius:var(--radius);background:var(--bg-sunken);border:1px solid var(--border)}.target{font-size:var(--step-2);line-height:1.5;font-weight:560}.target.is-tonal{font-size:var(--step-3);letter-spacing:.02em}.target .lit{color:var(--accent);background:var(--accent-soft);border-radius:4px;box-shadow:0 0 0 4px var(--accent-soft)}.roman{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--step-0);margin-top:var(--space-3)}.literal{color:var(--text-faint);font-size:var(--step--1);margin-top:var(--space-2)}.colloquial{color:var(--text-muted);font-size:var(--step--1);margin-top:var(--space-3)}.colloquial-label{color:var(--accent);font-weight:600}.play-row{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap;margin:var(--space-5) 0 var(--space-3)}.dial{display:flex;flex-direction:column;gap:var(--space-1);flex:1;min-width:220px}.dial-label{font-size:var(--step--1);color:var(--text-muted)}.dial-label em{color:var(--accent);font-style:normal;font-family:var(--font-mono)}.dial input{width:100%;accent-color:var(--accent)}.words{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-5) 0}.word-chip{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border)}.w-target{font-size:var(--step-1);font-weight:560}.w-roman{font-family:var(--font-mono);font-size:var(--step--1);color:var(--accent)}.w-meaning{font-size:var(--step--1);color:var(--text-faint)}.tone{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--warm);background:var(--warm-soft);border-radius:var(--radius-full);padding:1px 7px;width:fit-content;margin-top:2px}.note{padding:var(--space-4);border-radius:var(--radius);background:var(--warm-soft);border-left:3px solid var(--warm);font-size:var(--step--1);color:var(--text);margin-top:var(--space-3)}.note strong{color:var(--warm)}.note.is-warn{background:var(--danger-soft);border-left-color:var(--danger)}.note.is-warn strong{color:var(--danger)}.your-turn{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--border)}.score{margin-top:var(--space-5);padding:var(--space-5);border-radius:var(--radius);background:var(--bg-sunken);border:1px solid var(--border)}.score-top{display:flex;gap:var(--space-5);align-items:center;flex-wrap:wrap}.ring{position:relative;display:grid;place-items:center;flex:none}.ring svg{transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--border);stroke-width:7}.ring-fill{fill:none;stroke-width:7;stroke-linecap:round;transition:stroke-dashoffset .7s var(--ease)}.ring-good .ring-fill{stroke:var(--accent)}.ring-close .ring-fill{stroke:var(--warm)}.ring-missed .ring-fill{stroke:var(--danger)}.ring-none .ring-fill{stroke:none}.ring-none .ring-num{color:var(--text-faint)}.ring-num{position:absolute;font-size:var(--step-1);font-weight:700}.score-bars{flex:1;min-width:230px;display:grid;gap:var(--space-2)}.bar{display:grid;grid-template-columns:72px 1fr 32px;align-items:center;gap:var(--space-3);font-size:var(--step--1)}.bar-label{color:var(--text-muted)}.bar-track{height:6px;border-radius:var(--radius-full);background:var(--border);overflow:hidden}.bar-fill{display:block;height:100%;background:var(--accent);transition:width .7s var(--ease)}.bar-val{color:var(--text-muted);font-family:var(--font-mono);text-align:right}.heard-back{color:var(--text-faint);font-size:var(--step--1);font-style:italic;margin-top:var(--space-2)}.contour-compare{margin-top:var(--space-5);padding:var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.contour-title{font-size:var(--step--1);color:var(--text-muted);margin-bottom:var(--space-2)}.contour-svg{width:100%;height:90px;display:block}.contour-line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.contour-line.ref{stroke:var(--text-faint);stroke-dasharray:4 4}.contour-line.you{stroke:var(--accent)}.contour-legend{display:flex;gap:var(--space-4);margin-top:var(--space-2);font-size:var(--step--1)}.contour-legend span:before{content:"";display:inline-block;width:12px;height:2px;margin-right:var(--space-2);vertical-align:middle}.contour-legend .cl-ref{color:var(--text-faint)}.contour-legend .cl-ref:before{background:var(--text-faint)}.contour-legend .cl-you{color:var(--accent)}.contour-legend .cl-you:before{background:var(--accent)}.per-word{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5)}.pw{padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--step-0);cursor:help}.pw-good{background:var(--accent-soft);color:var(--accent)}.pw-close{background:var(--warm-soft);color:var(--warm)}.pw-missed{background:var(--danger-soft);color:var(--danger)}.tips{margin:var(--space-5) 0 0;padding-left:var(--space-5);color:var(--text-muted);font-size:var(--step--1);display:grid;gap:var(--space-2)}.tips li::marker{color:var(--accent)}.encourage{margin-top:var(--space-4);color:var(--accent);font-size:var(--step--1)}.band{padding:var(--space-9) 0;border-top:1px solid var(--border)}.band.alt{background:var(--bg-raised)}.band h2{font-size:var(--step-2);margin:var(--space-2) 0 var(--space-5);max-width:24ch}.body{color:var(--text-muted);margin-bottom:var(--space-4);max-width:62ch}.body.wide{max-width:70ch;margin-bottom:var(--space-6)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-4)}.card{padding:var(--space-5);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);transition:border-color .2s var(--ease),transform .2s var(--ease)}.card:hover{border-color:var(--accent-line);transform:translateY(-2px)}.card-n{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:660;font-size:var(--step--1);margin-bottom:var(--space-3)}.card h3{font-size:var(--step-0);margin-bottom:var(--space-2)}.card p{color:var(--text-muted);font-size:var(--step--1)}.split{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-7);align-items:center}@media(max-width:860px){.split{grid-template-columns:1fr}}.tone-fig{margin:0;padding:var(--space-5);border-radius:var(--radius);background:var(--bg-sunken);border:1px solid var(--border)}.tone-fig figcaption{color:var(--text-muted);font-size:var(--step--1);margin-bottom:var(--space-4)}.tone-fig svg{width:100%;height:auto}.tone-fig .grid{stroke:var(--border);stroke-width:1}.contour path{fill:none;stroke-width:3;stroke-linecap:round}.contour text{font-size:11px;fill:currentColor}.contour.ref{color:var(--text-faint)}.contour.ref path{stroke:var(--text-faint);stroke-dasharray:5 5}.contour.you{color:var(--accent)}.contour.you path{stroke:var(--accent)}.axis{font-size:10px;fill:var(--text-faint)}.fig-note{color:var(--text-faint);font-size:var(--step--1);margin-top:var(--space-4)}.lang-grid{display:flex;flex-wrap:wrap;gap:var(--space-2)}.lang{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--border);font-size:var(--step--1);color:var(--text-muted)}.lang.is-tonal{border-color:var(--accent-line);color:var(--text);background:var(--accent-soft)}.lang em{font-style:normal;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.cta-band{padding:var(--space-9) 0;text-align:center;border-top:1px solid var(--border);background:radial-gradient(60% 100% at 50% 100%,rgba(53,224,161,.1),transparent 70%)}.center{display:grid;justify-items:center;gap:var(--space-3)}.cta-band h2{font-size:var(--step-2)}.foot{border-top:1px solid var(--border);padding:var(--space-5) 0;background:var(--bg-sunken)}.foot-inner{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;align-items:center;color:var(--text-faint);font-size:var(--step--1)}.foot-inner span:first-child{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-muted)}.foot-note{max-width:52ch}.fallback{margin-top:var(--space-4);color:var(--text-faint);font-size:var(--step--1)}.nav nav button.nav-cta{border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent);border-radius:var(--radius-full);padding:var(--space-2) var(--space-4);font-size:var(--step--1);cursor:pointer}.nav nav button.nav-cta:hover{background:var(--accent);color:var(--accent-ink)}.quota-chip{border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text-muted);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-size:var(--step--1);cursor:pointer;font-variant-numeric:tabular-nums}.quota-chip:hover{border-color:var(--accent-line);color:var(--text)}.quota-chip.is-low{border-color:var(--warm);color:var(--warm);background:var(--warm-soft)}.quota-chip.is-pro{border-color:var(--accent-line);color:var(--accent);background:var(--accent-soft);cursor:default}.nav-avatar{width:30px;height:30px;border-radius:50%;overflow:hidden;cursor:pointer;border:1px solid var(--border-strong);background:var(--surface);display:grid;place-items:center;color:var(--text-muted);font-size:var(--step--1);font-weight:620;padding:0}.nav-avatar img{width:100%;height:100%;object-fit:cover}.nav-avatar:hover{border-color:var(--accent)}.account-menu{position:relative}.account-dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:60;display:grid;min-width:180px;padding:var(--space-2);border-radius:var(--radius);background:var(--bg-raised);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg)}.dropdown-email{padding:var(--space-2) var(--space-3);color:var(--text-faint);font-size:var(--step--1);border-bottom:1px solid var(--border);margin-bottom:var(--space-1)}.account-dropdown button{display:block;width:100%;text-align:left;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:0;background:none;color:var(--text);cursor:pointer;font-size:var(--step--1)}.account-dropdown button:hover{background:var(--surface-hover)}.not-found{padding:var(--space-9) 0;text-align:center;display:grid;gap:var(--space-3);justify-items:center}.not-found h1{font-size:var(--step-3)}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:var(--space-5);background:#04070ab8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade .18s var(--ease)}@keyframes fade{0%{opacity:0}}.modal{position:relative;width:min(520px,100%);padding:var(--space-6);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:rise .22s var(--ease)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.modal h2{font-size:var(--step-2);margin:var(--space-2) 0 var(--space-3)}.modal-close{position:absolute;top:var(--space-3);right:var(--space-4);background:none;border:0;color:var(--text-faint);font-size:26px;line-height:1;cursor:pointer}.modal-close:hover{color:var(--text)}.modal-actions{display:flex;gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap}.modal-fine{margin-top:var(--space-4);color:var(--text-faint);font-size:var(--step--1)}.pricing-page{padding:var(--space-8) 0 var(--space-9)}.pricing-head{text-align:center;max-width:60ch;margin:0 auto var(--space-7)}.pricing-head h1{font-size:var(--step-3);margin:var(--space-3) 0}.pricing-head .body{margin-inline:auto}.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:var(--space-5);max-width:860px;margin:0 auto;align-items:start}.plan{padding:var(--space-6);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);display:flex;flex-direction:column;gap:var(--space-3)}.plan.is-featured{border-color:var(--accent-line);background:var(--bg-raised);box-shadow:var(--glow);position:relative}.plan-badge{position:absolute;top:-11px;left:var(--space-6);padding:2px var(--space-3);background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-full);font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.plan h2{font-size:var(--step-1)}.price{display:flex;align-items:baseline;gap:var(--space-2)}.amount{font-size:var(--step-3);font-weight:700;letter-spacing:-.03em}.per{color:var(--text-faint);font-size:var(--step-0)}.plan-note{color:var(--text-faint);font-size:var(--step--1)}.plan-warn{color:var(--warm);font-size:var(--step--1)}.feature-list{list-style:none;margin:var(--space-2) 0;padding:0;display:grid;gap:var(--space-2)}.feature-list li{position:relative;padding-left:var(--space-5);color:var(--text-muted);font-size:var(--step--1)}.feature-list li:before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700}.full{width:100%;margin-top:auto}.faq{max-width:720px;margin:var(--space-9) auto 0}.faq h2{font-size:var(--step-1);margin-bottom:var(--space-5)}.faq dl{display:grid;gap:var(--space-4);margin:0}.faq dt{font-weight:600;margin-bottom:var(--space-1)}.faq dd{margin:0;color:var(--text-muted);font-size:var(--step--1);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.faq dd:last-child{border-bottom:0}.app-page{padding:var(--space-7) 0 var(--space-9)}.account{padding:var(--space-6);border-radius:var(--radius-lg);background:var(--bg-raised);border:1px solid var(--border);margin-bottom:var(--space-6)}.account-head{display:flex;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;align-items:flex-start}.account-head h2{font-size:var(--step-2);margin-top:var(--space-2)}.account-stats{display:flex;gap:var(--space-5);flex-wrap:wrap}.stat{display:grid;gap:2px}.stat-value{font-size:var(--step-2);font-weight:700;color:var(--accent);line-height:1}.stat-label{font-size:var(--step--1);color:var(--text-faint)}.account-actions{margin-top:var(--space-5);display:flex;gap:var(--space-3)}.history-title{font-size:var(--step-1);margin:var(--space-6) 0 var(--space-4)}.history{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.history-row{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.h-main{display:grid;gap:2px;min-width:200px}.h-target{font-size:var(--step-1)}.h-roman{font-family:var(--font-mono);font-size:var(--step--1);color:var(--accent)}.h-src{font-size:var(--step--1);color:var(--text-faint)}.h-meta{display:flex;align-items:center;gap:var(--space-4);font-size:var(--step--1);color:var(--text-faint)}.h-score{font-size:var(--step-1);font-weight:700;font-variant-numeric:tabular-nums}.h-score.is-good{color:var(--accent)}.h-score.is-close{color:var(--warm)}.h-score.is-missed{color:var(--danger)}.h-lang{font-family:var(--font-mono)}.signed-out{padding:var(--space-6);border-radius:var(--radius-lg);background:var(--bg-raised);border:1px solid var(--accent-line);margin-bottom:var(--space-6);display:grid;gap:var(--space-3);justify-items:start}.signed-out h2{font-size:var(--step-1)}.foot-links{display:flex;gap:var(--space-4)}.foot-links a{color:var(--text-faint);text-decoration:none}.foot-links a:hover{color:var(--text)}body.theme-studio{--bg: #0d0c11;--bg-raised: #17151d;--bg-sunken: #0a090d;--surface: #1d1a25;--surface-hover: #262133;--border: #2b2637;--border-strong: #3d3550;--accent: #c9a2ff;--accent-hover: #dcc0ff;--accent-ink: #1c0f33;--accent-soft: rgba(201, 162, 255, .13);--accent-line: rgba(201, 162, 255, .36);--glow: 0 0 0 1px var(--accent-line), 0 0 40px rgba(201,162,255,.18)}body.theme-studio:before{display:none}.studio{padding:var(--space-6) 0 var(--space-9);display:grid;gap:var(--space-6)}.sm{padding:var(--space-2) var(--space-4);font-size:var(--step--1)}.nav nav a.is-current{color:var(--text)}.studio-bar{display:flex;gap:var(--space-5);align-items:center;flex-wrap:wrap;justify-content:space-between;padding:var(--space-5);background:linear-gradient(180deg,var(--bg-raised),var(--surface));border:1px solid var(--border);border-radius:var(--radius-lg)}.sb-id{display:grid;gap:2px}.sb-hello{font-size:var(--step-1);font-weight:620;letter-spacing:-.02em}.sb-voice{font-size:var(--step--1);color:var(--text-faint);display:flex;align-items:baseline;gap:var(--space-3)}.sb-voice strong{color:var(--accent);font-family:var(--font-mono)}.sb-recalibrate{font-size:var(--step--1)}.sb-stats{display:flex;gap:var(--space-6);flex-wrap:wrap}.metric{display:grid;gap:2px}.metric-value{font-size:var(--step-2);font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.metric-value.is-good{color:var(--accent)}.metric-value.is-close{color:var(--warm)}.metric-value.is-missed{color:var(--danger)}.metric-label{font-size:var(--step--1);color:var(--text-faint);text-transform:uppercase;letter-spacing:.07em}.sb-actions{display:flex;gap:var(--space-3);align-items:center}.sb-lang select{font:inherit;font-size:var(--step--1);color:var(--text);background:var(--bg-sunken);border:1px solid var(--border-strong);border-radius:var(--radius-full);padding:var(--space-2) var(--space-4)}.sb-lang select:focus{border-color:var(--accent);outline:none}.decks-head{max-width:60ch}.decks-head h2{font-size:var(--step-2);margin-bottom:var(--space-2)}.deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-4);margin-top:var(--space-5)}.deck{padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);display:flex;flex-direction:column;gap:var(--space-3);transition:border-color .2s var(--ease),transform .2s var(--ease)}.deck:hover{border-color:var(--accent-line);transform:translateY(-2px)}.deck.is-tonal{background:linear-gradient(160deg,var(--accent-soft),var(--surface) 60%)}.deck-head{display:flex;gap:var(--space-3);align-items:flex-start}.deck-icon{font-size:26px;line-height:1}.deck-head h3{font-size:var(--step-1);margin-bottom:var(--space-1)}.deck-level{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;padding:1px 8px;border-radius:var(--radius-full);margin-right:var(--space-1);background:var(--bg-sunken);color:var(--text-faint);border:1px solid var(--border)}.lvl-starter{color:var(--accent);border-color:var(--accent-line)}.lvl-everyday{color:var(--warm);border-color:var(--warm)}.lvl-confident{color:#7fd1ff;border-color:#7fd1ff66}.lvl-tonal{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.deck-blurb{color:var(--text-muted);font-size:var(--step--1)}.deck-progress{display:flex;align-items:center;gap:var(--space-3)}.dp-track{flex:1;height:5px;border-radius:var(--radius-full);background:var(--border);overflow:hidden}.dp-fill{display:block;height:100%;background:var(--accent);transition:width .5s var(--ease)}.dp-count{font-size:var(--step--1);color:var(--text-faint);font-variant-numeric:tabular-nums}.deck-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-1)}.ex-btn{display:flex;gap:var(--space-3);align-items:flex-start;width:100%;text-align:left;padding:var(--space-3);border-radius:var(--radius-sm);border:1px solid transparent;background:var(--bg-sunken);color:var(--text-muted);cursor:pointer;font-size:var(--step--1);transition:background .15s var(--ease),color .15s var(--ease)}.ex-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--accent-line)}.ex-check{color:var(--text-faint);flex:none;width:16px;font-variant-numeric:tabular-nums}.ex-btn.is-attempted{color:var(--text-muted)}.ex-btn.is-attempted .ex-check{color:var(--warm)}.ex-btn.is-good{color:var(--text-faint)}.ex-btn.is-good .ex-check{color:var(--accent)}.workbench{padding:var(--space-6);border-radius:var(--radius-lg);background:var(--bg-raised);border:1px solid var(--accent-line);box-shadow:var(--shadow-lg)}.wb-head{display:flex;justify-content:space-between;gap:var(--space-4);align-items:flex-start;margin-bottom:var(--space-5);flex-wrap:wrap}.wb-head h2{font-size:var(--step-2);margin-top:var(--space-2);max-width:26ch}.wb-hint{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--warm-soft);border-left:3px solid var(--warm);color:var(--text-muted);font-size:var(--step--1);max-width:60ch}.wb-nav{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2)}.wb-pager{display:flex;gap:var(--space-2)}.custom-panel{padding:var(--space-6);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border)}.custom-form{display:flex;gap:var(--space-4);flex-wrap:wrap;align-items:flex-end}.custom-form .sb-lang{flex:none}.custom-form .field.grow{flex:1;min-width:260px}.studio-history h2{font-size:var(--step-1);margin-bottom:var(--space-4)}.h-reopen{display:contents;background:none;border:0;padding:0;cursor:pointer;text-align:left}.h-reopen:hover .h-target{color:var(--accent)}.calibrate{padding:var(--space-8) var(--space-6);border-radius:var(--radius-lg);background:var(--bg-raised);border:1px solid var(--accent-line);text-align:center;display:grid;gap:var(--space-4);justify-items:center}.calibrate h2{font-size:var(--step-2)}.calibrate .body{margin:0 auto}.studio-loading{padding:var(--space-8) 0;text-align:center}@media(max-width:720px){.hero{padding:var(--space-7) 0 var(--space-6)}.hero-cta{flex-direction:column;align-items:stretch}.hero-cta .btn-primary,.hero-cta .btn-ghost{width:100%}.demo{padding:var(--space-4)}.step{padding:var(--space-4);gap:var(--space-3)}.rec-row{gap:var(--space-3)}.wave{width:100%;justify-content:center}.controls{flex-direction:column;gap:var(--space-3)}.field.grow{min-width:0;width:100%}.play-row{flex-direction:column;align-items:stretch;gap:var(--space-4)}.btn-play{justify-content:center}.studio-bar{flex-direction:column;align-items:stretch;gap:var(--space-4);padding:var(--space-4)}.sb-stats{gap:var(--space-4);justify-content:space-between}.metric-value{font-size:var(--step-1)}.sb-actions{justify-content:space-between}.sb-lang{flex:1}.sb-lang select{width:100%}.deck-grid{grid-template-columns:1fr}.workbench{padding:var(--space-4)}.wb-head{flex-direction:column;gap:var(--space-3)}.wb-head h2{font-size:var(--step-1)}.wb-nav{width:100%;align-items:stretch}.wb-pager{justify-content:space-between}.custom-panel{padding:var(--space-4)}.custom-form{flex-direction:column;align-items:stretch}.history-row{flex-direction:column;gap:var(--space-3)}.h-meta{justify-content:space-between;width:100%}.plans{grid-template-columns:1fr}.account-head,.account-stats{flex-direction:column;gap:var(--space-4)}.score-top{flex-direction:column;align-items:flex-start}.bar{grid-template-columns:64px 1fr 28px}.foot-inner{flex-direction:column;align-items:flex-start;gap:var(--space-3)}}@media(max-width:420px){.target{font-size:var(--step-1)}.target.is-tonal{font-size:var(--step-2)}.sb-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}}:root{color-scheme:dark;--bg: #0b0f14;--bg-raised: #121822;--bg-sunken: #080b0f;--surface: #161e29;--surface-hover: #1c2634;--border: #24303f;--border-strong: #35455a;--text: #eef4fb;--text-muted: #93a4b8;--text-faint: #8798a9;--accent: #35e0a1;--accent-hover: #55eab4;--accent-ink: #04231a;--accent-soft: rgba(53, 224, 161, .12);--accent-line: rgba(53, 224, 161, .34);--warm: #ffb454;--warm-soft: rgba(255, 180, 84, .14);--danger: #ff6b6b;--danger-soft: rgba(255, 107, 107, .14);--font-sans: "Inter var", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--step--1: clamp(.78rem, .75rem + .15vw, .86rem);--step-0: clamp(.95rem, .9rem + .25vw, 1.05rem);--step-1: clamp(1.15rem, 1.05rem + .5vw, 1.4rem);--step-2: clamp(1.5rem, 1.3rem + 1vw, 2rem);--step-3: clamp(2rem, 1.6rem + 2vw, 3rem);--step-4: clamp(2.6rem, 1.9rem + 3.4vw, 4.5rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--radius-sm: 8px;--radius: 14px;--radius-lg: 22px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow: 0 8px 30px rgba(0,0,0,.45);--shadow-lg: 0 24px 60px rgba(0,0,0,.55);--glow: 0 0 0 1px var(--accent-line), 0 0 40px rgba(53,224,161,.18);--ease: cubic-bezier(.2,.7,.3,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:-20% -20% auto;height:70vh;background:radial-gradient(60% 60% at 50% 0%,rgba(53,224,161,.13),transparent 70%);pointer-events:none;z-index:0}h1,h2,h3{line-height:1.15;letter-spacing:-.02em;margin:0;font-weight:640}p{margin:0}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}.wrap{width:min(1080px,100% - 2.5rem);margin-inline:auto;position:relative;z-index:1}.narrow{width:min(760px,100% - 2.5rem);margin-inline:auto}
