/* @ass/tokens 0.2.0 — GENERATO da tokens.json (sha256 558e92dc9e7b). Non modificare a mano: pnpm --filter @ass/tokens build */

:root {
  /* Colori primitivi — palette P1 «Lime». Nei componenti usa i semantici qui sotto. */
  --ass-color-ink: #10162F; /* Inchiostro blu notte */
  --ass-color-paper: #FFFDF7; /* Carta */
  --ass-color-c1: #BEF229; /* Lime evidenziatore */
  --ass-color-c2: #FF5470; /* Corallo anguria */
  --ass-color-c3: #2BD9D9; /* Acqua schermo */
  --ass-color-white: #FFFFFF; /* Bianco */
  --ass-color-neutral-0: var(--ass-color-white);
  --ass-color-neutral-50: var(--ass-color-paper);
  --ass-color-neutral-100: #F4F5EF; /* Carta velata */
  --ass-color-neutral-200: #E4E4DA; /* Filetto chiaro */
  --ass-color-neutral-400: #AEB4CB; /* Testo secondario sul tema scuro */
  --ass-color-neutral-600: #4A516B; /* Testo secondario sul tema chiaro */
  --ass-color-neutral-700: #2A3358; /* Filetto e ombra fumetto del tema scuro */
  --ass-color-neutral-800: #212A4C; /* Superficie alternativa scura */
  --ass-color-neutral-850: #18203F; /* Superficie scura P1 */
  --ass-color-neutral-900: var(--ass-color-ink);
  --ass-color-neutral-950: #0B1022; /* Notte */
  --ass-color-lime-soft: #F5FBD6; /* Tinta lime 16% su carta */
  --ass-color-lime-base: var(--ass-color-c1);
  --ass-color-lime-deep: #3F6B12; /* Verde lime scuro, solo per testo di stato su chiaro */
  --ass-color-lime-soft-dark: #2F3D23; /* Tinta lime 20% su notte */
  --ass-color-lime-dot: #9CC91F; /* Punti del retino halftone su carta */
  --ass-color-coral-soft: #FFE2E1; /* Tinta corallo 16% su carta */
  --ass-color-coral-base: var(--ass-color-c2);
  --ass-color-coral-focus: #E0405E; /* Corallo dell’anello di focus, nei due temi */
  --ass-color-coral-deep: #B8304D; /* Corallo scuro per testo di errore su chiaro */
  --ass-color-coral-light: #FF7088; /* Corallo chiaro per testo di errore su scuro */
  --ass-color-coral-soft-dark: #3C1E32; /* Tinta corallo 20% su notte */
  --ass-color-aqua-soft: #DDF7F2; /* Tinta acqua 16% su carta */
  --ass-color-aqua-base: var(--ass-color-c3);
  --ass-color-aqua-deep: #0F6E78; /* Acqua scuro per testo informativo su chiaro */
  --ass-color-aqua-soft-dark: #113847; /* Tinta acqua 20% su notte */
  --ass-color-amber-soft: #FFF1D5; /* Tinta ambra 16% su carta */
  --ass-color-amber-base: #FFB020; /* Ambra avviso */
  --ass-color-amber-deep: #855600; /* Ambra scuro per testo di avviso su chiaro */
  --ass-color-amber-light: #FFC24D; /* Ambra chiaro per testo di avviso su scuro */
  --ass-color-amber-soft-dark: #3C3022; /* Tinta ambra 20% su notte */
  --ass-color-character-skin: #D5B393; /* Tinta B della pelle di Antonio, RISERVA non usata */

  /* Famiglie */
  --ass-font-display: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --ass-font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ass-font-comic: Bangers, Impact, sans-serif;
  --ass-font-bubble: "Comic Neue", "Segoe UI", system-ui, sans-serif;
  --ass-font-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace;

  /* Pesi, interlinea, spaziatura lettere */
  --ass-font-weight-regular: 400;
  --ass-font-weight-medium: 500;
  --ass-font-weight-semibold: 600;
  --ass-font-weight-bold: 700;
  --ass-font-weight-extrabold: 800;
  --ass-line-height-none: 1;
  --ass-line-height-tight: 1.05;
  --ass-line-height-heading: 1.1;
  --ass-line-height-snug: 1.3;
  --ass-line-height-body: 1.6;
  --ass-tracking-tight: -0.02em;
  --ass-tracking-normal: 0em;
  --ass-tracking-comic: 0.03em;
  --ass-tracking-caps: 0.09em;

  /* Scala tipografica fluida (360→1280 px di viewport) */
  --ass-font-size-xs: 0.75rem; /* 12 px */
  --ass-font-size-sm: clamp(0.8333rem, 0.8072rem + 0.1159vw, 0.9rem); /* 13.33→14.4 px */
  --ass-font-size-base: clamp(1rem, 0.9511rem + 0.2174vw, 1.125rem); /* 16→18 px */
  --ass-font-size-md: clamp(1.2rem, 1.1193rem + 0.3587vw, 1.4063rem); /* 19.2→22.5 px */
  --ass-font-size-lg: clamp(1.44rem, 1.3156rem + 0.5527vw, 1.7578rem); /* 23.04→28.13 px */
  --ass-font-size-xl: clamp(1.728rem, 1.5444rem + 0.8161vw, 2.1973rem); /* 27.65→35.16 px */
  --ass-font-size-2xl: clamp(2.0736rem, 1.8103rem + 1.1704vw, 2.7466rem); /* 33.18→43.95 px */
  --ass-font-size-3xl: clamp(2.4883rem, 2.1186rem + 1.6433vw, 3.4332rem); /* 39.81→54.93 px */
  --ass-font-size-4xl: clamp(2.986rem, 2.4751rem + 2.2705vw, 4.2915rem); /* 47.78→68.66 px */

  /* Stili di testo: font: var(--ass-text-h1); letter-spacing: var(--ass-text-h1-tracking) */
  --ass-text-display: var(--ass-font-weight-extrabold) var(--ass-font-size-4xl)/var(--ass-line-height-tight) var(--ass-font-display);
  --ass-text-display-tracking: var(--ass-tracking-tight);
  --ass-text-h1: var(--ass-font-weight-extrabold) var(--ass-font-size-3xl)/var(--ass-line-height-heading) var(--ass-font-display);
  --ass-text-h1-tracking: var(--ass-tracking-tight);
  --ass-text-h2: var(--ass-font-weight-extrabold) var(--ass-font-size-xl)/var(--ass-line-height-heading) var(--ass-font-display);
  --ass-text-h2-tracking: var(--ass-tracking-tight);
  --ass-text-h3: var(--ass-font-weight-bold) var(--ass-font-size-lg)/var(--ass-line-height-heading) var(--ass-font-display);
  --ass-text-h3-tracking: var(--ass-tracking-tight);
  --ass-text-h4: var(--ass-font-weight-bold) var(--ass-font-size-md)/var(--ass-line-height-snug) var(--ass-font-display);
  --ass-text-h4-tracking: var(--ass-tracking-normal);
  --ass-text-lead: var(--ass-font-weight-regular) var(--ass-font-size-md)/var(--ass-line-height-snug) var(--ass-font-body);
  --ass-text-lead-tracking: var(--ass-tracking-normal);
  --ass-text-body: var(--ass-font-weight-regular) var(--ass-font-size-base)/var(--ass-line-height-body) var(--ass-font-body);
  --ass-text-body-tracking: var(--ass-tracking-normal);
  --ass-text-small: var(--ass-font-weight-regular) var(--ass-font-size-sm)/var(--ass-line-height-snug) var(--ass-font-body);
  --ass-text-small-tracking: var(--ass-tracking-normal);
  --ass-text-caption: var(--ass-font-weight-regular) var(--ass-font-size-xs)/var(--ass-line-height-snug) var(--ass-font-body);
  --ass-text-caption-tracking: var(--ass-tracking-normal);
  --ass-text-eyebrow: var(--ass-font-weight-bold) var(--ass-font-size-xs)/var(--ass-line-height-snug) var(--ass-font-mono);
  --ass-text-eyebrow-tracking: var(--ass-tracking-caps);
  --ass-text-code: var(--ass-font-weight-regular) var(--ass-font-size-sm)/var(--ass-line-height-body) var(--ass-font-mono);
  --ass-text-code-tracking: var(--ass-tracking-normal);
  --ass-text-bubble: var(--ass-font-weight-bold) var(--ass-font-size-md)/var(--ass-line-height-snug) var(--ass-font-bubble);
  --ass-text-bubble-tracking: var(--ass-tracking-normal);
  --ass-text-sfx: var(--ass-font-weight-regular) var(--ass-font-size-2xl)/var(--ass-line-height-none) var(--ass-font-comic);
  --ass-text-sfx-tracking: var(--ass-tracking-comic);

  /* Spazi (griglia 4 px) */
  --ass-space-0: 0; /* 0 px */
  --ass-space-1: 0.25rem; /* 4 px */
  --ass-space-2: 0.5rem; /* 8 px */
  --ass-space-3: 0.75rem; /* 12 px */
  --ass-space-4: 1rem; /* 16 px */
  --ass-space-5: 1.25rem; /* 20 px */
  --ass-space-6: 1.5rem; /* 24 px */
  --ass-space-8: 2rem; /* 32 px */
  --ass-space-10: 2.5rem; /* 40 px */
  --ass-space-12: 3rem; /* 48 px */
  --ass-space-16: 4rem; /* 64 px */
  --ass-space-20: 5rem; /* 80 px */
  --ass-space-24: 6rem; /* 96 px */

  /* Layout */
  --ass-layout-content: 45rem; /* 720 px */
  --ass-layout-wide: 70rem; /* 1120 px */
  --ass-layout-gutter: clamp(1rem, 0.6087rem + 1.7391vw, 2rem); /* 16→32 px */
  --ass-layout-section: clamp(2.5rem, 1.1304rem + 6.087vw, 6rem); /* 40→96 px */

  /* Raggi */
  --ass-radius-none: 0px;
  --ass-radius-xs: 4px;
  --ass-radius-sm: 6px;
  --ass-radius-md: 12px;
  --ass-radius-lg: 18px;
  --ass-radius-xl: 26px;
  --ass-radius-pill: 999px;

  /* Bordi d’inchiostro */
  --ass-border-hairline: 1px; /* Solo divisori */
  --ass-border-sm: 2px; /* Card, tag, campi */
  --ass-border-md: 2.5px; /* Pulsanti */
  --ass-border-lg: 3px; /* Pannelli, nuvolette, cornici */
  --ass-border-focus: 3px; /* Spessore dell’anello di focus */
  --ass-border-focus-offset: 3px;

  /* Opacità e retino */
  --ass-opacity-shade: 0.18;
  --ass-opacity-disabled: 0.45;
  --ass-opacity-halftone: 0.55;
  --ass-pattern-halftone-size: 12px 12px;

  /* Serie e rubriche: colori fissi approvati il 24/09/2026 (non cambiano col tema). Es.: background: var(--ass-series-truffa-bg) */
  --ass-series-sul-serio-bg: var(--ass-color-c1); /* Fondo lime pieno, con retino e linee cinetiche */
  --ass-series-sul-serio-text: var(--ass-color-ink); /* Testo sul fondo */
  --ass-series-sul-serio-title: var(--ass-color-ink); /* Titolo in Bangers, sempre una domanda che finisce in ?! */
  --ass-series-sul-serio-title-shadow: var(--ass-color-c2); /* Ombra corallo sfalsata sotto il titolo e le battute in Bangers */
  --ass-series-sul-serio-speed-lines: var(--ass-color-paper); /* Linee cinetiche attorno a Serio */
  --ass-series-sul-serio-tag-bg: var(--ass-color-paper); /* Pillola «SUL SERIO?!» in alto a sinistra */
  --ass-series-sul-serio-tag-text: var(--ass-color-ink);
  --ass-series-sul-serio-halftone: var(--ass-color-lime-dot); /* Punti del retino */
  --ass-series-sul-serio-halftone-opacity: 1;
  --ass-series-clic-per-clic-bg: var(--ass-color-c3); /* Fondo acqua pieno */
  --ass-series-clic-per-clic-text: var(--ass-color-ink); /* Testo sul fondo */
  --ass-series-clic-per-clic-title: var(--ass-color-ink); /* Titolo in Bricolage 800 */
  --ass-series-clic-per-clic-highlight: var(--ass-color-c1); /* Evidenziatore lime su una parola del titolo */
  --ass-series-clic-per-clic-on-highlight: var(--ass-color-ink);
  --ass-series-clic-per-clic-tag-bg: var(--ass-color-paper); /* Pillola «CLIC PER CLIC» */
  --ass-series-clic-per-clic-tag-text: var(--ass-color-ink);
  --ass-series-clic-per-clic-halftone: var(--ass-color-ink); /* Retino .shade */
  --ass-series-clic-per-clic-halftone-opacity: var(--ass-opacity-shade);
  --ass-series-tap-per-tap-bg: var(--ass-series-clic-per-clic-bg);
  --ass-series-tap-per-tap-text: var(--ass-series-clic-per-clic-text);
  --ass-series-tap-per-tap-title: var(--ass-series-clic-per-clic-title);
  --ass-series-tap-per-tap-highlight: var(--ass-series-clic-per-clic-highlight);
  --ass-series-tap-per-tap-on-highlight: var(--ass-series-clic-per-clic-on-highlight);
  --ass-series-tap-per-tap-tag-bg: var(--ass-series-clic-per-clic-tag-bg);
  --ass-series-tap-per-tap-tag-text: var(--ass-series-clic-per-clic-tag-text);
  --ass-series-tap-per-tap-halftone: var(--ass-series-clic-per-clic-halftone);
  --ass-series-tap-per-tap-halftone-opacity: var(--ass-series-clic-per-clic-halftone-opacity);
  --ass-series-truffa-bg: var(--ass-color-neutral-950); /* Fondo notte #0B1022 */
  --ass-series-truffa-text: var(--ass-color-paper); /* Testo sul fondo notte */
  --ass-series-truffa-title: var(--ass-color-paper); /* Titolo in Bricolage 800 carta */
  --ass-series-truffa-highlight: var(--ass-color-c2); /* Evidenziatore corallo sulla seconda riga del titolo */
  --ass-series-truffa-on-highlight: var(--ass-color-ink);
  --ass-series-truffa-tape: var(--ass-color-c2); /* Nastro «OCCHIO ALLA TRUFFA AI» inclinato, a tutta larghezza, bordato d’inchiostro */
  --ass-series-truffa-tape-text: var(--ass-color-ink);
  --ass-series-truffa-halo: var(--ass-color-paper); /* Alone di Serio sul fondo scuro */
  --ass-series-truffa-halftone: var(--ass-color-neutral-700); /* Punti del retino scuro */
  --ass-series-truffa-halftone-opacity: 1;
  --ass-rubric-consiglio-antonio-bg: var(--ass-color-paper); /* Fondo carta */
  --ass-rubric-consiglio-antonio-text: var(--ass-color-ink);
  --ass-rubric-consiglio-antonio-title: var(--ass-color-ink); /* Consiglio in Bricolage 800 nella nuvoletta */
  --ass-rubric-consiglio-antonio-highlight: var(--ass-color-c1); /* Evidenziatore lime su una parola */
  --ass-rubric-consiglio-antonio-on-highlight: var(--ass-color-ink);
  --ass-rubric-consiglio-antonio-tag-bg: var(--ass-color-c3); /* Pillola acqua «IL CONSIGLIO DI ANTONIO» */
  --ass-rubric-consiglio-antonio-tag-text: var(--ass-color-ink);
  --ass-rubric-consiglio-antonio-halftone: var(--ass-color-lime-dot); /* Punti del retino */
  --ass-rubric-consiglio-antonio-halftone-opacity: 1;
  --ass-rubric-prima-di-incollare-bg: var(--ass-color-c2); /* Fondo corallo pieno */
  --ass-rubric-prima-di-incollare-text: var(--ass-color-ink); /* Testo sul corallo */
  --ass-rubric-prima-di-incollare-title: var(--ass-color-ink); /* Titolo in Bricolage 800 */
  --ass-rubric-prima-di-incollare-highlight: var(--ass-color-paper); /* Evidenziatore carta su una riga del titolo */
  --ass-rubric-prima-di-incollare-on-highlight: var(--ass-color-ink);
  --ass-rubric-prima-di-incollare-tag-bg: var(--ass-color-paper); /* Pillola «PRIMA DI INCOLLARE» */
  --ass-rubric-prima-di-incollare-tag-text: var(--ass-color-ink);
  --ass-rubric-prima-di-incollare-halftone: var(--ass-color-ink); /* Retino .shade */
  --ass-rubric-prima-di-incollare-halftone-opacity: var(--ass-opacity-shade);

  /* Movimento */
  --ass-duration-fast: 120ms;
  --ass-duration-base: 200ms;
  --ass-duration-slow: 320ms;
  --ass-duration-slower: 480ms;
  --ass-duration-beat: 600ms;
  --ass-ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ass-ease-enter: cubic-bezier(0, 0, 0.2, 1);
  --ass-ease-exit: cubic-bezier(0.4, 0, 1, 1);
  --ass-ease-pop: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ass-ease-linear: cubic-bezier(0, 0, 1, 1);

  /* Livelli (z-index) */
  --ass-z-below: -1;
  --ass-z-base: 0;
  --ass-z-raised: 10;
  --ass-z-dropdown: 100;
  --ass-z-sticky: 200;
  --ass-z-header: 300;
  --ass-z-overlay: 400;
  --ass-z-modal: 500;
  --ass-z-popover: 600;
  --ass-z-toast: 700;
  --ass-z-tooltip: 800;
  --ass-z-skip-link: 900;

  /* Breakpoint (riferimento per JS: le media query non leggono le variabili → usa i valori in em) */
  --ass-bp-sm: 30em; /* 480 px */
  --ass-bp-md: 48em; /* 768 px */
  --ass-bp-lg: 64em; /* 1024 px */
  --ass-bp-xl: 80em; /* 1280 px */
}

/* Tema chiaro (predefinito). [data-theme="light"] lo forza anche dentro una pagina scura. */
:root,
[data-theme="light"] {
  color-scheme: light;
  --ass-color-bg: var(--ass-color-paper);
  --ass-color-surface: var(--ass-color-white);
  --ass-color-surface-alt: var(--ass-color-neutral-100);
  --ass-color-text: var(--ass-color-ink);
  --ass-color-muted: var(--ass-color-neutral-600);
  --ass-color-line: var(--ass-color-neutral-200);
  --ass-color-border: var(--ass-color-ink);
  --ass-color-shadow: var(--ass-color-ink);
  --ass-color-inverse-bg: var(--ass-color-ink);
  --ass-color-inverse-text: var(--ass-color-paper);
  --ass-color-accent: var(--ass-color-c1);
  --ass-color-accent-ink: var(--ass-color-ink);
  --ass-color-accent-soft: var(--ass-color-lime-soft);
  --ass-color-link: var(--ass-color-ink);
  --ass-color-link-underline: var(--ass-color-ink);
  --ass-color-link-hover-bg: var(--ass-color-c1);
  --ass-color-link-hover-text: var(--ass-color-ink);
  --ass-color-highlight: var(--ass-color-c1);
  --ass-color-on-highlight: var(--ass-color-ink);
  --ass-highlight-start: 58%;
  --ass-highlight-end: 92%;
  --ass-color-halftone: var(--ass-color-lime-dot);
  --ass-color-selection-bg: var(--ass-color-c1);
  --ass-color-selection-text: var(--ass-color-ink);
  --ass-color-focus: var(--ass-color-coral-focus);
  --ass-color-success: var(--ass-color-c1);
  --ass-color-success-ink: var(--ass-color-ink);
  --ass-color-success-soft: var(--ass-color-lime-soft);
  --ass-color-success-text: var(--ass-color-lime-deep);
  --ass-color-warning: var(--ass-color-amber-base);
  --ass-color-warning-ink: var(--ass-color-ink);
  --ass-color-warning-soft: var(--ass-color-amber-soft);
  --ass-color-warning-text: var(--ass-color-amber-deep);
  --ass-color-danger: var(--ass-color-c2);
  --ass-color-danger-ink: var(--ass-color-ink);
  --ass-color-danger-soft: var(--ass-color-coral-soft);
  --ass-color-danger-text: var(--ass-color-coral-deep);
  --ass-color-info: var(--ass-color-c3);
  --ass-color-info-ink: var(--ass-color-ink);
  --ass-color-info-soft: var(--ass-color-aqua-soft);
  --ass-color-info-text: var(--ass-color-aqua-deep);
}

/* Tema scuro dal sistema operativo, salvo scelta esplicita del chiaro. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --ass-color-bg: var(--ass-color-neutral-950);
    --ass-color-surface: var(--ass-color-neutral-850);
    --ass-color-surface-alt: var(--ass-color-neutral-800);
    --ass-color-text: var(--ass-color-neutral-100);
    --ass-color-muted: var(--ass-color-neutral-400);
    --ass-color-line: var(--ass-color-neutral-700);
    --ass-color-border: var(--ass-color-neutral-100);
    --ass-color-shadow: var(--ass-color-neutral-700);
    --ass-color-inverse-bg: var(--ass-color-paper);
    --ass-color-inverse-text: var(--ass-color-ink);
    --ass-color-accent: var(--ass-color-c1);
    --ass-color-accent-ink: var(--ass-color-ink);
    --ass-color-accent-soft: var(--ass-color-lime-soft-dark);
    --ass-color-link: var(--ass-color-c1);
    --ass-color-link-underline: var(--ass-color-c1);
    --ass-color-link-hover-bg: var(--ass-color-c1);
    --ass-color-link-hover-text: var(--ass-color-ink);
    --ass-color-highlight: var(--ass-color-c1);
    --ass-color-on-highlight: var(--ass-color-ink);
    --ass-highlight-start: 0%;
    --ass-highlight-end: 100%;
    --ass-color-halftone: var(--ass-color-neutral-700);
    --ass-color-selection-bg: var(--ass-color-c1);
    --ass-color-selection-text: var(--ass-color-ink);
    --ass-color-focus: var(--ass-color-coral-focus);
    --ass-color-success: var(--ass-color-c1);
    --ass-color-success-ink: var(--ass-color-ink);
    --ass-color-success-soft: var(--ass-color-lime-soft-dark);
    --ass-color-success-text: var(--ass-color-c1);
    --ass-color-warning: var(--ass-color-amber-base);
    --ass-color-warning-ink: var(--ass-color-ink);
    --ass-color-warning-soft: var(--ass-color-amber-soft-dark);
    --ass-color-warning-text: var(--ass-color-amber-light);
    --ass-color-danger: var(--ass-color-c2);
    --ass-color-danger-ink: var(--ass-color-ink);
    --ass-color-danger-soft: var(--ass-color-coral-soft-dark);
    --ass-color-danger-text: var(--ass-color-coral-light);
    --ass-color-info: var(--ass-color-c3);
    --ass-color-info-ink: var(--ass-color-ink);
    --ass-color-info-soft: var(--ass-color-aqua-soft-dark);
    --ass-color-info-text: var(--ass-color-c3);
  }
}

/* Tema scuro forzato (interruttore del sito, sezioni scure). */
[data-theme="dark"] {
  color-scheme: dark;
  --ass-color-bg: var(--ass-color-neutral-950);
  --ass-color-surface: var(--ass-color-neutral-850);
  --ass-color-surface-alt: var(--ass-color-neutral-800);
  --ass-color-text: var(--ass-color-neutral-100);
  --ass-color-muted: var(--ass-color-neutral-400);
  --ass-color-line: var(--ass-color-neutral-700);
  --ass-color-border: var(--ass-color-neutral-100);
  --ass-color-shadow: var(--ass-color-neutral-700);
  --ass-color-inverse-bg: var(--ass-color-paper);
  --ass-color-inverse-text: var(--ass-color-ink);
  --ass-color-accent: var(--ass-color-c1);
  --ass-color-accent-ink: var(--ass-color-ink);
  --ass-color-accent-soft: var(--ass-color-lime-soft-dark);
  --ass-color-link: var(--ass-color-c1);
  --ass-color-link-underline: var(--ass-color-c1);
  --ass-color-link-hover-bg: var(--ass-color-c1);
  --ass-color-link-hover-text: var(--ass-color-ink);
  --ass-color-highlight: var(--ass-color-c1);
  --ass-color-on-highlight: var(--ass-color-ink);
  --ass-highlight-start: 0%;
  --ass-highlight-end: 100%;
  --ass-color-halftone: var(--ass-color-neutral-700);
  --ass-color-selection-bg: var(--ass-color-c1);
  --ass-color-selection-text: var(--ass-color-ink);
  --ass-color-focus: var(--ass-color-coral-focus);
  --ass-color-success: var(--ass-color-c1);
  --ass-color-success-ink: var(--ass-color-ink);
  --ass-color-success-soft: var(--ass-color-lime-soft-dark);
  --ass-color-success-text: var(--ass-color-c1);
  --ass-color-warning: var(--ass-color-amber-base);
  --ass-color-warning-ink: var(--ass-color-ink);
  --ass-color-warning-soft: var(--ass-color-amber-soft-dark);
  --ass-color-warning-text: var(--ass-color-amber-light);
  --ass-color-danger: var(--ass-color-c2);
  --ass-color-danger-ink: var(--ass-color-ink);
  --ass-color-danger-soft: var(--ass-color-coral-soft-dark);
  --ass-color-danger-text: var(--ass-color-coral-light);
  --ass-color-info: var(--ass-color-c3);
  --ass-color-info-ink: var(--ass-color-ink);
  --ass-color-info-soft: var(--ass-color-aqua-soft-dark);
  --ass-color-info-text: var(--ass-color-c3);
}

/* Valori composti che seguono il tema (ombre fumetto, evidenziatore, retino, focus). */
:root,
[data-theme] {
  --ass-shadow-pressed: 1px 1px 0 0 var(--ass-color-shadow);
  --ass-shadow-sm: 3px 3px 0 0 var(--ass-color-shadow);
  --ass-shadow-md: 4px 4px 0 0 var(--ass-color-shadow);
  --ass-shadow-lg: 6px 6px 0 0 var(--ass-color-shadow);
  --ass-shadow-xl: 8px 8px 0 0 var(--ass-color-shadow);
  --ass-highlight: linear-gradient(transparent var(--ass-highlight-start), var(--ass-color-highlight) var(--ass-highlight-start), var(--ass-color-highlight) var(--ass-highlight-end), transparent var(--ass-highlight-end));
  --ass-pattern-halftone: radial-gradient(var(--ass-color-halftone) 1.4px, transparent 1.6px);
  --ass-focus-outline: var(--ass-border-focus) solid var(--ass-color-focus);
}

/* Movimento ridotto: le durate collassano (le animazioni essenziali vanno gestite nel componente). */
@media (prefers-reduced-motion: reduce) {
  :root {
    --ass-duration-fast: 0.01ms;
    --ass-duration-base: 0.01ms;
    --ass-duration-slow: 0.01ms;
    --ass-duration-slower: 0.01ms;
    --ass-duration-beat: 0.01ms;
  }
}
