:root{--bg:#f3f4f9;--surface:#fff;--ink:#15172c;--ink-2:#3c4063;--dim:#666b8c;--rule:#dcdfeb;--accent:#5b3fd0;--accent-2:#0b8f9c;--stage:#060816;--f-display:"Syne", "IBM Plex Sans", system-ui, sans-serif;--f-body:"Source Serif 4", "Iowan Old Style", Georgia, serif;--f-ui:"IBM Plex Sans", system-ui, -apple-system, sans-serif;--f-mono:"IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--measure:42rem;--gutter:clamp(16px, 4vw, 40px);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a0c1c;--surface:#11142a;--ink:#eceefa;--ink-2:#c3c7e2;--dim:#8d93b8;--rule:#22264a;--accent:#b09aff;--accent-2:#4fd6e1;color-scheme:dark}}:root[data-theme=dark]{--bg:#0a0c1c;--surface:#11142a;--ink:#eceefa;--ink-2:#c3c7e2;--dim:#8d93b8;--rule:#22264a;--accent:#b09aff;--accent-2:#4fd6e1;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);margin:0;font-size:19px;line-height:1.65}img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.wrap{max-width:1120px;padding-inline:var(--gutter);margin:0 auto}.col{max-width:var(--measure);margin-inline:auto}.site-head{border-bottom:1px solid var(--rule)}.site-head .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-block:18px;display:flex}.wordmark{font-family:var(--f-display);letter-spacing:-.01em;color:var(--ink);align-items:center;gap:10px;font-size:20px;font-weight:700;text-decoration:none;display:flex}.wordmark svg{flex:none}.nav{font-family:var(--f-ui);flex-wrap:wrap;gap:20px;font-size:14px;display:flex}.nav a{color:var(--ink-2);text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--ink);text-decoration:underline}.site-foot{border-top:1px solid var(--rule);margin-top:96px}.site-foot .wrap{font-family:var(--f-ui);color:var(--dim);flex-wrap:wrap;justify-content:flex-end;gap:16px;padding-block:28px;font-size:13px;display:flex}.site-foot a{color:var(--dim);text-decoration:none}.site-foot a:hover{color:var(--ink);text-decoration:underline}.site-foot .links{gap:18px;display:flex}.eyebrow{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2);margin:0;font-size:12px}h1,h2,h3{font-family:var(--f-display);letter-spacing:-.015em;text-wrap:balance;line-height:1.1}h1{margin-block:12px 16px;font-size:clamp(34px,5.4vw,60px);font-weight:700}h2{margin-block:56px 12px;font-size:clamp(24px,3vw,32px);font-weight:700}h3{margin-block:36px 8px;font-size:21px;font-weight:600}.dek{color:var(--ink-2);margin:0 0 20px;font-size:clamp(20px,2.2vw,24px);line-height:1.45}.meta{font-family:var(--f-ui);color:var(--dim);flex-wrap:wrap;gap:14px;font-size:14px;display:flex}.meta a{color:var(--dim)}.prose p,.prose li{color:var(--ink)}.prose p{margin:0 0 1.1em}.prose code{font-family:var(--f-mono);background:color-mix(in srgb, var(--accent) 9%, transparent);border-radius:4px;padding:.1em .35em;font-size:.86em}.prose pre{border:1px solid var(--rule);border-radius:10px;padding:16px 18px;font-size:15px;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose blockquote{border-left:2px solid var(--accent);color:var(--ink-2);margin:1.4em 0;padding-left:18px}.prose table{border-collapse:collapse;width:100%;font-family:var(--f-ui);font-variant-numeric:tabular-nums;margin:1.4em 0;font-size:15px;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--rule);white-space:nowrap;padding:8px 12px}.prose th{color:var(--dim);font-weight:500}.prose .katex-display{padding:4px 0;overflow:auto hidden}.shiki,.shiki span{color:var(--shiki-light);background-color:var(--shiki-light-bg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .shiki,:root:not([data-theme=light]) .shiki span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}}:root[data-theme=dark] .shiki,:root[data-theme=dark] .shiki span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}.disclosure{font-family:var(--f-ui);color:var(--dim);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:0 0 32px;padding:10px 0;font-size:14px}.viz{max-width:1120px;margin:40px auto}.viz-frame{background:var(--stage);border:1px solid var(--rule);aspect-ratio:16/10;border-radius:14px;max-width:100%;position:relative;overflow:hidden}.viz-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.viz-cap{font-family:var(--f-ui);color:var(--dim);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:10px;font-size:14px;display:flex}@media (width<=720px){.viz-frame{aspect-ratio:auto;height:82vh}}.post-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.post-list li{border-top:1px solid var(--rule);grid-template-columns:130px 1fr;gap:20px;padding:22px 0;display:grid}.post-list li:last-child{border-bottom:1px solid var(--rule)}.post-list time,.post-list .num{font-family:var(--f-mono);color:var(--dim);padding-top:6px;font-size:13px}.post-list h3{margin:0 0 4px;font-size:22px}.post-list h3 a{color:var(--ink);text-decoration:none}.post-list h3 a:hover{text-decoration:underline}.post-list p{color:var(--ink-2);margin:0;font-size:17px}.post-list .soon h3{color:var(--dim);font-weight:500}@media (width<=600px){.post-list li{grid-template-columns:1fr;gap:4px}}.tag{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:11.5px}.btn{font-family:var(--f-ui);background:var(--ink);color:var(--bg);border-radius:10px;align-items:center;gap:8px;padding:10px 16px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{opacity:.9;text-decoration:none}.btn.ghost{color:var(--ink);border:1px solid var(--rule);background:0 0}.signup{border:1px solid var(--rule);background:var(--surface);border-radius:14px;margin:56px 0 0;padding:24px}.signup h2{margin:0 0 6px;font-size:24px}.signup p{color:var(--ink-2);margin:0 0 14px;font-size:17px}.signup form{flex-wrap:wrap;gap:10px;display:flex}.signup input{min-width:0;font:inherit;font-family:var(--f-ui);border:1px solid var(--rule);background:var(--bg);color:var(--ink);border-radius:10px;flex:220px;padding:10px 12px;font-size:16px}.signup button{font-family:var(--f-ui);background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:10px 16px;font-size:15px;font-weight:500}.signup .fine{font-family:var(--f-ui);color:var(--dim);margin:10px 0 0;font-size:13px}
