/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-sm:.875rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.start{inset-inline-start:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.hidden{display:none}}:root{--color-paper:oklch(100% 0 0);--color-paper-2:oklch(98% .004 255);--color-paper-3:oklch(95% .006 255);--color-ink:oklch(18% .018 255);--color-ink-2:oklch(30% .018 255);--color-neutral:oklch(40% .014 255);--color-muted:oklch(46% .012 255);--color-rule:oklch(88% .008 255);--color-rule-2:oklch(72% .014 255);--color-accent:oklch(43% .15 255);--color-accent-ink:oklch(99% .003 255);--color-accent-soft:oklch(94% .026 255);--color-focus:oklch(55% .19 255);--color-error:oklch(48% .16 28);--color-error-soft:oklch(95% .028 28);--font-display:"BIZ UDPGothic", "Yu Gothic UI", "Yu Gothic", Meiryo, ui-sans-serif, system-ui, sans-serif;--font-body:"BIZ UDPGothic", "Yu Gothic UI", "Yu Gothic", Meiryo, ui-sans-serif, system-ui, sans-serif;--font-outlier:"Cascadia Mono", "BIZ UDGothic", ui-monospace, "SFMono-Regular", Menlo, monospace;--display-weight:700;--display-style:normal;--tracking-display:-.02em;--tracking-label:0;--text-xs:.9375rem;--text-sm:1rem;--text-md:1.125rem;--text-lg:1.375rem;--text-xl:1.75rem;--text-2xl:2.25rem;--text-display:clamp(1.75rem, 3vw, 2.5rem);--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:4.5rem;--space-3xl:7rem;--space-4xl:11rem;--rule-hair:1px;--rule-fine:2px;--radius-card:.25rem;--radius-pill:.25rem;--radius-input:.25rem;--shadow-card:0 0 0 var(--rule-hair) var(--color-rule);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s}*{box-sizing:border-box}html,body{min-height:100%;overflow-x:clip}html{background:var(--color-paper);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;scroll-behavior:smooth}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);text-rendering:optimizelegibility;margin:0;line-height:1.7}button,input,select{color:inherit;font:inherit}button,select,input,a{outline:var(--rule-fine) solid transparent;outline-offset:var(--space-3xs);min-height:2.75rem}button{border:var(--rule-hair) solid var(--color-rule-2);background:var(--color-paper);cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out)}button:hover{background:var(--color-accent-soft)}button:active{border-color:var(--color-accent)}button:disabled,button[aria-disabled=true]{color:var(--color-muted);cursor:not-allowed;opacity:.62}button:disabled:hover,button[aria-disabled=true]:hover{border-color:var(--color-rule-2);background:var(--color-paper-2)}:focus-visible{outline:var(--rule-fine) solid var(--color-focus);outline-offset:var(--space-3xs)}input:hover,select:hover{border-color:var(--color-accent)}input:disabled,select:disabled{cursor:not-allowed;opacity:.62}a:active{color:var(--color-ink)}a{color:var(--color-accent);text-underline-offset:.2em;font-weight:700}h1,h2,h3,p{margin-block-start:0}h1,h2,h3{overflow-wrap:anywhere;min-width:0;font-family:var(--font-display);line-height:1.35}h1{font-size:var(--text-display);font-weight:var(--display-weight);letter-spacing:var(--tracking-display);margin-block-end:var(--space-xs)}h2{font-size:clamp(1.625rem, 3vw, var(--text-2xl));margin-block-end:var(--space-2xs)}h3{font-size:var(--text-xl);margin-block-end:var(--space-2xs)}.app-shell{min-height:100dvh}.skip-link{z-index:30;width:1px;height:1px;padding:var(--space-xs) var(--space-sm);border:var(--rule-fine) solid var(--color-focus);border-radius:var(--radius-input);background:var(--color-paper);clip-path:inset(50%);position:fixed;inset-block-start:var(--space-sm);inset-inline-start:var(--space-sm);overflow:clip}.skip-link:focus{clip-path:none;width:auto;height:auto;overflow:visible}.app-header{gap:var(--space-sm);width:min(100%,105rem);padding:var(--space-sm);border-block-end:var(--rule-hair) solid var(--color-rule);background:var(--color-paper);margin-inline:auto;display:grid}.skip-link{z-index:400}#main-content{scroll-margin-top:var(--space-3xl)}.site-identity{flex-direction:column;justify-content:center;min-width:0;display:flex}.site-identity span,.section-label,.section-kicker,.lesson-phase{color:var(--color-neutral);font-size:var(--text-sm);letter-spacing:var(--tracking-label);font-weight:700}.main-nav{gap:var(--space-2xs);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.main-nav button,.primary-button,.secondary-button,.history-actions button,.leaderboard-card .card-heading>button{white-space:nowrap}.main-nav button{min-width:0;padding-inline:var(--space-3xs);border-color:var(--color-rule);border-radius:var(--radius-input);font-size:var(--text-sm);font-weight:700}.header-actions{gap:var(--space-xs);display:grid}.mode-switch{gap:var(--space-3xs);display:grid}.mode-switch>span,.nickname-field>span,.personal-vowel-card label>span,.vowel-result>span{color:var(--color-neutral);font-size:var(--text-sm);font-weight:700}.mode-switch select,.nickname-field input,.personal-vowel-card input{width:100%;min-width:0;padding:var(--space-2xs) var(--space-xs);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-input);background:var(--color-paper)}.sync-state{align-items:center;gap:var(--space-2xs);color:var(--color-neutral);font-size:var(--text-sm);display:flex}.sync-state i{border-radius:var(--radius-pill);background:var(--color-accent);width:.65rem;height:.65rem}main{width:min(100%,105rem);padding:var(--space-sm);margin-inline:auto}.daily-strip,.lesson-rail,.trainer-card,.guide-card,.principle-card,.safety-card,.page-hero,.personal-vowel-card,.curriculum-card,.source-note,.records-heading,.summary-card,.chart-card,.leaderboard-card,.history-card,.onboarding-card{border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper);box-shadow:var(--shadow-card)}.daily-strip{gap:var(--space-md);padding:var(--space-md);background:var(--color-paper-2);display:grid}.daily-intro p,.trainer-heading p,.page-hero>p,.records-heading p{max-width:65ch;color:var(--color-neutral);margin-block-end:0}.daily-goal{align-content:center;gap:var(--space-2xs);display:grid}.daily-goal>span{color:var(--color-neutral);font-size:var(--text-sm)}.daily-number{justify-content:space-between;align-items:center;gap:var(--space-sm);min-width:0;padding-block:var(--space-xs);border-block-start:var(--rule-hair) solid var(--color-rule);display:flex}.daily-number span{color:var(--color-neutral);font-size:var(--text-sm)}.daily-number strong{font-family:var(--font-outlier);font-size:var(--text-xl)}.daily-number small{font-family:var(--font-body);font-size:var(--text-sm);margin-inline-start:var(--space-3xs)}.weak-button{gap:var(--space-3xs);min-width:0;padding:var(--space-sm);border-color:var(--color-accent);border-radius:var(--radius-card);color:var(--color-accent);text-align:start;display:grid}.weak-button span,.weak-button small{color:var(--color-neutral);font-size:var(--text-sm)}.weak-button strong{font-size:var(--text-lg)}.practice-layout{gap:var(--space-sm);margin-block-start:var(--space-sm);display:grid}.lesson-rail{min-width:0;padding:var(--space-sm);background:var(--color-paper-2)}.rail-heading{margin-block-end:var(--space-sm)}.lesson-list{gap:var(--space-xs);display:grid}.lesson-list-item{gap:var(--space-3xs);min-width:0;display:grid}.lesson-list-item>button{gap:var(--space-xs);width:100%;padding:var(--space-xs);border-color:var(--color-rule);border-radius:var(--radius-input);text-align:start;grid-template-columns:auto minmax(0,1fr);display:grid}.lesson-list-item>p{padding-inline:var(--space-2xs);color:var(--color-neutral);font-size:var(--text-xs);margin:0;line-height:1.5}.lesson-list-item>.unlock-notice{padding:var(--space-xs);background:0 0;margin:0}.lesson-number{border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-pill);width:2.5rem;height:2.5rem;font-family:var(--font-outlier);font-size:var(--text-sm);place-items:center;display:grid}.lesson-list-item button>span:last-child{min-width:0;display:grid}.lesson-list-item strong{font-size:var(--text-sm)}.lesson-list-item small{color:var(--color-muted);font-size:var(--text-xs)}.lesson-list-item .lesson-active{border-color:var(--color-accent);background:var(--color-accent-soft)}.lesson-list-item .lesson-done .lesson-number{border-color:var(--color-accent);color:var(--color-accent)}.lesson-list-item .lesson-locked{background:var(--color-paper-3)}.trainer-card{min-width:0;position:relative;overflow:clip}.trainer-heading{gap:var(--space-sm);padding:var(--space-md);border-block-end:var(--rule-hair) solid var(--color-rule);display:grid}.trainer-heading h2{margin-block-start:var(--space-3xs)}.focus-badges,.curriculum-focus{gap:var(--space-2xs);flex-wrap:wrap;align-content:start;display:flex}.focus-badges span,.curriculum-focus span{min-width:2.5rem;min-height:2.5rem;padding-inline:var(--space-2xs);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-input);background:var(--color-paper-2);font-family:var(--font-outlier);font-size:var(--text-sm);place-items:center;font-style:normal;font-weight:700;display:inline-grid}.live-stats,.result-metrics{border-block-end:var(--rule-hair) solid var(--color-rule);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stat-pill{gap:var(--space-3xs);min-width:0;padding:var(--space-xs) var(--space-sm);border-inline-end:var(--rule-hair) solid var(--color-rule);display:grid}.stat-pill span{color:var(--color-neutral);font-size:var(--text-xs);font-weight:700}.stat-pill strong{font-family:var(--font-outlier);font-size:var(--text-lg);overflow-wrap:anywhere}.live-progress{gap:var(--space-sm);padding:var(--space-sm);border-block-end:var(--rule-hair) solid var(--color-rule);background:var(--color-paper-2);display:grid}.progress-meter{gap:var(--space-2xs);min-width:0;display:grid}.progress-label{justify-content:space-between;align-items:baseline;gap:var(--space-sm);color:var(--color-neutral);font-size:var(--text-sm);display:flex}.progress-label strong{color:var(--color-ink);font-family:var(--font-outlier);font-size:var(--text-sm)}.progress-track{appearance:none;border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-paper-3);width:100%;height:.75rem;display:block;overflow:clip}.progress-track::-webkit-progress-bar{background:var(--color-paper-3)}.progress-track::-webkit-progress-value{border-radius:inherit;background:var(--color-accent)}.progress-track::-moz-progress-bar{border-radius:inherit;background:var(--color-accent)}.progress-empty .progress-track::-webkit-progress-value{background:var(--color-rule-2)}.progress-empty .progress-track::-moz-progress-bar{background:var(--color-rule-2)}.prompt-zone{padding:var(--space-lg) var(--space-md);text-align:center}.prompt-counter{justify-content:center;align-items:center;gap:var(--space-sm);color:var(--color-neutral);font-size:var(--text-sm);flex-wrap:wrap;margin-block-end:var(--space-sm);display:flex}.prompt-counter span,.roman-prompt{font-family:var(--font-outlier)}.japanese-prompt{overflow-wrap:anywhere;margin-block-end:var(--space-xs);font-size:clamp(1.25rem,4vw,2rem);font-weight:700}.roman-prompt{flex-wrap:wrap;justify-content:center;align-items:center;gap:0;min-height:3rem;font-size:clamp(1.5rem,5vw,2.75rem);line-height:1.35;display:flex}.roman-prompt span{border-block-end:var(--rule-fine) solid var(--color-rule);min-width:.65em}.roman-prompt .roman-done{border-color:var(--color-accent);color:var(--color-muted)}.roman-prompt .roman-current{border-color:var(--color-accent);color:var(--color-accent)}.feedback-line{justify-content:center;align-items:center;gap:var(--space-2xs);min-height:2.75rem;color:var(--color-accent);margin-block-start:var(--space-sm);font-weight:700;display:flex}.feedback-line i{border-radius:var(--radius-pill);background:currentColor;width:.65rem;height:.65rem}.feedback-error{color:var(--color-error)}.keyboard{width:calc(100% - 2 * var(--space-sm));min-width:0;margin-inline:var(--space-sm);padding:var(--space-2xs);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-card);background:var(--color-paper-2)}.keyboard-row{gap:var(--space-3xs);grid-template-columns:repeat(10,minmax(0,1fr));margin-block-end:var(--space-3xs);display:grid}.number-row{grid-template-columns:repeat(10,minmax(0,1fr)) minmax(0,1.35fr)}.keyboard-key,.modifier-key,.space-key{border:var(--rule-hair) solid var(--color-rule-2);background:var(--color-paper);min-width:0;min-height:clamp(2.75rem,9vw,4.5rem);font-family:var(--font-outlier);border-radius:.25rem;place-items:center;font-weight:700;display:grid;position:relative}.keyboard-key span{font-size:clamp(var(--text-sm), 3vw, 1.4rem);line-height:1}.space-key small{color:var(--color-neutral);font-family:var(--font-body);font-size:var(--text-sm);line-height:1}.keyboard-key i{width:.75rem;height:var(--rule-fine);border-radius:var(--radius-pill);background:var(--color-ink);position:absolute;inset-block-end:.2rem}.keyboard-key.key-muted{color:var(--color-muted);background:var(--color-paper-3)}.keyboard-key.key-target,.modifier-key.key-target,.space-key.key-target{z-index:1;border:var(--rule-fine) solid var(--color-focus);background:var(--color-accent-soft);color:var(--color-ink)}.keyboard-key.key-pressed{background:var(--color-accent-soft)}.keyboard-key.key-error{border-color:var(--color-error);background:var(--color-error-soft)}.space-row{gap:var(--space-3xs);grid-template-columns:minmax(0,1fr) minmax(0,3fr) minmax(0,1fr);display:grid}.modifier-key,.space-key{min-height:2.75rem;font-size:var(--text-sm)}.guide-card{gap:var(--space-sm);margin:var(--space-sm);padding:var(--space-sm);background:var(--color-paper-2);display:grid}.hands{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.hand-shape{gap:var(--space-3xs);min-width:0;display:grid}.finger-row{gap:var(--space-3xs);grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;display:grid}.finger{border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-pill) var(--radius-pill) var(--radius-input) var(--radius-input);background:var(--color-paper);min-width:0;height:3.5rem;color:var(--color-neutral);font-size:var(--text-xs);place-items:center;font-weight:700;display:grid}.finger-active{border:var(--rule-fine) solid var(--color-focus);background:var(--color-accent-soft);color:var(--color-ink)}.palm{min-height:2.25rem;padding-block:var(--space-3xs);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-input);background:var(--color-paper);color:var(--color-neutral);text-align:center}.finger-instruction{gap:var(--space-sm);border-block-start:var(--rule-hair) solid var(--color-rule);grid-template-columns:auto minmax(0,1fr);align-items:center;padding-block-start:var(--space-sm);display:grid}.target-key-label{min-width:3.5rem;min-height:3.5rem;padding-inline:var(--space-2xs);border:var(--rule-fine) solid var(--color-focus);border-radius:var(--radius-input);background:var(--color-paper);font-family:var(--font-outlier);font-size:var(--text-xl);place-items:center;font-weight:700;display:grid}.finger-instruction>div{display:grid}.finger-instruction span:last-child,.guide-note{color:var(--color-neutral);font-size:var(--text-sm)}.home-reminder{justify-content:center;align-items:center;gap:var(--space-xs);color:var(--color-neutral);font-size:var(--text-sm);flex-wrap:wrap;font-weight:700;display:flex}.key-bump-mini{border:var(--rule-hair) solid var(--color-rule-2);border-block-end:var(--rule-fine) solid var(--color-ink);border-radius:var(--radius-input);background:var(--color-paper);width:2.5rem;height:2.5rem;font-family:var(--font-outlier);place-items:center;display:inline-grid}.guide-note{margin:0}.trainer-footer{gap:var(--space-sm);padding:var(--space-md);border-block-start:var(--rule-hair) solid var(--color-rule);display:grid}.cue span{color:var(--color-neutral);font-size:var(--text-sm);font-weight:700}.cue p{margin-block-end:0}.trainer-controls,.result-actions,.history-actions,.source-links{gap:var(--space-xs);flex-wrap:wrap;display:flex}.primary-button,.secondary-button,.trainer-controls button,.result-actions button,.pause-overlay button,.onboarding-start{min-height:3rem;padding-inline:var(--space-md);border-radius:var(--radius-input);font-weight:700}.primary-button{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink)}.primary-button:hover{background:var(--color-ink)}.primary-button[aria-disabled=true]{border-color:var(--color-rule-2);background:var(--color-paper-3);color:var(--color-muted)}.secondary-button{border-color:var(--color-accent);color:var(--color-accent)}kbd{padding:var(--space-3xs) var(--space-2xs);border:var(--rule-hair) solid currentColor;border-radius:var(--radius-input);font-family:var(--font-outlier);font-size:var(--text-xs);margin-inline-start:var(--space-2xs)}.pause-overlay,.result-panel{z-index:5;background:var(--color-paper);position:absolute;inset:0;overflow-y:auto}.pause-overlay{place-content:center;gap:var(--space-sm);padding:var(--space-lg);text-align:center;display:grid}.pause-overlay p{color:var(--color-neutral)}.result-panel{align-content:start;gap:var(--space-md);padding:var(--space-lg);display:grid}.result-heading{border:var(--rule-fine) solid var(--color-rule-2);border-radius:var(--radius-card);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);display:grid;overflow:clip}.result-score,.result-outcome{align-content:center;gap:var(--space-2xs);min-width:0;min-height:8rem;padding:var(--space-2xs);display:grid}.result-score{border-inline-end:var(--rule-hair) solid var(--color-rule-2);background:var(--color-paper);color:var(--color-ink);container-type:inline-size}.result-score>span,.result-outcome>span{color:var(--color-neutral);font-weight:700}.result-score>strong{max-width:100%;font-family:var(--font-outlier);font-variant-numeric:tabular-nums;letter-spacing:-.04em;white-space:nowrap;font-size:clamp(1.5rem,24cqi,3.5rem);line-height:1}.result-outcome>strong{font-size:clamp(var(--text-lg), 6vw, var(--text-2xl));overflow-wrap:anywhere;line-height:1.2}.result-pass{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-ink)}.result-retry{border-color:var(--color-error);background:var(--color-error-soft);color:var(--color-ink)}.result-copy{gap:var(--space-sm);min-width:0;display:grid}.result-metrics{border:var(--rule-hair) solid var(--color-rule);grid-template-columns:minmax(0,1fr);margin:0}.result-metrics .stat-pill,.result-metrics .stat-pill:nth-child(2n){border-inline-end:0;border-block-end:var(--rule-hair) solid var(--color-rule)}.result-metrics .stat-pill:last-child{border-block-end:0}.result-metrics .stat-pill{padding-inline:var(--space-xs)}.result-metrics .stat-pill strong{font-size:clamp(var(--text-sm), 3.6vw, var(--text-lg));overflow-wrap:normal;white-space:nowrap}.result-accuracy-meter{gap:var(--space-2xs);padding-block:var(--space-xs);display:grid}.result-condition-heading,.result-threshold-caption,.result-unlock-heading,.result-speed-condition>div{justify-content:space-between;align-items:baseline;gap:var(--space-sm);display:flex}.result-condition-heading>span,.result-unlock-heading>span,.result-speed-condition>div>strong{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.condition-achieved{color:var(--color-accent);font-weight:700}.condition-remaining{color:var(--color-error);font-weight:700}.result-threshold-track{min-width:0;padding-block-end:var(--space-xs);position:relative}.result-threshold-marker{color:var(--color-ink);font-size:var(--text-xs);line-height:1;position:absolute;inset-block-start:var(--space-2xs);inset-inline-start:clamp(var(--space-2xs), calc(var(--target-percent) * 1%), calc(100% - var(--space-2xs)));transform:translate(-50%)}.result-threshold-caption{color:var(--color-neutral);font-size:var(--text-xs)}.result-speed-condition{gap:var(--space-2xs);padding-block:var(--space-xs);border-block:var(--rule-hair) solid var(--color-rule);margin:0;display:grid}.result-speed-condition p{color:var(--color-neutral);font-size:var(--text-sm);margin:0}.result-unlock-notice{gap:var(--space-xs);padding-block:var(--space-sm);border-block:var(--rule-hair) solid var(--color-rule-2);display:grid}.result-unlock-heading{align-items:start}.result-unlock-heading>strong{min-width:0}.result-unlock-notice p,.shortcut-help{color:var(--color-neutral);font-size:var(--text-sm);margin:0}.result-actions{grid-template-columns:minmax(0,1fr);display:grid}.result-actions button{white-space:nowrap;width:100%}.shortcut-help{padding-block:var(--space-xs)}.trainer-footer>.shortcut-help{grid-column:1/-1;padding-block:0}.practice-sidebar{gap:var(--space-sm);align-content:start;display:grid}.principle-card,.safety-card{padding:var(--space-md)}.principle-card strong{margin-block:var(--space-xs);font-size:var(--text-lg);display:block}.principle-card p,.safety-card p{color:var(--color-neutral);margin-block-end:0}.safety-card>span{font-weight:700}.page-view{gap:var(--space-sm);display:grid}.page-hero,.records-heading{gap:var(--space-md);padding:var(--space-lg);background:var(--color-paper-2);display:grid}.page-hero .progress-meter{max-width:42rem}.hero-principles{gap:var(--space-xs);display:grid}.hero-principles>div{gap:var(--space-xs);padding:var(--space-sm);border-block-start:var(--rule-hair) solid var(--color-rule);grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.hero-principles span{color:var(--color-accent);font-family:var(--font-outlier);font-weight:700}.personal-vowel-card{gap:var(--space-md);padding:var(--space-md);display:grid}.personal-vowel-card h2{margin-block-start:var(--space-3xs)}.personal-vowel-card p{color:var(--color-neutral);margin-block-end:0}.personal-vowel-card label,.vowel-result{gap:var(--space-3xs);display:grid}.vowel-result strong{font-family:var(--font-outlier);font-size:var(--text-lg)}.curriculum-map{gap:var(--space-xl);padding-block:var(--space-md);display:grid}.phase-section{gap:var(--space-md);display:grid}.phase-heading{gap:var(--space-2xs);grid-template-columns:minmax(0,1fr);display:grid}.phase-heading>span{color:var(--color-accent);font-family:var(--font-outlier);font-weight:700}.phase-heading h2,.phase-heading p{margin-block-end:0}.phase-heading p{color:var(--color-neutral)}.phase-lessons{gap:var(--space-sm);display:grid}.curriculum-card{gap:var(--space-sm);min-width:0;padding:var(--space-md);color:var(--color-ink);text-align:start;display:grid}.curriculum-card:hover{background:var(--color-accent-soft)}.curriculum-card p{color:var(--color-neutral);margin-block-end:0}.curriculum-card-top,.curriculum-best,.card-heading{justify-content:space-between;align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.curriculum-card-top span,.curriculum-card-top i{color:var(--color-neutral);font-size:var(--text-sm);font-style:normal;font-weight:700}.curriculum-card-top i{color:var(--color-accent)}.curriculum-card h3{margin:0}.curriculum-best{border-block-start:var(--rule-hair) solid var(--color-rule);color:var(--color-neutral);font-size:var(--text-sm);padding-block-start:var(--space-sm)}.curriculum-best strong{color:var(--color-ink);font-family:var(--font-outlier)}.source-note{gap:var(--space-md);padding:var(--space-md);display:grid}.source-note p{color:var(--color-neutral);margin-block-end:0}.source-links a{min-height:auto}.records-heading{align-items:end}.nickname-field{gap:var(--space-3xs);min-width:0;display:grid}.nickname-field small{color:var(--color-muted);font-size:var(--text-xs)}.summary-grid,.records-columns{gap:var(--space-sm);display:grid}.summary-card{align-content:start;gap:var(--space-xs);min-width:0;padding:var(--space-md);display:grid}.summary-card>span{color:var(--color-neutral);font-size:var(--text-sm);font-weight:700}.summary-card>strong{font-family:var(--font-outlier);font-size:var(--text-xl)}.summary-card>strong small{font-family:var(--font-body);font-size:var(--text-sm);margin-inline-start:var(--space-3xs)}.summary-card p{color:var(--color-neutral);font-size:var(--text-sm);margin:0}.accent-card{border-color:var(--color-accent);background:var(--color-accent-soft)}.chart-card,.leaderboard-card,.history-card{min-width:0;padding:var(--space-md)}.card-heading{margin-block-end:var(--space-md)}.card-heading h2{margin-block-end:0}.card-heading button,.history-actions button{padding-inline:var(--space-sm);border-radius:var(--radius-input);font-size:var(--text-sm);font-weight:700}.chart-legend{align-items:center;gap:var(--space-2xs);color:var(--color-neutral);font-size:var(--text-sm);display:flex}.chart-legend i{background:var(--color-accent);width:1rem;height:.75rem}.bar-chart{gap:var(--space-2xs);grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;min-height:16rem;display:grid}.bar-column{gap:var(--space-2xs);text-align:center;grid-template-rows:auto 10rem auto;min-width:0;display:grid}.bar-value,.bar-column strong{font-size:var(--text-sm);overflow-wrap:anywhere}.bar-track{border:var(--rule-hair) solid var(--color-rule);background:var(--color-paper-3);position:relative;overflow:clip}.bar-track i{background:var(--color-accent);position:absolute;inset-block-end:0;inset-inline:0}.leaderboard-list{margin:0;padding:0;list-style:none}.leaderboard-list li{gap:var(--space-xs);padding-block:var(--space-xs);border-block-end:var(--rule-hair) solid var(--color-rule);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.leaderboard-list .rank{color:var(--color-muted);font-family:var(--font-outlier)}.leaderboard-list li>span:nth-of-type(2),.leaderboard-list em,.leaderboard-list b{font-family:var(--font-outlier);font-style:normal}.leaderboard-list em,.leaderboard-list b{color:var(--color-neutral);font-size:var(--text-sm);grid-column:2/-1}.leaderboard-me{background:var(--color-accent-soft)}.empty-state{gap:var(--space-sm);padding-block:var(--space-lg);justify-items:start;display:grid}.empty-state p,.score-formula{color:var(--color-neutral);font-size:var(--text-sm);margin:0}.history-table-wrap{min-width:0}.history-table-wrap table,.history-table-wrap thead,.history-table-wrap tbody,.history-table-wrap tr,.history-table-wrap th,.history-table-wrap td{display:block}.history-table-wrap thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:clip}.history-table-wrap tbody{gap:var(--space-sm);display:grid}.history-table-wrap tr{padding:var(--space-sm);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-input);background:var(--color-paper-2)}.history-table-wrap td{gap:var(--space-sm);padding-block:var(--space-3xs);overflow-wrap:anywhere;grid-template-columns:minmax(5.5rem,auto) minmax(0,1fr);display:grid}.history-table-wrap td:before{content:attr(data-label);color:var(--color-neutral);font-size:var(--text-sm);font-weight:700}.status-pass,.status-practice{width:fit-content;padding-inline:var(--space-2xs);border:var(--rule-hair) solid var(--color-accent);border-radius:var(--radius-pill);color:var(--color-accent);font-size:var(--text-xs);font-weight:700;display:inline-block}.status-practice{border-color:var(--color-rule-2);color:var(--color-neutral)}.danger-button{border-color:var(--color-error);color:var(--color-error)}.site-footer{gap:var(--space-sm);width:min(100%,105rem);padding:var(--space-lg) var(--space-sm);border-block-start:var(--rule-hair) solid var(--color-rule);margin-inline:auto;display:grid}.site-footer>div,.site-footer>address{gap:var(--space-xs) var(--space-md);flex-wrap:wrap;display:flex}.site-footer>address{font-style:normal}.site-footer span{color:var(--color-neutral);font-size:var(--text-sm)}.site-footer a{white-space:nowrap;min-height:auto}.onboarding-backdrop{z-index:20;padding:var(--space-sm);background:var(--color-paper-3);place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.onboarding-card{gap:var(--space-md);width:min(100%,54rem);padding:var(--space-lg);display:grid}.onboarding-card>p{color:var(--color-neutral)}.mode-options{gap:var(--space-sm);display:grid}.mode-options button{gap:var(--space-2xs);min-width:0;padding:var(--space-md);border-radius:var(--radius-card);text-align:start;display:grid}.mode-options button span,.mode-options button small{color:var(--color-neutral);font-size:var(--text-sm)}.mode-options button i{color:var(--color-accent);font-style:normal;font-weight:700}.mode-options .mode-selected{border-color:var(--color-accent);background:var(--color-accent-soft)}.home-setup{gap:var(--space-sm);padding:var(--space-sm);border:var(--rule-hair) solid var(--color-rule);background:var(--color-paper-2);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.home-key{border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-input);background:var(--color-paper);width:3rem;height:3rem;font-family:var(--font-outlier);place-items:center;display:grid}.home-key i{width:.75rem;height:var(--rule-fine);background:var(--color-ink)}.home-setup p{gap:var(--space-2xs);margin:0;display:grid}.home-setup span{color:var(--color-neutral);font-size:var(--text-sm)}@media (width>=40rem){.app-header,main,.site-footer{padding-inline:var(--space-md)}.header-actions{grid-template-columns:minmax(18rem,1fr) auto;align-items:end}.daily-strip{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center}.daily-intro,.daily-goal,.weak-button{grid-column:span 3}.daily-number{border-block-start:0;border-inline-start:var(--rule-hair) solid var(--color-rule);justify-content:start;padding-inline-start:var(--space-sm);display:grid}.lesson-list,.phase-lessons,.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trainer-heading,.trainer-footer,.records-heading{grid-template-columns:minmax(0,1fr) auto}.live-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-pill:nth-child(2n){border-inline-end:var(--rule-hair) solid var(--color-rule)}.stat-pill:last-child{border-inline-end:0}.live-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.result-metrics{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1fr)}.result-metrics .stat-pill,.result-metrics .stat-pill:nth-child(2n){border-inline-end:var(--rule-hair) solid var(--color-rule);border-block-end:0}.result-metrics .stat-pill:last-child{border-inline-end:0}.result-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.result-score,.result-outcome{padding:var(--space-sm)}.hero-principles{grid-template-columns:repeat(3,minmax(0,1fr))}.personal-vowel-card{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:end}.source-note{grid-template-columns:minmax(12rem,.5fr) minmax(0,1.5fr)}.source-links{grid-column:2}.leaderboard-list li{grid-template-columns:auto minmax(0,1fr) auto auto auto}.leaderboard-list em,.leaderboard-list b{grid-column:auto}.history-table-wrap table{border-collapse:collapse;width:100%;display:table}.history-table-wrap thead{clip-path:none;width:auto;height:auto;display:table-header-group;position:static;overflow:visible}.history-table-wrap tbody{display:table-row-group}.history-table-wrap tr{background:0 0;border:0;padding:0;display:table-row}.history-table-wrap th,.history-table-wrap td{padding:var(--space-xs);border-block-end:var(--rule-hair) solid var(--color-rule);text-align:start;vertical-align:top;display:table-cell}.history-table-wrap th{color:var(--color-neutral);font-size:var(--text-sm)}.history-table-wrap td:before{display:none}.mode-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=60rem){.app-header{padding-block:var(--space-md);grid-template-columns:minmax(18rem,1fr) auto minmax(20rem,1fr);align-items:center}.header-actions{justify-self:end}.result-panel{padding-inline:var(--space-xl);grid-template-columns:minmax(0,1fr)}.phase-section{grid-template-columns:minmax(11rem,.45fr) minmax(0,1.55fr)}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.daily-strip{grid-template-columns:minmax(18rem,1.5fr) minmax(12rem,1fr) repeat(3,minmax(8rem,.65fr)) minmax(12rem,.8fr)}.daily-intro,.daily-goal,.weak-button{grid-column:auto}.daily-number{padding-inline-start:var(--space-md)}.practice-layout{grid-template-columns:minmax(15rem,.65fr) minmax(0,2.35fr)}.lesson-list{grid-template-columns:1fr}.practice-sidebar{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.phase-lessons{grid-template-columns:repeat(2,minmax(0,1fr))}.records-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (width>=90rem){.practice-layout{grid-template-columns:minmax(15rem,.6fr) minmax(0,2.5fr) minmax(15rem,.65fr)}.practice-sidebar{grid-column:auto;grid-template-columns:1fr}}@media (hover:hover) and (pointer:fine){button:not(:disabled):not([aria-disabled=true]):hover{background:var(--color-accent-soft)}}@media (pointer:coarse){button,select,input,a{min-height:3rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}body{line-height:1.55}.app-header,main,.site-footer{width:min(100%,92rem)}.app-header{z-index:20;gap:var(--space-xs);padding-block:var(--space-xs);background:var(--color-paper);grid-template-columns:minmax(0,1fr) auto;position:relative}.main-nav{grid-column:1/-1;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:0}.site-identity strong{font-size:var(--text-md);line-height:1.25}.site-identity span{font-size:var(--text-xs);font-weight:400}.main-nav button,.header-settings>summary{min-height:2.75rem;padding-inline:var(--space-xs);border:0;border-block-end:var(--rule-fine) solid transparent;background:var(--color-paper);color:var(--color-neutral);font-size:var(--text-sm);white-space:nowrap;border-radius:0;font-weight:700}.main-nav .nav-active{border-color:var(--color-accent);background:var(--color-paper);color:var(--color-ink)}.header-actions{justify-content:flex-end;align-items:center;gap:var(--space-xs);display:flex}.sync-state{white-space:nowrap;display:none}.sync-state i{border-radius:50%}.header-settings{position:relative}.header-settings>summary,.course-disclosure>summary,.practice-notes>summary,.personal-vowel-disclosure>summary{cursor:pointer;white-space:nowrap;list-style:none}.header-settings>summary::-webkit-details-marker{display:none}.course-disclosure>summary::-webkit-details-marker{display:none}.practice-notes>summary::-webkit-details-marker{display:none}.personal-vowel-disclosure>summary::-webkit-details-marker{display:none}.header-settings>summary:after,.course-disclosure>summary:after,.practice-notes>summary:after,.personal-vowel-disclosure>summary:after{content:"＋";color:var(--color-accent);margin-inline-start:var(--space-2xs)}.header-settings[open]>summary:after,.course-disclosure[open]>summary:after,.practice-notes[open]>summary:after,.personal-vowel-disclosure[open]>summary:after{content:"−"}.settings-panel{z-index:100;gap:var(--space-xs);width:min(22rem, calc(100vw - 2 * var(--space-sm)));padding:var(--space-sm);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-card);background:var(--color-paper);box-shadow:var(--shadow-card);display:grid;position:absolute;inset-block-start:calc(100% + var(--space-2xs));inset-inline-end:0}.settings-panel p{color:var(--color-neutral);font-size:var(--text-xs);margin:0}main{padding-block-start:var(--space-xs)}.practice-layout{gap:var(--space-xs);grid-template-columns:minmax(0,1fr);margin-block-start:0;display:grid}.practice-course-bar{z-index:10;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-block-end:var(--rule-hair) solid var(--color-rule);background:var(--color-paper);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid;position:relative}.current-lesson-label{min-width:0}.current-lesson-label>span{color:var(--color-neutral);font-size:var(--text-xs);display:block}.current-lesson-label h1{font-size:var(--text-lg);white-space:nowrap;text-overflow:ellipsis;margin:0;line-height:1.25;overflow:hidden}.practice-course-bar>.progress-meter{width:min(18rem,24vw);display:none}.course-disclosure{grid-area:1/2}.course-disclosure>summary{min-height:2.75rem;padding:var(--space-2xs) var(--space-xs);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-input);font-size:var(--text-sm);font-weight:700}.course-disclosure-panel{z-index:100;gap:var(--space-sm);padding:var(--space-sm);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-card);background:var(--color-paper);box-shadow:var(--shadow-card);display:grid;position:absolute;inset-block-start:calc(100% + var(--space-2xs));inset-inline:0}.course-compact-grid{gap:var(--space-2xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.course-compact-grid button{gap:0 var(--space-2xs);min-width:0;padding:var(--space-2xs);text-align:start;grid-template-columns:auto minmax(0,1fr);display:grid}.course-compact-grid button>span{color:var(--color-neutral);font-family:var(--font-outlier);font-size:var(--text-xs);grid-row:1/span 2}.course-compact-grid button>strong,.course-compact-grid button>small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.course-compact-grid button>strong{font-size:var(--text-sm)}.course-compact-grid button>small{color:var(--color-neutral);font-size:var(--text-xs)}.course-compact-grid .lesson-active,.course-compact-grid .lesson-done{border-color:var(--color-accent)}.course-compact-grid .lesson-active{background:var(--color-accent-soft)}.course-compact-grid .lesson-locked{background:var(--color-paper-2)}.next-unlock-summary{gap:var(--space-xs);border-block-start:var(--rule-hair) solid var(--color-rule);padding-block-start:var(--space-xs);display:grid}.next-unlock-summary p,.course-complete-note{color:var(--color-neutral);font-size:var(--text-sm);margin:0}.text-button{border:0;border-block-end:var(--rule-hair) solid var(--color-accent);color:var(--color-accent);border-radius:0;justify-self:start;font-weight:700}.trainer-card{background:var(--color-paper);box-shadow:none;border:0;border-radius:0}.trainer-heading{gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);grid-template-columns:minmax(0,1fr);align-items:center}.trainer-heading p{color:var(--color-neutral);font-size:var(--text-sm);margin:0}.pass-condition{color:var(--color-neutral);font-size:var(--text-xs);white-space:normal}.focus-badges{display:none}.focus-badges span{background:var(--color-paper);min-width:2.25rem;min-height:2.25rem}.live-stats{background:var(--color-paper-2);border-block-end:0;grid-template-columns:repeat(2,minmax(0,1fr))}.stat-pill{padding:var(--space-2xs) var(--space-xs);border-block-end:var(--rule-hair) solid var(--color-rule);gap:0}.stat-pill:nth-child(2n){border-inline-end:var(--rule-hair) solid var(--color-rule)}.stat-pill:last-child{border-inline-end:0}.stat-pill strong{font-size:var(--text-md)}.live-progress{gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-paper);grid-template-columns:minmax(0,1fr)}.progress-track{border-radius:var(--radius-input);height:.5rem}.prompt-zone{padding:var(--space-sm) var(--space-sm) var(--space-xs)}.prompt-counter{margin-block-end:var(--space-2xs)}.japanese-prompt{margin-block-end:var(--space-3xs);font-size:clamp(1.25rem,2.5vw,1.75rem)}.feedback-line{min-height:2.25rem;font-size:var(--text-sm);margin-block-start:var(--space-xs)}.keyboard,.guide-card{width:min(calc(100% - 2 * var(--space-sm)), 62rem);margin-inline:auto}.keyboard{padding:var(--space-3xs);background:var(--color-paper)}.keyboard-key,.modifier-key,.space-key{background:var(--color-paper);min-height:clamp(2.25rem,5vw,3.25rem)}.modifier-key,.space-key{min-height:2.25rem}.guide-card{gap:var(--space-xs) var(--space-sm);margin-block:var(--space-xs) 0;padding:var(--space-xs);border-color:var(--color-rule);background:var(--color-paper);box-shadow:none;grid-template-columns:minmax(0,1fr)}.guide-card>.section-kicker{grid-column:1}.hands{gap:var(--space-xs)}.finger{border-radius:var(--radius-card) var(--radius-card) 0 0;height:2rem}.palm{min-height:1.5rem;padding:0}.finger-instruction{border-block-start:0;align-self:center;padding-block-start:0}.home-reminder,.guide-note{grid-column:1}.home-reminder{margin-block-start:0}.key-bump-mini{width:2rem;height:2rem}.guide-note{text-align:center}.trainer-footer{gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);grid-template-columns:minmax(0,1fr);align-items:center}.trainer-footer>.shortcut-help{margin:0}.practice-notes{color:var(--color-neutral);font-size:var(--text-sm);grid-column:1/-1}.practice-notes>summary,.personal-vowel-disclosure>summary{min-height:2.75rem;padding-block:var(--space-2xs);color:var(--color-accent);font-weight:700}.practice-notes>div{gap:var(--space-2xs);border-block-start:var(--rule-hair) solid var(--color-rule);padding-block-start:var(--space-xs);display:grid}.practice-notes p{margin:0}.page-view{gap:var(--space-md)}.page-hero{gap:var(--space-sm);padding:var(--space-md) 0;border:0;border-block-end:var(--rule-hair) solid var(--color-rule);background:var(--color-paper);box-shadow:none;border-radius:0;grid-template-columns:minmax(0,1fr)}.page-hero h1{margin-block-end:var(--space-3xs)}.page-hero p{color:var(--color-neutral);margin:0}.curriculum-force-unlock{gap:var(--space-xs) var(--space-sm);border-block-end:var(--rule-hair) solid var(--color-rule);flex-wrap:wrap;align-items:center;padding-block-end:var(--space-sm);display:flex}.curriculum-force-unlock .secondary-button{white-space:nowrap;flex:none}.curriculum-force-unlock p{color:var(--color-neutral);font-size:var(--text-sm);flex:24rem;margin:0}.curriculum-map{padding-block:0}.curriculum-list{gap:var(--space-xs);margin:0;padding:0;list-style:none;display:grid}.curriculum-row{gap:var(--space-2xs) var(--space-xs);width:100%;min-width:0;padding:var(--space-xs);border-color:var(--color-rule);text-align:start;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.curriculum-number{color:var(--color-neutral);font-family:var(--font-outlier);grid-row:1/span 2}.curriculum-name{min-width:0;display:grid}.curriculum-name strong,.curriculum-name small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.curriculum-name strong{font-size:var(--text-md)}.curriculum-name small,.curriculum-record{color:var(--color-neutral);font-size:var(--text-xs)}.curriculum-status{color:var(--color-accent);font-size:var(--text-sm);white-space:nowrap;font-weight:700}.curriculum-record{grid-column:2}.curriculum-row>.progress-meter,.curriculum-next-unlock{grid-column:1/-1}.curriculum-next-unlock{gap:var(--space-xs);border-block-start:var(--rule-hair) solid var(--color-rule);padding-block-start:var(--space-xs);display:grid}.curriculum-next-unlock p{color:var(--color-neutral);font-size:var(--text-sm);margin:0}.curriculum-done{border-color:var(--color-accent)}.curriculum-locked{background:var(--color-paper-2)}.personal-vowel-disclosure{border-block:var(--rule-hair) solid var(--color-rule)}.personal-vowel-card{gap:var(--space-sm);padding:0 0 var(--space-sm);box-shadow:none;border:0;border-radius:0;grid-template-columns:minmax(0,1fr);align-items:end}.personal-vowel-card>p{grid-column:1}.course-disclosure-panel{inset-inline:calc(-1 * var(--space-sm))}.source-note,.records-heading,.summary-card,.chart-card,.leaderboard-card,.history-card,.onboarding-card{border-color:var(--color-rule);background:var(--color-paper);box-shadow:none}.site-footer{background:var(--color-paper);margin-block-start:var(--space-xl)}@media (width>=40rem){.practice-course-bar{grid-template-columns:minmax(0,1fr) minmax(12rem,.45fr) auto}.practice-course-bar>.progress-meter{display:grid}.course-disclosure{grid-column:3}.course-compact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.next-unlock-summary{grid-template-columns:minmax(14rem,.7fr) minmax(0,1.3fr);align-items:end}.page-hero{grid-template-columns:minmax(0,1fr) minmax(18rem,.65fr);align-items:end}.curriculum-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=60rem){.app-header{padding-block:var(--space-xs);grid-template-columns:minmax(17rem,1fr) auto minmax(17rem,1fr)}.header-actions{display:flex}.main-nav{grid-column:auto}.course-compact-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.practice-layout{grid-template-columns:minmax(0,1fr)}}@media (width>=48rem){.sync-state{display:flex}.trainer-heading{grid-template-columns:minmax(0,1fr) auto auto}.pass-condition{white-space:nowrap}.focus-badges{flex-wrap:nowrap;display:flex;overflow:hidden}.live-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.live-progress,.guide-card{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-card>.section-kicker,.home-reminder,.guide-note{grid-column:1/-1}.finger{height:2.25rem}.finger-ring,.finger-index{height:2.65rem}.finger-middle{height:2.9rem}.course-disclosure-panel{inset-inline:0}.trainer-footer{grid-template-columns:auto minmax(0,1fr)}.personal-vowel-card{grid-template-columns:minmax(0,1.5fr) minmax(8rem,.5fr) auto}.personal-vowel-card>p{grid-column:1/-1}}body{font-size:var(--text-sm)}main{width:min(100%,112rem)}.practice-layout{gap:var(--space-sm);padding:0 var(--space-xs) var(--space-md);grid-template-areas:"trainer""status""lesson"}.practice-left-rail{grid-area:lesson}.trainer-card{border-inline:var(--rule-hair) solid var(--color-rule);grid-area:trainer;min-width:0}.practice-right-rail{grid-area:status}.practice-left-rail,.practice-right-rail{gap:var(--space-sm);align-content:start;min-width:0;display:grid}.lesson-overview,.course-overview,.unlock-status,.performance-panel,.practice-right-rail .trainer-footer{min-width:0;padding:var(--space-sm);border:var(--rule-hair) solid var(--color-rule);background:var(--color-paper)}.lesson-overview>span{color:var(--color-neutral);font-size:var(--text-sm);margin-block-end:var(--space-3xs);display:block}.lesson-overview h1{margin:0 0 var(--space-xs);font-size:var(--text-xl);line-height:1.25}.lesson-details{color:var(--color-neutral);font-size:var(--text-sm)}.lesson-details>summary{min-height:2.75rem;padding-block:var(--space-2xs);color:var(--color-accent);cursor:pointer;font-weight:700}.lesson-details>p{color:var(--color-neutral);font-size:var(--text-sm);margin:0;line-height:1.6}.lesson-conditions{gap:var(--space-xs);margin:var(--space-xs) 0 0;border-block-start:var(--rule-hair) solid var(--color-rule);padding-block-start:var(--space-xs);display:grid}.lesson-conditions>div{gap:var(--space-3xs);display:grid}.lesson-conditions dt{color:var(--color-neutral);font-size:var(--text-xs);font-weight:700}.lesson-conditions dd{font-size:var(--text-sm);margin:0;font-weight:700}.lesson-conditions .focus-badges{gap:var(--space-3xs);flex-wrap:wrap;display:flex;overflow:visible}.lesson-conditions .focus-badges span{min-width:2rem;min-height:2rem;padding:var(--space-3xs);background:var(--color-paper);font-size:var(--text-sm)}.course-overview{gap:var(--space-xs);display:grid}.course-mini-map{gap:var(--space-3xs);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.course-mini-map li{gap:var(--space-3xs);min-width:0;min-height:2.75rem;padding:var(--space-3xs) var(--space-2xs);border:var(--rule-hair) solid var(--color-rule-2);background:var(--color-paper);text-align:start;grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.course-mini-map li>span{color:var(--color-neutral);font-family:var(--font-outlier);font-size:var(--text-xs)}.course-mini-map li>strong{min-width:0;font-size:var(--text-sm);overflow-wrap:anywhere;line-height:1.25}.course-mini-map .lesson-active{border-color:var(--color-focus);background:var(--color-accent-soft)}.course-mini-map .lesson-done{border-color:var(--color-accent)}.course-mini-map .lesson-locked{background:var(--color-paper-2)}.unlock-status .next-unlock-summary{gap:var(--space-2xs);grid-template-columns:minmax(0,1fr);padding-block-start:var(--space-xs)}.unlock-status .next-unlock-summary p{font-size:var(--text-sm);line-height:1.55}.course-overview .text-button{min-height:2.75rem;font-size:var(--text-sm)}.prompt-zone{min-height:10rem;padding:var(--space-sm);justify-items:center;display:grid}.prompt-counter{color:var(--color-neutral);font-size:var(--text-sm)}.japanese-prompt{font-size:clamp(1.75rem,3vw,2.25rem)}.roman-prompt{min-height:3rem;font-size:clamp(2.25rem,5vw,3.25rem)}.target-instruction{gap:var(--space-2xs);color:var(--color-neutral);font-size:var(--text-sm);grid-template-columns:auto auto auto;align-items:baseline;margin-block-start:var(--space-2xs);display:grid}.target-instruction strong{color:var(--color-accent);font-family:var(--font-outlier);font-size:var(--text-xl);line-height:1}.feedback-line{font-size:var(--text-sm);margin-block-start:var(--space-2xs)}.keyboard{width:min(calc(100% - 2 * var(--space-sm)), 52rem);padding:var(--space-xs) var(--space-sm);border:var(--rule-hair) solid var(--color-rule-2);background:var(--color-paper-2);overflow-x:auto}.keyboard-row{gap:var(--space-3xs);max-width:43rem;margin:0 auto var(--space-3xs);grid-template-columns:repeat(10,minmax(2.25rem,1fr))}.number-row{grid-template-columns:repeat(10,minmax(2rem,1fr)) minmax(3rem,1.35fr);max-width:46.5rem}.keyboard-row-1{padding-inline:1.7% .2%}.keyboard-row-2{padding-inline:4.8% .2%}.keyboard-key,.modifier-key,.space-key{border:var(--rule-hair) solid var(--color-rule-2);border-block-end-width:var(--space-3xs);border-radius:var(--radius-card);background:var(--color-paper);min-height:2.75rem}.number-key{min-height:2.25rem}.keyboard-key span{font-size:var(--text-sm)}.keyboard-key:after{height:var(--rule-fine);border-radius:var(--radius-input);background:var(--finger-color,var(--color-rule-2));content:"";position:absolute;inset-block-end:var(--space-3xs);inset-inline:24%}.keyboard-key.key-target{border-color:var(--color-focus);background:var(--color-accent-soft);color:var(--color-ink);opacity:1;transform:translateY(calc(-1 * var(--space-3xs)))}.keyboard-key.key-pressed{border-block-end-width:var(--rule-hair);transform:translateY(var(--space-3xs))}.space-row{gap:var(--space-xs);justify-content:center;margin-block-start:var(--space-2xs);display:flex}.modifier-key{width:5rem;min-height:2.25rem}.space-key{width:38%;min-height:2.25rem}.space-key small{font-size:var(--text-xs)}.guide-card{width:min(calc(100% - 2 * var(--space-sm)), 46rem);gap:var(--space-2xs) var(--space-md);margin:var(--space-xs) auto 0;padding:var(--space-xs) var(--space-sm);background:var(--color-paper);border:0;grid-template-columns:minmax(17rem,1.15fr) minmax(13rem,.85fr);grid-template-areas:"hands instruction""hands home";align-items:center}.hands{gap:var(--space-sm);grid-area:hands;justify-content:center;align-items:end;display:flex}.hand-shape{width:7rem;min-width:7rem;padding-inline:.55rem;display:block;position:relative}.finger-row{gap:var(--space-3xs);justify-content:center;align-items:end;height:5rem;display:flex}.finger{border:var(--rule-fine) solid var(--color-rule-2);background:var(--color-paper-3);width:1.35rem;min-width:1.35rem;height:3.45rem;color:var(--color-neutral);font-size:var(--text-xs);border-radius:.7rem .7rem .2rem .2rem;padding-block-start:var(--space-3xs)}.finger-pinky{height:2.65rem}.finger-ring{height:3.85rem}.finger-middle{height:4.3rem}.finger-index{height:3.65rem}.palm{min-height:2.65rem;padding:var(--space-2xs);border:var(--rule-fine) solid var(--color-rule-2);background:var(--color-paper-3);font-size:var(--text-xs);border-radius:.45rem .45rem 1.5rem 1.5rem}.thumb{z-index:1;border:var(--rule-fine) solid var(--color-rule-2);background:var(--color-paper-3);width:1.5rem;height:3rem;color:var(--color-neutral);font-size:var(--text-xs);border-radius:.75rem .75rem .25rem .25rem;place-items:start center;padding-block-start:var(--space-3xs);display:grid;position:absolute;inset-block-end:.55rem}.thumb-left{transform-origin:bottom;inset-inline-end:-.45rem;transform:rotate(42deg)}.thumb-right{transform-origin:bottom;inset-inline-start:-.45rem;transform:rotate(-42deg)}.finger-active{border-color:var(--color-focus);background:var(--color-accent-soft);color:var(--color-ink)}.thumb-left.finger-active{transform:rotate(42deg)translateY(-.2rem)}.thumb-right.finger-active{transform:rotate(-42deg)translateY(-.2rem)}.finger-instruction{gap:var(--space-xs);border:0;grid-area:instruction;grid-template-columns:auto minmax(0,1fr);padding:0}.target-key-label{min-width:3rem;min-height:3rem;font-size:var(--text-lg)}.finger-instruction strong{font-size:var(--text-md)}.finger-instruction span:last-child{font-size:var(--text-sm)}.home-reminder{font-size:var(--text-sm);grid-area:home;justify-content:start;margin:0}.performance-panel h2{font-size:var(--text-lg);margin-block-end:var(--space-xs)}.practice-right-rail .live-stats{border:var(--rule-hair) solid var(--color-rule);background:var(--color-paper);grid-template-columns:repeat(2,minmax(0,1fr))}.practice-right-rail .stat-pill{min-width:0;padding:var(--space-2xs);border:0;border-inline-end:var(--rule-hair) solid var(--color-rule);border-block-end:var(--rule-hair) solid var(--color-rule)}.practice-right-rail .stat-pill:nth-child(2n){border-inline-end:0}.practice-right-rail .stat-pill:nth-last-child(-n+2){border-block-end:0}.practice-right-rail .stat-pill span{font-size:var(--text-sm)}.practice-right-rail .stat-pill strong{font-size:var(--text-md)}.practice-right-rail .live-progress{gap:var(--space-sm);padding:var(--space-sm) 0 0;grid-template-columns:minmax(0,1fr)}.practice-right-rail .trainer-footer{gap:var(--space-xs);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.practice-right-rail .trainer-controls button{width:100%}.practice-right-rail .shortcut-help,.practice-right-rail .practice-notes{font-size:var(--text-sm);margin:0;line-height:1.55}@media (width<=47.99rem){.guide-card{grid-template-columns:minmax(0,1fr);grid-template-areas:"hands""instruction""home"}.keyboard{padding-inline:var(--space-2xs)}.keyboard-row{min-width:34rem}.number-row{min-width:37rem}}@media (width>=48rem) and (width<=69.99rem){.practice-layout{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"trainer trainer""status lesson"}}@media (width>=70rem){.practice-layout{gap:var(--space-sm);padding-inline:var(--space-sm);grid-template-columns:minmax(14rem,17rem) minmax(32rem,1fr) minmax(13rem,15rem);grid-template-areas:"lesson trainer status";align-items:start}.trainer-card{min-height:calc(100dvh - 6.5rem)}}.app-header{z-index:300;width:100%;padding-inline:max(var(--space-sm), calc((100% - 92rem) / 2 + var(--space-sm)));position:sticky;inset-block-start:0}.main-nav{overscroll-behavior-inline:contain;scrollbar-width:thin;min-width:0;display:flex;overflow-x:auto}.main-nav button{flex:none}.sync-state{display:flex}.sync-short{display:none}.sync-warning{color:var(--color-error)}.sync-warning i{background:var(--color-error)}.standalone-note{min-width:0;padding:var(--space-sm);border:var(--rule-hair) solid var(--color-rule);background:var(--color-paper)}.standalone-note h2{margin:0 0 var(--space-2xs);font-size:var(--text-md)}.standalone-note p{color:var(--color-neutral);font-size:var(--text-sm);margin:0;line-height:1.55}.course-mini-map{border-block:var(--rule-hair) solid var(--color-rule);gap:0}.course-mini-map li{gap:var(--space-2xs);min-height:2.5rem;padding:var(--space-2xs) 0;border:0;border-block-end:var(--rule-hair) solid var(--color-rule);background:var(--color-paper);grid-template-columns:2rem minmax(0,1fr)}.course-mini-map li:nth-last-child(-n+2){border-block-end:0}.course-mini-map li:nth-child(odd){border-inline-end:var(--rule-hair) solid var(--color-rule);padding-inline-end:var(--space-2xs)}.course-mini-map li:nth-child(2n){padding-inline-start:var(--space-2xs)}.course-mini-map li>span,.course-mini-map li>small{color:var(--color-neutral);font-size:var(--text-xs);font-weight:400}.course-mini-map .course-mini-title{min-width:0;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-sm);overflow-wrap:anywhere;line-height:1.35}.course-mini-map li>small{text-align:start;white-space:nowrap;grid-column:2}.course-mini-map .lesson-active{border-inline-start:var(--rule-fine) solid var(--color-accent);background:var(--color-paper)}.course-mini-map .lesson-active>span:first-child,.course-mini-map .lesson-active>small{color:var(--color-accent)}.course-mini-map .lesson-done,.course-mini-map .lesson-locked{border-color:var(--color-rule);background:var(--color-paper)}.course-mini-map .lesson-active{border-inline-start-color:var(--color-accent)}.course-mini-map .lesson-locked .course-mini-title{color:var(--color-neutral)}@media (width>=60rem){.app-header{grid-template-columns:minmax(0,1fr) auto}.main-nav{grid-column:1/-1;grid-template-columns:repeat(5,minmax(max-content,1fr));display:grid;overflow-x:visible}}@media (width<=47.99rem){.sync-copy{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:clip}.sync-short{font-size:var(--text-xs);white-space:nowrap;display:inline}}@media (width>=90rem){.app-header{grid-template-columns:minmax(16rem,1fr) minmax(40rem,max-content) minmax(16rem,1fr)}.main-nav{grid-column:auto}}
