:root{color-scheme:light;--bg:#fbfcf5;--ink:#172a30;--muted:#56676a;--paper:#fff;--line:#dce4d9;--lime:#c6f34a;--lime-ink:#203316;--soft:#eff8d7;--blue-soft:#e7f2ff;--blue:#225f8d;--orange:#fff0db;--shadow:#bccb9c;--error:#8a3529;--error-bg:#fff0eb;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.5}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1{font-size:clamp(29px,5vw,39px);line-height:1.12;letter-spacing:-1.2px;font-weight:780;margin:0 0 18px}h2{font-size:24px;line-height:1.2;letter-spacing:-.65px;margin:0 0 14px}h3{font-size:18px;line-height:1.3;letter-spacing:-.3px;margin:0 0 8px}p{margin-bottom:16px}svg{vertical-align:middle}strong{font-weight:700}
.app-shell{max-width:680px;margin:auto;min-height:100dvh;background:var(--bg)}.topbar{display:flex;align-items:center;gap:12px;padding:22px 24px 18px;min-height:78px}.brand{display:flex;align-items:center;gap:9px;font-size:24px;font-weight:800;letter-spacing:-1px;text-decoration:none;white-space:nowrap}.brand-mark{display:grid;place-items:center;background:var(--lime);color:var(--lime-ink);width:33px;height:33px;border-radius:11px;font-size:28px;line-height:1}.header-label{margin-left:auto;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.4px;text-align:right}.page{padding:18px 24px 115px;overflow-wrap:anywhere}.page.nonav{padding-bottom:32px}.eyebrow{font-size:11px;letter-spacing:1.1px;color:var(--muted);font-weight:750;margin-bottom:10px}.lead{font-size:16px;color:var(--muted);margin:0 0 25px}.note{font-size:13px;color:var(--muted);margin:14px 0;line-height:1.55}.muted{color:var(--muted)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.space{justify-content:space-between}.stack{display:grid;gap:13px}.section{margin:32px 0}.section-head{display:flex;justify-content:space-between;gap:14px;align-items:baseline;margin:28px 0 16px}.section-head h2{margin:0}.section-head a{font-size:13px}.button{display:flex;justify-content:center;align-items:center;gap:9px;min-height:52px;border:1.5px solid var(--line);border-bottom-width:4px;border-radius:15px;background:var(--paper);padding:12px 17px;text-align:center;font-weight:700;text-decoration:none;width:100%}.button.primary{background:var(--lime);color:var(--lime-ink);border-color:var(--shadow);border-top-color:transparent;border-left-color:transparent;border-right-color:transparent}.button:active{transform:translateY(2px);border-bottom-width:2px}.button.small{min-height:45px;padding:9px 13px;font-size:14px;width:auto}.button.blue{background:var(--blue-soft);color:var(--blue)}.quiet{border:0;background:transparent;min-height:44px;padding:11px 0;text-decoration:underline;text-underline-offset:4px;color:var(--muted);font-size:14px}.icon-button{display:grid;place-items:center;flex:none;width:44px;height:44px;background:var(--paper);border:1.5px solid var(--line);border-radius:13px;font-size:22px}.panel{padding:20px;background:var(--paper);border:1.5px solid var(--line);border-bottom-width:3px;border-radius:20px}.soft{background:var(--soft);border:0;border-radius:17px;padding:18px}.blue-panel{background:var(--blue-soft);border-radius:17px;padding:18px}.blue-panel p:last-child,.soft p:last-child,.panel p:last-child{margin-bottom:0}.tag{display:inline-block;font-size:12px;font-weight:650;padding:6px 11px;background:var(--soft);border-radius:25px}.big-symbol{display:grid;place-items:center;width:88px;height:82px;background:var(--lime);color:var(--lime-ink);border-bottom:6px solid var(--shadow);border-radius:27px;font-size:43px;margin:12px 0 24px;transform:rotate(-6deg)}.welcome-art{background:var(--soft);display:grid;place-items:center;border-radius:30px;margin:4px 0 28px;padding:25px;min-height:150px}.welcome-art .big-symbol{margin:0}.benefits{display:grid;gap:15px;margin:25px 0 30px;font-size:15px}.benefits div{display:flex;gap:13px;align-items:center}.benefits span{color:var(--blue);font-size:22px}.progress{height:7px;border-radius:9px;background:var(--line);overflow:hidden;margin:0 0 25px}.progress>span{display:block;height:100%;background:var(--lime);transition:width .2s ease}.progress-label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:-12px 0 24px}.choices{display:grid;gap:11px;margin:24px 0}.choice{display:flex;align-items:center;gap:13px;min-height:66px;width:100%;padding:15px;text-align:left;border:1.5px solid var(--line);border-bottom-width:3px;border-radius:16px;background:var(--paper);font-size:15px;font-weight:650}.choice[aria-pressed=true]{background:var(--soft);border-color:var(--shadow)}.choice-symbol{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:11px;background:var(--blue-soft);color:var(--blue)}label.field{display:block;font-size:14px;font-weight:650;margin:18px 0 8px}input,textarea,select{width:100%;min-height:48px;border:1.5px solid var(--line);background:var(--paper);border-radius:13px;padding:12px 13px;font-size:16px}textarea{min-height:135px;resize:vertical;line-height:1.55}.status{color:var(--error);font-size:14px;min-height:23px;margin:12px 0}.path{padding:10px 0 15px}.path-row{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:17px;min-height:127px;position:relative}.path-row.reverse{grid-template-columns:minmax(0,1fr) 90px;text-align:right}.path-row:after{content:'';position:absolute;left:48px;top:85px;width:190px;border-top:4px solid var(--line);transform:rotate(29deg);transform-origin:left center}.path-row.reverse:after{left:auto;right:48px;transform:rotate(-29deg);transform-origin:right center}.path-row:last-child:after{display:none}.path-row>div{z-index:2;background:var(--bg);padding:8px 0}.path-row h3{font-size:18px}.path-row p{font-size:13px;margin:0 0 5px}.path-node{display:grid;place-items:center;position:relative;z-index:1;background:var(--blue-soft);color:var(--blue);width:78px;height:73px;border-radius:25px;border:0;border-bottom:6px solid var(--line);font-size:30px;text-decoration:none}.path-node.active{background:var(--lime);color:var(--lime-ink);border-color:var(--shadow);transform:rotate(-7deg)}.path-node.warm{background:var(--orange);color:var(--ink)}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:680px;display:flex;justify-content:space-around;gap:3px;background:var(--paper);border-top:1px solid var(--line);padding:9px 6px calc(9px + env(safe-area-inset-bottom));z-index:10}.bottom-nav a{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;font-size:11px;text-decoration:none;min-width:58px;min-height:51px;padding:4px;color:var(--muted)}.bottom-nav a>span{font-size:24px;line-height:1}.bottom-nav a[aria-current=page]{color:var(--ink);font-weight:750}.bottom-nav a[aria-current=page]>span{background:var(--soft);border-radius:12px;padding:2px 14px}.course-card{display:grid;grid-template-columns:46px minmax(0,1fr) 15px;align-items:center;gap:13px;padding:19px 16px;background:var(--paper);border:1.5px solid var(--line);border-bottom-width:3px;border-radius:19px;text-decoration:none}.course-symbol{display:grid;place-items:center;width:43px;height:43px;border-radius:14px;background:var(--blue-soft);color:var(--blue);font-size:23px}.course-card h3{font-size:17px}.course-card p{font-size:13px;color:var(--muted);margin:0}.course-card small{font-size:12px;display:block;margin-top:7px;color:var(--muted)}.unit-list{display:grid;gap:11px;margin:23px 0}.unit-link{display:grid;grid-template-columns:35px minmax(0,1fr) 15px;gap:12px;align-items:center;padding:16px 14px;background:var(--paper);border:1.5px solid var(--line);border-bottom-width:3px;border-radius:16px;text-decoration:none}.unit-link span:first-child{font-size:13px;color:var(--blue);font-weight:750}.unit-link h3{font-size:16px;margin-bottom:5px}.unit-link p{font-size:12px;margin:0;color:var(--muted)}.empty{text-align:center;padding:35px 10px}.search{margin:20px 0}.lesson{padding-bottom:25px}.lesson .lead{margin-bottom:23px}.lesson-cover{padding:13px 0 15px}.lesson-cover h1{font-size:clamp(34px,6vw,46px)}.lesson-meta{display:flex;gap:9px;flex-wrap:wrap;margin:21px 0}.lesson-stage{min-height:350px}.lesson-footer{position:sticky;bottom:0;background:var(--bg);padding:18px 0 calc(18px + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:flex;gap:13px;align-items:center;margin-top:26px;z-index:5}.lesson-footer .button{flex:1}.lesson-tabs{display:flex;gap:6px;margin-bottom:26px}.lesson-tabs button{flex:1;background:var(--line);border:0;height:8px;min-height:8px;border-radius:8px;padding:0}.lesson-tabs button.active{background:var(--lime)}.lesson-tabs button:before{content:'';display:block;height:24px;transform:translateY(-8px)}.concept{border-bottom:1px solid var(--line);padding:12px 0}.concept summary{display:flex;align-items:center;gap:13px;min-height:58px;font-size:19px;font-weight:700;cursor:pointer;list-style:none}.concept summary:before{content:'+';display:grid;place-items:center;width:35px;height:35px;border-radius:12px;background:var(--blue-soft);color:var(--blue);flex:none;font-size:20px}.concept[open] summary:before{content:'−'}.concept p{font-size:16px;padding:4px 0 12px 48px}.context-case{padding:18px;border-radius:17px;background:var(--blue-soft);font-size:15px;margin:20px 0}.comparison-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.comparison-controls button{min-height:47px;border:1.5px solid var(--line);border-radius:13px;background:var(--paper);font-size:14px;font-weight:700;padding:10px}.comparison-controls button[aria-pressed=true]{background:var(--lime);color:var(--lime-ink);border-color:var(--shadow)}.comparison{border-radius:22px;background:var(--orange);padding:23px;font-size:20px;line-height:1.5;white-space:pre-wrap}.comparison.improved{background:var(--soft)}.example-output{white-space:pre-wrap;line-height:1.7;padding:20px;border:1.5px solid var(--line);border-radius:18px;background:var(--paper);margin-top:17px}.answer{display:block;width:100%;padding:17px;text-align:left;margin:11px 0;background:var(--paper);border:1.5px solid var(--line);border-bottom-width:3px;border-radius:16px;min-height:65px}.answer[aria-pressed=true]{background:var(--soft);border-color:var(--shadow)}.answer.wrong{background:var(--error-bg);border-color:var(--error)}.answer small{font-size:12px;display:block;color:var(--muted);margin-bottom:5px;font-weight:700}.feedback{padding:16px;border-radius:15px;margin:18px 0;background:var(--soft);font-size:15px}.feedback.wrong{background:var(--error-bg);color:var(--error)}.prompt{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--paper);border:1.5px solid var(--line);border-radius:16px;padding:17px;font-size:15px;line-height:1.65;margin:15px 0}.check{display:flex;align-items:flex-start;gap:12px;padding:16px 14px;border:1.5px solid var(--line);border-radius:15px;margin:12px 0;min-height:64px;font-size:15px;background:var(--paper)}.check input{width:23px;height:23px;min-height:23px;flex:none;margin:0;accent-color:var(--blue)}.check span{padding-top:1px}.practice-summary{white-space:pre-wrap;font-size:15px;line-height:1.7;background:var(--paper);border:1px solid var(--line);padding:18px;border-radius:16px;margin:20px 0}.success{text-align:center}.success .big-symbol{margin:15px auto 25px}.result-card{margin:15px 0}.result-card h3{margin:9px 0}.result-card details{margin:12px 0}.result-card summary{min-height:44px;font-size:14px;padding:10px 0}.profile-row{padding:16px 0;border-bottom:1px solid var(--line)}.profile-row small{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.audio-cover{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:160px;background:var(--lime);color:var(--lime-ink);border-radius:23px;padding:24px;margin:22px 0;font-size:24px;font-weight:780;line-height:1.2}.audio-cover span:first-child{font-size:50px}audio{width:100%;margin:20px 0}details.glossary{border-bottom:1px solid var(--line);padding:12px 0}details.glossary summary{font-weight:700;min-height:44px;padding:10px 0}details.glossary p{padding:4px 0 10px}.tool-card{margin:16px 0}.source-links{border-top:1px solid var(--line);padding-top:15px;margin-top:25px;font-size:12px;color:var(--muted)}.source-links a{display:inline-block;margin:5px 12px 5px 0}.source-links summary{min-height:44px;padding:10px 0}.toast{position:fixed;bottom:calc(90px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:13px 18px;border-radius:15px;font-size:14px;z-index:30;width:max-content;max-width:90vw;text-align:center;box-shadow:0 4px 20px #172a3018}.steps{padding-left:23px}.steps li{padding:4px 0 13px}.steps li span{display:block;color:var(--muted);font-size:14px}.lab-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.lab-grid label{font-size:13px}.lab-grid input{margin-top:7px}.lab-total{font-size:30px;font-weight:750;letter-spacing:-1px;margin:18px 0}.chip-row{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0}.chip-row button{min-height:44px;padding:9px 14px;border:1.5px solid var(--line);background:var(--paper);border-radius:20px;font-size:14px}.chip-row button[aria-pressed=true]{background:var(--soft);border-color:var(--shadow)}.pipeline{display:grid;gap:10px;margin:20px 0}.pipeline button{width:100%;text-align:left;min-height:60px;padding:14px 18px;border:1.5px solid var(--line);background:var(--paper);border-radius:15px}.pipeline button[aria-pressed=true]{background:var(--soft);border-color:var(--shadow)}.file-input{padding:13px;font-size:14px}.read-controls{margin:16px 0 22px}.read-controls button{font-size:13px}.day-note{padding:11px 14px;background:var(--soft);border-radius:12px;font-size:13px;margin-bottom:19px}.screen-reader{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.link-list{display:grid;gap:13px;margin:20px 0}.project-fields{display:grid;gap:8px}.print-only{display:none}
@media(min-width:760px){body{background:#f0f3eb}.app-shell{border-left:1px solid var(--line);border-right:1px solid var(--line)}.topbar{padding-left:38px;padding-right:38px}.page{padding-left:38px;padding-right:38px}.path-row{min-height:140px}.path-row:after{width:290px;transform:rotate(18deg)}.path-row.reverse:after{transform:rotate(-18deg)}}
@media(max-width:360px){.topbar{padding:17px 18px;gap:9px}.brand{font-size:22px}.brand-mark{width:29px;height:29px}.header-label{font-size:10px}.page{padding-left:18px;padding-right:18px}.path-row{grid-template-columns:78px minmax(0,1fr);gap:12px}.path-row.reverse{grid-template-columns:minmax(0,1fr) 78px}.path-row:after{width:145px;transform:rotate(34deg)}.path-row.reverse:after{transform:rotate(-34deg)}.path-node{width:68px;height:66px}.course-card{grid-template-columns:36px minmax(0,1fr) 12px;padding:16px 12px;gap:10px}.course-symbol{width:35px;height:35px}.comparison{font-size:18px;padding:18px}.lab-grid{gap:10px}.bottom-nav a{font-size:11px}.lesson-footer{gap:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}.button:active{transform:none}}
@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg:#111e25;--paper:#1a2b32;--ink:#f2f7ed;--muted:#afc1bd;--line:#3a5056;--soft:#2c3e25;--blue-soft:#213d50;--blue:#aad5ff;--orange:#493827;--shadow:#536a2d;--error:#ffc0ac;--error-bg:#4c2d29}body{background:#0d171d}.toast{box-shadow:none}}
@media print{body{background:#fff;color:#172a30}.topbar,.bottom-nav,.lesson-footer,.toast,button,.no-print{display:none!important}.page{padding:0}.app-shell{border:0;max-width:none}.panel,.soft,.blue-panel{break-inside:avoid}.print-only{display:block}}

.lesson-tabs>span{flex:1;display:block;height:7px;border-radius:8px;background:var(--line)}.lesson-tabs>span.active{background:var(--lime)}.step-select{width:175px;max-width:58%;min-height:44px;padding:8px 10px;font-size:12px;margin-bottom:9px}.header-label{font-size:11px}

#app:focus{outline:none}
