:root{color-scheme:light;--paper:#f7f8f3;--surface:#fff;--ink:#202d25;--muted:#57675d;--line:#dce4da;--green:#205940;--green-deep:#173c2d;--mint:#eaf3e8;--sand:#f8edda;--radius:18px;--reading:Georgia,'Instrument Serif',serif;font:15px/1.5 'Inter',system-ui,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}h1,h2,p,blockquote{margin:0}h1{font:500 clamp(2.35rem,5vw,4.2rem)/1.04 var(--reading);letter-spacing:-.045em}h2{font-size:1.26rem;line-height:1.3;letter-spacing:-.025em}p{color:var(--muted)}small{color:var(--muted);font-size:.84rem}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible{outline:3px solid #417b60;outline-offset:3px}svg{width:21px;height:21px;flex:none}
.app{display:grid;grid-template-columns:220px minmax(0,1fr);height:100dvh}.sidebar{display:flex;flex-direction:column;gap:16px;background:#eef1e9;border-right:1px solid var(--line);padding:25px 14px}.brand{display:flex;align-items:center;gap:10px;padding:0 6px}.brand strong{display:block;font-size:1.13rem;letter-spacing:-.035em}.brand small{display:block;font-size:.63rem;letter-spacing:.15em;font-weight:700}.brand-mark{background:var(--green-deep);color:white;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font:italic 1.45rem Georgia}.collapse{align-self:flex-end;border:1px solid var(--line);border-radius:8px;background:var(--surface);min-width:34px;min-height:34px}.sidebar nav{display:grid;gap:5px}.sidebar nav button{min-height:48px;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid transparent;border-radius:10px;padding:0 12px;background:none;color:var(--muted);font-weight:600}.sidebar nav button:hover{background:#e4ece2}.sidebar nav button[aria-current]{background:#dceade;color:var(--green-deep);border-color:#c9ded0}.side-footer{margin-top:auto;padding:10px 7px;color:var(--muted);font-size:.8rem;display:flex;align-items:center;gap:8px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#55856a}.compact{grid-template-columns:70px minmax(0,1fr)}.compact .sidebar{align-items:center;padding-inline:8px}.compact .brand>div,.compact nav span,.compact .side-footer{display:none}.compact .collapse{align-self:center}
main{min-width:0;overflow:auto;scrollbar-gutter:stable}.top{position:sticky;z-index:3;top:0;min-height:58px;padding:10px clamp(16px,4vw,56px);display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--paper);border-bottom:1px solid var(--line)}.mobile-brand{display:none}.crumb{color:var(--muted);font-size:.88rem}.crumb b{margin:0 .5rem;color:#7b8b80}.sample-label,.pill{display:inline-block;background:var(--mint);border:1px solid #d5e3d6;border-radius:99px;padding:4px 10px;font-size:.78rem;color:var(--green-deep);white-space:nowrap}.workspace{max-width:1190px;margin:auto;padding:33px clamp(16px,4vw,56px) 44px;display:grid;gap:19px}.title{display:grid;gap:8px;margin-bottom:2px}.title p{font-size:1rem}.eyebrow{font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.12em;color:var(--green)}
.hero{display:grid;grid-template-columns:1fr 44%;min-height:218px;border-radius:var(--radius);overflow:hidden;background:#e6efe2;border:1px solid #d4e3d4}.hero-copy{padding:24px 30px;display:grid;align-content:center;justify-items:start;gap:7px}.hero h2{font:500 clamp(1.9rem,4vw,3.1rem)/1.08 var(--reading);letter-spacing:-.035em}.hero .button{margin-top:10px}.hero img{width:100%;height:100%;min-height:180px;max-height:240px;object-fit:cover;display:block}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.catalog,.exercise,.companion,.transcript{padding:clamp(14px,2.5vw,25px)}.section-line{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.actions,.player-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:43px;padding:8px 13px;border-radius:9px;border:1px solid var(--line);background:var(--surface);font-weight:650;font-size:.86rem}.button:hover:not(:disabled),.button[aria-pressed=true]{background:var(--mint);border-color:#bcd4c2}.primary{color:white;background:var(--green);border-color:var(--green)}.primary:hover:not(:disabled){background:var(--green-deep);border-color:var(--green-deep)}.quiet{border-color:transparent}.catalog input,.recall input{border:1px solid #aabcae;background:#fcfdfa;border-radius:9px;padding:10px 12px;min-height:43px;color:var(--ink)}.disclosure{display:flex;width:100%;align-items:center;justify-content:space-between;min-height:44px;margin-top:10px;padding:6px 12px;border:1px solid var(--line);border-radius:9px;background:#f3f6ef;text-align:left}.disclosure small{margin-left:10px}.series{background:#fcfdfa}.lesson-list{margin-top:7px}.lesson-list button,.card-list button{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;width:100%;min-height:43px;padding:8px 12px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left}.lesson-list .current,.lesson-list button:hover,.card-list button:hover{background:var(--mint)}.lesson-list .current{color:var(--green);font-weight:750}
.reader-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(175px,230px);align-items:start;gap:15px}.transcript{min-width:0}.transcript article{display:grid;grid-template-columns:36px minmax(0,1fr) 37px;gap:7px;align-items:start;padding:12px 7px;border-bottom:1px solid #edf0eb;scroll-margin-block:115px}.transcript article[data-active=true]{background:var(--mint);border-radius:10px;box-shadow:inset 3px 0 var(--green)}.reading{color:var(--ink);font:400 clamp(1.18rem,2.1vw,1.55rem)/1.46 var(--reading)}.meaning,.translation{font-size:.89rem;line-height:1.45;margin-top:6px}.translation{color:#566d61}.line-number,.mark-button{border:0;background:transparent;color:var(--muted);min-height:38px;font-size:.78rem}.mark-button[aria-pressed=true]{color:var(--green)}.mark-button[aria-pressed=true] svg{fill:#c8dec8}.companion{display:grid;gap:12px}.player{position:sticky;bottom:0;z-index:2;padding:10px 14px;box-shadow:0 -4px 22px #1f402011}.player input{width:100%;accent-color:var(--green)}.player .button{min-height:38px}.focused .companion{display:none}.focused .reader-layout{grid-template-columns:minmax(0,780px);justify-content:center}.focused .title,.focused .sample-label{display:none}
.segments{display:flex;gap:3px;background:#edf2ea;border:1px solid var(--line);padding:3px;border-radius:10px}.segments button{border:1px solid transparent;background:none;border-radius:7px;padding:7px 11px;font-size:.88rem;font-weight:650;min-height:38px}.segments button[aria-pressed=true]{background:white;border-color:var(--line);color:var(--green)}.exercise{display:grid;gap:14px;justify-items:start;min-width:0}.exercise>.section-line,.exercise>.recall,.exercise>.choices,.exercise>progress{width:100%}.exercise h2{font-size:clamp(1.25rem,3vw,1.8rem)}progress{height:7px;width:100%;appearance:none;border:0;overflow:hidden;border-radius:10px;background:#e5eee4}progress::-webkit-progress-bar{background:#e5eee4}progress::-webkit-progress-value{background:#4f8966}progress::-moz-progress-bar{background:#4f8966}.recall{display:grid;gap:11px}.recall label{font-weight:650;font-size:.85rem}.recall input{width:100%;min-height:51px;font-size:1rem}.hint,.feedback,blockquote{padding:12px 14px;border-radius:9px;background:#f1f5ee;max-width:100%}.good{background:#e4f2e6;color:#245c3b}.retry{background:var(--sand);color:#654519}kbd{font:inherit;font-size:.72rem;background:#ffffff2a;padding:2px 5px;border-radius:4px}.flip{width:100%;min-height:205px;padding:22px;background:#edf4eb;border:1px solid var(--line);border-radius:13px;display:grid;place-content:center;gap:13px;text-align:center}.flip strong{font:500 clamp(1.65rem,4vw,2.6rem)/1.16 var(--reading)}.flip span{color:var(--muted)}.card-list{padding:9px}.card-list button{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.choices{display:grid;gap:8px}.choices button{width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px;min-height:48px;display:flex;align-items:center;gap:12px}.choices button span{width:25px;height:25px;border-radius:6px;background:#edf2ea;display:grid;place-items:center;flex:none;font-weight:700;font-size:.82rem}.choices button[aria-pressed=true],.choices button.right{background:var(--mint);border-color:#82ae91;opacity:1}.quiz-entry{background:#e8f1e6}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:1020px){.app{grid-template-columns:180px minmax(0,1fr)}.compact{grid-template-columns:64px minmax(0,1fr)}.reader-layout{grid-template-columns:1fr}.companion{display:none}}
@media(max-width:700px){:root{font-size:14px}.app,.compact{display:flex;flex-direction:column}.sidebar{order:2;padding:4px 3px max(4px,env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);width:100%;background:var(--surface)}.sidebar .brand,.collapse,.side-footer{display:none}.sidebar nav{width:100%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px}.sidebar nav button{min-height:48px;padding:4px 0;gap:2px;display:grid;justify-items:center;align-content:center;font-size:.67rem;text-align:center}.sidebar nav svg{width:18px;height:18px}.compact nav span{display:inline}main{flex:1;min-height:0;scrollbar-gutter:auto}.top{min-height:48px;padding:8px 13px;position:static}.mobile-brand{display:inline;font-weight:780}.crumb{font-size:.72rem}.sample-label{display:none}.workspace{padding:18px 12px 21px;gap:13px}.title{gap:4px}.hero{grid-template-columns:1fr 34%;min-height:0}.hero-copy{padding:14px 12px;gap:5px}.hero .button{margin-top:4px}.hero img{min-height:145px}.catalog input{width:100%}.catalog .section-line{gap:8px}.section-line small{font-size:.75rem}.transcript article{grid-template-columns:28px minmax(0,1fr) 32px;padding:9px 4px;gap:4px}.mark-button svg{width:17px;height:17px}.reader-tools .button,.player .button{padding-inline:8px;font-size:.76rem;min-height:38px}.player{padding:7px 8px}.player-actions{gap:3px;justify-content:space-between}.review-grid{grid-template-columns:1fr}.exercise{gap:11px}.recall{gap:8px}}
.catalog input{width:min(100%,18rem)} @media(max-width:700px){.catalog input{width:100%}}
.gallery{width:100%;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.gallery figure{margin:0}.gallery figcaption{color:var(--muted);margin-bottom:6px}.gallery img{display:block;width:100%;max-height:560px;object-fit:contain;object-position:top left;border:1px solid var(--line);border-radius:10px;background:var(--paper)} @media(max-width:600px){.gallery{grid-template-columns:1fr}}
