:root{--bg:oklch(1 0 0);--surface:oklch(.975 .002 330);--surface-2:oklch(.947 .006 330);--ink:oklch(.24 .015 330);--muted:oklch(.49 .014 330);--primary:oklch(.45 .15 330);--primary-soft:oklch(.958 .017 330);--accent:oklch(.43 .08 215);--accent-soft:oklch(.96 .018 215);--line:oklch(.88 .008 330);--success:oklch(.42 .09 155);--warning:oklch(.45 .10 60);--focus:oklch(.48 .14 330);--z-sticky:10;--z-toast:30;--radius:12px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;font-synthesis:none;color:var(--ink);background:var(--bg);line-height:1.65;font-size:16px}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--primary);text-underline-offset:3px}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance}h1{font-size:2rem;line-height:1.35;letter-spacing:-.025em;margin-bottom:14px}h2{font-size:1.25rem;line-height:1.5;margin-bottom:14px}h3{font-size:1.05rem}p{margin-bottom:16px;text-wrap:pretty}small{font-size:.75rem}button{transition:background-color .16s,color .16s,border-color .16s}button:hover{background:var(--surface-2)}[hidden]{display:none!important}.skip-link{position:fixed;left:15px;top:-80px;z-index:50;background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:8px}.skip-link:focus{top:12px}.sidebar{width:246px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--line);padding:30px 20px 20px}.brand{display:flex;gap:11px;align-items:center;color:var(--ink);text-decoration:none;font-weight:700;font-size:1.08rem;letter-spacing:.02em}.brand small{display:block;font-size:.56rem;font-weight:500;letter-spacing:.07em;color:var(--muted);margin-top:3px}.brand-mark{display:flex;justify-content:center;align-items:center;width:39px;height:43px;background:var(--primary);color:var(--bg);font-family:Georgia,serif;font-size:2rem;border-radius:10px;flex-shrink:0}.sidebar-intro{margin:34px 8px 24px}.term-label{font-size:.72rem;color:var(--muted);letter-spacing:.06em}.sidebar-intro p{font-size:.84rem;margin:6px 0 0}.sidebar .course-nav-slot{overflow-y:auto;flex:1;min-height:0;margin:0 -5px;padding:0 5px}.nav-title{font-size:.72rem;font-weight:600;letter-spacing:.08em;color:var(--muted);margin:0 8px 12px}.chapter-group{margin:0 0 7px}.chapter-group summary{cursor:pointer;display:flex;align-items:center;gap:10px;list-style:none;padding:10px 8px;font-size:.83rem;border-radius:7px;line-height:1.4}.chapter-group summary::-webkit-details-marker{display:none}.chapter-group summary:hover{background:var(--surface-2)}.chapter-no{font-variant-numeric:tabular-nums;font-size:.72rem;color:var(--muted);width:19px}.chapter-name{flex:1}.chevron{font-size:.7rem;color:var(--muted)}details[open]>summary .chevron{transform:rotate(90deg)}.lesson-link{display:flex;align-items:baseline;gap:9px;padding:9px 9px 9px 17px;color:var(--muted);text-decoration:none;font-size:.78rem;border-radius:7px;line-height:1.55;margin:3px 0}.lesson-link:hover{background:var(--surface-2);color:var(--ink)}.lesson-link[aria-current="page"]{background:var(--primary-soft);color:var(--primary);font-weight:600}.lesson-link .lesson-no{flex-shrink:0;font-variant-numeric:tabular-nums;font-size:.73rem}.nav-dot{margin-left:auto;flex-shrink:0}.sidebar-bottom{padding:20px 8px 0;margin-top:18px;border-top:1px solid var(--line)}.progress-caption{display:flex;justify-content:space-between;font-size:.73rem;margin-bottom:6px}.sidebar-bottom small{display:block;color:var(--muted);font-size:.67rem;margin-top:8px}.course-progress{appearance:none;width:100%;height:4px;border:0;border-radius:3px;overflow:hidden;display:block;background:var(--line)}.course-progress::-webkit-progress-bar{background:var(--line)}.course-progress::-webkit-progress-value{background:var(--primary)}.course-progress::-moz-progress-bar{background:var(--primary)}.workspace{margin-left:246px}.topbar{height:74px;border-bottom:1px solid var(--line);padding:0 36px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--bg)}.topbar-left,.topbar-actions{display:flex;align-items:center;gap:18px}#breadcrumb{font-size:.78rem;color:var(--muted)}.save-status{font-size:.72rem;color:var(--muted)}.save-status::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:7px;background:var(--success)}.save-status.is-error{color:var(--warning)}.save-status.is-error::before{background:var(--warning)}.quiet-button,.icon-button{background:transparent;border:0;border-radius:6px;padding:7px 10px;font-size:.76rem}.icon-button{width:40px;height:40px;font-size:1.3rem;display:inline-flex;align-items:center;justify-content:center}.mobile-menu{display:none}main{padding:36px 40px 64px;max-width:1400px;margin:auto;min-height:calc(100vh - 144px)}main:focus{outline:0}.eyebrow{display:block;font-size:.71rem;letter-spacing:.09em;color:var(--muted);margin-bottom:12px}.lesson-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px}.lesson-head .subtitle{font-size:.84rem;color:var(--muted);margin:0}.lesson-status{font-size:.7rem;padding:5px 10px;border-radius:5px;background:var(--primary-soft);color:var(--primary);white-space:nowrap;margin-top:31px}.view-nav{display:flex;gap:30px;border-bottom:1px solid var(--line);margin-bottom:32px;align-items:center}.view-nav a{display:block;padding:10px 1px 13px;color:var(--muted);text-decoration:none;font-size:.86rem;position:relative}.view-nav a[aria-current="page"]{color:var(--primary);font-weight:600}.view-nav a[aria-current="page"]:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--primary)}.tab-count{font-size:.65rem;padding:1px 6px;background:var(--surface-2);border-radius:4px;margin-left:5px}.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 264px;gap:36px;align-items:start}.reading-column{min-width:0}.intro-copy{font-size:1.03rem;line-height:1.9;max-width:65ch;margin-bottom:24px}.companion{position:sticky;top:24px}.companion-section{padding:0 0 25px;margin:0 0 25px;border-bottom:1px solid var(--line)}.companion-section:last-child{border:0}.companion h2{font-size:.94rem;display:flex;align-items:center;gap:8px}.companion p,.companion li{font-size:.78rem;color:var(--muted);line-height:1.9}.companion ol{padding-left:20px;margin:0 0 17px}.companion .primary-button{width:100%}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 17px;border-radius:7px;font-size:.82rem;font-weight:600;min-height:42px;text-decoration:none}.primary-button{background:var(--primary);color:var(--bg);border:1px solid var(--primary)}.primary-button:hover{background:oklch(.37 .13 330);color:var(--bg)}.secondary-button{background:var(--bg);color:var(--ink);border:1px solid var(--line)}.secondary-button:hover{background:var(--surface)}.button-row{display:flex;gap:10px;flex-wrap:wrap}.tiny-icon{color:var(--primary);font-size:1.1rem}.source-note{overflow-wrap:anywhere;font-size:.72rem!important}.source-note strong{color:var(--ink);font-weight:500}.objective-list{list-style:none;padding:0;margin:0}.objective-list li{display:flex;gap:8px;margin:9px 0}.objective-list li:before{content:"○";color:var(--primary);font-size:.7rem;margin-top:2px}.note-label{display:block;font-size:.78rem;font-weight:600;margin-bottom:9px}.side-note{width:100%;min-height:120px;resize:vertical;padding:10px 12px;border:1px solid var(--line);background:var(--surface);border-radius:7px;font-size:.8rem;line-height:1.8;color:var(--ink)}textarea::placeholder,input::placeholder{color:var(--muted);opacity:1}.caption{font-size:.7rem;color:var(--muted);line-height:1.7}.toc{display:flex;flex-wrap:wrap;gap:7px 15px;padding:16px 0 21px;border-bottom:1px solid var(--line);margin:0 0 4px}.toc a{font-size:.75rem;text-decoration:none;color:var(--muted)}.toc a:hover{color:var(--primary)}.toc a span{font-size:.65rem;color:var(--primary);margin-right:5px}.reading-section{padding:28px 0;border-bottom:1px solid var(--line);scroll-margin-top:30px}.reading-section:last-child{border:0}.reading-section h2{display:flex;gap:12px;align-items:baseline;font-size:1.15rem}.section-no{color:var(--primary);font-size:.73rem;font-weight:500;letter-spacing:.04em}.lesson-prose{font-size:.91rem;line-height:1.95;max-width:72ch;overflow-wrap:anywhere}.lesson-prose p:last-child{margin-bottom:0}.lesson-prose ul,.lesson-prose ol{padding-left:22px}.lesson-prose li{margin:8px 0}.lesson-prose strong{font-weight:650}.lesson-prose table{width:100%;border-collapse:collapse;font-size:.8rem;line-height:1.8;margin:18px 0;table-layout:auto}.lesson-prose th,.lesson-prose td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.lesson-prose th{font-weight:600;background:var(--surface)}.lesson-prose blockquote{margin:20px 0;padding:18px 20px;background:var(--accent-soft);border-radius:8px}.lesson-prose .formula{font-size:1.05rem;padding:20px;background:var(--surface);text-align:center;border-radius:8px}.reading-end{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:26px 0}.check-label{display:flex;align-items:center;gap:9px;font-size:.82rem;cursor:pointer}.check-label input{accent-color:var(--primary);width:17px;height:17px}.experiment{padding:23px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:25px 0 8px}.experiment-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.experiment h2{font-size:1rem;margin-bottom:5px}.experiment .eyebrow{font-size:.64rem;color:var(--primary);margin-bottom:5px}.experiment-head p{font-size:.76rem;color:var(--muted);margin-bottom:17px}.experiment-badge{font-size:.65rem;color:var(--accent);border:1px solid var(--line);padding:3px 8px;border-radius:4px;white-space:nowrap}.experiment-body{display:grid;grid-template-columns:minmax(0,1fr) 133px;gap:24px;align-items:center}.population-grid{display:grid;grid-template-columns:repeat(20,minmax(0,1fr));gap:5px;max-width:400px}.population-dot{display:block;width:100%;aspect-ratio:1;border-radius:50%;background:oklch(.80 .008 330);border:2px solid transparent}.population-dot.positive{background:var(--accent)}.population-dot.selected{outline:2px solid var(--primary);outline-offset:1px}.population-dot.unselected{opacity:.42}.legend{display:flex;gap:14px;margin-top:15px;font-size:.66rem;color:var(--muted);flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:7px;height:7px;border-radius:50%;background:var(--accent)}.legend i.sample-key{background:transparent;outline:2px solid var(--primary);width:6px;height:6px}.sample-number{font-size:2.25rem;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.04em;color:var(--primary);font-weight:600;margin:3px 0 8px}.experiment-result p{font-size:.7rem;color:var(--muted);margin:0}.experiment-result .result-detail{margin-top:12px;color:var(--ink)}.experiment-controls{display:flex;gap:10px;align-items:end;margin-top:23px;flex-wrap:wrap}.experiment-controls label{display:block;font-size:.65rem;color:var(--muted);margin-bottom:4px}.experiment-controls select{font-size:.75rem;height:36px;padding:5px 24px 5px 9px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);max-width:100%}.experiment-controls button{min-height:36px;font-size:.75rem;padding:7px 13px}.experiment-foot{margin:15px 0 0;font-size:.68rem;color:var(--muted);line-height:1.8}.history{display:flex;gap:4px;height:35px;align-items:end;margin-top:13px;border-bottom:1px solid var(--line)}.history-bar{flex:1;min-width:2px;background:var(--primary);border-radius:2px 2px 0 0;opacity:.65;max-width:20px}.practice-intro{display:flex;justify-content:space-between;gap:24px;align-items:center;border-bottom:1px solid var(--line);padding:0 0 24px;margin-bottom:4px}.practice-intro h2{margin:0 0 6px}.practice-intro p{font-size:.8rem;color:var(--muted);margin:0}.practice-counter{font-size:.8rem;white-space:nowrap;color:var(--primary)}.question{padding:28px 0;border-bottom:1px solid var(--line)}.question-meta{display:flex;align-items:center;gap:12px;font-size:.68rem;color:var(--muted);margin-bottom:8px}.question-number{color:var(--primary);font-variant-numeric:tabular-nums}.question h2{font-size:1.06rem;margin-bottom:12px}.question-prompt{white-space:pre-line;font-size:.88rem;line-height:1.95}.answer-label{display:block;font-size:.75rem;font-weight:500;margin:17px 0 8px}.answer-input{display:block;width:100%;min-height:145px;resize:vertical;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);padding:14px;font-size:.88rem;line-height:1.85}.answer-input:focus{border-color:var(--primary)}.hint{font-size:.77rem;margin-top:12px;color:var(--muted)}.hint summary{cursor:pointer;display:list-item}.hint p{margin-top:10px;background:var(--surface);padding:12px 15px;border-radius:6px}.practice-end{padding:25px 0}.practice-end .caption{margin:10px 0 0}.note-area{width:100%;min-height:220px;resize:vertical;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);padding:15px;font-size:.9rem;line-height:1.9}.notes-block{margin-bottom:32px}.notes-block p{font-size:.82rem;color:var(--muted)}.mastery-options{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.mastery-option{display:flex;gap:7px;align-items:center;border:1px solid var(--line);border-radius:7px;padding:9px 13px;font-size:.8rem;cursor:pointer}.mastery-option:has(input:checked){border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.mastery-option input{accent-color:var(--primary)}fieldset{border:0;padding:0;margin:0}legend{font-weight:600;font-size:1rem;margin-bottom:10px}.future-lesson{padding:30px 0}.future-lesson h2{font-size:1.4rem;margin:12px 0}.future-lesson p{max-width:60ch;font-size:.9rem;line-height:1.9}.future-number{font-family:Georgia,serif;font-size:3.8rem;color:var(--primary);line-height:1.1}.future-objectives{padding:22px 0;margin:24px 0;border-block:1px solid var(--line);font-size:.88rem;line-height:2}.roadmap{padding-top:6px}.roadmap-row{display:grid;grid-template-columns:76px 1fr;gap:22px;border-bottom:1px solid var(--line);padding:22px 0}.roadmap-week{font-size:.73rem;color:var(--muted);padding-top:6px}.roadmap-row h2{font-size:1rem;margin-bottom:12px}.roadmap-links{display:flex;gap:7px;flex-wrap:wrap}.roadmap-links a{font-size:.75rem;text-decoration:none;border:1px solid var(--line);border-radius:5px;padding:6px 10px;color:var(--ink)}.roadmap-links a:hover{border-color:var(--primary);color:var(--primary)}.roadmap-links a.ready{background:var(--primary-soft);color:var(--primary);border-color:var(--primary-soft)}.secondary{color:var(--muted);font-size:.82rem;line-height:1.85}.page-footer{display:flex;justify-content:space-between;gap:20px;padding:20px 40px;border-top:1px solid var(--line);font-size:.66rem;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:14px;padding:28px;width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;background:var(--bg);color:var(--ink)}dialog::backdrop{background:oklch(.15 .01 330 / .38)}.handoff-dialog{width:min(720px,calc(100% - 32px))}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:15px}.dialog-head h2{margin:0}.dialog-head .eyebrow{margin-bottom:7px}.dialog-head .icon-button{margin:-6px -7px 0 0;flex-shrink:0}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:17px}dialog label{display:block;font-weight:500;font-size:.8rem;margin-bottom:9px}#handoff-text{width:100%;resize:vertical;min-height:240px;border:1px solid var(--line);border-radius:7px;padding:12px;font-size:.82rem;line-height:1.8}dialog hr{border:0;border-top:1px solid var(--line);margin:27px 0}#import-file{font-size:.8rem;max-width:100%}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:8px;background:var(--ink);color:var(--bg);font-size:.8rem;max-width:calc(100% - 30px);z-index:var(--z-toast)}.loading-copy{color:var(--muted);padding:30px}.course-dialog .course-nav-slot{margin-top:22px}.course-dialog .lesson-link{padding:12px 15px}.course-dialog .chapter-group summary{padding:12px 10px}
@media(min-width:1500px){main{padding-top:45px}.content-layout{gap:48px;grid-template-columns:minmax(0,1fr) 285px}.sidebar{width:260px}.workspace{margin-left:260px}}
@media(max-width:1190px){.sidebar{width:220px;padding-inline:15px}.workspace{margin-left:220px}main{padding:30px 28px 50px}.topbar{padding-inline:28px}.content-layout{gap:25px;grid-template-columns:minmax(0,1fr) 226px}.experiment-body{gap:16px;grid-template-columns:minmax(0,1fr) 103px}.population-grid{gap:4px}.sample-number{font-size:1.9rem}}
@media(max-width:1050px){.content-layout{grid-template-columns:minmax(0,1fr)}.companion{position:static;display:grid;grid-template-columns:1fr 1fr;gap:25px;border-top:1px solid var(--line);padding-top:28px}.companion-section{margin:0}.companion-section:last-child{grid-column:1/-1}.experiment-body{grid-template-columns:minmax(0,1fr) 140px;gap:30px}.experiment{max-width:700px}.population-grid{gap:6px}.lesson-prose{max-width:none}}
@media(max-width:900px){.sidebar{display:none}.workspace{margin-left:0}.mobile-menu{display:inline-flex}.topbar{height:66px;padding:0 22px}.topbar-left{gap:9px}main{padding:30px 30px 50px}.topbar-actions{gap:12px}.save-status{font-size:.68rem}.page-footer{padding-inline:30px}.content-layout{gap:25px}.lesson-head h1{font-size:1.85rem}}
@media(max-width:560px){.topbar{padding:0 12px}.topbar-actions{gap:0}.topbar-actions .save-status{display:none}#breadcrumb{font-size:.7rem}.quiet-button{font-size:.72rem}main{padding:25px 20px 40px}.lesson-head{gap:12px;display:block}.lesson-head h1{font-size:1.55rem}.lesson-status{display:inline-block;margin-top:16px}.lesson-head .subtitle{font-size:.73rem}.eyebrow{font-size:.64rem}.view-nav{gap:23px;margin-bottom:25px}.view-nav a{font-size:.8rem}.intro-copy{font-size:.94rem}.experiment{padding:17px}.experiment-body{grid-template-columns:minmax(0,1fr) 94px;gap:17px}.population-grid{gap:4px}.population-dot{border-width:1px}.population-dot.selected{outline-width:1px}.sample-number{font-size:1.6rem}.experiment-badge{display:none}.experiment-controls{gap:8px}.experiment-controls select{font-size:.68rem;padding-right:18px}.experiment-controls button{font-size:.7rem}.companion{grid-template-columns:1fr;gap:22px}.companion-section{padding-bottom:22px}.companion-section:last-child{grid-column:auto}.reading-end{align-items:flex-start;flex-direction:column}.lesson-prose{font-size:.87rem}.lesson-prose table{font-size:.7rem}.lesson-prose th,.lesson-prose td{padding:9px 6px}.practice-intro{gap:12px}.practice-intro p{font-size:.75rem}.page-footer{padding:18px 20px;flex-direction:column;gap:5px}.roadmap-row{grid-template-columns:54px 1fr;gap:12px}.roadmap-week{font-size:.65rem}.roadmap-links a{font-size:.7rem}dialog{padding:21px}.dialog-head h2{font-size:1.1rem}.mastery-options{gap:7px}.mastery-option{padding:8px 10px;font-size:.75rem}.legend{gap:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(max-width:560px){.topbar-actions .save-status.is-error{display:block;font-size:.62rem;max-width:88px;line-height:1.4}.topbar-actions:has(.is-error){gap:5px}}
@media print{.sidebar,.topbar,.companion,.view-nav,.page-footer,.experiment-controls,.button-row,.reading-end,.practice-end{display:none!important}.workspace{margin:0}main{max-width:none;padding:0}.content-layout{display:block}.reading-section,.question{break-inside:avoid}.answer-input,.note-area{border:1px solid var(--line)}body{font-size:12pt}.experiment{break-inside:avoid}}
