@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/hanken-grotesk-v12-latin-ext-a1376a56.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/hanken-grotesk-v12-latin-1f21c6ea.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/jetbrains-mono-v24-latin-ext-9c38cb2d.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/jetbrains-mono-v24-latin-2c32b9b3.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/space-grotesk-v22-latin-ext-054c266f.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/space-grotesk-v22-latin-a0d054c4.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--cobalt-50:#EEF2FF;--cobalt-100:#DCE4FF;--cobalt-200:#BFD0FF;--cobalt-300:#94AEFF;--cobalt-400:#6485FF;--cobalt-500:#2563FF;--cobalt-600:#1A4DE6;--cobalt-700:#1A40C0;--cobalt-800:#16319A;--cobalt-900:#142A78;--teal-50:#E7FAF8;--teal-100:#C7F2EE;--teal-200:#8FE6DE;--teal-300:#4FD4C9;--teal-400:#22C0B5;--teal-500:#14B8AE;--teal-600:#0E9E96;--teal-700:#0B7E78;--teal-800:#0A615D;--ink-0:#FFFFFF;--ink-50:#F7F6F4;--ink-100:#EEEDEA;--ink-200:#E0DED9;--ink-300:#C9C6BF;--ink-400:#A8A49B;--ink-500:#807C73;--ink-600:#5E5B53;--ink-700:#444139;--ink-800:#2A2823;--ink-900:#1A1916;--ink-950:#0F0E0C;--green-500:#1FA971;--green-600:#178A5C;--green-50:#E7F7EF;--amber-500:#F4A52B;--amber-700:#9A6310;--amber-50:#FDF3E2;--red-500:#E5484D;--red-600:#CC2F36;--red-50:#FCEBEC;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:28px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--s-20:80px;--s-24:96px;--r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-pill:999px;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Hanken Grotesk", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--ease:cubic-bezier(.2,.8,.2,1);--dur-1:.12s;--dur-2:.18s;--dur-3:.24s;--maxw:1180px}:root,[data-theme=light]{--bg:var(--ink-50);--surface:var(--ink-0);--surface-2:#FCFBFA;--elevated:var(--ink-0);--line:var(--ink-200);--line-strong:var(--ink-300);--text:var(--ink-900);--text-2:var(--ink-600);--text-3:var(--ink-500);--accent:var(--cobalt-500);--accent-strong:var(--cobalt-600);--accent-text:var(--cobalt-700);--on-accent:#FFFFFF;--second:var(--teal-600);--second-soft:var(--teal-50);--code-bg:var(--ink-900);--code-text:var(--ink-50);--shadow-xs:0 1px 2px rgba(26,25,22,.06);--shadow-sm:0 1px 2px rgba(26,25,22,.06), 0 2px 6px rgba(26,25,22,.05);--shadow-md:0 8px 22px -8px rgba(26,25,22,.16), 0 2px 6px rgba(26,25,22,.06);--shadow-lg:0 24px 48px -16px rgba(26,25,22,.22), 0 4px 10px rgba(26,25,22,.06);--grid-line:rgba(26,25,22,.05)}[data-theme=dark]{--bg:#131210;--surface:#1C1B18;--surface-2:#211F1B;--elevated:#24221E;--line:#322F2A;--line-strong:#403C35;--text:#F2F0EB;--text-2:#B7B2A8;--text-3:#8E8980;--accent:#2F66FF;--accent-strong:#5481FF;--accent-text:#8FB0FF;--on-accent:#FFFFFF;--second:#2DD4C8;--second-soft:rgba(45,212,200,.1);--code-bg:#0E0D0B;--code-text:#E8E6E0;--shadow-xs:0 1px 2px rgba(0,0,0,.4);--shadow-sm:0 1px 2px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.3);--shadow-md:0 10px 28px -10px rgba(0,0,0,.6), 0 2px 8px rgba(0,0,0,.4);--shadow-lg:0 28px 56px -18px rgba(0,0,0,.7), 0 6px 14px rgba(0,0,0,.4);--grid-line:rgba(255,255,255,.05)}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background var(--dur-3) var(--ease),color var(--dur-3) var(--ease)}h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:600;line-height:1.08;margin:0;letter-spacing:-.01em}p{margin:0}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.btn:focus-visible,.chip:focus-visible{outline-offset:3px}.mono{font-family:var(--font-mono)}code{font-family:var(--font-mono);font-size:.86em;background:var(--ink-100);color:var(--text);padding:.14em .42em;border-radius:var(--r-xs);border:1px solid var(--line)}[data-theme=dark] code{background:var(--surface-2)}.eyebrow{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);font-weight:500}.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--accent);color:var(--on-accent);padding:10px 16px;border-radius:0 0 var(--r-sm) 0;font-family:var(--font-display);font-weight:600}.skip-link:focus{left:0;text-decoration:none}.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}.wordmark{font-family:var(--font-display);font-weight:600;letter-spacing:-.03em;color:var(--text);line-height:1}.wordmark .o2{color:var(--accent)}.logo-lockup{display:inline-flex;align-items:center;gap:10px}.logo-lockup svg{display:block;flex:0 0 auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-display);font-weight:600;font-size:15px;padding:11px 20px;border-radius:var(--r-md);border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform var(--dur-1) var(--ease),box-shadow var(--dur-2) var(--ease),background var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease),color var(--dur-2) var(--ease)}.btn:active{transform:translateY(1px) scale(.99)}.btn svg{flex:0 0 auto}.btn-primary{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-xs)}.btn-primary:hover{background:var(--accent-strong);box-shadow:var(--shadow-sm);text-decoration:none}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--line-strong)}.btn-secondary:hover{border-color:var(--text-3);text-decoration:none}.btn-ghost{background:transparent;color:var(--accent-text)}.btn-ghost:hover{background:var(--cobalt-50);text-decoration:none}[data-theme=dark] .btn-ghost:hover{background:#2f66ff1f}.btn-dark{background:var(--ink-900);color:var(--ink-50)}.btn-dark:hover{background:var(--ink-800);text-decoration:none}[data-theme=dark] .btn-dark{background:var(--ink-0);color:var(--ink-900)}[data-theme=dark] .btn-dark:hover{background:var(--ink-100)}.btn-danger{background:var(--red-500);color:#fff}.btn-danger:hover{background:var(--red-600);text-decoration:none}.btn-danger-soft{background:transparent;color:var(--red-600);border-color:color-mix(in srgb,var(--red-500) 38%,var(--line))}.btn-danger-soft:hover{background:var(--red-50);border-color:var(--red-500);text-decoration:none}[data-theme=dark] .btn-danger-soft{color:#f2787c}[data-theme=dark] .btn-danger-soft:hover{background:#e5484d1f}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:disabled:active{transform:none}.btn-sm{font-size:13px;padding:8px 14px}.btn-lg{font-size:17px;padding:14px 26px}.btn-block{width:100%}.chip{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:500;font-family:var(--font-body);padding:7px 14px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;transition:all var(--dur-1) var(--ease)}.chip .em{font-size:15px;line-height:1}.chip:hover{border-color:var(--line-strong)}.chip.on{background:var(--accent);color:var(--on-accent);border-color:transparent}.chip-row{display:flex;flex-wrap:wrap;gap:10px}.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.04em;padding:4px 10px;border-radius:var(--r-pill)}.badge.neutral{background:var(--ink-100);color:var(--text-2)}[data-theme=dark] .badge.neutral{background:var(--surface-2)}.badge.accent{background:var(--cobalt-50);color:var(--cobalt-700)}[data-theme=dark] .badge.accent{background:#2f66ff24;color:var(--accent-text)}.badge.success{background:var(--green-50);color:var(--green-600)}[data-theme=dark] .badge.success{background:#1fa97126;color:#3dd68c}.badge.warn{background:var(--amber-50);color:var(--amber-700)}[data-theme=dark] .badge.warn{background:#f4a52b26;color:var(--amber-500)}.badge.error{background:var(--red-50);color:var(--red-600)}[data-theme=dark] .badge.error{background:#e5484d26;color:#f2787c}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:13px;font-weight:600;color:var(--text-2);font-family:var(--font-display)}.input{font-family:var(--font-body);font-size:15px;padding:11px 14px;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);color:var(--text);width:100%;transition:border var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)}textarea.input{resize:vertical;overflow:hidden}.input::placeholder{color:var(--text-3)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.field .hint{font-size:12px;color:var(--text-3)}select.input{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:42px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23807C73' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px 16px}[data-theme=dark] select.input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23B7B2A8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}select.input::-ms-expand{display:none}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-6);box-shadow:var(--shadow-xs)}.card.pad-lg{padding:var(--s-8)}.note{display:flex;gap:12px;padding:var(--s-5);border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);font-size:14.5px;line-height:1.55;color:var(--text-2)}.note .em{font-size:18px;line-height:1.2;flex:0 0 auto}.note.accent{background:var(--cobalt-50);border-color:var(--cobalt-200)}[data-theme=dark] .note.accent{background:#2f66ff14;border-color:#2f66ff40}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--text-2);width:40px;height:40px;border-radius:var(--r-pill);padding:0;transition:all var(--dur-2) var(--ease)}.theme-toggle:hover{border-color:var(--line-strong);color:var(--text)}.theme-toggle .moon{display:none}.theme-toggle .sun,[data-theme=dark] .theme-toggle .moon{display:block}[data-theme=dark] .theme-toggle .sun{display:none}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,32px);width:100%}.grid{display:grid;gap:var(--s-5)}.divider{height:1px;background:var(--line);margin:var(--s-10) 0}.eyebrow-row{display:flex;align-items:center;gap:12px;margin-bottom:var(--s-4)}.eyebrow-row .bar{height:1px;width:40px;background:var(--accent)}.ring{position:relative;display:inline-flex;align-items:center;justify-content:center}.ring .val{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;line-height:1}@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important;animation:none!important}}.toast-root{position:fixed;right:var(--s-5);bottom:var(--s-5);z-index:1000;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}.toast{pointer-events:auto;max-width:min(340px,calc(100vw - 2 * var(--s-5)));padding:11px 16px;border-radius:var(--r-md);background:var(--surface);color:var(--text);border:1px solid var(--line-strong);box-shadow:var(--shadow-md);font-size:14px;line-height:1.4;animation:toast-in .18s var(--ease, ease-out)}.toast-out{animation:toast-out .18s var(--ease, ease-in) forwards}.toast-ok{border-color:color-mix(in srgb,var(--green-500) 35%,var(--line-strong));color:var(--green-600)}.toast-err{border-color:color-mix(in srgb,var(--red-500) 35%,var(--line-strong));color:var(--red-600)}[data-theme=dark] .toast-ok{color:#3dd68c}[data-theme=dark] .toast-err{color:#f2787c}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@media (max-width: 640px){.toast-root{right:var(--s-4);bottom:calc(var(--s-4) + 56px);left:var(--s-4);align-items:stretch}.toast{max-width:none}}
