 :root {
      --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
      --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
      --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
      --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
      --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2rem);

      --space-1: 0.25rem;
      --space-2: 0.5rem;
      --space-3: 0.75rem;
      --space-4: 1rem;
      --space-5: 1.25rem;
      --space-6: 1.5rem;
      --space-8: 2rem;
      --space-10: 2.5rem;
      --space-12: 3rem;

      --bg: #f7f6f2;
      --surface: #ffffff;
      --surface-soft: #f1efe9;
      --border: rgba(40, 37, 29, 0.12);
      --text: #28251d;
      --muted: #6e6a62;
      --primary: #01696f;
      --primary-hover: #0c4e54;
      --shadow: 0 10px 30px rgba(40, 37, 29, 0.08);
      --radius: 18px;
      --radius-sm: 12px;
      --content: 960px;
    }

    * { box-sizing: border-box; }

    html {
      scroll-behavior: smooth;
      -webkit-text-size-adjust: 100%;
    }

    body {
      margin: 0;
      min-height: 100vh;
      font-family: 'Satoshi', Inter, system-ui, sans-serif;
      font-size: var(--text-base);
      line-height: 1.65;
      color: var(--text);
      background:
        radial-gradient(circle at top right, rgba(1, 105, 111, 0.08), transparent 22%),
        var(--bg);
    }

    img {
      display: block;
      max-width: 100%;
      height: auto;
      background: var(--surface-soft);
    }

    a {
      color: var(--primary);
      text-decoration-thickness: 0.08em;
      text-underline-offset: 0.16em;
      transition: color 180ms ease, background-color 180ms ease;
    }

    a:hover,
    a:focus-visible {
      color: var(--primary-hover);
    }

    button {
      font: inherit;
      border: 0;
      cursor: pointer;
    }

    code {
      padding: 0.15rem 0.4rem;
      border-radius: 0.4rem;
      background: var(--surface-soft);
      font-size: 0.95em;
    }

    .skip-link {
      position: absolute;
      left: 1rem;
      top: -3rem;
      background: var(--primary);
      color: #fff;
      padding: 0.75rem 1rem;
      border-radius: 999px;
      z-index: 100;
    }

    .skip-link:focus {
      top: 1rem;
    }

    .topbar {
      position: sticky;
      top: 0;
      z-index: 20;
      backdrop-filter: blur(12px);
      background: rgba(247, 246, 242, 0.88);
      border-bottom: 1px solid var(--border);
    }

    .topbar__inner {
      max-width: var(--content);
      margin: 0 auto;
      min-height: 72px;
      padding: var(--space-3) var(--space-4);
      display: grid;
      grid-template-columns: auto 1fr auto;
      align-items: center;
      gap: var(--space-3);
    }

    .home-button {
      min-width: 44px;
      min-height: 44px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-2);
      padding: 0.75rem 1rem;
      border-radius: 999px;
      background: var(--surface);
      color: var(--text);
      box-shadow: 0 2px 10px rgba(40, 37, 29, 0.06);
      text-decoration: none;
      white-space: nowrap;
    }

    .home-button:hover,
    .home-button:focus-visible {
      background: var(--surface-soft);
      color: var(--text);
    }

    .brand-title {
      text-align: center;
      font-size: var(--text-lg);
      font-weight: 700;
      letter-spacing: -0.02em;
      margin: 0;
    }

    .topbar-spacer {
      width: 44px;
      height: 44px;
    }

    .page {
      max-width: var(--content);
      margin: 0 auto;
      padding: var(--space-8) var(--space-4) var(--space-12);
    }

    .hero,
    .card,
    .image-section,
    .note {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
    }

    .hero {
      padding: clamp(1.5rem, 3vw, 3rem);
      margin-bottom: var(--space-8);
    }

    .eyebrow {
      display: inline-block;
      margin-bottom: var(--space-3);
      padding: 0.45rem 0.8rem;
      border-radius: 999px;
      background: rgba(1, 105, 111, 0.1);
      color: var(--primary);
      font-size: var(--text-sm);
      font-weight: 700;
    }

    h1, h2, h3 {
      line-height: 1.15;
      letter-spacing: -0.03em;
      margin: 0 0 var(--space-4);
    }

    h1 { font-size: var(--text-xl); }
    h2 { font-size: var(--text-lg); }
    h3 { font-size: 1.05rem; }

    p {
      margin: 0 0 var(--space-4);
      color: var(--muted);
      max-width: 68ch;
    }

    .actions {
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-3);
      margin-top: var(--space-5);
    }

    .button-link {
      min-height: 44px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0.85rem 1.15rem;
      border-radius: 999px;
      text-decoration: none;
      font-size: var(--text-sm);
      font-weight: 700;
    }

    .button-link--primary {
      background: var(--primary);
      color: #fff;
    }

    .button-link--primary:hover,
    .button-link--primary:focus-visible {
      background: var(--primary-hover);
      color: #fff;
    }

    .button-link--secondary {
      background: var(--surface-soft);
      color: var(--text);
    }

    .image-section {
      overflow: hidden;
      margin-bottom: var(--space-8);
    }

    .image-section__content {
      padding: var(--space-5);
    }

    .image-free {
      width: auto;
      max-width: 100%;
      height: auto;
      border-radius: var(--radius-sm);
    }

    .image-box {
      display: inline-block;
      max-width: 100%;
      padding: var(--space-4);
      border-radius: var(--radius-sm);
      background: var(--surface-soft);
    }

    .image-cover {
      width: 100%;
      aspect-ratio: 16 / 7;
      object-fit: cover;
    }

    .grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: var(--space-4);
    }

    .card {
      overflow: hidden;
      padding: var(--space-5);
    }

    .card--with-image {
      padding: 0;
    }

    .card__content {
      padding: var(--space-5);
    }

    .card__image-wrap {
      padding: var(--space-4);
      border-bottom: 1px solid var(--border);
      background: var(--surface-soft);
    }

    .card__image {
      width: auto;
      max-width: 100%;
      height: auto;
      margin: 0 auto;
      border-radius: calc(var(--radius-sm) - 2px);
    }

    .note {
      margin: 0 0 var(--space-8);
      padding: var(--space-5);
    }

    .card p:last-child,
    .image-section__content p:last-child,
    .note p:last-child { margin-bottom: 0; }

    .link-list {
      display: grid;
      gap: var(--space-2);
      padding: 0;
      margin: var(--space-4) 0 0;
      list-style: none;
    }

    .link-list a {
      display: inline-flex;
      align-items: center;
      gap: var(--space-2);
      width: fit-content;
    }

    footer {
      margin-top: var(--space-8);
      padding-top: var(--space-4);
      border-top: 1px solid var(--border);
      color: var(--muted);
      font-size: var(--text-sm);
    }

    :focus-visible {
      outline: 2px solid var(--primary);
      outline-offset: 3px;
    }

    @media (max-width: 720px) {
      .topbar__inner {
        grid-template-columns: auto 1fr;
      }

      .brand-title {
        font-size: 1.1rem;
      }

      .topbar-spacer {
        display: none;
      }

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

      .page {
        padding-top: var(--space-6);
      }

      .hero,
      .card,
      .image-section,
      .note {
        border-radius: var(--radius-sm);
      }

      .image-cover {
        aspect-ratio: 16 / 10;
      }
    }