.hit-plaque{margin:2rem auto 2.5rem;display:flex;flex-direction:column;align-items:center;gap:.55rem;font-family:IBM Plex Mono,monospace}.hit-label{font-size:.625rem;text-transform:uppercase;letter-spacing:.22em;color:var(--muted)}.hit-counter{position:relative;display:inline-flex;gap:2px;padding:5px;background:#0a0a08;border:1px solid #000;box-shadow:inset 0 2px 8px #000000f2,0 1px #ffffff59,0 0 0 3px #3a3a34,0 2px 0 3px #222}.hit-counter .digit{display:inline-block;min-width:1.35ch;padding:.12em .18em;text-align:center;font-size:1.25rem;line-height:1.2;color:#4dff7a;background:linear-gradient(#161613,#0c0c0a 55%,#12120f);text-shadow:0 0 5px rgba(77,255,122,.85),0 0 14px rgba(77,255,122,.35);font-variant-numeric:tabular-nums}.hit-counter:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,rgba(0,0,0,.28) 2px,rgba(0,0,0,.28) 3px);pointer-events:none}@media (prefers-reduced-motion: no-preference){.hit-counter.is-loading .digit{animation:hit-flicker 1.1s steps(2) infinite}@keyframes hit-flicker{50%{opacity:.45}}}:root{--paper: #f2f1ec;--ink: #1c1c19;--muted: #71706a;--faint: #dcdbd2;--link: #2323c8;--link-visited: #6d2fb4;--card: #eceae3;--px: 4px;--notch: polygon( var(--px) 0, calc(100% - var(--px)) 0, calc(100% - var(--px)) var(--px), 100% var(--px), 100% calc(100% - var(--px)), calc(100% - var(--px)) calc(100% - var(--px)), calc(100% - var(--px)) 100%, var(--px) 100%, var(--px) calc(100% - var(--px)), 0 calc(100% - var(--px)), 0 var(--px), var(--px) var(--px) );--px-dash: linear-gradient(to right, var(--faint) 0 50%, transparent 50%);--px-dash-v: linear-gradient(var(--faint) 0 50%, transparent 50%);--px-drop: drop-shadow(calc(var(--px) * 1.5) calc(var(--px) * 1.5) 0 var(--faint))}@media (prefers-color-scheme: dark){:root{--paper: #191916;--ink: #e8e6dd;--muted: #96948a;--faint: #33322d;--link: #8f9dff;--link-visited: #c0a3ef;--card: #201f1b}}*{box-sizing:border-box}::selection{background:var(--link);color:var(--paper)}html{background:var(--paper)}body{margin:0;color:var(--ink);font-family:Newsreader,Georgia,serif;font-size:1.125rem;line-height:1.65;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;min-height:100vh}.wrap{width:100%;max-width:41rem;margin:0 auto;padding:0 1.5rem}.skip{position:absolute;left:-9999px;font-family:IBM Plex Mono,monospace;font-size:.8125rem;background:var(--ink);color:var(--paper);padding:.5rem .9rem;text-decoration:none}.skip:focus{left:1rem;top:1rem;z-index:100}header{padding:2.25rem 0 0}nav{font-family:IBM Plex Mono,monospace;font-size:.8125rem;display:flex;flex-wrap:wrap;gap:.35rem 1.4rem}nav a{color:var(--muted);text-decoration:none}nav a:hover,nav a:focus-visible{color:var(--link)}nav a[aria-current=page]{color:var(--ink)}nav .rss{margin-left:auto;display:inline-flex;align-items:center;color:#e8720c;opacity:.75}nav .rss:hover,nav .rss:focus-visible{opacity:1;color:#e8720c}nav .rss svg{display:block}.hero{padding:4rem 0 1rem}.avatar{width:56px;height:56px;border-radius:50%;border:1px solid var(--faint);display:block;margin:0 0 1.4rem}h1{font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(2.4rem,6vw,3.4rem);line-height:1.1;letter-spacing:-.01em;margin:0 0 1.25rem}.cursor{display:inline-block;width:.45em;height:.9em;margin-left:.12em;background:var(--ink);transform:translateY(.08em);animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion: reduce){.cursor{animation:none}}.hero p{margin:0;max-width:36rem;font-size:1.1875rem}main a{color:var(--link);text-decoration:underline;text-decoration-style:dotted;text-decoration-thickness:1px;text-underline-offset:.2em}main a:visited{color:var(--link-visited)}main a:hover,main a:focus-visible{text-decoration-style:solid}.px-btn{display:inline-flex;align-items:center;gap:.4rem;font-family:IBM Plex Mono,monospace;font-size:.8125rem;line-height:1;padding:.6rem 1rem;cursor:pointer;color:var(--ink);background:var(--card);border:2px solid var(--ink);clip-path:var(--notch);filter:drop-shadow(var(--px) var(--px) 0 var(--faint));text-decoration:none}.px-btn:hover{background:var(--paper)}.px-btn:focus-visible{outline:none;border-color:var(--link);box-shadow:inset 0 0 0 2px var(--link)}.px-btn:active{transform:translate(var(--px),var(--px));filter:none}.px-btn--primary{background:var(--ink);color:var(--paper);filter:drop-shadow(var(--px) var(--px) 0 var(--muted))}.px-btn--primary:hover{background:var(--link);border-color:var(--link)}.px-btn--sm{font-size:.6875rem;padding:.4rem .7rem}.px-btn[disabled],.px-btn[aria-disabled=true]{color:var(--muted);border-color:var(--faint);background:var(--card);filter:none;cursor:not-allowed}.px-field{font-family:IBM Plex Mono,monospace;font-size:.8125rem;line-height:1;color:var(--ink);background:var(--paper);border:2px solid var(--faint);clip-path:var(--notch);padding:.55rem .6rem}.px-field:hover{border-color:var(--muted)}.px-field:focus{outline:none;border-color:var(--link)}.px-frame{position:relative;background:var(--card);border:2px solid var(--ink);clip-path:var(--notch);box-shadow:inset 0 0 0 var(--px) var(--card),inset 0 0 0 calc(var(--px) + 1px) var(--faint)}.px-frame--soft{border-color:var(--faint)}.px-frame--drop{filter:drop-shadow(calc(var(--px) * 1.5) calc(var(--px) * 1.5) 0 var(--faint))}.px-frame--pins:before,.px-frame--pins:after{content:"";position:absolute;width:var(--px);height:var(--px);background:var(--muted);pointer-events:none}.px-frame--pins:before{top:calc(var(--px) * 2);left:calc(var(--px) * 2);box-shadow:var(--px) 0 var(--muted),0 var(--px) var(--muted)}.px-frame--pins:after{bottom:calc(var(--px) * 2);right:calc(var(--px) * 2);box-shadow:calc(var(--px) * -1) 0 var(--muted),0 calc(var(--px) * -1) var(--muted)}.px-media{display:block;background:var(--card);border:2px solid var(--ink);clip-path:var(--notch);filter:var(--px-drop);line-height:0}.px-media>img,.px-media>picture>img{display:block;width:100%;height:auto;border:0;clip-path:none;filter:none}.px-media>canvas{display:block;border:0;clip-path:none;filter:none}.px-code{border:2px solid var(--faint);clip-path:var(--notch);filter:drop-shadow(var(--px) var(--px) 0 var(--faint))}.px-code--inline{--px: 2px;border:1px solid var(--faint);clip-path:var(--notch)}.px-well{background:var(--paper);clip-path:var(--notch);box-shadow:inset 0 0 0 2px var(--faint),inset 0 2px 6px color-mix(in srgb,var(--ink) 12%,transparent)}.px-chip{--px: 3px;display:inline-block;font-family:IBM Plex Mono,monospace;font-size:.6875rem;text-transform:uppercase;letter-spacing:.1em;padding:.3rem .55rem;color:var(--muted);background:var(--card);border:1px solid var(--faint);clip-path:var(--notch);text-decoration:none}a.px-chip:hover,a.px-chip:focus-visible{color:var(--link);border-color:var(--muted);text-decoration:none}a.px-chip:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--link)}@media (prefers-reduced-motion: reduce){.px-btn:active{transform:none}}.px-rule{border:0;margin:3.25rem auto;width:calc(var(--px) * 23);height:calc(var(--px) * 3);position:relative;overflow:visible}.px-rule{--d1: var(--faint);--d2: var(--muted);--d3: var(--faint)}.px-rule:nth-of-type(3n+1){--d1: var(--muted);--d2: var(--faint);--d3: var(--faint)}.px-rule:nth-of-type(3n){--d1: var(--faint);--d2: var(--faint);--d3: var(--muted)}.px-rule:before{content:"";position:absolute;top:var(--px);left:0;width:var(--px);height:var(--px);background:transparent;box-shadow:calc(var(--px)*1) calc(var(--px)*-1) var(--d1),calc(var(--px)*0) 0 var(--d1),calc(var(--px)*1) 0 var(--d1),calc(var(--px)*2) 0 var(--d1),calc(var(--px)*1) var(--px) var(--d1),calc(var(--px)*11) calc(var(--px)*-1) var(--d2),calc(var(--px)*10) 0 var(--d2),calc(var(--px)*11) 0 var(--d2),calc(var(--px)*12) 0 var(--d2),calc(var(--px)*11) var(--px) var(--d2),calc(var(--px)*21) calc(var(--px)*-1) var(--d3),calc(var(--px)*20) 0 var(--d3),calc(var(--px)*21) 0 var(--d3),calc(var(--px)*22) 0 var(--d3),calc(var(--px)*21) var(--px) var(--d3)}.px-rule--dash{width:100%;height:var(--px);background:var(--px-dash) top left / calc(var(--px) * 4) var(--px) repeat-x}.px-rule--double{width:100%;height:calc(var(--px) * 2 + 2px);background:linear-gradient(var(--faint),var(--faint)) top left / 100% 2px repeat-x,var(--px-dash) bottom left / calc(var(--px) * 4) var(--px) repeat-x}.px-rule--peak{width:calc(var(--px) * 10);height:calc(var(--px) * 3)}.px-rule--peak:before{top:calc(var(--px) * 2);background:var(--faint);box-shadow:var(--px) 0 var(--faint),calc(var(--px) * 2) calc(var(--px) * -1) var(--muted),calc(var(--px) * 3) calc(var(--px) * -1) var(--muted),calc(var(--px) * 4) calc(var(--px) * -2) var(--ink),calc(var(--px) * 5) calc(var(--px) * -2) var(--ink),calc(var(--px) * 6) calc(var(--px) * -1) var(--muted),calc(var(--px) * 7) calc(var(--px) * -1) var(--muted),calc(var(--px) * 8) 0 var(--faint),calc(var(--px) * 9) 0 var(--faint)}.px-rule--dash:before,.px-rule--double:before{content:none}section{padding:.25rem 0 .5rem}.section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1.75rem}.section-label{font-family:IBM Plex Mono,monospace;font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0}.section-head .rss{display:inline-flex;align-items:center;color:#e8720c;opacity:.75}.section-head .rss:hover,.section-head .rss:focus-visible{opacity:1}.section-head .rss svg{display:block}.posts{list-style:none;margin:0;padding:0}.posts li{display:grid;grid-template-columns:6.5rem 1fr;gap:1.25rem;align-items:baseline;padding:.55rem 0}.posts time{font-family:IBM Plex Mono,monospace;font-size:.75rem;color:var(--muted);white-space:nowrap}.posts a{font-size:1.1875rem;font-weight:500;color:var(--ink);text-decoration:none}.posts a:visited{color:var(--ink)}.posts a:hover,.posts a:focus-visible{color:var(--link);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:.2em}.posts li.external{opacity:.55;transition:opacity .15s ease}.posts li.external:hover,.posts li.external:focus-within{opacity:1}.posts a.external{display:inline-flex;align-items:flex-start;gap:.5rem}.posts .favicon{width:16px;height:16px;border-radius:3px;align-self:flex-start;margin-top:.45rem;flex:none;background:#0000000a}.posts a.external:hover .favicon,.posts a.external:focus-visible .favicon{outline:1px solid var(--muted);outline-offset:1px}.more-link{display:inline-block;margin-top:1.25rem;font-family:IBM Plex Mono,monospace;font-size:.8125rem}.projects{list-style:none;margin:0;padding:0}.projects li{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;padding:.7rem 0}.projects .name{font-weight:500;font-size:1.1875rem;white-space:nowrap}.projects .name a{color:var(--ink);text-decoration:none}.projects .name a:visited{color:var(--ink)}.projects .name a:hover,.projects .name a:focus-visible{color:var(--link);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:.2em}.projects .desc{color:var(--muted);margin:0;font-size:1rem;text-align:right}.projects .desc .arrow{font-family:IBM Plex Mono,monospace;font-size:.8125rem;margin-left:.35rem}@media (max-width: 560px){.projects li{flex-direction:column;align-items:flex-start;gap:.1rem;padding:.85rem 0}.projects .desc{text-align:left}}.books-intro{margin:0 0 1.5rem;max-width:36rem;color:var(--muted);font-size:1.0625rem}.books{list-style:none;margin:0;padding:0}.books li{display:flex;align-items:baseline;gap:.8rem;padding:.45rem 0}.books .spine{flex:none;font-size:1rem;transform:translateY(-.05em)}.books .book-title{font-weight:500;font-size:1.1875rem;color:var(--ink);text-decoration:none;white-space:nowrap}.books a.book-title:visited{color:var(--ink)}.books a.book-title:hover,.books a.book-title:focus-visible{color:var(--link);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:.2em}.books .leader{flex:1;min-width:2rem;height:var(--px);background:var(--px-dash) center left / calc(var(--px) * 3) var(--px) repeat-x;transform:translateY(-.3em)}.books .subtitle{color:var(--muted);font-size:1.0625rem;text-align:right}.books li.wip .spine{filter:grayscale(1);opacity:.45}.books li.wip .book-title{color:var(--muted)}.books li.wip .subtitle{opacity:.65}@media (max-width: 560px){.books li{flex-wrap:wrap;row-gap:.05rem}.books .leader{display:none}.books .subtitle{flex-basis:100%;padding-left:1.8rem;text-align:left}}.now p{margin:0 0 1rem;max-width:36rem}.now p:last-child{margin-bottom:0}footer{margin-top:auto;padding:3.5rem 0 2.5rem}.footer-inner{background:var(--px-dash) top left / calc(var(--px) * 4) var(--px) repeat-x;padding-top:1.75rem;font-size:1rem;color:var(--muted)}.footer-inner a{color:var(--link);text-decoration:underline;text-decoration-style:dotted;text-decoration-thickness:1px;text-underline-offset:.2em}.footer-inner a:hover{text-decoration-style:solid}.colophon{font-family:IBM Plex Mono,monospace;font-size:.75rem;margin-top:1.5rem}:focus-visible{outline:2px solid var(--link);outline-offset:3px}.konami-bunny{position:fixed;bottom:18px;left:-60px;width:calc(var(--px) * 7);height:calc(var(--px) * 7);z-index:99;pointer-events:none;animation:bunny-cross 5s linear forwards}.konami-bunny .s{position:absolute;top:0;left:0;width:var(--px);height:var(--px);animation:bunny-hop .4s steps(2) infinite;box-shadow:calc(var(--px)*1) 0 var(--ink),calc(var(--px)*5) 0 var(--ink),calc(var(--px)*1) var(--px) var(--ink),calc(var(--px)*5) var(--px) var(--ink),calc(var(--px)*1) calc(var(--px)*2) var(--ink),calc(var(--px)*2) calc(var(--px)*2) var(--ink),calc(var(--px)*3) calc(var(--px)*2) var(--ink),calc(var(--px)*4) calc(var(--px)*2) var(--ink),calc(var(--px)*5) calc(var(--px)*2) var(--ink),0 calc(var(--px)*3) var(--ink),calc(var(--px)*1) calc(var(--px)*3) var(--ink),calc(var(--px)*2) calc(var(--px)*3) var(--ink),calc(var(--px)*3) calc(var(--px)*3) var(--ink),calc(var(--px)*4) calc(var(--px)*3) var(--ink),calc(var(--px)*5) calc(var(--px)*3) var(--ink),calc(var(--px)*6) calc(var(--px)*3) var(--ink),0 calc(var(--px)*4) var(--ink),calc(var(--px)*1) calc(var(--px)*4) var(--ink),calc(var(--px)*3) calc(var(--px)*4) var(--ink),calc(var(--px)*5) calc(var(--px)*4) var(--ink),calc(var(--px)*6) calc(var(--px)*4) var(--ink),0 calc(var(--px)*5) var(--ink),calc(var(--px)*1) calc(var(--px)*5) var(--ink),calc(var(--px)*2) calc(var(--px)*5) var(--ink),calc(var(--px)*3) calc(var(--px)*5) var(--ink),calc(var(--px)*4) calc(var(--px)*5) var(--ink),calc(var(--px)*5) calc(var(--px)*5) var(--ink),calc(var(--px)*6) calc(var(--px)*5) var(--ink),calc(var(--px)*1) calc(var(--px)*6) var(--ink),calc(var(--px)*2) calc(var(--px)*6) var(--ink),calc(var(--px)*3) calc(var(--px)*6) var(--ink),calc(var(--px)*4) calc(var(--px)*6) var(--ink),calc(var(--px)*5) calc(var(--px)*6) var(--ink)}@keyframes bunny-cross{to{transform:translate(calc(100vw + 120px))}}@keyframes bunny-hop{0%,to{transform:translateY(0)}50%{transform:translateY(calc(var(--px) * -3))}}@media (max-width: 480px){.posts li{grid-template-columns:1fr;gap:.1rem}.hero{padding-top:3.25rem}}
