/* Modern edition: map its tokens onto an active shared theme */
/* Screen only: print.css resets every token to paper and ink, and its :root selectors
   would otherwise lose to html[data-palette] on specificity */
@media screen {
  html[data-palette], html[data-palette][data-theme="light"], html[data-palette][data-theme="dark"] {
    --bg: var(--t-bg); --bg-elev: var(--t-surface); --ink: var(--t-fg); --ink-2: var(--t-fg-2); --muted: var(--t-muted);
    --line: var(--t-line); --line-strong: var(--t-line-control);   /* ghost-button and icon-button edges must reach 3:1 in every theme */
    --accent: var(--t-a1); --accent-ink: var(--t-bg); --accent-soft: var(--t-a1-soft);
    --blob-1: rgba(var(--t-a1-rgb), 0.32); --blob-2: rgba(var(--t-a2-rgb), 0.22); --blob-3: rgba(var(--t-a3-rgb), 0.24);
    --glow: rgba(var(--t-a1-rgb), 0.14); --grain-opacity: 0.08;
    --net-rgb: var(--t-fg-rgb); --net-accent-rgb: var(--t-a1-rgb); --net-alpha: 0.3;
    --shadow: 0 1px 2px rgba(0, 0, 0, 0.5), 0 20px 48px -16px rgba(0, 0, 0, 0.7);
  }
  html[data-palette] .site-header.is-scrolled { background: color-mix(in srgb, var(--t-bg) 78%, transparent); }
  html[data-palette] .status { background: color-mix(in srgb, var(--t-fg) 5%, transparent); }
  html[data-palette] .hero-card { background: color-mix(in srgb, var(--t-surface) 66%, transparent); }
  /* white grain for palettes comes from effects.css (pre-inverted SVG), no filter pass needed */
  html[data-palette] .theme-toggle { display: none; }   /* a chosen theme replaces light/dark */
}
