/* ══════════════════════════════════════════════════════════════════════
   AOS HOME — verbatim port of mockups/aos-home.html inline styles.
   Three style blocks concatenated: main design system, aos-home-rebuild,
   final tuning. Portal back-link chrome excluded.
   ══════════════════════════════════════════════════════════════════════ */


/* ── WP scaffolding resets (so the mockup's full-bleed design works
      unchanged inside the block theme's post-content wrapper) ───────── */
.aos-home-page .wp-site-blocks, .aos-home-page .wp-block-group.aos-home-page, .aos-home-page .entry-content, .aos-home-page .wp-block-post-content {
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.aos-home-page .wp-site-blocks > *, .aos-home-page .aos-home-page > * {
	--wp--style--root--padding-left: 0;
	--wp--style--root--padding-right: 0;
}

/* Kill default block-gap that inserts cream strips between sections */
.aos-home-page .wp-site-blocks, .aos-home-page .wp-block-group.aos-home-page, .aos-home-page .entry-content, .aos-home-page .wp-block-post-content {
	--wp--style--block-gap: 0 !important;
	gap: 0 !important;
}

.aos-home-page .wp-site-blocks > * + *, .aos-home-page .aos-home-page > * + *, .aos-home-page .entry-content > * + *, .aos-home-page .wp-block-post-content > * + * {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

/* Ensure body cream background does not leak above the util strip */
body.aos-home-page {
	margin: 0 !important;
	padding: 0 !important;
}

/* ══════════════════════════════════════════════════════════════════════ */



    /* ═════════════════════════════════════════════════════════════════════
       AOS STUDENT EXPERIENCE — Concept 5 (photo-forward, cinematic editorial)
       Typography: Instrument Sans (display) + Instrument Sans (body)
       Shared design system with the rest of the AOS mockup set

       Tokens (--aos-navy, --display, --shadow-md, --panel-ink, etc.) are
       declared once in aos-components.css and inherited here. The bare
       :root block that used to live here was a verbatim port of the
       mockup's inline styles; folded into aos-components.css 2026-05-05.
       ═════════════════════════════════════════════════════════════════════ */

    *, *::before, *::after { box-sizing: border-box; }
    html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
    body {
      margin: 0;
      background: hsl(var(--bg));
      color: hsl(var(--fg));
      font-family: var(--body);
      font-size: 16px;
      line-height: 1.6;
      font-feature-settings: "ss01", "cv11";
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }
    img { display: block; max-width: 100%; height: auto; }
    a { color: inherit; text-decoration: none; transition: color 200ms var(--ease-out), opacity 200ms var(--ease-out); }
    button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
    h1, h2, h3, h4, h5 {
      margin: 0;
      font-family: var(--display);
      font-weight: 400;
      line-height: 1.04;
      letter-spacing: -0.022em;
      color: hsl(var(--fg));
      font-variation-settings: "opsz" 60;
    }
    h1 { font-weight: 350; }
    p { margin: 0; }
    ::selection { background: hsl(var(--aos-yellow) / 0.45); color: hsl(var(--aos-navy)); }

    :where(.aos-home-page, .aos-program-page) .container { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
    /* .eyebrow now styled by the canonical Style A (on light) rule in
       aos-components.css. Do not redeclare here. */
    :where(.aos-home-page, .aos-program-page) .lead {
      font-size: clamp(17px, 1.15vw, 19px);
      line-height: 1.55;
      color: hsl(var(--fg-muted));
      max-width: 60ch;
    }

    /* ── Utility strip ─────────────────────────────────────────────────── */
    .util {
      background: hsl(var(--aos-navy-deep));
      color: hsl(0 0% 100% / 0.78);
      font-size: 12.5px;
      letter-spacing: 0.01em;
    }
    .util__inner {
      max-width: var(--container);
      margin: 0 auto;
      padding: 10px var(--gutter);
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 24px;
      flex-wrap: wrap;
    }
    .util__contact { display: flex; gap: 28px; }
    .util__contact span { display: inline-flex; align-items: center; gap: 8px; }
    .util__contact svg { width: 13px; height: 13px; opacity: 0.6; }
    .util__links { display: flex; gap: 22px; font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; }
    .util__links a { text-decoration: none; color: inherit; }
    .util__links a:hover, .util__links a:focus-visible { color: hsl(var(--aos-yellow)); text-decoration: none; }

    /* ── Main nav ──────────────────────────────────────────────────────── */
    .nav {
      position: sticky;
      top: 0;
      z-index: 50;
      background: hsl(var(--aos-navy));
      color: hsl(var(--paper));
      border-bottom: 1px solid hsl(var(--aos-navy-deep));
    }
    .nav__inner {
      max-width: var(--container);
      margin: 0 auto;
      padding: 22px var(--gutter);
      display: grid;
      grid-template-columns: auto 1fr auto;
      align-items: center;
      gap: 40px;
    }
    .nav__logo { height: 54px; width: auto; display: block; }
    .nav__list {
      display: flex;
      gap: 36px;
      list-style: none;
      margin: 0;
      padding: 0;
      justify-content: center;
      font-size: 14px;
      font-weight: 500;
    }
    .nav__list a {
      color: hsl(0 0% 100% / 0.88);
      display: inline-flex;
      align-items: center;
      gap: 6px;
      position: relative;
      padding: 8px 0;
      text-decoration: none;
    }
    .nav__list a:hover, .nav__list a:focus-visible { text-decoration: none; }
    .nav__list a::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: -4px;
      height: 2px;
      background: hsl(var(--aos-yellow));
      transform: scaleX(0);
      transform-origin: left;
      transition: transform 280ms var(--ease-out);
    }
    .nav__list a:hover { color: hsl(var(--paper)); }
    .nav__list a:hover::after, .nav__list a.is-active::after { transform: scaleX(1); }
    .nav__list a.is-active { color: hsl(var(--paper)); }
    .nav__list svg { width: 10px; height: 10px; opacity: 0.6; }

    .nav__actions { display: flex; gap: 14px; align-items: center; }
    .nav__search {
      width: 38px;
      height: 38px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: hsl(0 0% 100% / 0.08);
      color: hsl(var(--paper));
      transition: background 200ms var(--ease-out);
    }
    .nav__search:hover { background: hsl(0 0% 100% / 0.14); }
    .nav__search svg { width: 15px; height: 15px; }

    .nav__burger { display: none; }

    /* ── Buttons ───────────────────────────────────────────────────────── */
    .btn {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 15px 26px;
      border-radius: 100px;
      font-size: 14.5px;
      font-weight: 600;
      letter-spacing: -0.005em;
      transition: transform 220ms var(--ease-out), box-shadow 220ms var(--ease-out), background 220ms var(--ease-out), color 220ms var(--ease-out);
      white-space: nowrap;
      text-decoration: none;
    }
    .btn:hover, .btn:focus-visible { text-decoration: none; }
    a.nav__logo-link, a.nav__search { text-decoration: none; }
    .btn svg { width: 14px; height: 14px; transition: transform 300ms var(--ease-out); }
    .btn:hover svg { transform: translateX(3px); }
    /* Primary follows the site-wide .aos-btn system: on the dark nav it
       wears the hairline-stroke ghost variant (thin light border, solid
       teal chip) — keep in sync with aos-chrome.css. */
    .btn--primary {
      background: transparent;
      border: 1px solid hsl(var(--bg) / 0.28);
      color: hsl(var(--bg));
      padding: 5px 5px 5px 20px;
      gap: 10px;
      box-shadow: none;
    }
    .btn--primary svg {
      box-sizing: content-box;
      width: 13px;
      height: 13px;
      padding: 7px;
      border-radius: 999px;
      background: hsl(var(--aos-yellow));
      color: hsl(var(--aos-navy-deep));
    }
    .btn--primary:hover { background: hsl(var(--aos-yellow) / 0.08); border-color: hsl(var(--aos-yellow) / 0.65); color: hsl(var(--bg)); transform: translateY(-1px); box-shadow: 0 12px 32px -12px hsl(var(--aos-yellow) / 0.25); }
    .btn--secondary {
      background: hsl(var(--bg-card));
      color: hsl(var(--aos-navy));
      border: 1px solid hsl(var(--border-strong));
    }
    .btn--secondary:hover { background: hsl(var(--aos-navy)); color: hsl(var(--paper)); border-color: hsl(var(--aos-navy)); }
    .btn--ghost {
      background: transparent;
      color: hsl(var(--aos-navy));
      border: 1px solid hsl(var(--aos-navy) / 0.2);
    }
    .btn--ghost:hover { border-color: hsl(var(--aos-navy)); background: hsl(var(--aos-navy) / 0.04); }
    .btn--dark {
      background: hsl(var(--aos-navy));
      color: hsl(var(--paper));
    }
    .btn--dark:hover { background: hsl(var(--aos-navy-deep)); transform: translateY(-1px); }
    .btn--lg { padding: 18px 32px; font-size: 15px; }
    .btn--glass {
      background: hsl(0 0% 100% / 0.12);
      color: hsl(var(--paper));
      border: 1px solid hsl(0 0% 100% / 0.28);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
    }
    .btn--glass:hover { background: hsl(0 0% 100% / 0.2); border-color: hsl(0 0% 100% / 0.5); transform: translateY(-1px); }

    /* ═════════════════════ CINEMATIC HERO ═════════════════════ */
    :where(.aos-home-page, .aos-program-page) .hero {
      position: relative;
      min-height: 85vh;
      display: flex;
      align-items: flex-end;
      overflow: hidden;
      isolation: isolate;
    }
    :where(.aos-home-page, .aos-program-page) .hero__bg {
      position: absolute;
      inset: 0;
      z-index: -2;
    }
    :where(.aos-home-page, .aos-program-page) .hero__bg img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 35%;
      transform: scale(1.02);
      animation: heroZoom 22s var(--ease-out) forwards;
    }
    @keyframes heroZoom {
      to { transform: scale(1.08); }
    }
    /* Bg/scrim/grain are siblings inside .hero (a wp-block-group with
       is-layout-flow). The flow layout auto-applies margin-block-start
       to all-but-first children, which would push the absolutely-
       positioned scrim and grain 32px down from the hero top, leaving
       a strip of unscrimmed sky at the top of the image. Zero the
       margin so inset:0 actually pins them to the hero edges. */
    :where(.aos-home-page, .aos-program-page) .hero > .hero__bg, :where(.aos-home-page, .aos-program-page) .hero > .hero__scrim, :where(.aos-home-page, .aos-program-page) .hero > .hero__grain { margin: 0 !important; }

    :where(.aos-home-page, .aos-program-page) .hero__scrim {
      position: absolute;
      inset: 0;
      z-index: -1;
      background:
        linear-gradient(180deg, hsl(var(--aos-navy-deep) / 0.65) 0%, hsl(var(--aos-navy-deep) / 0.15) 28%, hsl(var(--aos-navy-deep) / 0.3) 58%, hsl(var(--aos-navy-deep) / 0.92) 100%),
        linear-gradient(100deg, hsl(var(--aos-navy-deep) / 0.55) 0%, transparent 52%);
    }
    :where(.aos-home-page, .aos-program-page) .hero__grain {
      position: absolute;
      inset: 0;
      z-index: -1;
      pointer-events: none;
      opacity: 0.35;
      mix-blend-mode: overlay;
      background-image: radial-gradient(circle at 1px 1px, hsl(0 0% 100% / 0.08) 1px, transparent 1.6px);
      background-size: 3px 3px;
    }
    :where(.aos-home-page, .aos-program-page) .hero__inner {
      max-width: var(--container);
      margin: 0 auto;
      width: 100%;
      padding: clamp(2rem, 3.5vw, 3rem) var(--gutter) clamp(3.5rem, 5vw, 5rem);
      position: relative;
      color: hsl(var(--paper));
    }
    :where(.aos-home-page, .aos-program-page) .hero__crumbs {
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 13px;
      color: hsl(0 0% 100% / 0.62);
      margin-bottom: 24px;
      letter-spacing: 0.01em;
    }
    :where(.aos-home-page, .aos-program-page) .hero__crumbs a { color: hsl(0 0% 100% / 0.82); }
    :where(.aos-home-page, .aos-program-page) .hero__crumbs a:hover { color: hsl(var(--aos-yellow)); }
    :where(.aos-home-page, .aos-program-page) .hero__crumbs svg { width: 9px; height: 9px; opacity: 0.6; }
    :where(.aos-home-page, .aos-program-page) .hero__crumbs .is-current { color: hsl(var(--paper)); font-weight: 500; }
    :where(.aos-home-page, .aos-program-page) .hero__eyebrow {
      font-family: var(--body);
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: hsl(var(--aos-yellow));
      display: inline-flex;
      align-items: center;
      gap: 12px;
      margin: 0 0 14px;
    }
    :where(.aos-home-page, .aos-program-page) .hero__eyebrow::before {
      content: "";
      width: 34px;
      height: 1.5px;
      background: hsl(var(--aos-yellow));
    }
    :where(.aos-home-page, .aos-program-page) .hero h1 {
      font-size: clamp(2rem, 4.4vw, 3.75rem);
      line-height: 1.02;
      letter-spacing: -0.024em;
      color: hsl(var(--paper));
      max-width: 20ch;
      font-weight: 500;
      margin: 0 0 26px;
      text-shadow: 0 2px 24px hsl(var(--fg) / 0.35);
    }
    :where(.aos-home-page, .aos-program-page) .hero h1 em {
      font-style: italic;
      font-weight: 300;
      color: hsl(var(--aos-yellow));
      position: relative;
      display: inline-block;
      padding: 0 0.04em;
    }
    :where(.aos-home-page, .aos-program-page) .hero__lead {
      font-size: clamp(16px, 1.2vw, 19px);
      line-height: 1.55;
      color: hsl(0 0% 100% / 0.82);
      max-width: 52ch;
      margin-bottom: 40px;
    }
    :where(.aos-home-page, .aos-program-page) .hero__ctas {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
      margin-bottom: 56px;
    }
    :where(.aos-home-page, .aos-program-page) .hero__stats {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      padding-top: 36px;
      border-top: 1px solid hsl(0 0% 100% / 0.18);
      max-width: 860px;
    }
    :where(.aos-home-page, .aos-program-page) .hero__stat {
      display: flex;
      flex-direction: column;
      padding: 0 clamp(18px, 2vw, 28px);
      border-right: 1px solid hsl(0 0% 100% / 0.14);
    }
    :where(.aos-home-page, .aos-program-page) .hero__stat:first-child { padding-left: 0; }
    :where(.aos-home-page, .aos-program-page) .hero__stat:last-child { border-right: none; padding-right: 0; }
    :where(.aos-home-page, .aos-program-page) .hero__stat .num {
      font-family: var(--display);
      font-size: clamp(2rem, 3.4vw, 3rem);
      line-height: 1;
      letter-spacing: -0.035em;
      color: hsl(var(--paper));
      margin-bottom: 8px;
      font-variation-settings: "opsz" 60;
      font-weight: 350;
    }
    :where(.aos-home-page, .aos-program-page) .hero__stat .num .small {
      font-size: 0.5em;
      vertical-align: 0.4em;
      margin-left: 2px;
      color: hsl(var(--aos-yellow));
      font-weight: 400;
    }
    :where(.aos-home-page, .aos-program-page) .hero__stat .label {
      font-size: 11.5px;
      color: hsl(0 0% 100% / 0.64);
      letter-spacing: 0.05em;
      line-height: 1.4;
      text-transform: uppercase;
    }
    :where(.aos-home-page, .aos-program-page) .hero__scroll {
      position: absolute;
      right: var(--gutter);
      bottom: clamp(3.5rem, 5vw, 5rem);
      display: flex;
      align-items: center;
      gap: 12px;
      color: hsl(0 0% 100% / 0.6);
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: 0.16em;
      writing-mode: vertical-rl;
      transform: rotate(180deg);
    }
    :where(.aos-home-page, .aos-program-page) .hero__scroll::before {
      content: "";
      width: 1px;
      height: 60px;
      background: linear-gradient(to bottom, transparent, hsl(0 0% 100% / 0.4), transparent);
      animation: scrollLine 2.4s var(--ease-in-out) infinite;
    }
    @keyframes scrollLine {
      0%, 100% { transform: translateY(-10px); opacity: 0.3; }
      50% { transform: translateY(10px); opacity: 1; }
    }

    /* ═════════════════════ LIFE PILLARS ═════════════════════ */
    :where(.aos-home-page, .aos-program-page) .pillars {
      padding: var(--section) 0;
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .pillars__head {
      max-width: var(--container);
      margin: 0 auto 56px;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 56px;
      align-items: end;
    }
    :where(.aos-home-page, .aos-program-page) .pillars__head h2 {
      font-size: clamp(2.2rem, 4vw, 3.6rem);
      letter-spacing: -0.024em;
      color: hsl(var(--aos-navy));
      margin-top: 20px;
      line-height: 1.02;
    }
    :where(.aos-home-page, .aos-program-page) .pillars__head h2 em {
      font-style: italic;
      font-weight: 300;
      color: hsl(var(--aos-blue));
    }
    :where(.aos-home-page, .aos-program-page) .pillars__head .lead { max-width: 46ch; }
    :where(.aos-home-page, .aos-program-page) .pillars__grid {
      max-width: var(--container);
      margin: 0 auto;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }
    :where(.aos-home-page, .aos-program-page) .pillar {
      position: relative;
      background: hsl(var(--bg-card));
      border: 1px solid hsl(var(--border-soft));
      border-radius: var(--r-lg);
      padding: 34px 32px 30px;
      transition: transform 320ms var(--ease-out), box-shadow 320ms var(--ease-out), border-color 320ms var(--ease-out);
      display: flex;
      flex-direction: column;
      min-height: 280px;
    }
    :where(.aos-home-page, .aos-program-page) .pillar:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-md);
      border-color: hsl(var(--border-strong));
    }
    :where(.aos-home-page, .aos-program-page) .pillar__icon {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      background: hsl(var(--aos-yellow) / 0.16);
      color: hsl(var(--aos-blue));
      display: grid;
      place-items: center;
      margin-bottom: 26px;
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .pillar__icon svg { width: 24px; height: 24px; }
    :where(.aos-home-page, .aos-program-page) .pillar__icon::after {
      content: "";
      position: absolute;
      inset: 4px;
      border: 1px dashed hsl(var(--aos-yellow) / 0.5);
      border-radius: 10px;
      opacity: 0;
      transition: opacity 300ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .pillar:hover .pillar__icon::after { opacity: 1; }
    :where(.aos-home-page, .aos-program-page) .pillar h3 {
      font-family: var(--body);
      font-size: 19px;
      font-weight: 600;
      color: hsl(var(--aos-navy));
      margin-bottom: 10px;
      letter-spacing: -0.01em;
    }
    :where(.aos-home-page, .aos-program-page) .pillar p {
      font-size: 14.5px;
      color: hsl(var(--fg-muted));
      line-height: 1.58;
      flex: 1;
      margin-bottom: 22px;
    }
    :where(.aos-home-page, .aos-program-page) .pillar__link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 13px;
      font-weight: 600;
      color: hsl(var(--aos-blue));
      letter-spacing: 0.005em;
    }
    :where(.aos-home-page, .aos-program-page) .pillar__link svg { width: 12px; height: 12px; transition: transform 260ms var(--ease-out); }
    :where(.aos-home-page, .aos-program-page) .pillar:hover .pillar__link svg { transform: translateX(3px); }
    :where(.aos-home-page, .aos-program-page) .pillar__num {
      position: absolute;
      top: 26px;
      right: 30px;
      font-family: var(--display);
      font-size: 13px;
      color: hsl(var(--fg-subtle));
      letter-spacing: 0.04em;
      font-variation-settings: "opsz" 60;
    }

    /* ═════════════════════ DAY IN THE LIFE GALLERY ═════════════════════ */
    :where(.aos-home-page, .aos-program-page) .gallery {
      padding: var(--section) 0;
      background: hsl(var(--bg-alt));
      border-top: 1px solid hsl(var(--border-soft));
      border-bottom: 1px solid hsl(var(--border-soft));
      position: relative;
      overflow: hidden;
    }
    :where(.aos-home-page, .aos-program-page) .gallery::before {
      content: "";
      position: absolute;
      top: -20%;
      right: -10%;
      width: 60%;
      height: 60%;
      background: radial-gradient(ellipse at center, hsl(var(--aos-yellow) / 0.08), transparent 60%);
      pointer-events: none;
    }
    :where(.aos-home-page, .aos-program-page) .gallery__head {
      max-width: var(--container);
      margin: 0 auto 56px;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 56px;
      align-items: end;
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .gallery__head h2 {
      font-size: clamp(2.4rem, 4.4vw, 4rem);
      color: hsl(var(--aos-navy));
      margin-top: 18px;
      letter-spacing: -0.028em;
      line-height: 1.02;
    }
    :where(.aos-home-page, .aos-program-page) .gallery__head h2 em {
      font-style: italic;
      font-weight: 300;
      color: hsl(var(--aos-blue));
    }
    :where(.aos-home-page, .aos-program-page) .gallery__head .meta {
      display: flex;
      flex-direction: column;
      gap: 18px;
      align-items: flex-start;
    }
    :where(.aos-home-page, .aos-program-page) .gallery__head .meta p {
      font-size: 15.5px;
      line-height: 1.6;
      color: hsl(var(--fg-muted));
      max-width: 38ch;
    }
    :where(.aos-home-page, .aos-program-page) .gallery__head .clock {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      padding: 10px 18px;
      background: hsl(var(--bg-card));
      border: 1px solid hsl(var(--border));
      border-radius: 100px;
      font-size: 12.5px;
      font-weight: 600;
      color: hsl(var(--aos-navy));
      letter-spacing: 0.06em;
      text-transform: uppercase;
    }
    :where(.aos-home-page, .aos-program-page) .gallery__head .clock .dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: hsl(var(--aos-yellow));
      box-shadow: 0 0 0 3px hsl(var(--aos-yellow) / 0.22);
    }

    :where(.aos-home-page, .aos-program-page) .gallery__grid {
      max-width: var(--container);
      margin: 0 auto;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      grid-auto-rows: 120px;
      gap: 16px;
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .shot {
      position: relative;
      overflow: hidden;
      border-radius: var(--r-lg);
      box-shadow: var(--shadow-sm);
      transition: transform 420ms var(--ease-out), box-shadow 420ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .shot img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 900ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .shot:hover {
      transform: translateY(-3px);
      box-shadow: var(--shadow-lg);
    }
    :where(.aos-home-page, .aos-program-page) .shot:hover img { transform: scale(1.06); }
    :where(.aos-home-page, .aos-program-page) .shot::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, hsl(var(--aos-navy-deep) / 0.72) 0%, hsl(var(--aos-navy-deep) / 0.08) 40%, transparent 65%);
      pointer-events: none;
    }
    :where(.aos-home-page, .aos-program-page) .shot__caption {
      position: absolute;
      left: 18px;
      bottom: 18px;
      right: 18px;
      display: flex;
      align-items: center;
      gap: 10px;
      color: hsl(var(--paper));
      z-index: 2;
    }
    :where(.aos-home-page, .aos-program-page) .shot__cap-pill {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 7px 14px;
      background: hsl(0 0% 100% / 0.14);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border: 1px solid hsl(0 0% 100% / 0.22);
      border-radius: 100px;
      font-size: 11.5px;
      font-weight: 600;
      letter-spacing: 0.04em;
    }
    :where(.aos-home-page, .aos-program-page) .shot__cap-pill .time {
      color: hsl(var(--aos-yellow));
      font-family: var(--display);
      font-size: 12px;
      font-weight: 500;
      font-variation-settings: "opsz" 60;
    }
    :where(.aos-home-page, .aos-program-page) .shot__cap-pill .dot-sep {
      width: 3px;
      height: 3px;
      border-radius: 50%;
      background: hsl(0 0% 100% / 0.5);
    }

    /* Bento tile sizes */
    :where(.aos-home-page, .aos-program-page) .shot--a { grid-column: span 6; grid-row: span 4; }  /* tall primary */
    :where(.aos-home-page, .aos-program-page) .shot--b { grid-column: span 6; grid-row: span 2; }  /* wide top right */
    :where(.aos-home-page, .aos-program-page) .shot--c { grid-column: span 3; grid-row: span 2; }  /* small */
    :where(.aos-home-page, .aos-program-page) .shot--d { grid-column: span 3; grid-row: span 2; }  /* small */
    :where(.aos-home-page, .aos-program-page) .shot--e { grid-column: span 4; grid-row: span 3; }  /* medium */
    :where(.aos-home-page, .aos-program-page) .shot--f { grid-column: span 4; grid-row: span 3; }  /* medium */
    :where(.aos-home-page, .aos-program-page) .shot--g { grid-column: span 4; grid-row: span 3; }  /* medium */
    :where(.aos-home-page, .aos-program-page) .shot--h { grid-column: span 12; grid-row: span 3; } /* wide panoramic */

    :where(.aos-home-page, .aos-program-page) .gallery__foot {
      max-width: var(--container);
      margin: 48px auto 0;
      padding: 0 var(--gutter);
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 24px;
      flex-wrap: wrap;
    }
    :where(.aos-home-page, .aos-program-page) .gallery__foot .note {
      font-size: 13px;
      color: hsl(var(--fg-subtle));
      max-width: 42ch;
      font-style: italic;
      font-family: var(--display);
      line-height: 1.5;
    }
    :where(.aos-home-page, .aos-program-page) .gallery__foot .note em { color: hsl(var(--aos-blue)); }

    /* ═════════════════════ ATHLETICS DARK SPLIT ═════════════════════ */
    :where(.aos-home-page, .aos-program-page) .athletics {
      padding: 0;
      background: hsl(var(--aos-navy-deep));
      color: hsl(var(--paper));
      position: relative;
      overflow: hidden;
    }
    :where(.aos-home-page, .aos-program-page) .athletics::before {
      content: "";
      position: absolute;
      inset: 0;
      background-image: radial-gradient(circle at 1px 1px, hsl(0 0% 100% / 0.05) 1px, transparent 1.5px);
      background-size: 32px 32px;
      opacity: 0.5;
      pointer-events: none;
    }
    :where(.aos-home-page, .aos-program-page) .athletics__inner {
      max-width: var(--container);
      margin: 0 auto;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: clamp(3rem, 5vw, 5rem);
      align-items: stretch;
      min-height: 640px;
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .athletics__media {
      position: relative;
      border-radius: var(--r-xl);
      overflow: hidden;
      margin: clamp(4rem, 6vw, 7rem) 0;
      box-shadow: var(--shadow-xl);
      isolation: isolate;
    }
    :where(.aos-home-page, .aos-program-page) .athletics__media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      filter: saturate(1.1) contrast(1.08);
    }
    :where(.aos-home-page, .aos-program-page) .athletics__media::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(160deg, transparent 40%, hsl(var(--aos-navy-deep) / 0.78) 100%);
    }
    :where(.aos-home-page, .aos-program-page) .athletics__badge {
      position: absolute;
      top: 26px;
      left: 26px;
      background: hsl(var(--aos-yellow));
      color: hsl(var(--aos-navy-deep));
      padding: 10px 18px;
      border-radius: 100px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      z-index: 2;
      box-shadow: var(--shadow-md);
    }
    :where(.aos-home-page, .aos-program-page) .athletics__badge .live-dot {
      width: 7px;
      height: 7px;
      background: hsl(var(--aos-navy-deep));
      border-radius: 50%;
      animation: pulse 2s infinite var(--ease-out);
    }
    @keyframes pulse {
      0%, 100% { transform: scale(1); opacity: 1; }
      50% { transform: scale(1.4); opacity: 0.55; }
    }
    :where(.aos-home-page, .aos-program-page) .athletics__score {
      position: absolute;
      bottom: 28px;
      left: 28px;
      right: 28px;
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      gap: 16px;
      z-index: 2;
    }
    :where(.aos-home-page, .aos-program-page) .athletics__score .tiger {
      font-family: var(--display);
      font-size: clamp(1.8rem, 2.2vw, 2.2rem);
      color: hsl(var(--paper));
      line-height: 0.95;
      letter-spacing: -0.02em;
      font-variation-settings: "opsz" 60;
    }
    :where(.aos-home-page, .aos-program-page) .athletics__score .sub {
      font-size: 11.5px;
      color: hsl(0 0% 100% / 0.72);
      letter-spacing: 0.1em;
      text-transform: uppercase;
      margin-top: 8px;
    }
    :where(.aos-home-page, .aos-program-page) .athletics__score .roar {
      font-family: var(--display);
      font-size: 68px;
      line-height: 0.8;
      color: hsl(var(--aos-yellow));
      font-style: italic;
      font-weight: 300;
      letter-spacing: -0.04em;
    }

    :where(.aos-home-page, .aos-program-page) .athletics__body {
      padding: clamp(4rem, 6vw, 7rem) 0;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    :where(.aos-home-page, .aos-program-page) .athletics__body .eyebrow { color: hsl(var(--aos-yellow)); }
    :where(.aos-home-page, .aos-program-page) .athletics__body .eyebrow::before { background: hsl(var(--aos-yellow)); }
    :where(.aos-home-page, .aos-program-page) .athletics__body h2 {
      font-size: clamp(2.4rem, 4.2vw, 4rem);
      color: hsl(var(--paper));
      margin: 24px 0 24px;
      letter-spacing: -0.028em;
      line-height: 1;
      font-variation-settings: "opsz" 60;
    }
    :where(.aos-home-page, .aos-program-page) .athletics__body h2 em {
      font-style: italic;
      font-weight: 300;
      color: hsl(var(--aos-yellow));
    }
    :where(.aos-home-page, .aos-program-page) .athletics__body p {
      font-size: 16px;
      line-height: 1.65;
      color: hsl(0 0% 100% / 0.78);
      max-width: 46ch;
      margin-bottom: 36px;
    }
    :where(.aos-home-page, .aos-program-page) .athletics__sports {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-bottom: 40px;
    }
    :where(.aos-home-page, .aos-program-page) .sport-chip {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 10px 18px;
      background: hsl(0 0% 100% / 0.06);
      border: 1px solid hsl(0 0% 100% / 0.14);
      border-radius: 100px;
      font-size: 13px;
      font-weight: 500;
      color: hsl(0 0% 100% / 0.92);
      transition: all 220ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .sport-chip:hover {
      background: hsl(var(--aos-yellow) / 0.16);
      border-color: hsl(var(--aos-yellow) / 0.5);
      color: hsl(var(--aos-yellow));
      transform: translateY(-1px);
    }
    :where(.aos-home-page, .aos-program-page) .sport-chip svg {
      width: 12px;
      height: 12px;
      opacity: 0.6;
    }
    :where(.aos-home-page, .aos-program-page) .athletics__cta {
      display: flex;
      gap: 14px;
      align-items: center;
      flex-wrap: wrap;
    }
    :where(.aos-home-page, .aos-program-page) .athletics__cta .sub-link {
      color: hsl(0 0% 100% / 0.62);
      font-size: 13px;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-family: var(--display);
      font-style: italic;
    }
    :where(.aos-home-page, .aos-program-page) .athletics__cta .sub-link svg { width: 12px; height: 12px; }

    /* ═════════════════════ CLUBS GRID ═════════════════════ */
    :where(.aos-home-page, .aos-program-page) .clubs {
      padding: var(--section) 0;
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .clubs__head {
      max-width: var(--container);
      margin: 0 auto 56px;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 32px;
      align-items: end;
    }
    :where(.aos-home-page, .aos-program-page) .clubs__head h2 {
      font-size: clamp(2.2rem, 4vw, 3.6rem);
      color: hsl(var(--aos-navy));
      margin-top: 20px;
      letter-spacing: -0.024em;
      max-width: 20ch;
      line-height: 1.02;
    }
    :where(.aos-home-page, .aos-program-page) .clubs__head h2 em {
      font-style: italic;
      font-weight: 300;
      color: hsl(var(--aos-blue));
    }
    :where(.aos-home-page, .aos-program-page) .clubs__head .all {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-size: 13.5px;
      font-weight: 600;
      color: hsl(var(--aos-blue));
      letter-spacing: 0.005em;
      padding: 12px 20px;
      background: hsl(var(--aos-yellow) / 0.14);
      border-radius: 100px;
      border: 1px solid hsl(var(--aos-yellow) / 0.3);
      transition: all 220ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .clubs__head .all:hover {
      background: hsl(var(--aos-yellow) / 0.24);
      border-color: hsl(var(--aos-yellow));
      transform: translateY(-1px);
    }
    :where(.aos-home-page, .aos-program-page) .clubs__head .all svg {
      width: 13px;
      height: 13px;
      transition: transform 260ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .clubs__head .all:hover svg { transform: translateX(3px); }

    :where(.aos-home-page, .aos-program-page) .clubs__grid {
      max-width: var(--container);
      margin: 0 auto;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px;
    }
    :where(.aos-home-page, .aos-program-page) .club {
      background: hsl(var(--bg-card));
      border: 1px solid hsl(var(--border-soft));
      border-radius: var(--r-lg);
      padding: 28px 30px 30px;
      display: flex;
      flex-direction: column;
      gap: 18px;
      position: relative;
      transition: transform 300ms var(--ease-out), box-shadow 300ms var(--ease-out), border-color 300ms var(--ease-out);
      overflow: hidden;
    }
    :where(.aos-home-page, .aos-program-page) .club::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 3px;
      background: linear-gradient(90deg, hsl(var(--aos-yellow)) 0%, hsl(var(--aos-blue)) 100%);
      transform: scaleX(0);
      transform-origin: left;
      transition: transform 400ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .club:hover::before { transform: scaleX(1); }
    :where(.aos-home-page, .aos-program-page) .club:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-md);
      border-color: hsl(var(--border-strong));
    }
    :where(.aos-home-page, .aos-program-page) .club__top {
      display: flex;
      align-items: flex-start;
      gap: 16px;
      justify-content: space-between;
    }
    :where(.aos-home-page, .aos-program-page) .club__icon {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      display: grid;
      place-items: center;
      flex-shrink: 0;
    }
    :where(.aos-home-page, .aos-program-page) .club__icon svg { width: 22px; height: 22px; }
    :where(.aos-home-page, .aos-program-page) .club--faith .club__icon { background: hsl(var(--aos-yellow) / 0.2); color: hsl(var(--aos-yellow-deep)); }
    :where(.aos-home-page, .aos-program-page) .club--service .club__icon { background: hsl(var(--aos-blue) / 0.14); color: hsl(var(--aos-blue)); }
    :where(.aos-home-page, .aos-program-page) .club--culture .club__icon { background: hsl(var(--aos-navy) / 0.1); color: hsl(var(--aos-navy)); }
    :where(.aos-home-page, .aos-program-page) .club--arts .club__icon { background: hsl(335 78% 88% / 0.9); color: hsl(335 72% 42%); }
    :where(.aos-home-page, .aos-program-page) .club--eco .club__icon { background: hsl(155 52% 88%); color: hsl(155 60% 28%); }
    :where(.aos-home-page, .aos-program-page) .club--health .club__icon { background: hsl(var(--aos-mist) / 0.5); color: hsl(var(--aos-navy)); }

    :where(.aos-home-page, .aos-program-page) .club__members {
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      color: hsl(var(--fg-subtle));
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 5px 10px;
      border: 1px solid hsl(var(--border));
      border-radius: 100px;
      background: hsl(var(--bg));
    }
    :where(.aos-home-page, .aos-program-page) .club__members strong {
      color: hsl(var(--aos-navy));
      font-weight: 700;
    }
    :where(.aos-home-page, .aos-program-page) .club h3 {
      font-family: var(--display);
      font-size: clamp(1.25rem, 1.6vw, 1.5rem);
      line-height: 1.1;
      color: hsl(var(--aos-navy));
      letter-spacing: -0.018em;
      font-variation-settings: "opsz" 60;
    }
    :where(.aos-home-page, .aos-program-page) .club p {
      font-size: 14px;
      color: hsl(var(--fg-muted));
      line-height: 1.55;
      flex: 1;
    }
    :where(.aos-home-page, .aos-program-page) .club__foot {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding-top: 16px;
      border-top: 1px solid hsl(var(--border-soft));
      margin-top: 4px;
    }
    :where(.aos-home-page, .aos-program-page) .club__meet {
      font-size: 12px;
      color: hsl(var(--fg-subtle));
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }
    :where(.aos-home-page, .aos-program-page) .club__meet svg { width: 11px; height: 11px; }
    :where(.aos-home-page, .aos-program-page) .club__join {
      font-size: 12.5px;
      font-weight: 600;
      color: hsl(var(--aos-blue));
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }
    :where(.aos-home-page, .aos-program-page) .club__join svg { width: 11px; height: 11px; transition: transform 260ms var(--ease-out); }
    :where(.aos-home-page, .aos-program-page) .club:hover .club__join svg { transform: translateX(3px); }

    /* ═════════════════════ HOUSING & DINING SPLIT ═════════════════════ */
    .aos-home-page .home {
      padding: var(--section) 0;
      background: hsl(var(--bg-alt));
      border-top: 1px solid hsl(var(--border-soft));
      border-bottom: 1px solid hsl(var(--border-soft));
    }
    :where(.aos-home-page, .aos-program-page) .home__head {
      max-width: var(--container);
      margin: 0 auto 64px;
      padding: 0 var(--gutter);
      text-align: center;
    }
    :where(.aos-home-page, .aos-program-page) .home__head .eyebrow { justify-content: center; }
    :where(.aos-home-page, .aos-program-page) .home__head h2 {
      font-size: clamp(2.2rem, 4vw, 3.6rem);
      color: hsl(var(--aos-navy));
      margin: 18px auto 0;
      max-width: 24ch;
      letter-spacing: -0.024em;
      line-height: 1.05;
    }
    :where(.aos-home-page, .aos-program-page) .home__head h2 em {
      font-style: italic;
      font-weight: 300;
      color: hsl(var(--aos-blue));
    }
    :where(.aos-home-page, .aos-program-page) .home__grid {
      max-width: var(--container);
      margin: 0 auto;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px;
    }
    :where(.aos-home-page, .aos-program-page) .home-card {
      background: hsl(var(--bg-card));
      border: 1px solid hsl(var(--border-soft));
      border-radius: var(--r-xl);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      transition: transform 320ms var(--ease-out), box-shadow 320ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .home-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-lg);
    }
    :where(.aos-home-page, .aos-program-page) .home-card__media {
      aspect-ratio: 16 / 10;
      overflow: hidden;
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .home-card__media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 700ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .home-card:hover .home-card__media img { transform: scale(1.04); }
    :where(.aos-home-page, .aos-program-page) .home-card__tag {
      position: absolute;
      top: 20px;
      left: 20px;
      background: hsl(var(--bg-card));
      color: hsl(var(--aos-navy));
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      padding: 8px 14px;
      border-radius: 100px;
      box-shadow: var(--shadow-sm);
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }
    :where(.aos-home-page, .aos-program-page) .home-card__tag svg { width: 12px; height: 12px; color: hsl(var(--aos-blue)); }
    :where(.aos-home-page, .aos-program-page) .home-card__body {
      padding: 36px 38px 38px;
      display: flex;
      flex-direction: column;
      gap: 18px;
      flex: 1;
    }
    :where(.aos-home-page, .aos-program-page) .home-card h3 {
      font-family: var(--display);
      font-size: clamp(1.8rem, 2.4vw, 2.4rem);
      color: hsl(var(--aos-navy));
      line-height: 1.02;
      letter-spacing: -0.024em;
      font-variation-settings: "opsz" 60;
    }
    :where(.aos-home-page, .aos-program-page) .home-card h3 em {
      font-style: italic;
      font-weight: 300;
      color: hsl(var(--aos-blue));
    }
    :where(.aos-home-page, .aos-program-page) .home-card p.lead-card {
      font-size: 15.5px;
      color: hsl(var(--fg-muted));
      line-height: 1.58;
      max-width: 42ch;
    }
    :where(.aos-home-page, .aos-program-page) .home-card__list {
      list-style: none;
      margin: 8px 0 0;
      padding: 0;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px 18px;
    }
    :where(.aos-home-page, .aos-program-page) .home-card__list li {
      display: grid;
      grid-template-columns: 22px 1fr;
      gap: 10px;
      align-items: start;
      font-size: 13.5px;
      color: hsl(var(--fg));
      line-height: 1.4;
    }
    :where(.aos-home-page, .aos-program-page) .home-card__list .check {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: hsl(var(--aos-yellow) / 0.2);
      color: hsl(var(--aos-blue));
      display: grid;
      place-items: center;
      margin-top: 1px;
    }
    :where(.aos-home-page, .aos-program-page) .home-card__list .check svg { width: 10px; height: 10px; }
    :where(.aos-home-page, .aos-program-page) .home-card__foot {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-top: auto;
      padding-top: 22px;
      border-top: 1px solid hsl(var(--border-soft));
    }
    :where(.aos-home-page, .aos-program-page) .home-card__price {
      display: flex;
      flex-direction: column;
      font-family: var(--display);
    }
    :where(.aos-home-page, .aos-program-page) .home-card__price .num {
      font-size: 22px;
      color: hsl(var(--aos-navy));
      letter-spacing: -0.02em;
      line-height: 1;
    }
    :where(.aos-home-page, .aos-program-page) .home-card__price .label {
      font-family: var(--body);
      font-size: 11px;
      color: hsl(var(--fg-subtle));
      letter-spacing: 0.06em;
      text-transform: uppercase;
      margin-top: 4px;
    }
    :where(.aos-home-page, .aos-program-page) .home-card__link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 13.5px;
      font-weight: 600;
      color: hsl(var(--aos-blue));
    }
    :where(.aos-home-page, .aos-program-page) .home-card__link svg { width: 12px; height: 12px; transition: transform 260ms var(--ease-out); }
    :where(.aos-home-page, .aos-program-page) .home-card:hover .home-card__link svg { transform: translateX(3px); }

    /* ═════════════════════ VOICES (warm cream) ═════════════════════ */
    :where(.aos-home-page, .aos-program-page) .voices {
      padding: var(--section) 0;
      background: hsl(var(--bg));
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .voices__head {
      max-width: var(--container);
      margin: 0 auto 56px;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 56px;
      align-items: end;
    }
    :where(.aos-home-page, .aos-program-page) .voices__head h2 {
      font-size: clamp(2.2rem, 4vw, 3.6rem);
      color: hsl(var(--aos-navy));
      margin-top: 20px;
      letter-spacing: -0.024em;
      line-height: 1.02;
    }
    :where(.aos-home-page, .aos-program-page) .voices__head h2 em {
      font-style: italic;
      font-weight: 300;
      color: hsl(var(--aos-blue));
    }
    :where(.aos-home-page, .aos-program-page) .voices__head p {
      font-size: 15.5px;
      color: hsl(var(--fg-muted));
      line-height: 1.6;
      max-width: 44ch;
    }
    :where(.aos-home-page, .aos-program-page) .voices__grid {
      max-width: var(--container);
      margin: 0 auto;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }
    :where(.aos-home-page, .aos-program-page) .voice-card {
      padding: 38px 34px 32px;
      background: hsl(var(--bg-card));
      border: 1px solid hsl(var(--border));
      border-radius: var(--r-lg);
      display: flex;
      flex-direction: column;
      gap: 22px;
      position: relative;
      transition: transform 320ms var(--ease-out), box-shadow 320ms var(--ease-out), border-color 320ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .voice-card:hover {
      transform: translateY(-3px);
      box-shadow: var(--shadow-md);
      border-color: hsl(var(--border-strong));
    }
    :where(.aos-home-page, .aos-program-page) .voice-card__mark {
      font-family: var(--display);
      font-size: 88px;
      line-height: 0.3;
      color: hsl(var(--aos-yellow));
      margin: 10px 0 -28px;
      font-weight: 300;
      letter-spacing: -0.04em;
    }
    :where(.aos-home-page, .aos-program-page) .voice-card blockquote {
      font-family: var(--display);
      font-size: clamp(17px, 1.35vw, 20px);
      line-height: 1.38;
      color: hsl(var(--aos-navy));
      letter-spacing: -0.012em;
      margin: 0;
      flex: 1;
      font-style: italic;
      font-weight: 300;
      font-variation-settings: "opsz" 60;
    }
    :where(.aos-home-page, .aos-program-page) .voice-card__by {
      display: flex;
      align-items: center;
      gap: 14px;
      padding-top: 22px;
      border-top: 1px solid hsl(var(--border-soft));
    }
    :where(.aos-home-page, .aos-program-page) .voice-card__avatar {
      width: 52px;
      height: 52px;
      border-radius: 50%;
      object-fit: cover;
      border: 1px solid hsl(var(--border));
      box-shadow: var(--shadow-xs);
    }
    :where(.aos-home-page, .aos-program-page) .voice-card__name {
      font-size: 14.5px;
      font-weight: 600;
      color: hsl(var(--aos-navy));
      letter-spacing: -0.005em;
      display: block;
    }
    :where(.aos-home-page, .aos-program-page) .voice-card__role {
      font-size: 12px;
      color: hsl(var(--fg-subtle));
      margin-top: 3px;
    }
    :where(.aos-home-page, .aos-program-page) .voice-card__chip {
      position: absolute;
      top: 26px;
      right: 26px;
      padding: 5px 12px;
      font-size: 10.5px;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      border-radius: 100px;
      background: hsl(var(--aos-yellow) / 0.2);
      color: hsl(var(--aos-navy));
    }
    :where(.aos-home-page, .aos-program-page) .voice-card--a .voice-card__chip { background: hsl(var(--aos-blue) / 0.12); color: hsl(var(--aos-blue)); }
    :where(.aos-home-page, .aos-program-page) .voice-card--b .voice-card__chip { background: hsl(var(--aos-yellow) / 0.24); color: hsl(var(--aos-navy)); }
    :where(.aos-home-page, .aos-program-page) .voice-card--c .voice-card__chip { background: hsl(335 72% 42% / 0.1); color: hsl(192 7% 40%); }

    /* ═════════════════════ CALENDAR STRIP ═════════════════════ */
    :where(.aos-home-page, .aos-program-page) .calendar {
      padding: var(--section) 0;
      background: hsl(var(--bg));
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .calendar__head {
      max-width: var(--container);
      margin: 0 auto 48px;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: 1fr auto;
      align-items: end;
      gap: 32px;
    }
    :where(.aos-home-page, .aos-program-page) .calendar__head h2 {
      font-size: clamp(2.2rem, 4vw, 3.6rem);
      color: hsl(var(--aos-navy));
      margin-top: 20px;
      letter-spacing: -0.024em;
      max-width: 22ch;
      line-height: 1.02;
    }
    :where(.aos-home-page, .aos-program-page) .calendar__head h2 em {
      font-style: italic;
      font-weight: 300;
      color: hsl(var(--aos-blue));
    }
    :where(.aos-home-page, .aos-program-page) .calendar__nav {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px;
      background: hsl(var(--bg-card));
      border: 1px solid hsl(var(--border));
      border-radius: 100px;
    }
    :where(.aos-home-page, .aos-program-page) .calendar__nav button {
      width: 38px;
      height: 38px;
      border-radius: 50%;
      color: hsl(var(--aos-navy));
      display: grid;
      place-items: center;
      transition: all 200ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .calendar__nav button:hover {
      background: hsl(var(--aos-yellow) / 0.2);
      color: hsl(var(--aos-blue));
    }
    :where(.aos-home-page, .aos-program-page) .calendar__nav button svg { width: 14px; height: 14px; }
    :where(.aos-home-page, .aos-program-page) .calendar__nav .label {
      padding: 0 14px;
      font-size: 13px;
      font-weight: 600;
      color: hsl(var(--aos-navy));
      letter-spacing: 0.01em;
    }

    :where(.aos-home-page, .aos-program-page) .calendar__track {
      max-width: var(--container);
      margin: 0 auto;
      padding: 0 var(--gutter);
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .calendar__timeline {
      position: relative;
      padding-top: 26px;
    }
    :where(.aos-home-page, .aos-program-page) .calendar__line {
      position: absolute;
      top: 76px;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, hsl(var(--aos-navy) / 0.22) 6%, hsl(var(--aos-navy) / 0.22) 94%, transparent);
    }
    :where(.aos-home-page, .aos-program-page) .calendar__row {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 20px;
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .cal-item {
      text-align: left;
      padding: 0 2px;
      display: flex;
      flex-direction: column;
      gap: 12px;
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .cal-item__date {
      width: 100px;
      height: 100px;
      background: hsl(var(--bg-card));
      border: 1px solid hsl(var(--border));
      border-radius: var(--r);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 10px 0;
      transition: all 280ms var(--ease-out);
      position: relative;
      box-shadow: var(--shadow-xs);
    }
    :where(.aos-home-page, .aos-program-page) .cal-item:hover .cal-item__date {
      background: hsl(var(--aos-navy));
      border-color: hsl(var(--aos-navy));
      transform: translateY(-2px);
      box-shadow: var(--shadow-md);
    }
    :where(.aos-home-page, .aos-program-page) .cal-item__date .month {
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      color: hsl(var(--aos-blue));
      font-weight: 700;
      margin-bottom: 2px;
      transition: color 280ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .cal-item:hover .cal-item__date .month { color: hsl(var(--aos-yellow)); }
    :where(.aos-home-page, .aos-program-page) .cal-item__date .day {
      font-family: var(--display);
      font-size: 48px;
      line-height: 0.9;
      color: hsl(var(--aos-navy));
      font-variation-settings: "opsz" 60;
      font-weight: 400;
      letter-spacing: -0.04em;
      transition: color 280ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .cal-item:hover .cal-item__date .day { color: hsl(var(--paper)); }
    :where(.aos-home-page, .aos-program-page) .cal-item__date .dow {
      font-size: 10.5px;
      color: hsl(var(--fg-subtle));
      letter-spacing: 0.08em;
      text-transform: uppercase;
      margin-top: 2px;
      transition: color 280ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .cal-item:hover .cal-item__date .dow { color: hsl(0 0% 100% / 0.7); }

    :where(.aos-home-page, .aos-program-page) .cal-item__body {
      padding-right: 12px;
    }
    :where(.aos-home-page, .aos-program-page) .cal-item__tag {
      font-size: 10.5px;
      font-weight: 700;
      color: hsl(var(--aos-blue));
      letter-spacing: 0.14em;
      text-transform: uppercase;
      margin-bottom: 10px;
    }
    :where(.aos-home-page, .aos-program-page) .cal-item h3 {
      font-family: var(--display);
      font-size: 17px;
      line-height: 1.2;
      color: hsl(var(--aos-navy));
      letter-spacing: -0.01em;
      margin-bottom: 12px;
      font-variation-settings: "opsz" 60;
    }
    :where(.aos-home-page, .aos-program-page) .cal-item__meta {
      display: flex;
      flex-direction: column;
      gap: 4px;
      font-size: 12.5px;
      color: hsl(var(--fg-muted));
    }
    :where(.aos-home-page, .aos-program-page) .cal-item__meta .line {
      display: inline-flex;
      align-items: center;
      gap: 7px;
    }
    :where(.aos-home-page, .aos-program-page) .cal-item__meta svg { width: 11px; height: 11px; color: hsl(var(--aos-blue)); opacity: 0.7; }

    :where(.aos-home-page, .aos-program-page) .calendar__foot {
      max-width: var(--container);
      margin: 56px auto 0;
      padding: 0 var(--gutter);
      display: flex;
      justify-content: center;
    }
    :where(.aos-home-page, .aos-program-page) .calendar__foot a {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 14px 24px;
      border: 1px solid hsl(var(--border-strong));
      border-radius: 100px;
      font-size: 13.5px;
      font-weight: 600;
      color: hsl(var(--aos-navy));
      background: hsl(var(--bg-card));
      transition: all 220ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .calendar__foot a:hover {
      background: hsl(var(--aos-navy));
      color: hsl(var(--paper));
      transform: translateY(-1px);
    }
    :where(.aos-home-page, .aos-program-page) .calendar__foot svg {
      width: 13px;
      height: 13px;
      transition: transform 260ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .calendar__foot a:hover svg { transform: translateX(3px); }

    /* ═════════════════════ CTA MEGA ═════════════════════ */
    :where(.aos-home-page, .aos-program-page) .cta {
      padding: 0 0 var(--section);
    }
    :where(.aos-home-page, .aos-program-page) .cta__box {
      max-width: var(--container);
      margin: 0 auto;
      padding: 0 var(--gutter);
    }
    :where(.aos-home-page, .aos-program-page) .cta__inner {
      position: relative;
      border-radius: var(--r-2xl);
      overflow: hidden;
      padding: clamp(4rem, 7vw, 7rem) clamp(2rem, 5vw, 5rem);
      background: hsl(var(--aos-navy));
      color: hsl(var(--paper));
    }
    :where(.aos-home-page, .aos-program-page) .cta__bg {
      position: absolute;
      inset: 0;
      z-index: 0;
    }
    :where(.aos-home-page, .aos-program-page) .cta__bg img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 30%;
      opacity: 0.25;
    }
    :where(.aos-home-page, .aos-program-page) .cta__bg::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(130deg, hsl(var(--aos-navy-deep)) 0%, hsl(var(--aos-navy-deep) / 0.88) 40%, hsl(var(--aos-navy) / 0.58) 100%);
    }
    :where(.aos-home-page, .aos-program-page) .cta__content {
      position: relative;
      display: grid;
      grid-template-columns: 1.4fr 1fr;
      gap: 56px;
      align-items: end;
    }
    :where(.aos-home-page, .aos-program-page) .cta__content .eyebrow { color: hsl(var(--aos-yellow)); }
    :where(.aos-home-page, .aos-program-page) .cta__content .eyebrow::before { background: hsl(var(--aos-yellow)); }
    :where(.aos-home-page, .aos-program-page) .cta__content h2 {
      font-size: clamp(2.4rem, 5vw, 4.8rem);
      line-height: 0.98;
      color: hsl(var(--paper));
      margin: 22px 0 0;
      letter-spacing: -0.028em;
      font-variation-settings: "opsz" 60;
      font-weight: 350;
      max-width: 14ch;
    }
    :where(.aos-home-page, .aos-program-page) .cta__content h2 em {
      font-style: italic;
      font-weight: 300;
      color: hsl(var(--aos-yellow));
    }
    :where(.aos-home-page, .aos-program-page) .cta__side { display: flex; flex-direction: column; gap: 24px; }
    :where(.aos-home-page, .aos-program-page) .cta__side p {
      font-size: 16px;
      color: hsl(0 0% 100% / 0.78);
      line-height: 1.6;
    }
    :where(.aos-home-page, .aos-program-page) .cta__buttons { display: flex; gap: 14px; flex-wrap: wrap; }
    :where(.aos-home-page, .aos-program-page) .cta__buttons .btn--secondary {
      background: transparent;
      color: hsl(var(--paper));
      border-color: hsl(0 0% 100% / 0.3);
    }
    :where(.aos-home-page, .aos-program-page) .cta__buttons .btn--secondary:hover {
      background: hsl(0 0% 100% / 0.08);
      border-color: hsl(0 0% 100% / 0.5);
    }

    /* ═════════════════════════════════════════════════════════════════════
       Footer (.foot)
       ─ 8-pt spatial grid: 8 / 16 / 24 / 32 / 48 / 64 / 96 / 128
       ─ 1.250 modular type scale: 12 · 14 · 16 · 20 · 26 · 34 · 44
       ─ Three horizontal bands: brand+sitemap · campuses · legal
       ───────────────────────────────────────────────────────────────────── */
    .foot {
      --foot-fg:        hsl(0 0% 100% / 0.74);
      --foot-fg-strong: hsl(0 0% 100% / 0.92);
      --foot-fg-soft:   hsl(0 0% 100% / 0.56);
      --foot-fg-faint:  hsl(0 0% 100% / 0.42);
      --foot-line:      hsl(0 0% 100% / 0.10);
      --foot-line-soft: hsl(0 0% 100% / 0.06);
      --foot-fill:      hsl(0 0% 100% / 0.04);
      --foot-fill-hi:   hsl(0 0% 100% / 0.08);
      --foot-pad-y:     clamp(64px, 7vw, 96px);
      --foot-gap:       clamp(48px, 5vw, 72px);

      position: relative;
      background: hsl(var(--aos-navy-deep));
      color: var(--foot-fg);
      padding: var(--foot-pad-y) 0 0;
      font-family: var(--body);
      font-size: 14px;
      line-height: 1.65;
    }
    .foot::before {
      content: "";
      position: absolute;
      inset: 0 0 auto 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, hsl(var(--aos-yellow) / 0.32), transparent);
    }

    /* Row 1 — brand + sitemap columns */
    .foot__inner {
      max-width: var(--container);
      margin: 0 auto;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: 1.6fr repeat(4, 1fr);
      gap: var(--foot-gap);
      align-items: start;
    }

    /* Brand block */
    .foot__brand { display: flex; flex-direction: column; gap: 24px; }
    .foot__brand-mark { display: inline-block; }
    .foot__brand-mark img { width: 120px; height: 120px; display: block; }
    .foot__wordmark {
      font-family: var(--display);
      font-weight: 400;
      font-size: clamp(24px, 2.2vw, 30px);
      line-height: 1.1;
      letter-spacing: -0.02em;
      color: hsl(var(--paper));
      margin: 0;
      font-variation-settings: "opsz" 60;
    }
    .foot__wordmark em {
      color: hsl(var(--aos-yellow));
      font-style: italic;
      font-weight: 350;
    }
    .foot__mission {
      font-size: 14px;
      line-height: 1.7;
      color: var(--foot-fg);
      max-width: 36ch;
      margin: 0;
    }

    /* Newsletter */
    .foot__news {
      display: flex;
      align-items: center;
      gap: 8px;
      background: var(--foot-fill);
      border: 1px solid var(--foot-line);
      border-radius: 100px;
      padding: 6px 6px 6px 20px;
      max-width: 380px;
      transition: border-color 220ms var(--ease-out), background 220ms var(--ease-out);
    }
    .foot__news:focus-within {
      border-color: hsl(var(--aos-yellow) / 0.6);
      background: var(--foot-fill-hi);
    }
    .foot__news input {
      flex: 1; min-width: 0;
      background: transparent;
      border: none;
      color: hsl(var(--paper));
      font: inherit;
      font-size: 14px;
      outline: none;
      padding: 8px 0;
    }
    .foot__news input::placeholder { color: var(--foot-fg-soft); }
    /* Follows the site-wide .aos-btn system: stroke ghost + teal chip
       (canonical rules live in aos-footer.css — keep in sync). */
    .foot__news button {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: transparent;
      color: hsl(var(--paper));
      border: 1px solid hsl(var(--paper) / 0.25);
      border-radius: 100px;
      padding: 4px 4px 4px 15px;
      font-family: var(--body);
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 0.01em;
      cursor: pointer;
      transition: background 200ms var(--ease-out), border-color 200ms var(--ease-out), transform 200ms var(--ease-out);
    }
    .foot__news button:hover { background: hsl(var(--aos-yellow) / 0.08); border-color: hsl(var(--aos-yellow) / 0.65); transform: translateY(-1px); }
    .foot__news button svg {
      box-sizing: content-box;
      width: 12px;
      height: 12px;
      padding: 6px;
      border-radius: 999px;
      background: hsl(var(--aos-yellow));
      color: hsl(var(--aos-navy-deep));
    }

    /* Social */
    .foot__social {
      list-style: none;
      padding: 0; margin: 0;
      display: flex;
      gap: 10px;
    }
    .foot__social a {
      display: grid;
      place-items: center;
      width: 38px; height: 38px;
      border-radius: 50%;
      border: 1px solid var(--foot-line);
      color: var(--foot-fg);
      transition: background 200ms var(--ease-out), border-color 200ms var(--ease-out), color 200ms var(--ease-out);
    }
    .foot__social a:hover {
      background: hsl(var(--aos-yellow));
      border-color: hsl(var(--aos-yellow));
      color: hsl(var(--aos-navy-deep));
    }
    .foot__social a svg { width: 17px; height: 17px; display: block; }

    /* Sitemap columns */
    .foot__col h4 {
      font-family: var(--body);
      font-size: 11.5px;
      font-weight: 700;
      color: hsl(var(--paper));
      text-transform: uppercase;
      letter-spacing: 0.14em;
      margin: 0 0 24px;
    }
    .foot__col ul, .foot__col .wp-block-list {
      list-style: none;
      padding: 0; margin: 0;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
    .foot__col li { margin: 0; }
    .foot__col a {
      font-size: 14px;
      color: hsl(0 0% 100% / 0.66);
      text-decoration: none;
      transition: color 180ms var(--ease-out);
    }
    .foot__col a:hover { color: hsl(var(--paper)); }

    /* Row 2 — campus blocks */
    .foot__campuses {
      max-width: var(--container);
      margin: 72px auto 0;
      padding: 56px var(--gutter) 0;
      border-top: 1px solid var(--foot-line);
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--foot-gap);
    }
    .foot__campus { display: flex; flex-direction: column; gap: 12px; }
    .foot__campus-eyebrow {
      font-family: var(--body);
      font-size: 10.5px;
      font-weight: 700;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: hsl(var(--aos-yellow));
      margin: 0;
    }
    .foot__campus-addr {
      font-size: 14px;
      line-height: 1.65;
      color: var(--foot-fg);
      margin: 0;
      max-width: 34ch;
    }
    .foot__campus-addr a {
      color: var(--foot-fg-strong);
      text-decoration: none;
      border-bottom: 1px solid hsl(0 0% 100% / 0.18);
      transition: border-color 200ms var(--ease-out);
    }
    .foot__campus-addr a:hover { border-color: hsl(var(--aos-yellow)); }
    .foot__campus-link {
      align-self: flex-start;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-top: 4px;
      font-size: 13px;
      font-weight: 500;
      color: var(--foot-fg-strong);
      text-decoration: none;
      padding-bottom: 2px;
      border-bottom: 1px solid hsl(0 0% 100% / 0.18);
      transition: color 200ms var(--ease-out), border-color 200ms var(--ease-out), gap 220ms var(--ease-out);
    }
    .foot__campus-link:hover {
      color: hsl(var(--aos-yellow));
      border-color: hsl(var(--aos-yellow));
      gap: 12px;
    }
    .foot__campus-link svg { width: 14px; height: 14px; }

    /* Row 3 — legal bar */
    .foot__bottom {
      max-width: var(--container);
      margin: 64px auto 0;
      padding: 28px var(--gutter);
      border-top: 1px solid var(--foot-line);
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 20px 32px;
      flex-wrap: wrap;
    }
    .foot__copy {
      font-size: 12.5px;
      color: var(--foot-fg-faint);
      margin: 0;
    }
    .foot__copy em {
      color: var(--foot-fg-soft);
      font-style: italic;
    }
    .foot__legal {
      list-style: none;
      padding: 0; margin: 0;
      display: flex;
      flex-wrap: wrap;
      gap: 8px 24px;
      font-size: 12.5px;
    }
    .foot__legal li { margin: 0; }
    .foot__legal a {
      color: var(--foot-fg-soft);
      text-decoration: none;
      transition: color 180ms var(--ease-out);
    }
    .foot__legal a:hover { color: hsl(var(--paper)); }

    :where(.aos-home-page, .aos-program-page) .visually-hidden {
      position: absolute !important;
      width: 1px; height: 1px;
      padding: 0; margin: -1px;
      overflow: hidden;
      clip: rect(0,0,0,0);
      white-space: nowrap;
      border: 0;
    }

    /* ═════════════════════ Mobile ═════════════════════ */
    @media (max-width: 1100px) {
      :where(.aos-home-page, .aos-program-page) .hero h1 { font-size: clamp(1.875rem, 4.8vw, 3.25rem); max-width: 20ch; }
      :where(.aos-home-page, .aos-program-page) .hero__stats { grid-template-columns: repeat(2, 1fr) !important; gap: 24px 0 !important; }
      :where(.aos-home-page, .aos-program-page) .hero__stat { padding: 14px 18px; border-right: 1px solid hsl(0 0% 100% / 0.14); border-bottom: 1px solid hsl(0 0% 100% / 0.14); }
      :where(.aos-home-page, .aos-program-page) .hero__stat:nth-child(2n) { border-right: none; padding-right: 0; }
      :where(.aos-home-page, .aos-program-page) .hero__stat:nth-child(1), :where(.aos-home-page, .aos-program-page) .hero__stat:nth-child(2) { padding-top: 0; }
      :where(.aos-home-page, .aos-program-page) .hero__stat:nth-child(3), :where(.aos-home-page, .aos-program-page) .hero__stat:nth-child(4) { border-bottom: none; padding-bottom: 0; }
      :where(.aos-home-page, .aos-program-page) .hero__stat:nth-child(2n+1) { padding-left: 0; }
      :where(.aos-home-page, .aos-program-page) .hero__scroll { display: none !important; }

      :where(.aos-home-page, .aos-program-page) .pillars__head { grid-template-columns: 1fr !important; gap: 28px !important; }
      :where(.aos-home-page, .aos-program-page) .pillars__grid { grid-template-columns: repeat(2, 1fr) !important; }

      :where(.aos-home-page, .aos-program-page) .gallery__head { grid-template-columns: 1fr !important; gap: 24px !important; }
      :where(.aos-home-page, .aos-program-page) .gallery__grid { grid-auto-rows: 100px; }
      :where(.aos-home-page, .aos-program-page) .shot--a { grid-column: span 12; grid-row: span 4; }
      :where(.aos-home-page, .aos-program-page) .shot--b { grid-column: span 12; grid-row: span 2; }
      :where(.aos-home-page, .aos-program-page) .shot--c { grid-column: span 6; grid-row: span 2; }
      :where(.aos-home-page, .aos-program-page) .shot--d { grid-column: span 6; grid-row: span 2; }
      :where(.aos-home-page, .aos-program-page) .shot--e { grid-column: span 6; grid-row: span 3; }
      :where(.aos-home-page, .aos-program-page) .shot--f { grid-column: span 6; grid-row: span 3; }
      :where(.aos-home-page, .aos-program-page) .shot--g { grid-column: span 12; grid-row: span 3; }
      :where(.aos-home-page, .aos-program-page) .shot--h { grid-column: span 12; grid-row: span 3; }

      :where(.aos-home-page, .aos-program-page) .athletics__inner { grid-template-columns: 1fr !important; gap: 0 !important; min-height: auto; }
      :where(.aos-home-page, .aos-program-page) .athletics__media { margin: clamp(3rem, 5vw, 5rem) 0 0; aspect-ratio: 16 / 10; }
      :where(.aos-home-page, .aos-program-page) .athletics__body { padding: clamp(3rem, 5vw, 5rem) 0; }

      :where(.aos-home-page, .aos-program-page) .clubs__grid { grid-template-columns: repeat(2, 1fr) !important; }
      :where(.aos-home-page, .aos-program-page) .clubs__head { grid-template-columns: 1fr !important; gap: 20px !important; }

      :where(.aos-home-page, .aos-program-page) .home__grid { grid-template-columns: 1fr !important; gap: 20px !important; }
      :where(.aos-home-page, .aos-program-page) .home-card__list { grid-template-columns: 1fr 1fr !important; }

      :where(.aos-home-page, .aos-program-page) .voices__head { grid-template-columns: 1fr !important; gap: 20px !important; }
      :where(.aos-home-page, .aos-program-page) .voices__grid { grid-template-columns: 1fr !important; gap: 16px !important; }

      :where(.aos-home-page, .aos-program-page) .calendar__head { grid-template-columns: 1fr !important; gap: 16px !important; }
      :where(.aos-home-page, .aos-program-page) .calendar__row { grid-template-columns: repeat(3, 1fr) !important; gap: 28px 18px !important; }
      :where(.aos-home-page, .aos-program-page) .cal-item:nth-child(n+4) { display: none !important; }
      :where(.aos-home-page, .aos-program-page) .calendar__line { display: none !important; }

      :where(.aos-home-page, .aos-program-page) .cta__content { grid-template-columns: 1fr !important; gap: 32px !important; }

      /* Footer — tablet: brand row, then 4-col sitemap, then campuses 2x2 */
      .foot__inner { grid-template-columns: 1fr !important; gap: 48px !important; }
      .foot__inner .foot__brand { grid-column: 1 / -1; }
      .foot__inner .foot__col { display: block !important; }
      .foot__campuses { grid-template-columns: 1fr 1fr !important; }
      .foot__campus--accred { grid-column: 1 / -1; }
    }
    @media (min-width: 721px) and (max-width: 1100px) {
      .foot__inner {
        grid-template-columns: repeat(4, 1fr) !important;
        row-gap: 56px !important;
      }
      .foot__inner .foot__brand { grid-column: 1 / -1; max-width: 640px; }
    }

    @media (max-width: 720px) {
      .util__links { display: none !important; }
      .util__contact { gap: 18px !important; font-size: 12px; }
      .util__contact span:last-child { display: none !important; }

      .nav__inner { grid-template-columns: auto 1fr auto !important; padding: 18px var(--gutter); }
      .nav__list { display: none !important; }
      .nav__burger {
        display: grid !important;
        place-items: center;
        width: 40px;
        height: 40px;
        background: hsl(0 0% 100% / 0.08);
        border-radius: 8px;
        color: hsl(var(--paper));
      }
      .nav__search { display: none !important; }
      .nav__actions .btn { padding: 12px 18px; font-size: 13px; }

      :where(.aos-home-page, .aos-program-page) .hero { min-height: 86vh; }
      :where(.aos-home-page, .aos-program-page) .hero__inner { padding-bottom: 3rem; }
      :where(.aos-home-page, .aos-program-page) .hero__crumbs { margin-bottom: 18px; font-size: 12px; flex-wrap: wrap !important; }
      :where(.aos-home-page, .aos-program-page) .hero__eyebrow { margin-bottom: 22px; font-size: 11px; }
      :where(.aos-home-page, .aos-program-page) .hero h1 { font-size: clamp(1.75rem, 7vw, 2.5rem); max-width: none; margin-bottom: 22px; }
      :where(.aos-home-page, .aos-program-page) .hero__lead { font-size: 15px; margin-bottom: 28px; }
      :where(.aos-home-page, .aos-program-page) .hero__ctas { flex-direction: column !important; align-items: stretch; margin-bottom: 40px; }
      :where(.aos-home-page, .aos-program-page) .hero__ctas .btn { justify-content: center; }
      :where(.aos-home-page, .aos-program-page) .hero__stats { grid-template-columns: 1fr 1fr !important; padding-top: 24px; }
      :where(.aos-home-page, .aos-program-page) .hero__stat { padding: 12px 14px; }
      :where(.aos-home-page, .aos-program-page) .hero__stat .num { font-size: 1.8rem; }

      :where(.aos-home-page, .aos-program-page) .pillars__grid { grid-template-columns: 1fr !important; }
      :where(.aos-home-page, .aos-program-page) .pillar { min-height: auto; padding: 28px 26px; }

      :where(.aos-home-page, .aos-program-page) .gallery__grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
      }
      :where(.aos-home-page, .aos-program-page) .shot, :where(.aos-home-page, .aos-program-page) .shot--a, :where(.aos-home-page, .aos-program-page) .shot--b, :where(.aos-home-page, .aos-program-page) .shot--c, :where(.aos-home-page, .aos-program-page) .shot--d, :where(.aos-home-page, .aos-program-page) .shot--e, :where(.aos-home-page, .aos-program-page) .shot--f, :where(.aos-home-page, .aos-program-page) .shot--g, :where(.aos-home-page, .aos-program-page) .shot--h {
        aspect-ratio: 4 / 3;
        height: auto;
        min-height: 220px;
        grid-column: auto;
        grid-row: auto;
      }

      :where(.aos-home-page, .aos-program-page) .athletics__inner { padding: 0 var(--gutter); }
      :where(.aos-home-page, .aos-program-page) .athletics__media { margin: 48px 0 0; aspect-ratio: 5 / 4; }
      :where(.aos-home-page, .aos-program-page) .athletics__body h2 { font-size: 2.2rem; }
      :where(.aos-home-page, .aos-program-page) .athletics__score .roar { font-size: 48px; }
      :where(.aos-home-page, .aos-program-page) .athletics__score .tiger { font-size: 1.4rem; }

      :where(.aos-home-page, .aos-program-page) .clubs__grid { grid-template-columns: 1fr !important; }
      :where(.aos-home-page, .aos-program-page) .club { padding: 24px 24px 26px; }

      :where(.aos-home-page, .aos-program-page) .home-card__body { padding: 28px 26px 30px; }
      :where(.aos-home-page, .aos-program-page) .home-card__list { grid-template-columns: 1fr !important; gap: 12px !important; }
      :where(.aos-home-page, .aos-program-page) .home-card h3 { font-size: 1.7rem; }

      :where(.aos-home-page, .aos-program-page) .voice-card { padding: 32px 26px 28px; }
      :where(.aos-home-page, .aos-program-page) .voice-card blockquote { font-size: 17px; }
      :where(.aos-home-page, .aos-program-page) .voice-card__chip { top: 22px; right: 22px; }

      :where(.aos-home-page, .aos-program-page) .calendar__row {
        display: flex !important;
        overflow-x: auto;
        flex-wrap: nowrap !important;
        scroll-snap-type: x mandatory;
        gap: 16px !important;
        padding: 0 0 14px;
        margin: 0 calc(var(--gutter) * -1);
        padding-left: var(--gutter);
        padding-right: var(--gutter);
        scrollbar-width: none;
      }
      :where(.aos-home-page, .aos-program-page) .calendar__row::-webkit-scrollbar { display: none !important; }
      :where(.aos-home-page, .aos-program-page) .cal-item {
        flex: 0 0 240px;
        scroll-snap-align: start;
      }
      :where(.aos-home-page, .aos-program-page) .cal-item:nth-child(n+4) { display: flex !important; }
      :where(.aos-home-page, .aos-program-page) .cal-item__date { width: 88px; height: 88px; }
      :where(.aos-home-page, .aos-program-page) .cal-item__date .day { font-size: 40px; }

      :where(.aos-home-page, .aos-program-page) .cta__inner { padding: 52px 28px; border-radius: var(--r-xl); }
      :where(.aos-home-page, .aos-program-page) .cta__content { gap: 28px !important; }
      :where(.aos-home-page, .aos-program-page) .cta__content h2 { font-size: 2.4rem; }

      /* Footer — phone: stacked, full-width newsletter, social row centered */
      .foot { --foot-pad-y: 64px; --foot-gap: 40px !important; }
      .foot__inner { grid-template-columns: 1fr !important; gap: 40px !important; }
      .foot__news { max-width: none; }
      .foot__campuses { grid-template-columns: 1fr !important; padding-top: 40px; margin-top: 48px; }
      .foot__campus--accred { grid-column: auto; }
      .foot__bottom { flex-direction: column !important; align-items: flex-start; gap: 16px !important; margin-top: 40px; padding-top: 24px; }
      .foot__legal { gap: 8px 18px !important; font-size: 12px; }
    }

/* ── aos-home-rebuild ─────────────────────────────────────────────── */
    /* ═════════════════════════════════════════════════════════════════════
       AOS HOME — REBUILD LAYER
       Premium hero (marquee + split pullquote panel) + 6 distinct
       components from components.html inlined as utility classes.
       All colors reference tokens defined in :root above.
       ═════════════════════════════════════════════════════════════════════ */

    /* ── Hero: marquee strip (monospace "happening now") ─────────────── */
    /* NOTE: overflow is INTENTIONALLY not hidden here. The inner
       `.hero__marquee-track` has its own `overflow: hidden` + mask-image
       to clip the scrolling list at its fading edges. Adding overflow to
       this outer container would clip the leading `.dot` element's
       4px box-shadow halo — the halo extends 4px outside the dot's
       bounding box, and the dot sits at x=0 of the marquee, so an
       overflow:hidden parent would crop the left half of the halo. */
    :where(.aos-home-page, .aos-program-page) .hero__marquee {
      display: flex;
      align-items: center;
      gap: 18px;
      padding: 18px 0 22px;
      margin-top: 40px;
      border-top: 1px solid hsl(var(--white) / 0.18);
      border-bottom: 1px solid hsl(var(--white) / 0.18);
      font-family: var(--mono);
      font-size: 12px;
      letter-spacing: 0.02em;
      color: hsl(var(--white) / 0.82);
      position: relative;
      max-width: 860px;
    }
    :where(.aos-home-page, .aos-program-page) .hero__marquee-label {
      flex: 0 0 auto;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding-right: 16px;
      border-right: 1px solid hsl(var(--white) / 0.2);
      font-size: 10.5px;
      font-weight: 600;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: hsl(var(--aos-yellow));
    }
    :where(.aos-home-page, .aos-program-page) .hero__marquee-label .dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: hsl(var(--aos-yellow));
      box-shadow: 0 0 0 4px hsl(var(--aos-yellow) / 0.22);
      animation: pulse 2s infinite var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .hero__marquee-track {
      flex: 1;
      overflow: hidden;
      mask-image: linear-gradient(90deg, transparent 0, hsl(var(--aos-navy)) 48px, hsl(var(--aos-navy)) calc(100% - 48px), transparent);
      -webkit-mask-image: linear-gradient(90deg, transparent 0, hsl(var(--aos-navy)) 48px, hsl(var(--aos-navy)) calc(100% - 48px), transparent);
    }
    :where(.aos-home-page, .aos-program-page) .hero__marquee-list {
      display: flex;
      gap: 36px;
      list-style: none;
      margin: 0;
      padding: 0;
      width: max-content;
      animation: marqueeSlide 42s linear infinite;
    }
    :where(.aos-home-page, .aos-program-page) .hero__marquee-list li {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      white-space: nowrap;
    }
    :where(.aos-home-page, .aos-program-page) .hero__marquee-list .cal {
      color: hsl(var(--aos-yellow));
      font-weight: 500;
    }
    :where(.aos-home-page, .aos-program-page) .hero__marquee-list .sep {
      display: inline-block;
      width: 3px;
      height: 3px;
      border-radius: 50%;
      background: hsl(var(--white) / 0.35);
    }
    @keyframes marqueeSlide {
      from { transform: translateX(0); }
      to   { transform: translateX(-50%); }
    }

    /* ── Hero: split editorial panel (pullquote + stat block) ─────────── */
    :where(.aos-home-page, .aos-program-page) .hero__panel {
      margin-top: 44px;
      display: grid;
      grid-template-columns: 1.25fr 1fr;
      gap: clamp(1.5rem, 3vw, 3rem);
      max-width: 980px;
      align-items: stretch;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-quote {
      position: relative;
      background: hsl(var(--white) / 0.04);
      border: 1px solid hsl(var(--white) / 0.14);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      padding: 52px 38px 30px;
      border-radius: var(--r-lg);
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      margin: 0;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-quote .mark {
      position: absolute;
      top: 30px;
      left: 34px;
      font-family: var(--display);
      font-size: 56px;
      line-height: 1;
      font-weight: 300;
      color: hsl(var(--aos-yellow));
      letter-spacing: -0.04em;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-quote blockquote {
      margin: 0;
      font-family: var(--display);
      font-style: italic;
      font-weight: 300;
      font-size: clamp(19px, 1.6vw, 24px);
      line-height: 1.32;
      letter-spacing: -0.014em;
      color: hsl(var(--white));
      font-variation-settings: "opsz" 60;
      max-width: 38ch;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-quote .by {
      margin-top: 22px;
      padding-top: 16px;
      border-top: 1px solid hsl(var(--white) / 0.16);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-quote .by strong {
      display: block;
      font-family: var(--body);
      font-size: 13px;
      font-weight: 600;
      color: hsl(var(--white));
      letter-spacing: -0.005em;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-quote .by span {
      display: block;
      font-family: var(--body);
      font-size: 11.5px;
      color: hsl(var(--white) / 0.6);
      margin-top: 2px;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-quote .tag {
      font-family: var(--mono);
      font-size: 9.5px;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: hsl(var(--aos-yellow));
      padding: 4px 10px;
      border: 1px solid hsl(var(--aos-yellow) / 0.5);
      border-radius: 100px;
      white-space: nowrap;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-stat {
      display: grid;
      grid-template-rows: auto 1fr auto;
      row-gap: 14px;
      background: linear-gradient(
        140deg,
        hsl(var(--aos-yellow) / 0.18) 0%,
        hsl(var(--aos-navy-deep) / 0.45) 100%
      );
      border: 1px solid hsl(var(--aos-yellow) / 0.35);
      border-radius: var(--r-lg);
      padding: 28px 32px 26px;
      position: relative;
      overflow: hidden;
      height: 100%;
      margin: 0;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-stat::before {
      content: "";
      position: absolute;
      top: -60%;
      right: -40%;
      width: 140%;
      height: 200%;
      background: radial-gradient(ellipse at center, hsl(var(--aos-yellow) / 0.18), transparent 55%);
      pointer-events: none;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-stat .kicker {
      font-family: var(--mono);
      font-size: 10.5px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: hsl(var(--aos-yellow));
      margin-bottom: 16px;
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-stat .figure {
      font-family: var(--display);
      font-size: clamp(3rem, 5vw, 4.4rem);
      line-height: 0.92;
      letter-spacing: -0.035em;
      font-variation-settings: "opsz" 60;
      font-weight: 350;
      color: hsl(var(--white));
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-stat .figure .small {
      font-size: 0.38em;
      vertical-align: 0.55em;
      color: hsl(var(--aos-yellow));
      margin-left: 4px;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-stat .caption {
      font-family: var(--display);
      font-style: italic;
      font-weight: 300;
      font-size: 14.5px;
      line-height: 1.45;
      color: hsl(var(--white) / 0.86);
      margin-top: 14px;
      padding-top: 14px;
      border-top: 1px solid hsl(var(--white) / 0.16);
      max-width: 28ch;
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .hero__panel-stat .caption span {
      display: block;
      font-family: var(--mono);
      font-style: normal;
      font-size: 10px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: hsl(var(--white) / 0.55);
      margin-top: 8px;
    }

    /* ── Section scaffold ─────────────────────────────────────────────── */
    :where(.aos-home-page, .aos-program-page) .sx {
      padding: var(--section) 0;
      position: relative;
    }
    :where(.aos-home-page, .aos-program-page) .sx--alt {
      background: hsl(var(--bg-alt));
      border-top: 1px solid hsl(var(--border-soft));
      border-bottom: 1px solid hsl(var(--border-soft));
    }
    :where(.aos-home-page, .aos-program-page) .sx__head {
      max-width: var(--container);
      margin: 0 auto 56px;
      padding: 0 var(--gutter);
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 56px;
      align-items: end;
    }
    :where(.aos-home-page, .aos-program-page) .sx__head--center {
      grid-template-columns: 1fr;
      text-align: center;
      max-width: 780px;
      gap: 20px;
    }
    :where(.aos-home-page, .aos-program-page) .sx__head--center .eyebrow { justify-content: center; }
    :where(.aos-home-page, .aos-program-page) .sx__head--center .lead { margin: 0 auto; }
    :where(.aos-home-page, .aos-program-page) .sx__head h2 {
      font-size: clamp(2.2rem, 4vw, 3.6rem);
      letter-spacing: -0.024em;
      color: hsl(var(--aos-navy));
      margin-top: 20px;
      line-height: 1.02;
      max-width: 20ch;
    }
    :where(.aos-home-page, .aos-program-page) .sx__head--center h2 { max-width: none; }
    :where(.aos-home-page, .aos-program-page) .sx__head h2 em {
      font-style: italic;
      font-weight: 300;
      color: hsl(var(--aos-blue));
    }
    :where(.aos-home-page, .aos-program-page) .sx__body {
      max-width: var(--container);
      margin: 0 auto;
      padding: 0 var(--gutter);
    }

    /* ── Component: aos-card base (from components.html) ─────────────── */
    :where(.aos-home-page, .aos-program-page) .aos-card {
      position: relative;
      background: hsl(var(--bg-card));
      border: 1px solid hsl(var(--border-soft));
      border-radius: var(--r-lg);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      transition: transform 320ms var(--ease-out),
                  box-shadow 320ms var(--ease-out),
                  border-color 320ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) a.aos-card, :where(.aos-home-page, .aos-program-page) button.aos-card {
      text-decoration: none;
      color: inherit;
      cursor: pointer;
      text-align: left;
    }
    :where(.aos-home-page, .aos-program-page) .aos-card--hoverable:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-md);
      border-color: hsl(var(--border-strong));
    }
    :where(.aos-home-page, .aos-program-page) .aos-card-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 22px;
    }
    :where(.aos-home-page, .aos-program-page) .aos-card-grid--2 {
      grid-template-columns: repeat(2, 1fr);
      gap: 22px;
    }
    :where(.aos-home-page, .aos-program-page) .aos-card-grid--3 {
      grid-template-columns: repeat(3, 1fr);
      gap: 22px;
    }
    :where(.aos-home-page, .aos-program-page) .aos-card-grid--mixed {
      /* 3 news + 2 events */
      grid-template-columns: repeat(6, 1fr);
      gap: 22px;
    }
    :where(.aos-home-page, .aos-program-page) .aos-card-grid--mixed > .c-news-wrap { grid-column: span 2; }
    :where(.aos-home-page, .aos-program-page) .aos-card-grid--mixed > .c-event-wrap { grid-column: span 3; }

    :where(.aos-home-page, .aos-program-page) .aos-tag {
      display: inline-flex;
      align-items: center;
      font-family: var(--body);
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: hsl(var(--aos-navy));
      background: hsl(var(--aos-yellow) / 0.16);
      padding: 5px 10px;
      border-radius: 100px;
    }

    :where(.aos-home-page, .aos-program-page) .aos-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-family: var(--body);
      font-size: 13px;
      font-weight: 600;
      color: hsl(var(--aos-blue));
      letter-spacing: 0.005em;
      transition: color 200ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .aos-link svg {
      width: 12px;
      height: 12px;
      transition: transform 260ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .aos-link:hover { color: hsl(var(--aos-blue-deep)); }
    :where(.aos-home-page, .aos-program-page) .aos-link:hover svg { transform: translateX(3px); }

    /* ── Component: aos-chip ─────────────────────────────────────────── */
    :where(.aos-home-page, .aos-program-page) .aos-chip {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 5px 12px;
      border-radius: 100px;
      font-family: var(--body);
      font-size: 11.5px;
      font-weight: 500;
      background: hsl(var(--bg-card));
      border: 1px solid hsl(var(--border));
      color: hsl(var(--aos-navy));
      letter-spacing: 0.01em;
    }

    /* ── Component: c-stat (grid of 4) ───────────────────────────────── */
    :where(.aos-home-page, .aos-program-page) .c-stat-grid, :where(.aos-home-page, .aos-program-page) .c-stat-grid.wp-block-group {
      display: grid !important;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      border: 1px solid hsl(var(--border));
      border-radius: var(--r-lg);
      background: hsl(var(--bg-card));
      box-shadow: var(--shadow-xs);
      overflow: hidden;
    }
    :where(.aos-home-page, .aos-program-page) .c-stat-grid > * { margin: 0 !important; }
    :where(.aos-home-page, .aos-program-page) .c-stat, :where(.aos-home-page, .aos-program-page) .c-stat.wp-block-group {
      padding: 36px 32px 32px;
      display: flex !important;
      flex-direction: column !important;
      gap: 10px;
      border-right: 1px solid hsl(var(--border));
      position: relative;
      margin: 0 !important;
    }
    :where(.aos-home-page, .aos-program-page) .c-stat > * { margin: 0 !important; }
    :where(.aos-home-page, .aos-program-page) .c-stat:last-child { border-right: none; }
    :where(.aos-home-page, .aos-program-page) .c-stat__num {
      font-family: var(--display);
      font-size: clamp(2.4rem, 4vw, 3.6rem);
      line-height: 0.96;
      letter-spacing: -0.035em;
      color: hsl(var(--aos-navy));
      font-weight: 400;
      font-variation-settings: "opsz" 60;
      font-variant-numeric: lining-nums;
    }
    :where(.aos-home-page, .aos-program-page) .c-stat__num .small {
      font-size: 0.38em;
      vertical-align: 0.5em;
      margin-left: 3px;
      color: hsl(var(--aos-blue));
      font-weight: 400;
    }
    :where(.aos-home-page, .aos-program-page) .c-stat__label {
      font-family: var(--body);
      font-size: 12px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: hsl(var(--fg-muted));
      line-height: 1.45;
    }
    :where(.aos-home-page, .aos-program-page) .c-stat__caption {
      font-family: var(--display);
      font-style: italic;
      font-weight: 300;
      font-size: 13.5px;
      line-height: 1.5;
      color: hsl(var(--fg-subtle));
      margin-top: 6px;
      max-width: 28ch;
    }

    /* ── Component: aos-tabs + panels ─────────────────────────────────── */
    :where(.aos-home-page, .aos-program-page) .aos-tabs {
      display: inline-flex;
      gap: 0;
      border-bottom: 1px solid hsl(var(--border));
      padding: 0 0 2px;
      margin-bottom: 36px;
      flex-wrap: wrap;
    }
    :where(.aos-home-page, .aos-program-page) .aos-tabs button {
      padding: 14px 22px 16px;
      font-family: var(--body);
      font-size: 14px;
      font-weight: 500;
      color: hsl(var(--fg-muted));
      position: relative;
      transition: color 200ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .aos-tabs button::after {
      content: "";
      position: absolute;
      bottom: -1px;
      left: 12px;
      right: 12px;
      height: 2px;
      background: hsl(var(--aos-yellow-deep));
      transform: scaleX(0);
      transform-origin: left;
      transition: transform 280ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .aos-tabs button:hover { color: hsl(var(--aos-navy)); }
    :where(.aos-home-page, .aos-program-page) .aos-tabs button.is-active {
      color: hsl(var(--aos-navy));
      font-weight: 600;
    }
    :where(.aos-home-page, .aos-program-page) .aos-tabs button.is-active::after { transform: scaleX(1); }
    :where(.aos-home-page, .aos-program-page) .aos-tabs__panel {
      display: none;
      animation: panelFade 420ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .aos-tabs__panel.is-active { display: block; }
    @keyframes panelFade {
      from { opacity: 0; transform: translateY(6px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    /* ── Component: c-program ─────────────────────────────────────────── */
    :where(.aos-home-page, .aos-program-page) .c-program { padding: 28px 28px 24px; min-height: 280px; }
    :where(.aos-home-page, .aos-program-page) .c-program__top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 16px;
    }
    :where(.aos-home-page, .aos-program-page) .c-program__school {
      font-family: var(--body);
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: hsl(var(--aos-blue));
    }
    :where(.aos-home-page, .aos-program-page) .c-program h3 {
      font-family: var(--display);
      font-size: 22px;
      font-weight: 400;
      line-height: 1.15;
      letter-spacing: -0.014em;
      color: hsl(var(--aos-navy));
      margin-bottom: 12px;
      font-variation-settings: "opsz" 60;
    }
    :where(.aos-home-page, .aos-program-page) .c-program__chips {
      display: flex;
      gap: 6px;
      margin-bottom: 14px;
      flex-wrap: wrap;
    }
    :where(.aos-home-page, .aos-program-page) .c-program p {
      font-size: 14px;
      color: hsl(var(--fg-muted));
      line-height: 1.58;
      margin-bottom: 18px;
      flex: 1;
    }
    :where(.aos-home-page, .aos-program-page) .c-program__foot {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-top: 14px;
      border-top: 1px solid hsl(var(--border-soft));
    }
    :where(.aos-home-page, .aos-program-page) .c-program__credits {
      font-family: var(--mono);
      font-size: 11.5px;
      color: hsl(var(--fg-subtle));
      letter-spacing: 0.06em;
    }

    /* ── Component: aos-acc (accordion) ───────────────────────────────── */
    :where(.aos-home-page, .aos-program-page) .aos-acc {
      display: flex;
      flex-direction: column;
      max-width: 880px;
      margin: 0 auto;
    }
    /* .aos-acc base styles owned by aos-components.css. Page-local
       additions: 3-column summary layout (number + title + chevron) and
       indented body copy specific to the home FAQ variant. */
    :where(.aos-home-page, .aos-program-page) .aos-acc summary {
      grid-template-columns: auto 1fr auto;
    }
    :where(.aos-home-page, .aos-program-page) .aos-acc__num {
      font-family: var(--mono);
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.14em;
      color: hsl(var(--fg-subtle));
    }
    :where(.aos-home-page, .aos-program-page) .aos-acc details > p, :where(.aos-home-page, .aos-program-page) .aos-acc details > div:not(.aos-acc__panel) {
      padding-left: 42px;
    }

    /* ── Component: c-news and c-event ────────────────────────────────── */
    :where(.aos-home-page, .aos-program-page) .c-news__media {
      aspect-ratio: 16 / 10;
      background:
        linear-gradient(135deg, hsl(var(--aos-navy) / 0.92) 0%, hsl(var(--aos-blue) / 0.7) 100%);
      position: relative;
      overflow: hidden;
    }
    :where(.aos-home-page, .aos-program-page) .c-news__media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 700ms var(--ease-out);
    }
    :where(.aos-home-page, .aos-program-page) .c-news:hover .c-news__media img { transform: scale(1.04); }
    :where(.aos-home-page, .aos-program-page) .c-news__media::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, hsl(var(--aos-navy-deep) / 0.45) 0%, transparent 55%);
      pointer-events: none;
    }
    :where(.aos-home-page, .aos-program-page) .c-news__cat {
      position: absolute;
      top: 16px;
      left: 16px;
      background: hsl(var(--aos-yellow));
      color: hsl(var(--aos-navy-deep));
      font-family: var(--body);
      font-size: 10.5px;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      padding: 6px 12px;
      border-radius: 100px;
      z-index: 2;
    }
    :where(.aos-home-page, .aos-program-page) .c-news__body {
      padding: 22px 24px 22px;
      display: flex;
      flex-direction: column;
      gap: 10px;
      flex: 1;
    }
    :where(.aos-home-page, .aos-program-page) .c-news h3 {
      font-family: var(--display);
      font-size: clamp(1.2rem, 1.5vw, 1.35rem);
      line-height: 1.15;
      color: hsl(var(--aos-navy));
      letter-spacing: -0.014em;
      font-variation-settings: "opsz" 60;
      font-weight: 400;
    }
    :where(.aos-home-page, .aos-program-page) .c-news__deck {
      font-family: var(--body);
      font-size: 13.5px;
      color: hsl(var(--fg-muted));
      line-height: 1.55;
      flex: 1;
    }
    :where(.aos-home-page, .aos-program-page) .c-news__by {
      font-family: var(--mono);
      font-size: 10.5px;
      color: hsl(var(--fg-subtle));
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding-top: 12px;
      border-top: 1px dashed hsl(var(--border-soft));
    }

    :where(.aos-home-page, .aos-program-page) .c-event {
      padding: 24px 26px;
      display: grid;
      grid-template-columns: 78px 1fr;
      gap: 20px;
      align-items: center;
    }
    :where(.aos-home-page, .aos-program-page) .c-event__date {
      width: 78px;
      border-radius: var(--r-sm);
      border: 1px solid hsl(var(--border));
      overflow: hidden;
      text-align: center;
      font-family: var(--display);
      box-shadow: 0 1px 2px hsl(var(--aos-navy) / 0.04);
      background: hsl(var(--bg-card));
    }
    :where(.aos-home-page, .aos-program-page) .c-event__month {
      display: block;
      background: hsl(var(--aos-navy));
      color: hsl(var(--white));
      font-family: var(--body);
      font-size: 10.5px;
      font-weight: 700;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      padding: 6px 0;
    }
    :where(.aos-home-page, .aos-program-page) .c-event__day {
      display: block;
      font-family: var(--display);
      font-size: 34px;
      font-weight: 350;
      color: hsl(var(--aos-navy));
      padding: 10px 0 12px;
      font-variation-settings: "opsz" 60;
      letter-spacing: -0.02em;
      line-height: 1;
    }
    :where(.aos-home-page, .aos-program-page) .c-event__body h3 {
      font-family: var(--display);
      font-size: 19px;
      line-height: 1.2;
      color: hsl(var(--aos-navy));
      margin-bottom: 8px;
      font-variation-settings: "opsz" 60;
      font-weight: 400;
    }
    :where(.aos-home-page, .aos-program-page) .c-event__meta {
      font-family: var(--body);
      font-size: 12.5px;
      color: hsl(var(--fg-muted));
      display: flex;
      flex-wrap: wrap;
      gap: 4px 14px;
      margin-bottom: 10px;
    }
    :where(.aos-home-page, .aos-program-page) .c-event__meta span + span::before {
      content: "·";
      margin-right: 14px;
      color: hsl(var(--fg-subtle));
    }

    /* ── Component: aos-pullquote ─────────────────────────────────────── */
    :where(.aos-home-page, .aos-program-page) .aos-pullquote {
      padding: 64px 0 60px;
      text-align: center;
      border-top: 1px solid hsl(var(--aos-yellow-deep));
      border-bottom: 1px solid hsl(var(--aos-yellow-deep));
      position: relative;
      max-width: var(--container);
      margin: 0 auto;
    }
    :where(.aos-home-page, .aos-program-page) .aos-pullquote::before, :where(.aos-home-page, .aos-program-page) .aos-pullquote::after {
      content: "";
      position: absolute;
      width: 8px;
      height: 8px;
      background: hsl(var(--aos-yellow));
      transform: rotate(45deg);
      left: 50%;
      margin-left: -4px;
    }
    :where(.aos-home-page, .aos-program-page) .aos-pullquote::before { top: -4px; }
    :where(.aos-home-page, .aos-program-page) .aos-pullquote::after  { bottom: -4px; }
    :where(.aos-home-page, .aos-program-page) .aos-pullquote blockquote {
      margin: 0 auto;
      max-width: 30ch;
      font-family: var(--display);
      font-style: italic;
      font-weight: 300;
      font-size: clamp(1.8rem, 3.2vw, 2.6rem);
      line-height: 1.18;
      letter-spacing: -0.018em;
      color: hsl(var(--aos-navy));
      font-variation-settings: "opsz" 60;
    }
    :where(.aos-home-page, .aos-program-page) .aos-pullquote__by {
      margin-top: 22px;
      font-family: var(--mono);
      font-size: 10.5px;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: hsl(var(--fg-subtle));
    }

    /* ── Component: c-callout (navy variant = navy text on cream) ─────── */
    :where(.aos-home-page, .aos-program-page) .c-callout {
      padding: 44px 40px;
      border-radius: var(--r-lg);
      display: grid;
      grid-template-columns: 1.3fr auto;
      gap: 28px;
      align-items: center;
    }
    :where(.aos-home-page, .aos-program-page) .c-callout h3 {
      font-family: var(--display);
      font-size: clamp(1.6rem, 2.8vw, 2.2rem);
      line-height: 1.08;
      letter-spacing: -0.02em;
      margin-bottom: 12px;
      font-weight: 400;
      font-variation-settings: "opsz" 60;
    }
    :where(.aos-home-page, .aos-program-page) .c-callout h3 em { font-style: italic; font-weight: 300; }
    :where(.aos-home-page, .aos-program-page) .c-callout p {
      font-family: var(--body);
      font-size: 15px;
      line-height: 1.6;
      max-width: 52ch;
    }
    :where(.aos-home-page, .aos-program-page) .c-callout--navy {
      background: hsl(var(--bg-card));
      border: 1px solid hsl(var(--border));
      box-shadow: var(--shadow-sm);
    }
    :where(.aos-home-page, .aos-program-page) .c-callout--navy h3 { color: hsl(var(--aos-navy)); }
    :where(.aos-home-page, .aos-program-page) .c-callout--navy h3 em { color: hsl(var(--aos-blue)); }
    :where(.aos-home-page, .aos-program-page) .c-callout--navy p { color: hsl(var(--fg-muted)); }
    :where(.aos-home-page, .aos-program-page) .c-callout__actions {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
    }

    /* ── Mixed grid layout for news (3) + event (2) ───────────────────── */
    :where(.aos-home-page, .aos-program-page) .mix-grid {
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      grid-auto-rows: minmax(0, auto);
      gap: 22px;
    }
    :where(.aos-home-page, .aos-program-page) .mix-grid .c-news { grid-column: span 4; }
    :where(.aos-home-page, .aos-program-page) .mix-grid .c-event { grid-column: span 6; }

    /* ── Mobile ──────────────────────────────────────────────────────── */
    @media (max-width: 1100px) {
      :where(.aos-home-page, .aos-program-page) .hero__panel {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
      }
      :where(.aos-home-page, .aos-program-page) .c-stat-grid {
        grid-template-columns: repeat(2, 1fr) !important;
      }
      :where(.aos-home-page, .aos-program-page) .c-stat {
        border-right: 1px solid hsl(var(--border));
        border-bottom: 1px solid hsl(var(--border));
      }
      :where(.aos-home-page, .aos-program-page) .c-stat:nth-child(2n) { border-right: none; }
      :where(.aos-home-page, .aos-program-page) .c-stat:nth-child(n+3) { border-bottom: none; }

      :where(.aos-home-page, .aos-program-page) .sx__head { grid-template-columns: 1fr !important; gap: 24px !important; }

      :where(.aos-home-page, .aos-program-page) .mix-grid { grid-template-columns: repeat(6, 1fr) !important; }
      :where(.aos-home-page, .aos-program-page) .mix-grid .c-news { grid-column: span 3; }
      :where(.aos-home-page, .aos-program-page) .mix-grid .c-event { grid-column: span 3; }

      :where(.aos-home-page, .aos-program-page) .c-callout {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
      }
    }

    @media (max-width: 720px) {
      :where(.aos-home-page, .aos-program-page) .hero__marquee { gap: 12px !important; margin-top: 32px; }
      :where(.aos-home-page, .aos-program-page) .hero__marquee-label {
        padding-right: 12px;
        font-size: 9.5px;
      }
      :where(.aos-home-page, .aos-program-page) .hero__panel { margin-top: 32px; }
      :where(.aos-home-page, .aos-program-page) .hero__panel-quote { padding: 46px 26px 24px; }
      :where(.aos-home-page, .aos-program-page) .hero__panel-quote .mark { font-size: 48px; top: 24px; left: 26px; }
      :where(.aos-home-page, .aos-program-page) .hero__panel-stat { padding: 24px 24px 22px; }

      :where(.aos-home-page, .aos-program-page) .c-stat-grid { grid-template-columns: 1fr !important; }
      :where(.aos-home-page, .aos-program-page) .c-stat {
        border-right: none;
        border-bottom: 1px solid hsl(var(--border));
      }
      :where(.aos-home-page, .aos-program-page) .c-stat:last-child { border-bottom: none; }

      :where(.aos-home-page, .aos-program-page) .aos-tabs {
        display: flex !important;
        overflow-x: auto;
        flex-wrap: nowrap !important;
        scrollbar-width: none;
      }
      :where(.aos-home-page, .aos-program-page) .aos-tabs::-webkit-scrollbar { display: none !important; }
      :where(.aos-home-page, .aos-program-page) .aos-tabs button {
        flex: 0 0 auto;
        padding: 12px 16px 14px;
        font-size: 13px;
      }

      :where(.aos-home-page, .aos-program-page) .aos-card-grid--3 { grid-template-columns: 1fr !important; }
      :where(.aos-home-page, .aos-program-page) .aos-card-grid--2 { grid-template-columns: 1fr !important; }
      :where(.aos-home-page, .aos-program-page) .mix-grid { grid-template-columns: 1fr !important; }
      :where(.aos-home-page, .aos-program-page) .mix-grid .c-news, :where(.aos-home-page, .aos-program-page) .mix-grid .c-event { grid-column: span 1; }

      :where(.aos-home-page, .aos-program-page) .aos-pullquote { padding: 48px 0; }
      :where(.aos-home-page, .aos-program-page) .c-callout { padding: 32px 28px; }
    }

/* ── final tuning ─────────────────────────────────────────────────── */
      :where(.aos-home-page, .aos-program-page) .recog-band__inner {
        max-width: var(--container);
        margin: 0 auto;
        padding: 0 var(--gutter);
      }
      :where(.aos-home-page, .aos-program-page) .recog-band__head {
        text-align: center;
        max-width: 640px;
        margin: 0 auto clamp(2rem, 3vw, 2.75rem);
      }
      :where(.aos-home-page, .aos-program-page) .recog-band__head .eyebrow { justify-content: center; }
      :where(.aos-home-page, .aos-program-page) .recog-band__head h2 {
        font-family: var(--display);
        font-size: clamp(1.75rem, 3vw, 2.4rem);
        color: hsl(var(--aos-navy));
        letter-spacing: -0.02em;
        margin: 14px 0 12px;
        line-height: 1.08;
      }
      :where(.aos-home-page, .aos-program-page) .recog-band__head h2 em { font-style: italic; font-weight: 300; color: hsl(var(--aos-blue)); }
      :where(.aos-home-page, .aos-program-page) .recog-band__head p {
        font-size: 15px;
        line-height: 1.6;
        color: hsl(var(--fg-muted));
        margin: 0;
      }
      :where(.aos-home-page, .aos-program-page) .recog-band__grid, :where(.aos-home-page, .aos-program-page) .recog-band__grid.wp-block-group {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr);
        gap: 16px;
      }
      :where(.aos-home-page, .aos-program-page) .recog-band__grid > * { margin: 0 !important; }
      :where(.aos-home-page, .aos-program-page) .recog-tile, :where(.aos-home-page, .aos-program-page) .recog-tile.wp-block-group {
        padding: 28px 24px 24px;
        background: hsl(var(--paper));
        border: 1px solid hsl(var(--border-soft));
        border-radius: var(--r-lg);
        display: flex !important;
        flex-direction: column !important;
        gap: 14px;
        min-height: 220px;
        margin: 0 !important;
        transition: transform 260ms var(--ease-out), box-shadow 260ms var(--ease-out), border-color 260ms var(--ease-out);
      }
      :where(.aos-home-page, .aos-program-page) .recog-tile > * { margin: 0 !important; }
      :where(.aos-home-page, .aos-program-page) .recog-tile:hover {
        transform: translateY(-3px);
        box-shadow: var(--shadow-md);
        border-color: hsl(var(--border-strong));
      }
      :where(.aos-home-page, .aos-program-page) .recog-tile__badge {
        width: 56px; height: 56px;
        border-radius: 50%;
        display: grid; place-items: center;
        background: hsl(var(--aos-yellow) / 0.14);
        border: 1px solid hsl(var(--aos-yellow) / 0.4);
        color: hsl(var(--aos-navy));
        font-family: var(--display);
        font-size: 18px;
        line-height: 1;
        font-variation-settings: "opsz" 36;
      }
      :where(.aos-home-page, .aos-program-page) .recog-tile__badge--blue  { background: hsl(var(--aos-blue) / 0.10); border-color: hsl(var(--aos-blue) / 0.35); color: hsl(var(--aos-blue-deep)); }
      :where(.aos-home-page, .aos-program-page) .recog-tile__badge--rose  { background: hsl(var(--aos-rose) / 0.10); border-color: hsl(var(--aos-rose) / 0.35); color: hsl(var(--aos-rose)); }
      :where(.aos-home-page, .aos-program-page) .recog-tile__badge--green { background: hsl(152 58% 34% / 0.12); border-color: hsl(152 58% 34% / 0.35); color: hsl(152 58% 30%); }
      :where(.aos-home-page, .aos-program-page) .recog-tile__title {
        font-family: var(--display);
        font-size: 17px;
        line-height: 1.25;
        color: hsl(var(--aos-navy));
        margin: 0;
        letter-spacing: -0.01em;
        font-variation-settings: "opsz" 36;
      }
      :where(.aos-home-page, .aos-program-page) .recog-tile__title em { font-style: italic; font-weight: 300; color: hsl(var(--aos-blue)); }
      :where(.aos-home-page, .aos-program-page) .recog-tile__src {
        font-family: var(--body);
        font-size: 13px;
        line-height: 1.5;
        color: hsl(var(--fg-muted));
        flex: 1;
      }
      :where(.aos-home-page, .aos-program-page) .recog-tile__foot {
        padding-top: 14px;
        border-top: 1px solid hsl(var(--border-soft));
        font-family: var(--mono);
        font-size: 10.5px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: hsl(var(--aos-blue));
      }
      /* !important required because the base `.recog-band__grid.wp-block-group`
         rule uses !important to beat Gutenberg's auto block-layout rules; the
         media query overrides have to match that specificity to take effect. */
      @media (max-width: 900px) {
        :where(.aos-home-page, .aos-program-page) .recog-band__grid, :where(.aos-home-page, .aos-program-page) .recog-band__grid.wp-block-group { grid-template-columns: 1fr 1fr !important; }
      }
      @media (max-width: 560px) {
        :where(.aos-home-page, .aos-program-page) .recog-band__grid, :where(.aos-home-page, .aos-program-page) .recog-band__grid.wp-block-group { grid-template-columns: 1fr !important; }
      }
