:root{--ink:#142a3b;--muted:#536673;--blue:#164bde;--line:#dbe3eb;--paper:#f6f8fc;--navy:#112c45}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:var(--ink);font:16px/1.8 "Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;background:var(--paper)}a{color:var(--blue);text-underline-offset:4px}a:hover{color:#092b88}a:focus-visible,summary:focus-visible{outline:3px solid #f1a82d;outline-offset:5px}.skip{position:absolute;top:-100px}.skip:focus{top:10px;background:white;z-index:10}header{max-width:1280px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:24px 40px;border-bottom:1px solid var(--line)}.brand{color:var(--ink);font-size:18px;font-weight:750;text-decoration:none;display:flex;align-items:center;gap:12px}.mark{background:var(--blue);color:white;padding:3px 10px;font-size:19px;border-radius:5px}.download{text-decoration:none;font-size:14px;font-weight:700}main{max-width:1200px;margin:auto;padding:0 40px}.intro{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center;padding:56px 0 42px}.eyebrow{font-size:13px;font-weight:800;letter-spacing:.12em;color:var(--blue);margin:0 0 12px}h1{font-size:clamp(2rem,4vw,3.3rem);line-height:1.35;letter-spacing:-.03em;margin:0 0 20px}h2{font-size:29px;line-height:1.4;margin:0}h3{font-size:21px;line-height:1.5;margin:0 0 12px}p{margin:0 0 16px}.lead{font-size:17px;color:var(--muted)}.meta,.source,.fine{font-size:14px;color:var(--muted)}.meta{margin:22px 0 0}.date-block{background:var(--navy);color:white;padding:34px;border-radius:12px;box-shadow:10px 10px 0 #dce6fc}.date-block>span{font-size:15px;color:#d2e0f1}.date-block strong{display:block;font-size:clamp(1.8rem,3.4vw,2.9rem);letter-spacing:-.035em;margin:13px 0}.date-block i{font-weight:400;font-style:normal;color:#81a3f8}.date-foot{margin-top:25px;padding-top:20px;border-top:1px solid #446079;font-weight:600}.date-foot b{padding:0 15px;color:#88a2c5}nav{display:flex;gap:24px;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;margin-bottom:25px}nav a{font-size:14px;text-decoration:none;font-weight:700;color:var(--ink)}.notice{background:#eaf0ff;border-left:4px solid var(--blue);padding:20px 24px;border-radius:0 6px 6px 0}.notice strong{font-size:17px}.notice p{margin:7px 0 0}section[id]{padding-top:60px;scroll-margin-top:20px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px}.section-head .eyebrow{margin-bottom:8px}.section-desc{color:var(--muted);max-width:850px}.days{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.day{border:1px solid var(--line);background:white;border-radius:10px;overflow:hidden}.day-title{background:#eaf0ff;padding:20px 24px;border-bottom:1px solid var(--line)}.day-title span{font-size:14px;color:var(--blue);font-weight:700}.day-title h3{font-size:27px;margin:4px 0 0}.exam{padding:18px 24px;border-bottom:1px solid #edf0f5}.exam:last-child{border:0}.exam time{display:block;font-size:15px;font-variant-numeric:tabular-nums;color:var(--muted)}.exam strong{display:block;font-size:24px;margin:5px 0}.exam span{display:block;color:var(--muted);font-size:14px}.registration{display:flex;gap:35px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}.registration strong{flex:0 0 250px}.registration strong span{color:var(--blue);font-size:18px}.registration p{margin:0;font-size:15px;color:var(--muted)}.subject-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}details{border:1px solid var(--line);background:white;border-radius:8px}summary{cursor:pointer;padding:20px 24px;font-size:19px;font-weight:700}summary span{font-size:14px;color:var(--muted);font-weight:400;display:block;margin-left:20px}.detail{padding:0 24px 20px}.detail p:last-child{margin-bottom:0}.formula{background:#edf3ff;color:#143f92;padding:15px;font-weight:700;margin:12px 0}.tip{font-size:15px;border-top:1px solid var(--line);padding-top:14px;color:var(--muted)}.fine{margin-top:15px}.score-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:25px}.score-intro{padding:25px 0}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:8px}table{border-collapse:collapse;width:100%;text-align:left}caption{text-align:left;padding:20px;font-weight:700}th,td{padding:12px 20px;border-top:1px solid var(--line);white-space:nowrap}thead{background:#eaf0ff;color:#204a95;font-size:14px}.routes{display:grid;grid-template-columns:1fr 1fr;gap:18px}.routes article{padding:28px;background:white;border:1px solid var(--line);border-radius:8px;position:relative}.route-no{font-size:14px;background:var(--navy);color:white;border-radius:4px;padding:3px 10px;display:inline-block;margin-bottom:18px}.route-key{color:var(--blue);font-weight:700;font-size:16px}.historical{margin-top:20px}.historical summary{font-size:16px}.myth{display:flex;gap:28px;padding:28px 0;border-top:1px solid var(--line)}.myth>span{font-size:32px;font-weight:800;color:#5e7fc7;line-height:1.3}.myth p:last-child{margin-bottom:0}.parent{padding:32px;background:var(--navy);color:white;margin-top:24px;border-radius:10px}.parent .eyebrow{color:#afc7ff}.parent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:25px}.parent p{color:#d7e3ef;font-size:15px;margin-bottom:0}.parent b{display:inline-block;color:white;font-size:18px;margin-bottom:8px}.pdf-card{display:flex;align-items:center;gap:25px;padding:30px;background:white;border:1px solid var(--line);border-radius:10px}.pdf-symbol{border:2px solid #a8bff9;background:#edf3ff;color:var(--blue);padding:28px 16px;border-radius:5px;font-size:18px;font-weight:800}.pdf-card p{margin:3px 0}.pdf-actions{display:flex;flex-direction:column;gap:12px;text-align:center;flex-shrink:0;margin-left:auto}.button{display:inline-block;background:var(--blue);color:white;text-decoration:none;padding:12px 20px;border-radius:6px;font-weight:700}.button:hover{background:#103ca9;color:white}.preview{margin-top:16px}.preview summary{font-size:16px}iframe{width:100%;height:680px;border:1px solid var(--line)}#sources{margin-top:35px}ol{padding-left:25px}li{padding:6px 0}li p{color:var(--muted);font-size:14px;margin:5px 0 10px}footer{max-width:1120px;margin:50px auto 0;padding:28px 0;border-top:1px solid var(--line);color:var(--muted);font-size:14px}footer p{margin:8px 0}footer strong{color:var(--ink)}@media(max-width:850px){header{padding:20px 24px}main{padding:0 24px}.intro{gap:24px}.date-block{padding:25px}.days{gap:10px}.day-title,.exam{padding:18px}.pdf-card{flex-wrap:wrap}.pdf-actions{margin-left:0;flex-direction:row;align-items:center}footer{margin:40px 24px 0}.section-head{align-items:start;flex-direction:column;gap:10px}}@media(max-width:600px){header{padding:17px 20px}.brand{font-size:16px}.download{font-size:14px}main{padding:0 20px}.intro{grid-template-columns:1fr;padding:32px 0;gap:24px}h1{font-size:34px}.lead{font-size:16px}.desktop{display:none}.date-block strong{font-size:33px}.date-block{box-shadow:6px 6px 0 #dce6fc;padding:22px}.date-foot{margin-top:15px;padding-top:13px}nav{gap:12px 20px;padding:16px 0}nav a{font-size:14px}.notice{padding:17px 18px}.days,.subject-grid,.score-layout,.routes,.parent-grid{grid-template-columns:1fr}.days{gap:16px}.day-title{padding:16px 20px;display:flex;justify-content:space-between;align-items:center}.day-title h3{font-size:24px;margin:0}.exam{padding:15px 20px}.exam strong{font-size:22px}.registration{display:block;padding:20px 0}.registration strong{display:block;margin-bottom:12px}.registration p{font-size:16px}section[id]{padding-top:42px}h2{font-size:25px}.section-head{margin-bottom:20px}.score-layout{gap:10px}.score-intro{padding:0}th,td{padding:11px 14px}.myth{gap:16px}.myth>span{font-size:26px}.myth h3{font-size:20px}.parent{padding:23px}.parent-grid{gap:20px}.pdf-card{padding:22px;gap:16px}.pdf-symbol{padding:12px;font-size:15px}.pdf-card h3{font-size:19px}.pdf-actions{width:100%;flex-direction:column;align-items:stretch}.preview .detail{padding:0 12px 12px}iframe{height:500px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{header,nav,.pdf-actions,.preview,footer>a{display:none}body{background:white}main{padding:0}section[id]{padding-top:25px}.intro{padding:20px 0}.date-block,.parent{color:var(--ink);background:#eee;box-shadow:none}.date-block>span,.parent p,.parent b{color:var(--ink)}details{break-inside:avoid}.day,.routes article{break-inside:avoid}}

/* Larger reading type and touch-friendly layouts. */
body{font-size:1.125rem}
.brand{font-size:1.25rem}.download,nav a{font-size:1rem}
.lead{font-size:1.25rem}.meta,.source,.fine,li p,footer{font-size:1rem}
.eyebrow{font-size:.875rem}h2{font-size:2rem}h3{font-size:1.5rem}
.date-block>span,.day-title span,.exam time,.exam span{font-size:1.125rem}
.notice strong,.registration strong span{font-size:1.25rem}
.registration p,.tip,.parent p,.route-key{font-size:1.125rem}
summary{font-size:1.375rem}summary span,thead{font-size:1rem}
.historical summary,.preview summary{font-size:1.125rem}
nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:16px 0}
nav a{display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px 12px;background:white;border:1px solid var(--line);border-radius:6px}
nav a:hover{background:#eaf0ff;border-color:var(--blue)}
.pdf-card>div,.intro>div,.score-layout>*,.myth>div{min-width:0}
.pdf-card{flex-wrap:wrap}.pdf-card>div:nth-child(2){flex:1 1 380px}
.pdf-actions a{min-height:48px;display:flex;align-items:center;justify-content:center}
.pdf-author{line-height:1.8}a{overflow-wrap:anywhere}
th,td{white-space:normal}
@media(max-width:850px){.days{grid-template-columns:1fr}.day-title{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;justify-content:space-between}.day-title h3{margin:0}.intro{grid-template-columns:1fr}.subject-grid,.score-layout{grid-template-columns:1fr}.registration{align-items:flex-start}}
@media(max-width:600px){
html{scroll-padding-top:16px}header{padding:14px 16px;gap:10px;flex-wrap:wrap}.brand{font-size:1.125rem;gap:8px}.download{font-size:1rem;min-height:44px;display:flex;align-items:center}
main{padding:0 16px}.intro{padding:24px 0;gap:20px}h1{font-size:2rem}.lead{font-size:1.125rem}.meta{margin-top:14px}
.date-block{padding:20px}.date-block strong{font-size:clamp(1.65rem,7.5vw,2.25rem)}.date-foot b{padding:0 5px}
nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}nav a{font-size:1rem;padding:10px 6px}
h2{font-size:1.75rem}h3,.myth h3,.pdf-card h3{font-size:1.375rem}
.day-title h3{font-size:1.5rem}.day-title,.exam{padding:16px 18px}.exam strong{font-size:1.625rem}
.registration p{font-size:1.125rem}.registration strong{overflow-wrap:anywhere}
summary{padding:18px 16px}.detail{padding:0 16px 20px}.formula{padding:12px}
.routes article,.parent,.pdf-card{padding:20px}.myth{gap:12px}.myth>span{font-size:1.5rem}
th,td{padding:12px 8px}caption{padding:16px}.pdf-card>div:nth-child(2){flex-basis:100%}.pdf-actions{width:100%;flex-direction:column;align-items:stretch}.pdf-actions a{padding:12px}
footer{margin:36px 16px 0}.notice{padding:16px}section[id]{padding-top:36px}
}

/* Put section shortcuts within immediate reach on phones. */
@media screen and (max-width:600px){
main{display:flex;flex-direction:column}main>nav{order:-1;margin:12px 0 0;border:0;padding:0}main>*{min-width:0;width:100%}
nav a{min-height:52px}.intro{padding:24px 0}.section-head h2{line-height:1.5;text-wrap:balance}
.pdf-card{display:flex;flex-direction:column;align-items:stretch;gap:14px}.pdf-card>div:nth-child(2){flex:0 1 auto}.pdf-symbol{align-self:flex-start;padding:6px 12px}.pdf-author{margin-bottom:12px}
.pdf-actions{margin:4px 0 0;gap:12px}.pdf-actions>a:not(.button){border:1px solid var(--line);border-radius:6px;background:var(--paper)}
.myth{display:block}.myth>span{display:block;margin-bottom:12px}.detail,.routes article,.parent{overflow-wrap:anywhere}summary{min-height:56px}summary span{margin-top:6px}
#sources li{padding:12px 0}#sources li>a{display:inline-block;padding:6px 0}
}

.source-banner{max-width:1120px;margin:20px auto 0;padding:16px 20px;background:#eaf0ff;border-left:4px solid var(--blue);border-radius:0 6px 6px 0;font-size:1.125rem;line-height:1.9}.source-banner a{font-weight:700}@media(max-width:1200px){.source-banner{margin:20px 40px 0}}@media(max-width:850px){.source-banner{margin:16px 24px 0}}@media(max-width:600px){.source-banner{margin:12px 16px 0;padding:14px 16px;font-size:1rem}}
