/* fonts.css */
/* Fraunces + Hanken Grotesk — Google Fonts (SIL OFL). No binaries were supplied; loaded from Google's CDN. */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..700;1,9..144,300..500&family=Hanken+Grotesk:wght@300;400;500;600;700&display=swap');

/* colors.css */
:root{
/* Cycle stages — the brand palette. Order is fixed: cool → warm. */
--stage-1:#0E5258;--stage-2:#2E9C92;--stage-3:#45C7B6;--stage-4:#F4B45E;--stage-5:#FB7A5A;
--color-initial-encounter:var(--stage-1);--color-consultation:var(--stage-2);--color-stimulation:var(--stage-3);--color-opu:var(--stage-4);--color-fet:var(--stage-5);
/* Stage tints (derived, for pill/row backgrounds) */
--stage-1-tint:#DCE8E8;--stage-2-tint:#DDF0EE;--stage-3-tint:#DDF5F2;--stage-4-tint:#FDF0DE;--stage-5-tint:#FFE6DF;
/* Named brand colours */
--teal:#0E5258;--teal-2:#2E9C92;--aqua:#45C7B6;--amber:#F4B45E;--coral:#FB7A5A;
--ink:#08272A;--egg:#0B3D44;--paper:#F7F3ED;--mist:#E2ECE9;--slate:#5E7173;--white:#FFFFFF;
--blush:#FBE3DA;
--line:rgba(8,39,42,.12);--line-strong:rgba(8,39,42,.22);
/* Semantic states (derived; stage colours stay reserved for stages) */
--success:#1F7A70;--success-tint:#DDF0EE;
--warning:#9A6212;--warning-tint:#FDF0DE;
--danger:#B8412B;--danger-tint:#FBE3DA;
--info:#0E5258;--info-tint:#E2ECE9;
/* Semantic aliases */
--surface-page:var(--paper);--surface-card:var(--white);--surface-sunken:var(--mist);--surface-inverse:var(--ink);
--text-body:var(--ink);--text-muted:var(--slate);--text-inverse:var(--paper);--text-inverse-muted:rgba(247,243,237,.72);
--text-accent:var(--teal);--text-eyebrow:var(--coral);
--border-default:var(--line);--border-strong:var(--line-strong);
--action-primary:var(--teal);--action-primary-hover:#0B4449;--action-primary-press:#093A3E;
--focus-ring:rgba(69,199,182,.45);
}

/* typography.css */
:root{
--font-display:'Fraunces',Georgia,serif;
--font-sans:'Hanken Grotesk',system-ui,sans-serif;
--font-body:var(--font-sans);
--fw-light:300; /* @kind font */
--fw-regular:400; /* @kind font */
--fw-medium:500; /* @kind font */
--fw-semibold:600; /* @kind font */
--fw-bold:700; /* @kind font */
/* Display (Fraunces) */
--fs-hero:128px;--fs-display:60px;--fs-h1:44px;--fs-h2:32px;--fs-h3:20px;
--lh-display:1.08; /* @kind font */
--ls-display:-.01em;
/* Text (Hanken Grotesk) */
--fs-lede:17.5px;--fs-body-lg:16.5px;--fs-body:15.5px;--fs-sm:13.5px;--fs-xs:13px;--fs-caption:12px;--fs-label:11px;--fs-micro:10px;
--lh-body:1.55; /* @kind font */
--lh-tight:1.45; /* @kind font */
--ls-wordmark:-.035em;--ls-heading:-.01em;
--ls-eyebrow:.22em;--ls-label:.16em;
}

/* spacing.css */
:root{
--space-1:4px;--space-2:6px;--space-3:10px;--space-4:13px;--space-5:16px;--space-6:20px;--space-7:26px;--space-8:34px;--space-9:44px;--space-10:54px;--space-11:90px;
--container:1060px;--gutter:34px;
--radius-xs:6px;--radius-sm:11px;--radius-md:14px;--radius-lg:16px;--radius-xl:18px;--radius-icon:23px;--radius-pill:100px;
--shadow-sm:0 1px 2px rgba(8,39,42,.06);
--shadow-md:0 8px 24px -12px rgba(8,39,42,.28);
--shadow-lg:0 18px 40px -18px rgba(8,39,42,.45);
--ease-out:cubic-bezier(.2,.7,.2,1); /* @kind other */
--dur-fast:.15s; /* @kind other */
--dur-base:.25s; /* @kind other */
--dur-slow:.5s; /* @kind other */
--dur-reveal:.9s; /* @kind other */
}

/* base.css */
@keyframes ova-rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes ova-fade{from{opacity:0}to{opacity:1}}
a{color:var(--teal);text-decoration-color:rgba(14,82,88,.35);text-underline-offset:3px}
a:hover{color:var(--teal-2);text-decoration-color:currentColor}

