:root{--gray-0: #FFFFFF;--gray-25: #F9FAFB;--gray-50: #F1F2F4;--gray-100: #E5E7EB;--gray-200: #D1D5DB;--gray-300: #9CA3AF;--gray-400: #6B7280;--gray-500: #4B5563;--gray-600: #374151;--gray-700: #262B33;--gray-800: #1D222B;--gray-850: #161A21;--gray-900: #0F1115;--ink-black: #111111;--blue-light: #007AFF;--blue-dark: #0A84FF;--font-ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro", "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--s-1: 2px;--s0: 4px;--s1: 8px;--s2: 12px;--s3: 16px;--s4: 20px;--s5: 24px;--s6: 32px;--s7: 40px;--s8: 56px;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-card: 40px;--r-pill: 999px;--t-fast: .12s;--t-std: .25s;--ease: cubic-bezier(.4,0,.2,1);color-scheme:light;--surface: var(--gray-0);--surface-2: var(--gray-25);--chrome: var(--gray-50);--border: var(--gray-100);--border-strong: var(--gray-200);--ink: var(--ink-black);--ink-2: var(--gray-400);--ink-3: var(--gray-300);--on-ink: #FFFFFF;--hover: rgba(17,17,17,.04);--shadow-pop: 0 0 0 1px rgba(17,17,17,.06), 0 8px 24px rgba(17,17,17,.1), 0 2px 6px rgba(17,17,17,.06);--blue: var(--blue-light);--focus: var(--blue);--link: var(--blue)}:root[data-theme=dark]{color-scheme:dark;--surface: var(--gray-900);--surface-2: var(--gray-850);--chrome: var(--gray-800);--border: var(--gray-700);--border-strong: #343A44;--ink: #F5F6F7;--ink-2: var(--gray-300);--ink-3: var(--gray-400);--on-ink: #000000;--hover: rgba(245,246,247,.05);--shadow-pop: 0 0 0 1px rgba(255,255,255,.06), 0 12px 32px rgba(0,0,0,.45);--blue: var(--blue-dark)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--surface);color:var(--ink);font-family:var(--font-ui);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}main{flex:1}a{color:var(--link);text-underline-offset:2px}img{display:block;max-width:100%;height:auto}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}:root[data-theme=dark] .for-light,:root:not([data-theme=dark]) .for-dark{display:none}.wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 var(--s5)}.wordmark{font-family:var(--font-display);font-weight:700;font-size:17px;letter-spacing:-.01em;white-space:nowrap}.brand-desc{font-weight:400;color:var(--blue);margin-left:.26em}.btn{font:inherit;font-weight:600;font-size:13px;height:32px;padding:0 14px;border-radius:var(--r-md);border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;white-space:nowrap;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),opacity var(--t-fast)}.btn svg{width:14px;height:14px}.btn-primary{background:var(--ink);color:var(--on-ink)}.btn-primary:hover{opacity:.88}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--hover)}.btn-lg{height:44px;padding:0 20px;border-radius:var(--r-lg);font-size:15px}.btn-lg svg{width:16px;height:16px}.site-header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--surface) 85%,transparent);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}.site-header .wrap{height:56px;display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}.brand svg{width:20px;height:20px;flex:none}.site-footer{border-top:1px solid var(--border);background:var(--surface-2);color:var(--ink-2);font-size:13px}.site-footer .wrap{padding-top:var(--s6);padding-bottom:var(--s6);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3) var(--s6)}.site-footer .wordmark{font-size:15px;color:var(--ink)}.site-footer nav{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5)}.site-footer nav a{color:var(--ink-2);text-decoration:none}.site-footer nav a:hover{color:var(--ink)}.theme-switch{position:fixed;right:24px;bottom:24px;z-index:20;width:48px;height:48px;padding:0;border:0;border-radius:50%;cursor:pointer;background:conic-gradient(from 140deg,#0a84ff,#5ab0ff,#5e5ce6,#0a84ff);box-shadow:0 6px 24px #0a84ff59;transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast);animation:theme-switch-in .5s var(--ease) .2s backwards}.theme-switch:before{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--surface)}@media(hover:hover){.theme-switch:hover{transform:scale(1.05);box-shadow:0 8px 32px #0a84ff8c}}.theme-switch:active{transform:scale(.92)}.theme-switch svg{position:absolute;inset:0;margin:auto;width:20px;height:20px;color:var(--ink);fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--t-std) var(--ease),opacity var(--t-std) var(--ease)}:root:not([data-theme=dark]) .theme-switch .i-sun{opacity:0;transform:rotate(-90deg) scale(.6)}:root[data-theme=dark] .theme-switch .i-moon{opacity:0;transform:rotate(90deg) scale(.6)}@keyframes theme-switch-in{0%{opacity:0;transform:translateY(12px)}}@media(prefers-reduced-motion:reduce){.theme-switch,.theme-switch svg{animation:none;transition:none}}:root:not([data-theme]) .theme-switch{display:none}@media(max-width:1240px){.site-footer .wrap{padding-bottom:96px}}.prose{width:100%;max-width:720px;margin:0 auto;padding:var(--s8) var(--s5) 72px}.prose h1{font-family:var(--font-display);font-size:34px;font-weight:700;letter-spacing:-.025em;line-height:1.15;margin:0 0 var(--s2)}.prose h2{font-family:var(--font-display);font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.3;margin:var(--s7) 0 var(--s1)}.prose h3{font-size:15px;font-weight:600;margin:var(--s5) 0 var(--s0)}.prose p,.prose ul{margin:0 0 var(--s3)}.prose ul{padding-left:1.25em}.prose li{margin-bottom:var(--s1)}.prose li p{margin:0}.prose .lead{color:var(--ink-2)}@media(max-width:600px){.wrap{padding:0 var(--s3)}.prose{padding:var(--s6) var(--s3) var(--s8)}.prose h1{font-size:28px}}
