:root{--bg:#f7f6f0;--paper:#fffefa;--ink:#213c38;--muted:#6f7c75;--green:#173e39;--lime:#d8ed9c;--mint:#dcebe0;--line:#e1e4da;--peach:#f1d9cb;--lavender:#e5e0ed;--yellow:#f0e7b9;font-family:Inter,'Segoe UI',Arial,sans-serif;font-synthesis:none;color:var(--ink);background:var(--bg);line-height:1.5;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #a87c2f;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:600;line-height:1.18;letter-spacing:-.035em}h1{font-size:clamp(32px,3.2vw,49px);margin-bottom:18px}h2{font-size:25px}h3{font-size:21px}p{line-height:1.65}#app{display:flex;min-height:100vh}.sidebar{width:236px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:34px 23px;background:#f1f1e9;border-right:1px solid var(--line);z-index:20}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;font-weight:700;letter-spacing:-.6px;white-space:nowrap;font-size:19px}.brand img{border-radius:10px}.brand-sub{display:block;font-size:8px;letter-spacing:2.3px;font-weight:500;margin-top:3px}.sidebar nav{display:grid;gap:7px;margin-top:57px}.nav-link{display:flex;gap:13px;align-items:center;padding:13px 14px;text-decoration:none;border-radius:9px;color:#66766c;font-weight:500;font-size:14px}.nav-link:hover{background:#e5e9dc}.nav-link.active{background:var(--green);color:#fff}.nav-icon{font-size:21px;min-width:22px;line-height:1;font-weight:400}.count{margin-left:auto;border-radius:7px;background:#d8ed9c;color:var(--green);padding:1px 6px;font-size:11px}.sidebar-bottom{margin-top:auto;padding:42px 8px 0}.small-book{font-size:9px;letter-spacing:1.5px;color:#809080}.small-book span{display:block;font-size:10px;letter-spacing:0;margin-top:4px}.sidebar-bottom p{font-family:Georgia,serif;font-size:23px;font-style:italic;line-height:1.3;margin:24px 0 0;color:#6d806c}.workspace{margin-left:236px;flex:1;min-width:0}.topbar{height:89px;border-bottom:1px solid var(--line);padding:0 45px;display:flex;align-items:center;justify-content:space-between;gap:20px}.breadcrumb{font-size:13px;font-weight:500}.breadcrumb span{font-weight:400;color:var(--muted);margin-left:10px}.language{display:flex;border:1px solid #d8dfd3;border-radius:8px;padding:3px;gap:3px}.language button{font-size:11px;font-weight:600;letter-spacing:.5px;background:transparent;color:var(--muted);padding:7px 10px;border-radius:5px;min-height:32px}.language button[aria-pressed=true]{background:var(--green);color:white}main{max-width:1260px;margin:auto;padding:35px 45px 50px;min-height:calc(100vh - 170px)}.hero{display:grid;grid-template-columns:1.3fr 1fr;background:var(--mint);border-radius:16px;min-height:330px;overflow:hidden;padding:39px 41px;gap:25px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;display:block;color:#617362;margin-bottom:16px}.hero h1{max-width:480px;margin-bottom:15px;font-family:Georgia,'Times New Roman',serif;font-size:clamp(35px,3.5vw,52px);font-weight:400;letter-spacing:-1.7px;line-height:1.09}.hero p{color:#5f7366;max-width:340px;font-size:14px;margin-bottom:24px}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:19px;min-height:46px;border-radius:7px;padding:13px 22px;font-size:13px;font-weight:600;line-height:1.3;text-decoration:none}.primary{background:var(--green);color:white}.primary:hover{background:#28554b}.secondary{border:1px solid #cdd6ca;background:transparent;color:var(--green)}.secondary:hover{background:#e9eedf}.hero-caption{display:block;font-size:11px;margin-top:14px;color:#627568}.hero-art{position:relative;min-height:250px;display:flex;align-items:center;justify-content:center}.art-orbit{position:absolute;width:245px;height:245px;border-radius:50%;border:1px solid #bccfb9}.art-orbit:after{content:'';position:absolute;inset:23px;border:1px dashed #b9cbb4;border-radius:50%}.book-art{background:var(--green);width:149px;height:181px;border-radius:3px 16px 16px 3px;transform:rotate(-12deg);box-shadow:8px 9px 0 #b9caac;position:relative;padding:22px 24px;color:var(--lime);border-left:6px solid #366052}.book-art>span{font-family:Georgia,serif;font-size:64px;letter-spacing:-7px;line-height:1}.book-art i{font-size:11px;display:block;font-style:normal;line-height:1.4;margin-top:11px;color:#e7eddc;letter-spacing:.3px}.speech{position:absolute;border-radius:13px 13px 13px 0;padding:9px 16px;background:var(--paper);font-family:Georgia,serif;font-size:23px;z-index:2;box-shadow:0 4px 10px #173e390a}.speech-one{top:20px;right:7px;transform:rotate(8deg)}.speech-two{bottom:29px;left:-3px;background:var(--lime);transform:rotate(-7deg)}.spark{position:absolute;font-size:50px;right:4px;bottom:13px;color:#648369}.art-label{position:absolute;bottom:-15px;font-size:9px;letter-spacing:1.1px;color:#70836b}.goal-row{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:27px 1px 25px}.goal-row .eyebrow{margin-bottom:8px}.goal-row h2{font-size:17px;margin:0;letter-spacing:-.3px}.goal-progress{width:160px}.goal-progress>span{font-size:12px;display:block;text-align:right;margin-bottom:8px}.goal-progress b{font-size:20px}.stats{display:grid;grid-template-columns:repeat(4,1fr);padding:26px 0;gap:20px}.stats>div{border-right:1px solid var(--line);padding-left:16px}.stats>div:first-child{padding-left:0}.stats>div:last-child{border:0}.stats strong{display:block;font-size:29px;font-weight:500;letter-spacing:-1px;line-height:1.3}.stats strong small{font-size:14px;letter-spacing:0;color:var(--muted)}.stats span{font-size:12px;color:var(--muted)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:22px 0}.section-heading .eyebrow{margin-bottom:8px}.section-heading h2{font-family:Georgia,serif;font-weight:400;font-size:29px;margin:0}.muted{color:var(--muted);font-size:12px}.unit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.unit-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:21px 21px 16px;transition:transform .16s,box-shadow .16s;display:flex;flex-direction:column}.unit-card:hover{transform:translateY(-3px);box-shadow:0 7px 22px #283e3408}.unit-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:20px}.unit-top .muted{font-size:10px}.unit-number{width:40px;height:40px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;font-size:18px;letter-spacing:-1px}.mint{background:var(--mint)}.peach{background:var(--peach)}.lavender{background:var(--lavender)}.yellow{background:var(--yellow)}.unit-card h3{font-size:18px;letter-spacing:-.4px;margin-bottom:7px}.unit-cs{font-size:12px;color:var(--muted);margin-bottom:17px}.topics{font-size:11px;margin-bottom:13px;line-height:1.6;color:#708173;margin-top:auto}progress{appearance:none;display:block;width:100%;height:4px;border:none;border-radius:20px;background:#e7ecdf;overflow:hidden}progress::-webkit-progress-bar{background:#e7ecdf;border-radius:20px}progress::-webkit-progress-value{background:#7c9b5a;border-radius:20px}progress::-moz-progress-bar{background:#7c9b5a}.card-actions{display:flex;align-items:center;justify-content:space-between;margin-top:13px;gap:5px}.text-button{background:none;padding:6px 0;font-size:12px;font-weight:700;color:var(--green);display:flex;gap:17px}.text-button:hover{text-decoration:underline}.subtle{padding:8px 4px;background:transparent;color:#62766a;font-size:12px;border-radius:4px;min-height:34px}.subtle:hover{color:var(--green);background:#e6eddf}.bottom-note{display:flex;align-items:center;gap:21px;padding:26px 0;margin-top:20px;border-bottom:1px solid var(--line)}.bottom-note>div{flex:1}.bottom-note p{font-size:12px;color:var(--muted);margin:0}.bottom-note .eyebrow{margin-bottom:6px}.tip-mark{font-size:39px;color:#708d61}.bottom-note .secondary{font-size:11px;white-space:nowrap}.about{color:#7a8379;font-size:11px;line-height:1.7;margin:25px 0 0;max-width:800px}footer{border-top:1px solid var(--line);padding:20px 45px;display:flex;justify-content:space-between;color:#879185;font-size:10px;gap:15px}.page-heading{margin:10px 0 34px}.page-heading h1{font-family:Georgia,serif;font-weight:400;letter-spacing:-1.5px;margin:0 0 13px}.page-heading p{color:var(--muted);max-width:650px;font-size:14px}.page-heading .eyebrow{margin-bottom:18px}.practice-top{display:flex;justify-content:space-between;align-items:center;margin:8px 0 22px}.back{font-size:12px;text-decoration:none;color:#647b68}.back:hover{text-decoration:underline}.practice-progress{height:5px;margin-bottom:27px}.exercise{max-width:790px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:32px 38px}.exercise-header{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:42px}.pill{display:inline-block;background:#e9eee2;padding:6px 10px;border-radius:5px;font-size:10px;font-weight:500;color:#597050}.instruction{font-size:13px;color:var(--muted);margin:0 0 15px}.question{font-size:clamp(25px,3vw,35px);line-height:1.45;font-weight:500;letter-spacing:-.8px;margin:0 0 31px}.blank{color:#738c50;border-bottom:2px solid #a5bb82;white-space:nowrap}.choices{display:grid;gap:10px}.choice{display:flex;align-items:center;text-align:left;gap:15px;border:1px solid #dfe4d8;background:transparent;padding:14px 17px;border-radius:8px;font-size:16px;color:var(--ink);min-height:56px}.choice>span{font-size:11px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #dbe1d2;border-radius:6px;color:#87907e}.choice:hover:not(:disabled){border-color:#759165;background:#f3f6ec}.choice.selected{border-color:var(--green);background:#eaf1e2}.choice.correct-option{border-color:#639d65;background:#e5f0df}.choice.wrong-option{border-color:#bc805f;background:#f9eee6}.input-label{font-size:11px;display:block;color:var(--muted);margin-bottom:8px}#answer{width:100%;padding:15px 17px;background:#fcfcf6;border:1px solid #cdd9c6;border-radius:8px;font-size:19px;color:var(--ink)}#answer:disabled{color:var(--ink);opacity:1}.translation-toggle{background:none;color:#789064;font-size:11px;margin:18px 0 8px;padding:7px 0;min-height:35px}.translation{font-size:13px;color:var(--muted);margin:3px 0 18px}.feedback{padding:20px 22px;border-radius:9px;margin:15px 0 22px;background:#eaf2e2}.feedback.retry{background:#faf0e4}.feedback h2{font-size:20px;margin-bottom:10px;letter-spacing:-.4px}.feedback p{margin:6px 0;font-size:14px}.feedback .subtle{padding-left:0}.exercise-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--line);margin-top:20px;padding-top:24px}.keyboard-hint{font-size:10px;color:#8c9588;margin:18px 0 0;text-align:right}.result{max-width:650px;text-align:center;margin:30px auto;padding:40px;background:#eef0e4;border:1px solid #dce2cd;border-radius:15px}.result-star{color:#78965b;font-size:65px;margin-bottom:20px}.result h1{font-family:Georgia,serif;font-weight:400;font-size:39px}.result-score{font-size:80px;letter-spacing:-3px;line-height:1.4}.result-score small{font-size:35px;color:#7f906d}.result>p{font-size:14px;color:var(--muted)}.result-actions{display:flex;justify-content:center;gap:12px;margin:25px 0}.result .back{display:block;margin-top:27px}.empty-state{text-align:center;padding:55px 25px;background:#eef1e5;border-radius:14px;margin:25px 0}.empty-state>span{display:block;font-size:50px;color:#7a985d}.empty-state h2{margin:17px 0;font-size:29px;font-family:Georgia,serif;font-weight:400}.empty-state p{font-size:14px;color:var(--muted);max-width:500px;margin:0 auto 25px}.mistake-list{display:grid;gap:13px;margin-top:25px}.mistake-list article{border:1px solid var(--line);border-radius:10px;padding:22px;background:var(--paper)}.mistake-list h3{margin:15px 0 10px;line-height:1.5}.mistake-list p{font-size:13px;color:var(--muted);margin-bottom:10px}.word-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:25px}select{border:1px solid #d2daca;padding:11px 15px;border-radius:7px;max-width:65%;color:var(--ink);background:var(--paper);font-size:13px;min-height:44px}.flashcard{max-width:720px;margin:0 auto;border:1px solid var(--line);border-radius:18px;background:var(--paper);text-align:center;padding:26px 35px 38px;min-height:360px;box-shadow:0 6px 0 #e8ecde}.flashcard-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:35px}.flashcard-meta .eyebrow{font-size:9px}.flashcard h2{font-family:Georgia,serif;font-size:38px;font-weight:400;margin:22px 0}.flashcard>.muted{margin-bottom:27px}.word-reveal h3{font-size:26px;color:#769053;margin:16px 0 10px}.word-reveal p{font-style:italic;font-size:15px}.word-actions{display:flex;justify-content:center;gap:15px;margin-top:25px}.grammar-unit{border:1px solid var(--line);border-radius:11px;background:var(--paper);margin:0 0 14px;scroll-margin-top:20px}.grammar-unit summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:19px;padding:18px 22px;font-size:16px;font-weight:500}.grammar-unit summary::-webkit-details-marker{display:none}.grammar-unit summary small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:4px}.plus{margin-left:auto;font-size:22px;color:#819574}.grammar-unit[open] .plus{transform:rotate(45deg)}.rules{padding:0 25px 25px}.rule{padding:19px 0 7px;border-top:1px solid var(--line)}.rule h3{font-size:19px;letter-spacing:-.4px;margin-bottom:10px}.rule p{font-size:14px;color:#607265}.rule blockquote{border-left:3px solid #b8cd9b;margin:15px 0 18px;padding:10px 16px;background:#f1f5e9;font-size:14px}.rules>.primary{margin-top:13px}dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:14px;max-width:660px;width:calc(100% - 30px);max-height:85vh;padding:30px}dialog::backdrop{background:#173e3980}.close-dialog{float:right;font-size:22px;padding:4px 12px;min-height:35px}dialog>h2{font-size:23px;margin:10px 45px 25px 0}.week{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:25px;margin:15px 0 25px}.week h2{font-size:20px}.week-bars{display:flex;justify-content:space-around;gap:20px;margin-top:24px}.week-bars>div{flex:1;text-align:center;font-size:12px;color:var(--muted)}.bar-track{height:120px;display:flex;align-items:flex-end;background:#f3f5ed;margin:10px auto;max-width:55px;border-radius:7px;overflow:hidden}.bar{width:100%;background:#a8c684;border-radius:7px 7px 0 0}.progress-units{display:grid;gap:20px;margin:25px 0 35px}.progress-units>div{display:grid;grid-template-columns:1fr auto;gap:10px;font-size:13px}.progress-units progress{grid-column:1/-1}.backup{border-top:1px solid var(--line);padding-top:30px}.backup h2{font-family:Georgia,serif;font-size:30px;font-weight:400}.backup>p{max-width:680px;color:var(--muted);font-size:13px}.backup-buttons{display:flex;gap:12px;flex-wrap:wrap}#notice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#173e39;color:white;z-index:100;max-width:calc(100% - 30px);width:max-content;border-radius:8px;box-shadow:0 4px 20px #0002;font-size:13px}#notice:not(:empty){padding:15px 22px}.warning{background:#f9ead3;padding:15px;border-radius:8px;font-size:13px}.skip{position:fixed;top:-100px;left:20px;padding:12px;background:white;z-index:200}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){main{padding-top:45px}.hero{min-height:365px}.hero-copy{padding-top:10px}.hero-art{max-width:350px}.unit-grid{gap:22px}.unit-card{padding:25px}}
@media(max-width:1150px){.sidebar{width:206px;padding:30px 17px}.brand{font-size:17px}.brand img{width:35px;height:35px}.workspace{margin-left:206px}main{padding:28px}.topbar{padding:0 28px}.unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{padding:30px;grid-template-columns:1.3fr .9fr;gap:20px}.hero-art{transform:scale(.88)}.art-orbit{width:220px;height:220px}.speech-one{right:-10px}.speech-two{left:-10px}.hero h1{font-size:41px}.bottom-note{flex-wrap:wrap}.bottom-note>.secondary{margin-left:60px}footer{padding:20px 28px}}
@media(max-width:760px){.sidebar{position:sticky;top:0;width:100%;height:auto;padding:13px 16px 0;display:block;border-right:0;border-bottom:1px solid var(--line);background:#f3f3ebf5;backdrop-filter:blur(12px)}#app{display:block}.brand{font-size:18px;width:max-content}.brand img{width:32px;height:32px}.brand-sub{font-size:7px;margin-top:1px}.sidebar nav{display:flex;gap:4px;margin-top:13px;overflow-x:auto;padding-bottom:9px;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}.nav-link{white-space:nowrap;font-size:11px;padding:10px 12px;min-height:38px;gap:7px}.nav-icon{font-size:16px;min-width:auto}.sidebar-bottom{display:none}.workspace{margin-left:0}.topbar{height:60px;padding:0 20px}.breadcrumb{font-size:11px}.breadcrumb span{font-size:10px;margin-left:6px}.language button{min-height:29px;padding:5px 9px}main{padding:20px 17px 35px}.hero{padding:26px 25px;grid-template-columns:1fr;min-height:auto;gap:0;position:relative}.hero h1{font-size:39px;max-width:290px;position:relative;z-index:2}.hero p{font-size:13px;max-width:270px}.hero .eyebrow{font-size:8px;letter-spacing:1.35px}.hero-art{display:none}.hero-caption{font-size:10px}.goal-row{padding:24px 0;gap:15px}.goal-row h2{font-size:14px;line-height:1.5;max-width:215px}.goal-row .eyebrow{font-size:8px;letter-spacing:1.3px}.goal-progress{width:90px;flex-shrink:0}.goal-progress b{font-size:18px}.stats{gap:10px;grid-template-columns:repeat(2,1fr);padding:24px 0 10px;row-gap:22px}.stats>div:nth-child(3){padding-left:0}.stats>div:nth-child(2){border:0}.stats>div{padding-left:14px}.stats strong{font-size:27px}.stats span{font-size:11px}.section-heading{align-items:start;margin-top:25px}.section-heading h2{font-size:26px;max-width:230px}.section-heading .eyebrow{font-size:8px}.section-heading>.muted{font-size:10px;max-width:90px;text-align:right;margin-top:19px}.unit-grid{gap:12px}.unit-card{padding:16px 14px 12px}.unit-top{margin-bottom:17px;flex-wrap:wrap;gap:9px}.unit-top .muted{font-size:9px}.unit-number{width:34px;height:34px;font-size:16px}.unit-card h3{font-size:17px;line-height:1.25}.unit-cs{font-size:10px;line-height:1.4;margin-bottom:14px}.topics{font-size:10px;min-height:32px}.card-actions{flex-wrap:wrap;gap:2px;margin-top:10px}.text-button{font-size:11px;gap:12px}.card-actions .subtle{font-size:10px;min-height:30px;padding:6px 0}.bottom-note{gap:15px;margin-top:8px}.bottom-note .eyebrow{font-size:9px}.bottom-note p{font-size:11px}.bottom-note .secondary{margin-left:48px}.tip-mark{font-size:31px}.about{font-size:10px}.page-heading{margin-top:12px;margin-bottom:26px}.page-heading h1{font-size:35px}.page-heading p{font-size:13px}.page-heading .eyebrow{font-size:9px}footer{padding:18px;flex-wrap:wrap;font-size:9px}.practice-top{margin:2px 0 19px}.exercise{padding:23px 20px;border-radius:12px}.exercise-header{align-items:start;flex-direction:column;margin-bottom:24px;gap:8px}.exercise-header .subtle{font-size:10px;padding:4px 0}.question{font-size:27px;margin-bottom:26px}.instruction{font-size:12px}.choice{font-size:15px;padding:13px;gap:12px}.exercise-bottom{align-items:stretch;flex-direction:column;gap:8px}.keyboard-hint{display:none}.feedback{padding:17px}.feedback h2{font-size:18px}.feedback p{font-size:13px}.result{padding:30px 20px;margin:10px 0}.result h1{font-size:33px}.result-actions{flex-direction:column}.word-toolbar{align-items:flex-start;flex-direction:column}select{max-width:100%;width:100%;font-size:12px}.flashcard{padding:22px 19px 30px;min-height:340px}.flashcard-meta .eyebrow{font-size:8px;letter-spacing:1px}.flashcard-meta{margin-bottom:25px}.flashcard h2{font-size:32px}.word-reveal h3{font-size:24px}.word-actions{gap:10px}.word-actions button{font-size:11px;padding:13px 14px}.grammar-unit summary{padding:16px;gap:12px;font-size:14px}.grammar-unit summary small{font-size:10px}.rules{padding:0 18px 20px}.rule h3{font-size:17px}.rule p,.rule blockquote{font-size:13px}.week{padding:20px 17px}.week-bars{gap:10px}.progress-units>div{font-size:12px}.backup h2{font-size:27px}.empty-state{padding:35px 20px}.empty-state h2{font-size:27px}#notice{bottom:15px;font-size:12px}main:focus{outline:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
