/* ============================================================
   TYPOGRAPHY — PEEPHOLE. Three voices, no more.
   Anton            — display. EN only, huge, unapologetic.
                      Never below 34px; never for body copy.
   IBM Plex Sans JP — body. 日本語本文と小見出し。
   IBM Plex Mono    — meta. Labels, index numbers, stack tags.
   Serif prohibited. Weights beyond these are prohibited.
   ============================================================ */

:root {
  --font-display: "Anton", "IBM Plex Sans JP", system-ui, sans-serif;
  --font-body:    "IBM Plex Sans JP", system-ui, sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* --- Weights (Anton has only 400) --- */
  --weight-regular: 400;
  --weight-medium:  500;
  --weight-bold:    700;

  /* --- Display scale (Anton, fluid) --- */
  /* hero wordmark / section heads / work row titles */
  --display-xl: clamp(64px, 11vw, 150px);  /* @kind font */
  --display-lg: clamp(44px, 7vw, 96px);    /* @kind font */
  --display-md: clamp(34px, 5.4vw, 76px);  /* @kind font */

  /* --- Text scale (px) --- */
  --text-xs:   11px;
  --text-sm:   13px;
  --text-base: 15px;
  --text-md:   18px;
  --text-lg:   22px;

  /* --- Line heights --- */
  --leading-display: 0.98;   /* Anton sets solid */
  --leading-tight:   1.2;
  --leading-normal:  1.6;
  --leading-relaxed: 1.8;

  /* --- Letter spacing --- */
  --tracking-display: 0.01em;   /* Anton likes a hair of air   */
  --tracking-normal:  0;
  --tracking-label:   0.14em;   /* uppercase mono labels       */
  --tracking-eyebrow: 0.24em;   /* page-level eyebrows         */
}

/* Sensible element defaults consumers inherit */
:root {
  color: var(--text-body);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection { background: var(--selection-bg); color: var(--selection-fg); }
