:root{--color-navy:#16213e;--color-navy-2:#22305a;--color-navy-deep:#0f1830;--color-rose-glow:#c9184a38;--color-line-on-dark:#ffffff1f;--color-veil-on-dark:#ffffff14;--color-border-on-dark:#ffffff59;--color-rose:#c9184a;--color-rose-dark:#9e0f38;--color-rose-soft:#fce7ee;--color-rose-light:#f28cab;--color-bg:#f7f6fa;--color-surface:#fff;--color-border:#e4e2ec;--color-border-strong:#d7d5e0;--color-text:#16213e;--color-text-muted:#4a5068;--color-text-on-dark:#fff;--color-text-on-dark-muted:#c9cde0;--color-success:#13794a;--color-success-soft:#e3f5ec;--color-danger:#a3122f;--font-display:"Plus Jakarta Sans", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:2rem;--text-section:2.5rem;--text-3xl:clamp(2.25rem, 5vw, 3.375rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--radius-sm:.75rem;--radius-md:1rem;--radius-lg:1.5rem;--radius-pill:999px;--shadow-card:0 18px 40px #16213e1f;--shadow-bar:0 12px 30px #16213e4d;--shadow-header:0 8px 24px #16213e14;--container:74rem;--container-narrow:46rem;--duration:.25s}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);margin:0;line-height:1.6}h1,h2,h3{font-family:var(--font-display);margin:0;line-height:1.15}p{margin:0}a{color:var(--color-text)}a:hover{color:var(--color-rose)}img{max-width:100%;display:block}:focus-visible{outline:3px solid var(--color-rose);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%;max-width:var(--container);padding-inline:var(--space-5);margin-inline:auto}.section{padding-block:var(--space-9)}.section--white{background:var(--color-surface)}@media (width<=640px){.section{padding-block:var(--space-8)}}@keyframes appear{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes float{50%{transform:translateY(-10px)}}@keyframes marquee{to{transform:translate(-50%)}}@keyframes pulse{0%{box-shadow:0 0 #c9184a59}50%{box-shadow:0 0 0 10px #c9184a00}}.anim-pulse{animation:2.4s ease-in-out infinite pulse}.anim-appear{animation:.45s cubic-bezier(.2,.8,.2,1) both appear}.anim-float{animation:5s ease-in-out infinite float}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
