    /* ── Fonts ── */
@font-face {
  font-family: "Alte Haas Grotesk";
  src: url("../fonts/AlteHaasGroteskRegular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Alte Haas Grotesk";
  src: url("../fonts/AlteHaasGroteskBold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
/* ── Inter Variable ── */
@font-face {
  font-family: "Inter";
  src: url("../fonts/InterVariable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

    /* ── Reset ── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :focus { outline: 0; }

    /* ── Tokens ── */
    :root {
      --c-name:    rgba(0,0,0,0.75);
      --c-grey:    #969696;
      --c-body:    rgba(0,0,0,0.85);
      --c-tag:     rgba(85,194,23,0.85);
      --c-rule:    rgba(0,0,0,0.75);
      --c-bg:      #fff;
  --f-display: "Alte Haas Grotesk", sans-serif;
  --f-body: "Inter", sans-serif;
      --pad:       4rem;
        --gap: 1.75rem;
    }

    /* ── Base ── */
    html, body {
      min-height: 100vh;
      background: var(--c-bg);
      color: var(--c-body);
      font-family: var(--f-body);
      font-size: 10px; /* rem base */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    a { color: inherit; text-decoration: none; }
    a:active { opacity: 0.7; }

    hr {
      border: none;
      height: 1px;
      background: var(--c-rule);
      display: block;
      margin: 0;
    }

    /* ── Header (pinned, desktop) ── */
      .header {
  position: static;
  padding: var(--pad);
  display: grid;
  grid-template-columns: 4fr 5fr 3fr;
  gap: var(--gap);
}

 .header__name {
  font-family: var(--f-display);
  font-size: 2.5rem;
  font-weight: 400;
  color: var(--c-name);
  line-height: 1.1;
  letter-spacing: 0.003em;
  white-space: nowrap;
  padding: 0.08em 0.4em;
  display: inline-block;
        margin-left: -0.4em;
}

.header__subtitle {
  font-family: var(--f-display);
  font-size: 2.5rem;
  font-weight: 400;
  color: var(--c-grey);
  line-height: 1.1;
  letter-spacing: 0;
  background: rgba(255,255,255,0.7);
  padding: 0.08em 0.4em;
  display: inline-block;
       margin-left: -0.4em;
}

.header__about {
  font-family: var(--f-display);
  font-size: 2.5rem;
  font-weight: 400;
  color: var(--c-grey);
  line-height: 1.1;
  background: rgba(255,255,255,0.7);
  padding: 0.08em 0.4em;
  display: inline-block;
       margin-right: -0.4em;
}

    /* ── Main content ── */
    .main {
      padding: 4rem var(--pad);
    }

    .section-label {
      font-family: var(--f-display);
      font-size: 1.9rem;
      font-weight: 400;
      color: var(--c-grey);
      line-height: 1.5;
      display: block;
      margin-top: 1rem;
      margin-bottom: 2rem;
    }

    /* ── Project grid ── */
    .grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--gap);
    }

    .project {
      display: block;
      cursor: pointer;
    }

.project__media {
  width: 100%;
  aspect-ratio: 4 / 3;
  background: #e8e8e8;
  clip-path: inset(0);
  position: relative;
}

.project__thumb {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.project__media .project__thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.03);
  -webkit-transform: scale(1.03);
}

    /* Placeholder tile for projects without a real image */
    .project__thumb--placeholder {
      width: 100%;
      aspect-ratio: 4 / 3;
      background: #e8e8e8;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #aaa;
      font-family: var(--f-display);
      font-size: 1.4rem;
    }

    .project__caption {
      margin-top: 1rem;
      margin-bottom: 1rem;
    }

    .project__title {
      font-family: var(--f-display);
      font-size: 1.9rem;
      font-weight: 400;
      color: #000;
      line-height: 1.3;
      letter-spacing: 0;
    }

    .project__tag {
      font-family: var(--f-display);
      font-size: 1.3rem;
      color: var(--c-tag);
      line-height: 1.3;
      display: block;
      margin-top: 0.1em;
    }

    /* ── Footer rule ── */
    .footer-rule {
      margin-top: 4rem;
    }

    /* ── Mobile header ── */
    .header--mobile {
      display: none;
      text-align: center;
      padding: 2rem;
      border-bottom: 1px solid var(--c-rule);
    }

    .header--mobile .header__name {
      font-size: 4.2rem;
    }

    .header--mobile .header__about {
      font-size: 1.9rem;
      text-align: center;
      display: inline-block;
      margin-top: 0.5rem;
    }

    /* ── Responsive ── */
    @media (max-width: 768px) {
      :root { --pad: 1.5rem; }

      .header { display: none; }
      .header--mobile { display: block; }

      .grid {
        grid-template-columns: 1fr;
      }

      .project__title { font-size: 2.4rem; }
      .project__tag   { font-size: 1.6rem; }
      .section-label  { font-size: 2.4rem; }
    }
