@font-face { font-family: "DM Sans"; src: url("assets/dm-sans-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("assets/dm-sans-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("assets/dm-sans-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("assets/dm-sans-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }

:root {
  --black: #050505;
  --black-2: #0d0d0e;
  --graphite: #1b1b1d;
  --steel: #76777a;
  --line-dark: rgba(255,255,255,.17);
  --line-light: rgba(5,5,5,.18);
  --white: #f4f4f2;
  --pure: #fff;
  --shell: min(1440px, calc(100vw - 150px));
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--black); overflow-x: hidden; }
body { margin: 0; color: var(--black); background: var(--white); font-family: var(--sans); font-size: 16px; line-height: 1.65; overflow-x: hidden; }
img, video { display: block; max-width: 100%; }
a { color: inherit; }
button, input { font: inherit; }
button { color: inherit; }
::selection { color: var(--black); background: var(--pure); }

.page-progress { position: fixed; z-index: 120; inset: 0 0 auto; height: 3px; background: rgba(255,255,255,.07); }
.page-progress span { display: block; width: 100%; height: 100%; background: var(--pure); transform: scaleX(0); transform-origin: left; }
.topbar { position: fixed; z-index: 100; inset: 3px 0 auto; height: 78px; display: grid; grid-template-columns: 120px 1fr 120px; align-items: center; padding: 0 42px; color: var(--pure); border-bottom: 1px solid var(--line-dark); background: rgba(5,5,5,.78); backdrop-filter: blur(18px); }
.monogram { text-decoration: none; font-size: 15px; font-weight: 700; letter-spacing: .16em; }
.monogram span { margin: 0 7px; color: var(--steel); }
.topnav { justify-self: center; display: flex; align-items: center; gap: clamp(20px,3vw,50px); }
.topnav a { position: relative; padding: 8px 0; text-transform: uppercase; text-decoration: none; font-size: 10px; font-weight: 700; letter-spacing: .16em; color: rgba(255,255,255,.62); }
.topnav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1px; background: var(--pure); transition: right .28s ease; }
.topnav a:hover, .topnav a:focus-visible { color: var(--pure); }
.topnav a:hover::after, .topnav a:focus-visible::after { right: 0; }
.menu-toggle { display: none; justify-self: end; border: 0; background: none; color: var(--pure); }
.section-rail { position: fixed; z-index: 80; left: 0; top: 81px; bottom: 0; width: 68px; display: flex; flex-direction: column; justify-content: center; gap: 25px; color: var(--pure); border-right: 1px solid rgba(255,255,255,.11); background: rgba(5,5,5,.5); backdrop-filter: blur(12px); }
.section-rail a { position: relative; display: flex; align-items: center; gap: 15px; width: 180px; text-decoration: none; text-transform: uppercase; font-size: 9px; font-weight: 700; letter-spacing: .14em; color: rgba(255,255,255,.38); transform: rotate(-90deg) translateY(-56px); transform-origin: left center; }
.section-rail a span { color: rgba(255,255,255,.8); }
.section-rail a:hover, .section-rail a:focus-visible { color: var(--pure); }

.hero { --mx: 72%; --my: 38%; position: relative; min-height: 100svh; padding-left: 68px; color: var(--pure); background: radial-gradient(circle at var(--mx) var(--my), #38383a 0, #171718 25%, var(--black) 58%); isolation: isolate; overflow: hidden; }
.hero-grid { position: absolute; z-index: -2; inset: 81px 0 0 68px; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 7.5vw 7.5vw; mask-image: linear-gradient(90deg,#000,rgba(0,0,0,.22) 70%,transparent); }
.spotlight { position: absolute; z-index: -1; width: 48vw; height: 115vh; right: 1vw; top: 3vh; background: linear-gradient(125deg, rgba(255,255,255,.21), rgba(255,255,255,.018) 47%, transparent 48%); clip-path: polygon(39% 0, 100% 0, 78% 100%, 0 100%); opacity: .5; }
.chem-code { position: absolute; z-index: 0; text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: .34em; color: rgba(255,255,255,.24); writing-mode: vertical-rl; }
.chem-a { left: 8.5%; top: 18%; }
.chem-b { right: 3%; top: 19%; }
.hero-copy { position: relative; z-index: 5; width: min(57vw,920px); min-height: 100svh; display: flex; flex-direction: column; justify-content: center; padding: 140px 0 145px max(44px,calc((100vw - 1540px)/2)); }
.eyebrow { margin: 0 0 28px; text-transform: uppercase; font-size: 11px; font-weight: 700; letter-spacing: .2em; color: rgba(255,255,255,.52); }
.eyebrow span { display: inline-block; margin-right: 18px; padding: 5px 9px; color: var(--black); background: var(--pure); }
.eyebrow.dark { color: #616164; }
.hero h1 { margin: 0; max-width: 880px; text-transform: uppercase; font-size: clamp(76px,8.2vw,158px); line-height: .78; letter-spacing: -.075em; }
.hero h1 span, .hero h1 strong { display: block; font-weight: 700; }
.hero h1 span:nth-child(2) { margin: .18em 0 .28em 8vw; color: #8b8b8e; font-size: .54em; line-height: 1; letter-spacing: .015em; }
.hero h1 strong { margin-left: 1.8vw; -webkit-text-stroke: 1px rgba(255,255,255,.72); color: transparent; }
.hero-statement { width: min(440px,90%); margin: 38px 0 0 9vw; padding-left: 22px; border-left: 1px solid rgba(255,255,255,.42); }
.hero-statement p { margin: 0 0 20px; color: rgba(255,255,255,.62); font-size: 18px; }
.hero-statement a { display: inline-flex; align-items: center; gap: 30px; padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.58); text-transform: uppercase; text-decoration: none; font-size: 10px; font-weight: 700; letter-spacing: .18em; }
.hero-portrait { position: absolute; z-index: 3; right: 1.5vw; bottom: 0; width: min(43vw,720px); height: calc(100% - 81px); margin: 0; display: flex; justify-content: center; align-items: flex-end; pointer-events: none; }
.hero-portrait img { position: relative; z-index: 2; width: 100%; max-height: 94%; object-fit: contain; object-position: bottom center; filter: contrast(1.04) saturate(1.02) drop-shadow(-25px 22px 26px rgba(0,0,0,.72)); }
.portrait-shadow { position: absolute; z-index: 1; width: 57%; height: 68%; bottom: 4%; border-radius: 50%; background: #000; filter: blur(28px); opacity: .78; transform: translateX(-10%); }
.hero-portrait figcaption { position: absolute; z-index: 4; right: 10px; bottom: 102px; display: grid; gap: 4px; text-transform: uppercase; text-align: right; font-size: 9px; font-weight: 700; letter-spacing: .16em; color: rgba(255,255,255,.42); }
.hero-portrait figcaption span { color: var(--pure); }
.hero-footer { position: absolute; z-index: 7; left: 105px; right: 42px; bottom: 25px; display: flex; justify-content: space-between; gap: 20px; text-transform: uppercase; font-size: 9px; font-weight: 700; letter-spacing: .19em; color: rgba(255,255,255,.4); }

.section-shell { width: var(--shell); margin-inline: auto; }
.light-section { margin-left: 68px; background: var(--white); }
.dark-section { margin-left: 68px; color: var(--pure); background: var(--black); }
.section-code { display: flex; align-items: center; gap: 18px; }
.section-code span { font-size: 40px; font-weight: 700; letter-spacing: -.06em; }
.section-code p { margin: 0; text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: .18em; color: #67676a; }
h2 { margin: 0; text-transform: uppercase; font-size: clamp(60px,7.1vw,128px); line-height: .84; letter-spacing: -.07em; }
h2 em { font-style: normal; font-weight: 500; color: #8b8b8e; }

.profile { min-height: 980px; display: grid; grid-template-columns: 125px 1fr .9fr; gap: clamp(35px,5vw,90px); align-items: center; padding: 145px max(44px,calc((100vw - 1540px)/2)); }
.profile .section-code { align-self: start; padding-top: 15px; }
.profile-title h2 { font-size: clamp(70px,7vw,122px); }
.profile-copy { max-width: 620px; }
.profile-copy .lead { margin-top: 0; font-size: clamp(25px,2.1vw,36px); line-height: 1.3; font-weight: 600; }
.profile-copy p:not(.lead) { color: #4f4f52; font-size: 17px; }
.profile-quote { grid-column: 2/4; margin: 30px 0 0; padding: 34px 0 0; border-top: 1px solid var(--line-light); font-size: clamp(25px,2.4vw,42px); line-height: 1.28; font-weight: 500; }

.education { padding: 150px 0 135px; }
.education-head { display: grid; grid-template-columns: 1.15fr .6fr; gap: 80px; align-items: end; }
.education-head > p { max-width: 500px; margin: 0 0 10px; color: rgba(255,255,255,.54); font-size: 18px; }
.education-line { position: relative; display: grid; grid-template-columns: repeat(5,1fr); gap: 0; margin-top: 95px; border-top: 1px solid var(--line-dark); }
.education-stop { position: relative; min-height: 300px; padding: 42px 28px 28px 0; border-right: 1px solid var(--line-dark); }
.education-stop::before { content: ""; position: absolute; width: 9px; height: 9px; top: -5px; left: 0; border: 1px solid var(--pure); background: var(--black); transform: rotate(45deg); }
.education-stop span { font-size: 10px; font-weight: 700; letter-spacing: .18em; color: rgba(255,255,255,.34); }
.education-stop p { margin: 46px 0 12px; text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: .15em; color: rgba(255,255,255,.42); }
.education-stop h3 { margin: 0 0 14px; max-width: 220px; font-size: 22px; line-height: 1.2; }
.education-stop small { color: rgba(255,255,255,.48); font-size: 13px; }
.education-note { display: grid; grid-template-columns: 160px 1fr; gap: 40px; padding-top: 45px; border-top: 1px solid var(--line-dark); }
.education-note span { text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: .18em; color: rgba(255,255,255,.38); }
.education-note p { max-width: 920px; margin: 0; color: rgba(255,255,255,.64); font-size: 19px; }

.practice { margin-left: 68px; display: grid; grid-template-columns: .9fr 1.1fr; min-height: 920px; color: var(--black); background: var(--pure); }
.practice-panel { padding: 145px clamp(38px,6vw,110px); }
.practice-intro { position: relative; display: flex; flex-direction: column; justify-content: center; color: var(--pure); background: #171719; overflow: hidden; }
.practice-intro::after { content: ""; position: absolute; right: -17%; bottom: -21%; width: 65%; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.17); border-radius: 50%; box-shadow: 0 0 0 55px rgba(255,255,255,.025), 0 0 0 110px rgba(255,255,255,.018); }
.practice-intro .eyebrow { color: rgba(255,255,255,.52); }
.practice-intro h2 { position: relative; z-index: 1; font-size: clamp(64px,6vw,110px); }
.practice-meta { position: relative; z-index: 1; display: grid; grid-template-columns: 120px 1fr; gap: 10px 25px; margin-top: 60px; padding-top: 28px; border-top: 1px solid var(--line-dark); }
.practice-meta span { text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: .16em; color: rgba(255,255,255,.35); }
.practice-meta strong { font-size: 15px; }
.practice-body { display: flex; flex-direction: column; justify-content: center; }
.practice-body .lead { font-size: clamp(26px,2.4vw,40px); line-height: 1.25; font-weight: 600; }
.practice-body p:not(.lead) { color: #4f4f52; font-size: 17px; }
.skill-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
.skill-strip span { padding: 8px 12px; border: 1px solid var(--line-light); text-transform: uppercase; font-size: 9px; font-weight: 700; letter-spacing: .12em; }

.learning { padding: 150px 0; }
.learning-shell { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(50px,8vw,145px); align-items: start; }
.learning-sidebar { position: sticky; top: 125px; }
.learning-sidebar h2 { font-size: clamp(64px,6.3vw,112px); }
.learning-sidebar > p:not(.eyebrow) { max-width: 470px; color: rgba(255,255,255,.52); font-size: 17px; }
.learning-instruction { display: inline-block; margin-top: 32px; padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.34); text-transform: uppercase; font-size: 9px; font-weight: 700; letter-spacing: .18em; color: rgba(255,255,255,.5); }
.learning-records { border-top: 1px solid var(--line-dark); }
.record { border-bottom: 1px solid var(--line-dark); }
.record summary { display: grid; grid-template-columns: 50px 1fr 30px; gap: 20px; align-items: center; padding: 30px 0; list-style: none; cursor: pointer; }
.record summary::-webkit-details-marker { display: none; }
.record summary > span { font-size: 11px; font-weight: 700; letter-spacing: .15em; color: rgba(255,255,255,.35); }
.record summary small { text-transform: uppercase; font-size: 9px; font-weight: 700; letter-spacing: .16em; color: rgba(255,255,255,.4); }
.record summary h3 { margin: 5px 0 0; font-size: clamp(20px,1.6vw,28px); line-height: 1.2; }
.record summary b { justify-self: end; font-size: 25px; font-weight: 400; color: rgba(255,255,255,.45); transition: transform .3s ease; }
.record[open] summary b { transform: rotate(45deg); color: var(--pure); }
.record-body { padding: 0 50px 35px 70px; }
.record-body p { color: rgba(255,255,255,.58); font-size: 16px; }

.gallery { padding: 145px max(44px,calc((100vw - 1540px)/2)); }
.gallery-head { display: grid; grid-template-columns: 150px 1fr .55fr; gap: clamp(30px,5vw,85px); align-items: end; margin-bottom: 80px; }
.gallery-head h2 { font-size: clamp(68px,7vw,122px); }
.gallery-head > p { margin: 0 0 10px; color: #555558; font-size: 17px; }
.gallery-grid { display: grid; grid-template-columns: repeat(4,1fr); grid-auto-rows: 330px; gap: 12px; }
.gallery-card { position: relative; min-width: 0; margin: 0; padding: 0; border: 0; background: #111; overflow: hidden; cursor: pointer; text-align: left; }
.gallery-card img, .gallery-card video { width: 100%; height: 100%; object-fit: cover; filter: contrast(1.03) saturate(1); transition: filter .6s ease, transform .7s cubic-bezier(.22,1,.36,1); }
.gallery-card:hover img, .gallery-card:focus-visible img, .gallery-card:hover video { filter: contrast(1.02) saturate(1.08); transform: scale(1.035); }
.gallery-card > span, .gallery-card figcaption { position: absolute; z-index: 2; inset: auto 0 0; padding: 55px 20px 18px; color: rgba(255,255,255,.65); background: linear-gradient(transparent,rgba(0,0,0,.86)); font-size: 12px; line-height: 1.45; }
.gallery-card b { display: block; margin-bottom: 5px; color: var(--pure); text-transform: uppercase; font-size: 10px; letter-spacing: .13em; }
.card-wide { grid-column: span 2; }
.card-tall { grid-row: span 2; }
.motion-card { cursor: default; }
.motion-card video { object-position: center; }

.reflection { margin-left: 68px; min-height: 1000px; padding: 150px max(44px,calc((100vw - 1540px)/2)); color: var(--black); background: var(--pure); }
.reflection-index { margin-bottom: 70px; padding-bottom: 20px; border-bottom: 1px solid var(--line-light); text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: .18em; color: #67676a; }
.reflection-title h2 { max-width: 1350px; font-size: clamp(64px,6.8vw,118px); }
.reflection-columns { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(50px,9vw,150px); margin-top: 90px; }
.reflection-columns p { color: #444447; font-size: 18px; }
.reflection-columns .closing-line { margin-top: 35px; padding-top: 30px; border-top: 1px solid var(--line-light); color: var(--black); font-size: 22px; font-weight: 600; line-height: 1.42; }

.mission { position: relative; min-height: 930px; display: flex; align-items: center; padding: 140px max(44px,calc((100vw - 1540px)/2)); overflow: hidden; }
.mission-number { position: absolute; right: -3vw; bottom: -8vw; font-size: 38vw; line-height: .75; font-weight: 700; letter-spacing: -.12em; color: rgba(255,255,255,.025); }
.mission-copy { position: relative; z-index: 1; width: min(1000px,86%); }
.mission-copy h2 { font-size: clamp(70px,8vw,145px); }
.mission-copy > p:not(.eyebrow) { max-width: 700px; color: rgba(255,255,255,.56); font-size: 18px; }
.mission-copy blockquote { max-width: 900px; margin: 50px 0 0; padding: 30px 0 0; border-top: 1px solid var(--line-dark); font-size: clamp(26px,2.8vw,48px); line-height: 1.25; font-weight: 600; }

.site-footer { margin-left: 68px; min-height: 300px; display: grid; grid-template-columns: 1fr 1fr .9fr auto; gap: 42px; align-items: center; padding: 60px max(44px,calc((100vw - 1540px)/2)); color: var(--pure); border-top: 1px solid var(--line-dark); background: var(--black); }
.footer-identity { display: flex; align-items: center; gap: 18px; }
.footer-identity > span { width: 54px; height: 54px; display: grid; place-items: center; color: var(--black); background: var(--pure); font-weight: 700; }
.footer-identity p { margin: 0; color: rgba(255,255,255,.48); font-size: 12px; }
.footer-identity strong { color: var(--pure); }
.footer-contact { display: grid; gap: 7px; }
.footer-contact a, .back-top { width: fit-content; text-decoration: none; font-size: 12px; color: rgba(255,255,255,.56); }
.soundtrack-link { display: grid; text-decoration: none; font-size: 13px; font-weight: 600; }
.soundtrack-link span { margin-bottom: 5px; text-transform: uppercase; font-size: 9px; letter-spacing: .16em; color: rgba(255,255,255,.36); }
.back-top { text-transform: uppercase; font-size: 9px; font-weight: 700; letter-spacing: .16em; }

.lightbox { width: min(1180px,calc(100vw - 36px)); max-width: none; padding: 0; border: 0; background: transparent; color: var(--pure); }
.lightbox::backdrop { background: rgba(0,0,0,.94); backdrop-filter: blur(14px); }
.lightbox-stage { padding-top: 60px; }
.lightbox-stage img { width: 100%; max-height: 78vh; object-fit: contain; }
.lightbox-stage p { max-width: 760px; margin: 18px auto 0; text-align: center; color: rgba(255,255,255,.62); }
.lightbox-close { position: fixed; z-index: 2; top: 24px; right: 24px; padding: 8px 12px; border: 1px solid rgba(255,255,255,.3); color: var(--pure); background: rgba(0,0,0,.6); text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: .13em; cursor: pointer; }
.reveal { opacity: 0; transform: translateY(30px); transition: opacity .8s ease, transform .8s cubic-bezier(.22,1,.36,1); }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1180px) {
  :root { --shell: min(100% - 64px,1050px); }
  .topbar { grid-template-columns: 90px 1fr 90px; padding-inline: 24px; }
  .topnav { gap: 18px; }
  .topnav a { font-size: 9px; }
  .hero-copy { width: 60vw; padding-left: 30px; }
  .hero h1 { font-size: clamp(72px,9vw,112px); }
  .hero-portrait { width: 47vw; right: -3vw; }
  .profile { grid-template-columns: 95px 1fr .9fr; padding-inline: 34px; gap: 35px; }
  .education-line { grid-template-columns: repeat(3,1fr); }
  .education-stop { border-bottom: 1px solid var(--line-dark); }
  .education-head, .gallery-head { grid-template-columns: 1fr .55fr; }
  .gallery-head .section-code { grid-column: 1/3; }
  .site-footer { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  :root { --shell: min(100% - 44px,760px); }
  .section-rail { display: none; }
  .topbar { height: 70px; grid-template-columns: 1fr auto; }
  .menu-toggle { display: grid; grid-template-columns: auto 23px; align-items: center; column-gap: 10px; padding: 8px 0; }
  .menu-toggle span { grid-row: 1/3; text-transform: uppercase; font-size: 9px; font-weight: 700; letter-spacing: .15em; }
  .menu-toggle i { display: block; width: 23px; height: 1px; background: currentColor; }
  .topnav { position: fixed; inset: 73px 0 auto; display: grid; gap: 0; padding: 16px 24px 25px; background: rgba(5,5,5,.98); transform: translateY(-130%); transition: transform .35s ease; }
  .topnav.is-open { transform: none; }
  .topnav a { padding: 13px 0; border-bottom: 1px solid var(--line-dark); font-size: 10px; }
  .hero, .light-section, .dark-section, .practice, .reflection, .site-footer { margin-left: 0; padding-left: 0; }
  .hero { min-height: 1080px; }
  .hero-grid { inset: 73px 0 0; }
  .hero-copy { width: 100%; min-height: auto; padding: 125px 25px 0; }
  .hero h1 { max-width: 760px; font-size: clamp(68px,14vw,116px); }
  .hero-statement { width: min(520px,80%); }
  .hero-portrait { width: min(79vw,640px); height: 62%; right: 0; }
  .hero-portrait figcaption { bottom: 85px; }
  .hero-footer { left: 24px; right: 24px; }
  .profile { min-height: auto; grid-template-columns: 1fr; padding: 110px 28px; }
  .profile .section-code { padding: 0; }
  .profile-quote { grid-column: 1; }
  .education { padding-block: 110px; }
  .education-head, .gallery-head { grid-template-columns: 1fr; gap: 35px; }
  .gallery-head .section-code { grid-column: 1; }
  .education-line { grid-template-columns: repeat(2,1fr); }
  .practice { grid-template-columns: 1fr; min-height: auto; }
  .practice-panel { padding: 110px 28px; }
  .learning { padding-block: 110px; }
  .learning-shell { grid-template-columns: 1fr; }
  .learning-sidebar { position: static; }
  .gallery { padding: 110px 24px; }
  .gallery-grid { grid-template-columns: repeat(2,1fr); }
  .reflection { min-height: auto; padding: 110px 28px; }
  .reflection-columns { gap: 45px; }
  .mission { padding: 110px 28px; }
  .site-footer { padding: 60px 28px; }
}

@media (max-width: 620px) {
  :root { --shell: calc(100% - 36px); }
  .topbar { padding-inline: 18px; }
  .hero { min-height: 930px; }
  .chem-code, .hero-portrait figcaption, .hero-footer { display: none; }
  .hero-copy { padding: 108px 18px 0; }
  .hero h1 { font-size: clamp(60px,20vw,88px); line-height: .8; }
  .hero h1 span:nth-child(2) { margin: .18em 0 .28em 5vw; font-size: .56em; }
  .hero h1 strong { margin-left: 0; }
  .hero-statement { width: 90%; margin: 25px 0 0 5vw; }
  .hero-statement p { font-size: 16px; }
  .hero-portrait { width: min(94vw,510px); height: 55%; right: -9vw; }
  h2 { font-size: clamp(48px,14.5vw,74px); }
  .profile-title h2, .education-head h2, .gallery-head h2, .learning-sidebar h2, .mission-copy h2 { font-size: clamp(48px,14.5vw,74px); }
  .profile { padding: 90px 18px; gap: 28px; }
  .profile-copy p:not(.lead), .education-head > p, .education-note p, .practice-body p:not(.lead), .reflection-columns p, .mission-copy > p:not(.eyebrow) { font-size: 16px; }
  .profile-quote { font-size: 24px; }
  .education { padding-block: 90px; }
  .education-head { gap: 26px; }
  .education-line { grid-template-columns: 1fr; margin-top: 60px; }
  .education-stop { min-height: 220px; padding-top: 32px; }
  .education-stop p { margin-top: 35px; }
  .education-note { grid-template-columns: 1fr; gap: 15px; }
  .practice-panel { padding: 90px 18px; }
  .practice-intro h2 { font-size: clamp(50px,15vw,74px); }
  .practice-meta { grid-template-columns: 1fr; }
  .practice-meta strong { margin-bottom: 10px; }
  .learning { padding-block: 90px; }
  .learning-shell { gap: 50px; }
  .record summary { grid-template-columns: 34px 1fr 22px; gap: 10px; padding-block: 25px; }
  .record summary h3 { font-size: 19px; }
  .record-body { padding: 0 0 28px 44px; }
  .gallery { padding: 90px 10px; }
  .gallery-head { padding-inline: 8px; margin-bottom: 50px; }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 390px; }
  .gallery-card, .card-wide, .card-tall { grid-column: 1; grid-row: auto; }
  .reflection { padding: 90px 18px; }
  .reflection-title h2 { font-size: clamp(46px,13vw,68px); }
  .reflection-columns { grid-template-columns: 1fr; margin-top: 55px; }
  .mission { min-height: 760px; padding: 90px 18px; }
  .mission-copy { width: 100%; }
  .site-footer { grid-template-columns: 1fr; gap: 35px; padding: 55px 18px; }
}

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