  :root {
    --color-bg: oklch(97.5% 0.012 85);
    --color-surface: oklch(99.5% 0.004 85);
    --color-text: oklch(24% 0.02 60);
    --color-muted: oklch(52% 0.02 60);
    --color-line: oklch(89% 0.012 75);
    --color-accent: oklch(72% 0.13 195);
    --color-accent-soft: oklch(94% 0.04 195);

    --text-sm: 0.875rem;
    --text-base: clamp(0.975rem, 0.94rem + 0.18vw, 1.0625rem);
    --text-h2: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
    --text-h1: clamp(1.75rem, 1.35rem + 1.7vw, 2.5rem);

    --sp-1: 0.375rem;
    --sp-2: 0.75rem;
    --sp-3: 1.25rem;
    --sp-4: 2rem;
    --sp-5: 3.25rem;

    --radius: 14px;
    --measure: 44rem;
  }

  @media (prefers-color-scheme: dark) {
    :root {
      --color-bg: oklch(19% 0.015 75);
      --color-surface: oklch(23% 0.016 75);
      --color-text: oklch(93% 0.012 85);
      --color-muted: oklch(70% 0.015 80);
      --color-line: oklch(33% 0.016 75);
      --color-accent: oklch(78% 0.12 195);
      --color-accent-soft: oklch(30% 0.045 195);
    }
  }

  * { box-sizing: border-box; }

  body {
    margin: 0;
    padding-block: var(--sp-5);
    padding-inline: var(--sp-3);
    background: var(--color-bg);
    color: var(--color-text);
    font-family: "Pretendard", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo",
                 "Malgun Gothic", system-ui, sans-serif;
    font-size: var(--text-base);
    line-height: 1.75;
    word-break: keep-all;
    -webkit-text-size-adjust: 100%;
  }

  .doc { max-width: var(--measure); margin-inline: auto; }

  .doc-head { padding-bottom: var(--sp-3); border-bottom: 2px solid var(--color-text); }

  .eyebrow {
    margin: 0 0 var(--sp-1);
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.14em;
    color: var(--color-muted);
  }

  h1 {
    margin: 0;
    font-size: var(--text-h1);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
  }

  .lead { margin: var(--sp-3) 0 0; color: var(--color-muted); }

  section { margin-top: var(--sp-4); }

  h2 {
    display: flex;
    align-items: baseline;
    gap: var(--sp-2);
    margin: 0 0 var(--sp-2);
    font-size: var(--text-h2);
    font-weight: 700;
    letter-spacing: -0.01em;
  }

  h2 .num {
    flex: none;
    min-width: 1.9em;
    padding: 0.1em 0.5em;
    border-radius: 999px;
    background: var(--color-accent-soft);
    color: var(--color-accent);
    font-size: var(--text-sm);
    font-weight: 700;
    text-align: center;
    font-variant-numeric: tabular-nums;
  }

  p { margin: 0 0 var(--sp-2); }
  p:last-child { margin-bottom: 0; }

  ul { margin: 0 0 var(--sp-2); padding-left: 1.15rem; }
  li { margin-bottom: var(--sp-1); }
  li::marker { color: var(--color-accent); }

  .table-wrap {
    overflow-x: auto;
    margin-bottom: var(--sp-2);
    border: 1px solid var(--color-line);
    border-radius: var(--radius);
    background: var(--color-surface);
  }

  table { width: 100%; min-width: 30rem; border-collapse: collapse; font-size: var(--text-sm); }

  th, td { padding: var(--sp-2) var(--sp-3); text-align: left; vertical-align: top; }

  thead th {
    border-bottom: 1px solid var(--color-line);
    font-weight: 700;
    white-space: nowrap;
  }

  tbody tr + tr td { border-top: 1px solid var(--color-line); }
  tbody td:first-child { font-weight: 600; }

  .note {
    margin: var(--sp-2) 0 0;
    padding-left: var(--sp-3);
    border-left: 3px solid var(--color-accent);
    color: var(--color-muted);
    font-size: var(--text-sm);
  }

  .callout {
    padding: var(--sp-3);
    border: 1px solid var(--color-line);
    border-radius: var(--radius);
    background: var(--color-surface);
  }

  .contact { margin: 0; }
  .contact dt { font-size: var(--text-sm); color: var(--color-muted); }
  .contact dd { margin: 0 0 var(--sp-2); font-weight: 600; }
  .contact dd:last-child { margin-bottom: 0; }

  a { color: var(--color-accent); text-underline-offset: 0.2em; }
  a:hover { text-decoration-thickness: 2px; }

  .doc-foot {
    margin-top: var(--sp-5);
    padding-top: var(--sp-3);
    border-top: 1px solid var(--color-line);
    color: var(--color-muted);
    font-size: var(--text-sm);
  }
