:root{--bg:#f7f7f2;--paper:#fff;--ink:#263e38;--muted:#63716a;--green:#244e45;--lime:#d8e7ae;--line:#e0e4dc;--orange:#d16d46;--radius:18px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px;border:1px solid var(--green);border-radius:9px;background:var(--green);color:white;padding:11px 20px;font-weight:600;cursor:pointer;text-decoration:none}button:hover,.button:hover{filter:brightness(.94);text-decoration:none}.secondary{background:white;color:var(--green);border-color:var(--line)}:focus-visible{outline:3px solid #b35027;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1{font:500 clamp(30px,3.6vw,45px)/1.18 Georgia,serif;letter-spacing:-1.2px;margin-bottom:14px}h2{font-size:22px;line-height:1.3;font-weight:600;letter-spacing:-.4px}h3{font-size:16px}p{margin-bottom:18px}.sidebar{position:fixed;inset:0 auto 0 0;width:255px;background:#fff;border-right:1px solid var(--line);padding:36px 22px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700;letter-spacing:-.6px}.brand-icon{display:grid;place-items:center;width:41px;height:44px;background:var(--green);color:var(--lime);border-radius:12px;font:bold 32px Georgia}.brand small{display:block;font-size:9px;color:var(--muted);font-weight:400;letter-spacing:0}.nav-label,.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:var(--muted)}.nav-label{margin:45px 12px 15px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:11px 14px;border-radius:9px;color:#5b6760;font-size:13px;font-weight:500;display:flex;gap:14px;align-items:center}.sidebar nav a span{width:18px;font-size:20px}.sidebar nav a[aria-current=page]{background:#edf2e8;color:var(--green);font-weight:700}.sidebar-bottom{margin-top:auto;padding-top:22px;font-size:12px}.small-note{border:1px solid var(--line);border-radius:12px;padding:18px;font-size:9px;letter-spacing:1.5px;margin-bottom:22px}.small-note p{font:italic 17px/1.5 Georgia;letter-spacing:0;margin:9px 0 0}.profile{display:flex;align-items:center;gap:11px;border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.profile small{display:block;color:var(--muted);font-size:10px}.avatar{display:grid;place-items:center;background:#eee9df;border-radius:50%;width:34px;height:34px}.workspace{margin-left:255px}.topbar{height:83px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 46px;font-size:10px;letter-spacing:1.4px}.topbar span:last-child{font-size:13px;letter-spacing:0}main{max-width:1320px;margin:auto;padding:38px 46px 50px}footer{padding:0 46px 24px;font-size:11px;color:var(--muted)}.lede{font-size:15px;color:var(--muted);max-width:650px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:27px}.date-chip{font-size:12px;border:1px solid var(--line);padding:8px 14px;border-radius:30px;white-space:nowrap}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:28px;margin-bottom:22px}.two-col{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.back{display:inline-block;margin-bottom:20px;font-size:13px}.tag{display:inline-block;border:1px solid var(--line);border-radius:6px;font-size:11px;padding:4px 9px;margin:3px 4px 3px 0}.dialogue{font-size:23px;line-height:1.9;white-space:normal}.translation,.muted{color:var(--muted);font-size:13px}.eyebrow{margin-bottom:13px}.lesson-progress{display:flex;align-items:center;gap:22px;margin:25px 0;font-size:13px}progress{appearance:none;display:block;width:100%;height:7px;border:0;border-radius:20px;background:#e8ece3;overflow:hidden}progress::-webkit-progress-bar{background:#e8ece3}progress::-webkit-progress-value{background:#628363;border-radius:20px}progress::-moz-progress-bar{background:#628363}.exercise{max-width:800px;margin:20px auto}.exercise h2{font-size:25px}.exercise form>button{margin-top:20px}.exercise fieldset{border:0;padding:0}.choice{display:flex;gap:12px;padding:15px;border:1px solid var(--line);border-radius:10px;margin-top:12px;cursor:pointer}label{display:block;margin-bottom:7px;font-weight:500}textarea,input:not([type=radio]):not([type=checkbox]):not([type=hidden]),select{border:1px solid #b8c1b8;border-radius:8px;background:white;padding:11px 13px;width:100%;color:var(--ink)}input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--green)}textarea{resize:vertical;font-size:21px}.keyboard{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.letter{background:#f6f7f2;color:var(--ink);border:1px solid var(--line);padding:4px 12px;min-width:43px;font-size:20px}.feedback{padding:22px;border-radius:12px;background:#edf3e7;margin:20px 0}.needs-work{background:#fcf2e7}.morphemes{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:25px 0}.morpheme{padding:8px 16px;background:#f5e8d1;border-radius:8px;font-size:24px}.morpheme.stem{background:#dce9d5}.audio-block{background:#f5f6f0;border-radius:12px;padding:18px;margin:20px 0}.audio-block button{margin:4px}.audio-block audio{max-width:100%}details{margin-top:15px}summary{cursor:pointer;min-height:36px}hr{border:0;border-top:1px solid var(--line);margin:23px 0}.notice{padding:14px;background:#fcf2e7;border-radius:9px}.completion{text-align:center;max-width:850px;margin:30px auto}.round-icon{display:inline-grid;place-items:center;width:55px;height:55px;border-radius:50%;background:var(--lime);font-size:26px;margin-bottom:18px}.skip{position:fixed;top:-100px;left:20px;z-index:999;background:white;padding:12px}.skip:focus{top:10px}.narrow{max-width:650px}.large-text{font-size:18px}#connection{padding:12px 46px;background:#fff0d7;color:#513b24}#connection[hidden]{display:none}
@media(max-width:1100px){.sidebar{width:215px;padding:26px 16px}.brand{font-size:17px}.workspace{margin-left:215px}main{padding:30px 26px}.topbar{padding:0 26px}.two-col{grid-template-columns:1fr}.small-note{display:none}}
@media(max-width:700px){.sidebar{position:static;width:auto;padding:17px 18px 0;border-right:0}.brand{font-size:20px}.brand small{font-size:10px}.nav-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;overflow:auto;gap:3px;padding:16px 0 12px}.sidebar nav a{white-space:nowrap;padding:8px 12px;font-size:12px}.sidebar nav a span{display:none}.workspace{margin-left:0}.topbar{height:49px;padding:0 20px}main{padding:25px 18px}.page-heading{display:block}.date-chip{display:none}.card{padding:21px}.dialogue{font-size:21px}.lesson-progress{display:block}.lesson-progress progress{margin-top:10px}.two-col{gap:0}footer{padding:0 18px 20px}.exercise h2{font-size:23px}}

.dashboard-grid{display:grid;grid-template-columns:2.15fr 1fr;gap:22px}.hero{background:var(--green);color:#f7faec;border-radius:var(--radius);display:flex;overflow:hidden;min-height:300px;margin-bottom:22px;padding:29px 31px;position:relative}.hero-copy{width:64%;position:relative;z-index:1}.hero .eyebrow{color:#d6dfc8;font-size:9px;margin-top:22px}.hero h2{font:normal 34px/1.1 Georgia;letter-spacing:-.8px;margin-bottom:15px}.hero p:not(.eyebrow){font-size:13px;max-width:310px;color:#e3e9db}.pill{border:1px solid #829c83;border-radius:30px;font-size:8px;letter-spacing:1.4px;padding:6px 9px}.hero-meta{font-size:11px;color:#d6dfc8;margin:16px 0}.light{background:var(--lime);border-color:var(--lime);color:#244138;min-height:42px;font-size:12px}.tea-art{position:absolute;right:0;top:0;bottom:0;width:42%;display:flex;align-items:center;justify-content:center;flex-direction:column}.tea-art svg{width:235px;max-width:100%;position:relative;z-index:1}.art-label{font:italic 19px Georgia;transform:rotate(-9deg);position:absolute;top:45px;right:26px;color:#dce5c9}.art-caption{font-size:9px;letter-spacing:.5px;color:#dce5c9;margin-top:-10px}.orbit{position:absolute;border:1px solid #436558;border-radius:50%;width:300px;height:300px}.orbit.two{width:355px;height:355px}.goal-card{text-align:center;padding:22px}.section-line{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.section-line h2,.section-line h3{margin:0}.section-line h2{font-size:19px}.goal-ring{width:146px;height:146px;margin:17px auto;border-radius:50%;background:conic-gradient(var(--green) var(--goal),#edf0e7 0);display:grid;place-items:center}.goal-ring>div{width:125px;height:125px;border-radius:50%;background:white;display:flex;flex-direction:column;justify-content:center}.goal-ring strong{font:40px Georgia}.goal-ring span{font-size:10px;color:var(--muted)}.goal-card p{font-size:11px;max-width:180px;margin:0 auto 10px}.goal-card a{font-size:10px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0 0 33px}.stat{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:12px;padding:19px;background:white}.stat strong{display:block;font-size:24px;line-height:1.3;font-weight:500}.stat strong small{font-size:12px}.stat span:not(.stat-icon){display:block;color:var(--muted);font-size:10px;margin-top:5px}.stat b{margin-left:auto}.stat-icon,.quick-icon{width:41px;height:41px;border-radius:12px;display:grid;place-items:center;background:#edf2e6;font-size:23px;flex-shrink:0}.peach{background:#faeee5;color:#a35231}.sand{background:#f6f0dd}.lower-grid{display:grid;grid-template-columns:2.15fr 1fr;gap:22px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick{padding:18px;display:block}.quick h3{font-size:13px;margin:16px 0 9px}.quick p{font-size:11px;color:var(--muted);line-height:1.7;min-height:57px;margin-bottom:15px}.quick>span:last-child{font-size:10px;font-weight:600}.word-card{background:#f0f1e7}.word-card h2{font:40px Georgia;margin:18px 0 3px}.word-card>p{font-size:12px}.word-card .morphemes{margin:24px 0 8px}.word-card .morpheme{font-size:24px;padding:6px 15px}.word-labels{display:flex;gap:32px;font-size:8px;letter-spacing:1px}.word-labels b{font-size:10px;letter-spacing:0;font-weight:400}.word-example{font:24px Georgia}.word-card .word-example{font-size:21px}.word-card a{font-size:11px;font-weight:600}.skill-row{display:grid;grid-template-columns:80px 1fr 125px;align-items:center;gap:20px;padding:12px 0;font-size:12px}.skill-row small{text-align:right;color:var(--muted);font-size:10px}.skills-card .muted{margin:15px 0 0;font-size:10px}.lesson-row{display:flex;gap:20px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}.lesson-row:last-child{border:0}.lesson-row>div{flex:1}.lesson-row h3,.lesson-row p{margin:0 0 5px}.lesson-row p{font-size:13px;color:var(--muted)}.lesson-row small{display:block;font-size:11px;color:var(--muted)}.lesson-number{font:24px Georgia;display:grid;place-items:center;border-radius:50%;width:48px;height:48px;background:#edf2e6;flex-shrink:0}.level-section{margin:35px 0}.search-form{margin:25px 0}.search-line{display:flex;gap:12px}.explorer-grid{display:grid;grid-template-columns:260px 1fr;gap:22px}.word-list{max-height:800px;overflow:auto;padding:12px}.word-list a{display:block;padding:12px;border-radius:9px}.word-list a[aria-current]{background:#edf2e6}.word-list span{display:block;font-size:12px;color:var(--muted)}.big-word{font:40px Georgia}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}.check-label{display:flex;align-items:center;gap:9px}.generated-word{font:36px Georgia;margin-top:25px}.morpheme small{display:block;font:10px/1.4 sans-serif;max-width:200px}.explanation{padding-left:20px;font-size:13px}.explanation li{margin:10px 0}.grammar-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.formula{background:#edf2e6;padding:16px;border-radius:8px;margin:18px 0;font-size:18px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}td,th{padding:12px;border-bottom:1px solid var(--line)}.errorlist{color:#9b351b}.settings-row{margin:20px 0}
@media(min-width:1450px){.hero{min-height:320px}.hero h2{font-size:40px}.hero p:not(.eyebrow){font-size:15px}.hero-copy{width:62%}.tea-art svg{width:270px}.goal-card p{font-size:12px}}
@media(max-width:1100px){.dashboard-grid,.lower-grid{grid-template-columns:1fr}.goal-card{display:block}.lower-grid>aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.stat-grid{gap:10px}.stat{padding:14px;gap:10px}.stat-icon{display:none}.explorer-grid{grid-template-columns:200px 1fr}}
@media(max-width:700px){.hero{padding:25px;min-height:295px}.hero h2{font-size:30px}.hero-copy{width:70%}.tea-art{right:-50px;width:48%;opacity:.6}.art-caption,.art-label{display:none}.hero-meta{font-size:10px}.stat-grid{grid-template-columns:1fr 1fr;gap:9px;margin-bottom:27px}.stat:last-child{grid-column:1 / -1}.stat strong{font-size:23px}.stat-icon{display:grid}.quick-grid{grid-template-columns:1fr}.quick{display:grid;grid-template-columns:45px 1fr;gap:0 13px;margin-bottom:10px}.quick-icon{grid-row:1 / 4}.quick h3{margin:0 0 4px}.quick p{min-height:0;margin-bottom:8px}.quick>span:last-child{grid-column:2}.lower-grid>aside{display:block}.section-line .muted{font-size:10px}.skill-row{grid-template-columns:66px 1fr 105px;gap:10px}.lesson-row{gap:10px;flex-wrap:wrap}.lesson-row .button{margin-left:58px;min-height:40px;font-size:12px}.explorer-grid,.grammar-grid{grid-template-columns:1fr}.word-list{max-height:215px}.form-grid{grid-template-columns:1fr}.search-line button{padding:9px 14px}.section-line h2{font-size:18px}}

.record-controls{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}button:disabled{opacity:.55;cursor:not-allowed}#spoken-target{font:32px Georgia;margin-top:25px}#recording{max-width:100%;margin:20px 0}

.sidebar{overflow-y:auto}.goal-card{min-width:0}@media(max-width:1100px){.goal-card .goal-ring{width:116px;height:116px;float:left;margin:0 20px 0 0}.goal-card .goal-ring>div{width:98px;height:98px}.goal-card{min-height:180px}.goal-card p{margin:25px auto 10px}.goal-card .section-line{margin-bottom:14px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.password-field{display:inline-block;position:relative;max-width:100%}.password-field input{padding-right:54px}.password-toggle{position:absolute;right:3px;top:3px;width:44px!important;min-height:44px!important;height:44px;margin:0!important;padding:10px!important;border:0;background:transparent;color:#48655c;border-radius:10px;display:grid;place-items:center}.password-toggle:hover{background:#eef3ef}.password-toggle:focus-visible{outline:3px solid #c98758;outline-offset:1px}.password-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.password-toggle .eye-closed{display:none}.password-toggle[aria-pressed="true"] .eye-open{display:none}.password-toggle[aria-pressed="true"] .eye-closed{display:block}

/* Give desktop navigation the shape and feedback of a real control. */
@media(min-width:761px){
 .sidebar nav{gap:8px}
 .sidebar nav a{min-height:48px;padding:6px 9px;border:1px solid #e0e6dd;border-radius:13px;background:#fbfcf8;color:#4f625b;font-weight:600;gap:10px;box-shadow:0 1px 1px rgba(36,78,69,.03);text-decoration:none;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
 .sidebar nav a span{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:9px;background:#edf1e9;color:#46645a;font-size:17px;line-height:1}
 .sidebar nav a:hover{background:#fff;border-color:#cbd7cd;box-shadow:0 6px 16px rgba(36,78,69,.09);transform:translateY(-1px);text-decoration:none}
 .sidebar nav a:active{box-shadow:0 2px 6px rgba(36,78,69,.08);transform:translateY(0)}
 .sidebar nav a[aria-current=page]{background:var(--green);border-color:var(--green);color:#fff;font-weight:700;box-shadow:0 7px 18px rgba(36,78,69,.18)}
 .sidebar nav a[aria-current=page] span{background:rgba(255,255,255,.14);color:var(--lime)}
 .sidebar nav a:focus-visible{outline:3px solid #b35027;outline-offset:2px}
 .sidebar-bottom>a{display:flex;align-items:center;min-height:42px;margin:7px 0;padding:8px 11px;border:1px solid #e1e6de;border-radius:11px;background:#fafbf7;color:#53665f;font-weight:600;text-decoration:none}
 .sidebar-bottom>a:hover{background:#f0f4eb;border-color:#ccd7cd;text-decoration:none}
}
.brand-icon img{display:block;width:100%;height:100%;padding:6px;transition:transform .16s ease}.brand:hover .brand-icon img{transform:scale(1.04)}
