@font-face{font-family:Syne;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/Syne-variable-latin-BVsvWWA4.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/IBMPlexMono-400-latin-DMJ8VG8y.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/IBMPlexMono-500-latin-DSY6xOcd.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{--color-bg: #09090b;--color-surface: #121214;--color-elevated: #1a1a1e;--color-fg: #f3f3ef;--color-muted: #8c8c86;--color-subtle: #6b6b66;--color-accent: #c5ced1;--color-accent-fg: #09090b;--color-signal: #d7e3e6;--color-border: color-mix(in oklab, var(--color-fg) 12%, transparent);--color-ring: color-mix(in oklab, var(--color-fg) 28%, transparent);--font-sans: "Syne", ui-sans-serif, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-border: 0 0 0 1px color-mix(in oklab, var(--color-fg) 10%, transparent);--shadow-border-hover: 0 0 0 1px color-mix(in oklab, var(--color-fg) 16%, transparent);--ease-out: cubic-bezier(0, 0, .2, 1)}html{color-scheme:dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{min-height:100%;background:var(--color-bg);color:var(--color-fg)}body{margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.625}h1,h2,h3{text-wrap:balance;font-weight:500;letter-spacing:-.025em;line-height:1.1}p{text-wrap:pretty}button:not(:disabled){cursor:pointer}.shell{position:relative;min-height:100dvh;overflow-x:hidden}.lab-grid,.lab-wash{position:fixed;pointer-events:none}.lab-grid{inset:0;opacity:.7;background-image:radial-gradient(circle,color-mix(in oklab,var(--color-fg) 9%,transparent) 1px,transparent 1.2px);background-size:28px 28px}.lab-wash{top:0;right:0;left:0;height:16rem;background:radial-gradient(80% 60% at 50% 0%,color-mix(in oklab,var(--color-accent) 8%,transparent),transparent 70%)}.frame{position:relative;z-index:1;max-width:1152px;margin:0 auto;padding:0 20px 64px}header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 0}.brand{display:flex;align-items:center;gap:12px;color:var(--color-fg);font-size:16px;font-weight:500;letter-spacing:-.025em;line-height:24px;text-decoration:none}.brand img{display:block;width:auto;height:48px}@media(max-width:520px){.brand img{height:36px}}header nav,.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}header nav{gap:16px}header nav a,header nav span{color:var(--color-muted);font-family:var(--font-mono);font-size:12px;font-weight:400;letter-spacing:.1em;line-height:1.4;text-decoration:none;text-transform:uppercase}header nav a:hover{color:var(--color-fg)}main h1{margin:8px 0 16px;font-size:clamp(1.75rem,4vw,2.75rem)}main h2{margin:64px 0 12px;font-size:clamp(1.35rem,2.4vw,1.75rem)}main h3{margin:28px 0 8px;font-size:20px;line-height:28px}main p,main li,main dd{color:var(--color-muted)}main a{color:var(--color-fg);text-underline-offset:3px}main a:hover{color:var(--color-accent)}ol,ul{padding-left:1.25rem}ol li,ul li{margin:8px 0}table{width:100%;max-width:100%;margin:16px 0 8px;border:1px solid var(--color-border);border-radius:var(--radius-lg);border-collapse:separate;border-spacing:0;overflow:hidden;table-layout:fixed}th,td{padding:12px 14px;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;overflow-wrap:break-word}tr:last-child th,tr:last-child td{border-bottom:0}th{color:var(--color-muted);font-family:var(--font-mono);font-size:12px;font-weight:400;letter-spacing:.1em;line-height:1.4;text-transform:uppercase}td{color:var(--color-fg);font-size:14px;line-height:1.625}td div{color:var(--color-muted);font-size:14px}button,input,select,textarea{font:inherit}button{height:44px;padding:0 20px;border:0;border-radius:var(--radius-md);background:var(--color-fg);color:var(--color-accent-fg);font-family:var(--font-sans);font-size:14px;font-weight:500;letter-spacing:-.025em;line-height:20px;transition:transform .15s var(--ease-out),background-color .15s var(--ease-out),color .15s var(--ease-out)}@media(hover:hover){button:hover:not(:disabled){background:var(--color-signal)}}button:active:not(:disabled){transform:scale(.96)}button:disabled{cursor:default;opacity:.5;pointer-events:none}input,select,textarea{box-sizing:border-box;width:100%;max-width:28rem;border:0;border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-fg);font-size:14px;box-shadow:var(--shadow-border);transition:box-shadow .15s var(--ease-out)}input,select{height:44px;padding:0 12px}textarea{min-height:88px;max-width:none;padding:12px;line-height:1.5}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:none;box-shadow:var(--shadow-border-hover)}::placeholder{color:var(--color-subtle)}label{display:block;margin-top:16px;color:var(--color-muted);font-family:var(--font-mono);font-size:12px;font-weight:400;letter-spacing:.1em;line-height:1.4;text-transform:uppercase}label input,label select,label textarea{display:block;margin-top:8px;font-family:var(--font-sans);letter-spacing:normal;text-transform:none}label:has(input[type=checkbox]){display:flex;align-items:center;gap:10px;color:var(--color-fg);font-family:var(--font-sans);font-size:14px;letter-spacing:normal;text-transform:none}input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--color-fg);box-shadow:none}input[type=number]{max-width:12rem}fieldset{margin:16px 0;padding:8px 16px 16px;border:1px solid var(--color-border);border-radius:var(--radius-lg)}legend{padding:0 8px;color:var(--color-muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase}pre,code{font-family:var(--font-mono);font-size:12px}pre{padding:16px 20px;overflow-wrap:anywhere;white-space:pre-wrap;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-muted);line-height:1.625}code{overflow-wrap:anywhere;color:var(--color-accent)}.note,.banner{padding:16px 20px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-muted)}.banner{margin:0 0 8px;font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;line-height:1.5;text-transform:none}.error,.ok{font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;line-height:1.5}.error{color:var(--color-fg);border-left:2px solid var(--color-accent);padding-left:12px}.ok{color:var(--color-accent)}article{margin:16px 0;padding:24px;border:1px solid var(--color-border);border-radius:var(--radius-xl)}article h3{margin-top:0}img{max-width:100%;height:auto;border-radius:var(--radius-lg)}.progress{height:4px;background:var(--color-elevated);border-radius:4px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--color-fg)}.art{display:flex;align-items:center;justify-content:center;width:160px;height:100px;margin:8px 0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-subtle);font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase}footer{display:flex;flex-direction:column;gap:12px;margin-top:64px;padding:32px 0;border-top:1px solid var(--color-border);color:var(--color-muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;line-height:1.4;text-transform:uppercase}footer a{color:var(--color-fg);text-decoration:none}footer nav{display:flex;flex-wrap:wrap;gap:16px}@media(min-width:640px){.frame{padding-right:32px;padding-left:32px}header nav{gap:24px}footer{flex-direction:row;justify-content:space-between;align-items:baseline}article{padding:32px}}@media(max-width:700px){header{align-items:flex-start;flex-direction:column}th,td{padding:10px 8px}}
