/*
 * tokens.css — generato automaticamente da tokens_to_css.py
 * Sorgente: 02_design/tokens.json
 * Generato il: 2026-09-21
 * Tokens: Struttura v4.0 (mode: light — informativo, non cambia la generazione)
 * NON MODIFICARE A MANO — rigenerare da tokens.json con tokens_to_css.py
 *
 * Scala fluida calcolata tra 360px e 1440px di viewport
 * (formula per singola voce riportata come commento sopra ogni --size-*).
 *
 * Breakpoints (SOLO riferimento — le media query non accettano var(),
 * usare questi valori direttamente nei @media):
 * sm=480px, md=640px, lg=860px, xl=1080px, 2xl=1400px
 */

:root {
  /* color */
  --color-bg: #FFFFFF;
  --color-surface: #EEF1F5;
  --color-ink: #12151C;
  --color-ink-2: #1C212B;
  --color-ink-contrast: #FFFFFF;
  --color-text: #12151C;
  --color-muted: #57616F;
  --color-border: #DCE1E7;
  --color-line-ink: #2A303B;
  --color-accent: #2F4A62;
  --color-accent-2: #C7D0DA;
  --color-accent-contrast: #FFFFFF;
  --color-focus: #5B7897;
  --color-error: #9B2C2C;
  --color-success: #276749;

  /* font */
  --font-display: "Archivo", "Helvetica Neue", sans-serif;
  --font-text: "Public Sans", "Helvetica Neue", sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --font-weight-regular: 400;
  --font-weight-semibold: 600;
  --font-weight-extrabold: 800;
  --font-leading-tight: 1.05;
  --font-leading-snug: 1.25;
  --font-leading-normal: 1.6;
  --font-leading-relaxed: 1.7;
  --font-tracking-tight: -0.01em;
  --font-tracking-normal: 0;
  --font-tracking-wide: 0.14em;

  /* size (scala fluida) */
  /* size.xs: 12px -> 12.5px tra 360px e 1440px | clamp(min, intercetta + pendenza*vw, max) pendenza=0.000463px/px, intercetta=11.8333px */
  --size-xs: clamp(0.75rem, calc(0.7396rem + 0.0463vw), 0.7812rem);
  /* size.sm: 14px -> 15px tra 360px e 1440px | clamp(min, intercetta + pendenza*vw, max) pendenza=0.000926px/px, intercetta=13.6667px */
  --size-sm: clamp(0.875rem, calc(0.8542rem + 0.0926vw), 0.9375rem);
  /* size.base: 16px -> 17px tra 360px e 1440px | clamp(min, intercetta + pendenza*vw, max) pendenza=0.000926px/px, intercetta=15.6667px */
  --size-base: clamp(1rem, calc(0.9792rem + 0.0926vw), 1.0625rem);
  /* size.lg: 18px -> 20px tra 360px e 1440px | clamp(min, intercetta + pendenza*vw, max) pendenza=0.001852px/px, intercetta=17.3333px */
  --size-lg: clamp(1.125rem, calc(1.0833rem + 0.1852vw), 1.25rem);
  /* size.xl: 20px -> 24px tra 360px e 1440px | clamp(min, intercetta + pendenza*vw, max) pendenza=0.003704px/px, intercetta=18.6667px */
  --size-xl: clamp(1.25rem, calc(1.1667rem + 0.3704vw), 1.5rem);
  /* size.h3: 22px -> 28px tra 360px e 1440px | clamp(min, intercetta + pendenza*vw, max) pendenza=0.005556px/px, intercetta=20.0000px */
  --size-h3: clamp(1.375rem, calc(1.25rem + 0.5556vw), 1.75rem);
  /* size.h2: 28px -> 38px tra 360px e 1440px | clamp(min, intercetta + pendenza*vw, max) pendenza=0.009259px/px, intercetta=24.6667px */
  --size-h2: clamp(1.75rem, calc(1.5417rem + 0.9259vw), 2.375rem);
  /* size.h1: 32px -> 48px tra 360px e 1440px | clamp(min, intercetta + pendenza*vw, max) pendenza=0.014815px/px, intercetta=26.6667px */
  --size-h1: clamp(2rem, calc(1.6667rem + 1.4815vw), 3rem);
  /* size.display: 40px -> 68px tra 360px e 1440px | clamp(min, intercetta + pendenza*vw, max) pendenza=0.025926px/px, intercetta=30.6667px */
  --size-display: clamp(2.5rem, calc(1.9167rem + 2.5926vw), 4.25rem);
  /* size.stat: 36px -> 54px tra 360px e 1440px | clamp(min, intercetta + pendenza*vw, max) pendenza=0.016667px/px, intercetta=30.0000px */
  --size-stat: clamp(2.25rem, calc(1.875rem + 1.6667vw), 3.375rem);

  /* space */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;
  --space-10: 8rem;
  --space-11: 12rem;

  /* radius */
  --radius-none: 0;

  /* shadow */
  --shadow-sm: 0 1px 2px rgba(18,21,28,0.10);
  --shadow-md: 0 10px 28px rgba(18,21,28,0.16);
  --shadow-lg: 0 26px 64px rgba(18,21,28,0.22);

  /* motion */
  --dur-fast: 200ms;
  --dur-base: 320ms;
  --dur-slow: 520ms;
  --dur-page: 900ms;
  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-in: cubic-bezier(0.55, 0, 1, 0.45);

  /* container */
  --container-max: 1180px;
  --container-narrow: 64ch;
  --container-gutter: clamp(1rem, 3vw, 1.75rem);

  /* z-index */
  --z-base: 0;
  --z-nav: 100;
  --z-overlay: 200;
  --z-modal: 300;
  --z-toast: 400;

  /* measure (gruppo extra) */
  --measure-sm: 34ch;
  --measure-md: 44ch;
  --measure-lg: 52ch;
}
