:root{--color-navy-950:#070f1f;--color-navy-900:#0b1b3a;--color-navy-800:#12274f;--color-navy-700:#1a3566;--color-blue-600:#2f6bff;--color-blue-500:#3b82f6;--color-blue-400:#60a5fa;--color-blue-100:#dbe7ff;--color-blue-50:#eef3ff;--color-purple-700:#5b21b6;--color-purple-600:#6d28d9;--color-purple-500:#7c3aed;--color-purple-100:#ede9fe;--color-purple-50:#f5f3ff;--color-white:#fff;--color-grey-50:#f7f8fc;--color-grey-100:#f0f2f8;--color-grey-200:#e4e8f1;--color-grey-300:#cfd6e4;--color-grey-400:#9aa3b8;--color-grey-500:#6b728a;--color-grey-600:#4b5568;--color-grey-700:#334155;--color-grey-800:#1e293b;--color-grey-900:#0f172a;--color-primary:var(--color-blue-600);--color-primary-hover:var(--color-blue-500);--color-secondary:var(--color-purple-600);--color-secondary-hover:var(--color-purple-500);--color-brand-deep:var(--color-navy-900);--color-bg:var(--color-white);--color-bg-muted:var(--color-grey-50);--color-bg-subtle:var(--color-grey-100);--color-bg-inverse:var(--color-navy-900);--color-bg-elevated:var(--color-white);--color-text:var(--color-navy-900);--color-text-secondary:var(--color-grey-600);--color-text-muted:var(--color-grey-500);--color-text-inverse:var(--color-white);--color-text-link:var(--color-blue-600);--color-border:var(--color-grey-200);--color-border-strong:var(--color-grey-300);--color-border-inverse:#ffffff29;--color-focus:#2f6bff59;--gradient-brand:linear-gradient(135deg, var(--color-navy-900) 0%, #1a3a8f 42%, var(--color-purple-600) 100%);--gradient-accent:linear-gradient(135deg, var(--color-blue-600) 0%, var(--color-purple-600) 100%);--gradient-soft:linear-gradient(180deg, var(--color-blue-50) 0%, var(--color-grey-50) 48%, var(--color-purple-50) 100%);--gradient-hero-veil:linear-gradient(115deg, #070f1fe0 0%, #0b1b3a9e 48%, #6d28d947 100%);--gradient-glow:radial-gradient(900px 420px at 12% -8%, #2f6bff29, transparent 60%);--shadow-xs:0 1px 2px #0b1b3a0d;--shadow-sm:0 4px 12px #0b1b3a0f;--shadow-md:0 12px 28px #0b1b3a14;--shadow-lg:0 22px 48px #0b1b3a1f;--shadow-focus:0 0 0 3px var(--color-focus);--shadow-card-hover:0 18px 40px #2f6bff1f;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:999px;--radius-button:var(--radius-sm);--radius-card:var(--radius-md);--radius-badge:var(--radius-full);--font-display:var(--font-nunito), "Segoe UI", sans-serif;--font-body:var(--font-nunito), "Segoe UI", sans-serif;--fs-xs:.8125rem;--fs-sm:.875rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.25rem;--fs-2xl:1.5rem;--fs-3xl:clamp(1.65rem, 2.8vw, 2rem);--fs-4xl:clamp(1.85rem, 4.2vw, 2.75rem);--fs-5xl:clamp(2.25rem, 6vw, 3.75rem);--fs-6xl:clamp(2.5rem, 8vw, 5rem);--lh-tight:1.1;--lh-snug:1.25;--lh-normal:1.6;--lh-relaxed:1.75;--fw-regular:400;--fw-medium:400;--fw-semibold:700;--fw-bold:700;--fw-extrabold:700;--tracking-tight:-.03em;--tracking-normal:0;--tracking-wide:.04em;--tracking-wider:.08em;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-section-y:clamp(3rem, 5.5vw, 6.5rem);--space-section-x:clamp(1rem, 4vw, 1.5rem);--bp-sm:430px;--bp-md:768px;--bp-lg:1024px;--bp-xl:1440px;--max-narrow:760px;--max:1120px;--max-wide:1280px;--header-h:64px;--touch-min:44px;--fab-offset:max(1rem, env(safe-area-inset-right,0px));--fab-bottom:max(1rem, env(safe-area-inset-bottom,0px));--ease:cubic-bezier(.22, 1, .36, 1);--duration-fast:.16s;--duration:.22s;--duration-slow:.36s;--btn-height-sm:44px;--btn-height-md:48px;--btn-height-lg:52px;--btn-pad-x-sm:1rem;--btn-pad-x-md:1.35rem;--btn-pad-x-lg:1.6rem;--btn-fs-sm:var(--fs-sm);--btn-fs-md:.95rem;--btn-fs-lg:var(--fs-md);--ink:var(--color-text);--ink-soft:var(--color-text-secondary);--mist:var(--color-grey-50);--paper:var(--color-grey-100);--line:var(--color-border);--accent:var(--color-primary);--accent-deep:var(--color-secondary);--accent-soft:#2f6bff1f;--hero-veil:var(--gradient-hero-veil);--shadow-soft:var(--shadow-md);--radius:var(--radius-sm)}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;overflow-x:clip}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{min-height:100%;color:var(--color-text);background:var(--gradient-glow), linear-gradient(180deg, var(--color-white) 0%, var(--color-grey-50) 100%);font-family:var(--font-body);font-size:var(--fs-md);line-height:var(--lh-normal);font-weight:var(--fw-regular);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-bottom:env(safe-area-inset-bottom,0px);overflow-x:clip}@media (max-width:767px){:root{--header-h:60px}}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}h1,h2,h3,h4{font-family:var(--font-display);line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);font-weight:var(--fw-bold);color:var(--color-text)}p{color:var(--color-text-secondary)}ul,ol{list-style:none}.site-main{flex:1}.cv-auto{content-visibility:auto;contain-intrinsic-size:1px 800px}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--color-navy-900);color:#fff;font-family:var(--font-display);padding:.75rem 1rem;font-weight:700;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}.container{width:min(100% - (var(--space-section-x) * 2), var(--max));margin-inline:auto}.section{padding:var(--space-section-y) 0}.section__eyebrow{margin-bottom:var(--space-3);color:var(--color-secondary);font-family:var(--font-display);font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:var(--tracking-wider);text-transform:uppercase;display:block}.section__title{max-width:16ch;font-size:var(--fs-4xl);margin-bottom:var(--space-3)}.section__lead{max-width:42ch;font-size:var(--fs-lg)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--btn-height-md);padding:.8rem var(--btn-pad-x-md);border-radius:var(--radius-button);font-family:var(--font-display);font-size:var(--btn-fs-md);font-weight:var(--fw-bold);letter-spacing:.01em;transition:transform var(--duration) var(--ease), background-color var(--duration) var(--ease), color var(--duration) var(--ease), border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);border:1px solid #0000;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn--primary{background:var(--gradient-accent);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.btn--primary:hover{box-shadow:var(--shadow-card-hover)}.btn--ghost{color:var(--color-text-inverse);background:0 0;border-color:#ffffff73}.btn--ghost:hover{border-color:var(--color-white);background:#ffffff1a}.btn--ink{border-color:var(--color-border-strong);color:var(--color-text);background:0 0}.btn--ink:hover{background:var(--color-brand-deep);border-color:var(--color-brand-deep);color:var(--color-text-inverse)}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes ken{0%{transform:scale(1.08)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
