@font-face{font-family:Pixel;src:url(/fonts/pixel-latin-ext.woff2) format("woff2");font-display:swap;font-weight:400;font-style:normal;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Pixel;src:url(/fonts/pixel-latin.woff2) format("woff2");font-display:swap;font-weight:400;font-style:normal;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{--bg: #181818;--bg-alt: #1c1c1c;--panel: #282828;--border: #2e3330;--comment: #7c7c7c;--fg: #e4e4ef;--fg-dim: #95a99f;--red: #f43841;--green: #73d936;--yellow: #ffdd33;--orange: #ff8b38;--blue: #96a6c8;--purple: #9e95c7;--niagara: #95a99f;--mono: "Berkeley Mono", "JetBrains Mono", "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--display: "Pixel", var(--mono);--content-width: 68ch;--step: 4px}*{box-sizing:border-box}html{background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:16px;line-height:1.55;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}body{margin:0;min-height:100vh;display:flex;flex-direction:column}.place-canvas,.pixel{image-rendering:pixelated;image-rendering:crisp-edges}a{color:var(--yellow);text-decoration:none;border-bottom:1px dotted var(--yellow)}a:hover{color:var(--orange);border-color:var(--orange)}main a:visited{color:var(--purple);border-color:var(--purple)}h1,h2,h3{font-family:var(--display);font-weight:400;letter-spacing:.02em;color:var(--green);margin:1.6em 0 .6em;line-height:1.2}h1{font-size:1.7rem}h2{font-size:1.3rem;color:var(--yellow)}h3{font-size:1.1rem;color:var(--niagara)}p,ul,ol{margin:.8em 0}code,pre,kbd{font-family:var(--mono);font-size:.95em}code{background:var(--panel);padding:.1em .35em;border:1px solid var(--border);color:var(--orange)}pre{background:var(--panel);border:1px solid var(--border);padding:calc(var(--step) * 3);overflow-x:auto}pre code{background:none;border:0;padding:0;color:inherit}blockquote{border-left:3px solid var(--purple);background:var(--bg-alt);margin:1em 0;padding:.6em 1em;color:var(--fg-dim)}hr{border:0;border-top:1px dashed var(--border);margin:2em 0}.skip-link{position:absolute;left:-9999px;top:0;background:var(--panel);color:var(--yellow);padding:calc(var(--step) * 2) calc(var(--step) * 3);border:1px solid var(--yellow);z-index:100}.skip-link:focus{left:calc(var(--step) * 2);top:calc(var(--step) * 2)}.site-header{display:flex;align-items:center;justify-content:space-between;padding:calc(var(--step) * 4) calc(var(--step) * 5);border-bottom:1px solid var(--border);background:var(--bg-alt);gap:calc(var(--step) * 3);flex-wrap:wrap}.site-title{font-family:var(--display);font-size:1.25rem;color:var(--green);border:0;letter-spacing:.04em}.site-title:before{content:"◆ ";color:var(--red)}.site-nav{display:flex;gap:calc(var(--step) * 4);flex-wrap:wrap}.site-nav a{color:var(--fg-dim);border:0}.site-nav a:hover{color:var(--yellow)}.site-nav a.current{color:var(--yellow);border-bottom:1px solid var(--yellow)}main{flex:1;width:100%;max-width:var(--content-width);margin:0 auto;padding:calc(var(--step) * 6) calc(var(--step) * 5)}.wide{max-width:100%;padding-inline:calc(var(--step) * 5)}.site-footer{padding:calc(var(--step) * 4) calc(var(--step) * 5);border-top:1px solid var(--border);background:var(--bg-alt);color:var(--comment);font-size:.85rem;display:flex;gap:calc(var(--step) * 2);justify-content:center}.post-list{list-style:none;padding:0;margin:0}.post-list li{padding:calc(var(--step) * 2) 0;border-bottom:1px dashed var(--border);display:flex;gap:calc(var(--step) * 3);flex-wrap:wrap;align-items:baseline}.post-list .date{color:var(--comment);font-variant-numeric:tabular-nums;flex:0 0 auto}.post-list .title{color:var(--fg)}.post-list .title:hover{color:var(--yellow)}.tag-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:calc(var(--step) * 2)}.tag-list li{display:inline-flex;gap:calc(var(--step));align-items:baseline}.tag-list .count{color:var(--comment);font-size:.9rem}.tag{color:var(--purple);border-bottom:1px dotted var(--purple)}.tag:hover{color:var(--yellow);border-color:var(--yellow)}main a.tag:visited{color:var(--purple);border-color:var(--purple)}.tag-row{margin-top:calc(var(--step) * 6);padding-top:calc(var(--step) * 3);border-top:1px dashed var(--border);color:var(--fg-dim);font-size:.9rem;display:flex;flex-wrap:wrap;gap:calc(var(--step) * 2);align-items:baseline}.tag-row .label{color:var(--comment)}.post-list .kind{color:var(--comment);font-size:.85rem;font-style:italic}article header.post-meta{border-bottom:1px dashed var(--border);padding-bottom:calc(var(--step) * 3);margin-bottom:calc(var(--step) * 4)}article header.post-meta .date{color:var(--comment);font-size:.9rem}article header.post-meta h1{margin-top:.2em}.pixel-box{border:2px solid var(--border);background:var(--bg-alt);padding:calc(var(--step) * 4);position:relative;box-shadow:-4px 0 0 0 var(--bg-alt),4px 0 0 0 var(--bg-alt),0 -4px 0 0 var(--bg-alt),0 4px 0 0 var(--bg-alt)}.pixel-box.accent{border-color:var(--purple)}.pixel-box.accent-green{border-color:var(--green)}.haiku{font-family:var(--mono);white-space:pre-wrap;color:var(--niagara);font-size:1.05rem;text-align:center;line-height:1.8;letter-spacing:.02em}.haiku:before{content:"— ";color:var(--comment)}.haiku:after{content:" —";color:var(--comment)}.chess-wrapper{display:grid;grid-template-columns:1fr;gap:calc(var(--step) * 3);margin:calc(var(--step) * 4) 0}.chess-board{width:100%;max-width:420px;aspect-ratio:1;margin-inline:auto}.chess-status{font-family:var(--mono);color:var(--fg-dim);min-height:1.5em;text-align:center}.chess-status.solved{color:var(--green)}.chess-status.wrong{color:var(--red)}.chess-controls{display:flex;gap:calc(var(--step) * 2);justify-content:center;flex-wrap:wrap}button,.btn{font-family:var(--mono);background:var(--panel);color:var(--fg);border:1px solid var(--border);padding:calc(var(--step) * 2) calc(var(--step) * 3);cursor:pointer}button:hover,.btn:hover{background:var(--border);color:var(--yellow)}button:disabled{opacity:.5;cursor:not-allowed}.comments{margin-top:calc(var(--step) * 8)}.comments h2{color:var(--yellow)}.comment{border-bottom:1px dashed var(--border);padding:calc(var(--step) * 2) 0}.comment .meta{color:var(--comment);font-size:.85rem}.comment .meta .badge{color:var(--orange)}.comment .body{margin-top:calc(var(--step));white-space:pre-wrap}.comment-form{display:grid;gap:calc(var(--step) * 2);margin-top:calc(var(--step) * 4)}.comment-form input,.comment-form textarea{font-family:var(--mono);background:var(--bg-alt);color:var(--fg);border:1px solid var(--border);padding:calc(var(--step) * 2)}.comment-form textarea{min-height:7em;resize:vertical}.comment-form .notice{color:var(--comment);font-size:.85rem}.comment-form .mod-note{margin:0}.comment-form .ok{color:var(--green)}.comment-form .err{color:var(--red)}.place-head,.place-wrap{max-width:calc(512px + calc(var(--step) * 3) + 120px);margin-inline:auto}.place-wrap{display:grid;grid-template-columns:1fr;gap:calc(var(--step) * 3);justify-items:center}@media(min-width:720px){.place-wrap{grid-template-columns:auto auto;align-items:start;width:fit-content}}.place-canvas{width:min(512px,92vw);aspect-ratio:1;background:var(--bg);border:2px solid var(--border);cursor:crosshair;touch-action:manipulation}.place-palette{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;width:min(320px,100%)}@media(min-width:720px){.place-palette{grid-template-columns:repeat(2,1fr);width:120px}}.place-swatch{aspect-ratio:1;border:2px solid var(--comment);cursor:pointer;padding:0;position:relative;z-index:0;transition:transform 80ms ease,border-color 80ms ease}.place-swatch:hover{border-color:var(--yellow);transform:scale(1.08);z-index:1}.place-swatch.selected{border-color:var(--yellow);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--yellow);z-index:1}.place-swatch.erase{position:relative;background-image:linear-gradient(135deg,var(--border) 25%,transparent 25%),linear-gradient(-135deg,var(--border) 25%,transparent 25%),linear-gradient(135deg,transparent 75%,var(--border) 75%),linear-gradient(-135deg,transparent 75%,var(--border) 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0;background-color:var(--bg)}.place-swatch.erase:after{content:"⌫";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--fg-dim);font-size:.85rem}.place-info{grid-column:1 / -1;color:var(--fg-dim);text-align:center;font-size:.95rem}.place-info.cooldown{color:var(--orange)}.place-info.warn{color:var(--red)}.place-canvas:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.home-banner{font-family:var(--mono);white-space:pre;color:var(--green);line-height:1.1;font-size:.9rem;background:transparent;border:0;padding:0;overflow-x:auto;scrollbar-width:none;max-width:100%;width:fit-content;margin:0 auto calc(var(--step) * 4)}.home-banner::-webkit-scrollbar{display:none}.home-section{margin-top:calc(var(--step) * 8)}.home-section h2 a{color:inherit;border:0}.home-section h2 a:hover{color:var(--orange)}.home-section .see-all{font-size:.9rem;color:var(--fg-dim)}@media(max-width:540px){.site-header{flex-direction:column;align-items:flex-start}main{padding:calc(var(--step) * 4) calc(var(--step) * 3)}h1{font-size:1.4rem}}.cg-wrap{background:var(--panel)}.cg-wrap coords{font-family:var(--mono);font-size:.7rem;color:var(--fg-dim);opacity:.9;pointer-events:none}.cg-wrap coords.ranks{top:0;left:0;height:100%;width:14px}.cg-wrap coords.ranks coord{display:flex;align-items:flex-start;justify-content:flex-start;padding:2px 0 0 3px;transform:none}.cg-wrap coords.files{bottom:0;left:0;width:100%;height:14px}.cg-wrap coords.files coord{display:flex;align-items:flex-end;justify-content:flex-end;padding:0 3px 1px 0}.cg-wrap.orientation-white coords.ranks :nth-child(odd),.cg-wrap.orientation-black coords.ranks :nth-child(2n){color:#fffc}.cg-wrap.orientation-white coords.ranks :nth-child(2n),.cg-wrap.orientation-black coords.ranks :nth-child(odd){color:#484848cc}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}}
