:root{--color-canvas:oklch(98.5% 0.004 95);--color-surface:oklch(100% 0 0);--color-surface-sunken:oklch(96.5% 0.006 95);--color-ink:oklch(22% 0.012 250);--color-ink-soft:oklch(44% 0.012 250);--color-ink-faint:oklch(54% 0.012 250);--color-hairline:oklch(90% 0.006 250);--color-accent:oklch(50% 0.105 184);--color-accent-hover:oklch(45% 0.105 184);--color-accent-press:oklch(40% 0.1 184);--color-accent-weak:oklch(95% 0.03 184);--color-on-accent:oklch(100% 0 0);--color-success:oklch(58% 0.13 150);--color-warning:oklch(72% 0.15 75);--color-danger:oklch(56% 0.18 27);--color-danger-weak:oklch(95% 0.04 27);--color-info:oklch(60% 0.1 250);--font-display:"Fraunces","Source Serif 4",Georgia,serif;--font-ui:"Inter","Geist",system-ui,sans-serif;--font-mono:"Geist Mono","IBM Plex Mono",monospace;--text-2xs:clamp(0.69rem,0.67rem + 0.1vw,0.75rem);--text-xs:clamp(0.78rem,0.75rem + 0.15vw,0.84rem);--text-sm:clamp(0.88rem,0.85rem + 0.2vw,0.95rem);--text-base:clamp(1rem,0.95rem + 0.25vw,1.06rem);--text-lg:clamp(1.18rem,1.05rem + 0.5vw,1.35rem);--text-xl:clamp(1.5rem,1.25rem + 1vw,2rem);--text-2xl:clamp(2rem,1.5rem + 2.2vw,3rem);--text-hero:clamp(2.6rem,1.6rem + 4.5vw,4.5rem);--leading-tight:1.1;--leading-snug:1.3;--leading-body:1.55;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-8:3rem;--space-10:4rem;--space-12:6rem;--space-section:clamp(3rem,2rem + 5vw,7rem);--radius-xs:6px;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-full:999px;--shadow-1:0 1px 2px oklch(22% 0.01 250/0.05),0 1px 1px oklch(22% 0.01 250/0.04);--shadow-2:0 4px 12px oklch(22% 0.01 250/0.08),0 1px 3px oklch(22% 0.01 250/0.06);--shadow-3:0 12px 32px oklch(22% 0.01 250/0.12),0 4px 8px oklch(22% 0.01 250/0.07);--shadow-pop:0 24px 64px oklch(22% 0.04 250/0.18);--dur-fast:140ms;--dur-normal:240ms;--dur-slow:420ms;--ease-out-expo:cubic-bezier(0.16,1,0.3,1);--ease-std:cubic-bezier(0.4,0,0.2,1);--ease-in:cubic-bezier(0.4,0,1,1);--tap-min:44px;--nav-h:64px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--content-max:1200px}:root[data-theme=dark]{--color-canvas:oklch(18% 0.012 255);--color-surface:oklch(22% 0.014 255);--color-surface-sunken:oklch(15% 0.012 255);--color-ink:oklch(95% 0.006 250);--color-ink-soft:oklch(78% 0.008 250);--color-ink-faint:oklch(60% 0.008 250);--color-hairline:oklch(30% 0.012 255);--color-accent:oklch(78% 0.1 184);--color-accent-hover:oklch(84% 0.1 184);--color-accent-press:oklch(72% 0.1 184);--color-accent-weak:oklch(28% 0.04 184);--color-on-accent:oklch(18% 0.012 255);--color-danger-weak:oklch(28% 0.05 27);--shadow-1:0 1px 2px oklch(0% 0 0/0.4);--shadow-2:0 4px 12px oklch(0% 0 0/0.5);--shadow-3:0 12px 32px oklch(0% 0 0/0.6);--shadow-pop:0 24px 64px oklch(0% 0 0/0.7)}@media (prefers-reduced-motion:reduce){:root{--dur-fast:1ms;--dur-normal:1ms;--dur-slow:1ms}}*,:after,:before{box-sizing:border-box}*{margin:0}html{text-size-adjust:100%}body,html{height:100%}body{background:var(--color-canvas);color:var(--color-ink);font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-family:var(--font-display);line-height:var(--leading-tight);font-weight:600}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-xs)}.skip-link{position:absolute;inset-block-start:var(--space-2);inset-inline-start:var(--space-2);z-index:100;padding:var(--space-2) var(--space-4);background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-sm);transform:translateY(-200%);transition:transform var(--dur-fast) var(--ease-std)}.skip-link:focus{transform:translateY(0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}