:root{--link-color:var(--secondary);--link-hover-color:var(--accent);--link-underline-offset:.2em;--link-underline-thickness:1px;--code-background:var(--soft);--code-foreground:var(--ink);--code-comment:var(--muted);--code-keyword:#9f3e2b;--code-type:#176d76;--code-function:var(--accent);--code-string:#286446;--code-constant:#895b13;--code-punctuation:var(--muted);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-9:36px;--space-10:40px;--space-12:48px;--text-caption:.75rem;--text-label:.8125rem;--text-body:1rem;--text-code:.875rem;--text-prose:1.125rem;--text-post:clamp(1.125rem, 1.6vw, 1.25rem);--text-heading:clamp(1.375rem, 2vw, 1.5rem);--text-title:clamp(1.625rem, 3vw, 2.25rem);--tracking-heading:-.035em;--leading-heading:1.4;--content-gutter:var(--space-8);--section-space:var(--space-12);--row-space:var(--space-6);--reading-width:85ch;--control-height:44px;--weight-regular:400;--weight-semibold:600;--leading-ui:1.5;--leading-body:1.8;--leading-prose:1.7;color-scheme:light;--mono:var(--font-mono,monospace);--sans:var(--font-body,sans-serif);--shadow-control:inset 1px 1px var(--shine), inset -1px -1px var(--shade), 2px 2px 0 var(--shadow);--shadow-control-active:inset 1px 1px var(--accent-light), inset -1px -1px var(--accent-hover), 2px 2px var(--shadow);--shadow-control-pressed:inset 1px 1px var(--accent-hover);--shadow-panel:inset 0 0 0 2px var(--shine), 4px 4px var(--shadow);--shadow-inset:inset 1px 1px var(--shine);--shadow-code:2px 2px var(--shadow);--bevel:var(--shadow-control)}:root[data-palette-mode=dark]{--code-keyword:var(--secondary);--code-type:#8bd4d7;--code-string:#a2d6a1;--code-constant:#e6c078}*{box-sizing:border-box}html{background:var(--page);background-image:radial-gradient(var(--dots) 1px, transparent 1px);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;background-size:6px 6px}body{min-width:320px;margin:0}a{color:var(--link-color);text-underline-offset:var(--link-underline-offset);text-decoration-line:underline;text-decoration-thickness:var(--link-underline-thickness)}a,a span{text-decoration-style:dashed;text-decoration-color:color-mix(in srgb, currentColor 80%, transparent)}a:hover{color:var(--link-hover-color)}.link-arrow{position:relative;top:-.12em}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:var(--selection);color:var(--ink)}h1,h2,h3{font-family:var(--mono)}.site-shell{max-width:1060px;padding:0 var(--space-8);margin:0 auto}.site-header{margin:var(--space-6) 0 var(--space-5);padding:var(--space-5) var(--space-6);background:var(--paper);border:1px solid var(--border);box-shadow:var(--shadow-control);justify-content:space-between;align-items:center;gap:var(--space-5);min-height:96px;display:flex}.wordmark{--subtitle-size:var(--text-caption);--icon-size:42px;align-items:center;gap:var(--space-3);line-height:1.2;font-family:var(--mono);font-weight:var(--weight-semibold);font-size:var(--text-body);color:var(--ink);text-decoration-line:none;display:flex}.wordmark small{line-height:1.4;font-weight:var(--weight-regular);font-size:var(--subtitle-size);color:var(--ink);margin-top:var(--space-1);display:block}.site-computer{width:calc(var(--icon-size) * 22 / 21);height:var(--icon-size);flex-shrink:0}.header-navigation{align-items:flex-end;gap:var(--space-3);flex-direction:column;display:flex}.site-header nav,.site-footer nav{gap:var(--space-2);align-items:center;display:flex}.button-link,button{min-height:var(--control-height);background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-control);padding:var(--space-2) var(--space-3);color:var(--ink);font:var(--text-label)/var(--leading-ui) var(--mono);justify-content:center;align-items:center;text-decoration-line:none;display:inline-flex}.main-navigation a:hover,button:hover:not(:disabled){background:var(--soft)}.main-navigation .theme-toggle{width:var(--control-height);height:var(--control-height);color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle svg{width:16px;height:16px}.theme-toggle .sun-icon{color:var(--secondary);display:none}:root[data-palette-mode=dark] .theme-toggle .sun-icon{display:block}:root[data-palette-mode=dark] .theme-toggle .moon-icon{display:none}.theme-toggle[hidden]{visibility:hidden}.main-navigation a[aria-current]{background:var(--accent);border-color:var(--accent-hover);color:var(--on-accent);box-shadow:var(--shadow-control-active)}.site-header .social-links{gap:var(--space-4)}.social-links a{padding:var(--space-1) 0;font:var(--text-label)/var(--leading-ui) var(--mono)}main,.site-footer{background:var(--paper);border:1px solid var(--border);box-shadow:var(--shadow-panel)}.window-bar{justify-content:space-between;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--line);background:var(--bar);box-shadow:inset 1px 1px var(--shine);font:var(--text-label) var(--mono);color:var(--muted);padding:11px 17px;display:flex}.window-marks{white-space:pre;letter-spacing:7px;font-size:var(--text-meta)}.status-pixel{background:var(--led);width:7px;height:7px;margin-right:var(--space-2);display:inline-block}.window-content{padding:0 var(--content-gutter) var(--space-8)}.intro{align-items:center;gap:var(--space-6);padding:var(--section-space) 0;grid-template-columns:minmax(0,1fr) 288px;display:grid}.eyebrow{font:var(--text-label)/var(--leading-body) var(--mono);text-transform:uppercase;letter-spacing:.09em;color:var(--secondary);margin:0 0 var(--space-4)}.intro h1{text-wrap:balance;font:var(--weight-semibold) var(--text-title)/var(--leading-heading) var(--mono);letter-spacing:var(--tracking-heading);margin:0 0 var(--space-5)}.intro-description{text-wrap:balance;font-size:var(--text-body);line-height:var(--leading-body);color:var(--muted);margin:0 0 var(--space-4)}.computer-scene{text-align:center;padding-top:var(--space-3)}.intro>.computer-scene{align-self:start;padding-top:0}.pixel-computer{width:100%;max-width:288px;height:auto;image-rendering:pixelated;display:block}.computer-scene>span{font:var(--text-caption)/1.6 var(--mono);color:var(--muted);margin-top:var(--space-3);display:block}.section-heading{justify-content:space-between;align-items:center;gap:var(--space-4);border:1px solid var(--line);background:var(--soft);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-inset);flex-wrap:wrap;display:flex}.section-heading h2{font:var(--weight-regular) var(--text-label) var(--mono);margin:0}.section-heading a{font:var(--text-label) var(--mono);color:var(--link-color);text-decoration-line:underline}.post-list{margin:0;padding:0;list-style:none}.post-card{gap:var(--space-6);border-bottom:1px solid var(--rule);padding:var(--row-space) 0;grid-template-columns:126px minmax(0,1fr);display:grid;position:relative}.post-card:last-child{border-bottom:0}.post-card time{padding-top:var(--space-1);font:var(--text-caption)/var(--leading-body) var(--mono);color:var(--muted)}.post-card h2,.post-title{font:var(--weight-semibold) var(--text-post)/1.45 var(--mono);letter-spacing:var(--tracking-heading)}.post-card h2{margin:0 0 var(--space-2)}.post-title{color:var(--ink);text-decoration-line:none}.post-title:is(:hover,:focus-visible){color:var(--accent);text-decoration-line:underline}:is(.post-card,.archive-year li) .post-title:after{content:"";position:absolute;inset:0}:is(.post-card,.archive-year li) .post-title:focus-visible{outline:none}:is(.post-card,.archive-year li) .post-title:focus-visible:after{outline:2px solid var(--accent);outline-offset:4px}.post-card p{min-width:0;font-size:var(--text-body);line-height:var(--leading-body);color:var(--muted);flex:1;margin:0}.read-link{padding-block:var(--space-3);min-height:var(--control-height);font:var(--text-label) var(--mono);display:inline-block}.pagination .button-link{background:var(--soft);width:fit-content;color:var(--accent)}.pagination a:hover{background:var(--accent);border-color:var(--accent-hover);color:var(--on-accent);box-shadow:var(--shadow-control-active)}.pagination a:active{box-shadow:var(--shadow-control-pressed);transform:translate(1px,1px)}.pagination{justify-content:space-between;align-items:center;gap:var(--space-4);border-top:1px dashed var(--line);padding-top:var(--space-6);margin-top:var(--space-1);color:var(--muted);font:var(--text-label)/var(--leading-body) var(--mono);display:flex}.site-footer{justify-content:space-between;align-items:center;gap:var(--space-5);margin:var(--space-5) 0 var(--space-6);padding:var(--space-4) var(--content-gutter);font:var(--text-label)/var(--leading-body) var(--mono);color:var(--ink);flex-wrap:wrap;display:flex}.site-footer nav{column-gap:var(--space-4);row-gap:var(--space-2);flex-wrap:wrap}.site-footer>span{align-items:center;gap:var(--space-2);display:inline-flex}.site-footer>span .status-pixel{margin-right:0}.site-footer a{min-height:var(--control-height);align-items:center;display:inline-flex}.page-heading{padding:var(--section-space) 0 var(--space-8)}.page-heading h1{font:var(--weight-semibold) var(--text-title)/var(--leading-heading) var(--mono);letter-spacing:var(--tracking-heading);margin:0 0 var(--space-4)}.page-heading p:not(.eyebrow){font-size:var(--text-prose);line-height:var(--leading-body);color:var(--muted)}.back-link{padding-block:var(--space-3);min-height:var(--control-height);margin-bottom:var(--space-6);font:var(--text-label) var(--mono);color:var(--link-color);display:inline-block}.article{font-size:var(--text-prose);max-width:var(--reading-width);margin:0 auto}.article-header{padding:var(--space-8) 0;border-bottom:1px solid var(--rule);margin-bottom:var(--space-8)}.article-meta{gap:var(--space-3);font:var(--text-caption)/var(--leading-body) var(--mono);color:var(--muted);flex-wrap:wrap;display:flex}.article-header h1{font:var(--weight-semibold) var(--text-title)/var(--leading-heading) var(--mono);letter-spacing:var(--tracking-heading);margin:var(--space-5) 0 var(--space-6);overflow-wrap:break-word}.tags{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.tags a{min-height:36px;padding:var(--space-1) var(--space-2);background:var(--soft);border:1px solid var(--line);font:var(--text-caption)/var(--leading-ui) var(--mono);color:var(--link-color);align-items:center;text-decoration-line:none;display:flex}.tags a:hover{background:var(--paper);color:var(--link-hover-color)}.prose{font:var(--text-prose)/var(--leading-prose) var(--sans);overflow-wrap:break-word}.prose p,.prose ul,.prose ol{margin:0 0 1.5em}.prose h1,.prose h2{font:var(--weight-semibold) var(--text-heading)/var(--leading-ui) var(--mono);letter-spacing:var(--tracking-heading);margin:var(--section-space) 0 var(--space-4)}.about .prose>:first-child{margin-top:0}.prose h3{font:var(--weight-semibold) var(--text-post)/var(--leading-heading) var(--mono);margin:var(--space-8) 0 var(--space-4)}.prose li{padding-left:.15em}.prose img{max-width:100%;height:auto;margin:var(--space-7) auto;display:block}.prose blockquote{margin:var(--space-6) 0;border-left:3px solid var(--line);padding:var(--space-4);background:var(--soft);color:var(--muted)}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}.prose blockquote :is(ul,ol){padding-inline-start:1.25em}.prose blockquote li+li{margin-top:var(--space-2)}.prose code{font:.875em/var(--leading-body) var(--mono);background:var(--soft);padding:.15em .3em}.prose pre{border:1px solid var(--line);max-width:100%;box-shadow:var(--shadow-code);padding:var(--space-5);margin:var(--space-7) 0;font-size:var(--text-code);line-height:var(--leading-body);overflow-x:auto}.prose pre code{font-family:var(--mono);font-variant-ligatures:contextual;font-size:inherit;line-height:inherit;white-space:pre;background:0 0;padding:0}.prose table{border-collapse:collapse;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--rule);padding:var(--space-2) var(--space-3)}.prose th{background:var(--soft)}.prose hr{border:0;border-top:1px dashed var(--line);margin:var(--space-9) 0}.prose .footnotes{border-top:1px solid var(--rule);padding-top:var(--space-6);margin-top:var(--space-10);font-size:var(--text-label)}.post-navigation{gap:var(--space-6);border-top:1px solid var(--rule);padding-top:var(--space-4);margin-top:var(--space-7);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.post-navigation a{gap:var(--space-1);color:var(--secondary);font:var(--weight-regular) var(--text-body)/var(--leading-ui) var(--sans);flex-direction:column;text-decoration-line:none;display:flex}.post-navigation a[rel=next]{text-align:right;grid-column:2}.post-navigation a:is(:hover,:focus-visible)>span{color:var(--accent);text-decoration-line:underline}.post-navigation small{color:var(--muted);font:var(--text-label)/var(--leading-ui) var(--mono)}.post-navigation small span{color:var(--secondary)}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button[aria-busy=true]{cursor:wait}.archive-year{gap:var(--space-5);padding:var(--space-6) 0;border-top:1px solid var(--rule);grid-template-columns:90px minmax(0,1fr);display:grid}.archive-year h2{font:var(--weight-semibold) var(--text-post) var(--mono);color:var(--accent);margin:0}.archive-year ul{margin:0;padding:0;list-style:none}.archive-year li{padding-bottom:var(--space-6);position:relative}.archive-year time{font:var(--text-caption) var(--mono);color:var(--muted);margin-top:var(--space-2);display:block}.category-list{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.category-list a{justify-content:space-between;align-items:center;gap:var(--space-4);border-bottom:1px solid var(--rule);padding:var(--space-5) var(--space-2);font:var(--text-body) var(--mono);text-decoration-line:none;display:flex}.category-count{font-size:var(--text-label);color:var(--muted);white-space:nowrap}.category-list a:is(:hover,:focus-visible)>span:first-child{color:var(--accent);text-decoration-line:underline}.not-found{min-height:55vh}.skip-link{background:var(--paper);border:1px solid var(--accent);padding:var(--space-3);z-index:2;position:absolute;top:-100px;left:16px}.skip-link:focus{top:12px}@media (width<=760px){:root{--content-gutter:var(--space-6);--section-space:var(--space-8)}.site-shell{padding:0 var(--space-4)}.site-header{padding:var(--space-4);gap:var(--space-4);flex-wrap:wrap}.post-card{gap:var(--space-4);grid-template-columns:108px minmax(0,1fr)}.intro{gap:var(--space-4);grid-template-columns:minmax(0,1fr) 144px}.site-footer{padding:var(--space-4) var(--content-gutter)}}@media (width<=540px){:root{--content-gutter:var(--space-4);--text-prose:1rem;--row-space:var(--space-6)}.site-shell{padding:0 var(--space-3)}.site-header{margin-top:var(--space-4);margin-bottom:var(--space-4);gap:var(--space-3)}.wordmark{font-size:var(--text-body)}.header-navigation{align-items:flex-start;width:100%}.main-navigation{width:100%}.main-navigation .theme-toggle{margin-left:auto}.intro{padding:var(--space-6) 0;display:block;position:relative}.intro h1{margin-bottom:var(--space-4)}.intro-description{margin-bottom:var(--space-2)}.intro>.computer-scene{width:144px;margin:var(--space-4) 0 0 auto;padding:0}.intro>.computer-scene>span{display:none}.eyebrow{margin-bottom:var(--space-3)}.section-heading{padding:var(--space-3);gap:var(--space-2) var(--space-4)}.section-heading a{padding-block:var(--space-1)}.site-footer{align-items:flex-start;gap:var(--space-2);flex-direction:column}.pagination{gap:var(--space-3);flex-wrap:wrap}.post-card{gap:var(--space-2);grid-template-columns:minmax(0,1fr)}.post-card time{padding-top:0}.article-meta{gap:var(--space-2)}.prose pre{padding:var(--space-4)}.post-navigation{grid-template-columns:minmax(0,1fr)}.post-navigation a[rel=next]{text-align:left;grid-column:1}.archive-year{gap:var(--space-4);grid-template-columns:minmax(0,1fr)}.category-list a{font-size:var(--text-body);gap:var(--space-3)}}@media print{html,body{background:#fff}.site-shell{max-width:none;padding:0}main{box-shadow:none;border:0}.site-header nav,.window-bar,.post-navigation,.computer-scene{display:none}.window-content{padding:0}}@media (width<=540px){.window-bar{font-size:var(--text-caption);padding:10px 13px}.window-marks{font-size:var(--text-label);letter-spacing:4px}}
