@layer reset, foundation, layout, components, utilities;

@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body, h1, h2, h3, p, figure, dl, dd { margin: 0; }
  ul, ol { margin: 0; padding: 0; }
  img, svg { display: block; max-width: 100%; }
  button, input, textarea, select { font: inherit; }
  a { color: inherit; }
}

@layer foundation {
  :root {
    color-scheme: light;
    --ds-canvas: #f4f1e9;
    --ds-canvas-rgb: 244 241 233;
    --ds-surface: #fffdf8;
    --ds-surface-2: #eae7de;
    --ds-ink: #10202a;
    --ds-muted: #5e6b70;
    --ds-faint: #7c888c;
    --ds-line: #c9cec9;
    --ds-line-strong: #9ba6a5;
    --ds-deep: #071923;
    --ds-deep-2: #0e2733;
    --ds-white: #fffdf8;
    --ds-shadow: 0 24px 80px rgb(10 29 39 / 12%);
    --ds-header-h: 76px;
    --ds-page-x: clamp(1.15rem, 4vw, 4.5rem);
    --ds-content: 82rem;
    --ds-display: "Helvetica Neue", "Arial Nova", Arial, sans-serif;
    --ds-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --ds-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  }

  html[data-ds-theme="dark"] {
    color-scheme: dark;
    --ds-canvas: #071219;
    --ds-canvas-rgb: 7 18 25;
    --ds-surface: #0d1d25;
    --ds-surface-2: #132731;
    --ds-ink: #eff3ef;
    --ds-muted: #acb8ba;
    --ds-faint: #849398;
    --ds-line: #2a3e47;
    --ds-line-strong: #49606a;
    --ds-deep: #030b10;
    --ds-deep-2: #0a202b;
    --ds-white: #f5f7f2;
    --ds-shadow: 0 28px 90px rgb(0 0 0 / 35%);
  }

  html { scroll-padding-top: calc(var(--ds-header-h) + 5rem); }

  body {
    min-width: 20rem;
    background: var(--ds-canvas);
    color: var(--ds-ink);
    font-family: var(--ds-body);
    font-size: 1rem;
    line-height: 1.65;
    text-rendering: optimizeLegibility;
    transition: background-color 180ms ease, color 180ms ease;
  }

  ::selection { background: var(--ds-program); color: #071923; }

  :focus-visible {
    outline: 3px solid var(--ds-program);
    outline-offset: 4px;
    border-radius: 2px;
  }

  h1, h2, h3 {
    font-family: var(--ds-display);
    font-weight: 750;
    line-height: .98;
    letter-spacing: -.055em;
    text-wrap: balance;
  }

  h1 { font-size: clamp(3.25rem, 9.1vw, 8.8rem); }
  h2 { font-size: clamp(2.5rem, 6vw, 6.1rem); }
  h3 { font-size: clamp(1.75rem, 3.4vw, 3.65rem); }

  p { text-wrap: pretty; }
  a { text-underline-offset: .18em; }

  .ds-skip {
    position: fixed;
    z-index: 999;
    top: .75rem;
    left: .75rem;
    padding: .8rem 1rem;
    background: var(--ds-program);
    color: #071923;
    font-weight: 800;
    transform: translateY(-150%);
  }

  .ds-skip:focus { transform: translateY(0); }
}

@layer layout {
  .ds-header {
    position: sticky;
    z-index: 100;
    top: 0;
    display: flex;
    min-height: var(--ds-header-h);
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem var(--ds-page-x);
    border-bottom: 1px solid rgb(var(--ds-canvas-rgb) / 0%);
    background: rgb(var(--ds-canvas-rgb) / 86%);
    backdrop-filter: blur(18px) saturate(1.2);
    transition: border-color 180ms ease, box-shadow 180ms ease;
  }

  .ds-header[data-scrolled="true"] {
    border-bottom-color: var(--ds-line);
    box-shadow: 0 6px 28px rgb(6 24 33 / 6%);
  }

  .ds-brand {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    gap: .72rem;
    color: var(--ds-ink);
    text-decoration: none;
  }

  .ds-brand img { width: 2.75rem; height: 2.75rem; object-fit: contain; }
  .ds-brand span { display: grid; line-height: 1.12; }
  .ds-brand strong { font-size: .87rem; letter-spacing: -.01em; }
  .ds-brand small { margin-top: .25rem; color: var(--ds-muted); font-size: .65rem; font-weight: 650; letter-spacing: .055em; text-transform: uppercase; }

  .ds-site-nav {
    position: fixed;
    inset: var(--ds-header-h) 0 auto 0;
    display: none;
    min-height: calc(100dvh - var(--ds-header-h));
    align-content: start;
    gap: .25rem;
    padding: 1.25rem var(--ds-page-x) 3rem;
    background: var(--ds-canvas);
    border-top: 1px solid var(--ds-line);
  }

  .ds-site-nav[data-open="true"] { display: grid; }

  .ds-site-nav > a {
    display: flex;
    min-height: 3.35rem;
    align-items: center;
    border-bottom: 1px solid var(--ds-line);
    font-size: 1.08rem;
    font-weight: 720;
    text-decoration: none;
  }

  .ds-site-nav .ds-nav-cta {
    justify-content: center;
    margin-top: .8rem;
    border: 0;
    background: var(--ds-program);
    color: #071923;
  }

  .ds-menu-toggle, .ds-theme-toggle {
    display: inline-flex;
    min-width: 3rem;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--ds-line);
    background: var(--ds-surface);
    color: var(--ds-ink);
    cursor: pointer;
  }

  .ds-menu-toggle { gap: .55rem; padding: 0 .8rem; }
  .ds-menu-label { font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
  .ds-menu-lines, .ds-menu-lines::before, .ds-menu-lines::after { display: block; width: 1.1rem; height: 2px; background: currentColor; content: ""; transition: transform 180ms ease, opacity 180ms ease; }
  .ds-menu-lines { position: relative; }
  .ds-menu-lines::before { position: absolute; transform: translateY(-5px); }
  .ds-menu-lines::after { position: absolute; transform: translateY(5px); }
  .ds-menu-toggle[aria-expanded="true"] .ds-menu-lines { background: transparent; }
  .ds-menu-toggle[aria-expanded="true"] .ds-menu-lines::before { transform: rotate(45deg); }
  .ds-menu-toggle[aria-expanded="true"] .ds-menu-lines::after { transform: rotate(-45deg); }

  .ds-theme-toggle { margin-top: .8rem; }
  .ds-theme-toggle svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
  .ds-moon { display: none; }
  [data-ds-theme="dark"] .ds-sun { display: none; }
  [data-ds-theme="dark"] .ds-moon { display: block; }

  .ds-progress {
    position: fixed;
    z-index: 180;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    pointer-events: none;
  }

  .ds-progress span {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--ds-program);
    transform: scaleX(0);
    transform-origin: left;
  }

  .ds-section {
    width: min(100%, var(--ds-content));
    margin-inline: auto;
    padding: clamp(5.5rem, 11vw, 10rem) var(--ds-page-x);
  }

  .ds-section-heading { max-width: 58rem; }
  .ds-section-heading > p:last-child { max-width: 46rem; margin-top: 1.75rem; color: var(--ds-muted); font-size: clamp(1.08rem, 1.6vw, 1.35rem); }
  .ds-heading-wide { max-width: 70rem; }

  .ds-section-number, .ds-eyebrow, .ds-card-label {
    font-family: var(--ds-mono);
    font-size: .73rem;
    font-weight: 750;
    letter-spacing: .12em;
    line-height: 1.4;
    text-transform: uppercase;
  }

  .ds-section-number { margin-bottom: 1.15rem; color: var(--ds-muted); }

  .ds-hero {
    display: grid;
    min-height: calc(100vh - var(--ds-header-h));
    padding-top: clamp(3.5rem, 8vw, 7.5rem);
  }

  .ds-hero-copy {
    width: min(100%, 88rem);
    margin-inline: auto;
    padding: 0 var(--ds-page-x) clamp(3rem, 7vw, 6rem);
  }

  .ds-breadcrumbs { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: clamp(3rem, 7vw, 6rem); color: var(--ds-muted); font-size: .78rem; font-weight: 650; }
  .ds-breadcrumbs a { text-decoration: none; }
  .ds-breadcrumbs a:hover { text-decoration: underline; }
  .ds-eyebrow { margin-bottom: 1.2rem; color: var(--ds-muted); }
  .ds-hero h1 { max-width: 12ch; }
  .ds-hero h1::first-line { color: var(--ds-ink); }

  .ds-hero-deck {
    max-width: 45rem;
    margin-top: clamp(1.5rem, 3.5vw, 2.8rem);
    color: var(--ds-muted);
    font-size: clamp(1.18rem, 2vw, 1.55rem);
    line-height: 1.5;
  }

  .ds-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }

  .ds-button {
    display: inline-flex;
    min-height: 3.35rem;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: .75rem 1.15rem;
    border: 1px solid transparent;
    font-size: .88rem;
    font-weight: 800;
    text-decoration: none;
    transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
  }

  .ds-button:hover { transform: translateY(-2px); }
  .ds-button-primary { background: var(--ds-program); color: #071923; box-shadow: 0 12px 36px color-mix(in srgb, var(--ds-program) 30%, transparent); }
  .ds-button-quiet { border-color: var(--ds-line-strong); color: var(--ds-ink); }
  .ds-button-quiet:hover { background: var(--ds-surface); }
  .ds-button-dark { background: var(--ds-deep); color: var(--ds-white); }
  .ds-button-outline-dark { border-color: var(--ds-deep); color: var(--ds-deep); }

  .ds-intake-note { display: flex; align-items: flex-start; gap: .55rem; margin-top: 1.3rem; color: var(--ds-muted); font-size: .78rem; font-weight: 650; }
  .ds-intake-note span { flex: 0 0 auto; width: .5rem; height: .5rem; margin-top: .38rem; border-radius: 50%; background: #33ae69; box-shadow: 0 0 0 4px rgb(51 174 105 / 13%); }

  .ds-media { position: relative; overflow: hidden; background: var(--ds-surface-2); }
  .ds-media picture, .ds-media img { width: 100%; height: 100%; }
  .ds-media img { object-fit: cover; object-position: var(--ds-media-focus); }
  .ds-media figcaption {
    display: flex;
    flex-direction: column;
    gap: .18rem;
    padding: .8rem var(--ds-page-x) 1rem;
    border-top: 1px solid var(--ds-line);
    background: var(--ds-surface);
    color: var(--ds-muted);
    font-size: .76rem;
    line-height: 1.45;
  }
  .ds-media figcaption span { color: var(--ds-ink); font-family: var(--ds-mono); font-size: .61rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }

  .ds-hero-media { width: 100%; }
  .ds-hero-media picture { display: block; height: clamp(26rem, 68vw, 48rem); }
  .ds-hero-media::after { position: absolute; inset: 0 0 auto; height: 30%; background: linear-gradient(to bottom, rgb(0 0 0 / 20%), transparent); content: ""; pointer-events: none; }

  .ds-fact-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: var(--ds-line);
    border-bottom: 1px solid var(--ds-line);
  }
  .ds-fact-strip div { min-height: 6.8rem; padding: 1.2rem var(--ds-page-x); background: var(--ds-deep); color: var(--ds-white); }
  .ds-fact-strip dt { color: #aab8bc; font-family: var(--ds-mono); font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
  .ds-fact-strip dd { margin-top: .4rem; font-size: 1.05rem; font-weight: 780; }

  .ds-page-nav-wrap { position: sticky; z-index: 80; top: var(--ds-header-h); border-bottom: 1px solid var(--ds-line); background: rgb(var(--ds-canvas-rgb) / 93%); backdrop-filter: blur(16px); }
  .ds-page-nav { display: none; }
  .ds-page-nav-mobile summary { display: flex; min-height: 3.6rem; align-items: center; justify-content: space-between; padding: .7rem var(--ds-page-x); font-weight: 780; cursor: pointer; list-style: none; }
  .ds-page-nav-mobile summary::-webkit-details-marker { display: none; }
  .ds-page-nav-mobile summary::after { content: "+"; font-family: var(--ds-mono); font-size: 1.2rem; font-weight: 400; }
  .ds-page-nav-mobile[open] summary::after { content: "−"; }
  .ds-page-nav-mobile nav { display: grid; max-height: min(65vh, 30rem); overflow-y: auto; padding: .25rem var(--ds-page-x) 1rem; border-top: 1px solid var(--ds-line); }
  .ds-page-nav-mobile a { display: flex; min-height: 3rem; align-items: center; border-bottom: 1px solid var(--ds-line); color: var(--ds-muted); font-size: .9rem; font-weight: 700; text-decoration: none; }

  .ds-fit-grid { display: grid; gap: 1rem; margin-top: clamp(3rem, 7vw, 6rem); }
  .ds-fit-card { display: flex; flex-direction: column; padding: clamp(1.4rem, 4vw, 2.5rem); border: 1px solid var(--ds-line); background: var(--ds-surface); }
  .ds-fit-card h3 { margin-top: 1rem; font-size: clamp(1.7rem, 3vw, 2.8rem); }
  .ds-fit-card > p:not(.ds-card-label) { margin-top: 1.25rem; color: var(--ds-muted); }
  .ds-fit-positive { background: var(--ds-program-soft); color: #10202a; border-color: transparent; }
  [data-ds-theme="dark"] .ds-fit-positive { background: var(--ds-program-dark-soft); color: var(--ds-ink); }
  .ds-check-list { display: grid; gap: 1.1rem; margin-top: 2rem; list-style: none; }
  .ds-check-list li { position: relative; padding-left: 2rem; font-size: 1.08rem; font-weight: 680; line-height: 1.45; }
  .ds-check-list li::before { position: absolute; left: 0; top: .03rem; content: "✓"; font-family: var(--ds-mono); font-weight: 900; }
  .ds-large-note { font-size: clamp(1.16rem, 2.1vw, 1.55rem); line-height: 1.48; }
  .ds-eligibility-card, .ds-cost-card { gap: 1rem; }
  .ds-eligibility-card ul { display: grid; gap: .75rem; padding-left: 1.15rem; color: var(--ds-muted); }
  .ds-fit-card > a { display: inline-flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1.5rem; font-size: .84rem; font-weight: 800; }

  .ds-experience { padding-top: 1rem; }
  .ds-experience-intro { padding-bottom: clamp(3rem, 7vw, 6rem); }
  .ds-experience-intro > p:last-child { max-width: 44rem; margin-top: 1.5rem; color: var(--ds-muted); font-size: 1.18rem; }
  .ds-chapter-list { display: grid; gap: clamp(5rem, 12vw, 10rem); padding-bottom: clamp(6rem, 12vw, 11rem); }
  .ds-chapter { display: grid; align-items: center; }
  .ds-chapter-media picture { display: block; height: clamp(29rem, 95vw, 42rem); }
  .ds-chapter-copy { position: relative; width: calc(100% - (var(--ds-page-x) * 1.25)); margin: -2.25rem 0 0 auto; padding: clamp(1.6rem, 5vw, 3.5rem); background: var(--ds-surface); box-shadow: var(--ds-shadow); }
  .ds-chapter-index { position: absolute; right: 1.2rem; top: 1rem; color: var(--ds-line-strong); font-family: var(--ds-mono); font-size: clamp(2.4rem, 7vw, 5rem); font-weight: 300; line-height: 1; }
  .ds-chapter-copy .ds-card-label { padding-right: 4.8rem; color: var(--ds-muted); }
  .ds-chapter-copy h3 { max-width: 15ch; margin-top: 1.1rem; }
  .ds-chapter-copy > p:not(.ds-card-label, .ds-chapter-index) { max-width: 40rem; margin-top: 1.5rem; color: var(--ds-muted); font-size: 1.05rem; }
  .ds-tag-list { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.75rem; list-style: none; }
  .ds-tag-list li { padding: .45rem .65rem; border: 1px solid var(--ds-line); color: var(--ds-muted); font-family: var(--ds-mono); font-size: .68rem; }

  .ds-curriculum { border-top: 1px solid var(--ds-line); }
  .ds-curriculum-list { margin-top: clamp(3rem, 7vw, 6rem); border-top: 1px solid var(--ds-line-strong); }
  .ds-year { border-bottom: 1px solid var(--ds-line-strong); }
  .ds-year summary { display: grid; grid-template-columns: 2.6rem 1fr 2.8rem; min-height: 6.5rem; align-items: center; gap: .8rem; cursor: pointer; list-style: none; }
  .ds-year summary::-webkit-details-marker { display: none; }
  .ds-year-number { color: var(--ds-faint); font-family: var(--ds-mono); font-size: .72rem; }
  .ds-year summary > span:nth-child(2) { display: grid; gap: .28rem; }
  .ds-year summary strong { font-family: var(--ds-display); font-size: clamp(1.45rem, 3vw, 2.6rem); letter-spacing: -.04em; }
  .ds-year summary small { color: var(--ds-muted); font-size: .8rem; font-weight: 650; }
  .ds-year-mark { position: relative; width: 2.75rem; height: 2.75rem; border: 1px solid var(--ds-line); border-radius: 50%; }
  .ds-year-mark::before, .ds-year-mark::after { position: absolute; inset: 50% auto auto 50%; width: .85rem; height: 1px; background: currentColor; content: ""; transform: translate(-50%, -50%); }
  .ds-year-mark::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform 160ms ease; }
  .ds-year[open] .ds-year-mark { background: var(--ds-program); color: #071923; border-color: transparent; }
  .ds-year[open] .ds-year-mark::after { transform: translate(-50%, -50%) rotate(0); }
  .ds-year-body { padding: 0 0 clamp(2.5rem, 5vw, 4rem) 3.4rem; }
  .ds-year-body > p { max-width: 48rem; color: var(--ds-muted); }
  .ds-semesters { display: grid; gap: 2.5rem; margin-top: 2.5rem; }
  .ds-semesters h3 { padding-bottom: .8rem; border-bottom: 1px solid var(--ds-line); font-family: var(--ds-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
  .ds-semesters ol { list-style: none; counter-reset: subjects; }
  .ds-semesters li { display: grid; grid-template-columns: 1.8rem 1fr; gap: .5rem; padding: .75rem 0; border-bottom: 1px solid var(--ds-line); color: var(--ds-muted); font-size: .9rem; counter-increment: subjects; }
  .ds-semesters li::before { color: var(--ds-faint); content: counter(subjects, decimal-leading-zero); font-family: var(--ds-mono); font-size: .66rem; }
  .ds-syllabus-note { max-width: 48rem; margin-top: 2rem; color: var(--ds-faint); font-size: .72rem; }

  .ds-practice { display: grid; background: var(--ds-surface); border-block: 1px solid var(--ds-line); }
  .ds-practice-copy { padding: clamp(4rem, 9vw, 8rem) var(--ds-page-x); }
  .ds-practice-copy > p:not(.ds-section-number) { max-width: 42rem; margin-top: 1.5rem; color: var(--ds-muted); font-size: 1.08rem; }
  .ds-lab-list { display: grid; margin-top: 3rem; border-top: 1px solid var(--ds-line-strong); }
  .ds-lab-list div { display: grid; grid-template-columns: 2.4rem 1fr; gap: .6rem; padding: 1rem 0; border-bottom: 1px solid var(--ds-line); font-weight: 720; }
  .ds-lab-list span { color: var(--ds-faint); font-family: var(--ds-mono); font-size: .68rem; }
  .ds-practice-media picture { display: block; min-height: 34rem; height: 100%; }

  .ds-careers { display: grid; background: var(--ds-deep); color: var(--ds-white); }
  .ds-career-image-wrap { padding: var(--ds-page-x) var(--ds-page-x) 0; }
  .ds-career-media picture { display: block; height: clamp(25rem, 78vw, 38rem); }
  .ds-career-media figcaption { border-color: #2c414a; background: var(--ds-deep-2); color: #aebcc0; }
  .ds-career-media figcaption span { color: var(--ds-white); }
  .ds-career-copy { padding: clamp(4rem, 9vw, 8rem) var(--ds-page-x); }
  .ds-career-copy .ds-section-number { color: #aab8bc; }
  .ds-career-copy > p:not(.ds-section-number) { max-width: 44rem; margin-top: 1.6rem; color: #b9c4c6; font-size: 1.08rem; }
  .ds-career-list { display: grid; margin-top: 3rem; border-top: 1px solid #38505b; list-style: none; }
  .ds-career-list li { display: flex; min-height: 4.2rem; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #38505b; font-weight: 720; }
  .ds-career-list span { color: var(--ds-program); }

  .ds-admissions { display: grid; gap: 3rem; padding: clamp(5rem, 11vw, 9rem) var(--ds-page-x); background: var(--ds-program); color: #071923; }
  .ds-admissions .ds-section-number { color: #26353b; }
  .ds-admissions-intro > p:last-child { max-width: 38rem; margin-top: 1.5rem; color: #263a43; font-size: 1.08rem; }
  .ds-steps { display: grid; border-top: 1px solid rgb(7 25 35 / 35%); list-style: none; }
  .ds-steps li { display: grid; grid-template-columns: 2.4rem 1fr; gap: .75rem; padding: 1.25rem 0; border-bottom: 1px solid rgb(7 25 35 / 35%); }
  .ds-steps > li > span { font-family: var(--ds-mono); font-size: .69rem; }
  .ds-steps strong { display: block; font-size: 1rem; }
  .ds-steps p { margin-top: .3rem; color: #2b3e46; font-size: .86rem; }
  .ds-admission-actions { display: flex; flex-wrap: wrap; align-content: flex-start; gap: .7rem; }
  .ds-admission-actions > p { flex-basis: 100%; margin-top: .8rem; color: #243840; font-size: .82rem; }
  .ds-admission-actions > p a { font-weight: 800; }

  .ds-questions { display: grid; gap: clamp(3rem, 8vw, 7rem); }
  .ds-faq-list { border-top: 1px solid var(--ds-line-strong); }
  .ds-faq { border-bottom: 1px solid var(--ds-line-strong); }
  .ds-faq summary { display: grid; grid-template-columns: 1fr 2.5rem; min-height: 5rem; align-items: center; gap: 1rem; font-weight: 760; cursor: pointer; list-style: none; }
  .ds-faq summary::-webkit-details-marker { display: none; }
  .ds-faq summary span { position: relative; width: 2.5rem; height: 2.5rem; border: 1px solid var(--ds-line); border-radius: 50%; }
  .ds-faq summary span::before, .ds-faq summary span::after { position: absolute; inset: 50% auto auto 50%; width: .75rem; height: 1px; background: currentColor; content: ""; transform: translate(-50%, -50%); }
  .ds-faq summary span::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform 160ms ease; }
  .ds-faq[open] summary span { background: var(--ds-program); color: #071923; border-color: transparent; }
  .ds-faq[open] summary span::after { transform: translate(-50%, -50%); }
  .ds-faq > p { max-width: 48rem; padding: 0 3.5rem 1.75rem 0; color: var(--ds-muted); }

  .ds-related { display: grid; gap: 2.5rem; padding: clamp(4rem, 9vw, 7rem) var(--ds-page-x); border-top: 1px solid var(--ds-line); background: var(--ds-surface); }
  .ds-related h2 { max-width: 13ch; font-size: clamp(2.25rem, 5vw, 4.6rem); }
  .ds-related-links { display: grid; gap: .8rem; }
  .ds-related-links a { position: relative; display: grid; min-height: 12rem; align-content: space-between; padding: 1.35rem; overflow: hidden; border: 1px solid var(--ds-line); text-decoration: none; }
  .ds-related-links a::before { position: absolute; inset: 0 auto 0 0; width: .35rem; background: var(--ds-related-accent); content: ""; transition: width 180ms ease; }
  .ds-related-links a:hover::before { width: .7rem; }
  .ds-related-links span { color: var(--ds-muted); font-family: var(--ds-mono); font-size: .68rem; }
  .ds-related-links strong { max-width: 12ch; font-family: var(--ds-display); font-size: 1.65rem; letter-spacing: -.04em; line-height: 1; }
  .ds-related-links small { display: flex; justify-content: space-between; font-size: .75rem; font-weight: 750; }
  .ds-related-links b { color: var(--ds-related-accent); font-size: 1rem; }

  .ds-footer { display: grid; gap: 2.5rem; padding: 3rem var(--ds-page-x) 1.5rem; background: var(--ds-deep); color: var(--ds-white); }
  .ds-footer-brand { display: flex; align-items: center; gap: .9rem; }
  .ds-footer-brand img { width: 3.2rem; height: 3.2rem; }
  .ds-footer-brand div { display: grid; }
  .ds-footer-brand strong { line-height: 1.2; }
  .ds-footer-brand span { margin-top: .28rem; color: #9aabb0; font-size: .7rem; }
  .ds-footer-links, .ds-footer-contact { display: grid; gap: .5rem; align-content: start; }
  .ds-footer-links a, .ds-footer-contact a { color: #bdc8ca; font-size: .82rem; font-weight: 650; text-decoration: none; }
  .ds-footer a:hover { color: var(--ds-program); }
  .ds-footer-small { padding-top: 1.2rem; border-top: 1px solid #2c414a; color: #829399; font-size: .67rem; }
}

@layer components {
  @media (min-width: 42rem) {
    .ds-fact-strip { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .ds-fact-strip div { min-height: 7.5rem; padding: 1.4rem 1.5rem; }
    .ds-fit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ds-fit-card { min-height: 24rem; }
    .ds-eligibility-card { grid-row: span 2; }
    .ds-semesters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ds-related-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ds-related-links a { min-height: 15rem; }
    .ds-footer { grid-template-columns: 2fr 1fr 1fr; }
    .ds-footer-small { grid-column: 1 / -1; }
  }

  @media (min-width: 64rem) {
    :root { --ds-header-h: 86px; }

    .ds-header { padding-block: .75rem; }
    .ds-brand img { width: 3rem; height: 3rem; }
    .ds-brand strong { font-size: .92rem; }
    .ds-menu-toggle { display: none; }
    .ds-site-nav {
      position: static;
      display: flex;
      min-height: auto;
      align-items: center;
      gap: clamp(.8rem, 2vw, 1.6rem);
      padding: 0;
      border: 0;
      background: transparent;
    }
    .ds-site-nav > a { min-height: 2.8rem; border: 0; font-size: .78rem; }
    .ds-site-nav .ds-nav-cta { min-height: 2.85rem; margin: 0; padding: 0 1rem; }
    .ds-theme-toggle { min-width: 2.85rem; min-height: 2.85rem; margin: 0; background: transparent; }

    .ds-hero-copy { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .52fr); column-gap: 4rem; }
    .ds-breadcrumbs, .ds-eyebrow, .ds-hero h1 { grid-column: 1 / -1; }
    .ds-hero-deck { grid-column: 1; }
    .ds-actions { grid-column: 1; }
    .ds-intake-note { grid-column: 2; grid-row: 5; align-self: end; margin: 0 0 .8rem; }
    .ds-hero-media picture { height: min(69vh, 51rem); }
    .ds-hero-media figcaption { position: absolute; right: var(--ds-page-x); bottom: 1.5rem; width: min(26rem, 40vw); border: 0; background: rgb(7 25 35 / 86%); color: #c4ced0; backdrop-filter: blur(12px); }
    .ds-hero-media figcaption span { color: var(--ds-program); }

    .ds-page-nav-mobile { display: none; }
    .ds-page-nav { display: flex; width: min(100%, var(--ds-content)); margin-inline: auto; padding-inline: var(--ds-page-x); overflow-x: auto; }
    .ds-page-nav a { position: relative; display: inline-flex; min-height: 4.2rem; flex: 1 0 auto; align-items: center; gap: .5rem; padding: 0 clamp(.55rem, 1vw, .85rem); color: var(--ds-muted); font-size: .67rem; font-weight: 760; text-decoration: none; white-space: nowrap; }
    .ds-page-nav a::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: var(--ds-program); content: ""; transform: scaleX(0); transition: transform 160ms ease; }
    .ds-page-nav a span { color: var(--ds-faint); font-family: var(--ds-mono); font-size: .59rem; }
    .ds-page-nav a[data-active="true"] { color: var(--ds-ink); }
    .ds-page-nav a[data-active="true"]::after { transform: scaleX(1); }

    .ds-fit-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
    .ds-fit-card { min-height: 25rem; }
    .ds-fit-positive { grid-column: 1 / span 6; }
    .ds-fit-grid > .ds-fit-card:nth-child(2) { grid-column: 7 / -1; }
    .ds-eligibility-card { grid-column: 1 / span 7; grid-row: auto; }
    .ds-cost-card { grid-column: 8 / -1; }

    .ds-chapter { grid-template-columns: minmax(0, 1.12fr) minmax(25rem, .88fr); min-height: 48rem; }
    .ds-chapter-media { min-width: 0; height: 100%; }
    .ds-chapter-media picture { height: 100%; min-height: 48rem; }
    .ds-chapter-media figcaption { position: absolute; right: 1.5rem; bottom: 1.5rem; width: min(25rem, calc(100% - 3rem)); border: 0; background: rgb(var(--ds-canvas-rgb) / 90%); backdrop-filter: blur(12px); }
    .ds-chapter-copy { width: calc(100% + 4rem); margin: 0 0 0 -4rem; padding: clamp(3.5rem, 6vw, 6.5rem); box-shadow: var(--ds-shadow); z-index: 1; }
    .ds-chapter-reverse { grid-template-columns: minmax(25rem, .88fr) minmax(0, 1.12fr); }
    .ds-chapter-reverse .ds-chapter-media { grid-column: 2; }
    .ds-chapter-reverse .ds-chapter-copy { grid-column: 1; grid-row: 1; width: calc(100% + 4rem); margin: 0 -4rem 0 0; }
    .ds-chapter-index { right: 2rem; top: 2rem; }

    .ds-year summary { grid-template-columns: 4rem 1fr 3.25rem; min-height: 8rem; }
    .ds-year summary > span:nth-child(2) { grid-template-columns: 13rem 1fr; align-items: baseline; gap: 2rem; }
    .ds-year summary small { font-size: .9rem; }
    .ds-year-body { padding-left: 6rem; }

    .ds-practice { grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 52rem; }
    .ds-practice-copy { padding-left: max(var(--ds-page-x), calc((100vw - var(--ds-content)) / 2 + var(--ds-page-x))); }
    .ds-practice-media { height: 100%; }

    .ds-careers { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; padding: clamp(4rem, 7vw, 7rem) max(var(--ds-page-x), calc((100vw - var(--ds-content)) / 2 + var(--ds-page-x))); gap: clamp(4rem, 8vw, 8rem); }
    .ds-career-image-wrap { padding: 0; }
    .ds-career-copy { padding: 0; }
    .ds-career-media picture { height: min(67vw, 48rem); }

    .ds-admissions { grid-template-columns: minmax(0, .8fr) minmax(24rem, 1fr) minmax(17rem, .55fr); gap: clamp(3rem, 6vw, 6rem); padding-inline: max(var(--ds-page-x), calc((100vw - var(--ds-content)) / 2 + var(--ds-page-x))); }
    .ds-admission-actions { align-self: start; }

    .ds-questions { grid-template-columns: minmax(18rem, .65fr) minmax(0, 1fr); }
    .ds-questions .ds-section-heading { position: sticky; top: calc(var(--ds-header-h) + 6rem); align-self: start; }

    .ds-related { grid-template-columns: minmax(20rem, .75fr) minmax(0, 1fr); padding-inline: max(var(--ds-page-x), calc((100vw - var(--ds-content)) / 2 + var(--ds-page-x))); }
    .ds-footer { padding-inline: max(var(--ds-page-x), calc((100vw - var(--ds-content)) / 2 + var(--ds-page-x))); }
  }

  @media (min-width: 88rem) {
    .ds-hero-copy { padding-inline: 0; }
    .ds-chapter-list { width: min(calc(100% - 3rem), 94rem); margin-inline: auto; }
    .ds-fact-strip { padding-inline: calc((100vw - var(--ds-content)) / 2); }
  }
}

@layer utilities {
  body.ds-menu-open { overflow: hidden; }

  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
    .ds-button:hover { transform: none; }
  }

  @media print {
    .ds-header, .ds-progress, .ds-page-nav-wrap, .ds-actions, .ds-admission-actions, .ds-related, .ds-footer { display: none !important; }
    body { background: white; color: black; }
    .ds-hero { min-height: auto; }
    .ds-media picture { max-height: 20rem; }
    .ds-year > * { display: block !important; }
    .ds-year-body { padding-left: 0; }
  }
}
