@font-face {
  font-family: "Geist";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/geist-latin.woff2") format("woff2");
}

@font-face {
  font-family: "Geist Mono";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/geist-mono-latin.woff2") format("woff2");
}

:root { --ink:#101820; --paper:#f3f0e8; --amber:#ed9b28; --steel:#6e8194; --line:rgba(16,24,32,.18); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Geist",Arial,sans-serif; line-height:1.5; }
h1,h2,h3,p { margin:0; }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
a:focus-visible { outline:2px solid var(--amber); outline-offset:4px; }
main { overflow:hidden; }
.nav { height:82px; max-width:1240px; margin:auto; padding:0 34px; display:flex; align-items:center; justify-content:flex-end; border-bottom:1px solid var(--line); }
.nav-links { display:flex; align-items:center; gap:34px; font:600 12px/1 "Geist Mono",monospace; text-transform:uppercase; letter-spacing:.08em; }
.nav-contact { border:1px solid var(--ink); padding:12px 16px; transition:.2s; }
.nav-contact:hover { background:var(--ink); color:var(--paper); }
.hero { max-width:1240px; margin:auto; padding:108px 34px 30px; position:relative; }
.eyebrow,.kicker { font:600 11px/1.3 "Geist Mono",monospace; letter-spacing:.13em; text-transform:uppercase; }
.eyebrow { display:flex; align-items:center; gap:10px; color:#4e5d67; }
.eyebrow span { width:28px; height:2px; background:var(--amber); }
h1 { max-width:970px; margin:30px 0 28px; font-size:clamp(58px,8vw,112px); line-height:.88; letter-spacing:-.075em; font-weight:710; position:relative; z-index:1; }
h1 em { color:var(--amber); font-style:normal; font-weight:360; }
.hero-name { display:block; white-space:nowrap; font-size:.48em; line-height:1; letter-spacing:-.035em; font-weight:600; }
.hero-tagline { display:block; margin-top:24px; font-size:1em; line-height:.88; letter-spacing:-.075em; }
.hero-copy { max-width:720px; font-size:20px; line-height:1.62; color:#3f4c54; }
.impact,.work,.education { max-width:1240px; margin:auto; padding:100px 34px; }
.impact { padding-top:70px; }
.section-label { display:flex; align-items:center; gap:16px; margin-bottom:54px; }
.section-label span { color:var(--amber); font:700 11px/1 "Geist Mono",monospace; }
.section-label h2 { font:650 13px/1 "Geist Mono",monospace; text-transform:uppercase; letter-spacing:.12em; }
.section-label::after { content:""; height:1px; background:var(--line); flex:1; }
.stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }
.stat { min-width:0; padding:42px 20px 38px 0; display:flex; flex-direction:column; border-right:1px solid var(--line); }
.stat:not(:first-child) { padding-left:28px; }
.stat:last-child { border:0; }
.stat strong { font-size:clamp(54px,7vw,90px); line-height:1; letter-spacing:-.06em; font-weight:430; }
.stat span { margin-top:10px; font:600 11px/1 "Geist Mono",monospace; text-transform:uppercase; letter-spacing:.1em; color:#55636d; }
.impact-note { text-align:right; font-size:12px; color:#68757e; }
.role-stats { margin:30px 0 22px; }
.role-stats .stat { padding-top:22px; padding-bottom:18px; }
.role-stats .stat strong { font-size:clamp(38px,4vw,58px); }
.repair-stats .stat { align-items:center; padding-left:12px; padding-right:12px; text-align:center; }
.repair-stats .stat strong { font-size:clamp(24px,2.6vw,36px); letter-spacing:-.04em; white-space:nowrap; }
.work { padding-top:80px; }
.role { display:grid; grid-template-columns:260px 1fr; border-top:1px solid var(--line); padding:46px 0 58px; }
.role-meta { display:flex; flex-direction:column; gap:8px; font:550 11px/1.2 "Geist Mono",monospace; text-transform:uppercase; color:#68757e; }
.role-main { max-width:800px; }
.role-main .kicker { color:#7b674c; margin:0 0 12px; }
.role-main h3,.education h3 { font-size:clamp(36px,5vw,62px); line-height:1; margin:0 0 23px; letter-spacing:-.055em; }
.role-main p:not(.kicker),.education-grid p:not(.kicker) { font-size:17px; line-height:1.7; color:#46535c; margin:0 0 24px; }
.tags { display:flex; flex-wrap:wrap; gap:7px; margin:30px 0; }
.tags span { border:1px solid #a8afb1; padding:8px 11px; font:550 10px/1 "Geist Mono",monospace; text-transform:uppercase; }
.text-link { display:block; width:max-content; max-width:100%; margin:0 auto; border-bottom:2px solid var(--amber); padding-bottom:5px; text-align:center; font:700 12px/1 "Geist Mono",monospace; text-transform:uppercase; letter-spacing:.06em; }
.link-row { display:flex; flex-wrap:wrap; justify-content:center; gap:18px 28px; margin-top:6px; }
.link-row .text-link { margin:0; }
.role.compact { border-bottom:1px solid var(--line); }
.role.compact .role-main h3 { font-size:38px; }
.capabilities { background:var(--ink); color:#eef0ea; padding:104px max(34px,calc((100vw - 1172px)/2)); display:grid; grid-template-columns:1fr 1fr; gap:110px; }
.section-label.light::after { background:rgba(255,255,255,.2); }
.capability-intro { font-size:27px; line-height:1.45; max-width:500px; letter-spacing:-.02em; color:#bfc8ca; }
.service-list { border-top:1px solid rgba(255,255,255,.3); }
.service-list div { display:grid; grid-template-columns:50px 1fr; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.18); align-items:center; }
.service-list span { color:var(--amber); font:600 10px/1 "Geist Mono",monospace; }
.service-list strong { font-size:20px; font-weight:470; }
.education-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:80px; }
.education-grid > div:first-child { padding-top:24px; }
.education-grid .kicker { color:#7b674c; }
.radio-card { background:#e7e2d7; padding:46px; border-top:4px solid var(--amber); }
.club-mark { width:135px; margin:0 auto 38px; }
.radio-card h3 { font-size:40px; }
footer { background:#e7e2d7; padding:80px max(34px,calc((100vw - 1172px)/2)) 28px; display:grid; grid-template-columns:1fr 1fr; gap:60px; }
footer h2 { font-size:68px; letter-spacing:-.06em; margin:8px 0; }
.footer-links { display:grid; grid-template-columns:1fr 1fr; align-content:start; border-top:1px solid var(--ink); }
.footer-links a { padding:15px 0; border-bottom:1px solid var(--line); font:650 11px/1 "Geist Mono",monospace; text-transform:uppercase; }
.copyright { grid-column:1/-1; border-top:1px solid var(--line); padding-top:18px; font:500 10px/1 "Geist Mono",monospace; text-transform:uppercase; color:#65717a; }

/* Detail pages */
.detail-page main { overflow:visible; }
.detail-page .nav { justify-content:space-between; }
.site-home { font:700 12px/1 "Geist Mono",monospace; text-transform:uppercase; letter-spacing:.08em; }
.site-home::before { content:""; display:inline-block; width:18px; height:2px; margin:0 9px 3px 0; background:var(--amber); }
.page-hero { max-width:1240px; margin:auto; padding:92px 34px 80px; }
.breadcrumb { margin-bottom:30px; font:600 11px/1.3 "Geist Mono",monospace; letter-spacing:.1em; text-transform:uppercase; color:#60707a; }
.breadcrumb a { border-bottom:1px solid var(--amber); }
.page-title { max-width:1040px; margin:0 0 30px; font-size:clamp(52px,8vw,104px); line-height:.92; letter-spacing:-.07em; }
.page-title em { color:var(--amber); font-style:normal; font-weight:360; }
.page-lede { max-width:830px; font-size:clamp(21px,2.4vw,30px); line-height:1.48; letter-spacing:-.02em; color:#3f4c54; }
.photo-hero-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr); gap:64px; align-items:end; }
.photo-hero-grid .page-title { font-size:clamp(52px,6.7vw,92px); }
.page-photo { margin:0; border-top:4px solid var(--amber); }
.page-photo img { width:100%; aspect-ratio:1; object-fit:cover; }
.page-photo-portrait img { aspect-ratio:3/4; }
.page-photo-landscape img { aspect-ratio:4/3; }
.page-photo figcaption { padding-top:12px; font:600 10px/1.35 "Geist Mono",monospace; letter-spacing:.08em; text-transform:uppercase; color:#627079; }
.detail-section { max-width:1240px; margin:auto; padding:84px 34px; border-top:1px solid var(--line); }
.detail-grid { display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); gap:90px; }
.detail-heading { max-width:430px; font-size:clamp(34px,4.2vw,58px); line-height:1.02; letter-spacing:-.055em; }
.detail-copy { max-width:760px; }
.detail-copy > p { margin-bottom:24px; font-size:18px; line-height:1.72; color:#46535c; }
.detail-copy > p:last-child { margin-bottom:0; }
.detail-copy h3 { margin:46px 0 18px; font-size:28px; line-height:1.1; letter-spacing:-.035em; }
.fact-list { margin:0; border-top:1px solid var(--ink); }
.fact-list div { display:grid; grid-template-columns:minmax(150px,.55fr) 1fr; gap:28px; padding:20px 0; border-bottom:1px solid var(--line); }
.fact-list dt { font:650 11px/1.35 "Geist Mono",monospace; letter-spacing:.08em; text-transform:uppercase; color:#6b5b46; }
.fact-list dd { margin:0; font-size:17px; line-height:1.55; color:#34424b; }
.page-stats { margin-top:36px; }
.page-stats .stat { padding-top:28px; padding-bottom:24px; }
.page-stats .stat strong { font-size:clamp(38px,5vw,68px); }
.callout { background:var(--ink); color:#eef0ea; }
.callout .detail-heading { color:#fff; }
.callout .detail-copy > p { color:#c4ccce; }
.callout .kicker { margin-bottom:18px; color:var(--amber); }
.page-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:36px; }
.page-action { border:1px solid currentColor; padding:13px 17px; font:700 11px/1 "Geist Mono",monospace; letter-spacing:.06em; text-transform:uppercase; }
.page-action.primary { border-color:var(--amber); background:var(--amber); color:var(--ink); }
.page-action:hover { background:var(--ink); color:var(--paper); }
.callout .page-action:hover { background:var(--paper); color:var(--ink); }
.detail-page footer { margin-top:0; }

@media (max-width:760px) {
  .nav { padding:0 20px; }
  .detail-page .nav-links > a:not(.nav-contact) { display:none; }
  .nav-links > a:not(.nav-contact) { display:none; }
  .hero { min-height:auto; padding:78px 20px 30px; }
  h1 { font-size:52px; }
  .hero-name { font-size:.7em; }
  .hero-tagline { margin-top:18px; }
  .hero-copy { font-size:17px; }
  .impact,.work,.education { padding:72px 20px; }
  .stat-grid { grid-template-columns:1fr 1fr; }
  .stat { border-bottom:1px solid var(--line); padding:28px 12px 26px 0; }
  .stat:nth-child(2) { border-right:0; }
  .stat:nth-child(3),.stat:nth-child(4) { border-bottom:0; }
  .role { grid-template-columns:1fr; gap:24px; }
  .role-meta { flex-direction:row; justify-content:space-between; }
  .capabilities { padding:72px 20px; grid-template-columns:1fr; gap:46px; }
  .education-grid { grid-template-columns:1fr; gap:38px; }
  .radio-card { padding:34px 28px; }
  footer { padding:60px 20px 24px; grid-template-columns:1fr; gap:28px; }
  footer h2 { font-size:51px; }
  .copyright { grid-column:1; }
  .page-hero { padding:64px 20px 60px; }
  .page-title { font-size:52px; }
  .page-lede { font-size:20px; }
  .photo-hero-grid { grid-template-columns:1fr; gap:38px; }
  .photo-hero-grid .page-title { font-size:52px; }
  .page-photo { max-width:520px; }
  .detail-section { padding:64px 20px; }
  .detail-grid { grid-template-columns:1fr; gap:32px; }
  .fact-list div { grid-template-columns:1fr; gap:8px; }
  .page-stats { grid-template-columns:1fr 1fr; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  * { transition:none!important; }
}
