.hit-counter{display:inline-flex;gap:2px;vertical-align:-.15em}.hit-counter .digit{display:inline-block;min-width:1.1em;padding:.05em 0;text-align:center;background:var(--card);border:1px solid var(--faint);color:var(--ink);line-height:1.4}:root{--paper: #f2f1ec;--ink: #1c1c19;--muted: #71706a;--faint: #dcdbd2;--link: #2323c8;--link-visited: #6d2fb4;--card: #eceae3;--px: 4px}@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-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)}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:baseline;gap:.5rem}.posts .favicon{width:16px;height:16px;border-radius:3px;align-self:center;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;border-bottom:1px dotted var(--faint);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{border-top:1px dotted var(--faint);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}}
