:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#eef2f3;--paper-deep:#dce5e8;--paper-light:#f8fafb;--ink:#10252d;--ink-soft:#48636c;--green:#1d7480;--green-light:#dce9eb;--vermillion:#d8573f;--vermillion-light:#f5e4e0;--line:#c4cfd2;--rail:#122a32;--display:"Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", "Noto Serif TC", serif;--body:"Avenir Next", "Segoe UI", "Hiragino Sans", "PingFang TC", "Noto Sans TC", system-ui, sans-serif;--ease-out:cubic-bezier(.23, 1, .32, 1)}*{box-sizing:border-box}::selection{background:var(--green);color:#fff}html{background:var(--paper);scroll-behavior:smooth;min-width:0}body{background:var(--paper);color:var(--ink);font-family:var(--body);margin:0;line-height:1.55}h1,h2,h3,h4{text-wrap:balance;scroll-margin-top:1rem}button,input{font:inherit}button{border:1px solid var(--ink);min-height:44px;color:inherit;cursor:pointer;transition:background-color .14s var(--ease-out), border-color .14s var(--ease-out), color .14s var(--ease-out), transform 80ms var(--ease-out);background:0 0}button:active:not(:disabled){transform:scale(.98)}button:disabled{cursor:not-allowed;opacity:.45}:is(button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,canvas:focus-visible){outline:3px solid var(--green);outline-offset:3px}[data-view-heading]:focus{outline:2px solid var(--green);outline-offset:6px}a{color:inherit}progress{background:var(--paper-deep);width:100%;height:6px;accent-color:var(--green);border:0;overflow:hidden}progress::-webkit-progress-bar{background:var(--paper-deep)}progress::-webkit-progress-value{background:var(--green)}progress::-moz-progress-bar{background:var(--green)}.skip-link{z-index:100;background:var(--ink);color:#fff;padding:.75rem 1rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.app-shell{min-height:100dvh}.side-rail,.rail-toggle{display:none}.app-main{min-width:0;padding-right:env(safe-area-inset-right);padding-bottom:calc(6rem + env(safe-area-inset-bottom));padding-left:env(safe-area-inset-left)}.topbar{border-bottom:1px solid var(--line);background:#eef2f3f5;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;min-height:78px;padding:.75rem 1rem;display:grid;position:relative}.topbar>div:not(.mobile-brand):not(.auth-panel){display:none}.mobile-brand{grid-area:1/1;min-width:0}.topbar>.auth-panel-login{grid-area:1/2;place-self:center end;margin-top:0}.today-date,.topbar strong{display:block}.today-date{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem}.topbar strong{margin-top:.15rem;font-size:1rem}.auth-panel{flex-wrap:wrap;align-items:end;gap:.45rem;margin-top:.65rem;font-size:.72rem;display:flex}.auth-panel form,.auth-panel label{flex-wrap:wrap;align-items:end;gap:.4rem;display:flex}.auth-panel label{color:var(--ink-soft)}.auth-panel input{border:1px solid var(--line);background:var(--paper-light);min-height:38px;color:var(--ink);padding:.45rem .55rem}.auth-panel button{min-height:44px;padding:.45rem .65rem}.auth-panel p{color:var(--ink-soft);flex-basis:100%;margin:0}.auth-message.is-neutral{color:var(--green)}.auth-message.is-error{color:var(--vermillion)}.auth-panel div strong,.auth-panel div small{display:block}.auth-captcha{border:1px solid var(--line);background:var(--paper-light);gap:.5rem;width:min(100%,280px);padding:.6rem .7rem;display:grid}.auth-captcha h2{margin:0;font-size:.72rem}.auth-captcha-widget{min-height:78px}.auth-captcha-fallback{color:var(--ink-soft);font-size:.7rem}.auth-captcha-fallback summary{cursor:pointer}.auth-login-trigger{background:var(--green);color:#fff;min-width:7rem;font-weight:700}.auth-dialog{border:1px solid var(--ink);background:var(--paper-light);width:min(100vw - 2rem,760px);max-height:calc(100dvh - 2rem);color:var(--ink);margin:auto;padding:0;overflow:auto}.auth-dialog::backdrop{background:#10252d94}.auth-dialog-shell{display:grid}.auth-dialog-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;gap:1rem;padding:1rem 1.1rem;display:flex}.auth-dialog-heading h2{margin:.1rem 0 0;font-size:1.45rem}.auth-dialog-heading p{color:var(--ink-soft);margin:.3rem 0 0;font-size:.78rem}.auth-dialog-heading small{color:var(--green);font-weight:700}.auth-dialog-heading button{min-width:5rem}.auth-dialog-grid{background:var(--line);gap:1px;display:grid}.auth-dialog-grid>*{background:var(--paper-light)}.auth-dialog .auth-captcha{border:0;width:100%;padding:1rem}.auth-dialog .auth-captcha h3{font-size:1rem}.auth-dialog-actions{align-content:start;gap:.75rem;padding:1rem;display:grid}.auth-dialog-actions form,.auth-dialog-actions form label{gap:.4rem;display:grid}.auth-dialog-actions input{width:100%;min-height:44px}.auth-dialog-actions button{white-space:nowrap;width:100%}.auth-dialog-actions .privacy-note{color:var(--ink-soft);font-size:.72rem}.cms-layout{gap:1rem;display:grid}.cms-view .page-heading a{align-items:center;min-height:44px;padding:.25rem;display:inline-flex}.cms-form,.cms-preview{border:1px solid var(--line);background:var(--paper-light);gap:.85rem;padding:1rem;display:grid}.cms-form label{color:var(--ink-soft);gap:.3rem;font-size:.75rem;display:grid}.cms-form input,.cms-form textarea,.cms-form select{border:1px solid var(--line);width:100%;min-height:44px;color:var(--ink);font:inherit;background:#fff;padding:.55rem}.cms-form textarea{resize:vertical;min-height:76px}.cms-message{margin:0}.cms-message.is-neutral{color:var(--green)}.cms-message.is-error{color:var(--vermillion)}.cms-actions{gap:.5rem;display:grid}.cms-revision-link{border-top:1px solid var(--line);gap:.35rem;margin:0;padding-top:.7rem;display:grid}.cms-revision-link code{overflow-wrap:anywhere}.cms-gates{background:var(--line);gap:1px;margin:0;padding:1px;list-style:none;display:grid}.cms-gates li{background:#fff;grid-template-columns:minmax(8rem,1fr) auto;gap:.2rem 1rem;padding:.65rem;display:grid}.cms-gates li small{color:var(--ink-soft);grid-column:1/-1}.cms-preview h3{font-size:1.5rem}.cms-preview dl{gap:.5rem;margin:0;display:grid}.cms-preview dl div{grid-template-columns:7rem 1fr;display:grid}.cms-preview dt{color:var(--ink-soft)}.cms-preview fieldset{border:1px solid var(--line);gap:.5rem;margin:0;padding:1rem;display:grid}.brand{align-items:center;gap:.65rem;display:flex}.brand-mark{flex:none;width:40px;height:40px;display:block}.brand strong,.brand small{display:block}.brand strong{font-family:var(--body);letter-spacing:-.02em;font-size:1.2rem}.brand small{color:var(--ink-soft);letter-spacing:.18em;font-size:.65rem}.global-notice{border:1px solid var(--line);background:var(--paper-light);justify-content:space-between;align-items:center;gap:1rem;margin:1rem;padding:.75rem 1rem;font-size:.82rem;display:flex}.global-notice button{border:0;min-width:44px;min-height:44px;padding:0;font-size:1.25rem}.pwa-update-status{z-index:30;border:1px solid var(--ink);background:var(--paper-light);max-width:24rem;color:var(--ink);padding:.75rem 1rem;font-size:.8rem;position:fixed;bottom:1rem;right:1rem}.guest-adoption{border:1px solid var(--ink);background:var(--paper-light);gap:1rem;margin:1rem;padding:1rem;display:grid}.guest-adoption h2,.guest-adoption p{margin:0}.guest-adoption dl{gap:.4rem;margin:0;display:grid}.guest-adoption dl div{grid-template-columns:8rem 1fr;gap:1rem;display:grid}.guest-adoption dt{color:var(--ink-soft)}.guest-adoption dd{margin:0}.sync-status{color:var(--ink-soft);align-items:center;gap:.6rem;margin:.5rem 1rem;font-size:.72rem;display:flex}.sync-status p{margin:0}.sync-status.is-error{color:var(--vermillion)}.sync-status button{min-height:32px;padding:.25rem .5rem}.account-data{border:1px solid var(--line);background:var(--paper-light);gap:1rem;margin:1rem;padding:1rem;display:grid}.account-data h2,.account-data p{margin:0}.account-data ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.account-data li{align-items:center;gap:.5rem;display:grid}.account-data input{border:1px solid var(--line);min-height:42px;padding:.5rem}.account-delete{border-top:1px solid var(--line);gap:.5rem;padding-top:1rem;display:grid}.mfa-panel{border:1px solid var(--line);background:var(--paper-deep);gap:.55rem;padding:.85rem;display:grid}.mfa-panel h3,.mfa-panel p{margin:0}.mfa-panel button{justify-self:start}.mfa-enrollment{gap:.45rem;display:grid}.mfa-enrollment img{background:#fff;width:min(100%,220px);height:auto}.mfa-enrollment code,.mfa-enrollment small{overflow-wrap:anywhere}.mfa-verification{flex-wrap:wrap;align-items:end;gap:.5rem;display:flex}.mfa-verification label{color:var(--ink-soft);gap:.25rem;display:grid}.mfa-verification input{border:1px solid var(--line);background:#fff;width:10rem;min-height:42px;padding:.5rem}.mfa-recovery-button{color:var(--ink-soft);border:0;padding:.2rem 0;text-decoration:underline}.view{width:min(100%,1240px);margin:0 auto;padding:1.5rem 1rem 3rem}.context-line,.meta-line{letter-spacing:.03em;margin:0 0 .4rem;font-size:.72rem;font-weight:650}.context-line{color:var(--green)}.meta-line{color:var(--ink-soft)}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{font-family:var(--body);font-weight:750}h1{letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:clamp(2.2rem,11vw,4.8rem);line-height:1.04}h1 [lang=ja]{font-family:var(--display);font-weight:700}h2{margin:0;font-size:clamp(1.55rem,6vw,2.15rem);line-height:1.2}h3{margin:0}p{text-wrap:pretty}.section-heading{display:block}.section-heading h1,.section-heading h2,.section-heading h3{margin:0}.section-heading p{max-width:34rem;color:var(--ink-soft);margin:.45rem 0 0}.compact-heading h2,.compact-heading h3{font-size:1.35rem}.page-heading{margin:1.5rem 0 2rem}.page-heading>div>p:last-child{max-width:42rem;color:var(--ink-soft);margin:.8rem 0 0}.bottom-nav{z-index:50;padding:.35rem max(.35rem, env(safe-area-inset-right)) max(.35rem, env(safe-area-inset-bottom)) max(.35rem, env(safe-area-inset-left));border-top:1px solid var(--line);background:#f8fafbfa;position:fixed;bottom:0;left:0;right:0}.bottom-nav .nav-list{grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.bottom-nav button{min-width:0;color:var(--ink-soft);border:0;gap:.1rem;padding:.3rem .1rem;font-size:.64rem;display:grid;position:relative}.bottom-nav button>.nav-mark{font-family:var(--body);font-size:1.05rem;font-weight:650}.bottom-nav .nav-label{font-size:.64rem}.bottom-nav button[aria-current=page]{color:var(--green)}.bottom-nav button:hover:not(:disabled){color:var(--green);background:0 0}.bottom-nav button small{background:var(--vermillion);color:#fff;border-radius:50%;place-items:center;width:16px;height:16px;font-size:.58rem;display:grid;position:absolute;top:2px;left:calc(50% + 8px)}.today-intro{align-items:end;gap:1.5rem;padding:1.5rem 0 2.5rem;display:grid}.today-intro .intro-copy{max-width:34rem;color:var(--ink-soft);margin:1rem 0 0}.today-intro .mobile-streak{border-top:1px solid var(--line);color:var(--ink-soft);align-items:baseline;gap:.55rem;margin-top:1.15rem;padding-top:.7rem;font-size:.72rem;display:flex}.mobile-streak strong{color:var(--green);font-family:var(--body);font-variant-numeric:tabular-nums;font-size:1.15rem}.daily-mission{border:solid var(--line);background:var(--paper-deep);border-width:1px 0;gap:1rem;margin-bottom:1.5rem;padding:1.1rem;display:grid}.daily-mission h2{font-size:1.35rem}.daily-mission ol{gap:.45rem;margin:0;padding-left:1.5rem;font-size:.75rem;display:grid}.daily-mission li::marker{color:var(--green);font-family:var(--body);font-weight:700}.ruled-panel{border:1px solid var(--ink);background-color:var(--paper-light)}.next-lesson{grid-template-columns:auto 1fr;gap:1rem;padding:1.25rem;display:grid;position:relative}.lesson-index{border-right:1px solid var(--line);padding-right:1rem}.lesson-index span,.lesson-index strong{display:block}.lesson-index span{color:var(--ink-soft);letter-spacing:.04em;font-size:.68rem}.lesson-index strong{color:var(--green);font-family:var(--body);font-variant-numeric:tabular-nums;margin-top:1rem;font-size:2rem}.lesson-copy p:not(.meta-line){color:var(--ink-soft);margin:.4rem 0}.lesson-copy ul{flex-wrap:wrap;gap:.35rem 1.1rem;margin:.8rem 0 0;padding:0;font-size:.72rem;list-style:none;display:flex}.lesson-copy li:before{content:"— ";color:var(--green)}.start-lesson{background:var(--green);color:#fff;grid-column:1/-1;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.start-lesson b{font-size:1.3rem}.lesson-progress{background:var(--line);grid-column:1/-1;height:2px;margin-top:.5rem;position:relative}.lesson-progress>span{background:var(--green);position:absolute;inset:0 auto 0 0}.lesson-progress small{color:var(--ink-soft);font-size:.65rem;position:absolute;top:.35rem;right:0}.dashboard-grid{border:1px solid var(--line);background:var(--line);gap:1px;margin-top:2.5rem;display:grid}.dashboard-grid>section{background:var(--paper);padding:1.25rem}.foundation-meter{grid-template-columns:auto 1fr;align-items:center;gap:1.4rem;margin-top:1.5rem;display:grid}.foundation-meter>strong{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:3.3rem;line-height:1}.foundation-meter>strong small,.review-count small{font-size:1rem}.foundation-meter>div{grid-template-columns:4.5rem 1fr;align-items:center;gap:.55rem;font-size:.72rem;display:grid}.text-button{text-align:left;border-width:1px 0 0;width:100%;margin-top:1.5rem;padding:.7rem 0}.text-button span{float:right}.track-row{margin-top:1.4rem}.track-row>div{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.track-row>div span{letter-spacing:.05em;font-size:.78rem;font-weight:700}.track-row>div strong{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:1.3rem}.track-row small{color:var(--ink-soft);font-size:.74rem}.skill-bars{border-top:1px solid var(--line);gap:.45rem;margin-top:1.3rem;padding-top:1rem;display:grid}.skill-bars>div{grid-template-columns:5rem 1fr 1.7rem;align-items:center;gap:.5rem;font-size:.74rem;display:grid}.review-preview{color:var(--paper-light);background:var(--rail)!important}.review-count{font-family:var(--body);font-variant-numeric:tabular-nums;margin-top:1.4rem;font-size:4.8rem;line-height:1;display:block}.review-preview>p{color:#d6ded9;margin:.6rem 0 1rem;font-size:.8rem}.review-preview>button{border-color:var(--paper-light);width:100%;color:var(--paper-light)}.content-notice{border-top:1px solid var(--line);color:var(--ink-soft);margin-top:2rem;padding-top:1rem;font-size:.78rem}.stage-track{border:solid var(--line);border-width:1px 0 0 1px;grid-template-columns:repeat(2,1fr);margin:0 0 2rem;display:grid}.stage-track button{border:solid var(--line);text-align:left;border-width:0 1px 1px 0;gap:.3rem;min-width:0;padding:.9rem;display:grid}.stage-track button>span{color:var(--green);font-family:var(--body);font-variant-numeric:tabular-nums;font-size:.75rem}.stage-track button strong{font-family:var(--body)}.stage-track button small{color:var(--ink-soft);font-size:.62rem}.stage-track button[data-preview=true]{background:#e8edef}.stage-track button[aria-current=step]{background:var(--green);color:#fff}.stage-track button[aria-current=step] small,.stage-track button[aria-current=step] span{color:#d9f1f3}.lesson-workspace{border:1px solid var(--ink);background:var(--paper-light);display:grid}.lesson-brief{border-bottom:1px solid var(--ink);padding:1.4rem}.lesson-brief>p:not(.meta-line){color:var(--ink-soft)}.lesson-brief dl{border-top:1px solid var(--line);margin:1.5rem 0 0}.lesson-brief dl>div{border-bottom:1px solid var(--line);grid-template-columns:5.5rem 1fr;padding:.65rem 0;font-size:.75rem;display:grid}.lesson-brief dt{color:var(--ink-soft)}.lesson-brief dd{margin:0;font-weight:700}.lesson-quiz{padding:1.4rem}.lesson-quiz fieldset{border:0;gap:.65rem;margin:0 0 1rem;padding:0;display:grid}.lesson-quiz legend{width:100%;font-family:var(--body);margin-bottom:1rem;font-size:1.15rem;font-weight:700}.lesson-quiz legend span{color:var(--green);font-family:var(--body);letter-spacing:.14em;margin-bottom:.3rem;font-size:.64rem;display:block}.preview-notice{border:1px solid var(--line);background:var(--paper);margin:0 0 1rem;padding:.75rem;font-size:.72rem}.lesson-quiz.is-preview fieldset{opacity:.72}.lesson-quiz label{border:1px solid var(--line);cursor:pointer;grid-template-columns:auto 2rem 1fr;align-items:center;gap:.6rem;min-height:52px;padding:.55rem .75rem;display:grid}.lesson-quiz label:has(input:checked){border-color:var(--ink);background:var(--paper-deep)}.lesson-quiz input{accent-color:var(--green)}.choice-index{color:var(--green);font-family:var(--body);font-size:1.2rem}.lesson-quiz label.answer-correct{border-color:var(--green);background:var(--green-light)}.lesson-quiz label.answer-wrong{border-color:var(--vermillion);background:var(--vermillion-light)}.primary-button{background:var(--green);color:#fff;padding:.7rem 1.1rem}.quiz-feedback{border:1px solid var(--line);background:var(--paper);margin-top:1rem;padding:1rem}.quiz-feedback strong{color:var(--green)}.quiz-feedback.is-wrong strong{color:var(--vermillion)}.quiz-feedback p,.save-state{margin:.25rem 0 0;font-size:.78rem}.save-state{color:var(--ink-soft)}.path-disclaimer{color:var(--ink-soft);margin-top:1rem;font-size:.78rem}.workshop-layout{gap:1px;width:min(100%,1240px);margin:0 auto;padding:1.5rem 1rem 3rem;display:grid}.workshop-layout>section{border:1px solid var(--line);background:var(--paper-light);min-width:0;padding:1.25rem}.workshop-toolbar{gap:.7rem;margin-top:1.3rem;display:grid}.segmented{border:1px solid var(--line);flex-wrap:wrap;width:fit-content;display:inline-flex}.segmented button{border:0;border-right:1px solid var(--line);min-height:38px;padding:.45rem .75rem;font-size:.72rem}.segmented button:last-child{border-right:0}.segmented button[aria-pressed=true]{background:var(--ink);color:var(--paper-light)}.kana-picker-label{color:var(--ink-soft);margin:1rem 0 .4rem;font-size:.68rem;font-weight:700}.kana-row-picker{grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:.35rem;display:grid}.kana-row-picker button{border:1px solid var(--line);background:var(--paper-light);min-height:44px;padding:.45rem .35rem;font-size:.68rem}.kana-row-picker button[aria-pressed=true]{background:var(--ink);color:var(--paper-light)}.kana-picker{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;display:grid}.kana-picker button{background:var(--paper-light);border:0;place-items:center;min-width:0;min-height:54px;padding:.3rem;display:grid}.kana-picker button[aria-pressed=true]{background:var(--green);color:#fff}.kana-picker button span{font-family:var(--display);font-size:1.3rem;line-height:1}.kana-picker button small{color:inherit;font-size:.52rem}.character-title{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.character-title>span{font-family:var(--display);font-size:3.5rem;line-height:1}.character-title strong,.character-title small{display:block}.character-title strong{color:var(--green);font-size:1.15rem}.character-title small{color:var(--ink-soft);font-size:.68rem}.writing-square{aspect-ratio:1;border:1px solid var(--ink);background-color:#fbfcfc;background-image:linear-gradient(45deg,#0000 calc(50% - .5px),#d8573f2e 50%,#0000 calc(50% + .5px)),linear-gradient(-45deg,#0000 calc(50% - .5px),#d8573f2e 50%,#0000 calc(50% + .5px)),linear-gradient(90deg,#0000 calc(50% - .5px),#1d748033 50%,#0000 calc(50% + .5px)),linear-gradient(#0000 calc(50% - .5px),#1d748033 50%,#0000 calc(50% + .5px));width:min(100%,510px);margin:0 auto;position:relative;overflow:hidden}.writing-square canvas,.stroke-guide{width:100%;height:100%;position:absolute;inset:0}.writing-square canvas{z-index:2;touch-action:none}.stroke-guide{z-index:1;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:4px;overflow:visible}.writing-station .stroke-guide{stroke-width:1.35px}.kana-glyph-guide{fill:var(--ink);stroke:none;opacity:.055;font-family:var(--font-kana-guide), "Noto Sans JP", sans-serif;font-size:88px;font-weight:400}.stroke-guide path.complete{stroke:var(--green);opacity:.25}.stroke-guide path.current{stroke:var(--vermillion);opacity:.8}.stroke-guide path.upcoming{stroke:var(--ink);opacity:.11}.stroke-guide marker circle,.stroke-guide marker path{fill:var(--vermillion);stroke:none}.mode-test .kana-glyph-guide,.mode-test .stroke-guide>path{opacity:0}.mode-test .stroke-guide path.current{opacity:.08}.production-check-canvas .stroke-guide>path{opacity:0}.stroke-guide.is-demonstrating path.current{stroke-dasharray:1;animation:1.3s ease-out both demonstrate-stroke}@keyframes demonstrate-stroke{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.canvas-fallback{z-index:3;background:var(--paper);color:var(--vermillion);padding:.25rem .4rem;font-size:.6rem;position:absolute;bottom:.5rem;right:.5rem}.stroke-progress{justify-content:space-between;gap:1rem;margin:.9rem 0 0;display:flex}.stroke-progress strong{font-family:var(--body);font-variant-numeric:tabular-nums}.stroke-progress span{color:var(--ink-soft);text-align:right;font-size:.62rem}.canvas-status{border:solid var(--line);border-width:1px 0;min-height:3em;margin:.7rem 0;padding:.65rem 0;font-size:.75rem}.stroke-transcript{color:var(--ink-soft);margin:0 0 .7rem;font-size:.72rem;line-height:1.6}.kana-unit-instruction{border:solid var(--line);border-width:1px 0;margin:.8rem 0;padding:.8rem 0;font-size:.72rem}.kana-unit-instruction h3,.kana-unit-instruction p{margin:0 0 .45rem}.kana-unit-instruction ul{color:var(--ink-soft);margin:0 0 .65rem;padding-left:1.2rem}.kana-unit-instruction fieldset{border:1px solid var(--line);margin:0;padding:.6rem}.rule-practice{gap:1rem;display:grid}.rule-practice .lesson-brief label{gap:.35rem;margin:.4rem .75rem .4rem 0;display:inline-flex}.canvas-actions,.speech-actions,.review-actions{flex-wrap:wrap;gap:.5rem;display:flex}.canvas-actions button,.speech-actions button,.review-actions button{flex:auto;padding:.55rem .7rem;font-size:.7rem}.keyboard-help,.support-note,.privacy-note{color:var(--ink-soft);font-size:.75rem}.privacy-note a,.speech-privacy-gate a,.legal-content a{color:var(--green);text-underline-offset:.15em;text-decoration:underline}.license-link{font-size:.65rem}.speech-practice{align-self:start}.speech-target{border:solid var(--line);border-width:1px 0;place-items:center;min-height:128px;margin:1.25rem 0;display:grid}.speech-target strong{font-family:var(--display);font-size:4rem;line-height:1}.speech-target span{color:var(--green);font-size:.75rem}.speech-practice>.primary-button{width:100%;margin:.8rem 0}.speech-practice .notice{border:solid var(--line);border-width:1px 0;padding:.7rem 0;font-size:.7rem}.danger-button{border-color:var(--vermillion);color:var(--vermillion)}.recognition-status{border-bottom:1px solid var(--line);min-height:3rem;padding:.7rem 0;font-size:.75rem}.recording-player{width:100%;margin-top:.7rem}.speech-privacy-gate{border:1px solid var(--line);margin:1rem 0 0;padding:.8rem}.speech-privacy-gate legend{color:var(--ink-soft);padding-inline:.35rem;font-size:.72rem}.speech-privacy-gate p{color:var(--ink-soft);margin:0 0 .7rem;font-size:.72rem;line-height:1.55}.speech-privacy-gate label{align-items:flex-start;gap:.5rem;font-size:.72rem;line-height:1.5;display:flex}.speech-privacy-gate input{flex:none;margin-top:.2rem}.legal-page{min-height:100dvh}.legal-content{width:min(100%,760px);margin:0 auto;padding:2rem 1rem 4rem}.legal-content h1{font-family:var(--display);margin:.3rem 0 1rem;font-size:clamp(2.5rem,8vw,4.8rem);font-weight:400;line-height:.95}.legal-content h2{border-top:1px solid var(--line);margin:2rem 0 .65rem;padding-top:1rem;font-size:1.15rem}.legal-content p,.legal-content li{color:var(--ink-soft);font-size:.85rem;line-height:1.75}.legal-content ul{margin:0;padding-left:1.25rem}.legal-content li+li{margin-top:.55rem}.legal-content strong{color:var(--ink)}.legal-lead{max-width:46rem;font-size:1rem!important}.legal-nav{border-top:1px solid var(--ink);margin-top:2.5rem;padding-top:1rem}.srs-explainer{border:solid var(--line);border-width:1px 0;gap:.4rem;margin:0 0 1.5rem;padding:1rem 0;display:grid}.srs-explainer p{color:var(--ink-soft);margin:0;font-size:.8rem}.review-message{min-height:1.5rem;color:var(--green);font-size:.75rem}.review-list{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.review-list li{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr;gap:1rem;padding:1.2rem 0;display:grid}.review-index{color:var(--green);font-family:var(--body);font-variant-numeric:tabular-nums}.review-list p,.review-list strong,.review-list small{margin:0;display:block}.review-list p{color:var(--ink-soft);font-size:.68rem}.review-list strong{font-family:var(--display);margin:.3rem 0;font-size:1.45rem}.review-list small{color:var(--ink-soft);font-size:.65rem}.review-actions{grid-column:1/-1}.review-done{text-align:center;padding:4rem 1rem}.empty-count{color:var(--green);font-variant-numeric:tabular-nums;margin-bottom:.5rem;font-size:3.4rem;font-weight:650;line-height:1;display:block}.review-done p{color:var(--ink-soft)}@media (min-width:680px){.account-data li{grid-template-columns:minmax(10rem,1fr) auto auto auto}.topbar,.view,.workshop-layout{padding-inline:2rem}.today-intro{padding-block:3rem}.daily-mission{grid-template-columns:.55fr 1.45fr;align-items:center;padding:1.2rem 1.5rem}.daily-mission ol{grid-template-columns:repeat(2,minmax(0,1fr))}.next-lesson{grid-template-columns:auto 1fr auto;padding:1.75rem}.start-lesson{grid-column:auto;align-self:center;width:160px}.dashboard-grid{grid-template-columns:1fr 1fr}.cms-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dual-progress{grid-row:span 2}.stage-track{grid-template-columns:repeat(7,1fr)}.stage-track button{min-height:112px}.lesson-workspace{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)}.lesson-brief{border:0;border-right:1px solid var(--ink)}.workshop-toolbar{grid-template-columns:auto auto;justify-content:space-between}.review-list li{grid-template-columns:auto 1fr auto;align-items:center}.review-actions{grid-column:auto;min-width:210px}}@media (min-width:900px){.app-shell{grid-template-columns:196px minmax(0,1fr);display:grid}.side-rail{background:var(--rail);height:100dvh;color:var(--paper-light);border-right:1px solid #27444d;flex-direction:column;padding:1.7rem 1.1rem;display:flex;position:sticky;top:0}.side-rail .brand{border-bottom:1px solid #35515a;padding-bottom:1.5rem}.side-rail .brand small{color:#a8bbc0}.rail-toggle{color:#a8bbc0;border-color:#35515a;place-items:center;width:100%;min-height:34px;margin-top:.75rem;display:grid}.rail-toggle span{font-size:1.35rem;line-height:1}.side-rail .nav-list{gap:.35rem;margin-top:1rem;display:grid}.side-rail .nav-list button{text-align:left;border:0;grid-template-columns:2rem 1fr auto;align-items:center;gap:.55rem;padding:.65rem .5rem;display:grid;position:relative}.side-rail .nav-list button>.nav-mark{font-family:var(--body);font-size:1rem;font-weight:650}.side-rail .nav-list button small{background:var(--vermillion);color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;font-size:.62rem;display:grid}.side-rail .nav-list button[aria-current=page]{background:var(--green);color:#fff}.rail-streak{border:1px solid #35515a;border-width:1px 0;grid-template-columns:1fr auto;align-items:end;margin-top:auto;padding:1rem 0;display:grid}.rail-streak span,.rail-streak small{color:#a8bbc0;font-size:.65rem}.rail-streak strong{font-family:var(--body);font-variant-numeric:tabular-nums;grid-row:span 2;font-size:2.7rem;line-height:1}.rail-note{color:#a8bbc0;margin:1rem 0 0;font-size:.72rem}.app-shell.is-rail-collapsed{grid-template-columns:72px minmax(0,1fr)}.is-rail-collapsed .side-rail{padding-inline:.65rem}.is-rail-collapsed .brand{justify-content:center}.is-rail-collapsed .brand-copy,.is-rail-collapsed .nav-label,.is-rail-collapsed .rail-streak,.is-rail-collapsed .rail-note{display:none}.is-rail-collapsed .side-rail .nav-list button{grid-template-columns:1fr;justify-items:center;padding-inline:.25rem}.is-rail-collapsed .side-rail .nav-list button small{position:absolute;top:2px;right:0}.app-main{padding-bottom:0}.bottom-nav,.mobile-brand{display:none}.topbar{grid-template-columns:minmax(10rem,1fr) auto;align-items:start;gap:.75rem 1.5rem;min-height:82px}.topbar>div:not(.mobile-brand):not(.auth-panel){min-width:0;padding-top:.15rem;display:block}.topbar .today-date{white-space:nowrap}.topbar>.auth-panel{justify-content:flex-end;margin-top:0;display:flex}.topbar>.auth-panel-login{align-self:center}.view,.workshop-layout{padding:2rem clamp(2rem,4vw,4rem) 4rem}.today-intro{padding-block:3rem 2.5rem}.today-intro .mobile-streak{display:none}.dashboard-grid{grid-template-columns:1fr 1.25fr .78fr}.dual-progress{grid-row:auto}.workshop-layout{grid-template-columns:minmax(240px,.82fr) minmax(390px,1.25fr);align-items:start}.speech-practice{grid-column:1/-1}.workshop-toolbar{grid-template-columns:1fr}}@media (min-width:1100px){.topbar{grid-template-columns:140px minmax(0,1fr);align-items:stretch;gap:1.25rem;padding-block:1rem}.topbar>div:not(.mobile-brand):not(.auth-panel){border-right:1px solid var(--line);flex-direction:column;justify-content:center;padding:0 1.25rem 0 0;display:flex}.topbar>.auth-panel-login{grid-area:1/2;justify-self:end}.auth-dialog-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}}@media (min-width:1240px){.workshop-layout{grid-template-columns:minmax(250px,.78fr) minmax(430px,1.25fr) minmax(260px,.82fr)}.speech-practice{grid-column:auto}}@media (hover:hover) and (pointer:fine){button:hover:not(:disabled){border-color:var(--green);background:var(--green);color:#fff}.bottom-nav button:hover:not(:disabled){color:var(--green);background:0 0}.side-rail .nav-list button:hover:not(:disabled){background:#1a3a44;border-color:#0000}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
