:root{font-family:Inter,"Segoe UI","Noto Sans SC","Microsoft YaHei",sans-serif;color:#253a3b;background:#f7f8fa;font-synthesis:none;--teal:#24796e;--line:#e7ebed;--muted:#899496;--mint:#eaf4f0}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #da9e43;outline-offset:4px}button{border:0;background:none}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.sidebar{overflow-y:auto;width:244px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:34px 22px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:12px;align-items:center;font-size:21px;font-weight:700;letter-spacing:1px}.brand-icon{display:grid;place-items:center;background:#287d70;border-radius:13px;color:white;width:43px;height:46px;font-family:serif;font-size:27px}.brand small{display:block;font-size:9px;color:#8b9895;letter-spacing:1.5px;margin-top:5px}.sidebar-caption{font-size:11px;color:#a0aaa8;margin:27px 8px 20px}.overview-link,.practice-nav{display:flex;align-items:center;width:100%;gap:13px;padding:13px 12px;text-align:left;font-size:13px;border-radius:8px}.overview-link{background:#f3f6f5;margin-top:28px}.overview-link>span:first-child,.practice-nav>span:first-child{font-size:20px;color:#647d75}.tiny-tag{font-size:8px;margin-left:auto;color:#8b9f97;letter-spacing:1px}.nav-heading{font-size:11px;color:#969f9f;margin:32px 12px 14px}.nav-heading span{font-size:8px;letter-spacing:1px;margin-left:9px}.subject-nav-button{display:flex;align-items:center;gap:13px;width:100%;padding:13px 12px;border-radius:8px;text-align:left;font-size:14px;margin-bottom:3px}.subject-nav-button.active{background:#eaf4f0;color:var(--teal);font-weight:650}.subject-nav-button .nav-icon{font-size:20px;width:20px;text-align:center}.subject-nav-button .chevron{margin-left:auto;font-size:12px}.section-list{border-left:1px solid #dee8e3;margin:4px 0 13px 22px;padding:3px 0 3px 17px;max-height:260px;overflow:auto}.section-list button{display:block;padding:9px 4px;width:100%;text-align:left;font-size:12px;color:#899592}.section-list button.active{color:var(--teal);font-weight:600}.practice-nav{margin-top:20px;border-top:1px solid var(--line);border-radius:0;padding-top:23px}.practice-nav>span:last-child{margin-left:auto;border-radius:4px;font-size:10px;background:#f1f4f3;padding:3px 6px}.sidebar-bottom{font-size:10px;color:#8b9995;margin-top:auto;padding:26px 4px 0;line-height:2.4}.sidebar-bottom small{margin-left:14px;font-size:10px}.local-dot{display:inline-block;width:5px;height:5px;background:#6aa48b;border-radius:50%;margin-right:7px}.workspace{margin-left:244px}.topbar{height:76px;border-bottom:1px solid var(--line);background:#ffffffb8;display:flex;align-items:center;justify-content:space-between;padding:0 42px;font-size:11px}.breadcrumb{display:flex;gap:15px;color:#8a9594}.breadcrumb strong{font-weight:500;color:#465b57}.breadcrumb>span:nth-child(odd){color:#c0c9c6}.header-actions{display:flex;align-items:center;gap:22px}.text-only{color:#9aa39f;font-size:10px}.progress-button{border:1px solid #dde5e1;background:white;padding:8px 13px;border-radius:7px;font-size:11px;display:flex;gap:7px;align-items:center}.avatar{height:31px;width:31px;display:grid;place-items:center;border-radius:50%;background:#e7ede9;color:#5b7a6b;font-size:11px}.mobile-menu{display:none}main{max-width:1370px;margin:0 auto;padding:40px 42px 24px}.page-intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:33px}.eyebrow{font-size:10px;letter-spacing:1.3px;color:#7c948a;display:flex;gap:8px;align-items:center;font-weight:550}.page-intro .eyebrow>span{width:5px;height:5px;background:#599a80;border-radius:50%}h1{font-size:32px;letter-spacing:1px;margin:13px 0 12px;font-weight:650}h1 span{color:var(--teal)}.page-intro p{font-size:12px;color:#8a9494;margin:0}.intro-art{position:relative;width:140px;height:96px;margin-right:25px;color:#619486}.intro-art span{position:absolute;right:10px;top:3px;background:#eef2e9;border-radius:11px;transform:rotate(13deg);padding:8px 15px;font-size:27px;font-family:serif;color:#acb797}.intro-art b{position:absolute;left:9px;top:20px;font-family:Georgia,serif;font-style:italic;font-size:32px;border:1px solid #d6e7e0;border-radius:10px;background:#eef6f2;padding:11px 20px;transform:rotate(-9deg);font-weight:400}.intro-art i{position:absolute;right:0;bottom:0;color:#bdc8b8;font-size:25px}.course-tabs{display:flex;gap:28px;border-bottom:1px solid #dde5e3;margin-bottom:28px}.course-tabs button{position:relative;padding:0 3px 16px;display:flex;gap:9px;align-items:center;font-size:13px;color:#7f8e89;white-space:nowrap}.course-tabs button.active{color:var(--teal);font-weight:650}.course-tabs button.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:3px;border-radius:3px;background:var(--teal)}.tab-jp{font-size:9px;color:#a1aba6;font-weight:400}.course-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px;gap:15px}.course-toolbar>div{display:flex;align-items:center;gap:10px}.section-mark{height:14px;width:3px;background:#3e8b7b;border-radius:3px}h2,h3,p{overflow-wrap:anywhere}.course-toolbar h2{font-size:16px;margin:0;font-weight:600}.pill{font-size:9px;background:#ecf2ef;color:#769086;padding:4px 7px;border-radius:4px}.course-toolbar label{font-size:10px;color:#92a099;display:flex;align-items:center;gap:9px}select{border:1px solid #e0e7e3;background:#fff;border-radius:6px;color:#617970;font-size:11px;padding:7px 28px 7px 10px;max-width:210px}.learning-layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(255px,1fr);gap:20px}.lesson-card,.analysis-card,.quiz-card,.empty-card{border:1px solid #e3e9e5;background:white;border-radius:12px;box-shadow:0 3px 9px #30453702}.lesson-card{padding:25px 26px 0;min-width:0}.lesson-header{display:flex;justify-content:space-between;align-items:center}.lesson-number{font-size:9px;letter-spacing:1.3px;color:#88a095;margin-bottom:9px}.lesson-header h2{font-size:21px;margin:0;font-weight:600}.level{font-size:9px;color:#879b76;background:#f0f5e9;padding:5px 9px;border-radius:5px}.lesson-description{font-size:11px;color:#8a9692;line-height:1.9;margin:14px 0 20px}.formula-stage{border:1px solid #e4ece7;border-radius:8px;background-color:#f8fbf9;background-image:radial-gradient(#c9dcd240 .8px,transparent .8px);background-size:14px 14px;padding:15px 17px 13px}.stage-label{display:flex;justify-content:space-between;color:#9daea6;font-size:9px;letter-spacing:.8px}.stage-label span:last-child{letter-spacing:0}.formula-scroll{overflow-x:auto;padding:8px 2px}.formula{display:flex;justify-content:center;align-items:center;min-height:126px;min-width:max-content;font-family:"Cambria Math",Georgia,"Times New Roman",serif;font-size:42px;color:#304c43}.formula-caption{text-align:center;color:#8eaaa0;font-size:10px;min-height:18px}.formula-node{display:inline-flex;align-items:center;position:relative;border-radius:4px;flex-shrink:0}.math-hit{font:inherit;color:inherit;padding:3px 7px;min-height:36px;min-width:32px;border-radius:4px;line-height:1.2}.math-hit:hover{background:#dbece3}.formula-node.selected{background:#dcefe5;outline:1px solid #7cbaa2}.node-row{gap:9px}.node-fraction,.derivative-stack{display:inline-flex;flex-direction:column;align-items:stretch;text-align:center;padding:3px 9px}.numerator,.denominator{display:flex;justify-content:center;align-items:center}.fraction-line{width:100%;height:14px;min-height:14px;position:relative;padding:0;min-width:38px}.fraction-line:after{content:"";position:absolute;left:0;right:0;top:6px;height:2px;background:currentColor}.sup,.sub{font-size:.58em;display:inline-flex}.sup{align-self:flex-start;transform:translateY(-.1em)}.sub{align-self:flex-end;transform:translateY(.2em)}.sup .math-hit,.sub .math-hit{padding:2px 4px;min-width:25px;min-height:28px}.script-stack{display:flex;flex-direction:column;gap:5px}.script-stack>.sup,.script-stack>.sub{font-size:.58em;transform:none}.node-root{padding-top:7px}.node-root>.math-hit{font-size:1.25em;padding-right:0}.radicand{border-top:2px solid;padding-top:2px}.root-degree{font-size:.4em;align-self:flex-start;margin-right:-7px}.node-vector{flex-direction:column}.vector-mark{font-size:.6em;min-height:20px;padding:0;line-height:1}.matrix-grid{display:grid;gap:5px 10px}.bounds{display:flex;flex-direction:column;align-items:center;font-size:.45em;margin:0 5px}.bounds>.math-hit{font-size:2em}.bounds>.big-symbol{font-size:3.4em}.bound{display:flex;align-items:center}.big-symbol{font-size:1.7em}.node-reaction{flex-direction:column}.condition{font-family:inherit;font-size:.3em;min-height:24px}.reading-panel{padding-top:22px}.panel-heading{display:flex;align-items:center;gap:8px}.panel-heading h3{font-size:12px;font-weight:600;margin:0}.teal-square{width:21px;height:21px;border-radius:5px;display:grid;place-items:center;color:#558879;background:#eef5f1;font-size:13px}.text-button{font-size:11px;color:var(--teal);padding:9px 3px}.panel-heading .text-button{margin-left:auto;font-size:9px;padding:2px}.japanese{font-family:"Yu Gothic","Hiragino Kaku Gothic ProN","Microsoft YaHei",sans-serif;line-height:1.7}.whole-reading{font-size:21px;letter-spacing:1px;margin:13px 0 9px}.variants{font-size:10px;color:#8f9b97;line-height:1.8}.tip{display:flex;align-items:flex-start;gap:9px;border-radius:6px;background:#faf8f0;padding:10px 13px;margin:19px 0;color:#99895e;font-size:10px}.tip>span{font-size:16px}.tip p{margin:3px 0;line-height:1.6}.lesson-footer{border-top:1px solid #d7e2db;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px;color:#52675e;padding:18px 0;margin-top:20px}.lesson-footer .text-button{font-size:10px}.lesson-footer .text-button span{margin-left:10px}.analysis-card{padding:25px 22px 0;display:flex;flex-direction:column;min-width:0}.outline-icon{font-size:19px;color:#6a8c7d}.muted{color:#8b9994}.small{font-size:10px;margin:9px 0 16px;line-height:1.8}.structure{display:flex;flex-direction:column;gap:7px;max-height:300px;overflow:auto;padding:2px;margin-top:20px}.structure-button{display:flex;align-items:center;gap:11px;border:1px solid #e5eae7;border-radius:6px;text-align:left;padding:8px 10px;min-height:47px;font-size:11px;background:#fff}.structure-button.active{background:#eff7f2;border-color:#a8c9b8}.structure-symbol{font:19px Georgia,serif;min-width:25px;text-align:center;color:#526f60}.structure-label{display:flex;flex-direction:column;gap:4px;min-width:0}.structure-label small{font-size:14px;color:#52675e;overflow-wrap:anywhere;white-space:normal}.structure-button>span:last-child{margin-left:auto;font-size:11px;color:#8ea398}.selection-detail{padding:18px 0 14px;margin-top:17px;border-top:1px dashed #dfe7e2}.selection-detail .eyebrow{font-size:9px;letter-spacing:.3px}.selection-detail .eyebrow span{background:#ecf4ef;color:#598673;padding:3px 5px;border-radius:3px;font-size:8px}.selection-detail .japanese{color:#286e57;font-size:20px;margin:9px 0}.selection-detail>p:last-child{font-size:10px;line-height:1.9;color:#8d9b92;margin:0}.analysis-bottom{margin-top:auto;padding:12px 0;border-top:1px solid #edf0ee;font-size:9px;color:#9eaaa4}.quiz-card{margin-top:22px;display:grid;grid-template-columns:1fr 2.2fr;padding:23px 26px;gap:27px}.quiz-left{border-right:1px solid #e9eeeb;padding-right:20px}.quiz-left .eyebrow{font-size:8px;letter-spacing:1px}.quiz-left h2{font-size:17px;margin:12px 0 9px;font-weight:600}.quiz-left p{font-size:10px;color:#96a098;line-height:1.8}.quiz-type{color:#82968b;font-size:9px;margin-top:19px}.quiz-top{display:flex;gap:12px;justify-content:space-between;align-items:center}.quiz-top h3{font-size:12px;font-weight:500;margin:0 0 13px}.quiz-top>span{font-size:9px;white-space:nowrap;color:#a5afa9;align-self:flex-start}#quiz-options{display:flex;flex-wrap:wrap;gap:8px}.quiz-option{display:flex;align-items:center;gap:10px;border:1px solid #b9c9c1;padding:12px 13px;border-radius:6px;font-size:16px;flex:1 1 150px;white-space:normal}.quiz-option>span{font:10px sans-serif;color:#a0aca5}.quiz-option.selected{border-color:#7daf98;background:#f0f7f2;color:#286e57}.quiz-actions{display:flex;gap:15px;justify-content:flex-end;margin-top:14px}.primary-button{display:flex;align-items:center;justify-content:center;gap:20px;background:#287a69;color:white;padding:11px 17px;border-radius:6px;font-size:10px;min-height:37px}.primary-button:hover{background:#1b6254}#quiz-feedback{font-size:11px;line-height:1.8;margin-top:10px;color:#39705b}#quiz-feedback.error{color:#a15537}#quiz-options .formula{font-size:30px;min-height:85px;width:100%}.order-answer{padding:10px;border:1px dashed #a7bdb1;border-radius:5px;width:100%;font-size:13px;min-height:42px}.bottom-note{display:flex;justify-content:space-between;gap:20px;font-size:9px;color:#a2ada8;margin-top:23px}.bottom-note>span:first-child{font-family:serif;letter-spacing:1px}.note-dot{color:#93b4a0;font-size:7px;margin:0 5px}.empty-card{padding:40px;text-align:center}.empty-card p{color:#7e9288;font-size:13px}.empty-card button{margin:auto}.icon-button{min-width:40px;min-height:40px;font-size:23px}.skip-link{position:fixed;top:-60px;left:10px;z-index:100;padding:12px;background:white}.skip-link:focus{top:10px}.storage-warning{font-size:12px;color:#9f6426}dialog{border:1px solid #dce6df;border-radius:14px;padding:25px;max-width:540px;width:calc(100% - 32px);color:inherit;max-height:85vh}dialog::backdrop{background:#183a3555}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head h2{font-size:20px}dialog p,dialog li{font-size:12px;line-height:1.8}dialog h3{font-size:14px;margin-top:25px}.progress-stats{display:flex;gap:14px}.stat{flex:1;padding:16px;background:#edf5ef;border-radius:8px;font-size:11px}.stat strong{display:block;font-size:25px;color:var(--teal);margin-bottom:5px}#viewed-sections{font-size:12px;line-height:1.8;color:#7c9185}#wrong-list button{display:block;width:100%;text-align:left;background:#f6f8f5;border-radius:5px;padding:12px;margin-top:6px;font-size:12px}
@media(min-width:1500px){main{padding-top:48px}.formula{min-height:160px}.structure{max-height:260px}.lesson-description{font-size:12px}.quiz-card{margin-top:25px}}@media(max-width:1150px){.sidebar{width:215px;padding:30px 16px}.workspace{margin-left:215px}main{padding:30px 26px}.topbar{padding:0 26px}.header-actions{gap:12px}.text-only{display:none}.learning-layout{grid-template-columns:minmax(0,1.6fr) minmax(245px,1fr);gap:15px}.lesson-card{padding:20px 20px 0}.analysis-card{padding:20px 16px 0}.quiz-card{grid-template-columns:1fr 2fr;padding:20px;gap:20px}.quiz-option{font-size:11px;padding:11px 8px}.course-tabs{gap:22px}.tab-jp{display:none}.bottom-note>span:last-child{max-width:240px;text-align:right}}@media(max-width:900px){.sidebar{width:200px}.workspace{margin-left:200px}.brand{font-size:18px}.learning-layout{grid-template-columns:1fr}.analysis-card{padding-bottom:0}.structure{display:grid;grid-template-columns:1fr 1fr;max-height:190px}.selection-detail{margin-top:14px}.quiz-card{grid-template-columns:1fr}.quiz-left{border:0;padding:0}.quiz-left p{display:none}.quiz-type{margin-top:8px}.quiz-left h2{margin-bottom:0}.intro-art{display:none}.course-toolbar{align-items:flex-start;flex-direction:column}.formula{min-height:135px}.course-tabs{justify-content:space-between;gap:10px}.bottom-note>span:last-child{display:none}}@media(max-width:640px){.sidebar{visibility:hidden;transform:translateX(-100%);width:255px;box-shadow:15px 0 50px #12332b25;transition:transform .2s}.sidebar.open{visibility:visible;transform:translateX(0)}.workspace{margin-left:0}.mobile-menu{display:block}.topbar{height:63px;padding:0 15px;gap:8px}.breadcrumb{gap:8px;font-size:10px}.header-actions{margin-left:auto}.avatar{display:none}.progress-button{padding:8px;font-size:10px}main{padding:25px 16px 20px}.page-intro{margin-bottom:28px}h1{font-size:27px}.page-intro p{font-size:10px}.eyebrow{font-size:9px}.course-tabs button{font-size:12px}.course-toolbar>div{gap:7px}.course-toolbar h2{font-size:15px}.lesson-card{padding:20px 17px 0}.lesson-description{font-size:11px}.formula-stage{padding:13px 10px}.math-hit{min-width:36px;min-height:40px}.formula{font-size:39px}.whole-reading{font-size:19px}.structure-button{min-height:48px}.quiz-card{padding:20px 17px}.quiz-option{flex-basis:100%;min-height:44px}.quiz-actions button{min-height:44px}.text-button{min-height:38px}.structure-label small{max-width:none}.stage-label{font-size:8px}.progress-stats{gap:6px}.stat{padding:12px 9px}.stat strong{font-size:22px}}
/* Reading scale: keep text readable at 100%, including narrower viewports. */
:root { --muted: #52675e; }
body { font-size: 16px; line-height: 1.65; }
.brand small, .nav-heading, .sidebar-bottom, .breadcrumb, .lesson-number,
.stage-label, .level, .eyebrow, .selection-detail .eyebrow,
.selection-detail .eyebrow span, .quiz-type, .quiz-top > span,
.practice-nav > span:last-child { font-size: 14px; color: #52675e; letter-spacing: .2px; }
.overview-link, .practice-nav, .subject-nav-button, .section-list button,
.course-tabs button, .progress-button, .text-button,
.panel-heading .text-button, .quiz-option, .order-answer,
.primary-button, #wrong-list button { font-size: 16px; }
.section-list button, .course-tabs button, .muted,
.lesson-description, .variants, .selection-detail > p:last-child,
#viewed-sections { color: #42594f; }
.lesson-description, .selection-detail > p:last-child,
.quiz-top h3, #quiz-feedback, dialog p, dialog li, #viewed-sections,
.empty-card p, .storage-warning { font-size: 16px; line-height: 1.8; }
.variants, .tip, .stat, .structure-label small, .quiz-option > span { font-size: 14px; }
.variants { margin-bottom: 16px; }
.tip { color: #6e5826; }
.quiz-option > span { color: #52675e; }
.panel-heading h3, .structure-button { font-size: 16px; }
.structure-button { min-height: 64px; }
.structure-button > span:last-child { color: #52675e; }
.course-toolbar h2, .quiz-left h2 { font-size: 22px; }
.lesson-header h2 { font-size: 26px; scroll-margin-top: 24px; }
.whole-reading, .selection-detail .japanese { font-size: 24px; }
.primary-button, .progress-button, .text-button { min-height: 44px; }
.primary-button { font-weight: 600; }
#next-lesson { margin-left: auto; text-align: left; }
.course-toolbar { padding: 16px 20px; border: 1px solid #b8cfc2; border-radius: 10px; background: #edf5f0; flex-wrap: wrap; }
.course-toolbar label { font-size: 16px; font-weight: 600; color: #253a3b; gap: 12px; }
#lesson-select { font-size: 16px; color: #253a3b; border: 1px solid #628575; min-height: 46px; padding: 9px 32px 9px 12px; max-width: 340px; cursor: pointer; }
.breadcrumb > span:nth-child(odd) { color: #52675e; }
.selection-detail .eyebrow span { color: #2e624c; }
.quiz-main { min-width: 0; }
.sidebar-close { display: none; }
.sidebar-backdrop { position: fixed; inset: 0; z-index: 19; background: #183a3555; }
@media (max-width: 1150px) { .learning-layout { grid-template-columns: minmax(0, 1fr); } .structure { max-height: 280px; } }
@media (max-width: 640px) {
  .sidebar-close { display: block; align-self: flex-end; margin: -22px -8px 8px 0; }
  .breadcrumb { font-size: 13px; gap: 5px; }
  .progress-button { font-size: 14px; }
  .course-tabs { gap: 7px; overflow-x: auto; }
  .course-tabs button { font-size: 15px; }
  .course-toolbar { padding: 16px; align-items: stretch; }
  .course-toolbar label { align-items: stretch; flex-direction: column; gap: 6px; }
  #lesson-select { width: 100%; max-width: none; }
  #next-lesson { width: 100%; }
  .structure { grid-template-columns: minmax(0, 1fr); }
  .stage-label { font-size: 14px; }
  .progress-stats { flex-wrap: wrap; }
  .stat { min-width: 100px; }
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
