﻿:root{--dart-red: #E02B20;--dart-ink: #111111;--dart-grey: #767672;--dart-line: #D9D9D5;--dart-fill: #F4F4F2;--dart-paper: #FFFFFF;--dart-m1: #B35A00;--dart-m2: #1F5FD0;--dart-m3: #6B34C9;--dart-m4: #0E7A52;--dart-m1-bg: #FBF0E3;--dart-m2-bg: #EAF0FC;--dart-m3-bg: #F2ECFB;--dart-m4-bg: #E7F4EE;--sans: 'Archivo', system-ui, -apple-system, sans-serif;--mono: 'IBM Plex Mono', ui-monospace, Menlo, monospace;--radius: 0;--rule: 5px solid var(--dart-ink);--hair: 1px solid var(--dart-line);--focus: 3px solid var(--dart-red);--maxw: 1240px;color-scheme:light}.mod-m1{--mh:var(--dart-m1);--mbg:var(--dart-m1-bg)}.mod-m2{--mh:var(--dart-m2);--mbg:var(--dart-m2-bg)}.mod-m3{--mh:var(--dart-m3);--mbg:var(--dart-m3-bg)}.mod-m4{--mh:var(--dart-m4);--mbg:var(--dart-m4-bg)}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--dart-paper);color:var(--dart-ink);font:400 16px/1.65 var(--sans);letter-spacing:-0.006em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1,"liga" 1}img{max-width:100%;display:block}*{border-radius:0 !important}a{color:var(--dart-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:var(--dart-line);transition:color 120ms linear,text-decoration-color 120ms linear}a:hover{text-decoration-color:var(--dart-ink)}:focus-visible{outline:var(--focus);outline-offset:2px}::selection{background:var(--dart-ink);color:#fff}h1,h2,h3,h4{font-family:var(--sans);margin:0;color:var(--dart-ink);text-wrap:balance}h1{font-weight:800;letter-spacing:-0.05em;line-height:1.02}h2{font-weight:700;letter-spacing:-0.035em;line-height:1.1}h3{font-weight:700;letter-spacing:-0.02em;line-height:1.15}p{margin:0 0 1em}strong,b{font-weight:700}hr{border:0;border-top:var(--hair);margin:34px 0}code,kbd,samp,.mono{font-family:var(--mono);font-size:.85em}mark{background:rgba(0,0,0,0);color:inherit;font-weight:700;padding:0}.red{color:var(--dart-red)}.muted{color:var(--dart-grey)}.small{font-size:.82rem}.nowrap{white-space:nowrap}.eyebrow{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dart-grey)}.skip{position:absolute;left:-999px;top:0;background:var(--dart-ink);color:#fff;padding:10px 16px;z-index:200;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.skip:focus{left:0}.masthead{position:sticky;top:0;z-index:50;background:var(--dart-paper);border-bottom:var(--rule)}.masthead .bar{max-width:var(--maxw);margin:0 auto;padding:14px 56px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:stretch;gap:14px;text-decoration:none;flex-shrink:0}.brand:hover{text-decoration:none}.brand-bar{width:5px;background:var(--dart-red);align-self:stretch;flex-shrink:0}.brand-lock{display:flex;flex-direction:column;justify-content:center;gap:1px}.brand-code{font-weight:900;font-size:24px;line-height:.92;letter-spacing:-0.06em;color:var(--dart-ink)}.brand-title{font-weight:600;font-size:12.5px;line-height:1;letter-spacing:-0.01em;color:var(--dart-ink)}nav.top{margin-left:auto;display:flex;gap:26px;flex-wrap:wrap}nav.top a{font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--dart-grey);text-decoration:none;padding-bottom:3px;border-bottom:3px solid rgba(0,0,0,0)}nav.top a:hover{color:var(--dart-ink)}nav.top a[aria-current=page]{color:var(--dart-ink);border-bottom-color:var(--dart-red)}.navtoggle{display:none;font-family:var(--mono);font-size:11px;letter-spacing:.14em;background:rgba(0,0,0,0);border:2px solid var(--dart-ink);color:var(--dart-ink);padding:7px 12px;cursor:pointer;margin-left:auto}@media(max-width: 820px){.masthead .bar{padding:12px 24px;flex-wrap:wrap}.navtoggle{display:inline-block}nav.top{display:none;width:100%;margin-left:0;flex-direction:column;gap:0;border-top:var(--hair);margin-top:10px}nav.top.open{display:flex}nav.top a{padding:11px 0;border-bottom:1px solid var(--dart-line);font-size:13px}nav.top a[aria-current=page]{border-bottom-color:var(--dart-line);color:var(--dart-red)}}main{max-width:var(--maxw);margin:0 auto;padding:48px 56px 80px}@media(max-width: 820px){main{padding:24px 24px 56px}}.titleblock{border:var(--hair);margin-bottom:48px}.tb-hero{padding:48px 48px 34px}.tb-hero .eyebrow{display:block;margin-bottom:18px}.tb-hero h1{font-size:clamp(32px,4.6vw,48px)}.tb-hero .sub{font-weight:500;font-size:20px;line-height:1.4;letter-spacing:-0.02em;color:var(--dart-ink);max-width:620px;margin:24px 0 0}.btnrow{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}.factgrid{display:grid;grid-template-columns:repeat(5, 1fr);border-top:var(--hair)}.factgrid .f{padding:18px 24px;border-left:var(--hair)}.factgrid .f:first-child{border-left:0}.factgrid .f .k{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--dart-grey);margin-bottom:6px}.factgrid .f .v{font-weight:600;font-size:13px;color:var(--dart-ink)}@media(max-width: 820px){.tb-hero{padding:28px 22px 24px}.factgrid{grid-template-columns:repeat(2, 1fr)}.factgrid .f{border-top:var(--hair)}.factgrid .f:nth-child(odd){border-left:0}}.btn{display:inline-block;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:11px 18px;text-decoration:none;transition:background 120ms linear,color 120ms linear}.btn-primary{background:var(--dart-ink);color:#fff;border:2px solid var(--dart-ink)}.btn-primary:hover{background:var(--dart-red);border-color:var(--dart-red);color:#fff;text-decoration:none}.btn-secondary{background:rgba(0,0,0,0);color:var(--dart-ink);border:2px solid var(--dart-ink)}.btn-secondary:hover{background:var(--dart-ink);color:#fff;text-decoration:none}.prose{max-width:none}.prose>p,.prose li{max-width:68ch}.prose p{margin:0 0 1em}.prose h3{font-size:19px;margin:34px 0 8px}.prose h3 .chip{font-size:13px;padding:4px 9px;vertical-align:middle;letter-spacing:.1em}.prose h4{font-size:15px;margin:24px 0 6px;font-weight:700}.prose ul,.prose ol{margin:8px 0 18px;padding-left:1.3em}.prose li{margin:6px 0}.prose ul.ticks{list-style:none;padding-left:0}.prose ul.ticks li{padding-left:22px;position:relative}.prose ul.ticks li::before{content:"—";position:absolute;left:0;color:var(--dart-red);font-weight:700}.prose a{color:var(--dart-ink);text-decoration:underline;text-decoration-color:var(--dart-red);text-decoration-thickness:1px}.prose a:hover{color:var(--dart-red)}.prose code{font-family:var(--mono);font-size:13px;background:var(--dart-fill);padding:1px 5px}.prose pre{font-family:var(--mono);font-size:13px;line-height:1.7;background:var(--dart-fill);border-left:3px solid var(--dart-red);padding:14px 18px;overflow-x:auto;margin:18px 0}.prose pre code{background:none;padding:0}.prose blockquote{margin:18px 0;padding:2px 0 2px 18px;border-left:3px solid var(--dart-red);color:var(--dart-grey)}.prose>*:first-child{margin-top:0}h2.sec{font-size:28px;font-weight:700;letter-spacing:-0.035em;margin:64px 0 18px;padding-top:24px;border-top:var(--rule);scroll-margin-top:100px}h2.sec:first-of-type{border-top:0;padding-top:0;margin-top:0}.pagehead{border-bottom:var(--rule);padding-bottom:24px;margin-bottom:34px}.pagehead h1{font-size:clamp(30px,4vw,44px);margin:.2rem 0 0}.pagehead .eyebrow{display:block}.pagehead .lede{font-weight:500;font-size:20px;line-height:1.4;letter-spacing:-0.02em;color:var(--dart-ink);max-width:620px;margin-top:14px}.panel,.callout{background:var(--dart-fill);border-left:5px solid var(--dart-red);padding:18px 24px;font-weight:500;font-size:13.5px;line-height:1.55;margin:18px 0}.panel>:last-child,.callout>:last-child{margin-bottom:0}.panel .eyebrow{margin-bottom:6px}.panel.warn{border-left-color:var(--dart-red)}.badge,.chip{display:inline-flex;align-items:center;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:3px 7px;line-height:1.3;text-decoration:none;white-space:nowrap;color:var(--dart-ink)}.badge a,.chip a{color:inherit;text-decoration:none}.chip .dot{display:none}.chip.open,.badge.aiok{color:#fff;font-weight:600;border:0;background:linear-gradient(180deg, #1FBBCF, #0B8DA0);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 1px 2px rgba(17,17,17,.28);text-shadow:0 1px 0 rgba(0,0,0,.16)}.chip.free,.badge.noai,.badge.b-noai{color:#fff;font-weight:600;border:0;background:linear-gradient(180deg, #E52E86, #B01E63);box-shadow:inset 0 1px 0 rgba(255,255,255,.42),0 1px 2px rgba(17,17,17,.28);text-shadow:0 1px 0 rgba(0,0,0,.18)}.chip.oral,.badge.oraleval{background:var(--dart-ink);color:#fff;border:0}.chip.tbd,.badge.passfail{background:var(--dart-fill);color:var(--dart-grey);border:0}.badge.duefri{border:1px solid var(--dart-line);background:rgba(0,0,0,0);color:var(--dart-ink)}.badge.prep{background:var(--dart-fill);border-left:3px solid var(--dart-red);color:var(--dart-ink)}.badge.noclass{border:1px dashed #b5b5b0;background:rgba(0,0,0,0);color:var(--dart-grey)}.badge.instr{border:1px solid var(--dart-ink);background:rgba(0,0,0,0);color:var(--dart-ink);font-weight:700;margin-right:.3em}.cal-top .badge.instr{font-size:9px;padding:1px 5px;letter-spacing:.1em;vertical-align:1px}.tablewrap{overflow-x:auto;border:var(--hair)}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:11px 14px;border-bottom:var(--hair);vertical-align:top}thead th{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dart-grey);font-weight:400;background:var(--dart-fill)}tbody tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.prose table{width:100%}.gradecards{display:grid;grid-template-columns:repeat(4, 1fr);gap:0;border:var(--hair);margin:18px 0}.gradecards .gc{border-left:var(--hair);padding:18px 16px;display:flex;flex-direction:column;gap:8px}.gradecards .gc:first-child{border-left:0}.gradecards .gc .gw{font-weight:900;font-size:34px;line-height:.9;letter-spacing:-0.04em;color:var(--dart-red)}.gradecards .gc .gn{font-weight:700;font-size:14px;line-height:1.15}.gradecards .gc .gd{font-family:var(--mono);font-size:11px;line-height:1.4;color:var(--dart-grey)}.gradecards .gc .gt{margin-top:auto}@media(max-width: 820px){.gradecards{grid-template-columns:repeat(2, 1fr)}.gradecards .gc:nth-child(odd){border-left:0}.gradecards .gc{border-top:var(--hair)}}@media(max-width: 520px){.gradecards{grid-template-columns:1fr}.gradecards .gc{border-left:0}}.timeline{display:flex;flex-wrap:wrap;align-items:stretch;gap:0;margin:18px 0 8px;border:var(--hair)}.tstage{flex:1 1 200px;padding:18px 20px;display:flex;flex-direction:column;gap:8px;border-left:var(--hair)}.tstage:first-child{border-left:0}.tstage .tk{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--dart-grey)}.tstage .tv{font-weight:700;font-size:16px;line-height:1.15}.tstage .chip{align-self:flex-start;margin-top:auto}.tarrow{display:none}@media(max-width: 700px){.tstage{flex:1 1 100%;border-left:0;border-top:var(--hair)}.tstage:first-child{border-top:0}}.modname{font-weight:700}.modname.mod-m1{color:var(--dart-m1)}.modname.mod-m2{color:var(--dart-m2)}.modname.mod-m3{color:var(--dart-m3)}.modname.mod-m4{color:var(--dart-m4)}.modcards{display:grid;grid-template-columns:repeat(2, 1fr);gap:14px;margin:14px 0 24px}.modcard{background:var(--mbg);border-top:14px solid var(--mh);padding:22px 24px 26px}.modcard .mc-n{font-weight:900;font-size:54px;line-height:.82;letter-spacing:-0.07em;color:var(--mh);margin-bottom:12px}.modcard .mc-name{font-weight:700;font-size:18px;letter-spacing:-0.02em;color:var(--dart-ink);line-height:1.15;max-width:none}.modcard .mc-blurb{font-size:13px;line-height:1.5;color:var(--dart-ink);margin-top:8px;max-width:none}@media(max-width: 640px){.modcards{grid-template-columns:1fr}}.caljump{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:0 0 18px}.caljump .jl{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--dart-grey)}.caljump a{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--dart-ink);border-bottom:2px solid var(--dart-ink);padding-bottom:1px}.caljump a.mod-m1{color:var(--dart-m1);border-bottom-color:var(--dart-m1)}.caljump a.mod-m2{color:var(--dart-m2);border-bottom-color:var(--dart-m2)}.caljump a.mod-m3{color:var(--dart-m3);border-bottom-color:var(--dart-m3)}.caljump a.mod-m4{color:var(--dart-m4);border-bottom-color:var(--dart-m4)}.calwide{width:100%;border:0;overflow-x:auto}table.cal{table-layout:fixed;width:100%;min-width:760px;border-collapse:collapse;border:var(--hair);font-size:14px}table.cal col.c-tue{width:40%}table.cal col.c-thu{width:40%}table.cal col.c-fri{width:20%}table.cal thead th{background:var(--dart-ink);color:#fff;font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;padding:9px 13px;border-left:1px solid #3a3a38}table.cal thead th:first-child{border-left:0}table.cal td{border-bottom:var(--hair);border-left:1px solid #ececea;vertical-align:top}table.cal td:first-child{border-left:0}.calcell{padding:12px 13px;background:var(--dart-paper)}.calcell.empty{background:#fbfbfa}.calcell.mod-m1,.calcell.mod-m2,.calcell.mod-m3,.calcell.mod-m4{border-left:3px solid var(--mh);padding-left:13px}.cal-date{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--dart-grey);margin-bottom:6px}.cal-top{line-height:1.25}.cal-n{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.04em;color:var(--dart-grey)}.cal-n.exam{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--dart-red)}.cal-title{font-weight:700;font-size:14px;line-height:1.22;color:var(--dart-ink)}.cal-title.exam{color:var(--dart-ink)}.cal-title.break{font-weight:600;font-size:12.5px;color:var(--dart-grey)}.cal-prep{font-family:var(--mono);font-size:10px;line-height:1.45;color:var(--dart-grey);margin-top:5px}.cal-prep .lbl{color:var(--dart-grey)}.cal-prep a{color:var(--dart-red);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:1px;text-decoration-color:var(--dart-red)}.cal-slides{font-family:var(--mono);font-size:10px;margin-top:5px}.cal-slides a{color:var(--dart-ink)}.cal-miles{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.cal-miles .badge{font-size:9px;letter-spacing:.12em;padding:2px 6px}.badge.b-out,.badge.b-due{background:var(--dart-red);color:#fff;font-weight:700;border:0}.cal-miles .badge.b-out,.cal-miles .badge.b-due{font-size:10px;padding:3px 8px;letter-spacing:.1em}.badge.b-oral{background:var(--dart-ink);color:#fff;font-weight:700}.cal-miles .badge.b-oral{font-size:10px;padding:3px 8px;letter-spacing:.1em}.badge.b-exam{background:var(--dart-ink);color:#fff}.badge.b-quiz{background:var(--dart-ink);color:#fff;font-weight:700;box-shadow:inset 3px 0 0 var(--dart-red)}.cal-miles .badge.b-quiz{font-size:10px;padding:3px 8px 3px 9px;letter-spacing:.1em}.badge.b-event{background:var(--dart-ink);color:#fff}.calcell.t-deadline{background:var(--dart-fill)}.calcell.t-deadline .cal-date{color:var(--dart-grey)}.cal-time{color:var(--dart-red);font-weight:600}.calcell.t-break{background:#fbfbfa}.calcell.t-break .cal-title.break{color:var(--dart-grey)}.cal-band td{padding:0;border-left:0}.cal-band .band-inner{display:flex;align-items:center;gap:14px;padding:10px 16px;background:var(--mbg)}.cal-band .band-n{font-weight:900;font-size:20px;letter-spacing:-0.05em;color:var(--mh);line-height:1}.cal-band .band-name{font-weight:700;font-size:13px;color:var(--dart-ink)}.cal-band .band-range{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--mh)}.calrow{scroll-margin-top:100px}.cal-band{scroll-margin-top:100px}tr.calrow.is-thisweek td{box-shadow:inset 0 3px 0 var(--dart-red)}@media(max-width: 700px){table.cal{min-width:0;display:block;border:0}table.cal colgroup,table.cal thead{display:none}table.cal tbody,table.cal tr{display:block}.cal-band td{display:block}.cal-band{border:var(--hair);border-bottom:0}.calrow{display:block;border:var(--hair)}.calrow td{display:block;width:100%;border-left:0;border-bottom:var(--hair)}.calrow td:last-child{border-bottom:0}.calcell.mod-m1,.calcell.mod-m2,.calcell.mod-m3,.calcell.mod-m4{border-left:3px solid var(--mh)}.calcell[data-wd]:not(.empty)::before{content:attr(data-wd);display:block;font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--dart-red);margin-bottom:4px}.calcell.empty{display:none}}.acards{display:flex;flex-direction:column;border:var(--hair);margin-bottom:34px}.acard{display:grid;grid-template-columns:64px 1fr auto;grid-template-areas:"id title weight" "id desc weight" "id meta weight";gap:2px 16px;padding:18px 20px;border-top:var(--hair);text-decoration:none;color:inherit}.acard:first-child{border-top:0}.acard .aid{grid-area:id;font-family:var(--mono);font-weight:600;font-size:13px;color:var(--dart-grey);align-self:start}.acard h3{grid-area:title;font-size:17px;font-weight:700;margin:0}.acard .aw{grid-area:weight;font-family:var(--mono);font-size:12px;color:var(--dart-red);font-weight:600;text-align:right;align-self:start}.acard .awx{display:block;font-family:var(--mono);font-size:10px;color:var(--dart-grey);font-weight:400;margin-top:3px;letter-spacing:0}.acard .adesc{grid-area:desc;margin:2px 0 0;color:var(--dart-grey);font-size:14px;max-width:70ch}.acard .ameta{grid-area:meta;display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:center}@media(max-width: 640px){.acard{grid-template-columns:1fr auto;grid-template-areas:"id weight" "title title" "desc desc" "meta meta"}}.adetail-meta{display:flex;flex-wrap:wrap;gap:0;border:var(--hair);margin-bottom:24px}.adetail-meta .m{flex:1 1 140px;padding:14px 16px;border-left:var(--hair)}.adetail-meta .m:first-child{border-left:0}.adetail-meta .m .k{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--dart-grey);margin-bottom:5px}.adetail-meta .m .v{font-weight:600;font-size:13px}.assignment-nav{display:flex;justify-content:space-between;gap:16px;margin-top:48px;padding-top:18px;border-top:var(--rule);font-family:var(--mono);font-size:12px}.assignment-nav a{text-decoration:none;color:var(--dart-ink)}.assignment-nav a:hover{color:var(--dart-red)}.grid{display:grid;gap:0}.g2{grid-template-columns:repeat(2, 1fr)}@media(max-width: 700px){.g2{grid-template-columns:1fr}}.card{border:var(--hair);padding:18px 20px}.grid.g2 .card{margin:-0.5px}.card h3{margin:0 0 6px;font-size:16px}.prose details{border-top:var(--hair);padding:2px 0}.prose summary{cursor:pointer;font-weight:700;padding:12px 0;list-style:none}.prose summary::-webkit-details-marker{display:none}.prose summary::after{content:"+";float:right;color:var(--dart-red);font-weight:700}.prose details[open] summary::after{content:"–"}.sitefoot{border-top:var(--rule);margin-top:64px}.sitefoot .inner{max-width:var(--maxw);margin:0 auto;padding:28px 56px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.foot-brand{align-items:stretch}.foot-credit{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--dart-grey);text-align:right;line-height:1.7}.foot-credit a{color:var(--dart-ink);text-decoration:none;border-bottom:1px solid var(--dart-line)}.foot-credit a:hover{color:var(--dart-red)}@media(max-width: 820px){.sitefoot .inner{padding:24px;flex-direction:column;align-items:flex-start;gap:18px}.foot-credit{text-align:left}}/*# sourceMappingURL=style.css.map */