:root{--bg: #fafaf9;--bg-secondary: #f5f2ed;--bg-surface: #fdfcfa;--bg-tertiary: #eeebe4;--text: #1c1a16;--text-muted: #8a8579;--text-faint: #b8b3a8;--border: #e8e4dc;--accent: #7c3aed;--accent-fg: #ffffff;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Fira Code", "Consolas", monospace;--font-display: "Inter", system-ui, sans-serif;--font-editorial: "Newsreader", Georgia, "Times New Roman", serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .08), 0 2px 4px -2px rgb(0 0 0 / .06);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .08), 0 4px 6px -4px rgb(0 0 0 / .06);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .08), 0 8px 10px -6px rgb(0 0 0 / .06);--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-full: 9999px;--container-w: 1280px;--container-px: 1.5rem;--section-y: 5rem;--section-y-lg: 7rem;--font-body: var(--font-sans);--text-secondary: var(--text-muted);--text-link: var(--accent);--border-strong: #ccc8be;--card-accent: var(--accent);--warm-shadow-md: 0 4px 12px rgba(28,26,22,.08), 0 1px 3px rgba(28,26,22,.06);--warm-shadow-lg: 0 12px 32px rgba(28,26,22,.1), 0 4px 8px rgba(28,26,22,.06)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:14px}body{font-family:var(--font-sans);background-color:var(--bg);color:var(--text);font-size:.9375rem;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,video,canvas,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent)}button{font-family:inherit;cursor:pointer;border:none;background:none}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;color:var(--text);letter-spacing:-.01em}h1{font-size:3rem;letter-spacing:-.025em}h2{font-size:2.25rem;letter-spacing:-.02em}h3{font-size:1.375rem;letter-spacing:-.01em}h4{font-size:1.125rem}p{font-size:.9375rem;color:var(--text-muted);line-height:1.65}.container{width:100%;max-width:var(--container-w);margin:0 auto;padding:0 var(--container-px)}.section{padding:var(--section-y) var(--container-px)}.section-alt{padding:var(--section-y) var(--container-px);background:var(--bg-secondary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:.875rem;font-weight:600;border-radius:var(--radius-md);transition:all .15s ease;border:1px solid transparent;cursor:pointer}.btn-primary{background-color:var(--text);color:var(--bg);border-color:var(--text)}.btn-primary:hover{opacity:.85}.btn-secondary{background-color:var(--bg-surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background-color:var(--bg-secondary);border-color:var(--text-faint)}.btn-ghost{background-color:transparent;color:var(--text-muted);border-color:transparent}.btn-ghost:hover{color:var(--text);background-color:var(--bg-secondary)}.active,[aria-current=page],[aria-selected=true]{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::-moz-selection{background-color:#7c3aed1f;color:var(--text)}::selection{background-color:#7c3aed1f;color:var(--text)}@media(max-width:768px){h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.25rem}.container{padding:0 var(--space-4)}.section{padding:3rem var(--space-4)}}@media(max-width:480px){html{font-size:13px}.container{padding:0 var(--space-3)}}html.dark{--bg: #1a1916;--bg-secondary: #211f1b;--bg-surface: #1e1c18;--bg-tertiary: #2a2822;--text: #e8e4dc;--text-muted: #9a9589;--text-faint: #4a4842;--border: #2e2c28;--border-strong: #3a3832;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .2);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .3), 0 2px 4px -2px rgb(0 0 0 / .2);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .3), 0 4px 6px -4px rgb(0 0 0 / .2)}html.dark body{background-color:var(--bg);color:var(--text)}
