/* GENERATO da tools/tokens-to-css.mjs (design-system/tokens.json v6). Non modificare a mano. */
:root {
	--nisi-yellow: #f7b400;
	--nisi-yellow-soft: #fce4a4;
	--nisi-yellow-050: #fdf6e3;
	--nisi-yellow-deep: #7e5c00;
	--wine: #863e46;
	--wine-deep: #6b3238;
	--wine-strong: #85000a;
	--ink: #45423b;
	--ink-heading: #535353;
	--ink-muted: #5f5b50;
	--ink-faint: #898477;
	--ink-inverse: #f7f7f7;
	--surface: #ffffff;
	--surface-page: #f7f7f7;
	--surface-sunken: #ededed;
	--surface-muted: #e6e6e6;
	--surface-dark: #454545;
	--border: #dcdcdc;
	--border-strong: #898477;
	--focus-ring: #45423b;
	--success: #74b500;
	--success-strong: #5a8a00;
	--success-soft: #f3f8e8;
	--danger: #c62d3c;
	--wine-soft: #fbf1f2;
	--border-dark: #5a5750;
	--surface-black: #000000;
	--lume: #d7f23c;
	--on-yellow: #45423b;
	--on-wine: #f7f7f7;
	--success-text: #4a7300;
	--mark: #fce4a4;
	--lightbox: #0e0e0d;
	--on-lightbox: #f3f1ec;
	--on-lightbox-muted: #b4afa3;
	--product-plate: #ffffff;
	--scrim: rgba(28,27,25,0.55);
	--font-sans: Inter, Helvetica, Arial, sans-serif;
	--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--fs-display: 44px;
	--lh-display: 50px;
	--fw-display: 700;
	--fs-h1: 32px;
	--lh-h1: 38px;
	--fw-h1: 700;
	--fs-h1-m: 28px;
	--lh-h1-m: 34px;
	--fw-h1-m: 700;
	--fs-h2: 26px;
	--lh-h2: 32px;
	--fw-h2: 700;
	--fs-h2-m: 20px;
	--lh-h2-m: 26px;
	--fw-h2-m: 700;
	--fs-h3: 20px;
	--lh-h3: 26px;
	--fw-h3: 700;
	--fs-h3-m: 17px;
	--lh-h3-m: 23px;
	--fw-h3-m: 700;
	--fs-title-card: 16px;
	--lh-title-card: 22px;
	--fw-title-card: 600;
	--fs-lead: 18px;
	--lh-lead: 29px;
	--fw-lead: 400;
	--fs-lead-m: 16px;
	--lh-lead-m: 25px;
	--fw-lead-m: 400;
	--fs-body: 16px;
	--lh-body: 24px;
	--fw-body: 400;
	--fs-body-s: 15px;
	--lh-body-s: 22px;
	--fw-body-s: 400;
	--fs-small: 14px;
	--lh-small: 20px;
	--fw-small: 400;
	--fs-caption: 13px;
	--lh-caption: 18px;
	--fw-caption: 400;
	--fs-micro: 12px;
	--lh-micro: 16px;
	--fw-micro: 400;
	--fs-button-primary: 15px;
	--lh-button-primary: 18px;
	--fw-button-primary: 600;
	--ls-button-primary: 0.04em;
	--fs-button: 15px;
	--lh-button: 20px;
	--fw-button: 600;
	--fs-chip: 14px;
	--lh-chip: 20px;
	--fw-chip: 400;
	--fs-chip-s: 13px;
	--lh-chip-s: 18px;
	--fw-chip-s: 400;
	--fs-pill: 13px;
	--lh-pill: 18px;
	--fw-pill: 600;
	--fs-label: 12px;
	--lh-label: 16px;
	--fw-label: 700;
	--ls-label: 0.06em;
	--fs-price: 16px;
	--lh-price: 22px;
	--fw-price: 700;
	--fs-price-l: 22px;
	--lh-price-l: 28px;
	--fw-price-l: 700;
	--fs-price-xl: 32px;
	--lh-price-xl: 38px;
	--fw-price-xl: 700;
	--fs-price-xl-m: 26px;
	--lh-price-xl-m: 32px;
	--fw-price-xl-m: 700;
	--fs-sku: 12px;
	--lh-sku: 17px;
	--fw-sku: 400;
	--fs-code: 13px;
	--lh-code: 18px;
	--fw-code: 400;
	--fs-rank: 12px;
	--lh-rank: 16px;
	--fw-rank: 600;
	--fs-stat: 34px;
	--lh-stat: 40px;
	--fw-stat: 600;
	--fs-stat-m: 26px;
	--lh-stat-m: 32px;
	--fw-stat-m: 600;
	--fs-chapter-h1: 40px;
	--lh-chapter-h1: 48px;
	--fw-chapter-h1: 700;
	--fs-chapter-h1-m: 28px;
	--lh-chapter-h1-m: 34px;
	--fw-chapter-h1-m: 700;
	--fs-chapter-lead: 20px;
	--lh-chapter-lead: 32px;
	--fw-chapter-lead: 400;
	--fs-chapter-lead-m: 17px;
	--lh-chapter-lead-m: 27px;
	--fw-chapter-lead-m: 400;
	--fs-reading: 18px;
	--lh-reading: 30px;
	--fw-reading: 400;
	--fs-reading-m: 16px;
	--lh-reading-m: 26px;
	--fw-reading-m: 400;
	--fs-chapter-h2: 28px;
	--lh-chapter-h2: 34px;
	--fw-chapter-h2: 700;
	--fs-chapter-h2-m: 21px;
	--lh-chapter-h2-m: 27px;
	--fw-chapter-h2-m: 700;
	--fs-note-text: 17px;
	--lh-note-text: 28px;
	--fw-note-text: 400;
	--fs-callout-text: 16px;
	--lh-callout-text: 25px;
	--fw-callout-text: 400;
	--fs-callout-text-m: 15px;
	--lh-callout-text-m: 23px;
	--fw-callout-text-m: 400;
	--fs-row-title: 17px;
	--lh-row-title: 23px;
	--fw-row-title: 700;
	--fs-row-title-m: 16px;
	--lh-row-title-m: 22px;
	--fw-row-title-m: 700;
	--fs-tree-item: 15px;
	--lh-tree-item: 20px;
	--fw-tree-item: 400;
	--fs-chapter-num: 14px;
	--lh-chapter-num: 20px;
	--fw-chapter-num: 400;
	--fs-byline: 12px;
	--lh-byline: 17px;
	--fw-byline: 400;
	--fs-exif: 12px;
	--lh-exif: 16px;
	--fw-exif: 400;
	--fs-formula: 24px;
	--lh-formula: 31px;
	--fw-formula: 600;
	--fs-formula-m: 17px;
	--lh-formula-m: 22px;
	--fw-formula-m: 600;
	--fs-stepper-value: 34px;
	--lh-stepper-value: 34px;
	--fw-stepper-value: 600;
	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 20px;
	--space-6: 24px;
	--space-7: 28px;
	--space-8: 32px;
	--space-10: 40px;
	--space-12: 48px;
	--space-14: 56px;
	--space-16: 64px;
	--space-20: 80px;
	--radius-none: 0;
	--radius-sm: 4px;
	--radius-md: 6px;
	--radius-lg: 8px;
	--radius-xl: 16px;
	--radius-pill: 999px;
	--container-max: 1280px;
	--gutter-mobile: 16px;
	--grid-gap-mobile: 12px;
	--grid-gap-desktop: 16px;
	--control-sm: 36px;
	--control-md: 44px;
	--control-row: 48px;
	--control-lg: 52px;
	--control-xl: 64px;
	--card-image-ratio: 4 / 3;
	--hero-strip-mobile: 120px;
	--hero-strip-desktop: 240px;
	--strip-section-mobile: 110px;
	--strip-section-desktop: 200px;
	--header-bar: 36px;
	--header-desktop: 72px;
	--header-mobile: 56px;
	--academy-header-desktop: 64px;
	--academy-header-mobile: 56px;
	--academy-search: 440px;
	--reading-column: 800px;
	--info-column: 960px;
	--mega-feature: 296px;
	--campaign-image: 16 / 9;
	--reading-measure: 656px;
	--tree-column: 264px;
	--toc-column: 280px;
	--reading-gap: 40px;
	--chapter-bar: 44px;
	--tree-row: 40px;
	--tree-panel: 400px;
	--sheet-max: 86%;
	--progress-bar: 6px;
	--portrait-note: 48px;
	--step-dot: 32px;
	--hotspot: 36px;
	--unlock-bar: 64px;
	--photo-page-max: 1600px;
	--photo-original: 2600px;
	--zoom-threshold: 90%;
	--bp-sm: 576px;
	--bp-md: 768px;
	--bp-lg: 992px;
	--bp-xl: 1200px;
	--bp-xxl: 1400px;
	--shadow-card: 0 1px 2px rgba(69,66,59,0.08), 0 4px 12px rgba(69,66,59,0.10);
	--shadow-overlay: 0 8px 32px rgba(69,66,59,0.22);
}

/* Tema scuro: solo dove un contenitore lo chiede (fasce scure, Academy). Lo shop resta chiaro. */
[data-theme="dark"] {
	--nisi-yellow-050: #3d3626;
	--nisi-yellow-deep: #e2a846;
	--wine: #e0aaaf;
	--wine-deep: #efc0c5;
	--wine-strong: #ff948b;
	--ink: #f7f7f7;
	--ink-heading: #f7f7f7;
	--ink-muted: #c6c2b6;
	--ink-faint: #98938a;
	--surface: #3a3a3a;
	--surface-page: #454545;
	--surface-sunken: #2e2e2e;
	--surface-muted: #3f3f3f;
	--surface-dark: #2a2a2a;
	--border: #5a5a5a;
	--border-strong: #949088;
	--focus-ring: #f7b400;
	--success: #8fd21f;
	--success-strong: #a3e04a;
	--success-soft: #26311a;
	--danger: #ff8a80;
	--wine-soft: #3a2226;
	--on-yellow: #1c1b19;
	--on-wine: #1c1b19;
	--success-text: #b6e37a;
	--mark: #6a5418;
	--scrim: rgba(0,0,0,0.62);
	--shadow-card: 0 1px 2px rgba(0,0,0,0.6), 0 4px 12px rgba(0,0,0,0.5);
	--shadow-overlay: 0 8px 32px rgba(0,0,0,0.7);
}
