:root {
  /* Color */
  --color-ink: #12131A;
  --color-surface: #191B26;
  --color-hairline: #2A2D3E;
  --color-text-primary: #E8E6F0;
  --color-text-muted: #8B8CA3;
  --color-signal: #2FD9C4;
  --color-pink: #FF9FD6;
  --color-lavender: #B79CFF;
  --color-pink-glow: rgba(255, 159, 214, 0.35);
  --color-signal-glow: rgba(47, 217, 196, 0.35);

  /* Type */
  /* IBM Plex Sans KR is bundled with Hangul coverage only, so it never
     competes for a Latin character. It sits behind the Latin face in each
     stack and picks up Korean text that would otherwise land on whatever the
     visitor's system happened to install. */
  --font-display: 'Archivo', 'IBM Plex Sans KR', sans-serif;
  --font-body: 'IBM Plex Sans', 'IBM Plex Sans KR', sans-serif;
  --font-mono: 'IBM Plex Mono', 'IBM Plex Sans KR', monospace;

  --fs-hero: clamp(2.5rem, 6vw, 4.5rem);
  --fs-h2: clamp(1.75rem, 3vw, 2.5rem);
  --fs-h3: 1.25rem;
  --fs-body: 1rem;
  --fs-small: 0.875rem;

  /* Spacing scale */
  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2.5rem;
  --space-5: 4rem;
  --space-6: 6rem;

  --radius-sm: 4px;
  --radius-md: 8px;

  --max-width: 72rem;
  --content-width: 42rem;
}

/* Paper is white, so the printed résumé takes the same palette inverted
   rather than a second set of colours in every component. The accents are
   darkened until they hold at least 4.5:1 on white, and the glows are dropped,
   because a printer renders a soft glow as a grey smudge.

   Scoped to resume.html. The other pages keep printing as they always have,
   and on those the bar fields are part of what gets printed: a field on paper
   can still be read. */
@media print {
  .page-resume {
    --color-ink: #FFFFFF;
    --color-surface: #FFFFFF;
    --color-hairline: #C4C5D0;
    --color-text-primary: #12131A;
    --color-text-muted: #3A3B4A;
    --color-signal: #0B6B61;
    --color-pink: #A3195B;
    --color-lavender: #5A3FB0;
    --color-pink-glow: transparent;
    --color-signal-glow: transparent;
  }
}
