/* AUTO-GENERATED — edit script/build_themes_css.rb then run: ruby script/build_themes_css.rb */



@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&family=Fraunces:ital,opsz,wght@0,9..144,600;0,9..144,700&family=Outfit:wght@400;500;600;700&family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;0,8..60,700&family=Libre+Baskerville:ital,wght@0,400;0,700&family=Manrope:wght@400;500;600;700&display=swap");



/*
 * Theme variables for admin (site staff + /app) and public site.
 * Admin: .theme-admin-{key} + .theme-recipe-admin-{0-4} on <html> (see Theme.admin_recipe_index).
 * Public: .theme-public-{key} only.
 * Google Fonts load above for public themes; admin uses system UI fonts.
 */

:root {
  --color-primary: #2563eb;
  --color-primary-hover: #1d4ed8;
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #2563eb;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
  --theme-radius-full: 9999px;
  --theme-radius-sm: 0.25rem;
  --theme-radius-md: 0.375rem;
  --theme-radius-lg: 0.5rem;
  --theme-radius-xl: 0.75rem;
  --theme-radius-2xl: 1rem;
  --theme-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.05);
  --theme-shadow-md: 0 4px 6px rgb(0 0 0 / 0.07);
  --theme-shadow-lg: 0 10px 15px rgb(0 0 0 / 0.08);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.02em;
  --theme-transition: 150ms ease-out;
  --theme-hero-gradient: linear-gradient(
    to bottom right,
    var(--color-neutral-100),
    var(--color-neutral-50),
    #ffffff
  );
  --theme-btn-shadow: none;
}


/* ---------- Admin recipes: sober radii, light shadows, system fonts ---------- */

.theme-recipe-admin-0 {
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.125rem;
  --theme-radius-md: 0.1875rem;
  --theme-radius-lg: 0.25rem;
  --theme-radius-xl: 0.3125rem;
  --theme-radius-2xl: 0.375rem;
  --theme-shadow-sm: 0 1px 1px rgb(0 0 0 / 0.04);
  --theme-shadow-md: 0 2px 4px rgb(0 0 0 / 0.05);
  --theme-shadow-lg: 0 4px 8px rgb(0 0 0 / 0.06);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.01em;
  --theme-transition: 120ms ease-out;
}

.theme-recipe-admin-1 {
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.25rem;
  --theme-radius-md: 0.375rem;
  --theme-radius-lg: 0.5rem;
  --theme-radius-xl: 0.5rem;
  --theme-radius-2xl: 0.75rem;
  --theme-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.05);
  --theme-shadow-md: 0 4px 6px rgb(0 0 0 / 0.06);
  --theme-shadow-lg: 0 8px 12px rgb(0 0 0 / 0.07);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.02em;
  --theme-transition: 150ms ease-out;
}

.theme-recipe-admin-2 {
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.3125rem;
  --theme-radius-md: 0.4375rem;
  --theme-radius-lg: 0.5625rem;
  --theme-radius-xl: 0.625rem;
  --theme-radius-2xl: 0.875rem;
  --theme-shadow-sm: 0 1px 3px rgb(0 0 0 / 0.06);
  --theme-shadow-md: 0 6px 10px rgb(0 0 0 / 0.07);
  --theme-shadow-lg: 0 10px 16px rgb(0 0 0 / 0.08);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.015em;
  --theme-transition: 160ms ease-out;
}

.theme-recipe-admin-3 {
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.125rem;
  --theme-radius-md: 0.25rem;
  --theme-radius-lg: 0.25rem;
  --theme-radius-xl: 0.3125rem;
  --theme-radius-2xl: 0.375rem;
  --theme-shadow-sm: 0 1px 1px rgb(0 0 0 / 0.035);
  --theme-shadow-md: 0 2px 4px rgb(0 0 0 / 0.045);
  --theme-shadow-lg: 0 4px 8px rgb(0 0 0 / 0.055);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.008em;
  --theme-transition: 100ms ease-out;
}

.theme-recipe-admin-4 {
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.25rem;
  --theme-radius-md: 0.3125rem;
  --theme-radius-lg: 0.4375rem;
  --theme-radius-xl: 0.5625rem;
  --theme-radius-2xl: 0.75rem;
  --theme-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.055);
  --theme-shadow-md: 0 5px 8px rgb(0 0 0 / 0.065);
  --theme-shadow-lg: 0 9px 14px rgb(0 0 0 / 0.075);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.018em;
  --theme-transition: 140ms ease-out;
}

/* ---------- Admin palette only (site staff + /app) ---------- */

.theme-admin-institutional-blue {
  --color-primary: #1e40af;
  --color-primary-hover: #1e3a8a;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #475569;
  --color-neutral-700: #334155;
  --color-neutral-800: #1e293b;
  --color-neutral-900: #0f172a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #1d4ed8;
}

.theme-admin-slate-professional {
  --color-primary: #475569;
  --color-primary-hover: #334155;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #475569;
  --color-neutral-700: #334155;
  --color-neutral-800: #1e293b;
  --color-neutral-900: #0f172a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #475569;
}

.theme-admin-teal-health {
  --color-primary: #0f766e;
  --color-primary-hover: #0d5c56;
  --color-neutral-50: #f0fdfa;
  --color-neutral-100: #ccfbf1;
  --color-neutral-200: #99f6e4;
  --color-neutral-600: #0d9488;
  --color-neutral-700: #0f766e;
  --color-neutral-800: #115e59;
  --color-neutral-900: #134e4a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #0f766e;
}

.theme-admin-navy-trust {
  --color-primary: #1e3a8a;
  --color-primary-hover: #172554;
  --color-neutral-50: #f0f4f8;
  --color-neutral-100: #dbeafe;
  --color-neutral-200: #bfdbfe;
  --color-neutral-600: #1e40af;
  --color-neutral-700: #1e3a8a;
  --color-neutral-800: #172554;
  --color-neutral-900: #0f172a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #1e40af;
}

.theme-admin-sage-calm {
  --color-primary: #4d7c0f;
  --color-primary-hover: #3d6211;
  --color-neutral-50: #f7f9f5;
  --color-neutral-100: #ecfccb;
  --color-neutral-200: #d9f99d;
  --color-neutral-600: #65a30d;
  --color-neutral-700: #4d7c0f;
  --color-neutral-800: #3d6211;
  --color-neutral-900: #1a2e05;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #4d7c0f;
}

.theme-admin-steel-neutral {
  --color-primary: #64748b;
  --color-primary-hover: #475569;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #64748b;
  --color-neutral-700: #475569;
  --color-neutral-800: #334155;
  --color-neutral-900: #1e293b;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #64748b;
}

.theme-admin-mint-fresh {
  --color-primary: #0d9488;
  --color-primary-hover: #0f766e;
  --color-neutral-50: #f0fdfa;
  --color-neutral-100: #ccfbf1;
  --color-neutral-200: #99f6e4;
  --color-neutral-600: #14b8a6;
  --color-neutral-700: #0d9488;
  --color-neutral-800: #0f766e;
  --color-neutral-900: #134e4a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #0d9488;
}

.theme-admin-graphite-clear {
  --color-primary: #475569;
  --color-primary-hover: #334155;
  --color-neutral-50: #fafafa;
  --color-neutral-100: #f4f4f5;
  --color-neutral-200: #e4e4e7;
  --color-neutral-600: #52525b;
  --color-neutral-700: #3f3f46;
  --color-neutral-800: #27272a;
  --color-neutral-900: #18181b;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #52525b;
}

.theme-admin-ocean-stable {
  --color-primary: #0369a1;
  --color-primary-hover: #075985;
  --color-neutral-50: #f0f9ff;
  --color-neutral-100: #e0f2fe;
  --color-neutral-200: #bae6fd;
  --color-neutral-600: #0284c7;
  --color-neutral-700: #0369a1;
  --color-neutral-800: #075985;
  --color-neutral-900: #0c4a6e;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #0369a1;
}

.theme-admin-stone-minimal {
  --color-primary: #57534e;
  --color-primary-hover: #44403c;
  --color-neutral-50: #fafaf9;
  --color-neutral-100: #f5f5f4;
  --color-neutral-200: #e7e5e4;
  --color-neutral-600: #57534e;
  --color-neutral-700: #44403c;
  --color-neutral-800: #292524;
  --color-neutral-900: #1c1917;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #57534e;
}

.theme-admin-forest-calm {
  --color-primary: #166534;
  --color-primary-hover: #14532d;
  --color-neutral-50: #f5f7f4;
  --color-neutral-100: #dcfce7;
  --color-neutral-200: #bbf7d0;
  --color-neutral-600: #16a34a;
  --color-neutral-700: #15803d;
  --color-neutral-800: #166534;
  --color-neutral-900: #14532d;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #166534;
}

.theme-admin-pearl-light {
  --color-primary: #6366f1;
  --color-primary-hover: #4f46e5;
  --color-neutral-50: #fafafa;
  --color-neutral-100: #f4f4f5;
  --color-neutral-200: #e4e4e7;
  --color-neutral-600: #71717a;
  --color-neutral-700: #52525b;
  --color-neutral-800: #3f3f46;
  --color-neutral-900: #27272a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #4f46e5;
}

.theme-admin-indigo-formal {
  --color-primary: #4338ca;
  --color-primary-hover: #3730a3;
  --color-neutral-50: #eef2ff;
  --color-neutral-100: #e0e7ff;
  --color-neutral-200: #c7d2fe;
  --color-neutral-600: #4f46e5;
  --color-neutral-700: #4338ca;
  --color-neutral-800: #3730a3;
  --color-neutral-900: #312e81;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #4338ca;
}

.theme-admin-ash-sober {
  --color-primary: #4b5563;
  --color-primary-hover: #374151;
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #4b5563;
}

.theme-admin-sky-clean {
  --color-primary: #0284c7;
  --color-primary-hover: #0369a1;
  --color-neutral-50: #f0f9ff;
  --color-neutral-100: #e0f2fe;
  --color-neutral-200: #bae6fd;
  --color-neutral-600: #0ea5e9;
  --color-neutral-700: #0284c7;
  --color-neutral-800: #0369a1;
  --color-neutral-900: #0c4a6e;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #0284c7;
}

.theme-admin-charcoal-strict {
  --color-primary: #374151;
  --color-primary-hover: #1f2937;
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #374151;
}

.theme-admin-jade-calm {
  --color-primary: #059669;
  --color-primary-hover: #047857;
  --color-neutral-50: #ecfdf5;
  --color-neutral-100: #d1fae5;
  --color-neutral-200: #a7f3d0;
  --color-neutral-600: #0d9488;
  --color-neutral-700: #0f766e;
  --color-neutral-800: #115e59;
  --color-neutral-900: #134e4a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #059669;
}

.theme-admin-silver-bright {
  --color-primary: #64748b;
  --color-primary-hover: #475569;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #64748b;
  --color-neutral-700: #475569;
  --color-neutral-800: #334155;
  --color-neutral-900: #1e293b;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #64748b;
}

.theme-admin-cobalt-official {
  --color-primary: #1d4ed8;
  --color-primary-hover: #1e40af;
  --color-neutral-50: #eff6ff;
  --color-neutral-100: #dbeafe;
  --color-neutral-200: #bfdbfe;
  --color-neutral-600: #2563eb;
  --color-neutral-700: #1d4ed8;
  --color-neutral-800: #1e40af;
  --color-neutral-900: #1e3a8a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #1d4ed8;
}

.theme-admin-frost-subtle {
  --color-primary: #0ea5e9;
  --color-primary-hover: #0284c7;
  --color-neutral-50: #f0f9ff;
  --color-neutral-100: #e0f2fe;
  --color-neutral-200: #bae6fd;
  --color-neutral-600: #06b6d4;
  --color-neutral-700: #0891b2;
  --color-neutral-800: #0e7490;
  --color-neutral-900: #155e75;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #a16207;
  --color-info: #0891b2;
}


/* ---------- Public themes — expressive for internet visitors ---------- */

.theme-public-default {
  --color-primary: #2563eb;
  --color-primary-hover: #1d4ed8;
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #2563eb;
  --font-heading: "Fraunces", ui-serif, Georgia, serif;
  --font-body: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.5rem;
  --theme-radius-md: 0.625rem;
  --theme-radius-lg: 0.875rem;
  --theme-radius-xl: 1rem;
  --theme-radius-2xl: 1.25rem;
  --theme-shadow-sm: 0 2px 8px rgb(15 23 42 / 0.06), 0 1px 2px rgb(15 23 42 / 0.04);
  --theme-shadow-md: 0 8px 24px rgb(15 23 42 / 0.08);
  --theme-shadow-lg: 0 20px 50px rgb(15 23 42 / 0.12);
  --theme-heading-weight: 700;
  --theme-heading-tracking: -0.03em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 2px 8px color-mix(in srgb, var(--color-primary) 40%, transparent);
}

.theme-public-teal-certification {
  --color-primary: #0d9488;
  --color-primary-hover: #0f766e;
  --color-neutral-50: #f0fdfa;
  --color-neutral-100: #ccfbf1;
  --color-neutral-200: #99f6e4;
  --color-neutral-600: #0d9488;
  --color-neutral-700: #0f766e;
  --color-neutral-800: #115e59;
  --color-neutral-900: #134e4a;
  --color-success: #0f766e;
  --color-error: #dc2626;
  --color-warning: #ca8a04;
  --color-info: #0e7490;
  --font-heading: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.375rem;
  --theme-radius-md: 0.5rem;
  --theme-radius-lg: 0.75rem;
  --theme-radius-xl: 0.875rem;
  --theme-radius-2xl: 1rem;
  --theme-shadow-sm: 0 1px 3px rgb(20 83 45 / 0.06);
  --theme-shadow-md: 0 6px 16px rgb(20 83 45 / 0.08);
  --theme-shadow-lg: 0 12px 28px rgb(20 83 45 / 0.1);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.022em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 2px 6px color-mix(in srgb, var(--color-primary) 35%, transparent);
}

.theme-public-sage-welcome {
  --color-primary: #4d7c0f;
  --color-primary-hover: #3d6211;
  --color-neutral-50: #f7f9f5;
  --color-neutral-100: #ecfccb;
  --color-neutral-200: #d9f99d;
  --color-neutral-600: #65a30d;
  --color-neutral-700: #4d7c0f;
  --color-neutral-800: #3d6211;
  --color-neutral-900: #1a2e05;
  --color-success: #15803d;
  --color-error: #dc2626;
  --color-warning: #b45309;
  --color-info: #3f6212;
  --font-heading: "Source Serif 4", ui-serif, Georgia, serif;
  --font-body: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.625rem;
  --theme-radius-md: 0.875rem;
  --theme-radius-lg: 1.125rem;
  --theme-radius-xl: 1.25rem;
  --theme-radius-2xl: 1.5rem;
  --theme-shadow-sm: 0 2px 10px rgb(26 46 5 / 0.07);
  --theme-shadow-md: 0 10px 28px rgb(26 46 5 / 0.09);
  --theme-shadow-lg: 0 18px 44px rgb(26 46 5 / 0.11);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.02em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 3px 10px color-mix(in srgb, var(--color-primary) 30%, transparent);
}

.theme-public-navy-authority {
  --color-primary: #1e3a8a;
  --color-primary-hover: #172554;
  --color-neutral-50: #f0f4f8;
  --color-neutral-100: #dbeafe;
  --color-neutral-200: #bfdbfe;
  --color-neutral-600: #1e40af;
  --color-neutral-700: #1e3a8a;
  --color-neutral-800: #172554;
  --color-neutral-900: #0f172a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --color-warning: #b45309;
  --color-info: #1e40af;
  --font-heading: "Libre Baskerville", ui-serif, Georgia, serif;
  --font-body: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.1875rem;
  --theme-radius-md: 0.25rem;
  --theme-radius-lg: 0.3125rem;
  --theme-radius-xl: 0.375rem;
  --theme-radius-2xl: 0.5rem;
  --theme-shadow-sm: 0 2px 6px rgb(15 23 42 / 0.12);
  --theme-shadow-md: 0 8px 20px rgb(15 23 42 / 0.14);
  --theme-shadow-lg: 0 16px 40px rgb(15 23 42 / 0.18);
  --theme-heading-weight: 700;
  --theme-heading-tracking: -0.015em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 4px 14px color-mix(in srgb, var(--color-primary) 45%, transparent);
}

.theme-public-slate-public {
  --color-primary: #475569;
  --color-primary-hover: #334155;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #475569;
  --color-neutral-700: #334155;
  --color-neutral-800: #1e293b;
  --color-neutral-900: #0f172a;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #334155;
  --font-heading: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --font-body: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.3125rem;
  --theme-radius-md: 0.4375rem;
  --theme-radius-lg: 0.5625rem;
  --theme-radius-xl: 0.75rem;
  --theme-radius-2xl: 0.875rem;
  --theme-shadow-sm: 0 1px 3px rgb(15 23 42 / 0.06);
  --theme-shadow-md: 0 6px 18px rgb(15 23 42 / 0.08);
  --theme-shadow-lg: 0 14px 32px rgb(15 23 42 / 0.1);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.025em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 2px 6px rgb(15 23 42 / 0.12);
}

.theme-public-mint-clear {
  --color-primary: #0d9488;
  --color-primary-hover: #0f766e;
  --color-neutral-50: #f0fdfa;
  --color-neutral-100: #ccfbf1;
  --color-neutral-200: #99f6e4;
  --color-neutral-600: #14b8a6;
  --color-neutral-700: #0d9488;
  --color-neutral-800: #0f766e;
  --color-neutral-900: #134e4a;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #ca8a04;
  --color-info: #0f766e;
  --font-heading: "Outfit", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.5rem;
  --theme-radius-md: 0.75rem;
  --theme-radius-lg: 1rem;
  --theme-radius-xl: 1.125rem;
  --theme-radius-2xl: 1.375rem;
  --theme-shadow-sm: 0 2px 12px rgb(19 78 74 / 0.08);
  --theme-shadow-md: 0 10px 26px rgb(19 78 74 / 0.1);
  --theme-shadow-lg: 0 18px 48px rgb(19 78 74 / 0.12);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.028em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 3px 12px color-mix(in srgb, var(--color-primary) 38%, transparent);
}

.theme-public-ocean-reliable {
  --color-primary: #0369a1;
  --color-primary-hover: #075985;
  --color-neutral-50: #f0f9ff;
  --color-neutral-100: #e0f2fe;
  --color-neutral-200: #bae6fd;
  --color-neutral-600: #0284c7;
  --color-neutral-700: #0369a1;
  --color-neutral-800: #075985;
  --color-neutral-900: #0c4a6e;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #0284c7;
  --font-heading: "Source Serif 4", ui-serif, Georgia, serif;
  --font-body: "Outfit", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.375rem;
  --theme-radius-md: 0.5rem;
  --theme-radius-lg: 0.625rem;
  --theme-radius-xl: 0.75rem;
  --theme-radius-2xl: 1rem;
  --theme-shadow-sm: 0 2px 8px rgb(12 74 110 / 0.07);
  --theme-shadow-md: 0 8px 22px rgb(12 74 110 / 0.09);
  --theme-shadow-lg: 0 16px 40px rgb(12 74 110 / 0.11);
  --theme-heading-weight: 700;
  --theme-heading-tracking: -0.02em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 2px 8px color-mix(in srgb, var(--color-primary) 42%, transparent);
}

.theme-public-forest-nursing {
  --color-primary: #166534;
  --color-primary-hover: #14532d;
  --color-neutral-50: #f5f7f4;
  --color-neutral-100: #dcfce7;
  --color-neutral-200: #bbf7d0;
  --color-neutral-600: #16a34a;
  --color-neutral-700: #15803d;
  --color-neutral-800: #166534;
  --color-neutral-900: #14532d;
  --color-success: #15803d;
  --color-error: #dc2626;
  --color-warning: #b45309;
  --color-info: #166534;
  --font-heading: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Source Serif 4", ui-serif, Georgia, serif;
  --theme-radius-sm: 0.4375rem;
  --theme-radius-md: 0.5625rem;
  --theme-radius-lg: 0.75rem;
  --theme-radius-xl: 0.9375rem;
  --theme-radius-2xl: 1.125rem;
  --theme-shadow-sm: 0 2px 10px rgb(20 83 45 / 0.07);
  --theme-shadow-md: 0 8px 24px rgb(20 83 45 / 0.09);
  --theme-shadow-lg: 0 16px 38px rgb(20 83 45 / 0.11);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.024em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 2px 10px color-mix(in srgb, var(--color-primary) 32%, transparent);
}

.theme-public-stone-landing {
  --color-primary: #57534e;
  --color-primary-hover: #44403c;
  --color-neutral-50: #fafaf9;
  --color-neutral-100: #f5f5f4;
  --color-neutral-200: #e7e5e4;
  --color-neutral-600: #57534e;
  --color-neutral-700: #44403c;
  --color-neutral-800: #292524;
  --color-neutral-900: #1c1917;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #b45309;
  --color-info: #57534e;
  --font-heading: "Libre Baskerville", ui-serif, Georgia, serif;
  --font-body: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.25rem;
  --theme-radius-md: 0.375rem;
  --theme-radius-lg: 0.5rem;
  --theme-radius-xl: 0.625rem;
  --theme-radius-2xl: 0.75rem;
  --theme-shadow-sm: 0 1px 4px rgb(28 25 23 / 0.08);
  --theme-shadow-md: 0 6px 16px rgb(28 25 23 / 0.1);
  --theme-shadow-lg: 0 12px 30px rgb(28 25 23 / 0.12);
  --theme-heading-weight: 700;
  --theme-heading-tracking: -0.012em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 2px 6px rgb(28 25 23 / 0.15);
}

.theme-public-pearl-soft {
  --color-primary: #6366f1;
  --color-primary-hover: #4f46e5;
  --color-neutral-50: #fafafa;
  --color-neutral-100: #f4f4f5;
  --color-neutral-200: #e4e4e7;
  --color-neutral-600: #71717a;
  --color-neutral-700: #52525b;
  --color-neutral-800: #3f3f46;
  --color-neutral-900: #27272a;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #4f46e5;
  --font-heading: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
  --font-body: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.75rem;
  --theme-radius-md: 0.9375rem;
  --theme-radius-lg: 1.125rem;
  --theme-radius-xl: 1.375rem;
  --theme-radius-2xl: 1.625rem;
  --theme-shadow-sm: 0 2px 14px rgb(63 63 70 / 0.08);
  --theme-shadow-md: 0 12px 32px rgb(63 63 70 / 0.1);
  --theme-shadow-lg: 0 22px 55px rgb(63 63 70 / 0.12);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.035em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 4px 16px color-mix(in srgb, var(--color-primary) 35%, transparent);
}

.theme-public-indigo-professional {
  --color-primary: #4338ca;
  --color-primary-hover: #3730a3;
  --color-neutral-50: #eef2ff;
  --color-neutral-100: #e0e7ff;
  --color-neutral-200: #c7d2fe;
  --color-neutral-600: #4f46e5;
  --color-neutral-700: #4338ca;
  --color-neutral-800: #3730a3;
  --color-neutral-900: #312e81;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #4338ca;
  --font-heading: "Fraunces", ui-serif, Georgia, serif;
  --font-body: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.3125rem;
  --theme-radius-md: 0.4375rem;
  --theme-radius-lg: 0.5625rem;
  --theme-radius-xl: 0.6875rem;
  --theme-radius-2xl: 0.875rem;
  --theme-shadow-sm: 0 2px 8px rgb(49 46 129 / 0.1);
  --theme-shadow-md: 0 8px 22px rgb(49 46 129 / 0.12);
  --theme-shadow-lg: 0 16px 42px rgb(49 46 129 / 0.14);
  --theme-heading-weight: 700;
  --theme-heading-tracking: -0.026em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 3px 12px color-mix(in srgb, var(--color-primary) 40%, transparent);
}

.theme-public-steel-public {
  --color-primary: #64748b;
  --color-primary-hover: #475569;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #64748b;
  --color-neutral-700: #475569;
  --color-neutral-800: #334155;
  --color-neutral-900: #1e293b;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #475569;
  --font-heading: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.125rem;
  --theme-radius-md: 0.1875rem;
  --theme-radius-lg: 0.25rem;
  --theme-radius-xl: 0.3125rem;
  --theme-radius-2xl: 0.375rem;
  --theme-shadow-sm: 0 1px 2px rgb(30 41 59 / 0.08);
  --theme-shadow-md: 0 4px 12px rgb(30 41 59 / 0.1);
  --theme-shadow-lg: 0 8px 20px rgb(30 41 59 / 0.12);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.018em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: none;
}

.theme-public-jade-trust {
  --color-primary: #059669;
  --color-primary-hover: #047857;
  --color-neutral-50: #ecfdf5;
  --color-neutral-100: #d1fae5;
  --color-neutral-200: #a7f3d0;
  --color-neutral-600: #0d9488;
  --color-neutral-700: #0f766e;
  --color-neutral-800: #115e59;
  --color-neutral-900: #134e4a;
  --color-success: #047857;
  --color-error: #dc2626;
  --color-warning: #ca8a04;
  --color-info: #0f766e;
  --font-heading: "Outfit", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Source Serif 4", ui-serif, Georgia, serif;
  --theme-radius-sm: 0.4375rem;
  --theme-radius-md: 0.5625rem;
  --theme-radius-lg: 0.6875rem;
  --theme-radius-xl: 0.8125rem;
  --theme-radius-2xl: 1rem;
  --theme-shadow-sm: 0 2px 10px rgb(19 78 74 / 0.07);
  --theme-shadow-md: 0 8px 22px rgb(19 78 74 / 0.09);
  --theme-shadow-lg: 0 16px 40px rgb(19 78 74 / 0.11);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.022em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 2px 8px color-mix(in srgb, var(--color-primary) 36%, transparent);
}

.theme-public-sky-open {
  --color-primary: #0284c7;
  --color-primary-hover: #0369a1;
  --color-neutral-50: #f0f9ff;
  --color-neutral-100: #e0f2fe;
  --color-neutral-200: #bae6fd;
  --color-neutral-600: #0ea5e9;
  --color-neutral-700: #0284c7;
  --color-neutral-800: #0369a1;
  --color-neutral-900: #0c4a6e;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #0284c7;
  --font-heading: "Fraunces", ui-serif, Georgia, serif;
  --font-body: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.5625rem;
  --theme-radius-md: 0.75rem;
  --theme-radius-lg: 1rem;
  --theme-radius-xl: 1.25rem;
  --theme-radius-2xl: 1.5rem;
  --theme-shadow-sm: 0 2px 12px rgb(12 74 110 / 0.05);
  --theme-shadow-md: 0 10px 30px rgb(12 74 110 / 0.07);
  --theme-shadow-lg: 0 20px 50px rgb(12 74 110 / 0.09);
  --theme-heading-weight: 700;
  --theme-heading-tracking: -0.032em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 3px 14px color-mix(in srgb, var(--color-primary) 28%, transparent);
}

.theme-public-charcoal-serious {
  --color-primary: #374151;
  --color-primary-hover: #1f2937;
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #1f2937;
  --font-heading: "Source Serif 4", ui-serif, Georgia, serif;
  --font-body: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.1875rem;
  --theme-radius-md: 0.25rem;
  --theme-radius-lg: 0.3125rem;
  --theme-radius-xl: 0.375rem;
  --theme-radius-2xl: 0.5rem;
  --theme-shadow-sm: 0 1px 2px rgb(17 24 39 / 0.06);
  --theme-shadow-md: 0 4px 14px rgb(17 24 39 / 0.08);
  --theme-shadow-lg: 0 8px 24px rgb(17 24 39 / 0.1);
  --theme-heading-weight: 700;
  --theme-heading-tracking: -0.014em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 1px 4px rgb(17 24 39 / 0.2);
}

.theme-public-cobalt-confident {
  --color-primary: #1d4ed8;
  --color-primary-hover: #1e40af;
  --color-neutral-50: #eff6ff;
  --color-neutral-100: #dbeafe;
  --color-neutral-200: #bfdbfe;
  --color-neutral-600: #2563eb;
  --color-neutral-700: #1d4ed8;
  --color-neutral-800: #1e40af;
  --color-neutral-900: #1e3a8a;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #1d4ed8;
  --font-heading: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.375rem;
  --theme-radius-md: 0.5rem;
  --theme-radius-lg: 0.625rem;
  --theme-radius-xl: 0.75rem;
  --theme-radius-2xl: 1rem;
  --theme-shadow-sm: 0 3px 10px rgb(30 64 175 / 0.12);
  --theme-shadow-md: 0 10px 28px rgb(30 64 175 / 0.14);
  --theme-shadow-lg: 0 20px 48px rgb(30 64 175 / 0.16);
  --theme-heading-weight: 700;
  --theme-heading-tracking: -0.03em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 4px 18px color-mix(in srgb, var(--color-primary) 50%, transparent);
}

.theme-public-frost-public {
  --color-primary: #0ea5e9;
  --color-primary-hover: #0284c7;
  --color-neutral-50: #f0f9ff;
  --color-neutral-100: #e0f2fe;
  --color-neutral-200: #bae6fd;
  --color-neutral-600: #06b6d4;
  --color-neutral-700: #0891b2;
  --color-neutral-800: #0e7490;
  --color-neutral-900: #155e75;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #0891b2;
  --font-heading: "Outfit", ui-sans-serif, system-ui, sans-serif;
  --font-body: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.5rem;
  --theme-radius-md: 0.625rem;
  --theme-radius-lg: 0.8125rem;
  --theme-radius-xl: 1rem;
  --theme-radius-2xl: 1.25rem;
  --theme-shadow-sm: 0 2px 12px rgb(8 145 178 / 0.08), 0 0 0 1px rgb(255 255 255 / 0.5) inset;
  --theme-shadow-md: 0 10px 28px rgb(8 145 178 / 0.1);
  --theme-shadow-lg: 0 18px 44px rgb(8 145 178 / 0.12);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.025em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 2px 12px color-mix(in srgb, var(--color-primary) 32%, transparent);
}

.theme-public-graphite-modern {
  --color-primary: #475569;
  --color-primary-hover: #334155;
  --color-neutral-50: #fafafa;
  --color-neutral-100: #f4f4f5;
  --color-neutral-200: #e4e4e7;
  --color-neutral-600: #52525b;
  --color-neutral-700: #3f3f46;
  --color-neutral-800: #27272a;
  --color-neutral-900: #18181b;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #334155;
  --font-heading: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --font-body: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.25rem;
  --theme-radius-md: 0.375rem;
  --theme-radius-lg: 0.5rem;
  --theme-radius-xl: 0.5625rem;
  --theme-radius-2xl: 0.6875rem;
  --theme-shadow-sm: 0 2px 6px rgb(24 24 27 / 0.07);
  --theme-shadow-md: 0 8px 20px rgb(24 24 27 / 0.09);
  --theme-shadow-lg: 0 14px 36px rgb(24 24 27 / 0.11);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.03em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 2px 8px rgb(24 24 27 / 0.15);
}

.theme-public-ash-landing {
  --color-primary: #4b5563;
  --color-primary-hover: #374151;
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #4b5563;
  --font-heading: "Libre Baskerville", ui-serif, Georgia, serif;
  --font-body: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.3125rem;
  --theme-radius-md: 0.4375rem;
  --theme-radius-lg: 0.5625rem;
  --theme-radius-xl: 0.6875rem;
  --theme-radius-2xl: 0.875rem;
  --theme-shadow-sm: 0 1px 4px rgb(17 24 39 / 0.06);
  --theme-shadow-md: 0 6px 18px rgb(17 24 39 / 0.08);
  --theme-shadow-lg: 0 12px 32px rgb(17 24 39 / 0.1);
  --theme-heading-weight: 700;
  --theme-heading-tracking: -0.016em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 2px 8px rgb(17 24 39 / 0.12);
}

.theme-public-silver-public {
  --color-primary: #64748b;
  --color-primary-hover: #475569;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #64748b;
  --color-neutral-700: #475569;
  --color-neutral-800: #334155;
  --color-neutral-900: #1e293b;
  --color-success: #059669;
  --color-error: #dc2626;
  --color-warning: #d97706;
  --color-info: #475569;
  --font-heading: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Outfit", ui-sans-serif, system-ui, sans-serif;
  --theme-radius-sm: 0.4375rem;
  --theme-radius-md: 0.5625rem;
  --theme-radius-lg: 0.6875rem;
  --theme-radius-xl: 0.8125rem;
  --theme-radius-2xl: 1rem;
  --theme-shadow-sm: 0 2px 8px rgb(30 41 59 / 0.05);
  --theme-shadow-md: 0 8px 22px rgb(30 41 59 / 0.07);
  --theme-shadow-lg: 0 16px 40px rgb(30 41 59 / 0.09);
  --theme-heading-weight: 600;
  --theme-heading-tracking: -0.02em;
  --theme-transition: 200ms ease-out;
  --theme-hero-gradient: linear-gradient(
  to bottom right,
  color-mix(in srgb, var(--color-primary) 16%, var(--color-neutral-100)),
  var(--color-neutral-50),
  #ffffff
);
  --theme-btn-shadow: 0 2px 6px rgb(30 41 59 / 0.1);
}


/* ---------- Layout: headers, typography, themed chrome ---------- */

.admin-layout,
.app-layout {
  font-family: var(--font-body);
}

.admin-layout h1,
.admin-layout h2,
.app-layout h1,
.app-layout h2 {
  font-family: var(--font-heading);
  font-weight: var(--theme-heading-weight);
  letter-spacing: var(--theme-heading-tracking);
  color: var(--al-text-1);
}


.admin-layout .flash.notice,
.app-layout .flash.notice {
  color: var(--color-success);
}

.admin-layout .flash.alert,
.app-layout .flash.alert {
  color: var(--color-error);
}

.admin-layout .rounded-lg,
.app-layout .rounded-lg {
  border-radius: var(--theme-radius-lg) !important;
}

.admin-layout .rounded-md,
.app-layout .rounded-md {
  border-radius: var(--theme-radius-md) !important;
}

.public-layout header {
  background: var(--color-neutral-50);
  border-color: var(--color-neutral-200);
}

.public-layout header a {
  color: var(--color-neutral-700);
}

.public-layout header a:hover {
  color: var(--color-primary);
}

.public-layout main {
  font-family: var(--font-body);
}

.public-layout h1,
.public-layout h2 {
  font-family: var(--font-heading);
  font-weight: var(--theme-heading-weight);
  letter-spacing: var(--theme-heading-tracking);
  color: var(--color-neutral-900);
}

.public-layout .rounded-lg {
  border-radius: var(--theme-radius-md) !important;
}

.public-layout .rounded-xl {
  border-radius: var(--theme-radius-lg) !important;
}

.public-layout .rounded-2xl {
  border-radius: var(--theme-radius-xl) !important;
}

.public-layout .rounded-full {
  border-radius: var(--theme-radius-full) !important;
}

.public-layout .shadow-sm {
  box-shadow: var(--theme-shadow-sm) !important;
}

.public-layout .theme-hero-bg {
  background: var(--theme-hero-gradient);
}

.public-layout .theme-btn-primary {
  background: var(--color-primary);
  color: #fff;
  border-radius: var(--theme-radius-md);
  box-shadow: var(--theme-btn-shadow);
  transition:
    background-color var(--theme-transition),
    box-shadow var(--theme-transition);
}

.public-layout .theme-btn-primary:hover {
  background: var(--color-primary-hover);
}

/* ---------- Landing animations (public) ---------- */

@keyframes landing-fade-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes landing-hero-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.landing-hero-animate {
  animation: landing-hero-in 0.7s ease-out forwards;
}

.landing-section-animate {
  animation: landing-fade-in 0.6s ease-out forwards;
}

.landing-section-animate-delay-1 { animation-delay: 0.1s; opacity: 0; }
.landing-section-animate-delay-2 { animation-delay: 0.2s; opacity: 0; }
.landing-section-animate-delay-3 { animation-delay: 0.3s; opacity: 0; }
.landing-section-animate-delay-4 { animation-delay: 0.4s; opacity: 0; }
