@font-face{font-family:Noto Sans Mono;src:url(../../../NotoSansMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans Mono;src:url(../../../NotoSansMono-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans Mono;src:url(../../../NotoSansMono-SemiBold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans Mono;src:url(../../../NotoSansMono-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg:#0c0c0c;--surface-strong:#1a1a1a;--fg:#f0f0f0;--dim:#9aa9b1;--text-tertiary:#6b7780;--cyan:#00d9ff;--magenta:#f0f9;--fs-body:16px;--fs-small:12px;--fs-h1:24px;--fs-h2:20px;--fs-sub:12px;--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:"Noto Sans Mono", "SF Mono Regular", "SFMono-Regular", 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{border:none;border-top:1px solid var(--surface-strong);max-width:var(--col-prose);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 var(--surface-strong);padding:1.4em 0}ul.post-list li:last-child{border-bottom:1px solid var(--surface-strong)}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;border:1px solid var(--surface-strong);background:#000;width:100%;display:block}canvas.bitmap{image-rendering:pixelated}canvas.grid{image-rendering:auto}
