@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/inter-variable.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/plus-jakarta-sans-variable.woff2') format('woff2')}
:root{
--blue-50:#EAF1FC;--blue-100:#D2E1F8;--blue-200:#A6C4F1;--blue-300:#78A6E9;--blue-400:#3A8DFF;--blue-500:#2D6FE0;--blue-600:#1F5CC0;--blue-700:#1B4D9B;--blue-800:#163E7D;--blue-900:#112F5F;
--gray-0:#FFFFFF;--gray-50:#F7F8FA;--gray-100:#EEF1F5;--gray-200:#E2E6EC;--gray-300:#CBD2DC;--gray-400:#A8B1BF;--gray-500:#7C8797;--gray-600:#5B6472;--gray-700:#3D4148;--gray-800:#2A2C31;--gray-900:#202124;--black:#101114;
--success-500:#2E9E5B;--success-100:#E4F5EB;--warning-500:#C77A1E;--warning-100:#FBEEDD;--danger-500:#C0392B;--danger-100:#FBEAE8;
--surface-page:var(--gray-50);--surface-card:var(--gray-0);--surface-sunken:var(--gray-100);--surface-inverse:var(--blue-700);
--text-primary:var(--gray-900);--text-secondary:var(--gray-600);--text-tertiary:var(--gray-500);--text-on-blue:var(--gray-0);--text-link:var(--blue-700);--text-link-hover:var(--blue-500);
--border-subtle:var(--gray-200);--border-default:var(--gray-300);--border-strong:var(--gray-400);--border-focus:var(--blue-400);
--accent-primary:var(--blue-700);--accent-primary-hover:var(--blue-800);--accent-bright:var(--blue-400);--accent-bright-hover:var(--blue-500);

--font-display:'Plus Jakarta Sans',Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
--font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
--font-mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;
--text-display-xl:4.5rem;--text-display-lg:3.5rem;--text-display-md:2.75rem;
--text-h1:2.25rem;--text-h2:1.75rem;--text-h3:1.375rem;--text-h4:1.125rem;
--text-body-lg:1.125rem;--text-body:1rem;--text-body-sm:0.875rem;--text-caption:0.75rem;--text-eyebrow:0.8125rem;
--lh-display:1.06;--lh-heading:1.16;--lh-body:1.65;--lh-tight:1.3;
--ls-display:-0.02em;--ls-heading:-0.01em;--ls-body:0em;--ls-eyebrow:0.14em;
--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;

--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--space-11:10rem;--space-12:12rem;
--container-max:1280px;--container-pad:2rem;
--section-pad-y:8rem;--section-pad-y-sm:4rem;

--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:999px;
--shadow-xs:0 1px 2px rgba(16,32,64,.06);
--shadow-sm:0 2px 8px rgba(16,32,64,.07);
--shadow-md:0 8px 24px rgba(16,32,64,.09);
--shadow-lg:0 16px 48px rgba(16,32,64,.12);
--shadow-header:0 4px 24px rgba(16,32,64,.08);
--ease-out:cubic-bezier(.16,1,.3,1);
--duration-fast:150ms;
--duration-base:250ms;
--duration-slow:450ms;
--blur-header:16px;
}
*{box-sizing:border-box}
html{max-width:100%;overflow-x:hidden}
body{margin:0;background:var(--surface-card);font-family:var(--font-body);overflow-x:hidden;max-width:100%;position:relative}
#root{max-width:100%;overflow-x:hidden}
a{color:var(--text-link)}
a:hover{color:var(--text-link-hover)}

/* Scroll reveal (vanilla, used on PHP-rendered pages) */
.js-reveal{opacity:0;transform:translateY(24px);transition:opacity 700ms var(--ease-out),transform 700ms var(--ease-out);will-change:opacity,transform}
.js-reveal.is-revealed{opacity:1;transform:translateY(0)}

/* Page transitions */
body.pt-enter{opacity:0;transform:translateY(8px)}
body{transition:opacity 320ms var(--ease-out),transform 320ms var(--ease-out)}
body.pt-exit{opacity:0;transform:translateY(-8px);transition:opacity 220ms var(--ease-out),transform 220ms var(--ease-out)}

@media (prefers-reduced-motion:reduce){
.js-reveal{opacity:1!important;transform:none!important;transition:none!important}
body.pt-enter,body.pt-exit{opacity:1!important;transform:none!important;transition:none!important}
}
