:root{--ink:#292c34;--muted:#6e737e;--primary:#ab3b60;--primary-dark:#822d4a;--rose:#fbecf0;--line:#e8e7eb;--paper:#fff;--canvas:#f8f9fb;--mint:#e7f2ed;--lilac:#efecfa;--shadow:0 10px 35px #272e4410;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Arial,sans-serif;color:var(--ink);background:var(--canvas);font-size:16px;line-height:1.6;font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:10px 20px;border:1px solid transparent;background:var(--primary);color:white;border-radius:12px;font-weight:650;cursor:pointer;line-height:1.35;text-align:center;text-decoration:none;transition:background .15s,box-shadow .15s;white-space:normal}button:hover,.button:hover{background:var(--primary-dark)}button:disabled{opacity:.55;cursor:default}button.secondary,.button.secondary{background:#fff;color:var(--ink);border-color:var(--line)}button.secondary:hover,.button.secondary:hover{background:#f5f2f4;border-color:#d5c3ca}button.small,.button.small{padding:8px 16px;min-height:42px;font-size:14px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #ba6f91;outline-offset:3px}input:not([type=checkbox]):not([type=range]),select,textarea{display:block;width:100%;min-height:46px;padding:10px 13px;color:var(--ink);background:white;border:1px solid #d9dce3;border-radius:10px;line-height:1.5}textarea{min-height:125px;resize:vertical}input[type=checkbox]{width:18px;height:18px;flex:0 0 18px;margin:3px 0 0;accent-color:var(--primary)}label{display:block;font-size:14px;font-weight:550;margin-bottom:18px}label>input,label>textarea,label>select{margin-top:7px}.check{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.6;font-weight:450}.check>span{min-width:0}.check a{color:var(--primary);text-decoration:underline}.icon{display:inline-block;width:22px;height:22px;flex:0 0 22px;vertical-align:middle}.icon-button{padding:10px;min-width:44px;min-height:44px;border-radius:12px;background:transparent;color:var(--ink);border:1px solid transparent}.icon-button:hover{background:#f3edf0}h1,h2,h3,p{margin:0}h1{font-size:clamp(29px,3vw,43px);letter-spacing:-1.3px;line-height:1.17;font-weight:720}h2{font-size:24px;line-height:1.3;letter-spacing:-.5px}h3{font-size:18px;line-height:1.4;letter-spacing:-.2px}p+p{margin-top:14px}.muted,small{color:var(--muted)}small{font-size:13px}.eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:750;color:var(--primary);text-transform:uppercase;display:inline-block}.chip,.free-badge{display:inline-flex;border-radius:7px;padding:5px 9px;background:var(--mint);color:#30614f;font-size:12px;font-weight:650;white-space:nowrap}.free-badge{background:white;color:var(--primary);border:1px solid #e8c5d1;padding:7px 11px}.text-link{color:var(--primary);display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:650}.quiet-link{font-size:12px;color:var(--muted)}[hidden]{display:none!important}.skip-link{position:fixed;inset-block-start:-100px;inset-inline-start:15px;z-index:100;background:white;padding:14px;border:2px solid var(--primary)}.skip-link:focus{inset-block-start:12px}
.app-sidebar{position:fixed;inset-block:0;inset-inline-start:0;width:234px;background:white;border-inline-end:1px solid var(--line);padding:32px 18px 22px;display:flex;flex-direction:column;z-index:40;overflow:auto}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:750;letter-spacing:-.5px;white-space:nowrap;padding:0 7px}.brand img{max-width:185px;max-height:52px;object-fit:contain}.brand-mark{display:grid;place-content:center;width:35px;height:38px;font-size:27px;border-radius:12px;background:var(--rose);color:var(--primary);position:relative}.brand-mark span{position:absolute;inset-inline-end:4px;bottom:2px}.sidebar-label{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:#868995;margin:37px 13px 13px}.app-nav{display:flex;flex-direction:column;gap:5px}.app-nav a{display:flex;align-items:center;gap:13px;padding:11px 13px;border-radius:11px;min-height:46px;font-size:15px;color:#646a76;font-weight:550}.app-nav a:hover{background:#f6f5f8;color:var(--ink)}.app-nav a[aria-current]{color:var(--primary);background:var(--rose);font-weight:700}.nav-dot{margin-inline-start:auto;width:6px;height:6px;border-radius:50%;background:#c46b84}.sidebar-bottom{border-top:1px solid var(--line);padding:22px 12px 0;margin-top:auto}.sidebar-bottom>a:first-child{display:flex;gap:12px;font-size:14px;align-items:center}.sidebar-bottom p{margin:20px 0 3px;font-size:12px;color:var(--muted)}.app-frame{margin-inline-start:234px}.app-header{height:84px;padding:0 clamp(22px,3vw,44px);display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:#ffffffeb}.header-greeting{font-size:14px;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:13px}.language-trigger{background:transparent;color:var(--ink);font-size:13px;padding:8px;min-height:42px}.language-trigger:hover{background:#f5eff2}.language-trigger .icon{width:16px;height:16px;flex-basis:16px}.login-link{font-size:14px;font-weight:650;min-height:42px;display:flex;align-items:center;white-space:nowrap}.mobile-menu,.mobile-brand,.sidebar-close,.bottom-nav{display:none}.sidebar-backdrop{position:fixed;inset:0;border-radius:0;background:#22273766;z-index:39;width:100%;height:100%}.app-frame main{max-width:1440px;margin:0 auto;padding:32px clamp(22px,3vw,44px) 36px}.app-footer{display:flex;justify-content:space-between;gap:20px;max-width:1440px;padding:25px clamp(22px,3vw,44px);margin:auto;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.locale-note{font-size:13px;background:#fff4de;padding:10px 14px;border-radius:10px;margin-bottom:20px}
.start-panel{border:1px solid #eed7df;border-radius:22px;background:linear-gradient(105deg,#fff2f6,#fdf8fa 68%,#f2f5fc);padding:clamp(24px,3vw,39px)}.start-heading{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:28px}.start-heading h1{margin:12px 0 13px;font-size:clamp(28px,3.2vw,44px)}.start-heading p{color:var(--muted);max-width:600px;font-size:15px}.language-pair{display:grid;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);align-items:center;gap:10px;min-width:0}.pair-choice{background:white;color:var(--ink);border:1px solid #e4dce1;display:grid;grid-template-columns:1fr 18px;text-align:start;min-width:0;padding:13px 17px;gap:1px 10px;min-height:70px;box-shadow:0 3px 8px #50324804}.pair-choice:hover{background:#fff8fb;border-color:#cfa2b4}.pair-choice span{font-size:11px;color:var(--muted);font-weight:500;grid-column:1}.pair-choice b{font-size:15px;font-weight:650;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;grid-column:1}.pair-choice>.icon{grid-column:2;grid-row:1/3;width:18px;height:18px}.large .pair-choice{min-height:85px;padding:17px 20px}.large .pair-choice b{font-size:18px}.large .pair-choice span{font-size:12px}.swap-button{padding:7px!important;min-width:38px;min-height:38px!important;border-radius:50%;border-color:transparent!important;background:transparent!important}.start-actions{display:flex;align-items:center;gap:12px;margin-top:22px;flex-wrap:wrap}.start-actions small{flex:1;min-width:130px;max-width:330px;font-size:12px;margin-inline-start:5px}.daily-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.daily-card{display:flex;align-items:center;gap:15px;border:1px solid var(--line);background:white;border-radius:15px;padding:20px}.daily-card b{font-size:14px}.daily-card p{font-size:12px;color:var(--muted);margin-top:3px}.daily-card>.icon{margin-inline-start:auto;color:#9b9dac;width:18px}.tile-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 43px;width:43px;height:43px;border-radius:13px;background:var(--rose);color:var(--primary)}.tile-icon.mint{background:var(--mint);color:#3c6d5a}.tile-icon.lilac{background:var(--lilac);color:#7962ac}.section{margin-top:35px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:20px}.section-head .eyebrow{margin-bottom:7px}.section-head h2{font-size:22px}.section-head>a{font-size:13px;color:var(--primary);display:flex;align-items:center;gap:6px;white-space:nowrap}.section-head>a .icon{width:16px}.path-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.path-card{padding:14px 14px 18px;background:white;border:1px solid var(--line);border-radius:17px;transition:transform .2s,border-color .2s}.path-card:hover{transform:translateY(-3px);border-color:#d7abbc}.path-illustration{height:108px;background:#fcedf1;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:15px;color:var(--primary)}.path-illustration>.icon{width:32px;height:32px;flex-basis:32px}.path-illustration>span{font-family:Georgia,serif;font-size:33px;letter-spacing:-1px}.path-learn .path-illustration{background:#eaf2ef;color:#4e7e6c}.path-read .path-illustration{background:#efedf9;color:#7a6a9b}.path-write .path-illustration{background:#fff2df;color:#967444}.path-card h3{margin-inline:5px}.path-card p{font-size:12px;color:var(--muted);margin:5px 5px 15px;min-height:20px}.path-card .text-link{margin-inline-start:5px;font-size:12px}.path-card .text-link .icon{width:15px}.activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.activity-card{padding:21px;border:1px solid var(--line);background:#fff;border-radius:15px;display:flex;align-items:flex-start;gap:13px;min-width:0}.activity-card:hover{border-color:#d3aab9;background:#fffbfc}.activity-card .tile-icon{flex-basis:38px;width:38px;height:38px;border-radius:11px}.activity-copy{min-width:0}.activity-copy small{font-size:10px;text-transform:uppercase;letter-spacing:.7px}.activity-copy h3{font-size:15px;margin:4px 0 9px}.activity-copy p{font-size:12px;color:var(--muted);line-height:1.7}.activity-card>.icon{width:16px;flex-basis:16px;margin-inline-start:auto;margin-top:10px;color:#9ba0ac}.editorial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.editorial-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:17px;background:white;overflow:hidden}.editorial-card:hover{box-shadow:var(--shadow)}.editorial-art{height:152px;background:#eaeff5;display:grid;place-items:center;overflow:hidden}.editorial-art img{width:100%;height:100%;object-fit:cover}.app-art{background:#f0edf4}.app-art>span{background:white;box-shadow:0 6px 20px #5145720b;font-size:28px;font-weight:750;padding:12px 20px;border-radius:18px;color:#67597d}.journal-art .icon{width:45px;height:45px;color:#718299}.editorial-card:nth-child(3n+2) .journal-art{background:#edf1e6}.editorial-card:nth-child(3n+3) .journal-art{background:#f6ebe2}.editorial-copy{padding:20px;display:flex;flex-direction:column;flex:1}.editorial-copy h3{margin:8px 0;font-size:17px}.editorial-copy p{font-size:13px;color:var(--muted);margin-bottom:20px}.editorial-copy .text-link{margin-top:auto;font-size:12px}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 25px}.page-heading h1{font-size:32px;margin-top:8px}.page-heading p{max-width:770px;margin-top:13px;color:var(--muted);font-size:15px}.breadcrumb{font-size:12px;color:var(--primary)}.practice-preferences{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#f1f2f6;border:1px solid var(--line);border-radius:15px;padding:12px;margin-bottom:24px}.practice-preferences .language-pair{width:min(630px,75%)}.practice-preferences .pair-choice{min-height:58px;padding:8px 14px}.practice-preferences .check{margin:0;font-size:12px;flex:0 1 auto}.panel{background:white;border:1px solid var(--line);padding:26px;border-radius:16px;min-width:0}.panel h2{font-size:21px;margin-bottom:18px}.panel p{margin-bottom:16px}.panel>.actions:last-child{margin-bottom:0}.workspace{max-width:870px;margin:0 auto}.study-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:24px;align-items:start}.study-main{min-width:0}.study-help{padding:23px}.study-help h2{margin-top:17px}.study-help ol,.instructions ol{padding-inline-start:20px;color:var(--muted);font-size:13px}.study-help li,.instructions li{margin:14px 0;padding-inline-start:5px}.study-help .text-link{font-size:12px;margin-top:10px}.filter-bar,.toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:20px}.filter-bar>label{flex:1;min-width:140px;margin:0}.filter-bar>button{min-height:46px;flex:0 0 auto}.lesson{border:1px solid var(--line);background:white;border-radius:18px;padding:clamp(22px,3vw,35px);margin-bottom:20px;min-width:0}.sentence{font-size:clamp(22px,2.4vw,31px);line-height:1.55;margin:19px 0;word-break:normal;overflow-wrap:anywhere}.translation{padding-top:20px;border-top:1px dashed #e2dce1;color:var(--primary)}.pronunciation{font-size:14px;min-height:22px;margin-top:-7px!important;margin-bottom:22px!important}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:20px;margin-bottom:20px}.lesson .actions{gap:8px}.lesson .actions button{font-size:12px;padding:10px 13px;min-height:41px}.lesson>.muted{font-size:12px}.lesson .rating-row{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.rating-row button:nth-child(1){background:#fbefeb;color:#995b45;border-color:#edd7ce}.rating-row button:nth-child(2){background:#fff7e6;color:#8a681e;border-color:#eaddb9}.rating-row button:nth-child(3){background:#edf4ed;color:#477048;border-color:#cfdfce}.rating-row button:nth-child(4){background:#e4f0eb;color:#2c6955;border-color:#bad7c9}.flash-hidden{visibility:hidden}.masked{color:transparent!important;background:#e5e1e9!important;min-width:35px;min-height:36px;user-select:none}.translation button{font-size:20px;padding:6px 10px;margin:5px}.segmented{display:flex;gap:5px;background:#eaeaf0;border-radius:12px;padding:5px;margin-bottom:14px}.segmented button{flex:1;background:transparent;color:var(--muted);min-height:43px;border-radius:8px;font-size:14px;padding:8px 12px}.segmented button[aria-pressed=true]{background:white;color:var(--primary);box-shadow:0 2px 6px #20243c0a}.random-modes+.muted{font-size:13px;margin-bottom:21px}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.choices button{text-align:start;justify-content:flex-start;min-height:52px;font-size:15px;overflow-wrap:anywhere}.choices button.selected{outline:2px solid var(--primary);background:var(--rose)}.info-output{border:1px solid #e3e1e8;border-radius:12px;background:#f8f7fa;padding:18px;margin:20px 0;white-space:pre-wrap;overflow-wrap:anywhere}.info-output:empty{display:none}.activity-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px;align-items:start}.activity-workspace>button{margin:0 9px 12px 0}.activity-workspace>label{margin-top:20px}.activity-layout .two{grid-template-columns:1fr}.instructions p{font-size:12px}.directory-intro{display:flex;align-items:end;justify-content:space-between;gap:25px;margin:0 0 25px}.directory-intro>p{max-width:550px;color:var(--muted)}.directory-search{display:flex;align-items:end;gap:10px;margin:0 0 24px;max-width:650px}.directory-intro .directory-search{display:block;margin:0;min-width:220px}.directory-search label{margin:0;flex:1}.entry-detail{max-width:900px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:clamp(22px,4vw,42px);margin:auto}.entry-intro{display:flex;gap:30px;align-items:center;margin-bottom:30px;padding-bottom:30px;border-bottom:1px solid var(--line)}.entry-cover{width:42%;border-radius:14px;max-height:320px;object-fit:cover}.app-detail-icon{width:115px;height:115px;flex:0 0 115px;border-radius:25px;background:var(--lilac);display:grid;place-items:center;color:#6b5c82;font-size:40px;font-weight:700}.entry-summary{font-size:18px;margin:15px 0 20px;color:#616671}.prose{font-size:16px;line-height:1.9;overflow-wrap:anywhere}.prose h2{margin:28px 0 13px;font-size:23px}.prose h3{margin:22px 0 12px}.prose p{margin-bottom:20px}.prose img,.reader img{max-width:100%;height:auto;border-radius:10px}.prose a{color:var(--primary);text-decoration:underline}.source-box{background:#f6f7fa;padding:23px;border-radius:12px;margin-top:28px;font-size:13px;color:var(--muted)}.source-box h2{font-size:17px;margin-bottom:14px}.source-box a{text-decoration:underline}.reading-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.reading-list>a{background:#fff;border:1px solid var(--line);padding:23px;border-radius:15px;min-width:0}.reading-list h3{font-size:16px;margin:13px 0 10px;overflow-wrap:anywhere}.reading-list p{font-size:13px;color:var(--muted)}.reader{max-width:900px;margin:auto;line-height:1.9}.reader .parallel{border-top:1px dashed var(--line);margin-top:24px;padding-top:24px}.two,.grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card{border:1px solid var(--line);padding:20px;border-radius:13px}.card h3{margin-bottom:10px}.toolbar label{margin:0;flex:1;min-width:140px}.write-board{width:100%;height:auto;aspect-ratio:1;background:white;border:1px solid #d9ddd9;border-radius:12px;touch-action:none;user-select:none;overscroll-behavior:contain;display:block}.stroke-box{max-width:280px;margin:auto}.stroke-box svg{width:100%;height:auto}.stroke-box path{fill:none;stroke:#38443d;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.paper-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #d4dcd3}.paper-cell{display:grid;place-content:center;aspect-ratio:1;border:1px solid #e1e4de;font:50px serif;color:#9da99c}.keyboard{direction:ltr;margin:22px 0;max-width:100%;overflow-x:auto;padding:3px 1px}.keyboard-row{display:flex;justify-content:center;gap:4px;margin:5px 0;min-width:0}.keyboard-row button{min-width:0;padding:8px 5px;min-height:40px;flex:1;border-radius:7px;max-width:50px;font-size:14px}.keyboard>button{display:flex;margin:10px auto}.empty-state{padding:35px;text-align:center;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:16px}.empty-state .button{margin-top:20px}
.auth-container{max-width:980px;margin:0 auto}.auth-layout{display:grid;grid-template-columns:.85fr 1fr;background:white;border:1px solid var(--line);border-radius:23px;overflow:hidden;min-height:540px}.auth-story{background:linear-gradient(150deg,#f5e5ee,#eeeef9);padding:45px;display:flex;flex-direction:column;justify-content:center}.auth-story .auth-art{font-size:55px;color:var(--primary);letter-spacing:-3px;font-family:Georgia,serif;line-height:1.4;margin-bottom:30px}.auth-story h2{font-size:27px;margin-bottom:17px}.auth-story p{font-size:14px;color:#716476}.auth-form{padding:38px}.auth-form h2{font-size:25px;margin-bottom:7px}.auth-form .auth-subtitle{font-size:14px;color:var(--muted);margin-bottom:27px}.auth-form label{font-size:13px;margin-bottom:19px}.password-field{position:relative}.password-field input{padding-inline-end:85px!important}.password-field button{position:absolute;inset-inline-end:4px;top:4px;bottom:4px;min-height:37px;padding:6px 10px;background:#f6f5f8;color:#6a6471;font-size:12px;border-radius:7px}.auth-form .check{font-size:12px;align-items:flex-start;margin:20px 0}.auth-form>.button{width:100%;min-height:49px}.auth-switch{border-top:1px solid var(--line);padding-top:23px;margin-top:24px;text-align:center;font-size:13px;color:var(--muted)}.auth-switch a{color:var(--primary);font-weight:650}.auth-note{font-size:12px;color:var(--muted);margin-top:11px}.message{font-size:13px;color:var(--primary);margin-top:15px;overflow-wrap:anywhere}.message:empty{display:none}.toast-message:not(:empty){position:fixed;bottom:25px;inset-inline-end:25px;max-width:min(470px,calc(100vw - 32px));background:#302d39;color:white;font-size:14px;padding:15px 20px;border-radius:12px;box-shadow:var(--shadow);z-index:70}.ad-panel{background:#f2eee8;border:1px solid #e5dfd6;border-radius:13px;padding:20px;margin-top:35px}.ad-panel>small{font-size:10px;text-transform:uppercase;letter-spacing:1px}.ad-panel p{margin:8px 0}.ad-panel a{color:var(--primary);font-size:13px}
dialog{border:1px solid var(--line);border-radius:20px;width:min(540px,calc(100% - 28px));max-height:90dvh;padding:27px;color:var(--ink);box-shadow:0 25px 100px #27304733;overscroll-behavior:contain}dialog::backdrop{background:#25253166;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}.dialog-head h2{font-size:22px}.dialog-head button{flex-shrink:0}dialog>p{font-size:14px;color:var(--muted);margin-bottom:20px}.language-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:46dvh;overflow:auto;margin-bottom:15px;padding:3px}.language-list button{display:flex;align-items:start;flex-direction:column;justify-content:start;text-align:start;border-radius:10px;padding:12px;font-size:14px;gap:3px}.language-list button[aria-pressed=true]{background:var(--rose);border-color:#d8a7b9}.language-list small{font-size:10px;font-weight:400;white-space:normal;overflow-wrap:anywhere}.setting-row{display:grid;grid-template-columns:1fr auto 20px;align-items:center;gap:12px;min-height:58px;background:#fff;color:var(--ink);border:1px solid var(--line);width:100%;text-align:start;padding:12px;font-size:13px;margin-bottom:10px}.setting-row:hover{background:var(--rose)}.setting-row b{font-weight:600;max-width:180px;overflow:hidden;text-overflow:ellipsis}.settings-languages{margin:20px 0}.settings-languages+label{margin-top:24px}#setting-speed{max-width:200px}body.menu-open{overflow:hidden}input[type=range]{accent-color:var(--primary);width:100%}
@media(min-width:1600px){.activity-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.start-panel{padding:40px}.path-illustration{height:135px}}
@media(max-width:1240px){.app-sidebar{width:210px;padding-inline:13px}.app-frame{margin-inline-start:210px}.header-greeting{display:none}.brand{font-size:15px}.app-frame main{padding:26px 24px}.app-header{padding:0 24px}.activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.study-layout,.activity-layout{grid-template-columns:minmax(0,1fr) 225px;gap:18px}.panel{padding:21px}.path-grid{gap:11px}.path-card{padding:10px 10px 16px}.path-illustration{height:92px}.path-card .text-link{font-size:11px}.daily-card{padding:17px}.daily-card>.icon{display:none}.practice-preferences .language-pair{width:72%}.entry-detail{padding:30px}.auth-story{padding:30px}.auth-form{padding:30px}}
@media(max-width:1000px){.app-sidebar{transform:translateX(-110%);width:244px;transition:transform .2s}.app-frame{margin-inline-start:0}html[dir=rtl] .app-sidebar{transform:translateX(110%)}body.menu-open .app-sidebar{transform:translateX(0)}.sidebar-close{display:inline-flex;position:absolute;top:74px;inset-inline-end:12px}.mobile-menu{display:inline-flex}.header-location{display:flex;align-items:center;gap:10px}.mobile-brand{display:inline;font-size:16px;font-weight:750;white-space:nowrap}.mobile-brand span{color:var(--primary)}.app-header{height:72px}.sidebar-label{margin-top:45px}.bottom-nav{display:flex;position:fixed;inset-inline:0;bottom:0;padding:7px 10px max(8px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffffff5;backdrop-filter:blur(15px);justify-content:space-around;z-index:30}.bottom-nav a{display:flex;align-items:center;flex-direction:column;gap:4px;font-size:10px;padding:5px 12px;min-width:60px;color:#7e808e;border-radius:9px}.bottom-nav a[aria-current]{color:var(--primary);background:var(--rose)}.bottom-nav .icon{width:21px;height:21px}.app-footer{margin-bottom:74px}.toast-message:not(:empty){bottom:90px}.study-layout{grid-template-columns:minmax(0,1fr) 240px}.activity-layout{grid-template-columns:minmax(0,1fr) 240px}}
@media(max-width:740px){.app-header{padding:0 16px;gap:8px;flex-wrap:wrap;height:auto;min-height:72px}.header-actions{gap:5px}.language-trigger{max-width:110px}.language-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-link{font-size:12px}.header-actions .button{font-size:12px;min-height:39px;padding:8px 12px}.app-frame main{padding:23px 17px}.app-header .icon-button{padding:8px;min-width:39px;min-height:39px}.header-greeting{display:none}.start-panel{padding:24px 20px;border-radius:19px}.start-heading{margin-bottom:24px}.start-heading .free-badge{display:none}.start-heading h1{font-size:33px;max-width:400px}.start-heading p{font-size:14px}.start-heading .eyebrow{font-size:10px}.large .pair-choice{padding:13px;min-height:78px}.large .pair-choice b{font-size:15px}.large .pair-choice span{font-size:10px}.language-pair{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:5px}.swap-button{min-width:28px!important;padding:2px!important}.swap-button .icon{width:20px;height:20px;flex-basis:20px}.start-actions{gap:9px}.start-actions>.button{flex:1;font-size:13px;padding:11px}.start-actions small{flex:1 0 100%;margin:5px 0 0;font-size:11px}.daily-row{gap:10px}.daily-card{gap:9px;padding:14px 12px;align-items:flex-start}.daily-card .tile-icon{width:32px;height:32px;flex-basis:32px;border-radius:10px}.daily-card .tile-icon .icon{width:19px;height:19px}.daily-card b{font-size:12px;line-height:1.4;display:block}.daily-card p{font-size:11px}.section{margin-top:30px}.section-head h2{font-size:20px}.section-head>a{font-size:11px}.path-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.path-card{padding:12px}.path-card h3{font-size:16px}.path-card .text-link{font-size:12px}.path-illustration{height:96px}.path-card p{font-size:12px}.activity-grid{grid-template-columns:1fr 1fr;gap:12px}.activity-card{padding:17px;gap:10px;flex-wrap:wrap}.activity-card>.icon{display:none}.activity-copy{width:100%}.activity-copy h3{font-size:16px}.activity-copy p{font-size:12px}.activity-card .tile-icon{width:35px;height:35px;flex-basis:35px}.editorial-grid,.reading-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.editorial-copy{padding:17px}.editorial-copy h3{font-size:15px}.editorial-art{height:126px}.editorial-copy p{font-size:12px}.study-layout,.activity-layout{grid-template-columns:1fr}.study-help{display:none}.practice-preferences{display:block;padding:10px}.practice-preferences .language-pair{width:100%}.practice-preferences .check{margin:13px 8px 4px;font-size:12px}.pair-choice b{font-size:14px}.pair-choice span{font-size:10px}.pair-choice{padding:10px!important}.page-heading h1{font-size:29px}.page-heading p{font-size:14px}.page-heading .free-badge{display:none}.lesson{padding:23px}.lesson .sentence{font-size:26px}.lesson .actions button{font-size:12px;flex:1 0 auto}.rating-row button{flex:1!important}.filter-bar>label{min-width:110px}.filter-bar{gap:9px}.filter-bar>button{padding:10px 16px;font-size:13px}.directory-intro{display:block}.directory-intro .directory-search{margin-top:18px;max-width:none}.two,.grid{grid-template-columns:1fr}.entry-intro{gap:20px;align-items:start;flex-direction:column}.entry-cover{width:100%;max-height:320px}.entry-detail{padding:22px}.app-detail-icon{width:85px;height:85px;flex-basis:85px;font-size:30px;border-radius:18px}.entry-summary{font-size:16px}.source-box{padding:19px}.entry-intro{margin-bottom:22px;padding-bottom:22px}.auth-story{display:none}.auth-layout{grid-template-columns:1fr;min-height:0}.auth-form{padding:28px}.auth-container{max-width:480px}.auth-form label{font-size:14px}.page-login .page-heading,.page-register .page-heading{max-width:480px;margin-inline:auto}.page-login .page-heading h1,.page-register .page-heading h1{font-size:25px}.app-footer{font-size:10px;padding:25px 17px}.instructions{margin-top:0}.instructions ol{font-size:14px}}
@media(max-width:480px){.header-location{gap:1px}.mobile-brand{font-size:14px}.header-actions{gap:3px}.app-header{padding:10px 12px}.language-trigger{font-size:12px;padding:7px 5px;max-width:83px}.language-trigger .icon{width:13px;flex-basis:13px}.header-actions .icon-button{min-width:33px;padding:6px}.header-actions .button{padding:8px 10px;font-size:11px}.header-actions .login-link{font-size:11px}.header-location .icon-button{min-width:29px;padding:4px}.start-panel{padding:21px 16px}.start-heading h1{font-size:30px}.large .pair-choice .icon{width:14px}.large .pair-choice{padding:12px 10px!important;gap:3px 0}.large .pair-choice b{font-size:14px}.large .pair-choice span{font-size:10px}.pair-choice{grid-template-columns:1fr 14px}.section-head h2{font-size:19px}.section-head>a .icon{display:none}.daily-row{grid-template-columns:1fr}.daily-card{align-items:center}.daily-card>.icon{display:block}.daily-card p{font-size:12px}.daily-card b{font-size:13px}.activity-card{padding:15px}.activity-copy h3{font-size:14px}.activity-copy p{font-size:11px}.editorial-grid{grid-template-columns:1fr}.editorial-card{flex-direction:row}.editorial-art{width:100px;flex:0 0 100px;height:auto;min-height:155px}.editorial-copy{padding:15px}.editorial-copy p{margin-bottom:10px}.editorial-art>span{font-size:19px;padding:8px}.editorial-copy .eyebrow{font-size:9px}.editorial-copy .text-link{font-size:11px}.reading-list{grid-template-columns:1fr}.filter-bar{display:grid;grid-template-columns:1fr 1fr}.filter-bar>button{grid-column:1/-1}.segmented button{font-size:12px}.lesson{padding:20px 17px}.lesson .actions{gap:7px}.lesson .actions button{font-size:11px;padding:9px 10px}.choices{grid-template-columns:1fr}.activity-workspace>button{margin-inline-end:6px;font-size:13px;padding:10px 13px}.language-list{grid-template-columns:1fr 1fr}.language-list button{font-size:12px}dialog{padding:20px}.setting-row{font-size:12px;gap:8px}.setting-row b{max-width:140px}.page-heading h1{font-size:27px}.auth-form{padding:24px}.page-heading{margin-bottom:20px}.lesson .sentence{font-size:24px}.path-card p{min-height:38px}.keyboard-row{gap:2px}.keyboard-row button{font-size:11px;padding:8px 1px;min-height:35px}.toolbar{gap:10px}.prose{font-size:15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.app-sidebar,.app-header,.bottom-nav,.app-footer,.no-print,.toast-message,dialog,.practice-preferences,.page-heading,.instructions,.source-box{display:none!important}.app-frame{margin:0}.app-frame main{padding:0}.panel{border:0;padding:0}.printing-copybook body{background:white}body.printing-copybook *{visibility:hidden}body.printing-copybook #print-sheet-preview,body.printing-copybook #print-sheet-preview *{visibility:visible}body.printing-copybook #print-sheet-preview{position:absolute;top:0;left:0;width:100%;grid-template-columns:repeat(8,1fr)}.paper-cell{break-inside:avoid}a{color:black}.reader{max-width:none}}
/* 1.2: clear entry points, one-card focus, script-aware writing workspaces. */
.learning-shortcuts,.foundation-languages,.foundation-jumps{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}.learning-shortcuts a{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line,#e5dddf);padding:14px 18px;border-radius:14px;font-weight:650;text-decoration:none}.learning-shortcuts svg{width:21px;height:21px;flex-shrink:0}.word-workspace{max-width:1120px;margin:auto}.word-topbar{display:flex;gap:18px;align-items:end;flex-wrap:wrap;margin-bottom:20px}.word-topbar .segmented{flex:1;min-width:0;flex-wrap:wrap}.word-topbar .segmented button{flex:1;white-space:normal;min-width:140px}.word-profile-label{min-width:180px}.word-search{display:flex;gap:12px;align-items:end;margin:20px 0}.word-search label{flex:1}.focus-word-card{background:#fff;border:1px solid #e6d8de;border-radius:28px;padding:clamp(22px,4vw,48px);box-shadow:0 14px 45px #64233a08}.focus-word-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.learned-badge{color:#246347;background:#e5f4eb;border-radius:99px;padding:7px 14px;font-weight:650}.focus-word{font-size:clamp(30px,5vw,62px);line-height:1.3;text-align:center;overflow-wrap:anywhere;margin:34px 0 14px}.focus-word-card>.pronunciation{text-align:center;font-size:19px;color:#735c68}.pronunciation p{margin:4px 0 12px;overflow-wrap:anywhere}.pronunciation small{font-size:12px;letter-spacing:.025em}.word-meaning{text-align:center;border-top:1px solid #f0e7eb;padding:22px 0;margin:24px 0}.word-meaning>p{font-size:23px;margin:0 0 10px}.word-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.word-action-grid .button,.word-action-grid button{justify-content:center;text-align:center;white-space:normal}.word-card-footer{display:flex;gap:12px;flex-wrap:wrap;border-top:1px solid #f0e7eb;margin-top:24px;padding-top:24px}.word-card-footer>*{flex:1;min-width:190px}.word-details-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px}.word-collection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.word-tile{background:#fff;border:1px solid #e5dde1;border-radius:20px;padding:20px;min-width:0}.word-tile>button:first-child{font-size:24px;white-space:normal;width:100%;min-height:66px;overflow-wrap:anywhere}.word-tile>p{font-size:17px}.word-tile .pronunciation{font-size:15px}.word-tile button:last-child{margin-top:10px}.foundation-guide{max-width:920px;margin:0 auto 24px}.foundation-guide h2{scroll-margin-top:100px}.foundation-note{padding:20px;background:#f2eff9;border-radius:16px;line-height:1.7}.foundation-languages a[aria-current="true"]{background:#b44568;color:white}.foundation-jumps a{padding:10px 15px;border:1px solid #e3d8df;border-radius:99px;background:#fff;text-decoration:none}.foundation-sounds{margin:22px 0;scroll-margin-top:100px}.sound-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:14px;margin-top:20px}.sound-tile{border:1px solid #e9e1e5;border-radius:16px;padding:16px;text-align:center;display:flex;flex-direction:column;gap:10px;min-width:0}.sound-tile>b{font-size:25px;overflow-wrap:anywhere}.sound-tile>.pronunciation{font-size:16px;line-height:1.5;overflow-wrap:anywhere}.sound-actions{display:flex;gap:8px;margin-top:auto}.sound-actions>*{flex:1;padding:9px 6px!important;font-size:13px!important;min-height:40px;text-align:center}.foundation-workspace .source-box a{display:block;padding:8px 0;overflow-wrap:anywhere}.writing-workspace .section-head{align-items:start;gap:20px}.writing-workspace .section-head p{margin:10px 0 0;max-width:660px}.writing-generator{display:grid;grid-template-columns:minmax(180px,1fr) 110px auto auto;gap:14px;align-items:end;margin-top:18px}.writing-generator button{white-space:normal;min-height:48px}.writing-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);align-items:start;gap:22px;margin:22px 0}.writing-columns>.panel{min-width:0}.character-strip{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0;max-height:156px;overflow:auto;padding:3px}.character-strip button{min-width:44px;min-height:44px;padding:8px 12px;font-size:21px}.character-strip button[aria-pressed="true"]{background:#b44568;color:white;border-color:#b44568}.writing-controls{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:18px 0}.writing-controls>label{flex:1;min-width:115px}.writing-controls .check{display:flex;align-items:center;gap:8px}.write-board{display:block;width:100%;height:auto;aspect-ratio:1;touch-action:none;overscroll-behavior:contain;user-select:none;-webkit-user-select:none;border:1px solid #d8cbcf;border-radius:18px;cursor:crosshair;background:#fffdf9;max-width:620px;margin:0 auto}.writing-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.writing-actions button{white-space:normal}.stroke-panel .stroke-box{width:100%;max-width:240px;aspect-ratio:1;margin:20px auto}.stroke-box svg{width:100%;height:100%}.stroke-box path{fill:none;stroke:#61424d;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.copybook-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.copybook-sheet{background:#fff;color:#333;padding:24px;border:1px solid #ddd;border-radius:8px}.copybook-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.copybook-heading h3{margin:0}.copybook-heading p{font-size:12px}.copybook-row{display:grid;grid-template-columns:repeat(var(--copy-columns,5),minmax(0,1fr));break-inside:avoid;page-break-inside:avoid;margin:0 0 12px;border-left:1px solid #d5cdca}.copybook-cell{border:1px solid #d5cdca;border-left:0;min-width:0;height:68px;display:flex;justify-content:center;align-items:center;position:relative;line-height:1.2;overflow:hidden}.copybook-cell span{position:relative;z-index:1}.copybook-cell.trace{color:#c4c4c4}.copybook-cell.model{color:#36312e}.copybook-cell.grid-square:before,.copybook-cell.grid-cross:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent calc(50% - .5px),#e3dedb 50%,transparent calc(50% + .5px)),linear-gradient(transparent calc(50% - .5px),#e3dedb 50%,transparent calc(50% + .5px))}.copybook-cell.grid-cross:after{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 49.5%,#eee 50%,transparent 50.5%),linear-gradient(-45deg,transparent 49.5%,#eee 50%,transparent 50.5%)}.copybook-cell.grid-lines:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 32%,#e8e2df 33%,transparent 34%,transparent 66%,#d3c9c4 67%,transparent 68%)}.copybook-footer{font-size:11px;text-align:center;margin:18px 0 0}.word-card-footer button:disabled{opacity:.55;cursor:wait}
@media(max-width:1050px){.writing-generator{grid-template-columns:1fr 100px}.word-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.word-collection{grid-template-columns:repeat(2,minmax(0,1fr))}.writing-columns{grid-template-columns:minmax(0,1fr)}.stroke-panel .stroke-box{max-width:190px}.copybook-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.word-topbar{display:block}.word-profile-label{margin-top:18px}.word-topbar .segmented{display:flex}.word-topbar .segmented button{min-width:90px;font-size:13px;padding:10px 6px}.focus-word-card{padding:20px 16px;border-radius:22px}.word-collection{grid-template-columns:1fr}.word-action-grid{gap:8px}.word-action-grid>*{padding:12px 9px;font-size:14px}.word-details-links>*{width:100%;text-align:center}.sound-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sound-tile{padding:12px 8px}.writing-source,.handwriting-panel,.stroke-panel,.copybook-panel{padding:18px 14px}.writing-generator{gap:10px}.writing-generator>button{font-size:13px;padding:12px 8px}.writing-controls{gap:10px}.copybook-sheet{padding:12px 8px}.copybook-heading{display:block}.copybook-cell{height:55px}.learning-shortcuts a{padding:12px;font-size:14px}.foundation-jumps{gap:8px}}
@media print{body.printing-copybook{background:#fff}body.printing-copybook .app-sidebar,body.printing-copybook .app-header,body.printing-copybook .bottom-nav,body.printing-copybook .no-print{display:none!important}body.printing-copybook #print-sheet-preview{display:block!important;position:static!important;inset:auto!important;width:100%!important;padding:0!important;border:0!important;border-radius:0!important;grid-template-columns:none!important}body.printing-copybook .copybook-panel,body.printing-copybook .writing-workspace,body.printing-copybook .app-frame main{display:block!important;padding:0!important;margin:0!important;max-width:none!important}body.printing-copybook .copybook-row{display:grid!important;break-inside:avoid;page-break-inside:avoid}body.printing-copybook .copybook-cell{height:64px;print-color-adjust:exact;-webkit-print-color-adjust:exact}body.printing-copybook .copybook-heading{display:flex!important}.copybook-heading h3{font-size:18px}.copybook-footer{break-inside:avoid}}

@media print{body.printing-copybook .activity-layout,body.printing-copybook .activity-layout>section{display:block!important;max-width:none!important;width:100%!important}body.printing-copybook .writing-columns{display:none!important}body.printing-copybook .app-frame{margin:0!important;padding:0!important}}

/* 1.3 continuous learning. Primary controls stay in the workspace; long settings are dialogs. */
:root{--session-header:64px;--session-bottom:0px}
button,.button,input:not([type=checkbox]):not([type=range]),select,textarea{border-radius:7px}
.learning-shortcuts a.foundation-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.foundation-entry{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}.foundation-entry strong{color:var(--primary)}.foundation-entry span{font-size:13px;color:var(--muted)}
body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .app-header{height:var(--session-header);min-height:var(--session-header)}
body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) main{height:calc(100dvh - var(--session-header) - var(--session-bottom));min-height:490px;display:flex;flex-direction:column;gap:8px;padding:12px 24px 10px;max-width:1300px}
body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .app-footer{display:none}
body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .page-heading{margin:0;min-height:29px}.page-heading .breadcrumb{font-size:11px}
body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .page-heading .breadcrumb{display:none}
body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .page-heading h1{font-size:23px;letter-spacing:-.3px;line-height:1.2}
body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .practice-preferences{margin:0;display:flex;gap:16px;align-items:center;flex:0 0 auto}
body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .practice-preferences .language-pair{max-width:610px;flex:1}
body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .pair-choice{min-height:44px;padding:5px 11px}
body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .pair-choice b{font-size:14px}
body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .practice-preferences .check{margin:0;font-size:12px}
.word-workspace{width:100%;min-height:0;flex:1;display:flex;flex-direction:column;gap:7px}
.word-topbar{margin:0;gap:10px;align-items:center;flex-wrap:nowrap}.word-topbar .segmented{flex-wrap:nowrap;display:flex}.word-topbar .segmented button{min-width:0;font-size:13px;min-height:37px;padding:7px 10px}
.word-topbar .word-profile-label{min-width:110px;max-width:180px;font-size:11px;margin:0}.word-profile-label select{margin:0;padding:2px 6px;min-height:32px!important;max-width:180px;font-size:12px}
#word-hint{font-size:12px;margin:0;min-height:18px;line-height:1.5}#word-card-region{min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
#word-card-region.is-card{display:flex;overflow:visible}#word-pagination:empty{display:none}
.focus-word-card,.lesson.focus-lesson{display:flex;flex-direction:column;gap:10px;width:100%;height:100%;min-height:0;margin:0;padding:18px 22px;border:1px solid #e5d7df;border-radius:10px;box-shadow:0 8px 32px #68234506;background:#fff}
.focus-word-head{flex:0 0 auto;gap:8px}.session-position{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.focus-content{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:10px;text-align:center;overflow-wrap:anywhere;padding:8px}
.focus-content .focus-word{font-size:clamp(26px,4vw,54px);margin:0;line-height:1.25}.focus-content .pronunciation{margin:0;font-size:17px}.focus-content .word-meaning{border:0;padding:0;margin:0}.focus-content .word-meaning>p{font-size:22px;margin:0}.focus-lesson .sentence{font-size:clamp(20px,2.4vw,31px);padding:0;margin:0}.focus-lesson .sentence.translation{font-size:clamp(25px,3vw,38px);color:var(--ink);border:0}.focus-lesson .sentence:not(.translation){color:var(--muted)}
.word-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;flex:0 0 auto}.word-action-grid>*{min-height:40px;padding:8px;font-size:14px}
.session-dock{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr) minmax(0,1fr);gap:10px;flex:0 0 auto;margin:0;padding:12px 0 0;border-top:1px solid var(--line);background:#fff;position:relative;z-index:2}.session-dock>*{min-width:0;min-height:47px;padding:9px 7px;font-size:15px;font-weight:650}
.session-review-options{flex:0 0 auto;font-size:12px;position:relative}.session-review-options summary{cursor:pointer;display:inline-block;color:var(--muted);padding:2px 0}.session-review-options[open]>.actions{position:absolute;inset-inline:0;bottom:26px;padding:16px;background:#fff;box-shadow:var(--shadow);border:1px solid var(--line);border-radius:8px;z-index:4}.session-review-options>.actions>*{font-size:13px;min-height:40px}
.session-keyboard-hint{font-size:11px;color:var(--muted);text-align:center;flex:0 0 auto}.word-search{margin:0;gap:10px}.word-search label{margin:0}.word-search input{min-height:36px!important;padding:4px 10px!important}.word-search button{min-height:36px}.word-collection{gap:12px}.word-tile{padding:14px;border-radius:9px}
body:is(.page-learn,.page-words,.page-review,.page-random) .study-layout{display:flex;flex:1;min-height:0;margin:0}.study-main{display:flex;flex-direction:column;flex:1;min-height:0;gap:8px}.study-help{display:none}.study-main #lesson{flex:1;min-height:0}.study-main .filter-bar{display:flex;flex-wrap:nowrap;align-items:end;padding:0;margin:0;border:0;gap:10px;background:none}.study-main .filter-bar label{margin:0;font-size:11px;flex:1}.study-main .filter-bar input,.study-main .filter-bar select{margin:0;min-height:35px!important;padding:5px 10px}.study-main .filter-bar button{min-height:35px;padding:5px 14px;font-size:13px}.random-modes{margin:0}.random-modes+p{display:none}
.writing-workspace{min-height:0;flex:1;display:flex;flex-direction:column;gap:8px;width:100%;max-width:1120px;margin:0 auto}.writing-topline{display:flex;gap:8px;align-items:center;flex:0 0 auto}.writing-topline .foundation-entry-link{margin-inline-end:auto;color:var(--primary);font-size:13px;font-weight:650}.writing-topline button{min-height:34px;font-size:12px;padding:5px 10px}.handwriting-panel{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;padding:12px 18px;border-radius:9px;margin:0}.writing-stage-head{display:flex;gap:12px;min-height:36px;align-items:center}.writing-stage-head .character-strip{flex:1;flex-wrap:nowrap;overflow-x:auto;margin:0;padding:2px;max-height:42px;scrollbar-width:thin}.writing-stage-head .character-strip button{min-width:36px;min-height:32px;padding:3px 8px;font-size:19px;flex-shrink:0;border-radius:5px}.canvas-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;container-type:size}.canvas-stage .write-board{width:min(100cqw,100cqh);height:min(100cqw,100cqh);max-width:none;aspect-ratio:1;border-radius:7px;margin:0;touch-action:none}
.writing-mini-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex:0 0 auto}.writing-mini-actions>*{min-height:35px;padding:5px 8px;font-size:13px}.writing-actions{margin:0;padding-top:10px}.writing-status{font-size:11px;color:var(--muted);line-height:1.4;min-height:15px;flex:0 0 auto;margin:0}
.writing-settings-dialog .writing-generator{grid-template-columns:1fr 100px}.writing-settings-dialog textarea{min-height:90px}.writing-settings-dialog .writing-controls label{margin-bottom:0}.copybook-dialog{width:min(930px,calc(100vw - 24px));max-width:none}.copybook-dialog .copybook-panel{padding:0}.copybook-controls{margin:12px 0}.copybook-controls label{margin:0}.stroke-box{max-width:240px;margin:12px auto}.stroke-box p{padding:18px;background:var(--rose);border-radius:8px}
.sound-studio{padding:16px;border-radius:10px}.sound-tabs{display:flex;gap:8px;overflow:auto;scrollbar-width:thin;padding:2px 2px 8px}.sound-tabs button{flex-shrink:0;min-height:36px;padding:7px 12px;font-size:13px}.sound-tabs button[aria-selected=true]{background:var(--primary);color:#fff;border-color:var(--primary)}.sound-stage{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 0}.sound-glyph{font-size:56px;line-height:1.3}.sound-stage p{font-size:19px}.sound-session-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:min(100%,650px)}.sound-session-actions>*{min-width:0;padding:8px 10px;font-size:14px}.compact-sounds{display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:7px;max-height:170px;overflow:auto;margin:10px 0 0;padding:4px}.compact-sounds button{min-width:0;min-height:42px;font-size:20px;padding:6px}.compact-sounds button[aria-pressed=true]{background:var(--rose);color:var(--primary);border-color:var(--primary)}details.foundation-guide{max-width:none;padding:15px;border-radius:9px}details.foundation-guide summary{cursor:pointer;font-weight:650;color:var(--primary)}details.foundation-guide article{margin-top:20px}.reader p{white-space:pre-line}
@media(max-width:1100px){:root{--session-bottom:72px}.session-keyboard-hint{display:none}.bottom-nav a{min-width:0;flex:1;padding:5px 4px}.bottom-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}}
@media(max-width:740px){:root{--session-header:60px;--session-bottom:calc(65px + env(safe-area-inset-bottom,0px))}.bottom-nav{padding:5px 6px max(7px,env(safe-area-inset-bottom));min-height:var(--session-bottom)}body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .app-header{padding:0 10px;flex-wrap:nowrap;gap:4px}body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .header-actions{gap:3px}body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .header-actions>[data-settings]{display:none}body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .language-trigger{max-width:88px;font-size:12px;padding:5px}body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .mobile-brand{font-size:14px}body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .header-actions .button{padding:7px 9px}body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) main{padding:8px 10px;min-height:440px;gap:6px}body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .page-heading h1{font-size:19px;line-height:1.2}body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .practice-preferences .check{display:none}body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .pair-choice span{font-size:10px}body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) .pair-choice{min-height:41px;padding:4px 10px}.word-topbar .segmented button{font-size:12px;padding:6px;min-height:34px}.word-topbar .word-profile-label{min-width:85px;max-width:100px}.word-topbar .word-profile-label select{max-width:100px}.focus-word-card,.lesson.focus-lesson{padding:10px 12px;gap:7px;border-radius:9px}.focus-content{gap:7px;padding:4px}.focus-content .focus-word{font-size:clamp(25px,7vw,38px)}.focus-content .word-meaning>p{font-size:19px}.focus-content .pronunciation{font-size:15px}.word-action-grid{gap:6px;grid-template-columns:repeat(4,minmax(0,1fr))}.word-action-grid>*{font-size:12px;padding:6px 4px;min-height:36px}.session-dock{gap:7px;padding-top:9px}.session-dock>*{font-size:13px;min-height:44px;padding:8px 4px}.focus-lesson .sentence.translation{font-size:25px}.focus-lesson .sentence:not(.translation){font-size:19px}.word-collection{grid-template-columns:repeat(2,minmax(0,1fr))}.word-tile>button:first-child{font-size:19px}.writing-topline .foundation-entry-link{font-size:11px}.writing-topline button{font-size:11px;padding:5px 7px}.handwriting-panel{padding:8px 10px;gap:7px}.writing-mini-actions{gap:6px}.writing-mini-actions>*{font-size:12px;min-height:32px;padding:4px}.writing-status{font-size:10px}.foundation-entry{gap:8px}.foundation-entry strong{font-size:15px}.sound-studio{padding:12px}.sound-glyph{font-size:48px}.compact-sounds{max-height:130px}.sound-session-actions{gap:6px}.sound-session-actions>*{font-size:12px;padding:7px 4px}.sound-stage{gap:5px;padding:7px 0}.sound-stage p{font-size:16px}}
@media(max-height:660px) and (min-width:741px){body:is(.page-wordcards,.page-write,.page-words,.page-learn,.page-review,.page-random,.page-basics) main{min-height:415px}.session-keyboard-hint{display:none}.focus-content .focus-word{font-size:35px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{body.printing-copybook .handwriting-panel,body.printing-copybook .writing-topline,body.printing-copybook .writing-status{display:none!important}body.printing-copybook #copybook-dialog{display:block!important;position:static!important;max-height:none!important;height:auto!important;overflow:visible!important;margin:0!important;padding:0!important;border:0!important;width:100%!important;max-width:none!important}body.printing-copybook dialog::backdrop{display:none!important}body.printing-copybook main{height:auto!important;min-height:0!important}body.printing-copybook .copybook-controls,body.printing-copybook .no-print{display:none!important}}

/* Sound controls stay above the phone navigation; long guides remain optional. */
body.page-basics main{height:auto;min-height:0;display:block}
body.page-basics .page-heading{margin:0 0 8px}
body.page-basics .practice-preferences{margin:0 0 8px}
body.page-basics .foundation-entry{margin:8px 0;gap:8px}
body.page-basics .foundation-entry>button,body.page-basics .foundation-entry>span{display:none}
body.page-basics .sound-stage{padding:5px 0;gap:4px}
body.page-basics .compact-sounds{max-height:100px}
body.page-basics .sound-session-actions>*{min-height:42px}
body.page-basics .foundation-workspace>.actions{margin:12px 0}
body.page-basics .app-footer{display:flex}
.keyboard{max-height:240px;overflow:auto;overscroll-behavior:contain}.keyboard-row button{min-width:32px}

@media(max-width:740px){body.page-write .page-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}body.page-write .practice-preferences{padding:0;background:none;border:0}body.page-write .language-pair{gap:6px}body.page-write .pair-choice{min-height:38px;padding:4px 9px}body.page-write .pair-choice span{font-size:9px}body.page-write .writing-topline{min-height:32px}body.page-write .writing-stage-head{min-height:32px}}

/* Course character palettes wrap into touch-sized keys; physical layouts scroll from the first key. */
.keyboard-row{justify-content:flex-start;min-width:max-content}
.keyboard-row button{flex:1 0 32px}
.keyboard[data-layout="course"]{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px;padding:4px}
.keyboard[data-layout="course"] .keyboard-row{display:contents}
.keyboard[data-layout="course"] .keyboard-row button{min-width:0;max-width:none;min-height:42px;width:100%;padding:5px 3px;margin:0}
.keyboard[data-layout="course"]>button{grid-column:1/-1;width:100%;margin:0}
/* Clear legacy phonetic margins so both word readings fit in short viewports. */
.focus-content .pronunciation{margin:0!important;min-height:0;line-height:1.4;flex-shrink:0}
.focus-content .word-meaning{flex-shrink:0}
.word-topbar .segmented{margin-bottom:0}

/* 1.4: expanded foundation grids, one-screen writing/stroke workspace. */
.foundation-grid-studio{display:grid;grid-template-columns:minmax(240px,.65fr) minmax(0,1.65fr);gap:22px;align-items:start}
.alphabet-charts14{min-width:0;display:grid;gap:22px}.alphabet-group14{margin:0;padding:22px;border-radius:6px;scroll-margin-top:100px}.alphabet-group14 h2{font-size:21px;margin:0 0 16px;border-bottom:2px solid var(--line);padding-bottom:10px}
.alphabet-grid14{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px;max-height:none;overflow:visible}.alphabet-tile14{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:97px!important;min-width:0;padding:10px 6px!important;line-height:1.3;border-radius:5px;overflow-wrap:anywhere;text-align:center}
.alphabet-letter14{font-size:30px;font-weight:600}.alphabet-sound14{font-size:15px;font-weight:400}.alphabet-example14{font-size:13px;font-weight:400}.alphabet-tile14[aria-pressed=true]{background:var(--rose);border-color:var(--primary);box-shadow:inset 0 -3px var(--primary)}
.alphabet-jump14{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 20px}.alphabet-jump14 a{padding:8px 12px;border:1px solid var(--line);border-radius:4px;font-size:14px;min-height:40px;display:inline-flex;align-items:center}
.sound-focus14{position:sticky;top:calc(var(--session-header,80px) + 12px);padding:22px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;margin:0;border-radius:6px;z-index:4;box-shadow:0 6px 24px #21101808;background:#fff}.sound-focus14 .sound-glyph{font-size:clamp(34px,3.8vw,58px);line-height:1.2;overflow-wrap:anywhere;width:100%;margin:0}.sound-focus14 p{margin:0}.sound-focus14>.button{width:100%;min-height:44px}.sound-focus14 .sound-session-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sound-focus14 .sound-session-actions>*{min-height:44px!important}.sound-focus-meta14{width:100%;display:flex;align-items:start;gap:12px;justify-content:space-between;font-size:13px;color:var(--muted);text-align:start}.sound-focus-meta14 span{white-space:nowrap}.sound-example14{font-size:19px}.foundation-guide{margin-top:24px;padding:24px;border-radius:6px}
.write-studio14{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.68fr);gap:16px;flex:1;min-height:0}.write-studio14 .canvas-stage{height:100%;min-width:0}
.inline-strokes14{display:flex;flex-direction:column;gap:8px;border-inline-start:1px solid var(--line);padding-inline-start:16px;min-height:0;min-width:0}.stroke-heading14{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:14px;flex-shrink:0}.stroke-heading14 span{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.inline-strokes14 .stroke-box{flex:1;min-height:0;min-width:0;max-width:none;margin:0;display:flex;align-items:center;justify-content:center;container-type:size}.inline-strokes14 .stroke-box svg{height:min(100cqh,100cqw);width:min(100cqh,100cqw);max-width:none;overflow:visible;display:block}.inline-strokes14 .stroke-box path{fill:none;stroke:#5b5351;stroke-linecap:round;stroke-linejoin:round;stroke-width:inherit}.inline-strokes14 .stroke-box path.current-stroke14{stroke:var(--primary)}.inline-strokes14 .stroke-box p{margin:0;max-width:100%;font-size:13px;line-height:1.65;padding:12px;overflow:auto;max-height:100%}.stroke-controls14{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:6px;flex-shrink:0}.stroke-controls14 button{min-height:40px;padding:5px;font-size:12px}.stroke-source14{font-size:10px;color:var(--muted);line-height:1.3;max-height:32px;overflow:hidden;margin:0;min-height:13px;flex-shrink:0}.stroke-source14 small{display:none}.stroke-source14 a{color:inherit;text-decoration:underline}.stroke-source14:focus-within{max-height:none}.speech-mini-bar{position:fixed;bottom:calc(var(--session-bottom,0px) + 12px);inset-inline-end:14px;z-index:60;display:flex;gap:12px;align-items:center;padding:8px 10px 8px 14px;border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:var(--shadow);max-width:calc(100vw - 28px)}.speech-mini-bar[hidden]{display:none!important}.speech-mini-bar>span{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.speech-mini-bar>button{padding:5px 12px;font-size:12px;min-height:36px}
/* Keep the sound queue away from the learning dock; the header is a non-scrolling anchor. */
body:is(.page-write,.page-wordcards,.page-learn,.page-words,.page-random,.page-review) .speech-mini-bar{top:calc(var(--session-header,80px) + 3px);bottom:auto;inset-inline-end:16px;max-width:340px}
@media(max-width:960px){.foundation-grid-studio{grid-template-columns:minmax(0,1fr);gap:16px}.sound-focus14{top:calc(var(--session-header,60px) + 4px);display:grid;grid-template-columns:minmax(70px,.75fr) minmax(0,1.25fr);gap:6px 12px;padding:12px}.sound-focus14 .sound-focus-meta14{grid-column:1/-1}.sound-focus14 .sound-glyph{grid-column:1;grid-row:2/4;font-size:34px}.sound-focus14 .sound-session-actions{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr))}.sound-focus14>.button{grid-column:1/-1;padding:4px;min-height:34px}.sound-focus14 .pronunciation,.sound-focus14 .sound-example14{font-size:15px}.alphabet-group14{scroll-margin-top:340px}}
@media(max-width:740px){.alphabet-group14{padding:14px}.alphabet-grid14{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}.alphabet-letter14{font-size:28px}.alphabet-tile14{min-height:88px!important}.alphabet-jump14{margin:8px 0 12px;gap:6px}.alphabet-jump14 a{font-size:12px;padding:6px 9px;min-height:36px}.sound-focus14{padding:10px;border-color:#d9c4cd}.sound-focus14 .sound-glyph{font-size:32px}.sound-focus-meta14{font-size:12px}.foundation-guide{padding:16px}.write-studio14{display:flex;gap:0}.write-studio14>.canvas-stage{flex:1}.inline-strokes14{display:none;flex:1;padding:0;border:0}.show-strokes14 .inline-strokes14{display:flex}.show-strokes14 .write-studio14>.canvas-stage{display:none}.stroke-controls14 button{min-height:36px}.stroke-source14{max-height:25px;font-size:10px}.speech-mini-bar>span{max-width:150px;font-size:11px}.speech-mini-bar{padding:5px 8px;gap:6px}.speech-mini-bar>button{min-height:32px}.stroke-heading14{font-size:12px}.sound-focus14 .sound-session-actions>*{font-size:12px}.writing-mini-actions>*{min-height:36px}}
@media print{.speech-mini-bar,.inline-strokes14{display:none!important}}

.content-sources14{font-size:11px;text-align:start;margin:8px 0;line-height:1.5;max-height:100px;overflow:auto}.content-sources14 p{margin:6px 0}.content-sources14 summary{cursor:pointer}.content-sources14[hidden]{display:none}
