@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:DM Sans Variable,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#302631;background:#f7f3e9;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #302631;--muted: #6e6269;--purple: #69436f;--purple-dark: #523157;--line: #e4dbd0;--white: #fffdf8;--lilac: #eee5f4;--sage: #e7eee2;--peach: #f7e5d7;--blue: #e6ebf5;--radius: 17px;--heading: "Songti SC", "Noto Serif CJK SC", SimSun, Georgia, serif}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default;opacity:.62}:focus-visible{outline:3px solid #956fa0;outline-offset:3px}h1,h2,h3,p{margin:0}svg{flex-shrink:0}small{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.shell{min-height:100vh}.topbar{background:var(--white);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1280px;min-height:75px;padding-inline:clamp(18px,3vw,40px);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:inline-flex;align-items:center;gap:9px;flex-shrink:0}.brand-icon{display:block;flex-shrink:0;width:39px;height:39px;border-radius:25%}.brand strong{font-family:var(--heading);font-size:23px;letter-spacing:-.065em;white-space:nowrap}.main-nav{display:flex;align-items:center;gap:clamp(3px,.5vw,8px)}.main-nav a{display:flex;align-items:center;gap:5px;min-height:40px;padding:6px 9px;border-radius:7px;color:var(--muted);font-size:13px;font-weight:650;white-space:nowrap}.main-nav svg{width:16px}.nav-short-label{display:none}.main-nav a:hover,.main-nav a[aria-current=page]{background:var(--lilac);color:var(--purple-dark)}.main-nav a[aria-current=page]{font-weight:800}.profile{position:relative;min-width:0}.profile-button{display:flex;gap:8px;align-items:center;border:0;border-radius:9px;padding:5px 8px;background:transparent;color:var(--ink);font-weight:700;max-width:100%}.profile-button:hover{background:var(--lilac)}.profile-name{min-width:0;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border-radius:50%;background:var(--lilac);color:var(--purple-dark);font-weight:800}.profile-menu{position:absolute;z-index:3;top:calc(100% + 8px);right:0;min-width:135px;padding:6px;border:1px solid var(--line);border-radius:9px;background:var(--white);box-shadow:0 8px 20px #46304318}.profile-menu button{display:flex;align-items:center;gap:8px;padding:9px;width:100%;white-space:nowrap;text-align:left}.content{max-width:1280px;min-width:0;margin:0 auto;padding:30px clamp(18px,3vw,40px) 50px}.tone-lilac{--tint: var(--lilac);--tint-line: #ded0e7}.tone-sage{--tint: var(--sage);--tint-line: #d3dfcb}.tone-peach{--tint: var(--peach);--tint-line: #edd1bd}.tone-blue{--tint: var(--blue);--tint-line: #d1dbe9}.mascot{display:block;object-fit:contain;max-width:100%}.recite-mascot{flex:0 0 auto;width:clamp(64px,18vw,108px);height:106px}.today-board{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(275px,1fr);gap:16px}.today-cover{min-height:288px;position:relative;display:flex;align-items:center;overflow:hidden;isolation:isolate;border-radius:var(--radius);border:1px solid var(--tint-line);background:var(--tint)}.today-cover:after{content:"";position:absolute;z-index:-1;right:-5%;bottom:-57%;width:62%;aspect-ratio:1;border-radius:50%;background:#f8f0fa}.cover-copy{position:relative;z-index:1;padding:28px 0 30px clamp(20px,3.2vw,45px)}.cover-copy time{display:inline-flex;align-items:center;gap:7px;color:var(--purple-dark);font-size:13px;font-weight:700}.cover-copy h1{margin-top:16px;font:750 clamp(34px,4vw,58px)/1.18 var(--heading);letter-spacing:-.065em}.cover-mascot{position:absolute;inset:3% 1% 2% auto;width:59%;height:95%;object-position:center}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}.today-work{display:flex;flex-direction:column;gap:16px;padding:clamp(17px,2.25vw,27px)}.today-work-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.today-work-heading h2{font:750 25px/1.25 var(--heading)}.today-work-heading p{color:var(--muted);font-size:12px;margin-top:5px}.today-plan{white-space:nowrap;margin-top:4px}.today-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:14px 0;border-block:1px solid var(--line)}.today-counts>div+div{border-left:1px solid var(--line);padding-left:17px}.today-counts dt{font-size:13px;font-weight:650;color:var(--muted)}.today-counts dd{margin:3px 0 0;font-size:13px}.today-counts dd strong{font-size:40px;line-height:1;font-weight:750;letter-spacing:-.045em}.today-counts .today-count-note{color:var(--purple-dark);font-size:11px}.today-summary{color:var(--muted);font-size:13px;line-height:1.55}.today-work>.button{justify-content:space-between;margin-top:auto}.study-shelf{margin-top:27px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.section-heading h2,.card-title h2{font-size:18px;font-weight:800;letter-spacing:-.025em}.study-shelf .section-heading h2{font-family:var(--heading);font-size:25px}.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.module-card{position:relative;isolation:isolate;overflow:hidden;min-height:162px;padding:17px 14px 14px;background:var(--tint);border:1px solid var(--tint-line);border-radius:var(--radius);transition:border-color .16s ease,transform .16s ease}.module-card:hover{border-color:var(--purple);transform:translateY(-2px)}.module-copy{position:relative;z-index:1;display:flex;height:100%;flex-direction:column;align-items:flex-start}.module-copy h3{font-size:clamp(16px,1.5vw,21px);font-weight:800;letter-spacing:-.035em}.module-copy p{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.4;max-width:11em}.module-arrow{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;color:var(--purple-dark);background:var(--white);margin-top:auto}.module-mascot{position:absolute;width:57%;height:84%;bottom:0;right:0;object-position:right bottom}.section-intro{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:152px;margin-bottom:22px;padding:18px clamp(16px,3.3vw,35px);border:1px solid var(--tint-line);border-radius:var(--radius);background:var(--tint)}.section-intro>div{min-width:0}.section-intro h1{font:750 clamp(29px,3.8vw,43px)/1.2 var(--heading);letter-spacing:-.055em}.section-intro p{margin-top:6px;font-size:14px;line-height:1.6;color:var(--muted)}.intro-mascot{width:clamp(85px,19vw,200px);height:132px;flex-shrink:0;object-position:right center}.intro-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.intro-actions .button{min-height:36px;padding:6px 10px;font-size:13px}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:10px 15px;min-height:44px;border:1px solid transparent;border-radius:9px;font-weight:750;font-size:14px;white-space:nowrap;transition:background .16s,border-color .16s}.button.primary{background:var(--purple-dark);color:#fffdf8}.button.primary:hover:not(:disabled){background:#6b4372}.button.outline{background:var(--white);border-color:#ded1df;color:var(--purple-dark)}.button.outline:hover:not(:disabled){background:var(--lilac);border-color:#bfaac5}.button.small{font-size:13px;min-height:38px;padding:7px 12px}.button.full{width:100%}.quiet{background:transparent;border:0;border-radius:8px;color:var(--muted)}.quiet:hover{background:var(--lilac);color:var(--purple-dark)}.text-link{display:inline-flex;align-items:center;gap:6px;color:var(--purple-dark);background:transparent;border:0;padding:0;font-size:13px;font-weight:750}.text-link:hover{text-decoration:underline;text-underline-offset:4px}.icon-box{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:10px;background:var(--lilac);color:var(--purple-dark)}.icon-box.orange{background:var(--peach);color:#864829}.icon-box.mint{background:var(--sage);color:#375f40}.icon-box.book{background:var(--lilac);color:var(--purple-dark)}.home-progress{margin-top:22px}.home-progress .progress-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.home-progress .progress-week{border-left:1px solid var(--line);padding-left:24px}.home-progress .week-head{padding-top:0;margin-top:0;border:0}.home-progress .bar-track{height:67px}.progress-card{padding:19px 20px 16px}.card-title{display:flex;gap:10px;align-items:center}.card-title .icon-box{width:36px;height:36px;border-radius:10px}.progress-count{margin-top:15px;color:var(--muted);font-size:13px}.progress-count>strong{font-size:36px;line-height:1;color:var(--ink);letter-spacing:-.05em}.meter{height:8px;background:#eee6ed;border-radius:12px;overflow:hidden;margin:10px 0 13px}.meter span{display:block;height:100%;border-radius:inherit;background:var(--purple);transition:width .2s}.progress-note,.week-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.progress-note{color:var(--muted);margin-top:7px;font-size:12px}.progress-note strong{color:var(--ink);font-size:12px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:1px}.dot.green{background:#638568}.dot.purple{background:#a180a7}.week-head{margin-top:15px;padding-top:13px;border-top:1px solid var(--line);font-size:12px}.week-head span{font-size:11px;color:var(--muted)}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:10px}.week-column{text-align:center;min-width:0}.bar-track{height:38px;display:flex;align-items:flex-end;justify-content:center}.bar-track span{width:100%;max-width:24px;border-radius:5px;background:#e4d8e8}.bar-track .filled{background:#ab8eb1}.bar-track .current{background:var(--purple)}.week-column small{display:block;font-size:11px;margin-top:5px}.today-label{color:var(--purple);font-weight:850}.progress-link{margin-top:13px}.word-book-select{display:grid;gap:6px;width:fit-content;max-width:100%;margin-bottom:14px;font-size:13px;font-weight:750}.word-book-select select{width:100%;max-width:min(100%,calc(100vw - 28px));min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--ink);font:inherit}.word-unit-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}.word-unit-nav a{display:grid;gap:4px;align-content:start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--white)}.word-unit-nav a[aria-current=location]{border-color:var(--purple);color:var(--purple-dark);background:var(--lilac)}.word-unit-nav a small{font-size:11px;font-weight:550}.word-unit-progress{color:var(--muted);font-size:13px}.word-unit-progress .meter{margin-top:7px}.book-panel{padding:0 23px 20px}.book-header{display:flex;gap:13px;align-items:center;padding:19px 0}.book-header h2{font-size:20px;letter-spacing:-.3px}.book-header p{color:var(--muted);font-size:13px;margin-top:4px}.word-row{display:grid;grid-template-columns:1fr .9fr 1.8fr auto;gap:14px;align-items:center;border-top:1px solid var(--line);min-height:70px;padding:10px 0}.word-term{display:flex;gap:8px;align-items:center}.word-term strong{display:block;font-size:17px}.word-term small,.word-example small{display:block;font-size:11px;margin-top:3px}.word-meaning{font-size:13px;color:var(--muted)}.word-example p{font-size:14px;font-weight:650}.speak{display:inline-grid;place-items:center;width:41px;height:41px;padding:0;flex-shrink:0;border-radius:13px;color:var(--purple);background:var(--lilac);border:1px solid #e4d5e8}.speak:hover{background:#e3d4e9}.word-row .speak{width:34px;height:34px;border-radius:10px}.status-chip{padding:5px 8px;border-radius:8px;font-size:11px;background:#f0eae4;color:var(--muted);white-space:nowrap}.status-chip.learning{background:var(--lilac);color:var(--purple-dark)}.status-chip.stable{background:var(--sage);color:#365b40}.book-source{margin-top:15px}.settings-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(245px,1fr);gap:18px;align-items:start}.settings-card,.estimate-card{padding:22px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}.setting-row strong{display:block;font-size:14px}.setting-row small{display:block;margin-top:4px;font-size:12px;line-height:1.5}input{border:1px solid #dfd4d9;border-radius:10px;color:var(--ink);background:var(--white);padding:10px 12px;min-height:43px}.setting-row input{width:76px}.study-days{border:0;padding:0;margin:18px 0;min-width:0}.study-days legend{font-size:14px;font-weight:750;margin-bottom:9px;padding:0}.study-days>div{display:flex;flex-wrap:wrap;gap:6px}.study-days button{width:36px;height:36px;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:var(--white);font-size:13px}.study-days button[aria-pressed=true]{border-color:#c8b3cf;background:var(--lilac);color:var(--purple-dark);font-weight:800}.muted{color:var(--muted);font-size:13px;line-height:1.65}.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:17px}.save-status{color:var(--purple-dark);font-size:13px}.estimate-card dl{margin:14px 0}.estimate-card dl div,.skill-list>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.estimate-card dt{color:var(--muted)}.estimate-card dd{margin:0;font-weight:800;white-space:nowrap}.stack{display:grid;gap:14px}.skill-list{margin:9px 0 0}.skill-list>div strong{color:var(--purple-dark);font-size:12px;text-align:right}.skill-list>div:last-child{border-bottom:0}.settings-card>.button,.settings-card>.muted{margin-top:12px}.mastery-note{margin-top:14px}.auth-dialog{width:min(676px,calc(100vw - 24px));max-height:calc(100dvh - 26px);padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);color:var(--ink);box-shadow:0 18px 70px #30263135}.auth-dialog::backdrop{background:#30263170}.auth-layout{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(0,1fr)}.auth-illustration{display:grid;place-items:center;min-height:320px;background:var(--tint);padding:13px}.auth-illustration .mascot{width:100%;height:220px}.auth-fields{padding:34px 26px 25px}.dialog-close{position:absolute;top:9px;right:9px;z-index:1;padding:5px;display:grid;place-items:center;background:var(--white)}.auth-fields h2{font:750 24px/1.3 var(--heading)}.auth-fields .muted{margin-top:5px}.auth-fields form{margin-top:17px;display:grid;gap:10px}.auth-fields label{display:grid;gap:4px;font-size:13px;font-weight:750}.auth-fields input{width:100%;font-weight:500}.auth-toggle{margin-top:15px}.inline-error{font-size:12px;color:#9b2439}.error-banner{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;margin-bottom:14px;border:1px solid #edc8cc;border-radius:11px;background:#fff2f4;color:#8d293a;font-size:13px}.error-banner .quiet{display:grid;padding:4px}.study-area{max-width:720px;margin:0 auto}.study-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:19px}.study-top>div{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.study-top .meter{width:clamp(50px,14vw,130px);margin:0}.lesson-card{padding:clamp(20px,4vw,39px)}.eyebrow{display:flex;align-items:center;gap:7px;color:var(--purple-dark);font-weight:750;font-size:13px}.large-word{display:flex;gap:14px;align-items:center;margin-top:13px}.large-word h1{font-size:clamp(42px,8vw,70px);letter-spacing:-.05em;line-height:1}.phonetic{margin:6px 0 12px;color:var(--muted)}.meaning{font-size:20px;font-weight:750}.example-box{display:flex;gap:12px;align-items:center;justify-content:space-between;background:var(--lilac);border:1px solid #e6d8e8;padding:14px;border-radius:13px;margin:18px 0 21px}.example-box p{font-size:clamp(17px,2.8vw,22px);font-weight:750}.example-box small{display:block;font-size:13px;margin-top:5px}.question-title,.feedback-card h1,.done-card h1{font-size:clamp(23px,3.6vw,34px);margin-top:12px;letter-spacing:-.04em;line-height:1.25}.cloze{font-size:clamp(21px,4vw,32px);font-weight:750;line-height:1.55;padding:13px 0 18px}.cloze span{color:var(--purple-dark);display:inline-block;min-width:4.2em;padding:0 .24em;text-align:center;border-bottom:2px solid #af8fb8}.options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.options button{padding:11px;min-height:49px;border-radius:12px;border:1px solid #dfd4d9;background:var(--white);color:var(--ink);font-weight:750;font-size:18px}.options button:hover,.options button.selected{background:var(--lilac);border-color:#b298b8;color:var(--purple-dark)}.options button.selected{box-shadow:inset 0 0 0 1px #b298b8}.spell-label{display:block}.spell-label input{width:100%;font-size:18px}.question-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-top:19px}.hint{color:var(--muted);font-size:13px;line-height:1.6}.listening{display:flex;align-items:center;gap:12px;padding:15px 0}.listening .speak{width:58px;height:50px}.done-card{text-align:center}.feedback-heading{display:flex;justify-content:space-between;gap:13px;align-items:center}.feedback-mascot{width:126px;height:105px;flex-shrink:0;object-position:right center}.done-mascot{width:min(100%,275px);height:172px;margin-inline:auto}.done-card p{margin-top:9px;color:var(--muted);font-size:14px}.done-card>div{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:18px}@media(max-width:1030px){.main-nav a{gap:4px;padding-inline:6px}.main-nav a svg{width:14px}.topbar-inner{gap:12px}}@media(max-width:900px){.topbar-inner{min-height:63px}.main-nav{position:fixed;z-index:4;inset:auto 0 0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;padding:5px 6px max(5px,env(safe-area-inset-bottom));background:var(--white);border-top:1px solid var(--line)}.main-nav a{justify-content:center;flex-direction:column;gap:3px;padding:5px 0;min-height:48px;font-size:11px}.main-nav a svg{width:19px;height:19px}.content{padding-bottom:86px}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.topbar-inner{padding-inline:14px}.brand-icon{width:34px;height:34px}.brand strong{font-size:21px}.nav-label{display:none}.nav-short-label{display:inline}.content{padding:15px 13px 83px}.today-board,.settings-grid{grid-template-columns:1fr;gap:11px}.today-cover{min-height:clamp(187px,48vw,235px)}.cover-copy{padding-left:16px}.cover-copy h1{margin-top:12px;font-size:clamp(26px,7.1vw,42px)}.cover-copy time{font-size:11px}.cover-copy time svg{width:13px}.cover-mascot{width:58%}.today-work{gap:12px}.today-counts{padding:10px 0}.today-counts dd strong{font-size:34px}.study-shelf{margin-top:21px}.module-grid{gap:8px}.module-card{min-height:147px;padding:12px 10px 9px}.module-copy p{font-size:11px}.module-mascot{width:63%;height:62%;right:1%}.module-arrow{width:28px;height:28px}.module-arrow svg{width:16px}.section-intro{min-height:114px;margin-bottom:15px;padding:12px}.section-intro h1{font-size:28px}.section-intro p{font-size:12px}.intro-mascot{height:94px}.intro-actions{margin-top:8px}.intro-actions .button{font-size:11px;padding-inline:7px}.intro-actions .button svg{width:14px}.home-progress .progress-card{grid-template-columns:1fr;gap:15px}.home-progress .progress-week{padding:12px 0 0;border-left:0;border-top:1px solid var(--line)}.home-progress .bar-track{height:38px}.book-panel{padding:0 14px 16px}.word-unit-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.word-row{grid-template-columns:1fr 1fr auto;gap:6px}.word-example{grid-column:1 / -1;grid-row:2;margin-left:42px;padding-bottom:3px}.word-meaning{font-size:12px}.settings-card,.estimate-card{padding:17px}.study-top{margin-bottom:12px}.feedback-mascot{width:82px;height:76px}}@media(max-width:520px){.auth-layout{grid-template-columns:1fr}.auth-illustration{min-height:0;height:115px}.auth-illustration .mascot{height:100%;width:auto}.auth-fields{padding:17px 19px 20px}}@media(max-width:365px){.cover-mascot{width:49%;object-position:right center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}:root{--playful-button: #613acc;--playful-button-edge: #4726a3}.header-actions{display:flex;justify-content:flex-end;align-items:center;gap:7px;min-width:0}.appearance-trigger{display:inline-flex;align-items:center;flex-shrink:0;gap:5px;padding:7px;min-height:40px;color:var(--purple-dark);font-size:13px;font-weight:750;white-space:nowrap}.appearance-dialog{width:min(440px,calc(100% - 28px));max-height:calc(100dvh - 28px);padding:clamp(16px,4vw,25px);border:1px solid var(--line);border-radius:var(--radius);background:var(--white);color:var(--ink);box-shadow:0 18px 70px #30263135}.appearance-dialog::backdrop{background:#30263170}.appearance-dialog h2{font:800 24px/1.25 var(--heading)}.appearance-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;min-width:0;margin:16px 0;padding:0;border:0}.appearance-option{display:grid;overflow:hidden;cursor:pointer;border:2px solid var(--line);border-radius:13px}.appearance-option:has(:checked){border-color:var(--purple)}.appearance-option:has(:focus-visible){outline:3px solid var(--purple);outline-offset:2px}.appearance-label{display:flex;align-items:center;gap:6px;min-height:44px;padding:7px 8px;font-size:14px;font-weight:750}.appearance-label input{flex-shrink:0;margin:0;accent-color:var(--purple)}.appearance-preview{display:grid;place-items:center;min-height:86px;padding:7px;background:#eee5f4}.appearance-preview>span{display:flex;align-items:center;gap:5px;padding:8px 10px;border-radius:8px;background:#523157;color:#fffdf8;font-size:12px;font-weight:800;white-space:nowrap}.appearance-preview[data-preview=playful]{background:#e7dfff}.appearance-preview[data-preview=playful]>span{border-radius:12px;background:var(--playful-button);box-shadow:0 4px var(--playful-button-edge)}.appearance-actions{display:flex;justify-content:flex-end;padding-bottom:4px}.playful-title,.module-node{display:none}:root[data-theme=playful]{color:#2d2441;background:#f8f6ff;--ink: #2d2441;--muted: #615773;--purple: #633ec7;--purple-dark: #5132a4;--line: #e2daef;--white: #fff;--lilac: #e9e1ff;--sage: #e3f2de;--peach: #ffead9;--blue: #e2ebff;--radius: 21px;--heading: "DM Sans Variable", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}[data-theme=playful] .tone-lilac{--tint-line: #d8c9f7;--node: var(--playful-button)}[data-theme=playful] .tone-sage{--tint-line: #cbdcc4;--node: #3e7d4e}[data-theme=playful] .tone-peach{--tint-line: #eed1bb;--node: #b95526}[data-theme=playful] .tone-blue{--tint-line: #cad8f1;--node: #396db8}[data-theme=playful] .main-nav a{border-radius:11px}[data-theme=playful] .today-layout{display:grid;grid-template:"cover task" auto "modules progress" auto / minmax(0,1.9fr) minmax(0,1fr);align-items:start;gap:22px 18px}[data-theme=playful] .today-board{display:contents}[data-theme=playful] .today-cover{grid-area:cover;align-self:stretch;min-height:267px;border-color:var(--playful-button);background:var(--playful-button);color:#fff}[data-theme=playful] .today-cover:after{right:-10%;bottom:-69%;width:70%;background:#8b66ea}[data-theme=playful] .cover-copy time{color:#fff}[data-theme=playful] .cover-copy h1{font-size:clamp(34px,4vw,56px);letter-spacing:-.06em}[data-theme=playful] .storybook-title{display:none}[data-theme=playful] .playful-title{display:inline}[data-theme=playful] .today-work{grid-area:task;align-self:stretch;border-width:2px;box-shadow:0 3px 0 var(--line)}[data-theme=playful] .today-counts{gap:8px;padding:0;border:0}[data-theme=playful] .today-counts>div{padding:10px 12px;border:0;border-radius:13px;background:var(--lilac)}[data-theme=playful] .today-counts>div+div{background:var(--sage)}[data-theme=playful] .today-counts dd strong{font-size:34px}[data-theme=playful] .study-shelf{grid-area:modules;margin-top:0}[data-theme=playful] .study-shelf h2{font-size:23px}[data-theme=playful] .module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}[data-theme=playful] .module-card{display:flex;align-items:center;gap:12px;min-height:106px;padding:12px 28% 12px 13px;border-width:2px;box-shadow:0 3px 0 var(--tint-line)}[data-theme=playful] .module-card:active{transform:translateY(2px);box-shadow:0 1px 0 var(--tint-line)}[data-theme=playful] .module-copy{height:auto;min-width:0}[data-theme=playful] .module-copy h3{font-size:clamp(16px,1.7vw,21px)}[data-theme=playful] .module-arrow{display:none}[data-theme=playful] .module-node{display:grid;place-items:center;flex:0 0 auto;width:45px;height:45px;border-radius:50%;background:var(--node);box-shadow:inset 0 -4px #291f4b30;color:#fff}[data-theme=playful] .module-mascot{width:28%;height:94%;right:2%}[data-theme=playful] .home-progress{grid-area:progress;margin-top:0}[data-theme=playful] .home-progress .progress-card{grid-template-columns:minmax(0,1fr);gap:12px;border-width:2px}[data-theme=playful] .home-progress .progress-week{padding:12px 0 0;border-left:0;border-top:1px solid var(--line)}[data-theme=playful] .home-progress .bar-track{height:38px}[data-theme=playful] .meter{background:#ede7fb}[data-theme=playful] .bar-track .empty:not(.current){background:#e9e1fa}[data-theme=playful] .bar-track .filled:not(.current){background:#a08ae0}[data-theme=playful] :is(.button,.options button){border-radius:14px;font-weight:800;transition:background .14s,border-color .14s,box-shadow .14s,transform .14s}[data-theme=playful] .button.primary{background:var(--playful-button);box-shadow:0 5px 0 var(--playful-button-edge)}[data-theme=playful] .button.primary:hover:not(:disabled){background:#6d46d8}[data-theme=playful] .button.outline,[data-theme=playful] .options button{box-shadow:0 3px 0 var(--line)}[data-theme=playful] .options button.selected{border-color:var(--purple);box-shadow:0 3px #c4b1ed}[data-theme=playful] :is(.button.outline,.options button):active:not(:disabled){box-shadow:0 1px 0 var(--line);transform:translateY(2px)}[data-theme=playful] .button.primary:active:not(:disabled){box-shadow:0 1px 0 var(--playful-button-edge);transform:translateY(4px)}[data-theme=playful] .button:disabled{box-shadow:none}[data-theme=playful] .today-work>.button{min-height:50px;margin-bottom:4px;font-size:16px}@media(max-width:1050px){[data-theme=playful] .module-grid{grid-template-columns:minmax(0,1fr)}[data-theme=playful] .module-card{min-height:87px}}@media(max-width:760px){[data-theme=playful] .today-layout{grid-template:"cover" "task" "modules" "progress" / minmax(0,1fr);gap:17px}[data-theme=playful] .today-cover{min-height:190px}[data-theme=playful] .cover-copy h1{font-size:clamp(28px,7.4vw,43px)}}@media(max-width:365px){.header-actions{gap:4px}.appearance-trigger{padding-inline:4px}}@media(prefers-reduced-motion:reduce){[data-theme=playful] :is(.button,.module-card,.options button):is(:hover,:active){transform:none}}.classics-page{display:grid;gap:22px}.classics-page>.section-intro{margin-bottom:0}.classics-header h1{font-family:var(--heading);font-size:clamp(29px,4vw,44px);line-height:1.22;letter-spacing:-.035em;overflow-wrap:anywhere}.classics-header p{margin-top:7px;color:var(--muted);font-size:14px}.classics-header .classics-context{margin:0 0 8px;color:#475b77;font-weight:750}.classics-header .classics-author{margin-top:9px}.classics-back{justify-self:start}.classics-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.42fr);align-items:center;gap:26px;padding:clamp(17px,3vw,30px);border-color:#d4dce7;background:#f0f3f8}.classics-overview-heading{display:flex;align-items:center;justify-content:space-between;gap:8px 15px;flex-wrap:wrap}.classics-overview h2,.classics-section-heading h2{font-size:19px}.classics-overview-heading>span{display:inline-flex;align-items:center;gap:6px;color:#435d80;font-size:13px;font-weight:700}.classics-overview-main>.text-link,.classics-overview-main>.muted{margin-top:13px}.classics-start{display:flex;align-items:center;flex-wrap:wrap;gap:7px 12px;margin-top:14px}.classics-start>:is(span,p){color:var(--muted);font-size:13px;overflow-wrap:anywhere}.classics-overview-kinds{padding-left:26px;border-left:1px solid #d4dce7}.classics-overview-kinds>div{display:flex;justify-content:space-between;gap:8px;padding:9px 0;color:#475b77;font-size:14px}.classics-overview-kinds strong{color:var(--ink)}.classics-progress-numbers{min-width:0;margin-top:10px}.classics-progress-count{display:flex;align-items:baseline;justify-content:space-between;gap:8px;color:#505f57;font-size:14px;font-variant-numeric:tabular-nums}.classics-progress-count strong{color:var(--ink);font-size:clamp(27px,4vw,41px);letter-spacing:-.05em}.classics-progress-count b{color:#435d80}.classics-progress-numbers .meter{height:9px;margin:7px 0 0;background:#dce4ef}.classics-progress-numbers .meter>span{background:#607ba0}.classics-section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.classics-catalog{display:grid;gap:14px}.classics-search{position:relative;display:flex;align-items:center;color:var(--muted)}.classics-search>svg{position:absolute;left:12px;pointer-events:none}.classics-search input{width:clamp(160px,26vw,260px);padding-left:37px;min-height:42px}.classics-filters,.classics-filter-options{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap}.classics-filters{justify-content:space-between}.classics-kinds{display:flex;gap:3px;padding:4px;background:var(--blue);border-radius:13px}.classics-kinds button{min-height:35px;padding:5px 12px;border:0;border-radius:9px;background:transparent;color:#435575;font-size:13px;font-weight:700}.classics-kinds button[aria-pressed=true]{background:#fff;color:var(--purple-dark);box-shadow:0 1px 3px #33476d17}.classics-filter-options select{padding:8px 10px;min-height:39px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:13px}.classics-filter-options label{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:13px}.classics-filter-options input{accent-color:var(--purple)}.classics-book{display:grid;gap:8px}.classics-book-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:4px}.classics-book-heading h3{font-size:15px}.classics-book-heading span{color:var(--muted);font-size:13px}.classics-list{list-style:none;margin:0;padding:0 15px}.classics-list li+li{border-top:1px solid var(--line)}.classics-list a{display:flex;min-height:61px;align-items:center;gap:10px;padding:10px 4px}.classics-list a:hover strong{color:var(--purple-dark)}.classics-list a>div{flex:1;min-width:0;overflow-wrap:anywhere}.classics-list strong{display:block;font-size:15px}.classics-list small{display:block;margin-top:4px;font-size:12px}.classics-list a>svg{color:var(--muted)}.classics-list .status-chip{white-space:nowrap}.classics-empty{display:flex;flex-wrap:wrap;gap:8px 14px;padding:18px;color:var(--muted);font-size:14px}.classics-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(218px,.38fr);gap:16px;align-items:start}.classics-reading,.classics-detail-side{display:grid;gap:13px;min-width:0}.classics-detail-side{position:sticky;top:16px}.classics-passage,.classics-explanation{padding:clamp(17px,3vw,28px)}.classics-controls{display:flex;gap:7px;flex-wrap:wrap}#classics-original{margin-top:20px}.classics-original{font-family:Songti SC,"Noto Serif CJK SC",SimSun,serif;color:#262a25;font-size:clamp(20px,3vw,26px);line-height:1.9;text-align:center}.classics-prose{text-align:start;font-size:clamp(19px,2.6vw,23px)}.classics-prose p{text-indent:2em}.classics-prose p+p{margin-top:.6em}.classics-original ruby{margin-inline:.035em;ruby-align:center}.classics-original rt{color:#475b77;font-family:DM Sans Variable,system-ui,sans-serif;font-size:.51em;letter-spacing:0;text-indent:0}.classics-cue{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 18px;border-radius:13px;background:#f0f3f8;color:#435d80;font-size:14px}.classics-explanation summary{color:var(--purple-dark);font-size:15px;font-weight:750;cursor:pointer}.classics-explanation details+details{padding-top:13px;margin-top:13px;border-top:1px solid var(--line)}.classics-explanation p,.classics-explanation ul{margin-top:10px;color:#514c60;font-size:14px;line-height:1.8}.classics-explanation ul{padding-left:21px;margin-bottom:0}.classics-explanation li+li{margin-top:5px}.classics-check-in,.classics-progress-card{padding:18px}.classics-check-in h2,.classics-progress-card h2{display:flex;align-items:center;gap:7px;font-size:16px}.classics-check-in h2 svg,.classics-progress-card h2 svg{color:#398761}.classics-check-in .muted,.classics-progress-card .muted,.classics-progress-card .text-link{margin-top:8px}.classics-check-in .button{margin-top:13px}.classics-progress-card .classics-progress-count strong{font-size:29px}.classics-error{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;color:#94293d;font-size:13px}.classics-next{padding:6px 4px}@media(max-width:760px){.classics-detail-grid{grid-template-columns:minmax(0,1fr)}.classics-detail-side{position:static}}@media(max-width:540px){.classics-page{gap:17px}.classics-overview{grid-template-columns:minmax(0,1fr);gap:13px}.classics-overview-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:7px 0 0;border:0;border-top:1px solid #d4dce7}.classics-overview-kinds>div{padding:3px 0;font-size:12px}}.grammar-actions{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px}.grammar-next{display:grid;justify-items:start;align-content:start;gap:14px;padding:clamp(20px,3vw,30px);border:1px solid #d5dfcc;border-radius:var(--radius);background:#f1f4eb}.grammar-next h2{font-family:var(--heading);font-size:clamp(23px,3vw,32px);letter-spacing:-.025em;line-height:1.25}.grammar-next p{margin-top:6px;color:var(--muted);font-size:14px;line-height:1.6}.grammar-action-icon,.grammar-icon{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;color:var(--purple-dark);background:var(--lilac);border-radius:13px}.grammar-action-icon.assessment,.grammar-icon-articles{background:#fff0db;color:#904a19}.grammar-action-icon.review,.grammar-icon-can,.grammar-icon-plurals{background:#e1f4ec;color:#206d56}.grammar-icon-possessives{background:#fbe8f1;color:#8a3d67}.grammar-icon-demonstratives{background:#e7efff;color:#395b9c}.grammar-shortcuts{display:grid;gap:12px;grid-template-rows:repeat(2,minmax(0,1fr))}.grammar-shortcut{display:flex;align-items:center;gap:12px;text-align:left;padding:16px;color:var(--ink)}button.grammar-shortcut:not(:disabled):hover,.grammar-lesson-link:hover{border-color:#b0bfab}.grammar-shortcut strong{display:block;font-size:16px}.grammar-shortcut small{display:block;margin-top:4px;font-size:12px;line-height:1.5}.grammar-shortcut>svg{margin-left:auto;color:#746675}.grammar-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:17px}.grammar-levels a{display:grid;gap:4px;padding:12px 15px;min-width:0;border:1px solid var(--line);background:var(--white);border-radius:13px}.grammar-levels a:hover{border-color:#b0bfab}.grammar-levels a[aria-current=location]{color:var(--purple-dark);background:var(--sage);border-color:#cedbc8}.grammar-levels strong{font-size:15px}.grammar-levels small{font-size:12px}.grammar-catalog{margin-top:26px}.grammar-catalog-heading .muted{margin-top:3px}.grammar-group{margin:17px 0 22px}.grammar-group h3{font-size:15px}.grammar-group .button{min-height:34px}.grammar-lesson-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.grammar-lesson-link{display:flex;align-items:center;gap:12px;min-height:79px;padding:13px}.grammar-lesson-link>div{min-width:0}.grammar-lesson-link h4{font-size:15px;margin:0}.grammar-lesson-link p{margin-top:4px;color:var(--muted);font-size:13px;font-weight:650;overflow-wrap:anywhere}.grammar-lesson-link .status-chip{margin-left:auto}.grammar-lesson-arrow{margin-left:auto;color:#746675}.grammar-lesson-link .status-chip+.grammar-lesson-arrow{margin-left:0}.status-chip.grammar-needs-work{color:#834118;background:#fff0dc}.grammar-resources{margin-top:17px}.grammar-resources summary,.grammar-answer-detail summary{display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none;padding:13px 16px;font-size:14px;font-weight:750}.grammar-resources summary::-webkit-details-marker,.grammar-answer-detail summary::-webkit-details-marker{display:none}.grammar-resources summary>svg:last-child,.grammar-answer-detail summary>svg:last-child{margin-left:auto;color:var(--muted)}.grammar-resources[open] summary>svg:last-child,.grammar-answer-detail[open] summary>svg:last-child{transform:rotate(90deg)}.grammar-resources ul{display:grid;gap:11px;list-style:none;padding:0 16px 16px;margin:0}.grammar-resources p{margin-top:3px;color:var(--muted);font-size:13px;line-height:1.5}.grammar-back{margin-bottom:14px}.grammar-lesson-title{display:flex;align-items:center;gap:14px}.grammar-lesson-title h1,.grammar-results h1{font-family:var(--heading);font-size:clamp(26px,4vw,37px);line-height:1.25;letter-spacing:-.025em}.grammar-lesson-title p{margin-top:4px;font-size:16px;font-weight:700;color:var(--purple-dark)}.grammar-goal{margin-top:16px;color:var(--muted);line-height:1.6;font-size:14px}.grammar-examples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}.grammar-examples>div{padding:14px;border:1px solid #dce5d6;background:#f2f6ee;border-radius:13px}.grammar-examples h3{margin-bottom:5px;color:var(--purple-dark);font-size:13px}.grammar-examples p{font-weight:700;font-size:clamp(16px,2.3vw,19px);line-height:1.45;overflow-wrap:anywhere}.grammar-examples mark{background:var(--lilac);color:var(--purple-dark);border-radius:4px;padding:0 .13em}.grammar-examples small{display:block;margin-top:5px;font-size:13px}.grammar-lesson-section{margin-top:23px}.grammar-lesson-section h2,.grammar-lesson-footer h2,.grammar-result-list h2{font-size:17px}.grammar-method,.grammar-lesson-footer p{margin-top:6px;font-size:14px;line-height:1.7}.grammar-correction{display:grid;gap:5px;border:1px solid var(--line);border-radius:13px;padding:12px 14px;font-size:14px;line-height:1.6}.grammar-correction h3,.grammar-correction-reason{font-size:13px}.grammar-correction span{margin-right:4px;color:var(--muted);font-size:12px}.grammar-correction s{color:#a23c4e}.grammar-correction strong{color:#206d56}.grammar-lesson-reading a{display:flex;width:fit-content;margin-top:8px;overflow-wrap:anywhere}.grammar-rules ul{margin:8px 0 15px;padding-left:1.25em;font-size:14px;line-height:1.8}.grammar-rules li+li{margin-top:6px}.grammar-reminder{display:flex;gap:8px;align-items:baseline;font-size:13px;line-height:1.6;background:#fff5e5;color:#794819;padding:11px;border-radius:10px}.grammar-reminder svg{align-self:center}.grammar-lesson-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.grammar-scenario{display:grid;gap:10px;margin-top:22px;padding:clamp(14px,3vw,20px);border:1px solid var(--line);border-radius:15px;background:#faf7ff;font-size:14px;line-height:1.65}.grammar-scenario h2{font-size:18px}.grammar-scenario h3{font-size:15px}.grammar-scenario .button{justify-self:start}.grammar-scenario .button[aria-expanded=true] svg{transform:rotate(90deg)}.grammar-scenario-image{display:block;width:min(100%,480px);height:auto;border-radius:11px}.grammar-scenario-draft{display:grid;gap:6px;min-width:0}.grammar-scenario-draft textarea{width:100%;min-height:76px;resize:vertical;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:9px 11px;font:inherit}.grammar-scenario-reference{display:grid;gap:6px;padding-top:10px;border-top:1px solid var(--line);overflow-wrap:anywhere}.grammar-scenario-reference p{color:var(--purple-dark);font-weight:700}.grammar-scenario-reference ul{margin:0;padding-left:1.2em}.grammar-results .grammar-scenario{margin-bottom:16px}.grammar-question h1{display:flex;align-items:center;gap:7px;margin:8px 0 11px;font-size:clamp(23px,4vw,33px);line-height:1.25}.grammar-session h1:focus{outline:none}.grammar-sentence{font-size:clamp(21px,3.8vw,29px);font-weight:750;line-height:1.45;overflow-wrap:anywhere}.grammar-blank{display:inline-block;min-width:2.5em;padding:0 .2em;text-align:center;color:var(--purple-dark);border-bottom:2px solid #a08ba7}.grammar-context{color:var(--muted);font-size:14px;line-height:1.65;margin-top:7px;overflow-wrap:anywhere}.grammar-contrast-context{margin:12px 0;font-size:16px;line-height:1.65}.grammar-exercise .options,.grammar-exercise .spell-label{margin-top:18px}.grammar-order-context{margin:15px 0 12px;font-weight:750;font-size:clamp(17px,3vw,23px);line-height:1.5}.grammar-tokens{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.grammar-token-answer{min-height:65px;background:#f3eee7;border:1px dashed #c9b9cd;border-radius:13px;padding:9px;margin-bottom:11px}.grammar-tokens button{display:inline-flex;gap:4px;align-items:center;min-height:42px;border:1px solid #ddcfdf;background:#fff;color:var(--purple-dark);border-radius:9px;padding:7px 11px;font-weight:750}.grammar-tokens button:hover:not(:disabled){background:var(--lilac)}.grammar-token-bank button:disabled{opacity:.4}.grammar-submit{display:flex;justify-content:flex-end;margin-top:20px}.grammar-right{color:#206d56}.grammar-wrong{color:#a23c4e}.grammar-explanation{font-size:14px;line-height:1.7;background:#f3eee7;padding:11px;border-radius:10px;margin-top:12px}.grammar-discard{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;margin-top:15px}.grammar-discard>.text-link{color:var(--muted);padding:8px 0}.grammar-results h1{margin-top:11px}.grammar-score{margin:10px 0 5px;color:var(--purple-dark);font-weight:750}.grammar-score strong{font-size:35px;letter-spacing:-.04em}.grammar-result-topics{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 18px}.grammar-result-topics a{display:inline-flex;gap:4px;align-items:center;font-size:12px;padding:7px}.grammar-result-topics a:hover{background:var(--lilac)}.grammar-result-list{display:grid;gap:8px;margin-top:19px}.grammar-answer-detail>p{margin-left:16px;margin-right:16px}.grammar-answer-detail>p:last-child{margin-bottom:12px}.grammar-session-empty h1{font-size:23px}.grammar-session-empty>.text-link,.grammar-session-empty>.button{margin-top:14px;margin-right:14px}@media(max-width:650px){.grammar-actions,.grammar-lesson-grid{grid-template-columns:1fr}.grammar-shortcuts{grid-template:auto / repeat(2,minmax(0,1fr));gap:9px}.grammar-shortcut{flex-wrap:wrap;gap:7px;padding:10px}.grammar-shortcut>span:nth-child(2){width:100%}.grammar-shortcut>svg{display:none}.grammar-shortcut .grammar-action-icon{width:34px;height:34px;border-radius:10px}.grammar-shortcut strong{font-size:14px}.grammar-levels{gap:6px;margin-bottom:12px}.grammar-levels a{padding:9px}.grammar-levels small{font-size:11px}.grammar-catalog{margin-top:20px}.grammar-examples{grid-template-columns:1fr}}.grammar-book-nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin-bottom:16px}.grammar-book-nav a{display:grid;place-items:center;padding:9px 4px;background:var(--white);border:1px solid var(--line);border-radius:10px;font-size:13px}.grammar-book-nav a[aria-current=location]{color:var(--purple-dark);background:var(--sage);border-color:#cedbc8}.grammar-book-source{margin-top:5px}.grammar-unit-heading{margin-bottom:9px}.grammar-unit-path{margin-bottom:12px}@media(max-width:650px){.grammar-book-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}}.writing-unit-link{margin-bottom:15px;min-height:32px;line-height:1.45}.writing-page{min-width:0}.writing-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:4px 0 22px}.writing-header h1,.writing-lesson-heading h1{font-family:var(--heading);font-size:clamp(29px,4vw,42px);line-height:1.2;letter-spacing:-.025em}.writing-header p,.writing-lesson-heading p{margin-top:8px;color:var(--muted);font-size:15px;line-height:1.6}.writing-grades{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:18px;border-bottom:1px solid var(--line)}.writing-grades a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:var(--white);white-space:nowrap}.writing-grades a:hover{border-color:#bc9c88}.writing-grades a[aria-current=page]{border-color:#dfbda8;color:#75472f;background:var(--peach);font-weight:750}.writing-section-heading{margin-top:20px}.writing-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;list-style:none;margin:0;padding:0}.writing-model-card{display:flex;flex-direction:column;justify-content:space-between;min-height:135px;height:100%;gap:14px;padding:17px 19px}.writing-model-card:hover{border-color:#bc9c88}.writing-model-title{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.writing-model-title h3{font-size:17px;line-height:1.35}.writing-model-main p{margin-top:5px;color:var(--muted);font-size:14px}.writing-model-main .writing-card-checkin{display:flex;align-items:center;gap:5px;margin-top:8px;color:#20795e;font-size:12px}.writing-model-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.writing-model-meta small{font-size:11px}.writing-model-meta svg{color:var(--purple)}.writing-empty{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:20px}.writing-empty p{color:var(--muted);font-size:14px}.writing-back{margin-bottom:14px}.writing-lesson-nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 18px}.writing-lesson-heading{margin-bottom:22px}.writing-lesson-heading p{font-weight:650}.writing-lesson-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:16px;align-items:start}.writing-passage,.writing-aside-card{min-width:0;padding:clamp(16px,2.2vw,25px)}.writing-card-heading{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.writing-card-heading h2,.writing-aside h2{font-size:17px;line-height:1.4}.writing-card-heading svg{color:var(--purple)}.writing-original{border-radius:8px;padding:3px 7px;font-size:11px;font-weight:750;color:var(--purple-dark);background:var(--lilac)}.writing-translation-toggle{margin-left:auto}.writing-translation-toggle[aria-pressed=true]{background:var(--lilac);border-color:#c9b3ce}.writing-text,.writing-cues,.writing-translation{margin:14px 0 16px}.writing-text{white-space:pre-wrap;overflow-wrap:anywhere}.writing-text,.writing-translation-pair p[lang=en]{font-family:Georgia,serif;font-size:clamp(18px,2.1vw,22px);line-height:1.65}.writing-translation-paragraph+.writing-translation-paragraph{border-top:1px solid var(--line);padding-top:11px;margin-top:11px}.writing-translation-pair+.writing-translation-pair{margin-top:12px}.writing-translation-pair p{white-space:pre-wrap;overflow-wrap:anywhere}.writing-translation-pair p[lang=zh-CN]{margin-top:3px;font-size:14px;color:var(--muted);line-height:1.6}.writing-cues{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#faf0e5;padding:14px 16px;border-radius:12px}.writing-cues p{color:#75472f;font-weight:700;font-size:14px}.writing-cues ol{margin:8px 0 0;padding-left:1.4em;line-height:1.75}.writing-controls,.writing-ratings{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.writing-review-status{margin-top:14px;font-size:13px;color:var(--purple-dark);line-height:1.6}.writing-checkins{margin-top:18px;border-top:1px solid var(--line);padding-top:15px}.writing-checkin-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.writing-checkin-row h3{font-size:15px}.writing-checkin-row p{margin-top:4px;color:var(--muted);font-size:13px;line-height:1.5}.writing-checkin-row p strong{color:#20795e}.writing-checkin-history{margin-top:12px}.writing-checkin-history summary{color:var(--purple-dark);cursor:pointer;font-size:13px;font-weight:750}.writing-checkin-history-status{margin-top:8px;color:var(--muted);font-size:13px}.writing-checkin-dates{list-style:none;margin:8px 0 0;padding:0;max-height:14rem;overflow-y:auto}.writing-checkin-dates li{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:5px 12px;border-top:1px solid var(--line);padding:7px 0;font-size:13px}.writing-checkin-dates li span{color:var(--muted);margin-left:6px}.writing-delete-checkin{display:inline-flex;flex-shrink:0;align-items:center;gap:5px;min-height:38px;padding:6px 9px;color:#963a49;font-size:13px}.writing-delete-checkin:hover:not(:disabled){color:#802437;background:#fff0f3}.writing-delete-notice{margin:0 0 14px;color:#20795e;font-size:13px}.writing-aside{display:grid;gap:16px}.writing-aside ul{list-style:none;margin:10px 0 0;padding:0}.writing-aside li{padding:9px 0;border-top:1px solid var(--line)}.writing-aside li strong,.writing-aside li span{display:block}.writing-aside li strong{font-size:14px;line-height:1.4}.writing-aside li span,.writing-source p{margin-top:4px;font-size:13px;line-height:1.5;color:var(--muted)}.writing-source .text-link{margin:7px 0;overflow-wrap:anywhere}.writing-source small{display:block;line-height:1.5;font-size:12px}.writing-source .writing-translation-credit{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.writing-calendar-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}.writing-calendar-panel{min-width:0;padding:clamp(13px,2.4vw,24px)}.writing-calendar-controls{display:flex;align-items:center;gap:5px;margin-bottom:12px}.writing-calendar-controls h2,.writing-calendar-records h2{font-size:17px}.writing-calendar-controls .button{margin-left:auto}.writing-month-arrow{display:grid;place-items:center;width:38px;height:38px;padding:0}.writing-calendar-week,.writing-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}.writing-calendar-week{margin-bottom:8px;color:var(--muted);font-size:12px}.writing-calendar-days button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:49px;padding:3px 1px;border:1px solid transparent;border-radius:9px;color:var(--ink);background:#f7f3ed;font-size:14px;font-weight:650}.writing-calendar-days button:hover:not(:disabled){background:var(--lilac)}.writing-calendar-days button[aria-current=date]{border-color:#c9b3ce}.writing-calendar-days button[aria-pressed=true]{border-color:var(--purple);background:var(--lilac);color:var(--purple-dark)}.writing-calendar-days button:disabled{opacity:.45}.writing-calendar-days small{color:#20795e;font-size:10px;white-space:nowrap}.writing-calendar-records-heading{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-bottom:8px}.writing-calendar-records ul{list-style:none;margin:0;padding:0}.writing-calendar-records li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-top:1px solid var(--line)}.writing-calendar-records li a{min-width:0;padding:4px 0;overflow-wrap:anywhere}.writing-calendar-records li a:hover{color:var(--purple-dark);text-decoration:underline}.writing-calendar-records li small{display:block;margin-top:2px}@media(max-width:750px){.writing-lesson-grid,.writing-calendar-grid{grid-template-columns:minmax(0,1fr)}.writing-aside{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:530px){.writing-header{flex-wrap:wrap;align-items:flex-start}.writing-list,.writing-aside{grid-template-columns:minmax(0,1fr)}.writing-model-card{min-height:112px}.writing-calendar-week,.writing-calendar-days{gap:4px}.writing-calendar-days button{min-height:45px}}
