@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/fonts/manrope-latin-variable.woff2") format("woff2");
}

@font-face {
  font-family: "Newsreader";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/newsreader-latin-italic-400.woff2") format("woff2");
}

:root {
  color-scheme: light;
  --fd-forest: #153E35;
  --fd-ivory: #F6F2E9;
  --fd-charcoal: #242A27;
  --fd-sage: #D9E3DA;
  --fd-copper: #A4543B;
  --fd-bg: var(--fd-ivory);
  --fd-text: var(--fd-charcoal);
  --fd-heading: var(--fd-forest);
  --fd-muted: #58665D;
  --fd-rule: #C8D2C8;
  --fd-control-border: #66766A;
  --fd-link: var(--fd-forest);
  --fd-focus: var(--fd-copper);
  --fd-action-bg: var(--fd-forest);
  --fd-action-text: var(--fd-ivory);
  --fd-action-hover: #0D2E27;
  --fd-font-ui: "Manrope", Arial, sans-serif;
  --fd-font-editorial: "Newsreader", Georgia, serif;
  --fd-radius: 6px;
  --fd-container: 75rem;
  --fd-reading-width: 64ch;
  --fd-space-1: .25rem;
  --fd-space-2: .5rem;
  --fd-space-3: .75rem;
  --fd-space-4: 1rem;
  --fd-space-6: 1.5rem;
  --fd-space-8: 2rem;
  --fd-space-12: 3rem;
  --fd-space-16: 4rem;
  --fd-space-24: 6rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--fd-space-8); }
body {
  margin: 0;
  background: var(--fd-bg);
  color: var(--fd-text);
  font: 400 1.0625rem / 1.65 var(--fd-font-ui);
}
a { color: var(--fd-link); text-underline-offset: .22em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 4px; }
p, h1, h2 { margin-top: 0; overflow-wrap: break-word; }
p { max-width: var(--fd-reading-width); }
h1, h2 { color: var(--fd-heading); font-family: var(--fd-font-ui); }
h2 { font-size: clamp(1.75rem, calc(1.25rem + 1.6vw), 2.75rem); font-weight: 500; line-height: 1.2; letter-spacing: -.035em; text-wrap: balance; }
.shell { width: 100%; max-width: var(--fd-container); margin-inline: auto; padding-inline: clamp(1.25rem, 4vw, 3rem); }
.skip-link { position: absolute; z-index: 10; top: var(--fd-space-4); left: var(--fd-space-4); padding: .75rem 1rem; background: var(--fd-ivory); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.site-header { display: flex; justify-content: space-between; align-items: center; gap: var(--fd-space-6); padding-block: var(--fd-space-8); }
.wordmark { display: inline-flex; min-height: 44px; align-items: center; font: 600 2rem / 1.2 var(--fd-font-ui); letter-spacing: -.04em; text-decoration: none; }
.site-header nav { display: flex; flex-wrap: wrap; gap: var(--fd-space-8); font-size: .9375rem; font-weight: 500; line-height: 1.5; }
.site-header nav a { display: inline-flex; min-height: 44px; align-items: center; }
.hero { padding-block: 5rem var(--fd-space-24); }
.hero-copy { max-width: 50rem; }
.hero-label { color: var(--fd-copper); margin-bottom: var(--fd-space-6); font-size: .9375rem; font-weight: 500; line-height: 1.5; }
h1 { max-width: 20ch; margin-bottom: var(--fd-space-8); font-size: clamp(2.25rem, calc(1.4rem + 3.6vw), 4rem); font-weight: 500; line-height: 1.1; letter-spacing: -.035em; text-wrap: balance; }
.editorial { font-family: var(--fd-font-editorial); font-weight: 400; font-style: italic; font-optical-sizing: auto; letter-spacing: -.03em; }
.hero-intro { max-width: 49ch; margin-bottom: var(--fd-space-8); font-size: 1.25rem; line-height: 1.6; }
.primary-link { display: inline-flex; max-width: 100%; min-height: 48px; align-items: center; justify-content: center; padding: .75rem 1.25rem; border: 1px solid transparent; border-radius: var(--fd-radius); background: var(--fd-action-bg); color: var(--fd-action-text); font-size: 1rem; font-weight: 600; line-height: 1.4; text-align: center; text-decoration: none; transition: background-color 160ms ease; }
.primary-link:hover { background: var(--fd-action-hover); }
.purpose-section { padding-block: var(--fd-space-24); }
.section-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); gap: 10%; }
.section-grid h2 { max-width: 13ch; }
.section-copy p { margin-bottom: var(--fd-space-6); }
.section-copy p:last-child { margin-bottom: 0; }
.name-note { margin-top: var(--fd-space-8); color: var(--fd-muted); font-size: .9375rem; line-height: 1.65; }
.name-note i { font-style: normal; }
.practice-section { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); gap: 10%; padding-block: var(--fd-space-24); border-top: 1px solid var(--fd-rule); }
.section-label { margin-bottom: var(--fd-space-4); color: var(--fd-muted); font-size: .9375rem; font-weight: 500; line-height: 1.5; }
.practice-lead { max-width: 32ch; margin-bottom: var(--fd-space-6); font-size: 1.5rem; font-weight: 500; line-height: 1.35; letter-spacing: -.025em; }
.practice-copy p:last-child { margin-bottom: 0; }
.inverse {
  --fd-bg: var(--fd-forest);
  --fd-text: var(--fd-ivory);
  --fd-heading: var(--fd-ivory);
  --fd-muted: var(--fd-sage);
  --fd-rule: #547064;
  --fd-control-border: var(--fd-sage);
  --fd-link: var(--fd-ivory);
  --fd-focus: var(--fd-ivory);
  --fd-action-bg: var(--fd-ivory);
  --fd-action-text: var(--fd-forest);
  --fd-action-hover: var(--fd-sage);
  background: var(--fd-bg);
  color: var(--fd-text);
}
.project-section { padding-block: 5rem var(--fd-space-16); }
.project-content { display: flex; align-items: center; justify-content: space-between; gap: var(--fd-space-12); }
.project-content > div { max-width: 37rem; }
.project-content h2 { max-width: 20ch; margin-bottom: var(--fd-space-6); font-size: clamp(1.75rem, 3vw, 2.5rem); }
.project-content p { margin-bottom: 0; color: var(--fd-muted); }
.project-content > a { flex: 0 0 auto; }
.footer-content { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--fd-space-6); padding-block: var(--fd-space-8); border-top: 1px solid var(--fd-rule); }
.footer-wordmark { font-size: 1.5rem; }
.site-footer p { margin-bottom: 0; font-size: .9375rem; color: var(--fd-muted); }
.footer-top { display: inline-flex; min-height: 44px; align-items: center; font-size: .875rem; }
.not-found { padding-block: 5rem var(--fd-space-24); }
.not-found h1 { max-width: 18ch; }
.not-found p { max-width: 45ch; margin-bottom: var(--fd-space-8); }

@media (max-width: 850px) {
  .section-grid, .practice-section { gap: var(--fd-space-12); grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); }
  .hero { padding-block: var(--fd-space-16) 5rem; }
  .purpose-section, .practice-section { padding-block: 5rem; }
  .project-content { align-items: flex-start; flex-direction: column; gap: var(--fd-space-8); }
}

@media (max-width: 580px) {
  body { font-size: 1rem; }
  .site-header { align-items: flex-start; flex-wrap: wrap; column-gap: var(--fd-space-8); row-gap: var(--fd-space-3); padding-block: var(--fd-space-6); }
  .wordmark { font-size: 1.75rem; }
  .site-header nav { gap: var(--fd-space-6); font-size: .875rem; }
  .hero { padding-block: var(--fd-space-12) var(--fd-space-16); }
  .hero-label { margin-bottom: var(--fd-space-6); }
  h1 { margin-bottom: var(--fd-space-6); }
  .hero-intro { font-size: 1.125rem; }
  .section-grid, .practice-section { grid-template-columns: minmax(0, 1fr); gap: var(--fd-space-6); }
  .purpose-section, .practice-section { padding-block: var(--fd-space-16); }
  .section-grid h2, .practice-heading h2 { max-width: 19ch; margin-bottom: 0; }
  .practice-lead { font-size: 1.25rem; }
  .project-section { padding-block: var(--fd-space-16) var(--fd-space-12); }
  .footer-content { column-gap: var(--fd-space-6); row-gap: var(--fd-space-3); padding-block: var(--fd-space-6); }
  .footer-wordmark { font-size: 1.5rem; }
  .site-footer p { margin-left: auto; }
  .footer-top { flex-basis: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .primary-link { transition: none; }
}
