@font-face {
  font-family: "Archivo Black";
  src: url("assets/archivo-black.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --ink: #211815;
  --dark: #17100f;
  --sand: #f6e9dd;
  --muted: #d2b9aa;
  --accent: #ff9664;
  --rust: #813e2a;
  font-family: system-ui, sans-serif;
  color: var(--ink);
  background: var(--dark);
  font-synthesis: none;
}

*, *::before, *::after { box-sizing: border-box; }
body, figure, h1, h2, p, dl, dd { margin: 0; }
a { color: inherit; }
a:focus-visible { outline: 3px solid currentColor; outline-offset: 5px; }
img { display: block; max-width: 100%; height: auto; }
p, dd { line-height: 1.65; }
.shell { width: min(100% - 3rem, 75rem); margin-inline: auto; }
.skip { position: fixed; z-index: 10; inset: .75rem auto auto .75rem; padding: .75rem; background: var(--sand); transform: translateY(-175%); }
.skip:focus { transform: none; }
.site-header { min-height: 4.75rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; color: var(--sand); }
.brand { display: inline-flex; align-items: center; gap: .65rem; font-size: 1.125rem; font-weight: 750; text-decoration: none; }
nav { display: flex; flex-wrap: wrap; gap: .6rem clamp(1rem, 3vw, 2.4rem); }
nav a { color: var(--sand); font-size: .9rem; text-decoration: none; }
nav a:hover { text-decoration: underline; }
.hero { position: relative; isolation: isolate; min-height: clamp(32rem, 83svh, 52rem); display: grid; align-content: center; color: var(--sand); }
.hero-image, .hero-image img, .hero::after { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-image { z-index: -2; }
.hero-image img { object-fit: cover; object-position: 63% center; }
.hero::after { content: ""; z-index: -1; background: linear-gradient(90deg, #170e0def 0%, #170e0dbc 32%, #170e0d38 66%, transparent 90%), linear-gradient(0deg, #170e0dd9, transparent 25%); }
.hero-content { padding-block: 4rem 6rem; }
.hero-kicker { color: var(--accent); font-weight: 650; letter-spacing: .025em; margin-bottom: 1rem; }
h1, h2 { text-wrap: balance; }
h1 { font-family: "Archivo Black", system-ui, sans-serif; font-size: clamp(2.55rem, 10.2vw, 9.3rem); font-weight: 400; line-height: .9; letter-spacing: -.075em; }
.hero-summary { margin-top: 1.45rem; max-width: 25ch; font-size: clamp(1.15rem, 2.35vw, 1.7rem); line-height: 1.35; }
.button { display: inline-flex; align-items: center; gap: 1.2rem; background: var(--accent); color: var(--dark); border-radius: .3rem; padding: .8rem 1.05rem; margin-top: 1.85rem; font-weight: 750; text-decoration: none; }
.button:hover { background: var(--sand); }
.button:focus-visible { outline-color: var(--sand); }
.hero-location { position: absolute; inset: auto 0 1.25rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .35rem 1rem; color: var(--muted); font-size: .8rem; }
.mission, .suit, .project { padding-block: clamp(3.25rem, 8vw, 7rem); }
.mission { background: var(--sand); }
.mission-grid, .suit-grid, .project-grid { display: grid; align-items: center; gap: clamp(1.75rem, 5vw, 5rem); }
.mission-grid { grid-template-columns: 4fr 6fr; }
.suit-grid { grid-template-columns: 6fr 4fr; }
.project-grid { grid-template-columns: 1fr 1fr; align-items: start; }
.section-label { color: var(--rust); font-size: .9rem; font-weight: 750; margin-bottom: .65rem; }
h2 { margin-bottom: 1.2rem; font-size: clamp(2rem, 4.8vw, 4.25rem); font-weight: 820; letter-spacing: -.055em; line-height: .98; }
p + p { margin-top: .8rem; }
figure img { width: 100%; border-radius: .35rem; }
figcaption { margin-top: .55rem; font-size: .8rem; line-height: 1.5; }
.text-link { display: inline-block; margin-top: 1.15rem; font-weight: 720; text-underline-offset: .22em; }
.text-link:hover { color: var(--rust); }
.suit, .site-footer { color: var(--sand); }
.suit .section-label { color: var(--accent); }
.suit figcaption, .interfaces dd, .site-footer p { color: var(--muted); }
.interfaces { margin-top: 1.7rem; }
.interfaces div { border-top: 1px solid #75584a; padding-block: .75rem; }
.interfaces dt { font-weight: 730; margin-bottom: .2rem; }
.project { background: #eac6ae; }
.project h2 { margin-bottom: 0; }
.footer-grid { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem 2rem; padding-block: 1.6rem; }
.site-footer p { font-size: .8rem; }

@media (max-width: 760px) {
  .mission-grid, .suit-grid, .project-grid { grid-template-columns: 1fr; }
  .suit figure { grid-row: 2; }
  .hero::after { background: linear-gradient(90deg, #170e0de6, #170e0d55), linear-gradient(0deg, #170e0dd9, transparent 25%); }
}

@media (max-width: 520px) {
  .shell { width: calc(100% - 2rem); }
  .site-header { align-items: flex-start; flex-direction: column; padding-block: .8rem; }
  .hero { min-height: 32rem; }
  .hero-image img { object-position: 67% center; }
}
