@charset "UTF-8";

:root {
  --navy: #071b32;
  --navy-2: #0d2948;
  --blue: #1b5d9b;
  --sky: #87c5e6;
  --gold: #f4bf45;
  --red: #b82e3c;
  --cream: #f4f0e7;
  --paper: #fbfaf7;
  --ink: #0b1d2c;
  --muted: #5c6872;
  --line: rgba(9, 31, 51, .14);
  --shell: min(1380px, calc(100vw - 80px));
  --display: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --header-height: 96px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); line-height: 1.6; overflow-x: hidden; }
body.menu-open, body.lightbox-open { overflow: hidden; }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
::selection { color: #fff; background: var(--blue); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.shell { width: var(--shell); margin-inline: auto; }
.skip-link { position: fixed; z-index: 10000; left: 1rem; top: -5rem; padding: .8rem 1rem; color: #fff; background: var(--navy); border-radius: 4px; }
.skip-link:focus { top: 1rem; }

.intro { position: fixed; inset: 0; z-index: 9999; display: grid; place-content: center; justify-items: center; color: var(--ink); background: var(--paper); transition: opacity .7s ease, visibility .7s ease; }
.intro.is-done { opacity: 0; visibility: hidden; }
.intro-mark { position: relative; display: flex; align-items: baseline; gap: .25rem; font-family: var(--display); animation: introPulse 1.2s ease both; }
.intro-mark span { font-size: clamp(5rem, 12vw, 9rem); line-height: .8; }
.intro-mark i { color: var(--gold); font-size: 1.25rem; font-style: normal; letter-spacing: .3em; }
.intro-logo { width: min(520px, calc(100vw - 48px)); overflow: visible; background: transparent; animation: introPulse 1.2s ease both; }
.intro-logo img { width: 100%; height: auto; filter: drop-shadow(0 12px 30px rgba(0,0,0,.16)); }
.intro p { margin: 1.4rem 0 1rem; font-size: .74rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; }
.intro-line { width: 220px; height: 1px; overflow: hidden; background: rgba(255,255,255,.2); }
.intro-line span { display: block; width: 100%; height: 100%; background: var(--gold); transform: translateX(-100%); animation: introLoad 1.8s .15s ease forwards; }
@keyframes introLoad { to { transform: translateX(0); } }
@keyframes introPulse { from { opacity: 0; transform: scale(.9); } to { opacity: 1; transform: scale(1); } }

.page-wipe { position: fixed; inset: 0; z-index: 1500; pointer-events: none; background: var(--navy); transform: translateY(100%); }
.page-wipe.is-moving { animation: pageWipe .72s cubic-bezier(.77,0,.18,1); }
@keyframes pageWipe { 0% { transform: translateY(100%); } 45%,55% { transform: translateY(0); } 100% { transform: translateY(-100%); } }
.cursor-glow { position: fixed; z-index: 1400; width: 260px; height: 260px; border-radius: 50%; pointer-events: none; background: radial-gradient(circle, rgba(244,191,69,.12), transparent 68%); translate: -50% -50%; opacity: 0; transition: opacity .25s; mix-blend-mode: screen; }

.site-header { position: fixed; z-index: 1200; inset: 0 0 auto; color: #fff; background: linear-gradient(rgba(2,16,31,.42), transparent); box-shadow: none; transition: background .35s, box-shadow .35s, color .35s, transform .35s; }
.site-header.is-solid { color: var(--ink); background: rgba(251,250,247,.98); box-shadow: 0 10px 40px rgba(2,20,38,.1); backdrop-filter: blur(18px); }
.utility-bar { display: none; }
.utility-inner { min-height: 32px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.utility-inner p { margin: 0; opacity: .72; }
.utility-inner div { display: flex; gap: 1.4rem; }
.utility-inner a { opacity: .78; transition: opacity .2s; }
.utility-inner a:hover { opacity: 1; }
.nav-shell { min-height: var(--header-height); display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .85rem; flex-shrink: 0; }
.brand-logo { width: 175px; display: block; overflow: visible; background: transparent; }
.brand-logo img { width: 100%; height: auto; filter: drop-shadow(0 0 2px rgba(255,255,255,1)) drop-shadow(0 0 9px rgba(255,255,255,.35)) drop-shadow(0 5px 14px rgba(0,0,0,.25)); }
.brand-mark { position: relative; width: 50px; height: 50px; display: grid; place-items: center; color: #fff; background: var(--red); border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(255,255,255,.22); }
.brand-mark b { font-family: var(--display); font-size: 2rem; font-weight: 400; line-height: 1; transform: translateX(-3px); }
.brand-mark i { position: absolute; right: 4px; bottom: 11px; color: var(--gold); font-size: .48rem; font-style: normal; font-weight: 800; letter-spacing: -.04em; }
.brand-copy { display: flex; flex-direction: column; line-height: 1.15; }
.brand-copy strong { font-family: var(--display); font-size: 1.18rem; font-weight: 600; }
.brand-copy small { margin-top: .25rem; font-size: .57rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; opacity: .68; }
.primary-nav { display: flex; align-items: center; gap: clamp(.8rem, 1.5vw, 1.7rem); font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.primary-nav a { position: relative; padding: .65rem 0; }
.primary-nav a:not(.nav-cta)::after { content: ""; position: absolute; inset: auto 0 .25rem; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .3s; }
.primary-nav a:hover::after, .primary-nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.nav-cta { padding: .7rem 1rem !important; color: var(--navy); background: var(--gold); border-radius: 2px; }
.student-portal-link { display: inline-flex; align-items: center; gap: .3rem; padding: .48rem .68rem !important; color: #fff; border: 1px solid rgba(255,255,255,.7); border-radius: 3px; background: linear-gradient(135deg,#9d1723,#6f0e18); box-shadow: 0 0 0 0 rgba(196,35,52,.48); animation: portalPulse 2.2s ease-out infinite; font-size:.62rem; line-height:1.15; white-space:nowrap; }
.student-portal-link::after { display: none !important; }
.student-portal-link:hover { color: #fff; transform: translateY(-2px); background: linear-gradient(135deg,#b51b2a,#7d101c); }
.site-header.is-solid .student-portal-link { color: #fff; border-color: #981825; }
.student-portal-link b { font-size: .72rem; }
@keyframes portalPulse { 0% { box-shadow: 0 0 0 0 rgba(196,35,52,.52); } 65% { box-shadow: 0 0 0 11px rgba(196,35,52,0); } 100% { box-shadow: 0 0 0 0 rgba(196,35,52,0); } }
.menu-toggle { display: none; width: 50px; height: 50px; border: 0; background: transparent; cursor: pointer; }
.menu-toggle span { display: block; width: 25px; height: 1px; margin: 5px auto; background: currentColor; transition: .3s; }
.menu-toggle em { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.route-page { display: none; min-height: 65vh; }
.route-page.is-active { display: block; animation: routeIn .7s .28s both; }
@keyframes routeIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.eyebrow { margin: 0 0 1.3rem; color: var(--blue); font-size: .68rem; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; }
.eyebrow::before { content: ""; display: inline-block; width: 30px; height: 1px; margin: 0 .75rem .2rem 0; vertical-align: middle; background: currentColor; }
.eyebrow.light { color: var(--gold); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--display); font-weight: 400; letter-spacing: -.045em; line-height: .98; }
h1 em, h2 em { color: var(--gold); font-style: italic; font-weight: 400; }
h2 { margin-bottom: 1.5rem; font-size: clamp(2.9rem, 5vw, 5.8rem); }
.lead { color: var(--ink); font-size: clamp(1.18rem, 1.6vw, 1.55rem); line-height: 1.55; }
.section { padding: clamp(6rem, 10vw, 10rem) 0; }
.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: space-between; gap: 1.6rem; padding: .85rem 1.15rem; border: 1px solid transparent; font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; cursor: pointer; transition: transform .25s, background .25s, color .25s, border-color .25s; }
.button:hover { transform: translateY(-3px); }
.button span { font-size: 1rem; }
.button-gold { color: var(--navy); background: var(--gold); }
.button-portal { position: relative; overflow: visible; color: #fff; border: 1px solid rgba(255,255,255,.7); background: linear-gradient(135deg,#a81726,#710e19); box-shadow: 0 0 0 0 rgba(209,44,60,.55), 0 14px 35px rgba(64,4,12,.25); animation: portalPulse 2.2s ease-out infinite; }
.button-portal:hover { color: #fff; transform: translateY(-3px); background: linear-gradient(135deg,#bd1c2c,#84111e); }
.button-gold:hover { background: #ffd369; }
.button-ghost { color: #fff; border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.04); backdrop-filter: blur(8px); }
.button-ghost:hover { border-color: #fff; background: rgba(255,255,255,.12); }
.button-dark { color: #fff; background: var(--navy); }
.text-link { position: relative; display: inline-flex; align-items: center; gap: 1rem; margin-top: 1.1rem; padding-bottom: .35rem; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.text-link::after { content: ""; position: absolute; inset: auto 0 0; height: 1px; background: currentColor; transition: transform .3s; transform-origin: left; }
.text-link:hover::after { transform: scaleX(.35); }
.reveal { opacity: 0; transform: translateY(34px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1); }
.reveal.in-view { opacity: 1; transform: none; }

.hero { position: relative; min-height: 100svh; display: grid; align-items: end; overflow: hidden; color: #fff; background: var(--navy); }
.hero-media, .hero-shade { position: absolute; inset: 0; }
.hero-media video { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.hero-slide { position: absolute; inset: 0; margin: 0; }
.hero-slide { opacity: 0; transform: scale(1.04); transition: opacity 1.2s ease, transform 7s ease; }
.hero-slide.is-active { z-index: 1; opacity: 1; transform: scale(1.11); }
.hero-slide img { height: 100%; object-fit: cover; }
.hero-slide:nth-child(1) img { object-position: 54% center; }
.hero-shade { z-index: 2; background: linear-gradient(0deg, rgba(2,16,31,.82) 0%, rgba(2,16,31,.28) 42%, transparent 72%), linear-gradient(180deg, rgba(2,16,31,.32), transparent 24%); }
.hero-content { position: relative; z-index: 5; padding: 42vh 62% clamp(3.5rem, 7vh, 6rem) 0; }
.hero h1 { max-width: 560px; margin: 0 0 1rem; font-size: clamp(3.6rem, 5.4vw, 6.2rem); color: #fff; }
.hero-lead { max-width: 500px; color: rgba(255,255,255,.78); font-size: clamp(.92rem, 1.15vw, 1.08rem); line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.2rem; }
.hero-quote { position: absolute; z-index: 6; right: max(40px, calc((100vw - min(1380px, calc(100vw - 80px))) / 2)); top: 47%; width: min(29vw, 410px); padding-right: 1.35rem; color: #fff; border-right: 2px solid var(--gold); text-align: right; transform: translateY(-50%); }
.hero-quote small { display: block; margin-bottom: .8rem; color: var(--gold); font-size: .56rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.hero-quote p { margin: 0 0 .9rem; font-family: var(--display); font-size: clamp(2.15rem, 3vw, 3.65rem); line-height: .98; letter-spacing: -.035em; }
.hero-quote p em { color: var(--gold); font-style: italic; }
.hero-quote > span { display: block; margin-left: auto; max-width: 320px; color: rgba(255,255,255,.7); font-size: .78rem; line-height: 1.6; }
.hero-photo-note { position: absolute; z-index: 6; right: max(40px, calc((100vw - min(1380px, calc(100vw - 80px))) / 2)); top: 2.5rem; max-width: 260px; padding: .85rem 1rem; color: #fff; background: rgba(3,19,37,.72); backdrop-filter: blur(12px); }
.hero-photo-note small { display: block; margin-bottom: .15rem; color: var(--gold); font-size: .54rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.hero-photo-note strong { font-family: var(--display); font-size: 1rem; font-weight: 400; }
.hero-index { position: absolute; z-index: 6; right: max(40px, calc((100vw - min(1380px, calc(100vw - 80px))) / 2)); bottom: 2.5rem; display: flex; align-items: center; gap: .65rem; color: rgba(255,255,255,.76); font-size: .65rem; letter-spacing: .12em; }
.hero-index i { width: 80px; height: 1px; background: linear-gradient(90deg, var(--gold) 25%, rgba(255,255,255,.3) 25%); }
.hero-arrow, .hero-pause { width: 34px; height: 34px; display: grid; place-items: center; margin: 0 .25rem; color: #fff; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: transparent; cursor: pointer; transition: .2s; }
.hero-arrow:hover, .hero-pause:hover { border-color: var(--gold); color: var(--gold); }
.hero-pause { font-size: .6rem; }
.hero-film-controls { position: absolute; z-index: 7; right: max(40px, calc((100vw - min(1380px, calc(100vw - 80px))) / 2)); bottom: clamp(3.5rem, 7vh, 6rem); display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.hero-film-toggle { display: inline-flex; align-items: center; gap: .65rem; min-height: 42px; padding: 0 1rem; color: #fff; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; background: rgba(2,16,31,.2); backdrop-filter: blur(8px); font-size: .58rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.hero-film-toggle:hover { border-color: var(--gold); color: var(--gold); }
.scroll-cue { position: absolute; z-index: 6; left: 1.7rem; bottom: 3rem; display: flex; align-items: center; gap: .7rem; font-size: .55rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; writing-mode: vertical-rl; }
.scroll-cue span { width: 1px; height: 40px; background: var(--gold); animation: scrollCue 1.8s ease-in-out infinite; }
@keyframes scrollCue { 50% { transform: scaleY(.5); transform-origin: bottom; } }
.hero-orbit { position: absolute; z-index: 3; right: -15vw; top: 5vh; width: 55vw; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; animation: orbit 22s linear infinite; }
.hero-orbit::before, .hero-orbit::after { content: ""; position: absolute; inset: 12%; border: 1px solid rgba(255,255,255,.09); border-radius: inherit; }
.hero-orbit::after { inset: 28%; }
.hero-orbit span { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 20px var(--gold); }
.hero-orbit span:nth-child(1) { left: 14%; top: 16%; }.hero-orbit span:nth-child(2) { right: 7%; top: 45%; }.hero-orbit span:nth-child(3) { left: 40%; bottom: 0; }
@keyframes orbit { to { rotate: 360deg; } }

.quick-links { position: relative; z-index: 10; color: var(--ink); background: #fff; border-bottom: 1px solid var(--line); }
.quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.quick-grid a { position: relative; min-height: 130px; display: grid; align-content: center; padding: 1.7rem 2rem; border-right: 1px solid var(--line); transition: color .3s, background .3s; overflow: hidden; }
.quick-grid a:first-child { border-left: 1px solid var(--line); }
.quick-grid a:hover { color: #fff; background: var(--blue); }
.quick-grid small { color: var(--red); font-size: .6rem; font-weight: 800; letter-spacing: .15em; }
.quick-grid strong { margin: .4rem 0 .2rem; font-family: var(--display); font-size: 1.35rem; font-weight: 500; }
.quick-grid span { color: var(--muted); font-size: .75rem; }
.quick-grid a:hover span, .quick-grid a:hover small { color: rgba(255,255,255,.76); }
.quick-grid i { position: absolute; right: 1.4rem; top: 1.2rem; font-style: normal; opacity: .55; transition: transform .3s; }
.quick-grid a:hover i { transform: translate(4px,-4px); }

.photo-story { overflow: hidden; background: var(--paper); }
.photo-story .split-heading { margin-bottom: 3rem; }
.photo-collage { width: min(1680px, calc(100% - 40px)); margin: 0 auto; display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 150px; gap: 10px; }
.photo-collage figure { position: relative; margin: 0; overflow: hidden; background: var(--navy-2); }
.photo-collage img { height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.8,.2,1), filter .5s; }
.photo-collage figcaption { position: absolute; z-index: 2; inset: auto 0 0; padding: 3.5rem 1rem 1rem; color: #fff; background: linear-gradient(transparent, rgba(2,18,34,.78)); font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.photo-collage figure:hover img { transform: scale(1.055); filter: saturate(.88); }
.photo-a { grid-column: span 5; grid-row: span 3; }
.photo-b { grid-column: span 3; grid-row: span 2; }
.photo-c { grid-column: span 4; grid-row: span 3; }
.photo-d { grid-column: 6 / span 3; grid-row: 3 / span 2; }
.photo-e { grid-column: 1 / span 3; grid-row: 4 / span 2; }
.photo-f { grid-column: span 3; grid-row: span 2; }
.photo-g { grid-column: span 3; grid-row: span 2; }
.photo-h { grid-column: span 3; grid-row: span 2; }
.photo-story-link { display: flex; justify-content: flex-end; padding-top: 1.5rem; }

.legacy-section { background: var(--cream); }
.legacy-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 10vw; align-items: end; }
.legacy-copy { padding-bottom: 1rem; color: var(--muted); }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 7rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stats-grid article { min-height: 180px; display: grid; align-content: center; padding: 1.5rem; border-right: 1px solid var(--line); }
.stats-grid article:first-child { border-left: 1px solid var(--line); }
.stats-grid strong { color: var(--blue); font-family: var(--display); font-size: clamp(3rem, 5vw, 5rem); font-weight: 400; line-height: 1; }
.stats-grid span { margin-top: .8rem; color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.cinema-section { overflow: hidden; padding: clamp(2rem, 4vw, 4rem); color: #fff; background: var(--navy); }
.cinema-frame { position: relative; min-height: 78vh; display: grid; align-items: center; overflow: hidden; }
.cinema-frame > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; transition: transform 1.5s ease; }
.cinema-frame:hover > img { transform: scale(1.035); }
.cinema-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,20,39,.88), rgba(3,20,39,.18)), linear-gradient(0deg, rgba(3,20,39,.5), transparent); }
.cinema-copy { position: relative; z-index: 2; width: min(760px, 80%); margin-left: 8vw; }
.cinema-copy h2 { color: #fff; font-size: clamp(4rem, 8vw, 8rem); }
.play-link { display: inline-flex; align-items: center; gap: 1rem; font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.play-link span { width: 58px; height: 58px; display: grid; place-items: center; padding-left: .2rem; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; transition: .3s; }
.play-link:hover span { color: var(--navy); background: var(--gold); border-color: var(--gold); transform: scale(1.08); }
.cinema-caption { position: absolute; z-index: 2; inset: auto 2rem 1.5rem; display: flex; justify-content: space-between; font-size: .58rem; letter-spacing: .18em; text-transform: uppercase; }
.cinema-caption span { opacity: .65; }
.film-reel { margin: 1.5rem -4rem 0; padding: 12px 0; overflow: hidden; border-top: 1px dashed rgba(255,255,255,.25); border-bottom: 1px dashed rgba(255,255,255,.25); }
.film-track { width: max-content; display: flex; gap: 12px; animation: reel 32s linear infinite; }
.film-track img { width: 220px; height: 135px; object-fit: cover; filter: saturate(.8); }
@keyframes reel { to { transform: translateX(calc(-50% - 30px)); } }

.split-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: 8vw; align-items: end; margin-bottom: 5rem; }
.split-heading > p { max-width: 600px; color: var(--muted); font-size: 1.05rem; line-height: 1.8; }
.program-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.program-card { position: relative; min-height: 620px; display: flex; align-items: end; overflow: hidden; color: #fff; border-right: 1px solid rgba(255,255,255,.2); }
.program-card > span { position: absolute; z-index: 3; left: 1.4rem; top: 1.4rem; font-size: .65rem; font-weight: 800; letter-spacing: .12em; }
.program-card img { position: absolute; inset: 0; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.8,.2,1), filter .4s; }
.program-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(2,18,35,.94), rgba(2,18,35,.05) 65%); transition: background .4s; }
.program-card div { position: relative; z-index: 2; padding: 2rem; transform: translateY(52px); transition: transform .45s ease; }
.program-card small { color: var(--gold); font-size: .65rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.program-card h3 { margin: .6rem 0 1rem; font-family: var(--display); font-size: 2rem; font-weight: 400; line-height: 1.05; }
.program-card p { opacity: 0; color: rgba(255,255,255,.72); font-size: .82rem; line-height: 1.6; transition: opacity .35s; }
.program-card b { display: inline-block; opacity: 0; color: var(--gold); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; transition: opacity .35s; }
.program-card:hover img { transform: scale(1.07); filter: saturate(.7); }
.program-card:hover div { transform: none; }
.program-card:hover p, .program-card:hover b { opacity: 1; }

.tour-section { overflow: hidden; color: #fff; background: var(--navy); scroll-margin-top: 86px; }
.tour-grid { min-height: 700px; display: grid; grid-template-columns: .72fr 1.28fr; gap: 5vw; align-items: center; }
.tour-copy > p:not(.eyebrow) { max-width: 520px; color: rgba(255,255,255,.66); }
.tour-detail { margin-top: 3rem; padding: 1.5rem 0; border-top: 1px solid rgba(255,255,255,.2); }
.tour-detail span { color: var(--gold); font-size: .65rem; letter-spacing: .15em; }
.tour-detail h3 { margin: .55rem 0; font-family: var(--display); font-size: 1.9rem; font-weight: 400; }
.tour-detail p { max-width: 480px; color: rgba(255,255,255,.6); font-size: .84rem; }
.campus-map { position: relative; min-height: 650px; display: grid; place-items: center; }
.campus-map svg { width: 100%; max-width: 760px; filter: drop-shadow(0 30px 35px rgba(0,0,0,.3)); }
.building { stroke: rgba(255,255,255,.42); stroke-width: 1.5; }
.building.back { fill: #143a5e; }.building.side { fill: #0a213a; }.building.front { fill: url(#campusGlow); }
.windows { fill: rgba(244,191,69,.35); }
.court { fill: rgba(42,108,159,.25); stroke: rgba(255,255,255,.35); }.court-line { fill: none; stroke: rgba(255,255,255,.28); }
.map-route { fill: none; stroke: var(--gold); stroke-width: 2; stroke-dasharray: 7 10; animation: mapRoute 12s linear infinite; }
@keyframes mapRoute { to { stroke-dashoffset: -170; } }
.hotspot { position: absolute; left: var(--x); top: var(--y); width: 45px; height: 45px; display: grid; place-items: center; color: var(--navy); border: 0; border-radius: 50%; background: var(--gold); transform: translate(-50%,-50%); cursor: pointer; box-shadow: 0 0 0 0 rgba(244,191,69,.6); animation: hotspot 2.2s infinite; transition: transform .25s; }
.hotspot:hover, .hotspot.is-active { transform: translate(-50%,-50%) scale(1.18); }
.hotspot span { font-size: .72rem; font-weight: 900; }
@keyframes hotspot { 70% { box-shadow: 0 0 0 18px rgba(244,191,69,0); } 100% { box-shadow: 0 0 0 0 rgba(244,191,69,0); } }
.map-label { position: absolute; right: 0; bottom: 4rem; display: flex; align-items: center; gap: .7rem; color: rgba(255,255,255,.55); font-size: .58rem; letter-spacing: .16em; text-transform: uppercase; }
.map-label span { width: 24px; height: 1px; background: var(--gold); }

.stories-section { background: var(--cream); }
.stories-section .split-heading { align-items: center; }
.story-grid { display: grid; grid-template-columns: 1.4fr .8fr .8fr; gap: 1.4rem; }
.story-card { background: #fff; overflow: hidden; }
.story-card img { height: 310px; object-fit: cover; transition: transform .6s; }
.story-card.feature img { height: 430px; }
.story-card div { padding: 1.7rem; }
.story-card small { color: var(--blue); font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.story-card h3 { margin: .7rem 0 1rem; font-family: var(--display); font-size: clamp(1.4rem, 2vw, 2.3rem); font-weight: 400; line-height: 1.15; }
.story-card span { font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.story-card:hover img { transform: scale(1.045); }
.apply-banner { position: relative; min-height: 75vh; display: grid; align-items: center; color: #fff; overflow: hidden; }
.apply-banner > img, .apply-shade { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.apply-shade { background: linear-gradient(90deg, rgba(4,24,43,.94), rgba(4,24,43,.2)); }
.apply-copy { position: relative; z-index: 2; }
.apply-copy h2 { color: #fff; }
.apply-copy p { max-width: 580px; color: rgba(255,255,255,.75); font-size: 1.05rem; }

.page-hero { position: relative; min-height: clamp(620px, calc(82svh - var(--header-height)), 860px); margin-top: var(--header-height); display: grid; align-items: end; overflow: hidden; color: #fff; background: var(--navy); }
.page-hero > img, .page-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.page-hero > img { animation: pageHero 12s ease both; }
@keyframes pageHero { from { transform: scale(1.08); } to { transform: scale(1); } }
.page-hero-shade { background: linear-gradient(90deg, rgba(3,19,37,.92), rgba(3,19,37,.28)), linear-gradient(0deg, rgba(3,19,37,.7), transparent 50%); }
.page-hero .shell { position: relative; z-index: 2; padding-top: 5rem; padding-bottom: clamp(4rem, 7vw, 6.5rem); }
.page-hero h1, .page-intro h1 { max-width: 1000px; margin: 0 0 1.5rem; font-size: clamp(3.7rem, 6.6vw, 7rem); }
.page-hero .shell > p:last-child, .page-intro .shell > p:last-child { max-width: 700px; color: rgba(255,255,255,.72); font-size: 1.1rem; }
.academic-hero > img { object-position: center 35%; }
.editorial-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 11vw; }
.sticky-title { align-self: start; position: sticky; top: 160px; }
.editorial-copy { max-width: 720px; color: var(--muted); }
.editorial-copy blockquote { margin: 4rem 0 0; padding: 2.5rem 0 0 2.5rem; color: var(--ink); border-top: 1px solid var(--line); border-left: 4px solid var(--gold); font-family: var(--display); font-size: clamp(1.7rem, 3vw, 3rem); font-style: italic; line-height: 1.25; }
.editorial-copy cite { display: block; margin-top: 1rem; color: var(--blue); font-family: var(--sans); font-size: .62rem; font-style: normal; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.values-section, .clubs-section, .pathway-section, .documents-section { padding: clamp(6rem, 10vw, 10rem) 0; color: #fff; background: var(--navy); overflow: hidden; }
.values-section .split-heading > p, .pathway-section p, .documents-section p { color: rgba(255,255,255,.65); }
.values-wheel { position: relative; width: min(860px, 78vw); aspect-ratio: 1; margin: 6rem auto 2rem; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; }
.values-wheel::before, .values-wheel::after { content: ""; position: absolute; inset: 17%; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }.values-wheel::after { inset: 35%; }
.value-core { position: absolute; z-index: 3; inset: 50% auto auto 50%; width: 160px; height: 160px; display: grid; place-content: center; justify-items: center; background: var(--gold); color: var(--navy); border-radius: 50%; transform: translate(-50%,-50%); }
.value-core strong { font-family: var(--display); font-size: 3.4rem; line-height: .8; }.value-core span { font-size: .65rem; font-weight: 900; letter-spacing: .2em; }
.values-wheel article { --radius: min(37vw, 380px); position: absolute; left: 50%; top: 50%; width: 130px; text-align: center; transform: translate(-50%,-50%) rotate(var(--a)) translateY(calc(-1 * var(--radius))) rotate(calc(-1 * var(--a))); }
.values-wheel b { display: block; color: var(--gold); font-size: .65rem; letter-spacing: .1em; }.values-wheel p { margin: .25rem 0 0; color: #fff; font-family: var(--display); font-size: 1.1rem; line-height: 1.15; }
.leadership-card { display: grid; grid-template-columns: 1fr 1fr; background: var(--cream); }
.leadership-card img { height: 100%; min-height: 560px; object-fit: cover; }
.leadership-card > div { display: grid; align-content: center; padding: clamp(2.5rem, 7vw, 7rem); }
.leadership-card > div > p:not(.eyebrow) { color: var(--muted); }

.academic-pillars { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.academic-pillars article { min-height: 350px; padding: 3rem; border-right: 1px solid var(--line); }
.academic-pillars article:first-child { border-left: 1px solid var(--line); }
.academic-pillars span { color: var(--blue); font-size: .68rem; font-weight: 800; letter-spacing: .15em; }
.academic-pillars h3 { margin: 5rem 0 1rem; font-family: var(--display); font-size: 2.3rem; font-weight: 400; line-height: 1.1; }
.academic-pillars p { color: var(--muted); }
.pathway { position: relative; margin-top: 5rem; }
.pathway::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: linear-gradient(var(--gold), rgba(255,255,255,.1)); }
.pathway article { width: 50%; min-height: 210px; padding: 2rem 5rem 2rem 0; text-align: right; }
.pathway article:nth-child(even) { margin-left: 50%; padding: 2rem 0 2rem 5rem; text-align: left; }
.pathway b { display: block; color: #fff; font-family: var(--display); font-size: 2.3rem; font-weight: 400; }
.pathway span { color: var(--gold); font-size: .62rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.pathway p { margin-top: .8rem; }
.university-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: center; }
.destination-cloud { display: flex; flex-wrap: wrap; gap: .8rem; }
.destination-cloud span { padding: 1rem 1.4rem; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-family: var(--display); font-size: 1.15rem; transition: .25s; }
.destination-cloud span:hover { color: #fff; border-color: var(--blue); background: var(--blue); transform: translateY(-3px); }
.steps { position: relative; }
.steps::before { content: ""; position: absolute; left: 37px; top: 50px; bottom: 50px; width: 1px; background: var(--line); }
.steps article { position: relative; display: grid; grid-template-columns: 76px 1fr; gap: 2rem; padding: 1.6rem 0; }
.steps article > span { z-index: 1; width: 76px; height: 76px; display: grid; place-items: center; color: #fff; background: var(--blue); border-radius: 50%; font-size: .68rem; font-weight: 800; letter-spacing: .12em; }
.steps h3 { margin: .4rem 0; font-family: var(--display); font-size: 2rem; font-weight: 400; }
.steps p { max-width: 700px; color: var(--muted); }
.documents-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10vw; align-items: start; }
.documents-grid ul { margin: 0; padding: 0; list-style: none; }
.documents-grid li { display: flex; align-items: center; gap: 1rem; padding: 1.4rem 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.documents-grid li span { width: 34px; height: 34px; display: grid; place-items: center; flex-shrink: 0; color: var(--navy); background: var(--gold); border-radius: 50%; }
.tuition-card { display: grid; grid-template-columns: 1fr auto; gap: 3rem; align-items: center; padding: clamp(2rem, 5vw, 5rem); background: var(--cream); }
.tuition-card > div:first-child { max-width: 800px; }
.tuition-card > div:last-child { display: flex; flex-direction: column; align-items: stretch; gap: 1rem; text-align: center; }
.tuition-card p { color: var(--muted); }

.life-mosaic { display: grid; grid-template-columns: repeat(4,1fr); grid-auto-rows: 320px; gap: 1rem; }
.life-mosaic article { position: relative; overflow: hidden; color: #fff; }.life-mosaic article.wide { grid-column: span 2; }
.life-mosaic img { height: 100%; object-fit: cover; transition: transform .6s; }
.life-mosaic article::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(3,20,38,.85), transparent 65%); }
.life-mosaic article div { position: absolute; z-index: 2; inset: auto 1.5rem 1.3rem; }.life-mosaic small { color: var(--gold); font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.life-mosaic h3 { margin: .25rem 0 0; font-family: var(--display); font-size: 1.7rem; font-weight: 400; }
.life-mosaic article:hover img { transform: scale(1.06); }
.clubs-section .section-heading { margin-bottom: 4rem; }
.club-list { border-top: 1px solid rgba(255,255,255,.2); }
.club-list article { display: grid; grid-template-columns: 80px .8fr 1.2fr; gap: 2rem; align-items: center; padding: 2rem 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.club-list article > span { color: var(--gold); font-size: 2rem; }.club-list h3 { margin: 0; font-family: var(--display); font-size: 2rem; font-weight: 400; }.club-list p { margin: 0; color: rgba(255,255,255,.6); }
.quote-gallery .shell { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; align-items: center; }
.quote-gallery blockquote { margin: 0; color: var(--navy); font-family: var(--display); font-size: clamp(2.4rem, 4vw, 4.7rem); font-style: italic; line-height: 1.08; }
.photo-stack { position: relative; min-height: 680px; }.photo-stack img { position: absolute; width: 60%; height: 55%; object-fit: cover; box-shadow: 0 25px 60px rgba(5,27,49,.18); }.photo-stack img:nth-child(1) { left: 0; top: 5%; transform: rotate(-4deg); }.photo-stack img:nth-child(2) { right: 0; top: 20%; transform: rotate(5deg); }.photo-stack img:nth-child(3) { left: 18%; bottom: 0; transform: rotate(-1deg); }

.page-intro { position: relative; min-height: 68vh; display: grid; align-items: end; overflow: hidden; padding: 12rem 0 6rem; }
.page-intro.dark, .contact-intro { color: #fff; background: var(--navy); }
.page-intro.dark::after { content: ""; position: absolute; width: 58vw; height: 58vw; right: -12vw; bottom: -32vw; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; box-shadow: 0 0 0 9vw rgba(255,255,255,.025), 0 0 0 18vw rgba(255,255,255,.02); }
.page-intro .shell { position: relative; z-index: 2; }
.filter-bar { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 3rem; }
.filter-bar button { padding: .75rem 1.1rem; color: var(--muted); border: 1px solid var(--line); border-radius: 999px; background: transparent; font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: .25s; }
.filter-bar button:hover, .filter-bar button.is-active { color: #fff; border-color: var(--navy); background: var(--navy); }
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.news-card { background: #fff; box-shadow: 0 14px 40px rgba(5,27,49,.07); transition: opacity .3s, transform .3s; }
.news-card.is-hidden { display: none; }
.news-card.feature { grid-column: span 2; }
.news-card img { height: 320px; object-fit: cover; }.news-card.feature img { height: 480px; }
.news-card div { padding: 2rem; }.news-card small { color: var(--blue); font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.news-card h2 { margin: .75rem 0 1rem; font-size: 2.15rem; line-height: 1.08; }.news-card p { color: var(--muted); }.news-card a { font-size: .67rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

.gallery-intro { min-height: 64vh; color: var(--ink); background: var(--gold); }
.gallery-intro .eyebrow { color: var(--navy); }.gallery-intro .shell > p:last-child { color: rgba(7,27,50,.7); }
.gallery-intro h1 em { color: #fff; }
.marquee { position: absolute; left: 0; bottom: 0; width: max-content; display: flex; color: rgba(7,27,50,.16); font-family: var(--display); font-size: clamp(4rem, 8vw, 8rem); white-space: nowrap; line-height: .75; animation: marquee 22s linear infinite; }
@keyframes marquee { to { transform: translateX(-50%); } }
.gallery-tools { padding: 3rem 0; color: #fff; background: var(--navy); }
.gallery-tools .shell { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.filter-bar.light { margin: 0; }.filter-bar.light button { color: rgba(255,255,255,.65); border-color: rgba(255,255,255,.22); }.filter-bar.light button:hover, .filter-bar.light button.is-active { color: var(--navy); border-color: var(--gold); background: var(--gold); }
.upload-zone { display: grid; grid-template-columns: 54px 1fr; column-gap: 1rem; padding: 1.3rem; border: 1px dashed rgba(255,255,255,.35); cursor: pointer; transition: .25s; }.upload-zone:hover, .upload-zone.is-dragging { border-color: var(--gold); background: rgba(255,255,255,.05); }.upload-zone input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }.upload-zone > span { grid-row: span 2; width: 54px; height: 54px; display: grid; place-items: center; color: var(--navy); background: var(--gold); border-radius: 50%; font-size: 1.5rem; }.upload-zone strong { font-family: var(--display); font-size: 1.25rem; }.upload-zone small { color: rgba(255,255,255,.56); }
.gallery-section { background: var(--navy); }
.gallery-grid { display: grid; grid-template-columns: repeat(4,1fr); grid-auto-rows: 290px; gap: 3px; }
.gallery-item { position: relative; overflow: hidden; border: 0; padding: 0; background: var(--navy-2); cursor: zoom-in; }.gallery-item:nth-child(7n+1), .gallery-item:nth-child(11n+5) { grid-column: span 2; grid-row: span 2; }.gallery-item.is-hidden { display: none; }.gallery-item img { height: 100%; object-fit: cover; transition: transform .55s, filter .4s; }.gallery-item::after { content: attr(data-label); position: absolute; inset: auto 0 0; padding: 3.5rem 1rem 1rem; color: #fff; background: linear-gradient(transparent, rgba(2,18,34,.85)); font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-align: left; text-transform: uppercase; opacity: 0; transition: opacity .3s; }.gallery-item:hover img { transform: scale(1.06); filter: saturate(.8); }.gallery-item:hover::after, .gallery-item:focus-visible::after { opacity: 1; }
.lightbox { position: fixed; z-index: 5000; inset: 0; width: 100vw; max-width: none; height: 100vh; max-height: none; padding: 2rem; color: #fff; border: 0; background: rgba(2,14,27,.96); }.lightbox[open] { display: grid; grid-template-columns: 70px 1fr 70px; align-items: center; }.lightbox::backdrop { background: rgba(2,14,27,.85); }.lightbox figure { margin: 0; display: grid; justify-items: center; }.lightbox img { width: auto; max-width: min(1200px, 80vw); height: auto; max-height: 80vh; object-fit: contain; }.lightbox figcaption { margin-top: 1rem; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }.lightbox button { width: 54px; height: 54px; display: grid; place-items: center; color: #fff; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: transparent; cursor: pointer; }.lightbox-close { position: absolute; right: 2rem; top: 2rem; font-size: 1.5rem; }.lightbox-prev, .lightbox-next { justify-self: center; }

.contact-intro { background: linear-gradient(120deg, var(--navy), #164b76); }.contact-intro::after { content: ""; position: absolute; inset: 15% 5% auto auto; width: 34vw; height: 34vw; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 5vw rgba(255,255,255,.03), 0 0 0 10vw rgba(255,255,255,.02); }
.contact-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; }
.contact-details h2 { font-size: clamp(2.8rem,4vw,4.5rem); }
.contact-item { display: grid; grid-template-columns: 42px 1fr; gap: 1rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }.contact-item > span { color: var(--blue); font-size: .62rem; font-weight: 800; letter-spacing: .12em; }.contact-item small { color: var(--muted); font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.contact-item p { margin: .25rem 0 0; }
.contact-form { padding: clamp(2rem,4vw,4rem); color: #fff; background: var(--navy); }.form-heading { margin-bottom: 2.5rem; }.form-heading span { font-family: var(--display); font-size: 2.4rem; }.form-heading p { color: rgba(255,255,255,.55); font-size: .8rem; }.contact-form label { position: relative; display: block; margin: 0 0 1.35rem; color: rgba(255,255,255,.7); font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.contact-form input, .contact-form select, .contact-form textarea { width: 100%; margin-top: .45rem; padding: .9rem 0; color: #fff; border: 0; border-bottom: 1px solid rgba(255,255,255,.25); border-radius: 0; background: transparent; outline: 0; resize: vertical; }.contact-form select { color-scheme: dark; }.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--gold); }.contact-form .is-invalid input, .contact-form .is-invalid select, .contact-form .is-invalid textarea { border-color: #ff8792; }.field-error { display: none; margin-top: .35rem; color: #ffabb2; font-size: .58rem; letter-spacing: normal; text-transform: none; }.is-invalid .field-error { display: block; }.form-status { min-height: 1.5rem; margin: 1rem 0 0; color: var(--gold); font-size: .75rem; }
.map-band { position: relative; min-height: 560px; display: grid; align-items: center; overflow: hidden; color: #fff; background: var(--blue); }.map-band .shell { position: relative; z-index: 2; }.map-band p { color: var(--gold); font-size: .67rem; font-weight: 800; letter-spacing: .18em; }.map-band h2 { color: #fff; }.map-band a { display: inline-block; padding-bottom: .3rem; border-bottom: 1px solid; font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.map-pattern { position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.25) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.25) 1px, transparent 1px); background-size: 60px 60px; transform: perspective(600px) rotateX(45deg) scale(1.5); }.map-pattern span { position: absolute; width: 14px; height: 14px; border: 3px solid var(--gold); border-radius: 50%; animation: mapPulse 2s infinite; }.map-pattern span:nth-child(1){left:20%;top:35%}.map-pattern span:nth-child(2){left:70%;top:25%;animation-delay:.5s}.map-pattern span:nth-child(3){left:55%;top:68%;animation-delay:1s}.map-pattern span:nth-child(4){left:85%;top:78%;animation-delay:1.5s}@keyframes mapPulse{50%{transform:scale(2);opacity:.25}}

.site-footer { padding: 6rem 0 2rem; color: #fff; background: #041425; }
.footer-grid { display: grid; grid-template-columns: 1.5fr .65fr .65fr .8fr; gap: 5vw; padding-bottom: 5rem; }.footer-grid > div:first-child > p { max-width: 420px; margin-top: 1.7rem; color: rgba(255,255,255,.5); }.footer-grid h2 { margin-bottom: 1.2rem; color: var(--gold); font-family: var(--sans); font-size: .62rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }.footer-grid > div:not(:first-child) { display: flex; flex-direction: column; align-items: flex-start; gap: .65rem; }.footer-grid a, .footer-grid p { color: rgba(255,255,255,.65); font-size: .78rem; }.footer-grid a:hover { color: #fff; }.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.42); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }.footer-bottom p { margin: 0; }.footer-bottom button { color: inherit; border: 0; background: transparent; cursor: pointer; }
.toast { position: fixed; z-index: 6000; right: 1.5rem; bottom: 1.5rem; max-width: 380px; padding: 1rem 1.25rem; color: #fff; background: var(--navy); box-shadow: 0 18px 50px rgba(0,0,0,.25); transform: translateY(150%); transition: transform .35s; }.toast.is-visible { transform: none; }

@media (max-width: 1180px) {
  :root { --shell: min(100% - 44px, 1100px); --header-height: 90px; }
  .utility-bar { display: none; }
  .nav-shell { min-height: 78px; }
  .brand-logo { width: 150px; }
  .menu-toggle { display: block; position: relative; z-index: 5; }
  .primary-nav { position: fixed; inset: 0; z-index: 4; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: .4rem; padding: 8rem 10vw; color: #fff; background: var(--navy); transform: translateX(100%); transition: transform .55s cubic-bezier(.77,0,.18,1); }
  .primary-nav.is-open { transform: none; }
  .primary-nav a { font-family: var(--display); font-size: clamp(2rem, 5vw, 4rem); font-weight: 400; letter-spacing: -.02em; text-transform: none; }
  .primary-nav .nav-cta { margin-top: 1rem; padding: .7rem 1rem !important; color: var(--navy); font-family: var(--sans); font-size: .8rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
  .primary-nav .student-portal-link { margin-top: 1rem; padding: .8rem 1rem !important; color: #fff; font-family: var(--sans); font-size: .9rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
  .menu-open .menu-toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }.menu-open .menu-toggle span:nth-child(2) { opacity: 0; }.menu-open .menu-toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .menu-open .site-header { color: #fff; }
  .hero-quote { right: 1.4rem; width: min(31vw, 340px); }
  .quick-grid { grid-template-columns: 1fr 1fr; }
  .program-grid { grid-template-columns: 1fr 1fr; }.program-card { min-height: 540px; }
  .story-grid { grid-template-columns: 1fr 1fr; }.story-card.feature { grid-column: span 2; }
  .gallery-grid { grid-template-columns: repeat(3,1fr); }
  .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }.footer-grid > div:last-child { grid-column: 2 / 4; }
}

@media (max-width: 820px) {
  :root { --shell: min(100% - 32px, 740px); }
  .brand-logo { width: 140px; }
  .hero { min-height: 100svh; }.hero-content { padding: 48vh 18% 4rem 0; }.hero h1 { font-size: clamp(3.5rem, 11vw, 5.7rem); }.hero-quote { display: none; }.hero-film-controls { right: 1rem; bottom: 1.25rem; }.scroll-cue { display: none; }
  .photo-collage { width: calc(100% - 20px); grid-template-columns: repeat(2, 1fr); grid-auto-rows: 245px; }.photo-collage figure { grid-column: auto; grid-row: auto; }.photo-a, .photo-c, .photo-h { grid-column: span 2 !important; }
  .quick-grid { width: 100%; grid-template-columns: 1fr 1fr; }.quick-grid a { min-height: 140px; padding: 1.2rem; }
  .legacy-grid, .split-heading, .tour-grid, .editorial-grid, .leadership-card, .university-grid, .documents-grid, .quote-gallery .shell, .contact-grid, .gallery-tools .shell { grid-template-columns: 1fr; }
  .legacy-grid, .split-heading { gap: 2.5rem; }.sticky-title { position: static; }.stats-grid { grid-template-columns: 1fr 1fr; }.stats-grid article:nth-child(3) { border-left: 1px solid var(--line); }
  .cinema-section { padding: 1rem; }.cinema-frame { min-height: 700px; }.cinema-copy { width: calc(100% - 3rem); margin-left: 1.5rem; }.cinema-caption { display: none; }.film-reel { margin-inline: -1rem; }
  .program-card { min-height: 480px; }.program-card div { transform: none; }.program-card p, .program-card b { opacity: 1; }
  .tour-grid { padding-block: 2rem; }.campus-map { min-height: 520px; }.tour-copy { padding-top: 4rem; }
  .story-grid { grid-template-columns: 1fr; }.story-card.feature { grid-column: auto; }.story-card img, .story-card.feature img { height: 320px; }
  .values-wheel { width: 650px; max-width: none; margin-left: 50%; transform: translateX(-50%); }.values-wheel article { --radius: 285px; }
  .leadership-card img { min-height: 420px; }.academic-pillars { grid-template-columns: 1fr; }.academic-pillars article, .academic-pillars article:first-child { min-height: 250px; border: 0; border-bottom: 1px solid var(--line); }.academic-pillars h3 { margin-top: 2.5rem; }
  .life-mosaic { grid-template-columns: 1fr 1fr; }.life-mosaic article.wide { grid-column: span 2; }.club-list article { grid-template-columns: 50px 1fr; }.club-list article p { grid-column: 2; }
  .photo-stack { min-height: 620px; }.news-grid { grid-template-columns: 1fr; }.news-card.feature { grid-column: auto; }.news-card img, .news-card.feature img { height: 360px; }
  .gallery-tools .shell { gap: 2rem; }.gallery-grid { grid-template-columns: repeat(2,1fr); }.gallery-grid { grid-auto-rows: 240px; }
  .contact-grid { gap: 4rem; }.footer-grid { grid-template-columns: 1fr 1fr; }.footer-grid > div:first-child { grid-column: span 2; }.footer-grid > div:last-child { grid-column: auto; }.footer-bottom { flex-direction: column; }
}

@media (max-width: 560px) {
  :root { --shell: calc(100% - 24px); --header-height: 78px; }
  .section { padding-block: 5rem; }.nav-shell { min-height: 78px; }.brand-logo { width: 130px; }
  .hero { min-height: 100svh; }.hero-content { padding: 45vh 5% 7.25rem 0; }.hero h1 { font-size: 3.2rem; }.hero-lead { font-size: .86rem; }.hero-actions { margin-top: 1.25rem; }.hero .eyebrow { margin-bottom: .7rem; }.hero-film-controls { right: .75rem; bottom: .8rem; }
  .quick-grid { grid-template-columns: 1fr; }.quick-grid a { min-height: 105px; border-bottom: 1px solid var(--line); }
  .photo-collage { grid-auto-rows: 205px; }.photo-collage figure { grid-column: span 1 !important; }.photo-collage figure:nth-child(3n+1) { grid-column: span 2 !important; }
  h2 { font-size: 2.75rem; }.stats-grid { grid-template-columns: 1fr 1fr; }.stats-grid article { min-height: 145px; padding: 1rem; }.stats-grid strong { font-size: 3rem; }
  .cinema-frame { min-height: 630px; }.cinema-copy h2 { font-size: 3.8rem; }.film-track img { width: 165px; height: 105px; }
  .program-grid { grid-template-columns: 1fr; }.program-card { min-height: 500px; }
  .campus-map { min-height: 430px; }.hotspot { width: 38px; height: 38px; }.map-label { bottom: 1.5rem; }.apply-banner { min-height: 700px; }
  .page-hero { min-height: 620px; }.page-hero h1, .page-intro h1 { font-size: clamp(3rem, 15vw, 4.2rem); }.page-hero .shell { padding-top: 4rem; padding-bottom: 3.5rem; }
  .values-wheel { width: 510px; }.values-wheel article { --radius: 220px; width: 105px; }.values-wheel p { font-size: .85rem; }.value-core { width: 120px; height: 120px; }.value-core strong { font-size: 2.7rem; }
  .pathway::before { left: 10px; }.pathway article, .pathway article:nth-child(even) { width: 100%; margin-left: 0; padding: 1.4rem 0 1.4rem 2.5rem; text-align: left; }.pathway b { font-size: 1.8rem; }
  .tuition-card { grid-template-columns: 1fr; }.life-mosaic { display: block; }.life-mosaic article { height: 360px; margin-bottom: .75rem; }.club-list article { gap: .75rem; }.club-list h3 { font-size: 1.55rem; }
  .photo-stack { min-height: 500px; }.photo-stack img { height: 45%; }.filter-bar { gap: .35rem; }.filter-bar button { padding: .65rem .75rem; font-size: .55rem; }
.news-card img, .news-card.feature img { height: 280px; }.news-card h2 { font-size: 1.75rem; }
  .gallery-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 190px; }.gallery-item:nth-child(7n+1), .gallery-item:nth-child(11n+5) { grid-column: span 2; grid-row: span 2; }
  .lightbox { padding: 1rem; }.lightbox[open] { grid-template-columns: 45px 1fr 45px; }.lightbox button { width: 42px; height: 42px; }.lightbox-close { top: 1rem; right: 1rem; }
  .contact-form { padding: 1.4rem; }.footer-grid { grid-template-columns: 1fr; }.footer-grid > div:first-child, .footer-grid > div:last-child { grid-column: auto; }
}

@media (hover: hover) and (pointer: fine) { .cursor-glow { opacity: 1; } }
.uniform-intro{background:linear-gradient(115deg,rgba(7,27,50,.97),rgba(117,17,27,.93)),url('assets/photos/primary-class.webp') center/cover;color:#fff}.uniform-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:clamp(2rem,5vw,5rem);align-items:start}.uniform-heading h2,.uniform-order h2{font-family:var(--font-display,Georgia,serif);font-size:clamp(2rem,4vw,4rem);line-height:1;margin:.35rem 0 1rem}.uniform-heading>p:last-child{color:#5d6670;line-height:1.75}.uniform-dot{display:inline-block;width:.65rem;height:.65rem;border-radius:50%;margin:0 .25rem 0 .5rem}.uniform-dot.available{background:#168153}.uniform-dot.preorder{background:#b87919}.uniform-products{display:grid;gap:1rem;margin-top:2rem}.uniform-product{background:#fff;border:1px solid rgba(7,27,50,.12);padding:1.2rem;box-shadow:0 14px 45px rgba(7,27,50,.06)}.uniform-product h3{margin:0;font-size:1.2rem}.uniform-product>div>p{font-size:.83rem;color:#6f7780}.uniform-variants{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:1rem}.uniform-variant{background:#f6f4ef;border:1px solid transparent;padding:.8rem;text-align:left;display:flex;justify-content:space-between;gap:1rem;cursor:pointer;transition:.2s;color:#071b32}.uniform-variant:hover,.uniform-variant:focus-visible{border-color:#b99a54;transform:translateY(-2px)}.uniform-variant span{display:flex;flex-direction:column;gap:.2rem}.uniform-variant span:last-child{text-align:right;align-items:flex-end}.uniform-variant small{color:#6f7780}.uniform-variant em{font-size:.66rem;font-style:normal;text-transform:uppercase;letter-spacing:.08em}.uniform-variant em.available{color:#168153}.uniform-variant em.preorder{color:#9a6210}.uniform-order{position:sticky;top:9rem;background:#fff;padding:1.6rem;box-shadow:0 24px 70px rgba(7,27,50,.13)}.uniform-order-head{border-bottom:1px solid rgba(7,27,50,.12);margin-bottom:1rem}.uniform-order-head h2{font-size:2rem}.uniform-cart{display:grid;gap:.8rem;max-height:300px;overflow:auto}.uniform-empty,.uniform-loading,.uniform-error{padding:1.2rem;background:#f6f4ef;color:#667}.uniform-error{color:#8b1721}.uniform-cart-row{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.8rem;border-bottom:1px solid rgba(7,27,50,.1)}.uniform-cart-row>div:first-child{display:flex;flex-direction:column}.uniform-cart-row span{font-size:.76rem;color:#68717a}.uniform-qty{display:flex;align-items:center;gap:.35rem}.uniform-qty button{width:1.8rem;height:1.8rem;border:1px solid rgba(7,27,50,.18);background:#fff;cursor:pointer}.uniform-qty .remove{border:0;color:#8b1721}.uniform-total{display:flex;justify-content:space-between;padding:1rem 0;margin:1rem 0;border-top:2px solid #071b32;border-bottom:1px solid rgba(7,27,50,.12)}.uniform-order form{display:grid;gap:1rem}.uniform-order label{display:grid;gap:.4rem;font-size:.78rem;font-weight:700}.uniform-order input,.uniform-order textarea{width:100%;border:1px solid rgba(7,27,50,.22);padding:.8rem;font:inherit;background:#fff}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.uniform-consent{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;font-weight:400!important;line-height:1.5}.uniform-consent input{width:auto;margin-top:.2rem}.website-field{position:absolute!important;left:-9999px!important}.uniform-order .form-status{line-height:1.5;color:#7f1520}.uniform-section .button[disabled]{opacity:.55;cursor:wait}
.uniform-product{padding:0;display:grid;grid-template-columns:minmax(180px,.72fr) minmax(0,1.28fr);overflow:hidden}.uniform-product-image{min-height:310px;background:linear-gradient(145deg,#f4f1ea,#e7e0d3);display:grid;place-items:center;overflow:hidden}.uniform-product-image img{width:100%;height:100%;min-height:310px;object-fit:contain;padding:1rem;transition:transform .35s}.uniform-product:hover .uniform-product-image img{transform:scale(1.035)}.uniform-image-placeholder{display:flex;flex-direction:column;align-items:center;color:#7d1720}.uniform-image-placeholder span{font:700 1.5rem Georgia,serif}.uniform-image-placeholder small{color:#74716c}.uniform-product-body{padding:1.25rem}.uniform-product-title{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.uniform-product-title small{font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:#8b1721}.uniform-product-title h3{margin:.25rem 0 0;font-size:1.4rem}.uniform-product-title>strong{white-space:nowrap;color:#8b1721}.uniform-product-body>p{font-size:.83rem;color:#6f7780}
@media(max-width:900px){.uniform-layout{grid-template-columns:1fr}.uniform-order{position:static}.uniform-variants{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.uniform-product{grid-template-columns:1fr}.uniform-product-image,.uniform-product-image img{min-height:260px;max-height:340px}.uniform-product-title{align-items:flex-end}}
.uniform-intro{padding-top:clamp(8rem,13vw,11rem);padding-bottom:clamp(3rem,6vw,5rem)}.uniform-intro h1{font-size:clamp(2.8rem,6vw,5.8rem);line-height:.95}.uniform-layout{grid-template-columns:minmax(0,1fr) 350px;gap:2rem}.uniform-heading h2{font-size:clamp(2rem,3vw,3.1rem)}.uniform-heading>p:last-child{font-weight:600}.uniform-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.uniform-product{display:block;border-radius:4px}.uniform-product-image{height:230px;min-height:230px}.uniform-product-image img{height:230px;min-height:230px;max-height:230px;width:100%;object-fit:contain;padding:.45rem}.uniform-product-body{padding:1rem}.uniform-product-title{display:block}.uniform-product-title h3{font-size:1.2rem;margin:.1rem 0}.uniform-product-title>strong{display:block;margin-top:.35rem;font-size:.9rem}.uniform-instruction{margin:.75rem 0 .45rem!important;font-weight:700;color:#071b32!important}.uniform-variants{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;margin-top:0}.uniform-variant{padding:.6rem;display:block;text-align:center;border-color:rgba(7,27,50,.1)}.uniform-variant span,.uniform-variant span:last-child{align-items:center;text-align:center}.uniform-variant span:last-child{margin-top:.35rem}.uniform-variant strong{font-size:.78rem}.uniform-variant em{padding:.15rem .35rem;border-radius:20px;background:#fff}.uniform-order{top:6.5rem;padding:1.2rem}.uniform-order-head h2{font-size:1.55rem}.uniform-cart{max-height:220px}
@media(max-width:1050px){.uniform-layout{grid-template-columns:1fr}.uniform-order{position:static}.uniform-products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1450px){
  .uniform-section .shell{width:min(1180px,calc(100vw - 48px))}
  .uniform-layout{display:flex;flex-direction:column;gap:3rem}
  .uniform-catalog,.uniform-order{width:100%;min-width:0}
  .uniform-catalog{order:1;opacity:1;transform:none}
  .uniform-order{order:2;position:static;top:auto}
  .uniform-products{grid-template-columns:repeat(2,minmax(0,1fr))}
  .uniform-order form{max-width:none}
  .uniform-order input,.uniform-order textarea{min-width:0}
}
@media(max-width:800px){.uniform-products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.uniform-products{grid-template-columns:1fr}.uniform-product-image,.uniform-product-image img{height:260px;min-height:260px;max-height:260px}.uniform-variants{grid-template-columns:repeat(2,minmax(0,1fr))}.uniform-intro p{line-height:1.7}}
@media(max-width:560px){.uniform-variants,.field-pair{grid-template-columns:1fr}.uniform-variant{padding:.95rem}.uniform-cart-row{align-items:flex-start}}
@media(max-width:700px){.uniform-section .shell{width:calc(100vw - 24px)}.uniform-products{grid-template-columns:1fr}.uniform-order .field-pair{grid-template-columns:1fr}}
.home-facebook{background:#f4f1eb}.home-facebook .split-heading>div:last-child{align-self:end}.home-facebook .text-link{margin-top:1rem}.home-facebook-grid{margin-top:3rem}.facebook-feed-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.5rem}.facebook-feed-heading h2{margin:.25rem 0 0}.facebook-feed-heading>a{padding:.8rem 1rem;color:#fff;background:#1877f2;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.facebook-card small b{display:inline-grid;place-items:center;width:1.25rem;height:1.25rem;margin-right:.3rem;color:#fff;background:#1877f2;border-radius:50%;font-family:Arial,sans-serif;font-size:.9rem}.facebook-card h2,.facebook-card.feature h2{font-size:clamp(1.2rem,1.6vw,1.65rem);line-height:1.34;white-space:pre-line;overflow-wrap:anywhere}.facebook-card h2:dir(rtl),.facebook-card.feature h2:dir(rtl){font-family:Arial,"Tahoma",sans-serif;font-size:clamp(1.15rem,1.5vw,1.5rem);line-height:1.65;text-align:right}.facebook-placeholder{height:280px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#071b32,#1877f2)}.facebook-placeholder span{font-family:var(--display);font-size:2.5rem}.facebook-loading,.facebook-error{grid-column:1/-1;padding:2rem;background:#fff;color:#667}.facebook-error{color:#8b1721}.curated-news{padding-top:0}.home-facebook-grid .facebook-card.feature{grid-column:auto}.home-facebook-grid .facebook-card.feature img,.home-facebook-grid .facebook-card img{height:280px}.home-facebook-grid .facebook-card.feature h2,.home-facebook-grid .facebook-card h2{font-size:1.28rem;line-height:1.42}
@media(max-width:820px){.facebook-feed-heading{align-items:flex-start;flex-direction:column}.home-facebook-grid{grid-template-columns:1fr}.home-facebook-grid .facebook-card img{height:320px}}
@media (prefers-reduced-motion: reduce) { .student-portal-link, .button-portal { animation: none; } }
.drive-gallery-link{display:grid;grid-template-columns:54px 1fr;column-gap:1rem;padding:1.05rem 1.2rem;color:#fff;border:1px solid rgba(255,255,255,.3);transition:.25s}.drive-gallery-link:hover{border-color:var(--gold);background:rgba(255,255,255,.06)}.drive-gallery-link>span{grid-row:span 2;width:54px;height:54px;display:grid;place-items:center;color:var(--navy);background:var(--gold);border-radius:50%;font-size:1.25rem}.drive-gallery-link strong{align-self:end;font-family:var(--display);font-size:1.15rem}.drive-gallery-link small{color:rgba(255,255,255,.55)}
.alumni-hero{position:relative;min-height:100svh;display:grid;align-items:end;overflow:hidden;color:#fff;background:var(--navy)}.alumni-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%}.alumni-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,14,27,.86) 0%,rgba(2,14,27,.45) 48%,rgba(2,14,27,.12) 75%),linear-gradient(0deg,rgba(2,14,27,.75),transparent 55%)}.alumni-hero .shell{position:relative;z-index:2;padding-top:12rem;padding-bottom:clamp(4rem,8vw,7rem)}.alumni-hero h1{max-width:850px;margin:.4rem 0 1.5rem;color:#fff;font-size:clamp(4rem,9vw,8.5rem);line-height:.86}.alumni-hero h1 em{color:var(--gold)}.alumni-hero p:not(.eyebrow){max-width:680px;color:rgba(255,255,255,.8);font-size:1rem}.alumni-hero .button{margin-top:1.5rem}.alumni-intro{background:#fbfaf7}.alumni-gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:170px;padding:0 1rem 1rem;gap:1rem;background:#fbfaf7}.alumni-gallery figure{position:relative;grid-column:span 3;grid-row:span 3;margin:0;overflow:hidden;background:var(--navy)}.alumni-gallery figure:nth-child(2),.alumni-gallery figure:nth-child(6){grid-column:span 5}.alumni-gallery figure:nth-child(3),.alumni-gallery figure:nth-child(5){grid-column:span 4}.alumni-gallery figure:nth-child(1){grid-column:span 3}.alumni-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .55s}.alumni-gallery figure:hover img{transform:scale(1.04)}.alumni-gallery figcaption{position:absolute;inset:auto 0 0;padding:3rem 1rem 1rem;color:#fff;background:linear-gradient(transparent,rgba(2,14,27,.9));font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.alumni-rules{color:#fff;background:var(--navy)}.alumni-rules .section-heading{max-width:780px}.alumni-rules .section-heading>p:last-child{color:rgba(255,255,255,.6)}.alumni-rules-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:4rem;border-top:1px solid rgba(255,255,255,.15);border-left:1px solid rgba(255,255,255,.15)}.alumni-rules-grid article{min-height:270px;padding:2rem;border-right:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15)}.alumni-rules-grid span{color:var(--gold);font-size:.7rem;font-weight:800;letter-spacing:.12em}.alumni-rules-grid h3{margin:2.5rem 0 .7rem;color:#fff;font-family:var(--display);font-size:1.7rem}.alumni-rules-grid p{color:rgba(255,255,255,.58);font-size:.82rem}.alumni-rule-note{margin:2rem 0 0;color:rgba(255,255,255,.55);font-size:.75rem}.alumni-register{background:#f1eee7;scroll-margin-top:90px}.alumni-register-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(3rem,7vw,7rem);align-items:start}.alumni-register-grid h2{font-size:clamp(3rem,5vw,5.2rem)}.alumni-register-grid>div>p:not(.eyebrow){color:var(--muted)}.alumni-contact{display:flex;flex-direction:column;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}.alumni-contact a{color:var(--red)}#alumniForm{display:grid;gap:1rem;padding:clamp(1.4rem,4vw,3rem);background:#fff;box-shadow:0 20px 65px rgba(7,27,50,.1)}#alumniForm label{display:grid;gap:.45rem;color:var(--navy);font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}#alumniForm input,#alumniForm select,#alumniForm textarea{width:100%;padding:.85rem;border:1px solid rgba(7,27,50,.2);border-radius:0;background:#fff;font:inherit;letter-spacing:normal;text-transform:none;outline:0}#alumniForm input:focus,#alumniForm select:focus,#alumniForm textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(139,23,33,.08)}#alumniForm .alumni-check{display:flex;grid-template-columns:auto 1fr;align-items:flex-start;font-weight:500;line-height:1.5;letter-spacing:0;text-transform:none}#alumniForm .alumni-check input{width:auto;margin-top:.25rem}#alumniForm .form-status{color:var(--red);font-weight:700;line-height:1.5}
@media(max-width:1000px){.alumni-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:420px}.alumni-gallery figure,.alumni-gallery figure:nth-child(n){grid-column:span 1;grid-row:span 1}.alumni-rules-grid{grid-template-columns:repeat(2,1fr)}.alumni-register-grid{grid-template-columns:1fr}}
@media(max-width:600px){.alumni-hero{min-height:820px}.alumni-hero h1{font-size:3.7rem}.alumni-gallery{grid-template-columns:1fr;grid-auto-rows:470px}.alumni-rules-grid{grid-template-columns:1fr}.alumni-rules-grid article{min-height:220px}.alumni-register{padding-top:5rem}#alumniForm{padding:1.1rem}.alumni-register-grid .field-pair{grid-template-columns:1fr}}

/* Alumni cover clarity and approval form */
.alumni-hero{min-height:calc(100svh - 90px)}.alumni-hero>img{object-position:center 34%}.alumni-hero-shade{background:linear-gradient(90deg,rgba(2,14,27,.5) 0%,rgba(2,14,27,.1) 43%,transparent 72%),linear-gradient(0deg,rgba(2,14,27,.7),transparent 46%)}.alumni-hero .shell{padding-top:10rem;padding-bottom:clamp(2.5rem,5vw,4.5rem)}.alumni-hero-copy{max-width:650px;padding:clamp(1.35rem,3vw,2.2rem);background:rgba(3,20,36,.72);border-left:4px solid var(--gold);backdrop-filter:blur(8px)}.alumni-hero h1{max-width:620px;margin:.35rem 0 1rem;font-family:var(--sans);font-size:clamp(2.8rem,5.2vw,5.3rem);font-weight:800;letter-spacing:-.055em;line-height:.92}.alumni-hero h1 span{display:inline-block;margin-top:.2rem;color:var(--gold);font-weight:500;letter-spacing:-.04em}.alumni-hero p:not(.eyebrow){max-width:580px;margin-bottom:0;font-size:.92rem}.alumni-hero .button{margin-top:1.25rem}#alumniForm .alumni-photo-field{padding:1rem;border:1px dashed rgba(7,27,50,.3);background:#f7f5ef}#alumniForm .alumni-photo-field input{padding:.65rem;background:#fff}#alumniForm .alumni-photo-field small{color:var(--muted);font-size:.68rem;font-weight:500;letter-spacing:0;text-transform:none}.alumni-gallery .approved-alumni figcaption{text-transform:none;letter-spacing:.03em;font-size:.76rem}
@media(max-width:600px){.alumni-hero{min-height:760px}.alumni-hero>img{object-position:58% center}.alumni-hero-copy{max-width:92%;padding:1.2rem}.alumni-hero h1{font-size:2.75rem}.alumni-hero p:not(.eyebrow){font-size:.8rem}}

/* Real-photo immersive campus tour */
.campus-map.real-campus-entry{min-height:610px;padding:0;border:1px solid rgba(255,255,255,.16);background:#041425;overflow:hidden}.campus-launch{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;color:#fff;background:#041425;cursor:pointer;text-align:left;overflow:hidden}.campus-launch>img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .5s}.campus-launch-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,16,31,.9),transparent 60%),linear-gradient(90deg,rgba(2,16,31,.5),transparent 55%)}.campus-launch-copy{position:absolute;inset:auto 2rem 2rem;display:grid;max-width:520px}.campus-launch-copy small{color:var(--gold);font-size:.65rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.campus-launch-copy strong{font-family:var(--display);font-size:clamp(2.5rem,5vw,5rem);font-weight:400;line-height:1}.campus-launch-copy em{margin-top:.7rem;color:rgba(255,255,255,.65);font-size:.72rem;font-style:normal;letter-spacing:.08em;text-transform:uppercase}.campus-launch-copy b{position:absolute;right:-5rem;bottom:0;width:64px;height:64px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.6);border-radius:50%;font-size:.75rem;box-shadow:0 0 0 0 rgba(244,191,69,.5);animation:hotspot 2.2s infinite}.campus-launch:hover>img{transform:scale(1.055);filter:saturate(1.08)}.campus-3d-dialog{width:100vw;max-width:none;height:100svh;max-height:none;margin:0;padding:0;border:0;background:#020c16;color:#fff;overflow:hidden}.campus-3d-dialog::backdrop{background:#020c16}.campus-3d-view{position:relative;width:100%;height:100%;overflow:hidden}.campus-depth{position:absolute;inset:-4%;transform:scale(1.04);transition:transform .35s ease,opacity .22s}.campus-depth.is-changing{opacity:.12;transform:scale(1.12)}.campus-depth img{width:100%;height:100%;object-fit:cover}.campus-depth::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,10,19,.88),rgba(1,10,19,.2) 48%,rgba(1,10,19,.1)),linear-gradient(0deg,rgba(1,10,19,.85),transparent 52%)}.campus-depth-glow{position:absolute;z-index:1;inset:0;background:radial-gradient(circle at 72% 38%,rgba(244,191,69,.12),transparent 30%);mix-blend-mode:screen}.campus-3d-close{position:absolute;z-index:5;right:1.5rem;top:1.5rem;width:52px;height:52px;color:#fff;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(2,16,31,.45);font-size:2rem;cursor:pointer}.campus-3d-copy{position:absolute;z-index:3;left:clamp(1.5rem,5vw,5rem);top:clamp(4rem,12vh,8rem);max-width:620px}.campus-3d-copy small{color:var(--gold);font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.campus-3d-copy h2{margin:.5rem 0 1rem;color:#fff;font-size:clamp(3.5rem,7vw,7.5rem);line-height:.9}.campus-3d-copy p{max-width:520px;color:rgba(255,255,255,.72)}.campus-3d-copy>span{display:block;margin-top:1.5rem;color:rgba(255,255,255,.45);font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.campus-scene-nav{position:absolute;z-index:4;right:clamp(1.5rem,4vw,4rem);bottom:clamp(2rem,6vh,5rem);width:min(390px,35vw);display:grid}.campus-scene-nav button{display:grid;grid-template-columns:42px 1fr;gap:.8rem;padding:.75rem 0;color:rgba(255,255,255,.55);border:0;border-bottom:1px solid rgba(255,255,255,.2);background:transparent;text-align:left;cursor:pointer;transition:.25s}.campus-scene-nav button span{color:var(--gold);font-size:.65rem}.campus-scene-nav button.is-active,.campus-scene-nav button:hover{color:#fff;padding-left:.6rem}.campus-progress{position:absolute;z-index:5;inset:auto 0 0;height:4px;background:rgba(255,255,255,.15)}.campus-progress i{display:block;height:100%;background:var(--gold);transition:width .45s}.campus-tour-open{overflow:hidden}
@media(max-width:800px){.campus-map.real-campus-entry{min-height:520px}.campus-launch-copy{inset:auto 1.25rem 1.5rem}.campus-launch-copy b{right:0;bottom:4.6rem}.campus-3d-copy{top:5rem;left:1.25rem;right:1.25rem}.campus-3d-copy h2{font-size:3.6rem}.campus-3d-copy p{font-size:.8rem}.campus-scene-nav{left:1.25rem;right:1.25rem;bottom:1.5rem;width:auto;grid-template-columns:repeat(3,1fr);gap:.35rem}.campus-scene-nav button{display:block;padding:.65rem;border:1px solid rgba(255,255,255,.2);font-size:.6rem}.campus-scene-nav button span{display:block;margin-bottom:.2rem}.campus-scene-nav button.is-active{padding-left:.65rem;border-color:var(--gold)}.campus-3d-copy>span{display:none}}

/* Fast first-person campus walk */
.campus-depth{transition:transform .65s cubic-bezier(.16,.8,.2,1),opacity .3s,filter .35s}
.campus-depth.is-changing{opacity:.28;transform:scale(1.42)!important;filter:blur(8px)}
.campus-depth.is-walking{animation:campusFastWalk 1.15s cubic-bezier(.12,.72,.18,1) both}
@keyframes campusFastWalk{0%{transform:scale(1.2) translate3d(0,0,0)}24%{transform:scale(1.28) translate3d(-.5%,.35%,0)}46%{transform:scale(1.36) translate3d(.6%,-.3%,0)}72%{transform:scale(1.42) translate3d(-.35%,.2%,0)}100%{transform:scale(1.48) translate3d(0,0,0)}}
.campus-speed-lines{position:absolute;z-index:2;inset:0;pointer-events:none;opacity:0;background:repeating-radial-gradient(ellipse at center,transparent 0 18%,rgba(255,255,255,.14) 19%,transparent 20% 27%);mix-blend-mode:screen}
.campus-depth.is-changing .campus-speed-lines{animation:campusSpeedLines .75s ease both}
@keyframes campusSpeedLines{0%{opacity:0;transform:scale(.5)}45%{opacity:.8}100%{opacity:0;transform:scale(2.2)}}
.campus-walk-controls{position:absolute;z-index:6;left:50%;bottom:2rem;display:flex;gap:.45rem;transform:translateX(-50%)}
.campus-walk-controls button{min-width:48px;height:44px;padding:0 1rem;color:#fff;border:1px solid rgba(255,255,255,.42);background:rgba(2,16,31,.7);backdrop-filter:blur(12px);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.campus-walk-controls button:hover{color:#041425;background:var(--gold);border-color:var(--gold)}
@media(max-width:800px){.campus-walk-controls{bottom:8.1rem}.campus-walk-controls button{height:40px}.campus-depth.is-walking{animation-duration:.9s}}
@media(prefers-reduced-motion:reduce){.campus-depth.is-walking,.campus-depth.is-changing .campus-speed-lines{animation:none}.campus-depth.is-changing{filter:none}}

/* Cinematic drone-flight treatment */
.campus-3d-view{perspective:1200px;background:#020811}
.campus-depth{inset:-10%;transform-origin:center;will-change:transform,filter;animation:campusDroneHover 7s ease-in-out infinite alternate}
.campus-depth.is-walking{animation:campusDroneFlight 3.7s cubic-bezier(.16,.72,.18,1) both}
.campus-depth.is-changing{opacity:.45;transform:translate3d(0,3%,180px) rotateZ(-1.2deg) scale(1.38)!important;filter:blur(6px) saturate(1.2)}
.campus-depth.is-paused{animation-play-state:paused}
@keyframes campusDroneHover{0%{transform:translate3d(-1.8%,-1%,0) rotateZ(-.45deg) scale(1.11)}50%{transform:translate3d(.5%,1%,0) rotateZ(.15deg) scale(1.17)}100%{transform:translate3d(1.8%,-.4%,0) rotateZ(.5deg) scale(1.22)}}
@keyframes campusDroneFlight{0%{transform:translate3d(-2%,2%,0) rotateZ(-.8deg) scale(1.1)}30%{transform:translate3d(1%,-1%,70px) rotateZ(.45deg) scale(1.2)}65%{transform:translate3d(-.4%,-2%,135px) rotateZ(-.2deg) scale(1.3)}100%{transform:translate3d(1.4%,0,190px) rotateZ(.55deg) scale(1.39)}}
.campus-speed-lines{background:radial-gradient(ellipse at center,transparent 0 48%,rgba(255,255,255,.12) 72%,transparent 74%);filter:blur(2px)}
.campus-drone-hud{position:absolute;z-index:4;inset:1.5rem;pointer-events:none;color:rgba(255,255,255,.72);font-size:.58rem;font-weight:800;letter-spacing:.14em}
.drone-rec{position:absolute;left:0;top:0;display:flex;align-items:center;gap:.5rem}.drone-rec i{width:8px;height:8px;border-radius:50%;background:#f52e3e;box-shadow:0 0 12px #f52e3e;animation:droneRec 1.1s steps(1) infinite}
.drone-alt{position:absolute;right:4.7rem;top:.8rem}.drone-focus{position:absolute;left:50%;top:50%;width:70px;height:48px;border:1px solid rgba(255,255,255,.32);transform:translate(-50%,-50%)}
.drone-focus:before,.drone-focus:after{content:"";position:absolute;background:rgba(255,255,255,.4)}.drone-focus:before{left:50%;top:-10px;width:1px;height:68px}.drone-focus:after{left:-10px;top:50%;width:90px;height:1px}
@keyframes droneRec{50%{opacity:.25}}
@media(max-width:800px){.campus-drone-hud{inset:1rem}.drone-alt{display:none}.drone-focus{width:52px;height:36px}.campus-depth.is-walking{animation-duration:3.2s}}

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

/* Digital school magazine */
.magazine-intro{position:relative;overflow:hidden;background:linear-gradient(115deg,#031b30 0%,#073b62 58%,#0b5e91 100%)}
.magazine-intro:after{content:"M";position:absolute;right:3vw;bottom:-.3em;color:rgba(255,255,255,.045);font-family:var(--display);font-size:clamp(16rem,34vw,36rem);line-height:.7;pointer-events:none}
.magazine-intro .shell{position:relative;z-index:1}
.magazine-section{padding-inline:0;background:#f5f3ef}
.magazine-section>.shell{width:calc(100vw - 56px);max-width:1760px}
.magazine-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2rem}
.magazine-heading h2{margin:.35rem 0 0;font-size:clamp(2.2rem,4vw,4.8rem);line-height:.95}
.magazine-reader{position:relative;display:block;width:100%!important;max-width:none!important;height:calc(100svh - 180px)!important;min-height:720px;overflow:hidden;border:1px solid rgba(3,27,48,.16);background:#071b32;box-shadow:0 30px 80px rgba(4,24,42,.18)}
.magazine-reader:before{content:"Loading magazine…";position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.65);font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.magazine-reader iframe{position:absolute;z-index:1;inset:0;display:block;width:100%!important;max-width:none!important;height:100%!important;min-height:720px;border:0;background:#fff}
.magazine-note{margin:1rem 0 0;color:#61707c;font-size:.78rem;text-align:center}
@media(max-width:800px){.magazine-section>.shell{width:calc(100vw - 24px)}.magazine-heading{align-items:start;flex-direction:column}.magazine-reader{height:78svh!important;min-height:560px}.magazine-reader iframe{min-height:560px}.magazine-actions,.magazine-actions .button{width:100%}.magazine-actions .button{justify-content:center}}
