*,*::before,*::after{box-sizing:border-box}body{font-family:lato,sans-serif;font-size:16px;line-height:1.7;color:#111;background:#fff;margin:0}a{color:#00356b}a:hover{text-decoration:none}:focus-visible{outline:3px solid #00356b;outline-offset:2px;border-radius:2px}.skip-link{position:absolute;top:-100%;left:1rem;background:#00356b;color:#fff;padding:.5rem 1rem;font-size:.9rem;z-index:1000;border-radius:0 0 4px 4px}.skip-link:focus{top:0}.page-wrap{max-width:1140px;margin:0 auto;padding:0 1.5rem}.site-header{background:#00356b;padding:.5rem 0}.site-header .page-wrap{display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:inherit}.yale-signature{display:block;width:150px;height:60px;background:url(/yale-signature-sprite.svg)no-repeat 0 100%;background-size:100%;text-indent:100%;white-space:nowrap;overflow:hidden;flex-shrink:0}.brand-text{line-height:1.2}.brand-kicker{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.8)}.brand-code{display:block;font-size:.85rem;font-weight:700;color:#fff}.nav-links{list-style:none;margin:0;padding:0;display:flex;gap:1.25rem}.nav-links a{font-size:.9rem;text-decoration:none;color:rgba(255,255,255,.9)}.nav-links a:hover{color:#fff;text-decoration:underline}main.page-wrap{padding:1.5rem 1.5rem 2rem}.hero{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #ccc}.hero h1{margin:0;font-size:1.4rem}.lede{margin:.2rem 0 0;font-size:.9rem;color:#444}.content-section{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #ddd}.content-section p,.content-section ul,.content-section ol{max-width:72ch}h2,h3{font-family:lato,sans-serif;margin:0 0 .75rem}h2{font-size:1.35rem;font-weight:700}h3{font-size:.95rem;font-weight:700;color:#555;margin-top:1.25rem}p{margin:0 0 .75rem}ul{margin:0 0 .75rem;padding-left:1.4rem}li+li{margin-top:.2rem}.page-layout{display:grid;grid-template-columns:160px 1fr;gap:0 2rem;align-items:start}.toc{position:sticky;top:1rem;font-size:.85rem}.toc ul{list-style:none;margin:0;padding:0;border-left:2px solid #ddd}.toc li{margin:0}.toc a{display:block;padding:.3rem .65rem;color:#333;text-decoration:none;line-height:1.4}.toc a:hover{color:#00356b;text-decoration:underline}.course-units{margin:1.25rem 0 .4rem}.course-units summary{font-size:.95rem;font-weight:700;color:#555;cursor:pointer;user-select:none;list-style:none}.course-units summary::-webkit-details-marker{display:none}.course-units summary .hint{font-weight:400;font-style:italic;color:#888;font-size:.85rem;margin-left:.4rem}.info-row{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem;margin-bottom:.25rem}.info-col>h3:first-child{margin-top:0}.person-layout{display:flex;gap:.5rem;align-items:flex-start;margin:.25rem 0 .5rem}.person-photo{width:64px;height:64px;object-fit:cover;flex-shrink:0;border:1px solid #ccc}.person-content{font-size:.95rem}.person-content ul{margin:0}table{width:100%;border-collapse:collapse;margin:.5rem 0 .75rem;font-size:.95rem}th,td{border:1px solid #ccc;padding:.45rem .65rem;text-align:left;vertical-align:top}th{background:#f4f4f4;font-weight:700}.schedule-table td:first-child,.schedule-table th:first-child{width:2rem;text-align:right;color:#555;white-space:nowrap}.schedule-table td:nth-child(2),.schedule-table th:nth-child(2){width:7rem;white-space:nowrap;color:#555}.schedule-subsection td{background:#f4f4f4;font-weight:700;font-size:.9rem;color:#111;text-align:left}.schedule-subsection td:first-child{color:#111;text-align:left}.schedule-links{margin-top:.25rem;display:flex;gap:.5rem;flex-wrap:wrap;font-size:.875rem}.schedule-inline-note{margin-top:.25rem;color:#555;font-size:.875rem}.site-footer{border-top:1px solid #ccc;padding:.75rem 0;font-size:.85rem}.footer-brand{display:flex;align-items:center;gap:.75rem}.yale-logo{display:block;width:65px;height:36px;background:url(/yale-logo-sprite.svg)no-repeat;background-size:100%;text-indent:100%;white-space:nowrap;overflow:hidden;flex-shrink:0}.footer-copy{margin:0;color:#444}@media(max-width:760px){.page-layout{grid-template-columns:1fr}.toc{display:none}.info-row{grid-template-columns:1fr}.hero h1{font-size:1.2rem}}