:root{color-scheme:light;--paper:#f6f2e9;--ink:#28383e;--muted:#53646b;--line:#c7c7ba;--blue:#647f91;--green:#748d7d;--purple:#92839f;--blue-pale:#dce4e8;--green-pale:#e0e7df;--purple-pale:#e7e3ec}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:140px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.8 'PingFang TC','Noto Sans TC',sans-serif}a{color:inherit;text-underline-offset:4px}button,select,input{font:inherit;color:inherit}button,a,summary,select{-webkit-tap-highlight-color:transparent}button,select{cursor:pointer}button{background:#fbf8f0;border:1px solid var(--line);border-radius:3px;padding:7px 13px}button:hover{background:#eae5da}button:disabled{opacity:.45;cursor:default}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--blue);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Songti TC','Noto Serif TC',serif;font-weight:600}h1{font-size:42px;line-height:1.3}h2{font-size:23px;line-height:1.5}pre{font:14px/1.95 'PingFang TC',sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;user-select:text;margin:18px 0 0}.wrap,.header-inner{max-width:1320px;padding-left:36px;padding-right:36px;margin:auto}.site-header{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--ink)}.header-inner{display:flex;justify-content:space-between;gap:24px;align-items:center;min-height:86px}.brand{font:24px Georgia,serif;white-space:nowrap}.brand span{font:13px 'PingFang TC',sans-serif;margin-left:8px;letter-spacing:1px}nav{display:flex;gap:8px;align-items:center}nav a{padding:12px 15px;text-decoration:none;font-size:13px;border-bottom:2px solid transparent}nav a[aria-current=page]{border-color:var(--ink)}nav a:hover{background:#eae5da}main{padding-top:30px;padding-bottom:40px}.skip{position:fixed;top:-100px;z-index:100;background:var(--ink);color:var(--paper);padding:12px}.skip:focus{top:0}.filters{display:flex;flex-wrap:wrap;align-items:end;gap:14px;padding-bottom:20px;border-bottom:1px solid var(--line)}.filters label{display:grid;gap:5px;font-size:12px;color:var(--muted)}select{background:#fbf8f0;border:1px solid var(--line);border-radius:3px;padding:9px 32px 9px 12px;min-width:154px;max-width:100%}.scope{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px;line-height:1.9;padding:12px 0}.scope strong{font:24px Georgia,serif;color:var(--ink);margin:0 6px}.disclosure{font-size:12px;color:var(--muted);margin:0 0 22px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin-bottom:34px;gap:1px;background:var(--line)}.metric{padding:22px;background:var(--blue-pale)}.metric:nth-child(2){background:var(--green-pale)}.metric:nth-child(3){background:var(--purple-pale)}.metric:nth-child(4){background:#eeeadf}.metric h2{font:13px 'PingFang TC',sans-serif;margin:0 0 14px}.metric .number{font:46px/1.2 Georgia,serif;letter-spacing:-1px;white-space:nowrap;font-variant-numeric:tabular-nums}.metric .number small{font:12px 'PingFang TC',sans-serif;margin-left:8px}.metric p{font-size:11px;margin:10px 0 0;color:var(--muted)}.analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 42px}.analysis{border-top:1px solid var(--line);padding-top:14px;min-width:0}.section-number{font:italic 28px Georgia,serif;color:var(--muted);display:block;margin-bottom:8px}.analysis h2{margin-bottom:16px}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart text{fill:var(--muted);font:12px 'PingFang TC',sans-serif}.chart .value-label{fill:var(--ink);font-variant-numeric:tabular-nums;font-size:12px}.chart .gridline{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4;opacity:.65}.chart .bar,.chart .point{transition:opacity .15s}.chart .bar:hover,.chart .bar:focus,.chart .point:hover,.chart .point:focus{opacity:.7;outline:none;stroke:var(--ink);stroke-width:2}.caption{font-size:12px;color:var(--muted);line-height:1.9;min-height:46px;margin:15px 0 10px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;margin:10px 0}.legend label{display:flex;align-items:center;gap:5px}.legend input{accent-color:var(--blue)}.legend i{display:inline-block;width:9px;height:9px;background:var(--swatch)}details{border-top:1px solid var(--line);font-size:12px}summary{padding:12px 0;cursor:pointer}.table-scroll{overflow:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap;margin:5px 0 16px}th,td{padding:10px 12px;border-bottom:1px solid #d8d6cc;text-align:right}th{font-weight:500;background:#ece8dc}th:first-child,td:first-child{text-align:left}.records{margin-top:40px;border-top:1px solid var(--ink)}.records>summary{font:21px/1.5 'Songti TC',serif;padding:20px 0}.record-tools{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}.record-tools input{border:1px solid var(--line);background:#fbf8f0;padding:8px 12px;min-width:240px}.pagination{display:flex;gap:16px;align-items:center;font-size:12px}.empty{background:var(--purple-pale);border-left:3px solid var(--purple);padding:24px;margin:10px 0 28px}.chart-empty{display:grid;place-items:center;min-height:210px;color:var(--muted);font-size:13px;border-bottom:1px solid var(--line)}#chart-tooltip{position:fixed;z-index:30;pointer-events:none;max-width:290px;background:var(--ink);color:var(--paper);padding:10px 14px;border-radius:3px;font-size:12px;white-space:pre-line;box-shadow:0 4px 18px #28383e25}.site-footer{border-top:1px solid var(--line);padding-top:18px;padding-bottom:36px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}.intro{padding:12px 0 26px;border-bottom:1px solid var(--line)}.intro .kicker{font-size:12px;letter-spacing:2px;color:var(--muted)}.intro h1{margin:16px 0;font-family:Georgia,'Songti TC',serif}.intro p{font-size:16px;color:var(--muted);max-width:800px;margin-bottom:0}.baseline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:24px 0;border-bottom:1px solid var(--line)}.baseline>div{padding:20px 24px;background:var(--blue-pale)}.baseline>div:nth-child(2){background:var(--green-pale)}.baseline>div:nth-child(3){background:var(--purple-pale)}.baseline b{font:36px Georgia,serif;display:block}.baseline span{font-size:12px;color:var(--muted)}.context{font-size:13px;color:var(--muted);margin:20px 0 28px}.step-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin-bottom:35px}.step-nav a{border-top:1px solid var(--line);padding:12px 0;text-decoration:none;font-size:13px}.lesson{display:grid;grid-template-columns:65px minmax(0,1fr);gap:24px;padding:28px 0;border-top:1px solid var(--line);scroll-margin-top:120px}.lesson h2{font-size:26px;margin:0 0 8px}.goal{font-size:14px;color:var(--muted);margin-bottom:12px}.lesson-number{font:italic 38px Georgia,serif;color:var(--muted)}.lesson details{border:0}.prompt{border:1px solid var(--line);background:#eeeadf;padding:18px 20px;margin:14px 0}.prompt-head{display:flex;justify-content:space-between;align-items:center;gap:18px;font-size:11px;color:var(--muted)}.prompt button{font-size:12px}.check{font-size:13px;margin:14px 0}.check b{display:block;color:var(--blue);margin-bottom:6px}.boundary{background:var(--purple-pale);border-left:3px solid var(--purple);padding:24px 28px;margin:28px 0 0}.boundary h2{font-size:22px;margin-bottom:10px}.boundary p{font-size:13px;margin-bottom:0;line-height:1.95}.download-panel{display:grid;grid-template-columns:100px minmax(0,1fr);gap:32px;padding:40px 0;border-bottom:1px solid var(--line)}.file-icon{display:grid;place-items:center;background:var(--blue-pale);height:110px;width:90px;font:20px Georgia,serif;border-bottom:3px solid var(--blue)}.download-panel h2{font-size:28px}.download-panel p{max-width:780px;font-size:14px}.download-button{display:inline-flex;align-items:center;gap:35px;background:var(--ink);color:var(--paper);padding:14px 23px;text-decoration:none;margin:12px 0}.download-button:hover{background:#47606b}.filemeta{font-size:11px!important;color:var(--muted);overflow-wrap:anywhere}.filemeta code{font-size:10px}.source-note{margin-top:16px;font-size:12px;color:var(--muted)}
@media(max-width:1000px){.header-inner{align-items:flex-start;flex-direction:column;gap:7px;padding-top:16px}.brand{font-size:23px}nav{width:100%;justify-content:space-between}nav a{padding:10px 0;font-size:12px}.analysis-grid{gap:30px 24px}.metric{padding:18px 16px}.metric .number{font-size:37px}}
@media(max-width:700px){.wrap,.header-inner{padding-left:18px;padding-right:18px}.header-inner{min-height:106px}.brand span{font-size:12px}.filters{gap:12px}.filters label{flex:1 1 calc(50% - 12px);min-width:0}select{width:100%;min-width:0;font-size:12px}.filters button{font-size:12px}.scope{flex-direction:column;gap:0}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:26px}.metric .number{font-size:34px}.metric .number small{margin-left:5px}.analysis-grid{grid-template-columns:1fr}.caption{min-height:0}.site-footer{flex-direction:column;gap:4px}.baseline{grid-template-columns:1fr}.baseline>div{padding:15px 20px}.baseline b{font-size:32px}.step-nav{grid-template-columns:1fr}.lesson{grid-template-columns:32px minmax(0,1fr);gap:13px}.lesson h2{font-size:23px}.lesson-number{font-size:29px}.prompt{padding:14px}.prompt-head{flex-direction:column;align-items:flex-start;gap:8px}.download-panel{grid-template-columns:1fr;gap:18px}.file-icon{height:70px;width:70px}.intro h1{font-size:32px}.boundary{padding:20px}pre{font-size:13px}.record-tools input{min-width:0;width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.bar,.point{transition:none}}

@media(max-width:700px){.chart text,.chart .value-label{font-size:16px}}
.lesson-setup{background:#e0e7df;border-top:2px solid var(--green);padding:24px 28px;margin:26px 0 32px}.lesson-setup h2{font-size:23px;margin-bottom:12px}.lesson-setup ol{margin:0;padding-left:22px}.lesson-setup li,.lesson-setup p{font-size:13px;line-height:1.95}.lesson-setup p{margin:14px 0 0;color:var(--muted)}.lesson-action{font-size:13px;line-height:1.9;margin:10px 0 16px;max-width:900px}.lesson-action b,.lesson-output b{display:block;margin-bottom:5px;color:var(--blue);font-weight:600}.lesson-output{padding:13px 17px;background:var(--green-pale);font-size:13px;line-height:1.9;margin:16px 0}.lesson .check{line-height:1.9}@media(max-width:700px){.lesson-setup{padding:20px}.lesson-action,.lesson-output{font-size:13px}}

.download-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.secondary-download{background:transparent;color:var(--ink);border:1px solid var(--ink)}.secondary-download:hover{background:var(--green-pale)}.handout-icon{background:var(--green-pale);border-color:var(--green)}@media(max-width:700px){.download-actions{align-items:stretch;flex-direction:column;gap:8px}.download-actions .download-button{justify-content:space-between;margin:4px 0}}

/* Unified teaching path */
.brand{text-decoration:none}.header-inner{gap:20px}.header-inner nav{gap:15px}.header-inner nav a{padding:12px 5px}.course-next{border-top:1px solid var(--ink);margin-top:42px;padding:25px 0 6px;display:flex;justify-content:space-between;align-items:center;gap:30px}.course-next span{font-size:11px;letter-spacing:1px;color:var(--muted)}.course-next p{font-size:15px;margin:8px 0 0}.course-next>a{background:var(--ink);color:var(--paper);padding:13px 20px;text-decoration:none;font-size:14px;white-space:nowrap}.bundle-panel{background:var(--green-pale);padding:30px;margin-top:28px;border:0}.bundle-panel .file-icon{background:var(--paper)}
@media(max-width:1150px){.header-inner{flex-direction:column;align-items:flex-start;padding-top:12px;gap:5px}.header-inner nav{width:100%;justify-content:flex-start;gap:28px}.header-inner nav a{font-size:12px;padding:10px 0}}
@media(max-width:700px){.header-inner{padding-top:12px;min-height:106px}.header-inner nav{gap:22px;overflow-x:auto;white-space:nowrap;justify-content:flex-start}.header-inner nav a{font-size:11px}.course-next{display:block}.course-next>a{display:inline-block;margin-top:18px;white-space:normal}.bundle-panel{padding:23px}.bundle-panel h2{font-size:25px}.bundle-panel .download-button{font-size:14px;gap:12px}.download-button{max-width:100%}}

/* All-quarter group clustering */
.cluster-section{border-top:2px solid var(--ink);margin-top:45px;padding-top:25px;scroll-margin-top:120px}.cluster-heading{display:flex;justify-content:space-between;gap:24px;align-items:baseline}.cluster-heading h2{font-size:29px;margin-bottom:12px}.cluster-heading .section-number{font-size:20px}.cluster-heading p{font-size:14px;max-width:850px;color:var(--muted)}.cluster-heading>a{font-size:12px;white-space:nowrap}.cluster-scope{font-size:12px;background:var(--blue-pale);padding:12px 16px;border-left:3px solid var(--blue)}.cluster-controls{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin:22px 0 16px}.cluster-controls label,.cluster-picker{display:grid;gap:6px;font-size:12px;color:var(--muted)}.cluster-controls select{font-size:13px;min-width:160px}.cluster-controls button{font-size:12px;padding:10px 15px}.cluster-summary{font-size:14px;line-height:1.9}.cluster-summary b{font-size:17px}.cluster-legend{display:flex;gap:22px;flex-wrap:wrap;font-size:12px;margin:16px 0}.cluster-legend i,.cluster-members summary i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}.outlier-legend{color:#b64531}.cluster-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:32px;border-top:1px solid var(--line);padding-top:22px}.cluster-chart{width:100%;min-width:0}.cluster-chart svg{width:100%;height:auto;display:block;overflow:visible}.cluster-chart .gridline{stroke:var(--line);stroke-dasharray:3 5;stroke-width:1;opacity:.65}.cluster-chart text{font-size:13px;fill:var(--muted)}.cluster-chart .selected-label{font-size:15px;fill:var(--ink);font-weight:600;paint-order:stroke;stroke:var(--paper);stroke-width:4px}.cluster-point{cursor:pointer}.cluster-point:focus{outline:none}.cluster-point:focus circle:first-child,.cluster-point:hover circle:first-child{stroke:var(--ink);stroke-width:3}.cluster-layout>.cluster-selection{border-left:1px solid var(--line);padding-left:28px}.cluster-selection .kicker{font-size:11px;letter-spacing:1px;color:var(--muted)}.cluster-selection h3{font-size:22px;margin:9px 0 14px}.cluster-selection p{font-size:12px;line-height:1.9}.cluster-selection h4{font-size:14px;margin:18px 0 12px}.cluster-selection td,.cluster-selection th{padding:7px 9px;font-size:11px}.cluster-picker{margin-top:15px}.cluster-picker select{max-width:100%;width:100%;min-width:0;font-size:12px}.cluster-nearest{padding-left:18px}.cluster-section li{margin-bottom:10px}.cluster-section li button,.cluster-section td button{font-size:12px;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;padding:0;white-space:normal;line-height:1.7;cursor:pointer}.cluster-section li button:hover,.cluster-section td button:hover{color:var(--blue);border-color:var(--blue)}.cluster-nearest span{display:block;font-size:11px;color:var(--muted)}.cluster-caution{font-size:13px;padding:16px 20px;background:#eee5db;border-left:3px solid #a77952;margin:28px 0}.cluster-findings{display:grid;grid-template-columns:1fr 1fr;gap:38px;margin:28px 0}.cluster-findings h3{font-size:23px}.cluster-findings h4{font-size:16px;margin:24px 0 14px}.cluster-members summary{font-size:14px}.cluster-members ul{max-height:280px;overflow:auto;padding-left:20px}.cluster-members li{display:flex;gap:12px;justify-content:space-between;align-items:baseline}.cluster-members li span{font-size:11px;color:var(--muted);white-space:nowrap}.cluster-members>p{font-size:11px;line-height:1.9;color:var(--muted)}.cluster-ranking,.cluster-pairs{padding-left:21px;font-size:14px}.cluster-ranking li{border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:13px}.cluster-ranking li button{font-size:14px;border:0}.cluster-ranking li>span,.cluster-ranking small,.cluster-pairs small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.cluster-pairs li>span{display:block;font-size:11px;color:var(--muted);margin:3px 0}.cluster-pairs li{margin-bottom:17px}.cluster-pairs button{font-size:13px!important}#cluster-method{font-size:12px;scroll-margin-top:125px}#cluster-method>summary{font-size:15px}#cluster-method .table-scroll{max-height:440px}#cluster-method p{max-width:1050px;line-height:1.95}
@media(max-width:1000px){.cluster-layout{grid-template-columns:1fr;gap:24px}.cluster-layout>.cluster-selection{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.cluster-selection .table-scroll{max-width:700px}.cluster-nearest{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-left:20px}}
@media(max-width:700px){.cluster-section{margin-top:32px;padding-top:20px}.cluster-heading{display:block}.cluster-heading h2{font-size:25px}.cluster-heading>a{display:inline-block;margin-bottom:15px}.cluster-controls{gap:12px}.cluster-controls label{flex:1 1 calc(50% - 12px);min-width:0}.cluster-controls select{min-width:0;font-size:12px}.cluster-summary{font-size:13px}.cluster-summary b{font-size:15px}.cluster-layout{gap:20px}.cluster-chart text{font-size:17px}.cluster-chart .selected-label{font-size:20px}.cluster-legend{gap:12px}.cluster-findings{grid-template-columns:1fr;gap:18px}.cluster-nearest{display:block}.cluster-selection h3{font-size:21px}.cluster-caution{font-size:12px;padding:14px 16px}.cluster-picker select{font-size:11px}.cluster-scope{font-size:11px}.cluster-section td,.cluster-section th{padding:8px;font-size:11px}.cluster-section{scroll-margin-top:125px}}

/* Paired level/profile views with pointwise bootstrap intervals */
.dual-picker{max-width:760px;margin:22px 0}.profile-selected{display:flex;align-items:baseline;justify-content:space-between;gap:24px;border-top:1px solid var(--ink);padding-top:23px;margin-top:24px}.profile-selected .kicker{font-size:11px;color:var(--muted);letter-spacing:1px}.profile-selected h3{font-size:25px;margin:10px 0 12px}.profile-selected>p{font-size:12px;color:var(--muted);max-width:310px}.profile-comparison{font-size:14px;line-height:1.9;padding:16px 20px;background:var(--green-pale);border-left:3px solid var(--green);margin:8px 0 26px}.profile-dual{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px}.profile-panel{min-width:0;border-top:2px solid var(--blue);padding-top:19px}.profile-panel:nth-child(2){border-color:var(--green)}.profile-title>span{font-size:11px;letter-spacing:1.5px;color:var(--muted)}.profile-title h3{font-size:25px;margin:10px 0}.profile-title p{font-size:13px;min-height:25px;color:var(--muted)}.profile-model-summary{font-size:12px;margin:15px 0 12px}.profile-panel .cluster-legend{min-height:46px;align-content:flex-start;margin:0 0 10px;gap:9px 18px;font-size:11px}.dual-map{border-top:1px solid var(--line);padding-top:10px}.dual-map text{font-size:17px}.dual-map .selected-label{font-size:20px}.profile-panel>.caption{min-height:76px;font-size:12px;margin:14px 0}.profile-verdict{font-size:12px;border-top:1px solid var(--line);padding:13px 0;margin-top:10px;min-height:68px}.profile-verdict b{display:block;font-weight:500;color:var(--ink)}.profile-verdict>span{display:block;color:var(--muted);font-size:11px;margin-top:5px}.interval-block{border-top:1px solid var(--line);padding-top:18px}.interval-block h4{font-size:16px;line-height:1.7;margin:0 0 16px}.interval-svg{display:block;width:100%;height:auto;overflow:visible}.interval-svg text{font:14px 'PingFang TC',sans-serif;fill:var(--muted)}.interval-svg text.interval-value{font-size:13px;fill:var(--ink);font-variant-numeric:tabular-nums}.interval-note{font-size:11px;color:var(--muted);line-height:1.85;margin:12px 0 20px}.plain-reading{background:#ebe8dd;padding:17px 19px;border-left:2px solid var(--line);font-size:13px;line-height:1.9;margin-top:20px}.plain-reading>b{font-size:13px;font-weight:600}.plain-reading p{margin:7px 0 0}.profile-uncertainty-note{font-size:12px;line-height:1.9;color:var(--muted);margin:25px 0 16px}.profile-howto,.profile-shape-members,.raw-detail{margin:16px 0;font-size:12px}.profile-howto>summary,.profile-shape-members>summary,.raw-detail>summary{font-size:14px}.profile-howto p,.profile-shape-members p{font-size:12px;line-height:1.95;max-width:1100px}.raw-detail .cluster-selection{max-width:900px;padding:15px 0}.profile-shape-lists{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.profile-shape-lists ul{max-height:240px;overflow:auto;padding-left:18px}.profile-shape-lists li{font-size:12px}.profile-shape-members>.cluster-ranking{max-width:750px}.profile-shape-members h4{font-size:15px;margin:22px 0 12px}
@media(max-width:1050px){.profile-dual{gap:24px}.profile-title h3{font-size:23px}.profile-selected{display:block}.profile-selected>p{max-width:none}.profile-panel>.caption{min-height:95px}.interval-svg text{font-size:16px}.interval-svg text.interval-value{font-size:14px}}
@media(max-width:760px){.profile-dual{grid-template-columns:1fr;gap:30px}.profile-title h3{font-size:25px}.profile-panel>.caption{min-height:0}.profile-panel .cluster-legend{min-height:0;margin-bottom:12px}.profile-title p{min-height:0}.profile-selected h3{font-size:22px}.profile-comparison{font-size:13px;padding:15px}.profile-verdict{min-height:0}.dual-map text{font-size:26px}.dual-map .selected-label{font-size:28px}.interval-block{overflow-x:auto}.interval-svg{min-width:520px}.interval-note{max-width:100%;font-size:11px}.interval-block h4{font-size:16px}.plain-reading{font-size:13px;padding:15px}.profile-shape-lists{grid-template-columns:1fr}.profile-uncertainty-note{font-size:11px}.dual-picker select{font-size:11px}}
.interval-scroll-hint{display:none}@media(max-width:760px){.interval-scroll-hint{display:block;font-size:11px;color:var(--muted);margin:0 0 12px}}
