/* AV Review / Akane — single source of truth. No build step required. */
:root {
  /* 1. Primitive: brand + five supporting colors + orange action accent. */
  --av-akane: #bf1648;
  --av-orange: #b85a12;
  --av-white: #ffffff;
  --av-paper: #f6f3ef;
  --av-ink: #29272a;
  --av-gray: #706970;
  --av-teal: #3e6864;
  --av-space-1: .25rem;
  --av-space-2: .5rem;
  --av-space-3: .75rem;
  --av-space-4: 1rem;
  --av-space-5: 1.25rem;
  --av-space-6: 1.5rem;
  --av-space-8: 2rem;
  --av-space-10: 2.5rem;
  --av-space-12: 3rem;
  --av-space-16: 4rem;
  --av-space-20: 5rem;
  --av-font-sans: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --av-font-serif: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
  --av-font-latin: Georgia, "Times New Roman", serif;
  --av-font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --av-text-xs: .75rem;
  --av-text-sm: .875rem;
  --av-text-base: 1rem;
  --av-text-lg: 1.125rem;
  --av-text-h3: clamp(1.125rem, 1rem + .4vw, 1.375rem);
  --av-text-h2: clamp(1.625rem, 1.25rem + 1.5vw, 2.375rem);
  --av-text-h1: clamp(2rem, 1.4rem + 2.5vw, 3.375rem);
  --av-radius-sm: 3px;
  --av-radius-md: 6px;
  --av-radius-chip: 10px;
  --av-radius-pill: 999px;
  --av-duration: 160ms;
  /* 2. Semantic: change roles here, not in individual components. */
  --av-color-brand: var(--av-akane);
  --av-color-bg: var(--av-white);
  --av-color-soft: var(--av-paper);
  --av-color-text: var(--av-ink);
  --av-color-muted: var(--av-gray);
  --av-color-info: var(--av-teal);
  --av-color-action: var(--av-orange);
  --av-color-action-hover: color-mix(in srgb, var(--av-orange) 82%, var(--av-ink));
  --av-color-action-active: color-mix(in srgb, var(--av-orange) 65%, var(--av-ink));
  --av-color-on-brand: var(--av-white);
  --av-color-hover: color-mix(in srgb, var(--av-akane) 82%, var(--av-ink));
  --av-color-active: color-mix(in srgb, var(--av-akane) 65%, var(--av-ink));
  --av-color-tint: color-mix(in srgb, var(--av-akane) 5%, var(--av-white));
  --av-color-info-tint: color-mix(in srgb, var(--av-teal) 7%, var(--av-white));
  --av-color-line: color-mix(in srgb, var(--av-ink) 18%, var(--av-white));
  --av-color-control: var(--av-gray);
  --av-color-error: var(--av-akane);
  --av-color-focus: var(--av-akane);
  --av-content-width: 70rem; /* 1120px at default font size */
  --av-prose-width: 51.25rem; /* 820px */
  --av-gutter: clamp(1rem, 3vw, 1.5rem);
  --av-section-space: clamp(3.5rem, 7vw, 5rem);
  --av-heading-font: var(--av-font-serif);
  --av-body-font: var(--av-font-sans);
  /* 3. Component: intentional, local overrides. */
  --av-button-bg: var(--av-color-brand);
  --av-button-fg: var(--av-color-on-brand);
  --av-button-height: 3rem;
  --av-button-radius: var(--av-radius-sm);
  --av-input-border: var(--av-color-control);
  --av-card-gap: var(--av-space-5);
  --av-card-radius: var(--av-radius-sm);
  --av-person-thumb: 8.75rem; /* 140px max */
  --av-profile-image: 13.75rem; /* 220px provisional */
  --av-fixed-clearance: 0px;
}
