:root {
  --bg-default: #FFF8EE;
  --bg-subtle: #F8F1E6;
  --bg-surface-low: #FFFFFF;
  --bg-surface-high: #FFF2DE;
  --bg-inverse: #152238;
  --bg-brand: #E6F4F7;
  --bg-accent: #FFE7B8;
  --fg-on-default: #1C2430;
  --fg-on-subtle: #253040;
  --fg-on-inverse: #FFFFFF;
  --fg-on-brand: #153544;
  --fg-on-accent: #2A1D00;
  --fg-secondary: #5E6B7A;
  --fg-disabled: #A8AFB8;
  --brand-primary: #1F6F8B;
  --brand-primary-hover: #17576C;
  --brand-secondary: #6D5BD0;
  --brand-secondary-hover: #5A48B8;
  --brand-accent: #FF8A3D;
  --brand-accent-hover: #E86F1E;
  --border-color-default: #D8CBB7;
  --border-color-subtle: #E8DECF;
  --border-color-strong: #9FB2BE;
  --color-error: #D94B4B;
  --color-warning: #D89B1F;
  --color-info: #4D8FC9;
  --color-success: #2E9E63;

  --font-body-lg-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-lg-size: 1.125rem;
  --font-body-lg-weight: 400;
  --font-body-lg-line-height: 1.65;
  --font-body-lg-letter-spacing: 0em;
  --font-body-md-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-md-size: 1rem;
  --font-body-md-weight: 400;
  --font-body-md-line-height: 1.6;
  --font-body-md-letter-spacing: 0em;
  --font-body-sm-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-sm-size: 0.875rem;
  --font-body-sm-weight: 400;
  --font-body-sm-line-height: 1.55;
  --font-body-sm-letter-spacing: 0em;
  --font-label-lg-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-lg-size: 1rem;
  --font-label-lg-weight: 700;
  --font-label-lg-line-height: 1.2;
  --font-label-lg-letter-spacing: 0.01em;
  --font-label-md-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-md-size: 0.9375rem;
  --font-label-md-weight: 700;
  --font-label-md-line-height: 1.15;
  --font-label-md-letter-spacing: 0.015em;
  --font-label-sm-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-sm-size: 0.8125rem;
  --font-label-sm-weight: 700;
  --font-label-sm-line-height: 1.1;
  --font-label-sm-letter-spacing: 0.02em;
  --font-title-lg-family: 'Fredoka', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-lg-size: 1.25rem;
  --font-title-lg-weight: 600;
  --font-title-lg-line-height: 1.25;
  --font-title-lg-letter-spacing: -0.01em;
  --font-title-md-family: 'Fredoka', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-md-size: 1.0625rem;
  --font-title-md-weight: 600;
  --font-title-md-line-height: 1.3;
  --font-title-md-letter-spacing: -0.005em;
  --font-display-lg-family: 'Fredoka', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-lg-size: 4rem;
  --font-display-lg-weight: 700;
  --font-display-lg-line-height: 1.02;
  --font-display-lg-letter-spacing: -0.03em;
  --font-display-md-family: 'Fredoka', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-md-size: 3rem;
  --font-display-md-weight: 700;
  --font-display-md-line-height: 1.06;
  --font-display-md-letter-spacing: -0.025em;
  --font-headline-lg-family: 'Fredoka', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-lg-size: 2.25rem;
  --font-headline-lg-weight: 600;
  --font-headline-lg-line-height: 1.1;
  --font-headline-lg-letter-spacing: -0.02em;
  --font-headline-md-family: 'Fredoka', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-md-size: 1.75rem;
  --font-headline-md-weight: 600;
  --font-headline-md-line-height: 1.15;
  --font-headline-md-letter-spacing: -0.015em;
  --font-headline-sm-family: 'Fredoka', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-sm-size: 1.375rem;
  --font-headline-sm-weight: 600;
  --font-headline-sm-line-height: 1.2;
  --font-headline-sm-letter-spacing: -0.01em;

  --spacing-lg: 1.5rem;
  --spacing-md: 1rem;
  --spacing-sm: 0.5rem;
  --spacing-xl: 2.5rem;
  --spacing-xs: 0.25rem;
  --spacing-section-margin: 4rem;
  --spacing-container-padding: 1.25rem;

  --border-radius-lg: 1.25rem;
  --border-radius-md: 0.9rem;
  --border-radius-sm: 0.5rem;
  --border-radius-xl: 1.75rem;
  --border-radius-full: 9999px;

  --shadow-lg: 0 14px 34px rgba(21, 34, 56, 0.14), 0 6px 14px rgba(21, 34, 56, 0.08);
  --shadow-md: 0 6px 18px rgba(21, 34, 56, 0.10), 0 2px 6px rgba(21, 34, 56, 0.06);
  --shadow-sm: 0 1px 2px rgba(21, 34, 56, 0.06), 0 4px 10px rgba(21, 34, 56, 0.05);

  --container-max-width: 1280px;
  --container-padding-x: 1rem;

/* alias legacy — ne pas utiliser dans les nouveaux blocs */
  --color-primary: var(--brand-primary);
  --color-primary-main: var(--brand-primary);
  --color-primary-light: var(--brand-primary);
  --color-primary-dark: var(--brand-primary-hover);
  --color-primary-contrast: var(--fg-on-brand);
  --color-secondary: var(--brand-secondary);
  --color-secondary-main: var(--brand-secondary);
  --color-secondary-light: var(--brand-secondary);
  --color-secondary-dark: var(--brand-secondary-hover);
  --color-secondary-contrast: var(--fg-on-brand);
  --color-accent: var(--brand-accent);
  --color-accent-main: var(--brand-accent);
  --color-accent-light: var(--brand-accent);
  --color-accent-dark: var(--brand-accent-hover);
  --color-accent-contrast: var(--fg-on-accent);
  --color-background: var(--bg-default);
  --color-background-default: var(--bg-default);
  --color-background-paper: var(--bg-subtle);
  --color-paper: var(--bg-subtle);
  --color-text-primary: var(--fg-on-default);
  --color-text-secondary: var(--fg-secondary);
  --color-text-disabled: var(--fg-disabled);
  --font-family-body: var(--font-body-md-family);
  --font-family-heading: var(--font-headline-lg-family);
  --font-size-base: var(--font-body-md-size);
  --font-size-small: var(--font-body-sm-size);
  --font-size-h1: var(--font-display-lg-size);
  --font-size-h2: var(--font-headline-lg-size);
  --font-size-h3: var(--font-headline-md-size);
  --font-size-h4: var(--font-headline-sm-size);
  --font-size-h5: var(--font-title-lg-size);
  --font-size-h6: var(--font-title-md-size);
  --line-height-body: var(--font-body-md-line-height);
  --line-height-heading: var(--font-headline-lg-line-height);
  --border-radius: var(--border-radius-md);
  --heading-letter-spacing: var(--font-headline-lg-letter-spacing);
  --heading-weight: var(--font-headline-lg-weight);
  --transition-fast: 0.15s ease;
  --transition-normal: 0.3s ease;
}

[data-theme="dark"] {
  --bg-default: #0E1724;
  --bg-subtle: #162131;
  --bg-surface-low: #1A2533;
  --bg-surface-high: #203044;
  --bg-inverse: #F7F1E8;
  --bg-brand: #16384A;
  --bg-accent: #3E2D12;
  --fg-on-default: #F4F0EA;
  --fg-on-subtle: #E4E8EE;
  --fg-on-inverse: #10202D;
  --fg-on-brand: #F6FBFC;
  --fg-on-accent: #FFF8E6;
  --fg-secondary: #B6C2CF;
  --fg-disabled: #6E7A86;
  --brand-primary: #4FB0C7;
  --brand-primary-hover: #68BDD0;
  --brand-secondary: #9A86FF;
  --brand-secondary-hover: #B2A2FF;
  --brand-accent: #FFC15A;
  --brand-accent-hover: #FFD77C;
  --border-color-default: #2B3848;
  --border-color-subtle: #223042;
  --border-color-strong: #4C5D70;
  --color-error: #F06C6C;
  --color-warning: #E3B24A;
  --color-info: #72AEDD;
  --color-success: #42B57A;
}

.block--tone-inverse {
  --bg-default: var(--bg-inverse);
  --bg-subtle: var(--bg-inverse);
  --bg-surface-low: var(--bg-inverse);
  --bg-surface-high: var(--bg-inverse);
  --bg-brand: var(--bg-inverse);
  --bg-accent: var(--bg-inverse);
  --fg-on-default: var(--fg-on-inverse);
  --fg-on-subtle: var(--fg-on-inverse);
  --fg-on-brand: var(--fg-on-inverse);
  --fg-on-accent: var(--fg-on-inverse);
  --fg-secondary: color-mix(in srgb, var(--fg-on-inverse) 72%, transparent);
  --fg-disabled: color-mix(in srgb, var(--fg-on-inverse) 45%, transparent);
  --border-color-default: color-mix(in srgb, var(--fg-on-inverse) 18%, transparent);
  --border-color-subtle: color-mix(in srgb, var(--fg-on-inverse) 8%, transparent);
  --border-color-strong: color-mix(in srgb, var(--fg-on-inverse) 36%, transparent);
}

.block--tone-shell-inverse [class$="__shell"],
.block--tone-shell-inverse [class*="__shell "] {
  --bg-default: var(--bg-inverse);
  --bg-subtle: var(--bg-inverse);
  --bg-surface-low: var(--bg-inverse);
  --bg-surface-high: var(--bg-inverse);
  --bg-brand: var(--bg-inverse);
  --bg-accent: var(--bg-inverse);
  --fg-on-default: var(--fg-on-inverse);
  --fg-on-subtle: var(--fg-on-inverse);
  --fg-on-brand: var(--fg-on-inverse);
  --fg-on-accent: var(--fg-on-inverse);
  --fg-secondary: color-mix(in srgb, var(--fg-on-inverse) 72%, transparent);
  --fg-disabled: color-mix(in srgb, var(--fg-on-inverse) 45%, transparent);
  --border-color-default: color-mix(in srgb, var(--fg-on-inverse) 18%, transparent);
  --border-color-subtle: color-mix(in srgb, var(--fg-on-inverse) 8%, transparent);
  --border-color-strong: color-mix(in srgb, var(--fg-on-inverse) 36%, transparent);
}

.block--tone-brand {
  --bg-default: var(--bg-brand);
  --bg-subtle: var(--bg-brand);
  --bg-surface-low: var(--bg-brand);
  --bg-surface-high: var(--bg-brand);
  --bg-inverse: var(--bg-brand);
  --bg-accent: var(--bg-brand);
  --fg-on-default: var(--fg-on-brand);
  --fg-on-subtle: var(--fg-on-brand);
  --fg-on-inverse: var(--fg-on-brand);
  --fg-on-accent: var(--fg-on-brand);
  --fg-secondary: color-mix(in srgb, var(--fg-on-brand) 72%, transparent);
  --fg-disabled: color-mix(in srgb, var(--fg-on-brand) 45%, transparent);
  --border-color-default: color-mix(in srgb, var(--fg-on-brand) 18%, transparent);
  --border-color-subtle: color-mix(in srgb, var(--fg-on-brand) 8%, transparent);
  --border-color-strong: color-mix(in srgb, var(--fg-on-brand) 36%, transparent);
}

.block--tone-shell-brand [class$="__shell"],
.block--tone-shell-brand [class*="__shell "] {
  --bg-default: var(--bg-brand);
  --bg-subtle: var(--bg-brand);
  --bg-surface-low: var(--bg-brand);
  --bg-surface-high: var(--bg-brand);
  --bg-inverse: var(--bg-brand);
  --bg-accent: var(--bg-brand);
  --fg-on-default: var(--fg-on-brand);
  --fg-on-subtle: var(--fg-on-brand);
  --fg-on-inverse: var(--fg-on-brand);
  --fg-on-accent: var(--fg-on-brand);
  --fg-secondary: color-mix(in srgb, var(--fg-on-brand) 72%, transparent);
  --fg-disabled: color-mix(in srgb, var(--fg-on-brand) 45%, transparent);
  --border-color-default: color-mix(in srgb, var(--fg-on-brand) 18%, transparent);
  --border-color-subtle: color-mix(in srgb, var(--fg-on-brand) 8%, transparent);
  --border-color-strong: color-mix(in srgb, var(--fg-on-brand) 36%, transparent);
}

.block--tone-accent {
  --bg-default: var(--bg-accent);
  --bg-subtle: var(--bg-accent);
  --bg-surface-low: var(--bg-accent);
  --bg-surface-high: var(--bg-accent);
  --bg-inverse: var(--bg-accent);
  --bg-brand: var(--bg-accent);
  --fg-on-default: var(--fg-on-accent);
  --fg-on-subtle: var(--fg-on-accent);
  --fg-on-inverse: var(--fg-on-accent);
  --fg-on-brand: var(--fg-on-accent);
  --fg-secondary: color-mix(in srgb, var(--fg-on-accent) 72%, transparent);
  --fg-disabled: color-mix(in srgb, var(--fg-on-accent) 45%, transparent);
  --border-color-default: color-mix(in srgb, var(--fg-on-accent) 18%, transparent);
  --border-color-subtle: color-mix(in srgb, var(--fg-on-accent) 8%, transparent);
  --border-color-strong: color-mix(in srgb, var(--fg-on-accent) 36%, transparent);
}

.block--tone-shell-accent [class$="__shell"],
.block--tone-shell-accent [class*="__shell "] {
  --bg-default: var(--bg-accent);
  --bg-subtle: var(--bg-accent);
  --bg-surface-low: var(--bg-accent);
  --bg-surface-high: var(--bg-accent);
  --bg-inverse: var(--bg-accent);
  --bg-brand: var(--bg-accent);
  --fg-on-default: var(--fg-on-accent);
  --fg-on-subtle: var(--fg-on-accent);
  --fg-on-inverse: var(--fg-on-accent);
  --fg-on-brand: var(--fg-on-accent);
  --fg-secondary: color-mix(in srgb, var(--fg-on-accent) 72%, transparent);
  --fg-disabled: color-mix(in srgb, var(--fg-on-accent) 45%, transparent);
  --border-color-default: color-mix(in srgb, var(--fg-on-accent) 18%, transparent);
  --border-color-subtle: color-mix(in srgb, var(--fg-on-accent) 8%, transparent);
  --border-color-strong: color-mix(in srgb, var(--fg-on-accent) 36%, transparent);
}

.palette-jeux-video {
  --bg-default: #F5F7FF;
  --bg-subtle: #ECEBFA;
  --bg-inverse: #0B1020;
  --bg-brand: #1A1438;
  --bg-accent: #0FD7C4;
  --fg-on-default: #151826;
  --fg-on-subtle: #20263A;
  --fg-on-inverse: #FFFFFF;
  --fg-on-brand: #F7F4FF;
  --fg-on-accent: #06211D;
  --fg-secondary: #5A627A;
  --fg-disabled: #A5ADC0;
  --brand-primary: #00B8FF;
  --brand-primary-hover: #0097D1;
  --brand-secondary: #FF4FD8;
  --brand-secondary-hover: #E233BC;
  --brand-accent: #B9FF2C;
  --brand-accent-hover: #9DDB16;
  --border-color-default: #C9D0EA;
  --border-color-subtle: #DEE2F3;
  --border-color-strong: #7D87B3;
  --color-error: #FF4D6D;
  --color-warning: #FFB020;
  --color-info: #4EA3FF;
  --color-success: #23D18B;

  --font-body-lg-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-lg-size: 1.125rem;
  --font-body-lg-weight: 400;
  --font-body-lg-line-height: 1.7;
  --font-body-lg-letter-spacing: 0em;
  --font-body-md-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-md-size: 1rem;
  --font-body-md-weight: 400;
  --font-body-md-line-height: 1.65;
  --font-body-md-letter-spacing: 0em;
  --font-body-sm-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-sm-size: 0.875rem;
  --font-body-sm-weight: 400;
  --font-body-sm-line-height: 1.55;
  --font-body-sm-letter-spacing: 0em;
  --font-label-lg-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-lg-size: 1rem;
  --font-label-lg-weight: 700;
  --font-label-lg-line-height: 1.2;
  --font-label-lg-letter-spacing: 0.02em;
  --font-label-md-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-md-size: 0.9375rem;
  --font-label-md-weight: 700;
  --font-label-md-line-height: 1.15;
  --font-label-md-letter-spacing: 0.025em;
  --font-label-sm-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-sm-size: 0.8125rem;
  --font-label-sm-weight: 700;
  --font-label-sm-line-height: 1.1;
  --font-label-sm-letter-spacing: 0.03em;
  --font-title-lg-family: 'Orbitron', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-lg-size: 1.3rem;
  --font-title-lg-weight: 700;
  --font-title-lg-line-height: 1.15;
  --font-title-lg-letter-spacing: 0.01em;
  --font-title-md-family: 'Orbitron', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-md-size: 1.05rem;
  --font-title-md-weight: 600;
  --font-title-md-line-height: 1.2;
  --font-title-md-letter-spacing: 0.015em;
  --font-display-lg-family: 'Orbitron', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-lg-size: 4.25rem;
  --font-display-lg-weight: 800;
  --font-display-lg-line-height: 0.98;
  --font-display-lg-letter-spacing: -0.03em;
  --font-display-md-family: 'Orbitron', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-md-size: 3.1rem;
  --font-display-md-weight: 800;
  --font-display-md-line-height: 1.02;
  --font-display-md-letter-spacing: -0.025em;
  --font-headline-lg-family: 'Orbitron', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-lg-size: 2.35rem;
  --font-headline-lg-weight: 700;
  --font-headline-lg-line-height: 1.08;
  --font-headline-lg-letter-spacing: -0.02em;
  --font-headline-md-family: 'Orbitron', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-md-size: 1.8rem;
  --font-headline-md-weight: 700;
  --font-headline-md-line-height: 1.12;
  --font-headline-md-letter-spacing: -0.015em;
  --font-headline-sm-family: 'Orbitron', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-sm-size: 1.4rem;
  --font-headline-sm-weight: 700;
  --font-headline-sm-line-height: 1.15;
  --font-headline-sm-letter-spacing: -0.01em;

  --spacing-lg: 1.375rem;
  --spacing-md: 0.875rem;
  --spacing-sm: 0.375rem;
  --spacing-xl: 2rem;
  --spacing-xs: 0.125rem;

  --border-radius-lg: 1.1rem;
  --border-radius-md: 0.8rem;
  --border-radius-sm: 0.375rem;

  --shadow-lg: 0 18px 44px rgba(6, 8, 22, 0.42), 0 0 28px rgba(255, 79, 216, 0.22);
  --shadow-md: 0 10px 24px rgba(6, 8, 22, 0.34), 0 0 18px rgba(0, 184, 255, 0.18);
  --shadow-sm: 0 1px 2px rgba(6, 8, 22, 0.28), 0 0 0 1px rgba(0, 184, 255, 0.10);
}

.palette-jeux-video[data-theme="dark"] {
  --bg-default: #070816;
  --bg-subtle: #10142A;
  --fg-on-default: #F4F7FF;
  --fg-on-subtle: #E0E6FA;
  --fg-secondary: #A7B0CF;
  --fg-disabled: #66709A;
  --border-color-default: #273055;
  --border-color-subtle: #18203C;
}

.palette-activites-diy {
  --bg-default: #FBF7F0;
  --bg-subtle: #F2E7D7;
  --bg-surface-low: #FFFDF9;
  --bg-surface-high: #F6EBDC;
  --bg-inverse: #2A241F;
  --bg-brand: #D9E6CC;
  --bg-accent: #E8C1B0;
  --fg-on-default: #2E261F;
  --fg-on-subtle: #3A322A;
  --fg-on-inverse: #FFF9F2;
  --fg-on-brand: #24331E;
  --fg-on-accent: #4A2B22;
  --fg-secondary: #6B5E50;
  --fg-disabled: #A89A8A;
  --brand-primary: #6E8B57;
  --brand-primary-hover: #5E774B;
  --brand-secondary: #C7795C;
  --brand-secondary-hover: #B86447;
  --brand-accent: #B79A62;
  --brand-accent-hover: #9D814F;
  --border-color-default: #D8C8B5;
  --border-color-subtle: #E7DAC8;
  --border-color-strong: #B7A793;
  --color-error: #C8655B;
  --color-warning: #C89649;
  --color-info: #5A8F8A;
  --color-success: #5E8F61;

  --font-body-lg-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-lg-size: 1.125rem;
  --font-body-lg-weight: 400;
  --font-body-lg-line-height: 1.7;
  --font-body-lg-letter-spacing: 0em;
  --font-body-md-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-md-size: 1rem;
  --font-body-md-weight: 400;
  --font-body-md-line-height: 1.65;
  --font-body-md-letter-spacing: 0em;
  --font-body-sm-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-sm-size: 0.875rem;
  --font-body-sm-weight: 400;
  --font-body-sm-line-height: 1.6;
  --font-body-sm-letter-spacing: 0em;
  --font-label-lg-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-lg-size: 1rem;
  --font-label-lg-weight: 700;
  --font-label-lg-line-height: 1.2;
  --font-label-lg-letter-spacing: 0.01em;
  --font-label-md-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-md-size: 0.9375rem;
  --font-label-md-weight: 700;
  --font-label-md-line-height: 1.15;
  --font-label-md-letter-spacing: 0.015em;
  --font-label-sm-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-sm-size: 0.8125rem;
  --font-label-sm-weight: 700;
  --font-label-sm-line-height: 1.1;
  --font-label-sm-letter-spacing: 0.02em;
  --font-title-lg-family: 'Caveat', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-lg-size: 1.45rem;
  --font-title-lg-weight: 700;
  --font-title-lg-line-height: 1.1;
  --font-title-lg-letter-spacing: 0em;
  --font-title-md-family: 'Caveat', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-md-size: 1.2rem;
  --font-title-md-weight: 700;
  --font-title-md-line-height: 1.12;
  --font-title-md-letter-spacing: 0em;
  --font-display-lg-family: 'Caveat', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-lg-size: 4.1rem;
  --font-display-lg-weight: 700;
  --font-display-lg-line-height: 0.95;
  --font-display-lg-letter-spacing: -0.01em;
  --font-display-md-family: 'Caveat', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-md-size: 3.1rem;
  --font-display-md-weight: 700;
  --font-display-md-line-height: 0.98;
  --font-display-md-letter-spacing: -0.008em;
  --font-headline-lg-family: 'Caveat', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-lg-size: 2.4rem;
  --font-headline-lg-weight: 700;
  --font-headline-lg-line-height: 1.02;
  --font-headline-lg-letter-spacing: -0.005em;
  --font-headline-md-family: 'Caveat', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-md-size: 1.9rem;
  --font-headline-md-weight: 700;
  --font-headline-md-line-height: 1.05;
  --font-headline-md-letter-spacing: -0.004em;
  --font-headline-sm-family: 'Caveat', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-sm-size: 1.5rem;
  --font-headline-sm-weight: 700;
  --font-headline-sm-line-height: 1.08;
  --font-headline-sm-letter-spacing: 0em;

  --spacing-lg: 1.75rem;
  --spacing-md: 1.125rem;
  --spacing-sm: 0.625rem;
  --spacing-xl: 2.75rem;
  --spacing-xs: 0.25rem;

  --border-radius-lg: 1.5rem;
  --border-radius-md: 0.9rem;
  --border-radius-sm: 0.4rem;

  --shadow-lg: 0 16px 36px rgba(74, 43, 34, 0.14), 0 8px 18px rgba(74, 43, 34, 0.08);
  --shadow-md: 0 8px 20px rgba(74, 43, 34, 0.10), 0 2px 6px rgba(74, 43, 34, 0.06);
  --shadow-sm: 0 1px 2px rgba(74, 43, 34, 0.06), 0 4px 10px rgba(74, 43, 34, 0.04);
}

.palette-activites-diy[data-theme="dark"] {
  --bg-default: #1A1714;
  --bg-subtle: #24201C;
  --fg-on-default: #F6EFE6;
  --fg-on-subtle: #E7DECF;
  --fg-secondary: #B9AA98;
  --fg-disabled: #7D7368;
  --border-color-default: #4A4138;
  --border-color-subtle: #332D27;
}

.palette-jeux-de-societe {
  --bg-default: #FBF4EA;
  --bg-subtle: #F3E7D8;
  --bg-inverse: #241816;
  --bg-brand: #DDE7D8;
  --bg-accent: #E7C07A;
  --fg-on-default: #2A201A;
  --fg-on-subtle: #2F241E;
  --fg-on-inverse: #FFF7EE;
  --fg-on-brand: #243528;
  --fg-on-accent: #3A2410;
  --fg-secondary: #6A5647;
  --fg-disabled: #AA9888;
  --brand-primary: #4B6A4F;
  --brand-primary-hover: #3E5741;
  --brand-secondary: #8A3E3A;
  --brand-secondary-hover: #6F302C;
  --brand-accent: #B87922;
  --brand-accent-hover: #9B631A;
  --border-color-default: #D3C0AC;
  --border-color-subtle: #E7D8C8;
  --border-color-strong: #9F856F;
  --color-error: #B84B44;
  --color-warning: #C28A1E;
  --color-info: #4E7BA0;
  --color-success: #4A8A5A;

  --font-body-lg-family: 'Atkinson Hyperlegible', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-lg-size: 1.125rem;
  --font-body-lg-weight: 400;
  --font-body-lg-line-height: 1.7;
  --font-body-lg-letter-spacing: 0em;
  --font-body-md-family: 'Atkinson Hyperlegible', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-md-size: 1rem;
  --font-body-md-weight: 400;
  --font-body-md-line-height: 1.65;
  --font-body-md-letter-spacing: 0em;
  --font-body-sm-family: 'Atkinson Hyperlegible', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-sm-size: 0.875rem;
  --font-body-sm-weight: 400;
  --font-body-sm-line-height: 1.58;
  --font-body-sm-letter-spacing: 0em;
  --font-label-lg-family: 'Baloo 2', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-lg-size: 1rem;
  --font-label-lg-weight: 700;
  --font-label-lg-line-height: 1.2;
  --font-label-lg-letter-spacing: 0.01em;
  --font-label-md-family: 'Baloo 2', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-md-size: 0.9375rem;
  --font-label-md-weight: 700;
  --font-label-md-line-height: 1.15;
  --font-label-md-letter-spacing: 0.01em;
  --font-label-sm-family: 'Baloo 2', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-sm-size: 0.8125rem;
  --font-label-sm-weight: 700;
  --font-label-sm-line-height: 1.1;
  --font-label-sm-letter-spacing: 0.015em;
  --font-title-lg-family: 'Bree Serif', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-lg-size: 1.375rem;
  --font-title-lg-weight: 600;
  --font-title-lg-line-height: 1.22;
  --font-title-lg-letter-spacing: -0.01em;
  --font-title-md-family: 'Bree Serif', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-md-size: 1.125rem;
  --font-title-md-weight: 400;
  --font-title-md-line-height: 1.28;
  --font-title-md-letter-spacing: -0.005em;
  --font-display-lg-family: 'Bree Serif', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-lg-size: 4rem;
  --font-display-lg-weight: 400;
  --font-display-lg-line-height: 1.02;
  --font-display-lg-letter-spacing: -0.02em;
  --font-display-md-family: 'Bree Serif', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-md-size: 3rem;
  --font-display-md-weight: 400;
  --font-display-md-line-height: 1.06;
  --font-display-md-letter-spacing: -0.02em;
  --font-headline-lg-family: 'Bree Serif', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-lg-size: 2.25rem;
  --font-headline-lg-weight: 400;
  --font-headline-lg-line-height: 1.08;
  --font-headline-lg-letter-spacing: -0.015em;
  --font-headline-md-family: 'Bree Serif', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-md-size: 1.75rem;
  --font-headline-md-weight: 400;
  --font-headline-md-line-height: 1.12;
  --font-headline-md-letter-spacing: -0.01em;
  --font-headline-sm-family: 'Bree Serif', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-sm-size: 1.375rem;
  --font-headline-sm-weight: 400;
  --font-headline-sm-line-height: 1.16;
  --font-headline-sm-letter-spacing: -0.005em;

  --spacing-lg: 1.75rem;
  --spacing-md: 1.125rem;
  --spacing-sm: 0.625rem;
  --spacing-xl: 3rem;
  --spacing-xs: 0.25rem;

  --border-radius-lg: 1.4rem;
  --border-radius-md: 0.9rem;
  --border-radius-sm: 0.4rem;

  --shadow-lg: 0 14px 34px rgba(56, 36, 20, 0.18), 0 8px 18px rgba(56, 36, 20, 0.10);
  --shadow-md: 0 6px 18px rgba(56, 36, 20, 0.14), 0 2px 6px rgba(56, 36, 20, 0.08);
  --shadow-sm: 0 1px 2px rgba(56, 36, 20, 0.10), 0 4px 10px rgba(56, 36, 20, 0.08);
}

.palette-jeux-de-societe[data-theme="dark"] {
  --bg-default: #15100D;
  --bg-subtle: #201914;
  --fg-on-default: #F4EBDD;
  --fg-on-subtle: #E8DCCE;
  --fg-secondary: #BEA992;
  --fg-disabled: #78685D;
  --border-color-default: #3A2D26;
  --border-color-subtle: #2A201B;
}

.palette-heros-franchises {
  --bg-default: #F6F7FB;
  --bg-subtle: #EAF0FF;
  --bg-inverse: #10192B;
  --bg-brand: #D9E7FF;
  --bg-accent: #FFD34D;
  --fg-on-default: #172033;
  --fg-on-subtle: #1A2540;
  --fg-on-inverse: #FFFFFF;
  --fg-on-brand: #10213D;
  --fg-on-accent: #1B1300;
  --fg-secondary: #4C5870;
  --fg-disabled: #93A0B8;
  --brand-primary: #D61F45;
  --brand-primary-hover: #B81839;
  --brand-secondary: #1D4ED8;
  --brand-secondary-hover: #163FB0;
  --brand-accent: #FF8A00;
  --brand-accent-hover: #E66F00;
  --border-color-default: #CAD3E6;
  --border-color-subtle: #E3E9F5;
  --border-color-strong: #8C9AB8;
  --color-error: #D93A4A;
  --color-warning: #D98A12;
  --color-info: #2563EB;
  --color-success: #1F9D5A;

  --font-body-md-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-md-size: 1rem;
  --font-body-md-weight: 400;
  --font-body-md-line-height: 1.6;
  --font-body-md-letter-spacing: 0em;
  --font-body-sm-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-sm-size: 0.875rem;
  --font-body-sm-weight: 400;
  --font-body-sm-line-height: 1.55;
  --font-body-sm-letter-spacing: 0em;
  --font-label-md-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-md-size: 0.9375rem;
  --font-label-md-weight: 800;
  --font-label-md-line-height: 1.15;
  --font-label-md-letter-spacing: 0.02em;
  --font-label-sm-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-sm-size: 0.8125rem;
  --font-label-sm-weight: 800;
  --font-label-sm-line-height: 1.1;
  --font-label-sm-letter-spacing: 0.03em;
  --font-title-md-family: 'Bebas Neue', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-md-size: 1.125rem;
  --font-title-md-weight: 700;
  --font-title-md-line-height: 1.05;
  --font-title-md-letter-spacing: 0.02em;
  --font-display-lg-family: 'Bebas Neue', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-lg-size: 5rem;
  --font-display-lg-weight: 700;
  --font-display-lg-line-height: 0.88;
  --font-display-lg-letter-spacing: 0.045em;
  --font-display-md-family: 'Bebas Neue', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-md-size: 3.6rem;
  --font-display-md-weight: 700;
  --font-display-md-line-height: 0.9;
  --font-display-md-letter-spacing: 0.04em;
  --font-headline-md-family: 'Bebas Neue', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-md-size: 2.25rem;
  --font-headline-md-weight: 700;
  --font-headline-md-line-height: 0.92;
  --font-headline-md-letter-spacing: 0.035em;
  --font-headline-sm-family: 'Bebas Neue', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-sm-size: 1.625rem;
  --font-headline-sm-weight: 700;
  --font-headline-sm-line-height: 0.95;
  --font-headline-sm-letter-spacing: 0.03em;

  --spacing-lg: 1.4rem;
  --spacing-md: 0.9rem;
  --spacing-sm: 0.45rem;
  --spacing-xl: 2.2rem;
  --spacing-xs: 0.2rem;

  --border-radius-lg: 1.1rem;
  --border-radius-md: 0.7rem;
  --border-radius-sm: 0.35rem;

  --shadow-lg: 0 12px 0 rgba(10, 16, 32, 0.18), 0 24px 40px rgba(10, 16, 32, 0.18);
  --shadow-md: 0 8px 0 rgba(10, 16, 32, 0.14), 0 14px 24px rgba(10, 16, 32, 0.14);
  --shadow-sm: 0 2px 0 rgba(10, 16, 32, 0.12), 0 4px 10px rgba(10, 16, 32, 0.10);
}

.palette-heros-franchises[data-theme="dark"] {
  --bg-default: #0A1020;
  --bg-subtle: #121B33;
  --fg-on-default: #F5F7FF;
  --fg-on-subtle: #E3E8F5;
  --fg-secondary: #AAB6D1;
  --fg-disabled: #6E7B98;
  --border-color-default: #273350;
  --border-color-subtle: #1C2741;
}

.palette-collection-figurines {
  --bg-default: #F6F1E8;
  --bg-subtle: #ECE4D7;
  --bg-inverse: #101826;
  --bg-brand: #172B3C;
  --bg-accent: #D9C08A;
  --fg-on-default: #18202D;
  --fg-on-subtle: #243043;
  --fg-on-inverse: #F8F4EE;
  --fg-on-brand: #F8FBFD;
  --fg-on-accent: #1C170D;
  --fg-secondary: #5B6472;
  --fg-disabled: #9AA3AE;
  --brand-primary: #294E6B;
  --brand-primary-hover: #1F425D;
  --brand-secondary: #6B5AA8;
  --brand-secondary-hover: #584890;
  --brand-accent: #A97F2E;
  --brand-accent-hover: #8E6922;
  --border-color-default: #CDBFA8;
  --border-color-subtle: #E1D6C6;
  --border-color-strong: #8B94A3;
  --color-error: #B84C5A;
  --color-warning: #A9771B;
  --color-info: #3B6F9E;
  --color-success: #2E8A61;

  --font-body-md-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-md-size: 1rem;
  --font-body-md-weight: 400;
  --font-body-md-line-height: 1.65;
  --font-body-md-letter-spacing: 0em;
  --font-body-sm-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body-sm-size: 0.875rem;
  --font-body-sm-weight: 400;
  --font-body-sm-line-height: 1.55;
  --font-body-sm-letter-spacing: 0em;
  --font-label-md-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-label-md-size: 0.9375rem;
  --font-label-md-weight: 700;
  --font-label-md-line-height: 1.15;
  --font-label-md-letter-spacing: 0.02em;
  --font-title-md-family: 'Cormorant Garamond', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-title-md-size: 1.2rem;
  --font-title-md-weight: 600;
  --font-title-md-line-height: 1.2;
  --font-title-md-letter-spacing: 0.005em;
  --font-display-lg-family: 'Cormorant Garamond', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display-lg-size: 4.4rem;
  --font-display-lg-weight: 700;
  --font-display-lg-line-height: 0.98;
  --font-display-lg-letter-spacing: -0.03em;
  --font-headline-lg-family: 'Cormorant Garamond', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-headline-lg-size: 2.4rem;
  --font-headline-lg-weight: 600;
  --font-headline-lg-line-height: 1.08;
  --font-headline-lg-letter-spacing: -0.01em;

  --spacing-lg: 1.35rem;
  --spacing-md: 0.9rem;
  --spacing-sm: 0.45rem;
  --spacing-xl: 2.2rem;
  --spacing-xs: 0.2rem;

  --border-radius-lg: 1.35rem;
  --border-radius-md: 0.75rem;
  --border-radius-sm: 0.35rem;

  --shadow-lg: 0 18px 44px rgba(3, 8, 16, 0.42), 0 8px 18px rgba(3, 8, 16, 0.26);
  --shadow-md: 0 10px 24px rgba(3, 8, 16, 0.34), 0 3px 8px rgba(3, 8, 16, 0.22);
  --shadow-sm: 0 1px 2px rgba(3, 8, 16, 0.28), 0 6px 14px rgba(3, 8, 16, 0.20);
}

.palette-collection-figurines[data-theme="dark"] {
  --bg-default: #071019;
  --bg-subtle: #111A27;
  --fg-on-default: #F4F1EA;
  --fg-on-subtle: #E2E7EE;
  --fg-secondary: #AAB4C1;
  --fg-disabled: #687483;
  --border-color-default: #243142;
  --border-color-subtle: #1A2330;
}
