@media (prefers-color-scheme:dark){:root{--ink:#f4f6f8;--muted:#aeb8c2;--line:#2d3742;--surface:#11161b;--hero-start:#18232f;--hero-end:#11161b}.card:hover,.list a:hover{box-shadow:0 8px 24px #0008}.course aside a.active{background:#253750}.login{border-color:#526170}.login-page button{color:#cbd4dc;background:#27313a}}@media (max-width:900px){.links{gap:1rem}.links a{font-size:.9rem}.grid{grid-template-columns:repeat(3,1fr)}.course{grid-template-columns:220px minmax(0,1fr)}}@media (max-width:680px){nav{min-height:64px}.links{display:none}.login,.user{margin-left:auto}.grid{grid-template-columns:1fr 1fr}.groups section{grid-template-columns:1fr;gap:1.5rem}.course{display:block}.course aside{display:none}.course article{padding-top:2.25rem}.mobile{display:inline-block}}@media (max-width:680px){.curriculum thead{display:none}.curriculum,.curriculum tbody,.curriculum tr,.curriculum th,.curriculum td{width:100%;display:block}.curriculum tr{border:1px solid var(--line);border-radius:.7rem;margin-bottom:.9rem;overflow:hidden}.curriculum tbody th{border:0;border-bottom:1px solid var(--line)}.curriculum td{border:0;border-top:1px solid var(--line)}}:root{--ink:#17212b;--muted:#5f6b76;--blue:#2e5aa8;--line:#e5e9ed;--surface:#fff;--hero-start:#f5f8fc;--hero-end:#fff}*{box-sizing:border-box}body{background:var(--surface);color:var(--ink);margin:0;font-family:Arial,Apple SD Gothic Neo,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}header{background:var(--surface);border-bottom:1px solid var(--line);z-index:3;position:sticky;top:0}nav{align-items:center;gap:2rem;max-width:1200px;min-height:76px;margin:auto;padding:.7rem 1.25rem;display:flex}.brand{align-items:center;gap:.65rem;display:flex}.brand img{object-fit:contain;width:108px;height:52px}.brand strong{color:var(--ink);letter-spacing:.02em;text-transform:uppercase;flex-direction:column;justify-content:center;font-size:.98rem;font-weight:800;line-height:1.08;display:flex}.brand strong span:last-child{letter-spacing:.01em;margin-top:.2rem;font-size:.82em}.links{flex:1;justify-content:center;gap:clamp(1rem,2.5vw,2.5rem);display:flex}.links a{white-space:nowrap;font-weight:650}.links a:hover,.login:hover{color:var(--blue)}.login{border:1px solid #cbd5df;border-radius:99px;padding:.42rem .9rem;font-size:.9rem}.hero{background:linear-gradient(135deg,var(--hero-start),var(--hero-end));text-align:center;padding:clamp(5rem,11vw,8.5rem) 1.25rem}.hero>p,.label{color:var(--blue);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.76rem;font-weight:800}.hero h1{letter-spacing:-.065em;margin:.25rem 0 1.2rem;font-size:clamp(2.4rem,6vw,4.7rem);line-height:1.13}.hero span{color:var(--muted);max-width:550px;margin:0 auto 2rem;display:block}.button{background:var(--blue);color:#fff;border-radius:.55rem;padding:.75rem 1.25rem;font-weight:700;display:inline-block}.section{text-align:center;max-width:1120px;margin:auto;padding:4.5rem 1.25rem}.section h2{letter-spacing:-.04em;margin:.3rem 0 2rem;font-size:2rem}.grid{text-align:left;grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.card{border:1px solid var(--line);border-radius:.9rem;min-height:215px;padding:1.35rem}.card:hover,.list a:hover{border-color:var(--blue);box-shadow:0 8px 24px #17212b14}.card b,.groups b{margin-bottom:1rem;font-size:2rem;display:block}.card h3{margin:.2rem 0;font-size:1.08rem}.card p,.intro,.groups p{color:var(--muted);margin:0;font-size:.92rem}.card small{color:var(--blue);margin-top:1.25rem;font-weight:700;display:block}.content{text-align:left;max-width:960px;min-height:calc(100vh - 140px)}.content h1{letter-spacing:-.06em;margin:.35rem 0 .5rem;font-size:clamp(2.2rem,5vw,3.4rem)}.groups{margin-top:3rem}.groups section{border-top:1px solid var(--line);grid-template-columns:minmax(180px,.8fr) 2fr;gap:3rem;padding:2rem 0;display:grid}.groups h2{margin:.2rem 0}.list{gap:.65rem;display:grid}.list a{border:1px solid var(--line);border-radius:.6rem;justify-content:space-between;align-items:center;padding:.8rem 1rem;font-weight:650;display:flex}.large{max-width:740px;margin-top:2.75rem}.back{color:var(--muted);margin-bottom:1.5rem;font-size:.88rem;display:inline-block}.course{grid-template-columns:260px minmax(0,760px);max-width:1120px;min-height:calc(100vh - 140px);margin:auto;display:grid}.course aside{border-right:1px solid var(--line);padding:3rem 1.5rem}.course aside p{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:800}.course aside>a:not(.back){border-radius:.4rem;padding:.5rem .6rem;font-size:.92rem;line-height:1.35;display:block}.course aside a.active{color:var(--blue);background:#edf3fc;font-weight:700}.course article{padding:3rem clamp(1.5rem,5vw,5rem) 5rem}.course article h1{letter-spacing:-.06em;font-size:clamp(2rem,4.5vw,3.25rem);line-height:1.18}.mobile{display:none}.login-page button{background:var(--surface);color:var(--ink);cursor:pointer;font:inherit;border:1px solid #cbd5df;border-radius:.55rem;width:100%;margin:1.5rem 0 .7rem;padding:.8rem 1.25rem;font-weight:700;display:block}.login-page small{color:var(--muted)}footer{color:#d8e0e7;text-align:center;background:#17212b;padding:2rem;font-size:.85rem}.user{align-items:center;gap:.6rem;display:flex}.user span:first-child{white-space:nowrap;font-size:.9rem;font-weight:650}.user form{margin:0}.user button{color:inherit;cursor:pointer;background:0 0;border:1px solid #cbd5df;border-radius:99px;padding:.35rem .8rem;font-size:.82rem}.user button:hover{color:var(--blue);border-color:#526170}@media (prefers-color-scheme:dark){:root{--ink:#f4f6f8;--muted:#aeb8c2;--line:#2d3742;--surface:#11161b;--hero-start:#18232f;--hero-end:#11161b}.card:hover,.list a:hover{box-shadow:0 8px 24px #0008}.course aside a.active{background:#253750}.login{border-color:#526170}.login-page button{color:#cbd4dc;background:#27313a}}@media (max-width:900px){.links{gap:1rem}.links a{font-size:.9rem}.grid{grid-template-columns:repeat(3,1fr)}.course{grid-template-columns:220px minmax(0,1fr)}}@media (max-width:680px){nav{min-height:64px}.links{display:none}.login,.user{margin-left:auto}.grid{grid-template-columns:1fr 1fr}.groups section{grid-template-columns:1fr;gap:1.5rem}.course{display:block}.course aside{display:none}.course article{padding-top:2.25rem}.mobile{display:inline-block}}.curriculum{border-collapse:collapse;text-align:left;width:100%;margin-top:.5rem}.curriculum th,.curriculum td{border:1px solid var(--line);vertical-align:top;padding:.85rem 1rem}.curriculum thead th{background:var(--hero-start);letter-spacing:-.01em;font-size:.95rem}.curriculum tbody th{background:var(--hero-start);white-space:nowrap;font-size:.95rem}.chip{border-radius:99px;margin:0 .3rem .45rem 0;padding:.28rem .7rem;font-size:.8rem;font-weight:650;line-height:1.4;display:inline-block}.chip.current{color:#b3540e;background:#fff1e0;border:1px solid #f2c9a0}.chip.planned{color:#086a7d;background:#e0f6fa;border:1px solid #a3dde9}.chip.revising{color:#5c6873;background:#f1f3f5;border:1px solid #d8dee4}.curriculum .none{color:var(--muted)}.legend{margin-top:1.25rem}.curriculum-footnote{color:var(--muted);margin-top:.9rem;font-size:.82rem;display:block}@media (max-width:680px){.curriculum thead{display:none}.curriculum,.curriculum tbody,.curriculum tr,.curriculum th,.curriculum td{width:100%;display:block}.curriculum tr{border:1px solid var(--line);border-radius:.7rem;margin-bottom:.9rem;overflow:hidden}.curriculum tbody th{border:0;border-bottom:1px solid var(--line)}.curriculum td{border:0;border-top:1px solid var(--line)}}.hero{padding:clamp(3.5rem,7vw,5.5rem) 1.25rem}.section{padding:3rem 1.25rem}.section h2{margin-bottom:1.35rem}.course-unavailable{border:1px solid var(--line);color:var(--muted);border-radius:.6rem;justify-content:space-between;align-items:center;padding:.8rem 1rem;font-weight:650;display:flex}.content.section{padding-top:2.5rem;padding-bottom:4rem}.content.section>.back{margin-bottom:.9rem}.content.section>h1{margin:.1rem 0 .55rem}.content.section>.intro{margin-bottom:0}.course-groups{gap:2rem;margin-top:2rem;display:grid}.course-groups section{margin:0}.course-groups h2{margin:0 0 .8rem;font-size:1.65rem}.course-groups .list{gap:.55rem}.course-item.current{color:#b3540e;background:#fff1e0;border-color:#f2c9a0}.course-item.planned{color:#086a7d;background:#e0f6fa;border-color:#a3dde9}.course-item.revising{color:#5c6873;background:#f1f3f5;border-color:#d8dee4}.course aside .course-unavailable{background:var(--hero-start);cursor:not-allowed;border:1px dashed #cfd8e1;border-radius:.45rem;justify-content:space-between;align-items:center;gap:.75rem;margin:.15rem 0;padding:.55rem .6rem;font-size:.92rem;font-weight:600;line-height:1.35;display:flex}.course aside .course-unavailable>span{min-width:0}.course aside .course-unavailable small{color:#8793a0;letter-spacing:-.02em;white-space:nowrap;font-size:.68rem;font-weight:700}.course aside .course-unavailable:hover{box-shadow:none;border-color:#cfd8e1}.course aside .course-item.current:not(.active){color:var(--ink);background:0 0;font-weight:500}.course aside .course-item.current:not(.active):hover{background:var(--hero-start);color:var(--blue)}.course-unavailable,.course-item.planned,.course-item.revising{color:var(--muted)!important;background:0 0!important;border:0 #0000!important}.course-name{align-items:center;gap:.65rem;min-width:0;display:flex}.track-pill{letter-spacing:-.02em;border:1px solid;border-radius:99px;flex-shrink:0;padding:.18rem .48rem;font-size:.68rem;font-weight:800;line-height:1.35;display:inline-block}.track-pill.required{color:#7e22ce;background:#f3e8ff;border-color:#d8b4fe}.track-pill.elective{color:#4338ca;background:#e0e7ff;border-color:#a5b4fc}.course-unavailable .track-pill{opacity:.72}.course aside .course-name{gap:.5rem}.course aside .track-pill{padding:.14rem .4rem;font-size:.62rem}.course-media{border-top:1px solid var(--line);margin-top:3rem;padding-top:2.5rem}.media-heading{justify-content:space-between;align-items:flex-end;gap:1.5rem;display:flex}.media-heading h2{letter-spacing:-.04em;margin:.2rem 0 .35rem;font-size:1.8rem}.media-description{color:var(--muted);margin:0}.handout-button{flex-shrink:0;font-size:.9rem}.video-section{margin-top:2.5rem}.video-section h3{margin:0 0 .8rem;font-size:1.15rem}.video-list{border-top:1px solid var(--line)}.video-item{border-bottom:1px solid var(--line)}.video-item>button{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:.75rem;width:100%;padding:1rem .25rem;display:flex}.video-item>button:hover{color:var(--blue)}.video-play{color:var(--blue);background:#f3f6fa;border-radius:50%;justify-content:center;align-items:center;width:1.8rem;height:1.8rem;font-size:.65rem;display:flex}.video-item.selected>button{color:var(--blue);font-weight:700}.video-action{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.82rem}.video-player{background:var(--hero-start);padding:1rem}.video-player iframe{aspect-ratio:16/9;border:0;width:100%;display:block}.video-player a{color:var(--blue);margin-top:.65rem;font-size:.82rem;font-weight:650;display:inline-block}.video-player a:hover{text-decoration:underline}@media (max-width:680px){.media-heading{align-items:flex-start;display:block}.handout-button{margin-top:1.25rem}.video-item>button{padding:.9rem 0}.video-action{font-size:.75rem}.video-player{padding:.5rem}}
