:root{--paper:#fff;--ink:#333;--muted:#676767;--accent:#d63b20;--line:#e7e7e7;--soft:#f7f7f7;--danger:#a83226;--focus:#174f78;--font-sans:"Noto Sans CJK SC", "Microsoft YaHei", "PingFang SC", sans-serif;--font-reading:Georgia, "Times New Roman", serif;--display:clamp(42px, 5vw, 70px);--title:clamp(32px, 3.2vw, 50px);--heading:clamp(24px, 2vw, 31px);--body:clamp(20px, 1.55vw, 25px);--support:clamp(17px, 1.3vw, 21px);--body-leading:1.55;--reading-leading:1.65;--control-height:44px;--content-measure:72ch}*{box-sizing:border-box}html,body{background:var(--paper);min-height:100%;color:var(--ink);font-family:var(--font-sans);margin:0}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus{outline:none}.picker{flex-direction:column;justify-content:center;min-height:100vh;padding:clamp(28px,6vw,86px);display:flex}.picker-header{max-width:1050px;margin-bottom:42px}.level-back{border:1px solid var(--line);border-left:4px solid var(--accent);min-height:44px;color:var(--ink);align-items:center;margin-bottom:28px;padding:8px 14px;font-size:17px;font-weight:800;text-decoration:none;display:inline-flex}.eyebrow{color:var(--accent);letter-spacing:.12em;margin-bottom:15px;font-size:16px;font-weight:800}.picker h1,.hero h1{max-width:1050px;font-size:var(--display);letter-spacing:0;margin:0;line-height:1.14}.lead{max-width:980px;color:var(--muted);margin-top:22px;font-size:clamp(23px,2.05vw,34px);line-height:1.55}.course-grid{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),390px));gap:18px;display:grid}.course-card{border:1px solid var(--line);border-top:5px solid var(--accent);min-height:220px;color:var(--ink);text-align:left;cursor:pointer;background:#fff;border-radius:2px;padding:28px}.course-card:hover{background:#faf6f5;transform:translateY(-2px)}.course-card strong{margin-bottom:16px;font-size:clamp(30px,3vw,46px);display:block}.course-card span{color:var(--muted);font-size:20px;line-height:1.6}.course-card em{color:var(--accent);letter-spacing:.06em;margin-top:22px;font-size:14px;font-style:normal;font-weight:900;display:block}.course-card.featured{background:#fff9f7}.picker-note{color:var(--muted);margin-top:28px;font-size:16px}.loading{min-height:100vh;color:var(--accent);place-items:center;font-size:24px;font-weight:800;display:grid}.app{grid-template-rows:42px 1fr 58px;height:100vh;display:grid;overflow:hidden}.topbar,.bottombar{background:var(--paper);z-index:5;align-items:center;gap:14px;padding:0 clamp(18px,4vw,70px);display:flex}.topbar{border-bottom:1px solid var(--line)}.brand{letter-spacing:.06em;font-size:14px;font-weight:800}.brand-button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.topbar-link{color:var(--ink);white-space:nowrap;flex:none;align-items:center;text-decoration:none;display:inline-flex}.chapter{color:var(--accent);font-size:14px;font-weight:800}.progress{background:#eee;flex:1;height:3px}.progress span{background:var(--accent);width:0;height:100%;display:block}.stage{position:relative;overflow:hidden}.slide{background:var(--paper);padding:34px clamp(28px,5vw,92px) 44px;display:none;position:absolute;inset:0;overflow:auto}.slide.active{display:block}h1,h2,h3,p{margin-top:0}h2{font-size:var(--title);letter-spacing:0;margin:0 0 34px;padding-bottom:18px;line-height:1.18;position:relative}h2:after{content:"";background:var(--accent);height:4px;position:absolute;bottom:0;left:0;right:0}h3{font-size:var(--heading);margin-bottom:12px}p,li,.question{font-size:var(--body);line-height:var(--body-leading)}.slide>p,.slide>ul,.slide>ol,.slide>.question{max-width:var(--content-measure)}.track-humanities .question,.track-humanities .reveal{line-height:var(--reading-leading)}.hero{flex-direction:column;justify-content:center;min-height:72vh;display:flex}.grid2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;display:grid}.grid2>*+*{border-left:1px solid #ddd;padding-left:30px}.card{min-width:0;margin-bottom:24px}.rule{border-left:5px solid var(--accent);padding-left:22px}.tags{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.tag{background:var(--accent);color:#fff;padding:4px 9px;font-size:14px;font-weight:800}.tag.source{color:#555;background:#eee}.plain-list{margin:0;padding-left:1.2em}.method{border-left:4px solid var(--accent);font-size:var(--support);background:#faf6f5;padding:15px 18px;line-height:1.6}.question{margin:13px 0;font-weight:700}.actions{flex-wrap:wrap;gap:10px;margin-top:15px;display:flex}.actions button,.navbtn,.toc button{min-height:var(--control-height);color:var(--ink);cursor:pointer;background:#fff;border:1px solid #bbb;border-radius:2px;padding:9px 15px;font-size:17px;font-weight:800}.actions .answer-btn,.navbtn.primary,.toc .close{border-color:var(--accent);background:var(--accent);color:#fff}.actions .solution-btn{color:#fff;background:#444;border-color:#444}.slide-back{border:1px solid #bbb;border-left:4px solid var(--accent);min-height:44px;color:var(--ink);cursor:pointer;background:#fff;border-radius:2px;margin-bottom:20px;padding:8px 14px;font-size:17px;font-weight:800}.slide-back:hover{background:#faf6f5}.reveal{font-size:var(--support);border-left:4px solid;margin-top:12px;padding:13px 16px;line-height:1.65;display:none}.reveal.show{display:block}.answer{border-color:var(--accent);background:#fff5f2}.solution{background:var(--soft);border-color:#777}.reveal-label{letter-spacing:.08em;margin-bottom:5px;font-size:14px;font-weight:900;display:block}.mistake{color:var(--danger);border-top:1px solid #ddd;margin-top:9px;padding-top:9px;font-weight:750;display:block}.route{flex-wrap:wrap;align-items:center;gap:12px;margin-top:26px;display:flex}.route span{border:1px solid var(--line);border-top:4px solid var(--accent);font-size:var(--support);padding:9px 14px;font-weight:850}.route b{color:var(--accent)}.reference-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.mini-en,[lang=en]{font-family:var(--font-reading);line-height:var(--reading-leading);letter-spacing:.01em}.pattern-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;display:grid}.pattern-list>div{border-left:4px solid var(--accent);background:var(--soft);padding:16px 18px}.pattern-list b{color:var(--accent);font-size:var(--support);display:block}.pattern-list p{font-size:var(--support);margin:8px 0 0}.exam-page h2{margin-bottom:20px}.exam-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch;gap:24px;display:grid}.exam-source,.exam-model{border:1px solid var(--line);background:var(--soft);min-width:0;padding:18px 20px}.exam-model{border-top:5px solid var(--accent);background:#fff}.exam-source h3,.exam-model h3{color:var(--accent)}.exam-source p,.exam-source li,.exam-model p{font-size:var(--support)}.key-sentence{border:3px solid var(--accent);-webkit-box-decoration-break:clone;box-decoration-break:clone;background:#fff9f7;border-radius:50%;padding:1px 7px 2px;display:inline}.compact-variants{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.compact-variants span{border:1px solid var(--line);color:var(--muted);padding:5px 10px;font-size:14px;font-weight:800}.scroll-source{scrollbar-color:var(--accent) #eee;max-height:52vh;overflow:auto}.continuation-exam .exam-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.rubric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:28px;display:grid}.rubric-grid>div{border-top:5px solid var(--accent);background:var(--soft);min-height:180px;padding:20px}.rubric-grid b{color:var(--accent);font-size:var(--heading);margin-bottom:16px;display:block}.rubric-grid span{font-size:var(--support);line-height:1.6}.evidence-board{border:1px solid var(--line);border-left:6px solid var(--accent);background:#fff;margin-bottom:24px;padding:24px 28px}.evidence-board>p{margin-bottom:18px;font-size:clamp(23px,1.8vw,29px)}.evidence-legend{flex-wrap:wrap;gap:10px;display:flex}.evidence-legend span{font-size:var(--support);border:2px solid;padding:7px 12px;font-weight:900}.evidence-legend .person{color:#8b1e12}.evidence-legend .problem{color:#8a4b00}.evidence-legend .clue{color:#174f78}.evidence-legend .emotion{color:#6b367e}.plot-bridge{grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:14px;margin-bottom:30px;display:grid}.plot-bridge>div{border:1px solid var(--line);border-top:5px solid var(--accent);background:var(--soft);min-height:150px;padding:20px}.plot-bridge span{color:var(--accent);margin-bottom:13px;font-size:16px;font-weight:900;display:block}.plot-bridge b{font-size:var(--support);line-height:1.55}.plot-bridge i{color:var(--accent);font-size:34px;font-style:normal;font-weight:900}.diagnosis-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:28px;display:grid}.diagnosis-grid>div{border:1px solid var(--line);background:var(--soft);min-height:220px;padding:24px}.diagnosis-grid .bad,.diagnosis-grid .good{margin-bottom:10px;font-size:38px;font-weight:900;display:block}.diagnosis-grid .bad{color:var(--danger)}.diagnosis-grid .good{color:#2d6d3b}.diagnosis-grid small{color:var(--muted);font-size:var(--support);line-height:1.5}.timer-card{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.timer-card>div{border-top:5px solid var(--accent);background:var(--soft);padding:20px}.timer-card b{color:var(--accent);font-size:clamp(30px,3vw,46px);display:block}.timer-card span{font-size:var(--support);margin-top:8px;line-height:1.55;display:block}.revision-strip{border:1px solid var(--line);grid-template-columns:auto 1fr auto auto 1fr;align-items:center;gap:14px;margin-bottom:22px;padding:18px;display:grid}.revision-strip span{color:var(--accent);font-weight:900}.revision-strip p{font-size:var(--support);margin:0}.revision-strip>b{color:var(--accent);font-size:30px}.upgrade-table{background:var(--soft);grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin-bottom:32px;padding:22px;display:grid}.upgrade-table>b{color:var(--accent);font-size:34px}.upgrade-table span{color:var(--accent);font-size:15px;font-weight:900}.word-ladder{gap:13px;margin-bottom:28px;display:grid}.word-ladder>div{border-bottom:1px solid var(--line);grid-template-columns:100px repeat(3,1fr);align-items:center;gap:12px;padding-bottom:12px;display:grid}.word-ladder b{color:var(--accent);font-size:var(--support)}.word-ladder span{font-family:Georgia,Times New Roman,serif;font-size:var(--body)}.timeline{grid-template-columns:repeat(5,1fr);gap:14px;display:grid}.timeline>div,.check-grid>div{border-top:5px solid var(--accent);background:var(--soft);min-height:150px;padding:18px}.timeline b,.check-grid b{color:var(--accent);font-size:32px;display:block}.timeline span,.check-grid span{font-size:var(--support);margin:8px 0;font-weight:900;display:block}.timeline small,.check-grid small{color:var(--muted);font-size:16px;line-height:1.5}.check-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.check-grid.six{grid-template-columns:repeat(3,1fr)}.visual-box{border:1px solid var(--line);background:#fff;min-height:320px}.bar-chart{background:repeating-linear-gradient(0deg,#0000 0 43px,#ececec 44px);border-bottom:2px solid #555;border-left:2px solid #555;justify-content:space-around;align-items:flex-end;gap:18px;min-height:250px;margin:18px 0 8px;padding:22px 18px 0;display:flex}.bar-chart.compact{max-width:720px;min-height:210px}.bar-item{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:58px;max-width:110px;display:flex}.bar-value{color:var(--accent);font-size:18px;font-weight:900}.bar{width:min(72px,82%);height:calc(var(--bar) * 34px);border:2px solid var(--accent);background:#f5d9d2}.bar-label,.axis-note{font-size:16px;font-weight:800}.bar-label{margin-top:7px}.axis-note{color:var(--muted)}.bar-chart.histogram{justify-content:center;gap:0}.histogram .bar-item{max-width:120px}.histogram .bar{width:100%;height:calc(var(--bar) * 24px)}.histogram .bar-label{font-size:14px}.jxgbox{touch-action:none;position:relative;overflow:hidden}.JXGtext{font-family:inherit!important}.bottombar{border-top:1px solid var(--line);justify-content:space-between}.navgroup{align-items:center;gap:9px;display:flex}.navbtn:disabled{opacity:.35;cursor:not-allowed}.page{min-width:76px;color:var(--muted);text-align:center;font-size:15px;font-weight:800}.toc{z-index:20;background:#222d;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.toc.open{display:flex}.tocbox{background:#fff;width:min(900px,96vw);max-height:90vh;padding:34px;overflow:auto}.tocgrid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.toc button{border-left:4px solid var(--accent);text-align:left;background:#f6f6f6}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}@media (max-width:800px){.picker{justify-content:flex-start;padding:34px 18px}.course-grid{grid-template-columns:1fr}.course-card{min-height:150px}.app{height:auto;min-height:100vh;display:block;overflow:visible}.topbar{height:44px;padding:0 12px;position:sticky;top:0}.course-app .brand{display:none}.course-app .course-back{padding-inline:8px;font-size:14px}.chapter{display:none}.stage{overflow:visible}.slide{min-height:calc(100vh - 106px);padding:26px 18px calc(112px + env(safe-area-inset-bottom));scroll-padding-bottom:calc(112px + env(safe-area-inset-bottom));position:relative}.grid2,.tocgrid,.pattern-list,.exam-layout,.continuation-exam .exam-layout,.reference-grid,.timeline,.check-grid,.check-grid.six,.rubric-grid,.diagnosis-grid,.timer-card,.plot-bridge{grid-template-columns:1fr}.plot-bridge i{justify-self:center;transform:rotate(90deg)}.revision-strip{grid-template-columns:1fr}.revision-strip>b{justify-self:center;transform:rotate(90deg)}.upgrade-table{grid-template-columns:1fr}.upgrade-table>b{justify-self:center;transform:rotate(90deg)}.word-ladder>div{grid-template-columns:80px 1fr}.bar-chart{gap:8px;padding-inline:8px}.bar-item{min-width:44px}.bar{width:min(54px,84%)}.bar-chart.histogram{gap:0}.histogram .bar{width:100%}.histogram .bar-label{font-size:12px}.grid2>*+*{border-top:1px solid var(--line);border-left:0;padding:24px 0 0}.scroll-source{max-height:none;overflow:visible}.bottombar{min-height:calc(62px + env(safe-area-inset-bottom));padding:0 7px env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0}.navbtn{min-width:0;padding:8px 10px;font-size:15px}.hide-mobile{display:none}}
