:root {
        color-scheme: dark;
        --bg: #070b12;
        --bg-elevated: #101826;
        --bg-card: #152033;
        --text: #e8eefc;
        --muted: #9fb0d0;
        --border: #2a3a58;
        --accent: #3dd6c6;
        --accent-2: #6ea8ff;
        --link: #7ec8ff;
        --radius: 12px;
        --max: 44rem;
        --font: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
        --mono: "IBM Plex Mono", ui-monospace, monospace;
      }

      * {
        box-sizing: border-box;
      }

      html {
        scroll-behavior: smooth;
      }

      body {
        margin: 0;
        min-height: 100vh;
        font-family: var(--font);
        font-size: 1.05rem;
        line-height: 1.65;
        color: var(--text);
        background:
          radial-gradient(1200px 600px at 10% -10%, #1a2a4a 0%, transparent 55%),
          radial-gradient(900px 500px at 100% 0%, #0d3a36 0%, transparent 50%),
          var(--bg);
      }

      a {
        color: var(--link);
        text-underline-offset: 0.15em;
      }

      a:hover {
        color: var(--accent);
      }

      .wrap {
        width: min(var(--max), calc(100% - 2rem));
        margin: 0 auto;
        padding: 1.25rem 0 3.5rem;
      }

      .topnav {
        display: flex;
        flex-wrap: wrap;
        gap: 0.65rem 1rem;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 1.75rem;
        padding: 0.85rem 1rem;
        background: color-mix(in srgb, var(--bg-elevated) 92%, black);
        border: 1px solid var(--border);
        border-radius: var(--radius);
        position: sticky;
        top: 0.65rem;
        z-index: 10;
        backdrop-filter: blur(8px);
      }

      .brand {
        font-family: var(--mono);
        font-weight: 600;
        color: var(--text);
        text-decoration: none;
        letter-spacing: 0.02em;
      }

      .brand span {
        color: var(--accent);
      }

      .topnav-links {
        display: flex;
        flex-wrap: wrap;
        gap: 0.75rem 1rem;
        font-size: 0.95rem;
      }

      .topnav-links a {
        text-decoration: none;
        color: var(--muted);
      }

      .topnav-links a:hover {
        color: var(--accent);
      }

      header.hero {
        margin-bottom: 1.75rem;
      }

      header.hero p.lede {
        font-size: 1.15rem;
        color: var(--muted);
        max-width: 38rem;
        margin: 0.65rem 0 1.1rem;
      }

      h1 {
        margin: 0;
        font-size: clamp(1.75rem, 4vw, 2.35rem);
        line-height: 1.2;
        letter-spacing: -0.02em;
      }

      h2 {
        margin: 2.25rem 0 0.85rem;
        font-size: 1.35rem;
        letter-spacing: -0.01em;
        padding-top: 0.35rem;
        border-top: 1px solid var(--border);
      }

      h2:first-of-type {
        border-top: 0;
        padding-top: 0;
      }

      h3 {
        margin: 1.35rem 0 0.5rem;
        font-size: 1.08rem;
        color: var(--accent-2);
      }

      p {
        margin: 0.7rem 0;
      }

      .muted {
        color: var(--muted);
      }

      .card {
        background: var(--bg-card);
        border: 1px solid var(--border);
        border-radius: var(--radius);
        padding: 1.1rem 1.2rem;
        margin: 1rem 0;
      }

      .card.credit {
        border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
        background: linear-gradient(
          145deg,
          color-mix(in srgb, #0f3d38 55%, var(--bg-card)),
          var(--bg-card)
        );
      }

      .card h2 {
        margin-top: 0;
        border: 0;
        padding: 0;
      }

      .pill-row {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        margin: 1rem 0 0;
      }

      .pill {
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        padding: 0.35rem 0.7rem;
        border-radius: 999px;
        border: 1px solid var(--border);
        background: var(--bg-elevated);
        color: var(--text);
        text-decoration: none;
        font-size: 0.92rem;
      }

      .pill:hover {
        border-color: var(--accent);
        color: var(--accent);
      }

      .pill.primary {
        background: color-mix(in srgb, var(--accent) 18%, var(--bg-elevated));
        border-color: color-mix(in srgb, var(--accent) 50%, var(--border));
        color: var(--accent);
        font-weight: 600;
      }

      table {
        width: 100%;
        border-collapse: collapse;
        font-size: 0.98rem;
        margin: 0.85rem 0 1.1rem;
      }

      th,
      td {
        text-align: left;
        vertical-align: top;
        padding: 0.65rem 0.75rem;
        border: 1px solid var(--border);
      }

      th {
        background: var(--bg-elevated);
        color: var(--muted);
        font-weight: 600;
        font-size: 0.86rem;
        text-transform: uppercase;
        letter-spacing: 0.04em;
      }

      td {
        background: color-mix(in srgb, var(--bg-card) 80%, black);
      }

      code,
      kbd {
        font-family: var(--mono);
        font-size: 0.9em;
      }

      code {
        background: #0a1220;
        border: 1px solid var(--border);
        border-radius: 6px;
        padding: 0.1rem 0.35rem;
      }

      ol,
      ul {
        margin: 0.5rem 0 0.9rem;
        padding-left: 1.35rem;
      }

      li {
        margin: 0.4rem 0;
      }

      ol.steps {
        counter-reset: step;
        list-style: none;
        padding-left: 0;
      }

      ol.steps li {
        position: relative;
        margin: 0.75rem 0;
        padding: 0.85rem 1rem 0.85rem 3rem;
        background: var(--bg-card);
        border: 1px solid var(--border);
        border-radius: 10px;
      }

      ol.steps li::before {
        counter-increment: step;
        content: counter(step);
        position: absolute;
        left: 0.75rem;
        top: 0.9rem;
        width: 1.55rem;
        height: 1.55rem;
        border-radius: 999px;
        display: grid;
        place-items: center;
        font-family: var(--mono);
        font-size: 0.85rem;
        font-weight: 600;
        color: #062a28;
        background: var(--accent);
      }

      .note {
        border-left: 3px solid var(--accent-2);
        padding: 0.65rem 0.9rem;
        margin: 1rem 0;
        background: color-mix(in srgb, var(--accent-2) 8%, var(--bg-card));
        border-radius: 0 8px 8px 0;
        color: var(--muted);
      }

      .note strong {
        color: var(--text);
      }

      footer {
        margin-top: 2.5rem;
        padding-top: 1rem;
        border-top: 1px solid var(--border);
        color: var(--muted);
        font-size: 0.95rem;
      }

      .toc {
        display: grid;
        gap: 0.35rem;
        margin: 0;
        padding: 0;
        list-style: none;
      }

      .toc a {
        text-decoration: none;
        color: var(--muted);
      }

      .toc a:hover {
        color: var(--accent);
      }

      @media (max-width: 560px) {
        body {
          font-size: 1rem;
        }

        th,
        td {
          padding: 0.5rem;
          font-size: 0.92rem;
        }

        .topnav {
          position: static;
        }
      }
