:root{--font-display:"VT323", "Courier New", monospace;--font-body:"Inconsolata", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--bg:#fff;--panel:#f3f3f1;--ink:#111;--muted:#55555d;--soft:#dadad4;--hover:#e7e7e2;--accent:#d92a52;--on-accent:#fff;--t-red:#c8424b;--t-blue:#5aaed3;--t-yellow:#f3b94a;--t-slate:#4b4d50;--t-green:#8fdd96;--t-sage:#a9b9a2;--t-orange:#b4572d;--tile-ink-dark:#111;--tile-ink-light:#fff;--fs-meta:.8125rem;--fs-small:.9375rem;--fs-body:1.125rem;--fs-lead:1.25rem;--fs-sub:1.25rem;--fs-h2:2.75rem;--fs-tile-title:2rem;--fs-display:clamp(3.75rem, 2.6rem + 4.2vw, 6.25rem);--fs-display-post:clamp(2.75rem, 2rem + 3vw, 4.5rem);--px:4px;color-scheme:light}:root[data-theme=dark]{--bg:#121214;--panel:#19191c;--ink:#f2f2ee;--muted:#a9a9b2;--soft:#2e2e33;--hover:#26262a;--accent:#ff5c80;--on-accent:#121214;color-scheme:dark}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body,h1,h2,h3,p,ul,ol,blockquote,figure{margin:0}ul,ol{padding:0;list-style:none}img{max-width:100%;height:auto}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;line-height:1.65}a{color:inherit}::selection{background:var(--accent);color:var(--on-accent)}.px{fill:currentColor;shape-rendering:crispedges;flex:none}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}[tabindex="-1"]:focus{outline:none}@media (prefers-reduced-motion:no-preference){a,button{transition:color .1s steps(2,end),background-color .1s steps(2,end),transform .1s steps(2,end),box-shadow .1s steps(2,end)}}.rule{height:var(--px);background:repeating-linear-gradient(90deg, var(--ink) 0 var(--px), transparent var(--px) calc(var(--px) * 2));border:0;margin:0}.shell{grid-template-columns:19rem minmax(0,1fr);min-height:100vh;display:grid}.sidebar{top:env(safe-area-inset-top,0px);background:var(--panel);border-right:var(--px) solid var(--ink);flex-direction:column;gap:1.5rem;height:100vh;padding-block:1.75rem 1.5rem;padding-inline:1.5rem;display:flex;position:sticky;overflow-y:auto}.side-top{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.brand{min-width:0;color:var(--ink);font-family:var(--font-display);text-transform:uppercase;align-items:center;gap:.625rem;font-size:1.75rem;line-height:.9;text-decoration:none;display:flex}.brand .px{width:1.5rem;height:1.5rem;color:var(--accent)}.theme-toggle{border:3px solid var(--ink);background:var(--bg);width:2.375rem;height:2.375rem;color:var(--ink);cursor:pointer;flex:none;place-items:center;padding:0;display:grid}.theme-toggle:hover{background:var(--hover)}.theme-toggle .px{width:1.125rem;height:1.125rem}.icon-moon,:root[data-theme=dark] .icon-sun{display:none}:root[data-theme=dark] .icon-moon{display:block}.side-intro{color:var(--muted);font-size:var(--fs-small);line-height:1.6}.side-nav{flex-direction:column;gap:.625rem;display:flex}.side-nav a{--chip:transparent;color:var(--ink);background:var(--chip);box-shadow:0 -3px 0 0 var(--chip), 0 3px 0 0 var(--chip), -3px 0 0 0 var(--chip), 3px 0 0 0 var(--chip);font-family:var(--font-display);text-transform:uppercase;align-items:center;gap:.75rem;margin-inline:-.5rem;padding:.25rem .5rem;font-size:1.625rem;line-height:1.2;text-decoration:none;display:flex}.side-nav a:hover{--chip:var(--hover)}.side-nav a[aria-current=page]{--chip:var(--ink);color:var(--bg)}.side-nav .px{width:1rem;height:1rem}.side-bottom,.page-foot{font-size:var(--fs-meta);color:var(--muted);flex-direction:column;gap:.875rem;display:flex}.side-bottom{margin-top:auto}.contact-links{flex-direction:column;gap:.5rem;display:flex}.contact-link{color:var(--ink);font-size:var(--fs-small);align-self:flex-start;align-items:center;gap:.625rem;text-decoration:none;display:inline-flex}.contact-link:hover{color:var(--accent)}.contact-link .px{width:1rem;height:1rem}.page-foot{display:none}.main{min-width:0;padding-block:4rem;padding-inline:2.5rem}.content{max-width:46rem;margin-inline:auto}.view{flex-direction:column;gap:3rem;display:flex}.intro{flex-direction:column;gap:.75rem;display:flex}.display{font-family:var(--font-display);font-weight:400;font-size:var(--fs-display);text-transform:uppercase;color:var(--ink);text-shadow:.045em .045em 0 var(--accent);text-wrap:balance;line-height:.85}.display--post{font-size:var(--fs-display-post);line-height:.9}.subtitle{font-size:var(--fs-sub);color:var(--muted);text-wrap:balance;line-height:1.5}.lead{font-size:var(--fs-lead);flex-direction:column;gap:1em;line-height:1.65;display:flex}.lead a,.prose a{color:var(--accent);text-underline-offset:.2em;text-decoration:underline 2px}.lead a:hover,.prose a:hover{background:var(--accent);color:var(--on-accent);text-decoration:none}.section{background:repeating-linear-gradient(90deg, var(--ink) 0 var(--px), transparent var(--px) calc(var(--px) * 2)) top left / 100% var(--px) no-repeat;flex-direction:column;gap:1.75rem;padding-top:2.5rem;display:flex}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 1.5rem;display:flex}.h2{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h2);text-transform:uppercase;line-height:.9}.bubble{background:var(--accent);color:var(--on-accent);box-shadow:0 -3px 0 0 var(--accent), 0 3px 0 0 var(--accent), -3px 0 0 0 var(--accent), 3px 0 0 0 var(--accent);font-size:var(--fs-meta);letter-spacing:.08em;text-transform:uppercase;margin:0 3px .75rem;padding:.4rem .875rem;font-weight:700;text-decoration:none;display:inline-block;position:relative}.bubble:before,.bubble:after{content:"";background:var(--accent);position:absolute;left:50%}.bubble:before{width:12px;height:4px;bottom:-7px;transform:translate(-50%)}.bubble:after{width:4px;height:4px;bottom:-11px;transform:translate(-50%)}.bubble:hover{transform:translateY(-2px)}.tiles{grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));gap:1.5rem;display:grid}.tile{display:flex}.tile-c0{--tile-bg:var(--t-red);--tile-ink:var(--tile-ink-light)}.tile-c1{--tile-bg:var(--t-blue);--tile-ink:var(--tile-ink-dark)}.tile-c2{--tile-bg:var(--t-yellow);--tile-ink:var(--tile-ink-dark)}.tile-c3{--tile-bg:var(--t-slate);--tile-ink:var(--tile-ink-light)}.tile-c4{--tile-bg:var(--t-green);--tile-ink:var(--tile-ink-dark)}.tile-c5{--tile-bg:var(--t-sage);--tile-ink:var(--tile-ink-dark)}.tile-c6{--tile-bg:var(--t-orange);--tile-ink:var(--tile-ink-light)}.tile-link{background:var(--tile-bg);min-height:15.5rem;color:var(--tile-ink);flex-direction:column;flex:1;justify-content:space-between;gap:2.5rem;padding:1rem 1.125rem 1.25rem;text-decoration:none;display:flex}.tile-link:hover{box-shadow:4px 4px 0 0 var(--ink), 8px 8px 0 0 var(--accent);transform:translate(-4px,-4px)}.tile-top{font-size:var(--fs-meta);font-variant-numeric:tabular-nums;letter-spacing:.04em;justify-content:space-between;gap:1rem;display:flex}.tile-body{flex-direction:column;gap:.375rem;display:flex}.tile-kicker{font-size:var(--fs-meta);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.tile-title{font-family:var(--font-display);font-weight:400;font-size:var(--fs-tile-title);text-wrap:balance;line-height:.95}.tile-desc{font-size:var(--fs-small);line-height:1.5}.tile-next{border:var(--px) solid var(--ink);text-align:center;min-height:15.5rem;font-family:var(--font-display);text-transform:uppercase;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.875rem;padding:1.25rem;font-size:1.75rem;line-height:1;display:flex}.tile-next .px{width:2rem;height:2rem;color:var(--accent)}.cursor{color:var(--accent)}@media (prefers-reduced-motion:no-preference){.cursor{animation:1s step-end infinite blink}}@keyframes blink{50%{opacity:0}}.empty{color:var(--muted)}.post-head{flex-direction:column;gap:1.25rem;display:flex}.back,.post-meta{font-size:var(--fs-meta);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.back{align-self:flex-start;text-decoration:none}.back:hover{color:var(--accent)}.post-meta{flex-wrap:wrap;align-items:center;gap:.25rem .625rem;display:flex}.prose{flex-direction:column;gap:1.2em;max-width:36em;display:flex}.prose h2,.prose h3{font-family:var(--font-display);text-transform:uppercase;text-wrap:balance;padding-top:.5em;font-weight:400;line-height:.95}.prose h2{font-size:2.25rem}.prose h3{font-size:1.75rem}.prose ul,.prose ol{flex-direction:column;gap:.4em;padding-left:1.5rem;display:flex}.prose ul{list-style:square}.prose ol{list-style:decimal}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:var(--px) solid var(--accent);color:var(--muted);padding-left:1.25rem}.prose blockquote p+p{margin-top:.75em}.prose hr{height:var(--px);background:repeating-linear-gradient(90deg, var(--ink) 0 var(--px), transparent var(--px) calc(var(--px) * 2));border:0}.prose code{background:var(--hover);padding:.1em .3em;font-size:.95em}.prose sup{font-size:.7em}.prose sup a{text-decoration:none}.prose table{border-collapse:collapse;width:100%;font-size:var(--fs-small);font-variant-numeric:tabular-nums;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;white-space:nowrap;border-bottom:1px solid var(--soft);padding:.55rem 1rem .55rem 0}.prose th{font-weight:700;font-size:var(--fs-meta);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);vertical-align:bottom;border-bottom:3px solid var(--ink)}.prose .footnotes{font-size:var(--fs-small);color:var(--muted);background:repeating-linear-gradient(90deg, var(--ink) 0 var(--px), transparent var(--px) calc(var(--px) * 2)) top left / 100% var(--px) no-repeat;margin-top:.5em;padding-top:1rem}.prose .footnotes h2{padding-top:0;font-size:1.5rem}.prose .footnotes ol{margin-top:.75rem}@media (width<=52rem){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{border-right:0;border-bottom:var(--px) solid var(--ink);gap:.875rem;height:auto;padding-block:1rem .875rem;padding-inline:1.25rem;position:static;overflow:visible}.sidebar .rule,.side-intro,.side-bottom{display:none}.side-nav{flex-direction:row;gap:1rem;padding-inline:.5rem}.side-nav a{margin-inline:0;font-size:1.5rem}.main{padding-block:2.5rem;padding-inline:1.25rem}.page-foot{background:repeating-linear-gradient(90deg, var(--ink) 0 var(--px), transparent var(--px) calc(var(--px) * 2)) top left / 100% var(--px) no-repeat;margin-top:3.5rem;padding-top:1.5rem;display:flex}:root{--fs-lead:1.1875rem;--fs-sub:1.125rem;--fs-h2:2.375rem}}@media (width<=40rem){.prose th,.prose td{padding-right:.5rem}.prose th{white-space:normal}}
