@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);padding:var(--pad-y) var(--pad-x) calc(var(--pad-y) * 1.5);font-size:var(--fs-body);flex-direction:column;align-items:center;margin:0;line-height:1.65;display:flex}body>*{width:var(--col)}header.site{margin-bottom:clamp(40px,5vw,80px)}.wordmark{width:var(--col);margin:clamp(28px,4vw,56px) 0 0;display:block}a{color:var(--cyan)}a.post-link{color:inherit;text-decoration:none}article{display:contents}article h1,.post-title{font-size:var(--fs-h1);color:var(--cyan);letter-spacing:.5px;margin:0 0 .3em;font-weight:400;line-height:1.15}.subtitle,.post-summary,.post-date{color:var(--dim);font-size:var(--fs-sub)}article p{color:var(--fg);text-align:left;max-width:var(--col-prose);margin:0 0 1.1em}article h2{font-size:var(--fs-h2);color:var(--cyan);letter-spacing:.5px;max-width:var(--col-prose);margin:2em 0 .7em;font-weight:400;line-height:1.3}article hr{max-width:var(--col-prose);border:none;border-top:1px solid #1a1a1a;margin:2.5em 0}article blockquote{font-size:var(--fs-small);color:var(--dim);text-align:left;max-width:var(--col-prose);border:none;margin:.6em 0 2em;padding:0;line-height:1.55}article em{color:var(--fg);font-style:italic}article strong{color:var(--cyan);font-weight:400}ul.post-list{width:var(--col);margin:0;padding:0;list-style:none}ul.post-list li{border-top:1px solid #1a1a1a;padding:1.4em 0}ul.post-list li:last-child{border-bottom:1px solid #1a1a1a}ul.post-list h2{font-size:var(--fs-h2);color:var(--cyan);letter-spacing:.5px;margin:0 0 .3em;font-weight:400;line-height:1.3}.post-meta{font-size:var(--fs-small);color:var(--dim);justify-content:space-between;align-items:baseline;gap:1em;margin-bottom:.6em;display:flex}.demo{width:100%;max-width:min(var(--col), 80vh);margin:1.8em 0 .5em}.demo .label{color:var(--dim);font-size:var(--fs-small);justify-content:space-between;align-items:baseline;margin-bottom:.6em;display:flex}.demo .label .n{color:var(--cyan);font-variant-numeric:tabular-nums}canvas.bitmap,canvas.grid{aspect-ratio:1;background:#000;border:1px solid #1a1a1a;width:100%;display:block}canvas.bitmap{image-rendering:pixelated}canvas.grid{image-rendering:auto}
