@layer cms-foundation {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  :where(html) {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    min-block-size: 100%;
  }

  :where(body) {
    margin: 0;
    min-block-size: 100%;
  }

  :where([hidden]) {
    display: none !important;
  }
}

:root {
  --primary-base: rgb(206, 220, 80);
  --primary-contrasted: #1a1108;
  --secondary-base: #b6652a;
  --secondary-contrasted: #ffffff;
  --primary-base-hover: rgb(180, 195, 50);
  --primary-strong: #5a6a1d;
  --primary-muted: #f5f8dc;
  --primary-contrasted-muted: rgba(26, 17, 8, 0.75);
  --primary-contrasted-border: rgba(26, 17, 8, 0.20);
  --secondary-base-hover: rgb(140, 68, 28);
  --secondary-strong: var(--secondary-base);
  --secondary-muted: #eeddd3;
  --secondary-contrasted-muted: rgba(255, 255, 255, 0.75);
  --secondary-contrasted-border: rgba(255, 255, 255, 0.20);
  --link-base: var(--secondary-strong);
  --link-base-hover: var(--secondary-base-hover);
  --link-visited: #7a4b35;
  --link-focus-ring: var(--secondary-base);
  --bg-base: #f6efe2;
  --bg-surface: #ffffff;
  --border-default: #ece1cc;
  --custom-93: #ccb3b3;
  --bg-overlay: #fdf8eb;
  --border-light: #f1e8d4;
  --ctx-bg: var(--bg-base);
  --ctx-border: var(--border-default);
  --text-main: #1a1108;
  --text-muted: #6b5642;
  --text-label: #a89683;
  --ctx-fg: var(--text-main);
  --ctx-fg-muted: var(--text-muted);
  --text-body: #3a2a1c;
  --success-base: #16a34a;
  --warning-base: #dc6024;
  --danger-base: #dc2626;
  --danger-base-hover: #b91c1c;
  --danger-strong: #991b1b;
  --danger-muted: #fee2e2;
  --danger-contrasted: #ffffff;
  --danger-contrasted-muted: rgba(255, 255, 255, 0.75);
  --danger-contrasted-border: rgba(255, 255, 255, 0.20);
  --success-base-hover: #128a3d;
  --success-strong: #0d6633;
  --success-muted: #d8f1e0;
  --success-contrasted: #1a1108;
  --success-contrasted-muted: rgba(26, 17, 8, 0.75);
  --success-contrasted-border: rgba(26, 17, 8, 0.20);
  --info-base: #2563eb;
  --info-base-hover: #1e54d4;
  --info-strong: #1d4ed8;
  --info-muted: #dbeafe;
  --info-contrasted: #ffffff;
  --info-contrasted-muted: rgba(255, 255, 255, 0.75);
  --info-contrasted-border: rgba(255, 255, 255, 0.20);
  --warning-base-hover: #c4511c;
  --warning-strong: #b04515;
  --warning-muted: #fde2d4;
  --warning-contrasted: #1a1108;
  --warning-contrasted-muted: rgba(26, 17, 8, 0.75);
  --warning-contrasted-border: rgba(26, 17, 8, 0.20);
  --font-heading: "Fraunces", Georgia, serif;
  --font-body: system-ui, -apple-system, "Segoe UI", sans-serif;
  --text-display: 3.5rem;
  --space-sm: .5rem;
  --space-md: 1rem;
  --space-xl: 3rem;
  --p9r-space-xs: 0.5rem;
  --p9r-space-sm: 1rem;
  --p9r-space-md: 1.5rem;
  --p9r-space-lg: 2rem;
  --p9r-space-xl: 3rem;
  --content-width: 68rem;
  --wide-width: 82rem;
  --p9r-container-xs: 480px;
  --p9r-container-sm: 720px;
  --p9r-container-md: 960px;
  --p9r-container-lg: 1200px;
  --p9r-container-xl: 1440px;
  --radius-control: .25rem;
  --radius-card: .5rem;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --shadow-soft: 0 2px 10px rgb(18 30 24 / .08);
  --shadow-sm: 0 1px 2px  rgba(0, 0, 0, 0.08);
  --shadow-md: 0 6px 18px rgba(0, 0, 0, 0.16);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
  --shadow-xl: 0 12px 40px rgba(0, 0, 0, 0.18);
  --ctx-shadow-rest: var(--shadow-sm);
  --ctx-shadow-hover: var(--shadow-md);
  --duration-quick: 120ms;
  --duration-medium: 160ms;
  --duration-slow: 240ms;
  --ulvia-primary-base: #cedc50;
  --ulvia-primary-hover: #b4c332;
  --ulvia-primary-muted: #f5f8dc;
  --ulvia-primary-contrasted: #5a6a1d;
  --ulvia-primary-foreground: #1a1108;
  --ulvia-secondary-base: #b6652a;
  --ulvia-secondary-muted: #eeddd3;
  --ulvia-secondary-contrasted: #b6652a;
  --ulvia-secondary-foreground: #ffffff;
  --ulvia-info-base: #2563eb;
  --ulvia-info-muted: #dbeafe;
  --ulvia-info-contrasted: #1d4ed8;
  --ulvia-info-foreground: #ffffff;
  --ulvia-success-base: #16a34a;
  --ulvia-success-muted: #d8f1e0;
  --ulvia-success-contrasted: #0d6633;
  --ulvia-success-foreground: #1a1108;
  --ulvia-warning-base: #dc6024;
  --ulvia-warning-muted: #fde2d4;
  --ulvia-warning-contrasted: #b04515;
  --ulvia-warning-foreground: #1a1108;
  --ulvia-danger-base: #dc2626;
  --ulvia-danger-muted: #fee2e2;
  --ulvia-danger-contrasted: #991b1b;
  --ulvia-danger-foreground: #ffffff;
  --ulvia-space-xs: 0.5rem;
  --ulvia-space-sm: 1rem;
  --ulvia-space-md: 1.5rem;
  --ulvia-space-lg: 2rem;
  --ulvia-space-2xl: 4rem;
  --ulvia-space-xl: 3rem;
  --ulvia-container-xs: 480px;
  --ulvia-container-sm: 720px;
  --ulvia-container-md: 960px;
  --ulvia-container-lg: 1200px;
  --ulvia-container-xl: 1440px;
  --ulvia-radius-sm: 6px;
  --ulvia-radius-control: .25rem;
  --ulvia-radius-card: .5rem;
  --ulvia-radius-lg: 16px;
  --ulvia-shadow-sm: 0 1px 2px rgb(0 0 0 / 8%);
  --ulvia-shadow-soft: 0 2px 10px rgb(18 30 24 / 8%);
  --ulvia-shadow-lg: 0 8px 24px rgb(0 0 0 / 12%);
  --ulvia-duration-fast: 120ms;
  --ulvia-duration-normal: 160ms;
  --ulvia-duration-slow: 240ms;
  --ulvia-page-background: #f6efe2;
  --ulvia-surface-background: #ffffff;
  --ulvia-subtle-background: #fdf8eb;
  --ulvia-surface-text: #1a1108;
  --ulvia-body-text: #3a2a1c;
  --ulvia-surface-muted-text: #6b5642;
  --ulvia-surface-border: #ece1cc;
  --ulvia-font-body: system-ui, -apple-system, "Segoe UI", sans-serif;
  --ulvia-font-heading: "Fraunces", Georgia, serif;
}

@media (prefers-color-scheme: dark) {
  :root {
    --ulvia-primary-base: #66d3ad;
    --ulvia-primary-hover: #86e1c1;
    --ulvia-primary-muted: #173c31;
    --ulvia-primary-contrasted: #b9f5df;
    --ulvia-primary-foreground: #10231d;
    --ulvia-secondary-base: #34443e;
    --ulvia-secondary-muted: #26342f;
    --ulvia-secondary-contrasted: #d7e7df;
    --ulvia-secondary-foreground: #eff7f3;
    --ulvia-info-base: #73b5dc;
    --ulvia-info-muted: #173647;
    --ulvia-info-contrasted: #bfe8ff;
    --ulvia-info-foreground: #0f2530;
    --ulvia-success-base: #58c998;
    --ulvia-success-muted: #173b2d;
    --ulvia-success-contrasted: #baf2d7;
    --ulvia-success-foreground: #10281e;
    --ulvia-warning-base: #e0ab55;
    --ulvia-warning-muted: #443117;
    --ulvia-warning-contrasted: #f8ddb0;
    --ulvia-warning-foreground: #2d1d07;
    --ulvia-danger-base: #e77b70;
    --ulvia-danger-muted: #4a211e;
    --ulvia-danger-contrasted: #ffd0cb;
    --ulvia-danger-foreground: #33100d;
    --ulvia-shadow-sm: 0 .25rem .75rem rgb(0 0 0 / 28%);
    --ulvia-shadow-soft: 0 .5rem 1.5rem rgb(0 0 0 / 36%);
    --ulvia-shadow-lg: 0 .75rem 2rem rgb(0 0 0 / 44%);
    --ulvia-page-background: #151815;
    --ulvia-surface-background: #1d211e;
    --ulvia-subtle-background: #252b27;
    --ulvia-surface-text: #f2f4ef;
    --ulvia-body-text: #d7dbd4;
    --ulvia-surface-muted-text: #a8afa6;
    --ulvia-surface-border: #3a423c;
  }
}

:root[data-theme-mode="dark"] {
  --ulvia-primary-base: #66d3ad;
  --ulvia-primary-hover: #86e1c1;
  --ulvia-primary-muted: #173c31;
  --ulvia-primary-contrasted: #b9f5df;
  --ulvia-primary-foreground: #10231d;
  --ulvia-secondary-base: #34443e;
  --ulvia-secondary-muted: #26342f;
  --ulvia-secondary-contrasted: #d7e7df;
  --ulvia-secondary-foreground: #eff7f3;
  --ulvia-info-base: #73b5dc;
  --ulvia-info-muted: #173647;
  --ulvia-info-contrasted: #bfe8ff;
  --ulvia-info-foreground: #0f2530;
  --ulvia-success-base: #58c998;
  --ulvia-success-muted: #173b2d;
  --ulvia-success-contrasted: #baf2d7;
  --ulvia-success-foreground: #10281e;
  --ulvia-warning-base: #e0ab55;
  --ulvia-warning-muted: #443117;
  --ulvia-warning-contrasted: #f8ddb0;
  --ulvia-warning-foreground: #2d1d07;
  --ulvia-danger-base: #e77b70;
  --ulvia-danger-muted: #4a211e;
  --ulvia-danger-contrasted: #ffd0cb;
  --ulvia-danger-foreground: #33100d;
  --ulvia-shadow-sm: 0 .25rem .75rem rgb(0 0 0 / 28%);
  --ulvia-shadow-soft: 0 .5rem 1.5rem rgb(0 0 0 / 36%);
  --ulvia-shadow-lg: 0 .75rem 2rem rgb(0 0 0 / 44%);
  --ulvia-page-background: #151815;
  --ulvia-surface-background: #1d211e;
  --ulvia-subtle-background: #252b27;
  --ulvia-surface-text: #f2f4ef;
  --ulvia-body-text: #d7dbd4;
  --ulvia-surface-muted-text: #a8afa6;
  --ulvia-surface-border: #3a423c;
}