:root{--color-primary:#1a4f8c;--color-primary-deep:#0f3661;--color-accent:#2a8fd4;--color-accent-text:#1c6da8;--color-accent-light:#e8f3fb;--color-warm:#ee8161;--color-warm-text:#ad4419;--color-warm-light:#fdece4;--color-mint:#33b6a0;--color-mint-text:#0d6355;--color-mint-light:#e2f7f3;--color-surface:#f6f8fb;--color-text:#1c2b3a;--color-text-soft:#4b6a85;--color-background:#fff;--color-border:#dee7f0;--color-danger:#c0392b;--color-success:#2f9e64;--font-heading:var(--font-instrument-sans), "Instrument Sans", sans-serif;--font-body:var(--font-open-sans), "Open Sans", sans-serif;--font-highlight:var(--font-instrument-sans), "Instrument Sans", sans-serif;--font-size-nav:.9375rem;--font-size-eyebrow:.875rem;--font-size-subtitle:1.0625rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--shadow-sm:0 1px 3px #14284114;--shadow-md:0 8px 24px #1428411a;--shadow-lg:0 20px 48px #14284129;--shadow-glow:0 14px 40px #2a8fd447;--container-max:1200px;--transition-fast:.16s ease;--transition-base:.28s cubic-bezier(.22, 1, .36, 1);--transition-slow:.56s cubic-bezier(.22, 1, .36, 1);--reveal-distance:28px;--reveal-duration:.7s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;height:100%}html,body{max-width:100vw;overflow-x:clip}body{min-height:100%;color:var(--color-text);background:var(--color-surface);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;font-size:1rem;line-height:1.65;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--color-text);letter-spacing:0;line-height:1.2}a{color:inherit;text-decoration:none}img,picture,video,canvas,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:4px}ul,ol{list-style:none}.reveal{opacity:0;transform:translateY(var(--reveal-distance));transition:opacity var(--reveal-duration) ease, transform var(--reveal-duration) cubic-bezier(.22, 1, .36, 1);transition-delay:var(--reveal-delay,0s);will-change:opacity, transform}.reveal[data-visible=true]{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin-slow{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important}}
