/*
 * THEME: plume  (SPEC §3.2)
 * 출신: _inbox/plume/tokens.css
 *
 * 톤: light · "warm cream + muted forest accent" · editorial / quiet / declarative
 * 키트가 oklch 네이티브라 값을 oklch 그대로 보존 — 톤(웜) 의 미묘함이 hex 변환에서 무뎌지지 않게.
 *
 * 매핑표 (키트 변수 → 계약 변수):
 *   --color-bg            (oklch warm cream)            → --c-canvas
 *   --color-bg-elevated   (oklch near-white card)       → --c-surface
 *   --color-bg-sunken     (oklch darker cream)          → --c-surface-soft
 *   --color-bg-inverse    (oklch warm near-black)       → --c-surface-dark
 *   (warm near-black 살짝 elev, 도출)                    → --c-surface-dark-elev
 *   --color-fg            (oklch primary text)          → --c-ink
 *   --color-fg            (키트는 본문도 잉크 — 회색본문X) → --c-body
 *   --color-fg-muted      (oklch secondary)             → --c-muted
 *   --color-fg-inverse    (= bg cream)                  → --c-on-dark
 *   --color-fg-inverse 78% opacity → 직접 도출            → --c-on-dark-muted
 *   --color-fg            (인라인 링크는 본문 잉크)       → --c-link
 *   --color-line          (oklch warm hairline)         → --c-hairline
 *   --color-line-strong   (oklch emphasized divider)    → --c-border-strong
 *   --color-accent        (oklch muted forest)          → --c-action
 *   --color-accent-hover  (oklch deeper forest)         → --c-action-hover
 *   --color-accent-fg     (oklch near-white)            → --c-on-action
 *   --color-accent        (한 viewport 당 하나만 — accent 도 같은 값)  → --c-accent
 *   --color-success       (oklch green)                 → --c-success
 *   --color-danger        (oklch warm red)              → --c-danger
 *
 * 누락: dark-elev/on-dark-muted 키트에 명시값 없어 시각적으로 매끄럽게 도출.
 *      tokens.css 의 폰트 부분은 fontsets/geist-plume 로 분리.
 *
 * 타입 스케일: 키트는 fs-12..fs-96 + clamp(vw) 로 반응형 — 계약은 고정 px 로 동결.
 *   히어로 headline clamp(56, 8vw, 96)            → --t-display 80px (스윗스팟)
 *   섹션 title  clamp(40, 5vw, 72)                → --t-h1      64px
 *   split title clamp(32, 4vw, 56)                → --t-h2      48px
 *   cell title  fs-32                              → --t-h3      32px
 *   sub/lede    fs-18                              → --t-body    18px
 *   body 일반   fs-14                              → --t-body-sm 14px
 *   eyebrow/mono fs-12                             → --t-caption 12px
 *
 * 간격: 역할 스케일은 4·8·12·16·24·32·48·64 로 통일.  키트 --space-9 (96px) 가 섹션 패딩 기본.
 * radius: 키트 sm/md/lg/xl/pill 5 단 → 계약 sm/md/lg/pill 4 단.  카드 표준 16(lg) 채택.
 *         (hero product 의 xl=24 는 16 으로 살짝 덜 둥글게 — 수용 가능한 손실).
 * shadow: 키트 sm/md/lg → 계약 card/float 2 단.  card=md, float=lg.
 */

:root {
  /* ===== 색: 액션 ===== */
  --c-action:            oklch(0.450 0.100 155);   /* muted forest */
  --c-action-hover:      oklch(0.400 0.100 155);
  --c-on-action:         oklch(0.985 0.005 75);    /* near-white on forest */
  --c-accent:            oklch(0.450 0.100 155);   /* 동일 — 키트는 single primary accent (§ README) */

  /* ===== 색: 텍스트 ===== */
  --c-ink:               oklch(0.220 0.014 60);    /* primary text */
  --c-body:              oklch(0.220 0.014 60);    /* 키트는 본문도 잉크 (--color-fg) */
  --c-muted:             oklch(0.500 0.012 60);    /* secondary */
  --c-on-dark:           oklch(0.970 0.012 75);    /* fg-inverse = bg cream */
  --c-on-dark-muted:     oklch(0.970 0.012 75 / 0.78);   /* 도출: opacity 78% (Footer/CTA 본문 톤) */
  --c-link:              oklch(0.220 0.014 60);

  /* ===== 색: 배경/표면 ===== */
  --c-canvas:            oklch(0.970 0.012 75);    /* warm cream */
  --c-surface:           oklch(0.992 0.006 75);    /* near-white card */
  --c-surface-soft:      oklch(0.935 0.014 72);    /* darker cream — Stats 띠 */
  --c-surface-dark:      oklch(0.185 0.014 60);    /* warm near-black — CTA/Footer */
  --c-surface-dark-elev: oklch(0.230 0.014 60);    /* 도출: dark 위 떠 있는 카드 */

  /* ===== 색: 경계 ===== */
  --c-hairline:          oklch(0.880 0.014 70);    /* warm hairline */
  --c-border-strong:     oklch(0.780 0.014 70);    /* emphasized divider */

  /* ===== 색: 의미 ===== */
  --c-success:           oklch(0.560 0.120 150);
  --c-danger:            oklch(0.560 0.180 25);

  /* ===== 폰트 / 폰트 두께 ===== */
  /* SPEC §3.1.5: 폰트는 테마 영역이 아님 — registry/fontsets/geist-plume.{css,json} 참조. */

  /* ===== 타입 스케일 ===== */
  --t-display:           80px;       /* hero clamp(56,8vw,96) 스윗스팟 */
  --t-h1:                64px;       /* 섹션 title clamp(40,5vw,72) */
  --t-h2:                48px;       /* split title clamp(32,4vw,56) */
  --t-h3:                32px;       /* feature/steps cell title */
  --t-body:              18px;       /* lede/sub */
  --t-body-sm:           14px;       /* body 일반 */
  --t-caption:           12px;       /* eyebrow/mono */

  /* ===== 간격 ===== */
  --s-1:                 4px;
  --s-2:                 8px;
  --s-3:                 12px;
  --s-4:                 16px;
  --s-5:                 24px;
  --s-6:                 32px;
  --s-7:                 48px;
  --s-8:                 64px;
  --s-section:           96px;        /* 키트 --space-9 — Plume 섹션 패딩 기본 */
  --s-container:         1200px;      /* 키트 --container-max */

  /* ===== radius ===== */
  --r-sm:                6px;
  --r-md:                10px;
  --r-lg:                16px;        /* 카드 표준 (키트 lg) */
  --r-pill:              999px;

  /* ===== 그림자 (키트 sm/md/lg — 따뜻한 잉크 계열) ===== */
  --shadow-card:         0 6px 20px rgba(28, 22, 14, 0.08);   /* 키트 --shadow-md */
  --shadow-float:        0 24px 60px rgba(28, 22, 14, 0.12);  /* 키트 --shadow-lg */
}
