@tailwind base;@tailwind components;@tailwind utilities;@layer base{:root{--brand-h: 30;--brand-c: .12;--color-bg: oklch(.99 .002 var(--brand-h));--color-bg-subtle: oklch(.96 .004 var(--brand-h));--color-surface: oklch(1 0 0);--color-surface-raised: oklch(1 0 0);--color-border: oklch(.9 .004 var(--brand-h));--color-border-strong: oklch(.8 .008 var(--brand-h));--color-text: oklch(.12 .005 var(--brand-h));--color-text-muted: oklch(.5 .01 var(--brand-h));--color-text-subtle: oklch(.65 .008 var(--brand-h));--color-accent: oklch(.5 var(--brand-c) var(--brand-h));--color-accent-hover: oklch(.44 var(--brand-c) var(--brand-h));--color-accent-subtle: oklch(.95 .02 var(--brand-h));--color-accent-text: oklch(.55 var(--brand-c) var(--brand-h));--color-success: oklch(.55 .18 145);--color-warning: oklch(.7 .16 85);--color-error: oklch(.59 .23 7);--shadow-1: 0 1px 3px oklch(0 0 0 / .08);--shadow-2: 0 2px 6px oklch(0 0 0 / .08), 0 1px 2px oklch(0 0 0 / .06);--shadow-3: 0 4px 12px oklch(0 0 0 / .1), 0 2px 4px oklch(0 0 0 / .06);--shadow-4: 0 8px 24px oklch(0 0 0 / .12), 0 4px 8px oklch(0 0 0 / .08);--shadow-modal: 0 16px 48px oklch(0 0 0 / .16), 0 8px 16px oklch(0 0 0 / .08);--focus-ring: 0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-accent);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--space-32: 128px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--ease-respond: cubic-bezier(0, 0, .2, 1);--ease-enter: cubic-bezier(0, 0, .2, 1);--ease-exit: cubic-bezier(.4, 0, 1, 1);--ease-announce: cubic-bezier(.34, 1.56, .64, 1);--ease-snap: cubic-bezier(.12, 0, .08, 1);--dur-fast: .15s;--dur-normal: .25s;--dur-slow: .4s;--dur-dramatic: .6s;--font-display: 88px;--font-h1: 50px;--font-h2: 37px;--font-h3: 28px;--font-body: 16px;--font-small: 14px;--font-caption: 12px;--leading-tight: 1.15;--leading-snug: 1.35;--leading-body: 1.65;--tracking-display: -.04em;--tracking-h1: -.03em;--tracking-h2: -.02em;--tracking-h3: -.01em;--tracking-body: 0;--tracking-caption: .02em;--radius: 12px;--background: 0 0% 99.5%;--foreground: 222.2 47% 6%;--card: 0 0% 100%;--card-foreground: 222.2 47% 6%;--popover: 0 0% 100%;--popover-foreground: 222.2 47% 6%;--primary: 222 47% 11%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96%;--secondary-foreground: 222.2 47% 11%;--muted: 210 40% 96%;--muted-foreground: 215.4 16% 47%;--accent: 210 40% 96%;--accent-foreground: 222.2 47% 11%;--destructive: 0 84% 60%;--destructive-foreground: 210 40% 98%;--border: 214.3 32% 91%;--input: 214.3 32% 91%;--ring: 222.2 47% 11%}.dark{--color-bg: oklch(.12 .005 var(--brand-h));--color-bg-subtle: oklch(.16 .005 var(--brand-h));--color-surface: oklch(.16 .005 var(--brand-h));--color-surface-raised: oklch(.2 .005 var(--brand-h));--color-border: oklch(.28 .005 var(--brand-h));--color-border-strong: oklch(.38 .008 var(--brand-h));--color-text: oklch(.97 0 0);--color-text-muted: oklch(.75 .02 var(--brand-h));--color-text-subtle: oklch(.55 .02 var(--brand-h));--color-accent: oklch(.65 .22 var(--brand-h));--color-accent-hover: oklch(.72 .22 var(--brand-h));--color-accent-subtle: oklch(.2 .08 var(--brand-h));--color-accent-text: oklch(.75 .2 var(--brand-h));--shadow-1: 0 1px 3px oklch(0 0 0 / .4);--shadow-2: 0 2px 6px oklch(0 0 0 / .4), 0 1px 2px oklch(0 0 0 / .3);--shadow-3: 0 4px 12px oklch(0 0 0 / .5), 0 2px 4px oklch(0 0 0 / .3);--shadow-4: 0 8px 24px oklch(0 0 0 / .6), 0 4px 8px oklch(0 0 0 / .4);--background: 222.2 47% 6%;--foreground: 210 40% 98%;--card: 222.2 47% 8%;--card-foreground: 210 40% 98%;--popover: 222.2 47% 6%;--popover-foreground: 210 40% 98%;--primary: 210 40% 98%;--primary-foreground: 222.2 47% 11%;--secondary: 217.2 33% 17%;--secondary-foreground: 210 40% 98%;--muted: 217.2 33% 17%;--muted-foreground: 215 20% 65%;--accent: 217.2 33% 17%;--accent-foreground: 210 40% 98%;--destructive: 0 63% 31%;--destructive-foreground: 210 40% 98%;--border: 217.2 33% 17%;--input: 217.2 33% 17%;--ring: 212.7 27% 84%}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}*{border-color:var(--color-border)}html{scroll-behavior:smooth}body{background-color:var(--color-bg);color:var(--color-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--font-body);line-height:var(--leading-body);font-feature-settings:"cv11","ss01","ss03";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{font-family:Fraunces,Georgia,serif;color:var(--color-text);letter-spacing:var(--tracking-h2);line-height:var(--leading-tight);font-weight:600}code,pre,kbd,samp{font-family:Geist Mono,JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-feature-settings:"zero","ss01"}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}::selection{background:var(--color-accent-subtle);color:var(--color-accent-text)}}@layer components{.container-narrow{max-width:860px;margin-inline:auto;padding-inline:clamp(24px,5vw,80px)}.container-wide{max-width:1440px;margin-inline:auto;padding-inline:clamp(24px,5vw,80px)}.container-default{max-width:1280px;margin-inline:auto;padding-inline:clamp(24px,5vw,80px)}.section-y{padding-block:clamp(64px,10vw,160px)}.prose-body{max-width:65ch}.glass-nav{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffd9;border-bottom:1px solid var(--color-border)}.dark .glass-nav{background:oklch(.16 .005 var(--brand-h) / .85)}}@layer utilities{.anim-fade-in{animation:nv-fade-in var(--dur-normal) var(--ease-respond) both}.anim-rise{animation:nv-rise var(--dur-slow) var(--ease-respond) both}.anim-scale{animation:nv-scale var(--dur-normal) var(--ease-announce) both}}@keyframes nv-fade-in{0%{opacity:0}to{opacity:1}}@keyframes nv-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes nv-scale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@supports (animation-timeline: view()){@keyframes reveal{0%{opacity:0;transform:translateY(24px)}}.reveal{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% entry 30%}}html,body,#root{height:100%;margin:0}
