@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#f6f3ee;--paper:#fffdfa;--ink:#28243b;--muted:#6d687b;--dark:#211b35;--purple:#7352a5;--pink:#edb3cc;--lavender:#e9e0f4;--line:#e3ded9;--green:#286852;--red:#a13352;--gold:#ac7435;--radius:22px;--font:'DM Sans',Segoe UI,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 var(--font)}h1,h2,h3,h4{font-family:Manrope,Segoe UI,sans-serif;line-height:1.25;margin:0 0 16px}h1{font-size:clamp(30px,3.6vw,46px);font-weight:800;letter-spacing:-1.3px}h2{font-size:26px;letter-spacing:-.6px}h3{font-size:19px}p{margin:0 0 16px}a{color:var(--purple);text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button,a{ -webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b56393;outline-offset:4px}button{color:inherit}a:hover{text-decoration:underline}small,.small{font-size:13px}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;text-transform:uppercase;color:var(--purple);margin-bottom:12px}.shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:var(--dark);color:#e7e1ef;padding:32px 22px;display:flex;flex-direction:column;z-index:30}.brand{color:#fff;display:flex;align-items:center;gap:12px;font:bold 22px Manrope,sans-serif;letter-spacing:2px}.brand small{display:block;font:12px var(--font);letter-spacing:1px;color:#c5b9d6;margin-top:5px}.brand-icon{color:var(--pink);font-size:38px}.sidebar-label{font-size:9px;letter-spacing:1.6px;color:#b6a8cb;margin:42px 9px 12px}nav{display:grid;gap:6px}nav a{color:#d5cee2;font-size:14px;border-radius:11px;padding:10px 12px;display:flex;align-items:center;gap:13px}nav a span{font-size:21px;width:22px;text-align:center}nav a:hover,nav a.active{background:#403152;color:#ffe3ef;text-decoration:none}nav a.active{box-shadow:inset 3px 0 var(--pink)}.side-bottom{margin-top:auto;padding-top:20px;text-align:center;color:#bfb3d0;font-size:12px}.side-bottom a{color:#cbbddb;display:block;font-size:11px;margin:10px 0}.cat{position:relative;width:96px;height:90px;margin:0 auto 5px;overflow:hidden}.cat img{position:absolute;max-width:none;width:384px;height:auto;left:0;top:-272px}.workspace{margin-left:230px;min-width:0;width:calc(100% - 230px)}.topbar{height:80px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 44px;border-bottom:1px solid var(--line);font-size:13px}.top-actions{display:flex;gap:14px;align-items:center}.xp{background:var(--lavender);border-radius:20px;padding:5px 13px;font-weight:700;font-size:12px;color:#68478f}.quiet{background:none;border:1px solid #d4cadf;border-radius:8px;padding:6px 10px;font-size:11px}.quiet[aria-pressed=true]{background:var(--lavender)}.save-status{color:var(--muted);font-size:11px}#menu-toggle{display:none}main{max-width:1280px;margin:auto;padding:38px 44px 55px;min-height:calc(100vh - 140px)}footer{border-top:1px solid var(--line);padding:20px 44px;color:var(--muted);font-size:11px}.skip{position:absolute;top:-100px;left:250px;z-index:100;background:white;padding:10px}.skip:focus{top:10px}.page-heading{margin-bottom:28px}.page-heading p{max-width:760px;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--purple);color:white;border:0;border-radius:11px;padding:12px 22px;font-size:14px;font-weight:700;min-height:45px;text-decoration:none}.btn:hover{filter:brightness(1.08);text-decoration:none}.btn.secondary{background:var(--lavender);color:#573d7f}.btn.ghost{background:transparent;border:1px solid #cbbfd9;color:var(--purple)}.btn.pink{background:#f3c1d6;color:#352241}.btn.small{min-height:36px;padding:7px 13px;font-size:12px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:20px}.pill{display:inline-block;font-size:10px;line-height:1.6;padding:4px 9px;border-radius:20px;background:var(--lavender);color:#654884;font-weight:700;letter-spacing:.3px}.pill.green{background:#dfefe6;color:var(--green)}.pill.gold{background:#f3e5ce;color:#825718}.hero{background:#2d2342;border-radius:26px;color:#fff;position:relative;overflow:hidden;display:grid;grid-template-columns:1.1fr 1fr;min-height:360px;margin-bottom:30px}.hero-copy{padding:42px 0 40px 36px;z-index:2}.hero .eyebrow{color:#ddb9e9;font-size:10px}.hero h1{font-size:clamp(30px,3.6vw,45px);max-width:500px;letter-spacing:-1.7px}.hero h1 em{font-style:normal;color:#ecc4dc}.hero p{color:#d3c8df;font-size:14px;max-width:430px}.hero-art{position:relative;align-self:center;height:320px}.hero-art svg{width:100%;height:100%}.hero-kuromi{position:absolute;width:100px;right:34px;bottom:35px;filter:drop-shadow(0 7px 0 #251b35)}.hero-baku{position:absolute;width:64px;left:9px;bottom:29px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:30px 0 18px}.section-heading h2{font-size:21px;margin:0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:26px;min-width:0}.card p{font-size:14px}.topic-card{position:relative;overflow:hidden;min-height:238px;display:flex;flex-direction:column}.topic-card.r{border-top:4px solid #9b7eb7}.topic-card.d{border-top:4px solid #c38b60}.topic-card h3{font-size:23px;margin:12px 0}.topic-card .actions{margin-top:auto;padding-top:8px}.period{font-size:12px;color:var(--muted);margin-bottom:12px}.progress-track{height:5px;border-radius:4px;background:#e9e2ef;margin:12px 0;overflow:hidden}.progress-fill{height:100%;background:#9a7cbd;transition:width .3s}.step-strip{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px;flex-wrap:wrap}.step-strip b{color:var(--ink)}.step-strip .dot{height:27px;width:27px;background:var(--lavender);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--purple);font-size:11px}.resume{background:#ece5f3;border:1px solid #dbcee8;border-radius:15px;padding:20px 24px;margin-bottom:24px;display:flex;gap:16px;justify-content:space-between;align-items:center}.resume p{margin:0;font-size:13px}.resume h3{font-size:16px;margin-bottom:4px}.stat-row{display:flex;gap:20px;flex-wrap:wrap;margin:15px 0}.stat{min-width:110px}.stat strong{display:block;font:800 26px Manrope,sans-serif}.stat span{font-size:11px;color:var(--muted)}.lesson-list{display:grid;gap:10px;margin-top:18px}.lesson-link{display:flex;align-items:center;gap:14px;background:var(--paper);padding:17px 20px;border:1px solid var(--line);border-radius:13px;color:var(--ink);text-decoration:none}.lesson-link:hover{border-color:#b9a1cf;text-decoration:none}.lesson-num{background:var(--lavender);color:var(--purple);border-radius:10px;min-width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-weight:800}.lesson-link h3{font-size:15px;margin-bottom:3px}.lesson-link small{color:var(--muted)}.lesson-link .right{margin-left:auto;font-size:12px;color:var(--purple)}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.tabs a,.tabs button{padding:9px 15px;border-radius:10px;background:transparent;border:1px solid #d7cede;font-size:13px;color:var(--purple)}.tabs .active{background:var(--dark);color:#fff;border-color:var(--dark)}.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:26px}.lesson-body{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.lesson-title{padding:27px 30px 20px;border-bottom:1px solid var(--line)}.lesson-title h1{font-size:27px;margin-bottom:12px;letter-spacing:-.7px}.lesson-content{padding:28px 30px}.lesson-content .teaching{font-size:16px;line-height:1.9;white-space:pre-line}.lesson-progress{display:flex;gap:5px;padding:0 30px 22px}.lesson-progress button{height:5px;flex:1;border:0;border-radius:3px;background:#e6dfee;padding:0;min-width:15px}.lesson-progress button.done{background:#bea3d4}.lesson-progress button.current{background:var(--purple)}.lesson-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:20px 30px}.lesson-side{font-size:12px}.lesson-side .card{padding:20px;margin-bottom:15px}.lesson-side h3{font-size:14px}.kuromi-note{background:#eee5f4;border-radius:16px;padding:20px;margin-bottom:20px}.kuromi-note img{float:left;width:51px;margin:0 14px 8px 0}.kuromi-note p{font-size:13px;margin:0}.takeaway{border-left:3px solid #b596ca;padding:12px 18px;background:#f2edf7;margin-top:22px;font-size:14px}.mistake{background:#fff2e8;border:1px solid #ecd5bf;padding:20px;border-radius:14px;margin:20px 0;font-size:14px}.mistake .wrong{color:#984833;text-decoration:line-through}.detail{border:1px solid var(--line);border-radius:12px;margin:16px 0;padding:15px 18px;font-size:14px}summary{cursor:pointer;font-weight:700;color:var(--purple)}details p{margin-top:12px}.figure{margin:22px 0;background:#f4eff7;border:1px solid #e5daed;border-radius:16px;padding:20px;overflow:hidden}.figure .figure-title{font-size:12px;font-weight:800;color:#674a82;margin-bottom:14px}.diagram-nodes{display:grid;gap:12px}.diagram-nodes.chain{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.diagram-node{border:1px solid #d7c6e4;background:#fffdfb;border-radius:12px;padding:15px;position:relative;font-size:12px}.diagram-node b{display:block;font-size:13px;margin-bottom:7px}.diagram-node .node-index{font-size:10px;color:#9977b5;letter-spacing:1px;margin-bottom:5px}.diagram-nodes.compare{grid-template-columns:repeat(2,minmax(0,1fr))}.diagram-nodes.structure .diagram-node:first-child{background:#3c2d53;color:white}.diagram-nodes.timeline{border-left:2px solid #bba0d1;margin-left:9px;padding-left:20px}.diagram-nodes.timeline .diagram-node:before{content:'';position:absolute;width:8px;height:8px;border-radius:50%;background:var(--purple);left:-25px;top:22px}.figure-caption{color:#68596f;font-size:11px;margin:14px 0 0}.figure-tools{display:flex;justify-content:flex-end;margin-top:10px}.step-example{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}.step-example button{background:#ede5f5;border:0;border-radius:9px;padding:9px;font-size:11px}.step-example button.active{background:var(--purple);color:white}.example-explanation{padding:22px;background:#f0eaf6;border-radius:12px;margin:12px 0}.example-explanation h3{font-size:16px}.recall textarea,.writing{width:100%;min-height:135px;background:#fffefb;border:1px solid #cfc4d9;border-radius:12px;padding:14px;resize:vertical;color:var(--ink)}.checklist{list-style:none;padding:0;margin:15px 0}.checklist li{padding:6px 0;font-size:13px}.checklist label{display:flex;align-items:flex-start;gap:10px}.checklist input{margin-top:6px;accent-color:var(--purple)}.question-card{max-width:900px;margin:auto}.question-card h2{font-size:23px}.context{background:#f2eee5;border-left:3px solid #bca070;padding:18px 20px;font-size:14px;white-space:pre-line;margin:18px 0}.answer-options{display:grid;gap:10px;margin-top:20px}.option{border:1px solid #d9d1e1;border-radius:12px;background:#fffdfa;padding:15px 18px;text-align:left;font-size:14px;display:flex;align-items:flex-start;gap:12px}.option .option-letter{color:#9a82b3;font-size:11px;border:1px solid #ded3e7;border-radius:6px;width:24px;min-width:24px;text-align:center;padding:2px}.option.selected{border:2px solid var(--purple);padding:14px 17px;background:#f4eef8}.option.correct{border-color:#3f8264;background:#e9f5ee}.option.wrong{border-color:#ba4967;background:#fff0f3}.answer-input{border:1px solid #c9bbd6;border-radius:10px;padding:13px 15px;width:100%;margin-top:15px;background:#fffdfa}.feedback{margin-top:20px;border-radius:12px;padding:18px 20px;font-size:14px;background:#f1eaf7;border-left:4px solid #9879b5}.feedback.good{background:#e8f3ec;border-color:#4b886b}.feedback.bad{background:#fff0f2;border-color:#b55670}.feedback h3{font-size:15px;margin-bottom:8px}.feedback p:last-child{margin-bottom:0}.hint{background:#faf1da;color:#7e612f;padding:12px 16px;border-radius:10px;font-size:13px;margin-top:12px}.order-list{list-style:none;padding:0;display:grid;gap:9px}.order-row{display:flex;align-items:center;gap:10px;padding:12px 15px;border:1px solid #dfd5e8;background:white;border-radius:10px;font-size:13px}.order-row span{flex:1}.icon-button{background:none;border:1px solid #d2c6df;border-radius:7px;min-width:34px;min-height:34px;font-size:15px}.classify-row{display:grid;grid-template-columns:1fr minmax(150px,35%);gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0;font-size:13px}.classify-row select{max-width:100%;padding:8px;border-radius:8px;border:1px solid #cfc1dc;background:#fff}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:22px}.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.status-box{padding:17px;background:#f0eaf5;border-radius:12px}.status-box b{font-size:25px;display:block}.status-box span{font-size:11px}.timeline-board{display:grid;grid-template-columns:180px 1fr;gap:22px}.timeline-events{display:grid;gap:8px}.timeline-events button{background:#fff;border:1px solid #d7cbe1;border-radius:9px;padding:12px;text-align:left;font-size:12px}.timeline-events button.active{background:var(--dark);color:white}.timeline-detail{padding:30px;background:#f2ecf7;border-radius:16px}.timeline-date{font:800 48px Manrope,sans-serif;color:#9a7cb2;margin:10px 0 20px}.lab-card{display:flex;flex-direction:column}.lab-card .actions{margin-top:auto}.rubric{font-size:13px;border-collapse:collapse;width:100%;margin:15px 0}.rubric td,.rubric th{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left}.rubric input{width:60px;padding:5px}.exam-navigator{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:25px}.exam-navigator button{border:1px solid #d6cce0;background:#fff;border-radius:7px;width:34px;height:34px;font-size:11px}.exam-navigator button.active{background:var(--purple);color:white}.exam-navigator button.answered{box-shadow:inset 0 -3px #a98aba}.glossary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.glossary-grid details{margin:0;background:white}.glossary-grid summary{font-size:14px}.glossary-grid p{font-size:13px}.source-ref{font-size:10px;color:var(--muted);margin-top:20px;word-break:break-word}.source-ref summary{font-size:11px;font-weight:400}.settings-row{padding:20px 0;border-bottom:1px solid var(--line)}.settings-row h3{font-size:16px}.settings-row p{font-size:13px;color:var(--muted)}#toast{position:fixed;right:25px;bottom:25px;z-index:100;background:#332643;color:white;max-width:360px;padding:14px 20px;border-radius:12px;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}dialog{border:1px solid #c6b2d5;border-radius:20px;max-width:min(1000px,95vw);max-height:90vh;padding:35px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#1b1229bb}.close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:25px}.loading{padding:50px;color:var(--purple)}.success{background:#e6f1e9;border-radius:15px;padding:25px}.empty{padding:35px;text-align:center;color:var(--muted)}.full-width{grid-column:1/-1}.hidden{display:none!important}.text-link{background:transparent;border:0;padding:0;color:var(--purple);text-decoration:underline;font-size:13px}.exam-warning{background:#fff1da;border:1px solid #edd4a7;padding:16px;border-radius:12px;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1500px){main{padding-top:50px}}@media(max-width:1150px){.sidebar{width:205px;padding:25px 15px}.workspace{margin-left:205px;width:calc(100% - 205px)}main{padding:30px}.topbar{padding:0 30px}.lesson-layout{grid-template-columns:1fr}.lesson-side{display:grid;grid-template-columns:1fr 1fr;gap:16px}.lesson-side .card{margin:0}.grid.three{grid-template-columns:1fr 1fr}.hero-copy{padding:32px 0 30px 28px}.hero-art{height:280px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);width:230px;transition:transform .2s}.sidebar.open{transform:translateX(0);box-shadow:0 0 0 100vmax #18112488}.workspace{width:100%;margin:0}.topbar{height:65px;padding:0 18px}.topbar #breadcrumb{display:none}#menu-toggle{display:block;position:relative;z-index:40}.top-actions{gap:8px}.save-status{display:none}main{padding:25px 18px 35px}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{padding:28px 26px 4px}.hero-art{height:230px;width:100%;max-width:400px;margin:auto}.hero h1{font-size:34px}.hero-kuromi{width:80px;right:45px;bottom:20px}.hero-baku{width:50px;left:25px;bottom:16px}.grid,.grid.three{grid-template-columns:1fr}.card{padding:22px}.lesson-title,.lesson-content{padding:22px}.lesson-title h1{font-size:23px}.lesson-controls{padding:17px}.lesson-side{grid-template-columns:1fr}.lesson-progress{padding:0 22px 18px}.resume{align-items:flex-start;flex-direction:column}.diagram-nodes.chain{grid-template-columns:1fr}.diagram-nodes.compare{grid-template-columns:1fr}.step-example{grid-template-columns:1fr}.classify-row{grid-template-columns:1fr}.status-grid{gap:7px}.status-box{padding:12px}.status-box b{font-size:21px}.status-box span{font-size:10px}.timeline-board{grid-template-columns:1fr}.timeline-events{grid-template-columns:repeat(2,1fr)}.timeline-detail{padding:23px}.glossary-grid{grid-template-columns:1fr}.question-card h2{font-size:21px}.option{padding:13px;font-size:13px}.option.selected{padding:12px}.toolbar h1{font-size:27px}.top-actions .quiet{font-size:10px}footer{padding:20px}.skip{left:20px}dialog{padding:30px 15px}.rubric{font-size:11px}.source-ref{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}body.calm *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media print{.sidebar,.topbar,footer,.actions,.lesson-controls,.lesson-progress,.figure-tools,.no-print{display:none!important}.workspace{margin:0;width:100%}main{padding:0;max-width:none}.card,.lesson-body,.figure{break-inside:avoid;box-shadow:none}.lesson-layout{display:block}.lesson-side{display:none}body{font-size:11pt;background:white;color:#222}a{color:inherit}.print-break{break-before:page}}
