/**
 * gp-core / tokens.css
 *
 * Governed exception tokens — the only place a book-specific, non-ACSS
 * design value is allowed to be declared. Every token below was checked
 * against the live ACSS variable dump and confirmed to have no fitting
 * ACSS equivalent before being proposed (see build/chris-acss-ui-sheet.md,
 * § "Proposed exception tokens", for the full per-token reasoning). Chris
 * approved all 10 as proposed, including the display-title's option (A)
 * "accept the exception token" (2026-07-04).
 *
 * Consuming Bricks classes reference these via var(--gp-...) — never a
 * raw literal typed into a Bricks UI field again. If a value here ever
 * needs to change, it changes in exactly one place (this file), not in
 * N separate class settings.
 */

:root {
  /* Cover title — font-size. ACSS's --h1 ceiling (42.6px) can reach only
     ~42% of the required 102.4px even at maximum dashboard tuning — this
     is an architectural gap, not a "close enough" one. Approved as
     option (A): book-specific display-scale value, not a sitewide --h1
     remap. Used by: gp-cover__title, _typography.font-size. */
  --gp-title-size: clamp(5.12rem, 8.5vw, 10.24rem); /* approved 2026-07-04 */

  /* Cover title — letter-spacing. No ACSS letter-spacing/tracking scale
     exists at all (only --btn-letter-spacing, a button-specific token
     currently 0). Used by: gp-cover__title, _typography.letter-spacing. */
  --gp-title-tracking: -.025em; /* approved 2026-07-04 */

  /* Small uppercase label tracking (kicker/tags/CTA/teaser-label). Same
     "no general tracking scale" reasoning as --gp-title-tracking. Used
     by: gp-cover__cta, gp-cover__kicker, gp-cover__tags,
     gp-cover__teasers-label — all _typography.letter-spacing. */
  --gp-tracking-label: 0.16em; /* approved 2026-07-04 */

  /* Sticky header bar height. Design-specified chrome dimension — live-
     tested to confirm this is NOT a "set nothing" case (the header would
     naturally size to ~52px from its own content without this). Used by:
     gp-site-header__inner, _height. */
  --gp-header-height: 64px; /* approved 2026-07-04 */

  /* Header's translucent backdrop-filter blur radius. No ACSS blur/
     backdrop-filter token exists in this framework. Used by:
     gp-site-header, _cssCustom backdrop-filter/-webkit-backdrop-filter. */
  --gp-blur-amount: 10px; /* approved 2026-07-04 */

  /* Header wordmark's accent-dot width/height. Small, exact, prototype-
     specified decoration size — no ACSS icon/dot-size token this
     granular exists. Used by: gp-site-header__wordmark's _cssCustom
     ::before (the live-rendering dot) and the orphaned
     gp-site-header__wordmark-dot class's _width/_height (registered
     Phase 1C, never applied to any element — kept in sync for registry
     consistency per the same reasoning Run 8's color migration used). */
  --gp-dot-size: 9px; /* approved 2026-07-04 */

  /* Active/hover nav-link underline's vertical offset from the link's
     bottom edge. Art-directed positioning value, no ACSS offset/position
     token fits. Used by: gp-site-header__nav-link and
     gp-site-header__nav-link--active, both _cssCustom ::after bottom. */
  --gp-underline-offset: 4px; /* approved 2026-07-04 */

  /* Active/hover nav-link underline's thickness. Checked ACSS's
     --col-rule-width-s/m/l (a different, column-divider-specific role)
     — none this thin, not semantically the same use case anyway. Used
     by: gp-site-header__nav-link and gp-site-header__nav-link--active,
     both _cssCustom ::after height. */
  --gp-underline-thickness: 1.5px; /* approved 2026-07-04 */

  /* Header/footer wordmark font-size. Computed to match the prototype's
     1.18rem at a 16px root, scaled ×1.6 for this site's 10px root
     (Run 5's established scaling methodology). --text-l/--text-xl are
     both fluid clamps that would grow with viewport width, while this
     value is a flat, non-fluid literal in the prototype — the same
     fluid-vs-flat fidelity distinction already documented for
     gp-cover__intro's font-size (wp-plan.md §0.7a item 2). Used by:
     gp-site-header__wordmark and the orphaned
     gp-site-header__wordmark-title, both _typography.font-size. */
  --gp-wordmark-size: 1.888rem; /* approved 2026-07-04 */

  /* Footer Buchkinder credit-logo height. No ACSS icon-size token exists
     for this role. Doubled from the original 28px on Chris's Run 14
     directive ("make it twice as big"); width stays auto so it scales
     proportionally. Used by: gp-site-footer__credit-logo, _height. */
  --gp-logo-height: 56px; /* approved 2026-07-04; doubled 2026-07-05 (Run 14) */
}

/* NOTE (v0.4.0, Run 14): --gp-progress-bar-thickness (added Run 13) was
   REMOVED here. Chris's verdict was that the fixed-bottom reading bar was
   "almost not visible"; it has been replaced by the circular reading-
   progress indicator in the floating .gp-reader-tools widget. The ring's
   stroke geometry needs no exception token (it is component-local SVG
   coordinate/stroke styling in the gp-reader-progress class, the same
   status as gp-chapter-card's aspect-ratio literal). This returns the
   approved exception-token count to the governed 10 — the Run-13 token
   was never separately re-ratified by Chris and is now moot. */
