/* Core tokens, reset, typography, shared controls, and navigation. */
    :root {
      --ink: #171914;
      --paper: #f6f2e9;
      --surface: #fffdf8;
      --soft: #e9e4d7;
      --lime: #c7f04c;
      --lime-soft: #e8f6bd;
      --red: #e9503f;
      --muted: #65685f;
      --line: rgba(23, 25, 20, 0.14);
      --shadow: 0 24px 70px rgba(35, 39, 29, 0.12);
      --radius-sm: 18px;
      --radius-md: 26px;
      --radius-lg: 38px;
      --container: 1180px;
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    html {
      scroll-behavior: smooth;
      scroll-padding-top: 6rem;
    }

    body {
      min-width: 320px;
      overflow-x: hidden;
      background: var(--paper);
      color: var(--ink);
      font-family: 'DM Sans', sans-serif;
      font-size: 1rem;
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
    }

    ::selection {
      background: var(--lime);
      color: var(--ink);
    }

    a {
      color: inherit;
    }

    img {
      max-width: 100%;
    }

    button,
    input,
    select,
    textarea {
      font: inherit;
    }

    :focus-visible {
      outline: 3px solid var(--red);
      outline-offset: 4px;
    }

    .container {
      width: min(calc(100% - 3rem), var(--container));
      margin-inline: auto;
    }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 0.65rem;
      color: var(--muted);
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }

    .eyebrow::before {
      width: 0.55rem;
      height: 0.55rem;
      border-radius: 50%;
      background: var(--red);
      content: '';
    }

    .display {
      font-size: clamp(2.8rem, 6vw, 5.9rem);
      font-weight: 600;
      letter-spacing: -0.065em;
      line-height: 0.97;
    }

    .display em,
    .section-title em {
      color: var(--red);
      font-family: 'Fraunces', serif;
      font-style: normal;
      font-weight: 600;
      letter-spacing: -0.04em;
    }

    .section-title {
      max-width: 14ch;
      font-size: clamp(2.25rem, 4.4vw, 4.15rem);
      font-weight: 600;
      letter-spacing: -0.055em;
      line-height: 1.02;
    }

    .section-copy {
      max-width: 35rem;
      color: var(--muted);
      font-size: clamp(1rem, 1.5vw, 1.12rem);
    }

    .section-heading {
      display: grid;
      grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
      align-items: end;
      gap: 3rem;
      margin-bottom: clamp(3rem, 7vw, 5.5rem);
    }

    .section-heading .eyebrow {
      margin-bottom: 1.2rem;
    }

    .button {
      display: inline-flex;
      min-height: 3.25rem;
      align-items: center;
      justify-content: center;
      gap: 0.65rem;
      padding: 0.8rem 1.35rem;
      border: 1px solid transparent;
      border-radius: 999px;
      font-size: 0.93rem;
      font-weight: 700;
      text-decoration: none;
      transition: transform 180ms ease, background 180ms ease, color 180ms ease;
    }

    .button:hover {
      transform: translateY(-2px);
    }

    .button-primary {
      background: var(--ink);
      color: var(--surface);
    }

    .button-primary:hover {
      background: var(--red);
    }

    .button-secondary {
      border-color: var(--line);
      background: rgba(255, 253, 248, 0.58);
    }

    .button-secondary:hover {
      background: var(--surface);
    }

    nav {
      position: sticky;
      top: 0;
      z-index: 100;
      border-bottom: 1px solid var(--line);
      background: rgba(246, 242, 233, 0.9);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
    }

    .nav-inner {
      display: flex;
      min-height: 4.9rem;
      align-items: center;
      justify-content: space-between;
      gap: 2rem;
    }

    .logo {
      display: inline-flex;
      align-items: center;
      gap: 0.65rem;
      font-size: 0.98rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      text-decoration: none;
    }

    .logo-mark {
      width: 2.2rem;
      height: 2.2rem;
      object-fit: contain;
    }

    .nav-actions,
    .nav-links {
      display: flex;
      align-items: center;
    }

    .nav-actions {
      gap: 1.5rem;
    }

    .nav-links {
      gap: 1.6rem;
    }

    .nav-links a {
      color: var(--muted);
      font-size: 0.88rem;
      font-weight: 600;
      text-decoration: none;
      transition: color 180ms ease;
    }

    .nav-links a:hover {
      color: var(--ink);
    }

    .nav-cta {
      min-height: 2.65rem;
      padding: 0.55rem 1rem;
    }
