:root{--bg:#f6f8f3;--surface:#fff;--ink:#183c34;--muted:#697c71;--line:#e0e7db;--green:#146650;--soft:#edf4e6;--lime:#d9f588;--red:#a04231;--amber:#8d621b;--shadow:0 12px 35px #284f3110}*{box-sizing:border-box}body{margin:0;font-family:Tahoma,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.8}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button{border:0}a{color:var(--green)}button:disabled{cursor:default;opacity:.6}:focus-visible{outline:3px solid #ac8324;outline-offset:4px}.skip{position:fixed;top:-80px;right:15px;background:var(--lime);z-index:100;padding:12px}.skip:focus{top:5px}aside{position:fixed;right:0;top:0;height:100dvh;width:244px;background:var(--surface);border-left:1px solid var(--line);padding:30px 22px;z-index:30;overflow:auto}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;font-size:34px;font-weight:800;color:var(--ink);line-height:1.2}.brandmark{display:grid;place-items:center;width:50px;height:50px;background:var(--green);color:var(--lime);border-radius:14px}.brand small{font-size:9px;display:block;letter-spacing:2px;margin-top:8px;color:var(--muted)}.brandnote{font-size:11px;color:var(--muted);margin:19px 0 28px}nav a{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--muted);border-radius:11px;padding:11px 13px;margin:4px 0;font-size:13px;transition:.15s}nav a:hover{background:var(--bg)}nav a.active{background:var(--soft);color:var(--green);font-weight:700}nav .navicon{font-size:18px;width:23px}.sidebox{margin-top:25px;padding:18px 15px;background:var(--bg);border-radius:13px;font-size:11px}.sidebox span{font-size:25px;display:block}.sidebox p{margin:5px 0}.shell{margin-right:244px;padding:0 40px;max-width:1700px}header{min-height:96px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:13px}.version{display:block;font-size:10px;color:var(--muted);margin-top:4px}.headerchips{display:flex;gap:12px;align-items:center}.chip{background:var(--surface);border:1px solid var(--line);padding:7px 13px;border-radius:30px;font-size:12px;white-space:nowrap}.avatar{border-radius:50%;background:#e6edda;color:var(--ink);width:38px;height:38px;font-weight:700}.menu-btn.secondary{display:none}.overlay{display:none}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:32px 0 24px}h1,h2,h3,p{margin-top:0}h1{font-size:29px;line-height:1.6;margin-bottom:7px;letter-spacing:-.5px}h2{font-size:22px;line-height:1.6;margin-bottom:16px}h3{font-size:17px;line-height:1.6;margin-bottom:10px}p{color:var(--muted);margin-bottom:12px}small,.tiny{font-size:11px}.tiny{color:var(--muted)}.muted{color:var(--muted)}.en{direction:ltr;text-align:left;font-family:"Segoe UI",Arial,sans-serif;letter-spacing:.1px}.hero{background:var(--green);border-radius:25px;color:white;display:grid;grid-template-columns:1.2fr 1fr;min-height:300px;padding:34px 38px;align-items:center;gap:20px;position:relative;overflow:hidden}.hero h2{font-size:34px;line-height:1.5;margin:14px 0}.hero p{color:#d7e6d7;font-size:13px;max-width:510px}.eyebrow{font-size:10px;letter-spacing:1px;font-weight:700;color:#b5d5a2}.hero-art{height:230px;position:relative;display:grid;place-items:center;direction:ltr}.orb{width:195px;height:195px;border:1px solid #70a381;background:#287b61;display:grid;place-items:center;border-radius:50%;font-size:95px;font-family:Arial;font-weight:bold;color:var(--lime);transform:rotate(-10deg)}.float{position:absolute;background:white;color:var(--ink);border-radius:14px;padding:14px 20px;box-shadow:0 10px 30px #004b3733;font-family:Arial}.float.top{right:0;top:5px;transform:rotate(7deg)}.float.bottom{bottom:4px;left:0;transform:rotate(-6deg);font-size:14px}.float small{color:var(--muted);display:block;margin-top:5px}.primary,.secondary,.ghost,.danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border-radius:10px;padding:11px 20px;font-weight:700;font-size:13px}.primary{background:var(--lime);color:var(--ink);border:1px solid #c1e56e}.primary.green{background:var(--green);color:white;border-color:var(--green)}.secondary{background:var(--soft);color:var(--green);border:1px solid #d4e0ca}.ghost{background:transparent;color:var(--green);border:1px solid var(--line)}.danger{color:var(--red);background:#f9eee9}.hero .primary{margin-top:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:23px 0 30px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:19px;display:flex;align-items:center;gap:13px}.stat .symbol{font-size:24px;background:var(--soft);padding:10px;border-radius:11px}.stat strong{display:block;font:700 24px "Segoe UI",Arial}.stat small{color:var(--muted)}.sectionhead{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:30px 0 17px}.sectionhead h2{margin:0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:24px}.card h3{margin-top:12px}.card p{font-size:13px}.card .row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:22px}.level{font-size:12px;font-weight:700;display:inline-block;border-radius:8px;padding:5px 10px;background:var(--soft);color:var(--green);direction:ltr}.cardicon{float:left;font-size:29px}.bar{height:6px;background:#e9efE2;border-radius:10px;overflow:hidden}.bar span{display:block;height:100%;background:var(--green);transition:width .3s}.card .bar{margin-top:15px}.notice{background:#ebf1e2;border:1px solid #dce6d1;padding:18px 22px;border-radius:14px;font-size:13px;margin:22px 0}.notice p{margin:4px 0}.notice.warning{background:#fff7e8;border-color:#e8d9b5}.daily{display:grid;grid-template-columns:1fr auto;gap:15px;align-items:center;background:var(--surface);padding:22px;border:1px solid var(--line);border-radius:16px;margin-top:22px}.daily .bar{margin-top:10px;max-width:500px}.daily p{font-size:12px;margin:3px 0}.linklist{display:grid;gap:11px}.lessonrow{background:var(--surface);border:1px solid var(--line);padding:18px 21px;border-radius:13px;display:flex;align-items:center;gap:18px}.lessonrow .body{flex:1}.lessonrow h3{margin:0 0 3px;font-size:15px}.lessonrow p{font-size:11px;margin:0}.lessonrow .number{width:40px;height:40px;border-radius:12px;background:var(--soft);display:grid;place-items:center;font-family:Arial;font-weight:bold}.back{background:none;color:var(--green);padding:0;margin-top:25px;font-size:12px}.study{max-width:930px;margin:auto}.study .card{margin-bottom:18px}.study .pagehead{align-items:flex-start}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:22px;overflow:auto}.tabs button{white-space:nowrap;background:transparent;border:1px solid var(--line);padding:10px 16px;border-radius:9px;color:var(--muted);font-size:12px}.tabs button.active{background:var(--green);color:white;border-color:var(--green)}.bodytext{font-size:15px!important;color:var(--ink);line-height:2.2}.example{font-size:22px!important;line-height:1.9;color:var(--ink);padding:17px;background:var(--bg);border-radius:11px}.voicebar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:16px 0}.voicebar select{max-width:180px}.controls{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:15px 0}.wordgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.word{background:var(--bg);border:1px solid var(--line);border-radius:13px;text-align:center;padding:20px 12px}.word .emoji{font-size:40px;display:block;line-height:1.5}.word strong{font-size:19px;display:block;line-height:1.8}.word span{font-size:12px}.word button{padding:5px 9px;background:none;color:var(--green);border-radius:6px;font-size:12px}.word svg{height:70px;width:85px;display:block;margin:auto}details summary{cursor:pointer;color:var(--green);font-size:13px;line-height:1.9}details p{margin-top:12px}.options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:17px 0}.options button{background:var(--surface);border:1px solid #cad8c2;color:var(--ink);text-align:start;padding:15px 18px;border-radius:11px;line-height:1.7;min-height:54px}.options button:hover{background:var(--soft)}.options button.correct{background:#edf7e8;border-color:#528246}.options button.wrong{background:#fcf0eb;border-color:#b56c55}.feedback{border-radius:10px;padding:12px 16px;margin:12px 0;font-size:13px;background:var(--soft);color:#335e37}.feedback.error{background:#fcf0e9;color:#853d2d}.feedback:empty{display:none}input:not([type=checkbox]):not([type=file]),select,textarea{border:1px solid #cdd9c6;border-radius:9px;background:var(--surface);color:var(--ink);padding:11px 13px;font-size:14px;max-width:100%}textarea{display:block;width:100%;min-height:135px;line-height:1.9;margin-top:12px;resize:vertical}label{font-size:13px}input[type=checkbox]{accent-color:var(--green);width:17px;height:17px;vertical-align:middle;margin-left:6px}.inputrow{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.inputrow input{flex:1;min-width:150px}.tokenarea{min-height:60px;border:1px dashed #b5c7a9;border-radius:11px;padding:12px;display:flex;gap:8px;flex-wrap:wrap;margin:14px 0;align-items:center}.tokenarea button{padding:9px 13px;border:1px solid #ccd9c3;border-radius:8px;background:var(--soft);color:var(--ink)}.exercise{padding-top:18px;margin-top:25px;border-top:1px solid var(--line)}.exercise h3{margin-top:0}.stepbadge{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.flashcard{text-align:center;max-width:750px;margin:25px auto;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:35px 25px;box-shadow:var(--shadow)}.flashcard h2{font:700 42px Arial;margin:35px 0 20px}.grades{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:25px}.grades button{padding:15px 7px;border:1px solid #c9d8bc;border-radius:10px;background:var(--soft);color:var(--ink);font-size:12px}.grades small{display:block;color:var(--muted)}.search{width:100%;margin-bottom:16px}.filterbar{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0 22px}.filterbar button{padding:8px 15px;border-radius:30px;background:var(--surface);border:1px solid var(--line);color:var(--muted);font-size:12px}.filterbar button.active{background:var(--green);color:white;border-color:var(--green)}.dialogue{display:flex;flex-direction:column;gap:12px}.bubble{padding:16px 20px;background:var(--bg);border:1px solid var(--line);border-radius:16px;max-width:88%;align-self:flex-start;direction:ltr;text-align:left;display:flex;gap:12px;align-items:center}.bubble.other{align-self:flex-end;background:var(--soft)}.bubble button{background:none;color:var(--green);font-size:18px;flex-shrink:0}.bubble strong{font-size:11px;display:block;color:var(--muted)}.soundpair{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}.soundword{background:var(--bg);border-radius:13px;padding:22px;text-align:center}.soundword h2{font-size:31px;margin-bottom:3px}.soundword code{font-size:15px;color:var(--muted)}.scorecircle{width:125px;height:125px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font:700 33px Arial;margin:20px auto;color:var(--green)}.calendar{display:grid;grid-template-columns:repeat(14,1fr);gap:5px;direction:ltr;margin:18px 0}.day{border-radius:4px;aspect-ratio:1;background:#edf0e7}.day.active{background:#428963}.day.much{background:var(--green)}.rubric{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:15px 0}.rubric label{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--bg);border-radius:10px;font-size:12px}.rubric select{padding:5px 8px}.hidden{display:none!important}.pillnum{display:inline-block;background:var(--soft);border-radius:30px;padding:4px 11px;font-size:11px;color:var(--green)}.track{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.track:last-child{border:0}.track strong{font-size:14px}.track .bar{width:130px}.empty{text-align:center;padding:40px 20px}.empty span{font-size:45px;display:block}.nowrap{white-space:nowrap}footer{padding:30px 0;font-size:10px;color:var(--muted);text-align:center;margin-top:25px;border-top:1px solid var(--line)}footer span{display:block;margin-top:6px}#toast{position:fixed;left:24px;bottom:24px;background:var(--ink);color:white;padding:14px 24px;box-shadow:var(--shadow);border-radius:12px;z-index:50;font-size:13px;max-width:90vw;display:none}#toast.show{display:block}.recording{background:#f9e8e0!important;color:var(--red)!important}.settings-list{display:grid;gap:20px}.settingrow{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.settingrow p{font-size:12px;margin:4px 0}.alphabet{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;direction:ltr}.alphabet button{background:var(--soft);color:var(--ink);padding:13px 4px;border-radius:9px;font-size:20px;font-weight:700}.achievement{display:flex;gap:15px;align-items:center;padding:15px;background:var(--bg);border-radius:12px;margin:10px 0}.achievement span{font-size:28px}audio{width:100%;margin-top:15px}svg{max-width:100%}html.large{font-size:18px}html.large .bodytext{font-size:18px!important}html.large .card p{font-size:15px}html.dark{--bg:#14251e;--surface:#1d3128;--ink:#edf5e8;--muted:#b1c5b2;--line:#344c3b;--soft:#2b4633;--green:#9acf9b;--lime:#d9f588;--shadow:0 12px 35px #0002}html.dark .hero{background:#164f3b}html.dark .primary{color:#183c34}html.dark .primary.green{background:#9acf9b;color:#14251e}html.dark .notice{background:#293f2a;border-color:#40573b}html.dark .feedback{background:#29472d;color:#cfe5c3}html.dark .notice.warning{background:#433b25;border-color:#635637}html.dark .bar{background:#304833}html.dark .options button.correct{background:#2c5034}html.dark .options button.wrong{background:#5c332c}html.dark .brandmark{background:#9acf9b;color:#173323}html.dark .feedback.error{background:#5c332c;color:#ffcebb}html.dark .avatar{background:#334b35;color:white}
@media(min-width:1650px){.shell{margin-left:auto}}@media(max-width:1100px){aside{width:205px;padding:25px 17px}.shell{margin-right:205px;padding:0 24px}.stats{grid-template-columns:repeat(2,1fr)}.hero{padding:27px}.hero h2{font-size:28px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brand{font-size:29px}}@media(max-width:760px){aside{transform:translateX(100%);width:260px;transition:transform .2s}.shell{margin:0;padding:0 17px}body.menu-open aside{transform:translateX(0)}body.menu-open .overlay{display:block;position:fixed;inset:0;background:#102a2055;z-index:29;width:100%;height:100%;padding:0;border:0}.menu-btn.secondary{display:inline-flex;padding:5px 11px;font-size:20px}header{min-height:78px;font-size:11px;gap:10px}.headerchips{gap:6px}.chip{font-size:10px;padding:5px 9px}.avatar{width:32px;height:32px}.version{font-size:8px}.pagehead{margin:25px 0 20px;align-items:flex-start}.pagehead h1{font-size:24px}.pagehead p{font-size:12px}.hero{grid-template-columns:1fr;padding:26px;min-height:260px}.hero-art{display:none}.hero h2{font-size:29px}.stats{gap:10px;margin-top:17px}.stat{padding:15px 12px;gap:9px}.stat .symbol{font-size:18px;padding:8px}.stat strong{font-size:21px}.grid,.grid.two{grid-template-columns:1fr}.card{padding:21px}.wordgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.word{padding:16px 9px}.lessonrow{padding:15px 12px;gap:10px}.lessonrow .secondary{padding:8px 12px;font-size:11px}.lessonrow .number{width:32px;height:32px;font-size:12px;flex-shrink:0}.lessonrow h3{font-size:13px}.lessonrow p{font-size:10px}.sectionhead h2{font-size:19px}.sectionhead .ghost{padding:8px 10px;font-size:10px}.daily{grid-template-columns:1fr}.daily .controls{margin:0}.options{grid-template-columns:1fr}.grades{grid-template-columns:1fr 1fr}.flashcard h2{font-size:35px}.bubble{max-width:96%;padding:13px}.rubric{grid-template-columns:1fr}.tabs button{padding:9px 13px}.example{font-size:19px!important}.settingrow{align-items:flex-start;flex-wrap:wrap}.alphabet{grid-template-columns:repeat(6,1fr)}.calendar{grid-template-columns:repeat(14,1fr)}.track .bar{width:80px}.track strong{font-size:12px}.soundword{padding:18px 12px}.soundword h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{aside,header,nav,footer,.controls,.tabs,.back,.voicebar,#toast{display:none!important}.shell{margin:0;padding:0}body{background:white;color:black}.card{break-inside:avoid;box-shadow:none}.grid{display:block}.hero{background:white;color:black}}
/* Fourth edition: tactile learning cards and speaking studio */
.mission-strip{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:12px;margin:20px 0 26px}.mission-strip h2{font-size:21px;margin:6px 0}.mission-strip>a{display:flex;align-items:center;gap:12px;padding:20px 14px;background:var(--surface);border:1px solid var(--line);border-radius:20px;text-decoration:none;box-shadow:var(--shadow);transition:transform .2s}.mission-strip>a:hover{transform:translateY(-4px)}.mission-strip b{font-size:24px;color:var(--green);opacity:.55}.mission-strip small{display:block;font-size:11px;color:var(--muted)}.premium-word{padding:20px;border-radius:24px;background:linear-gradient(145deg,var(--surface),var(--soft));box-shadow:0 9px 0 -5px var(--line),var(--shadow);transition:transform .2s,box-shadow .2s;gap:10px;overflow:hidden}.premium-word:hover{transform:translateY(-5px);box-shadow:0 14px 28px #173f3518}.word-top{display:flex!important;width:100%;justify-content:space-between;align-items:center}.word-level{font-size:10px;letter-spacing:2px;font-weight:bold;color:var(--green);background:var(--surface);border-radius:9px;padding:3px 9px}.word-art{height:126px;display:grid;place-items:center;width:100%;background:radial-gradient(ellipse,var(--surface) 0,transparent 65%)}.word-art svg{width:110px;height:110px}.word-art .emoji{font-size:64px}.premium-word>.en{font-size:25px;text-align:center;line-height:1.3}.word-translation{color:var(--muted)}.word-audio{border-radius:12px;padding:9px 16px!important;background:var(--green)!important;color:#fff!important;margin:4px 0}.premium-word details{width:100%;border-top:1px solid var(--line);padding-top:12px;text-align:right;font-size:12px}.premium-word details p[lang]{font-size:15px}.flash-progress{max-width:650px;margin:24px auto 20px;height:8px;background:var(--line);border-radius:20px;overflow:hidden}.flash-progress>span{display:block;height:100%;background:var(--green);transition:width .25s}.premium-flash{position:relative;border-radius:30px!important;border:1px solid var(--line);border-top:6px solid var(--green);box-shadow:0 14px 0 -7px var(--line),0 24px 60px #173f3512;background:radial-gradient(ellipse at top right,var(--soft),var(--surface) 65%);max-width:650px;margin:0 auto 30px}.premium-flash h2{font-size:clamp(34px,6vw,58px);letter-spacing:-1px}.flash-context{background:var(--soft);border-radius:16px;padding:14px;margin-top:12px}.flash-context p{margin:5px}.flash-context p[lang]{font-size:20px}.revealed #flashAnswer{animation:cardReveal .3s ease-out}.grades button{border-radius:14px!important;transition:transform .15s}.grades button:hover{transform:translateY(-3px)}.voice-studio{margin:20px 0;padding:24px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(135deg,var(--soft),var(--surface))}.studio-heading{display:flex;align-items:center;gap:14px}.studio-heading h3{margin:0}.studio-icon{display:grid;place-items:center;width:55px;height:55px;background:var(--surface);border-radius:18px;font-size:26px}.studio-heading>strong{margin-inline-start:auto;font:700 26px monospace}.voice-studio #recordStatus{font-size:13px}.mic-meter{height:24px;display:flex;gap:4px;align-items:center;margin:15px 0}.mic-meter span{height:4px;width:5px;border-radius:3px;background:var(--green)}.is-recording .mic-meter span{animation:micPulse .6s infinite alternate}.is-recording .mic-meter span:nth-child(2n){animation-delay:.2s}.is-recording .mic-meter span:nth-child(3n){animation-delay:.4s}.voice-clip{background:var(--surface);padding:18px;border:1px solid var(--line);border-radius:16px;margin:12px 0}.voice-clip small{display:block;color:var(--muted);font-size:11px}.voice-clip audio{display:block;width:100%;margin:12px 0}.voice-studio details{font-size:12px}.challenge-options{margin:24px 0}.challenge-options button{min-height:58px;border-radius:14px}.challenge-result{max-width:650px;margin:30px auto;text-align:center;background:var(--soft);padding:45px;border-radius:28px}.challenge-result>strong{display:block;font-size:80px;color:var(--green);line-height:1.5}.challenge-result small{font-size:24px;color:var(--muted)}.challenge-result .controls{justify-content:center}@keyframes cardReveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes micPulse{to{height:22px}}@media(max-width:1050px){.mission-strip{grid-template-columns:repeat(3,1fr)}.mission-strip>div{grid-column:1/-1}}@media(max-width:600px){.mission-strip{grid-template-columns:1fr}.mission-strip>a{padding:13px 16px}.mission-strip>a span{flex:1}.voice-studio{padding:16px}.studio-heading h3{font-size:16px}.studio-icon{display:none}.premium-word{padding:14px}.word-art{height:100px}.premium-word>.en{font-size:22px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
