:root{color-scheme:light;--red:#e82e21;--text:#242424;--muted:#666;--line:#e5e5e5;--paper:#fff;--soft:#f7f7f5}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--text);font:16px/1.6 'Helvetica Neue',Helvetica,Arial,sans-serif}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}
a:hover{text-decoration:underline}
a:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:5px}
.skip-link{position:absolute;top:-100px;left:20px;padding:10px 16px;background:var(--paper);z-index:10}
.skip-link:focus{top:10px}
.teaching-header{background:var(--red);color:#fff;padding:16px 0}
.header-inner{max-width:960px;margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.wordmark{font-size:14px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none}
.wordmark span{font-weight:300}
.teaching-nav{display:flex;gap:24px;flex-wrap:wrap}
.teaching-nav a{font-size:13px;text-decoration:none;padding:6px 0}
.teaching-nav a:hover,.teaching-nav a[aria-current]{text-decoration:underline;text-underline-offset:5px}
.teaching-header a:focus-visible{outline-color:#fff}
.breadcrumb{max-width:960px;margin:0 auto;padding:20px 24px;display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:13px}
.breadcrumb a{color:var(--red);text-decoration:none}
.teaching-main{max-width:960px;margin:0 auto;padding:32px 24px 80px}
.eyebrow{font-size:12px;letter-spacing:1.2px;text-transform:uppercase;font-weight:600;color:var(--muted);margin:0 0 10px}
h1{font-size:clamp(30px,5vw,44px);line-height:1.15;letter-spacing:-1px;font-weight:600;margin:0 0 16px;max-width:740px}
h2{font-size:23px;line-height:1.3;font-weight:600;margin:0 0 12px}
p{margin:0 0 16px;max-width:680px}
.lead{font-size:18px;color:var(--muted);margin-bottom:36px;max-width:620px}
.course-code{color:var(--muted);font-size:14px;margin:0 0 16px}
.course-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:32px}
.course-card{padding:24px;border:1px solid var(--line);border-top:3px solid var(--red)}
.course-card h2 a{text-decoration:none}
.course-card h2 a:hover{text-decoration:underline}
.course-card h2 span{white-space:nowrap;color:var(--red)}
.course-card p:last-child{margin-bottom:0;color:var(--muted);font-size:15px}
.course-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px;margin-bottom:24px}
.course-meta>span:first-child{font-weight:600}
.status{font-size:12px;color:var(--muted);background:var(--soft);padding:3px 9px}
.archive-section,.material-section{margin-top:44px;padding-top:24px;border-top:1px solid var(--line)}
.archive-links,.section-links{display:flex;gap:24px;flex-wrap:wrap}
.archive-links a,.section-links a{color:var(--red)}
.archive-note{font-size:14px;color:var(--muted)}
.lab-feature{padding:28px;background:var(--soft);border-left:3px solid var(--red);margin:32px 0}
.lab-feature h2 a{text-decoration:none}
.lab-feature h2 a:hover{text-decoration:underline}
.lab-feature p:last-child{margin-bottom:0}
.resource-list{list-style:none;padding:0;margin:0}
.resource-list li{padding:14px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.resource-list li:last-child{border-bottom:0}
.resource-list a{color:var(--red);text-decoration:none}
.resource-list a:hover{text-decoration:underline}
.resource-list p{color:var(--muted);font-size:14px;margin:4px 0 0}
.empty-state{color:var(--muted);padding:12px 0}
.archive-group{margin:8px 0}
.archive-group summary{cursor:pointer;padding:12px 0;font-weight:500;overflow-wrap:anywhere}
.archive-group summary span{color:var(--muted);font-weight:400}
.archive-group .resource-list{padding-left:18px}
.teaching-footer{border-top:1px solid var(--line);padding:28px 24px;color:var(--muted);font-size:13px}
.teaching-footer>div{max-width:912px;margin:auto;display:flex;gap:20px;justify-content:space-between;flex-wrap:wrap}
@media(max-width:640px){.course-list{grid-template-columns:1fr}.teaching-main{padding-top:20px}.course-card{padding:22px}.lead{font-size:17px}.lab-feature{padding:22px}}
@media(max-width:480px){.header-inner{padding:0 20px;gap:8px}.teaching-nav{gap:22px}.breadcrumb{padding:18px 20px}.teaching-main{padding:20px 20px 56px}.teaching-footer{padding:24px 20px}.wordmark{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
