@font-face{font-family:JetBrainsMono;src:url(../../../JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrainsMono;src:url(../../../JetBrainsMono-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:JetBrainsMono;src:url(../../../JetBrainsMono-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg: #050505;--fg: #ddd;--dim: #888;--grid: #1f1f1f;--cyan: #00d9ff;--magenta: #ff00c8;--fs-body: clamp(16px, .7rem + 1.4vw, 32px);--fs-small: clamp(13px, .6rem + .9vw, 24px);--fs-h1: clamp(32px, 1.4rem + 4vw, 96px);--fs-h2: clamp(20px, 1rem + 1.8vw, 48px);--fs-sub: clamp(14px, .7rem + .9vw, 28px);--pad-x: clamp(16px, 4vw, 64px);--pad-y: clamp(48px, 5vw, 120px);--col: min(100vw - 2 * var(--pad-x), 1600px);--col-prose: min(var(--col), 95ch);--font-mono: "JetBrainsMono", ui-monospace, monospace}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);text-align:left;letter-spacing:normal;word-spacing:normal}body{font-family:var(--font-mono);margin:0;padding:var(--pad-y) var(--pad-x) calc(var(--pad-y) * 1.5);font-size:var(--fs-body);line-height:1.65;display:flex;flex-direction:column;align-items:center}body>*{width:var(--col)}header.site{margin-bottom:clamp(40px,5vw,80px)}.wordmark{display:block;width:var(--col);margin:clamp(28px,4vw,56px) 0 0}a{color:var(--cyan)}a.post-link{text-decoration:none;color:inherit}article{display:contents}article h1,.post-title{font-size:var(--fs-h1);font-weight:400;color:var(--cyan);margin:0 0 .3em;letter-spacing:.5px;line-height:1.15}.subtitle,.post-summary,.post-date{color:var(--dim);font-size:var(--fs-sub)}article p{margin:0 0 1.1em;color:var(--fg);text-align:left;max-width:var(--col-prose)}article h2{font-size:var(--fs-h2);font-weight:400;color:var(--cyan);margin:2em 0 .7em;letter-spacing:.5px;line-height:1.3;max-width:var(--col-prose)}article hr{border:none;border-top:1px solid #1a1a1a;margin:2.5em 0;max-width:var(--col-prose)}article blockquote{font-size:var(--fs-small);color:var(--dim);line-height:1.55;margin:.6em 0 2em;padding:0;border:none;text-align:left;max-width:var(--col-prose)}article em{color:var(--fg);font-style:italic}article strong{color:var(--cyan);font-weight:400}ul.post-list{list-style:none;padding:0;margin:0;width:var(--col)}ul.post-list li{padding:1.4em 0;border-top:1px solid #1a1a1a}ul.post-list li:last-child{border-bottom:1px solid #1a1a1a}ul.post-list h2{font-size:var(--fs-h2);font-weight:400;color:var(--cyan);margin:0 0 .3em;letter-spacing:.5px;line-height:1.3}.post-meta{display:flex;justify-content:space-between;align-items:baseline;gap:1em;margin-bottom:.6em;font-size:var(--fs-small);color:var(--dim)}.demo{margin:1.8em 0 .5em;width:100%;max-width:min(var(--col),80vh)}.demo .label{display:flex;justify-content:space-between;align-items:baseline;color:var(--dim);margin-bottom:.6em;font-size:var(--fs-small)}.demo .label .n{color:var(--cyan);font-variant-numeric:tabular-nums}canvas.bitmap,canvas.grid{display:block;width:100%;aspect-ratio:1 / 1;background:#000;border:1px solid #1a1a1a}canvas.bitmap{image-rendering:pixelated}canvas.grid{image-rendering:auto}
