@font-face {
  font-family: "AENIMA Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/inter/inter-latin-400-normal.woff2") format("woff2");
}

@font-face {
  font-family: "AENIMA Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/inter/inter-latin-600-normal.woff2") format("woff2");
}

@font-face {
  font-family: "AENIMA Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/inter/inter-latin-700-normal.woff2") format("woff2");
}

@font-face {
  font-family: "AENIMA Inter";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/inter/inter-latin-800-normal.woff2") format("woff2");
}

:root {
  --font-size-story-quote: clamp(1.45rem, 2.4vw, 2rem);
  --font-size-story-quote-mark: clamp(2.6rem, 4vw, 3.5rem);
  --floating-action-size: 3.65rem;
  --floating-action-edge: 1.25rem;
  --floating-action-bottom: calc(var(--floating-action-edge) + 2.25rem);
  --floating-action-gap: .75rem;
  --color-hero-night: var(--color-primary-deep);
  --color-hero-highlight: #fff4e4;
  --color-primary: #376d70;
  --color-primary-strong: #2d595c;
  --color-primary-deep: #173a3c;
  --color-primary-soft: #e4eeee;
  --color-primary-rgb: 55 109 112;
  --color-identity: #708b75;
  --color-identity-strong: #536a57;
  --color-identity-soft: rgb(var(--color-identity-rgb) / 0.16);
  --color-identity-faint: rgb(var(--color-identity-rgb) / 0.08);
  --color-identity-rgb: 112 139 117;
  --color-secondary: #db70a6;
  --color-secondary-strong: #b64d81;
  --color-secondary-deep: #873058;
  --color-secondary-muted: #e8a9c8;
  --color-secondary-soft: rgb(var(--color-secondary-rgb) / 0.17);
  --color-secondary-faint: rgb(var(--color-secondary-rgb) / 0.09);
  --color-secondary-rgb: 219 112 166;
  --color-accent: var(--color-secondary);
  --color-accent-strong: var(--color-secondary-strong);
  --color-accent-muted: var(--color-secondary-muted);
  --color-accent-soft: var(--color-secondary-soft);
  --color-accent-faint: var(--color-secondary-faint);
  --color-accent-rgb: var(--color-secondary-rgb);
  --color-highlight: #81758f;
  --color-highlight-strong: #5f536b;
  --color-highlight-soft: #eeeaf1;
  --color-highlight-rgb: 129 117 143;
  --color-offer-comparison: var(--color-secondary);
  --color-offer-included: #246333;
  --color-offer-included-soft: #e5f4e7;
  --color-current-day: var(--color-secondary);
  --color-current-day-strong: var(--color-secondary-strong);
  --color-current-day-soft: #fdf0f6;
  --color-bg: #ffffff;
  --color-surface: #ffffff;
  --color-settings-hero: #45464b;
  --color-surface-off-white: #f8f6f2;
  --color-surface-muted: var(--color-identity-faint);
  --color-text: #253130;
  --color-text-soft: #5d6a68;
  --color-text-subtle: #6f7679;
  --color-text-rgb: 37 49 48;
  --color-white-rgb: 255 255 255;
  --color-border: rgb(var(--color-text-rgb) / 0.09);
  --color-sidebar: var(--color-primary);
  --color-sidebar-accent: var(--color-identity-soft);
  --color-success: #d18768;
  --color-success-strong: #92563f;
  --color-success-soft: rgb(209 135 104 / 0.17);
  --color-danger: #dc2626;
  --color-danger-strong: #991b1b;
  --color-danger-soft: rgb(var(--color-danger-rgb) / 0.11);
  --color-danger-rgb: 220 38 38;
  --color-focus: rgb(var(--color-identity-rgb) / 0.3);
  --color-glass: rgb(var(--color-white-rgb) / 0.88);
  --color-glass-strong: rgb(var(--color-white-rgb) / 0.96);
  --radius-sm: 12px;
  --ui-radius-field: 8px;
  --radius: 18px;
  --radius-lg: 24px;
  --spacing: 16px;
  --shadow-xs: 0 1px 2px rgb(var(--color-text-rgb) / 0.04);
  --shadow: 0 18px 40px rgb(var(--color-text-rgb) / 0.08);
  --shadow-lg: 0 32px 80px rgb(var(--color-primary-rgb) / 0.16);
  --shadow-accent: 0 12px 28px rgb(var(--color-secondary-rgb) / 0.2);
  --font-body: "AENIMA Inter", "Inter", "Avenir Next", "Segoe UI", sans-serif;
}

/* Shared interface primitives. Document, public and admin layouts do not opt in. */
@media (max-width: 760px) {
  :root { --floating-action-edge: .85rem; }
}

html[data-ui-components] {
  --ui-space-1: 4px;
  --ui-space-2: 8px;
  --ui-space-3: 12px;
  --ui-space-4: 16px;
  --ui-space-5: 20px;
  --ui-space-6: 24px;
  --ui-space-7: 28px;
  --ui-space-8: 32px;
  --ui-radius-control: 12px;
  --ui-radius-card: 18px;
  --ui-radius-overlay: 24px;
  --ui-radius-badge: 8px;
  --ui-radius-pill: 999px;
  --ui-radius-round: 50%;
  --ui-shadow-card: 0 5px 18px rgb(var(--color-primary-rgb) / .10);
  --ui-shadow-card-crisp: 0 3px 6px rgb(var(--color-text-rgb) / .24);
  --ui-shadow-control: var(--shadow-xs);
  --ui-shadow-overlay: 0 24px 70px rgb(var(--color-text-rgb) / .26);
  --ui-shadow-menu: 0 12px 26px rgb(var(--color-text-rgb) / .2);
  --ui-control-height: 44px;
  --ui-compact-control-height: 38px;
  --ui-filter-control-height: 38px;
  --ui-filter-label-height: 16px;
  --ui-section-min-height: clamp(500px, 68svh, 760px);
  --ui-control-padding: 11px 18px;
  --ui-field-padding: 13px 15px;
  --ui-border-control: rgb(var(--color-text-rgb) / .22);
  --ui-focus-ring: 0 0 0 3px rgb(var(--color-primary-rgb) / .25);
  --ui-motion-fast: .16s;
  --ui-motion-control: .2s;
  --ui-motion-drawer: .32s;
  --ui-ease: cubic-bezier(.22, 1, .36, 1);
  --ui-layer-navigation: 25;
  --ui-layer-navigation-mobile: 50;
  --ui-layer-help: 100;
  --ui-layer-notification: 200;
  --ui-layer-tour: 210;
  --ui-layer-dialog: 3000;
  --ui-layer-menu: 35;
  --ui-layer-context-menu: 1200;
  --ui-overlay-backdrop: rgb(var(--color-text-rgb) / .42);
  --ui-success-surface: #edf7f0;
  --ui-success-border: #92bea0;
  --ui-success-text: #246333;
  --ui-warning-surface: #fff5e6;
  --ui-back-icon-background: #f4ce55;
  --ui-favorite-star: #f4ce55;
  --ui-back-icon-foreground: #253130;
  --ui-warning-border: #dfb16b;
  --ui-warning-text: #805016;
  --ui-measurement-alert-light: #e0bb24;
  --ui-measurement-alert-moderate: #df7b2d;
  --ui-measurement-alert-severe: #d6243e;
  --ui-info-surface: var(--color-primary-soft);
  --ui-info-border: #9bbabb;
  --ui-info-text: var(--color-primary-deep);
  --ui-danger-surface: #fff1f2;
  --ui-danger-border: #fecdd3;
  --ui-danger-text: #9f1239;
  --ui-danger-on-dark: #ff6b6b;
  --ui-action-important: #b94630;
  --ui-action-important-hover: #923321;
  --color-success: var(--ui-success-border);
  --color-success-soft: var(--ui-success-surface);
  --color-success-strong: var(--ui-success-text);
}

@media (prefers-reduced-motion: reduce) {
  html[data-ui-components] {
    --ui-motion-fast: 0s;
    --ui-motion-control: 0s;
    --ui-motion-drawer: 0s;
  }
}

/* Canonical interface typography. Public/admin body copy shares the body role; print remains unchanged. */
html:not([data-ui-typography]) {
  --font-size-body: .875rem;
}

html[data-ui-typography] {
  --font-size-page-title: 3rem;
  --font-size-page-title-fluid: clamp(2rem, 3.2vw, var(--font-size-page-title));
  --font-size-hero-intro: clamp(.98rem, 1.5vw, 1.12rem);
  --font-size-section-title: 1.375rem;
  --font-size-comparison-check: 1.5rem;
  --font-size-card-title: 1.25rem;
  --font-size-subtitle: .875rem;
  --font-size-body: .875rem;
  --font-size-input: 1rem;
  --font-size-label: .875rem;
  --font-size-control: .875rem;
  --font-size-table: .875rem;
  --font-size-help: .8125rem;
  --font-size-caption: .75rem;
  --font-weight-body: 400;
  --font-weight-label: 600;
  --font-weight-title: 700;
  --line-height-body: 1.5;
  --line-height-title: 1.2;
}

@media (max-width: 640px) {
  html[data-ui-typography] {
    --font-size-page-title: 2rem;
    --font-size-section-title: 1.25rem;
  }
}
