:root{--c-black:#1a1a1a;--c-white:#e1e1e1;--c-grey:#898989;--c-purple:#b462ff;--c-fuschia:#ff45b4;--c-blue:#18b6ff;--c-green:#1beb9e;--c-orange:#ff9528;--c-yellow:#dddd25;--accent:var(--c-blue);--sidebar-width:17rem;--measure:46rem;--line:1.6em;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", "DejaVu Sans Mono", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.accent-green{--accent:var(--c-green)}.accent-blue{--accent:var(--c-blue)}.accent-orange{--accent:var(--c-orange)}.accent-fuchsia{--accent:var(--c-fuschia)}.accent-purple{--accent:var(--c-purple)}.accent-yellow{--accent:var(--c-yellow)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--c-black)}body{background:var(--c-black);color:var(--c-white);font-family:var(--font-mono);font-size:15px;font-weight:400;line-height:var(--line);letter-spacing:.01em;margin:0}@media (min-width:1024px){body{font-size:16px}}::selection{color:#000;background:var(--c-grey)}a{color:var(--accent);text-decoration:none}a:hover,a:focus-visible{color:var(--c-black);background:var(--accent);box-shadow:.4ch 0 0 0 var(--accent), -.3ch 0 0 0 var(--accent);outline:none}:focus-visible{outline:1px solid var(--accent);outline-offset:3px}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}h1,h2,h3{color:var(--c-white);font-size:1em;font-weight:400}ul,ol{padding:0;list-style:none}img{max-width:100%;height:auto;display:block}.skip-link{position:absolute;top:-10rem;left:1rem}.skip-link:focus{background:var(--c-black);color:var(--c-white);z-index:10;padding:.25rem .5rem;top:1rem}.grey{color:var(--c-grey)}.comment:before{content:"// ";color:var(--c-grey)}.bracket:before{content:"["}.bracket:after{content:"]"}.layout{min-height:100vh}.sidebar{padding:1.5rem 1.25rem}.site-name{color:var(--c-green);font-size:clamp(2rem,8vw,2.6rem);line-height:1.15}.site-name:hover,.site-name:focus-visible{color:var(--c-black)}.site-name:after{content:"_";margin-left:.1ch;animation:1.2s steps(2,start) infinite blink}.site-title{margin-top:.25rem}.nav-list{flex-wrap:wrap;gap:.25rem .9ch;margin-top:.75rem;display:flex}.rule{border-top:1px dashed var(--c-grey);margin:1.25rem 0}.episode-list{display:none}.episode-list li+li{margin-top:.1rem}.episode-list a{color:var(--accent);font-style:italic}.content{flex-direction:column;min-height:100vh;display:flex}.main{width:100%;max-width:var(--measure);flex:1;margin:0 auto;padding:1.5rem 1.25rem 2rem}@media (min-width:1280px){.main{max-width:68rem}}@media (min-width:900px){.layout{grid-template-columns:var(--sidebar-width) 1fr;display:grid}.sidebar{width:var(--sidebar-width);padding:2.5rem 1.5rem;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.nav-list{flex-direction:column;gap:.4rem}.episode-list{display:block}.content{grid-column:2}.main{padding:2.5rem 2.5rem 3rem}}.page-title{color:var(--c-white);font-size:clamp(2.2rem,9vw,3.4rem);line-height:1.1}.page-lead{color:var(--c-grey);margin-top:.25rem}.episode-title{color:var(--accent);font-size:1.6em;font-style:italic}.section{margin-top:2.25rem}.section-title{color:var(--accent);margin-bottom:.5rem;font-size:1.7rem;line-height:1.3}.prose p+p,.prose ul+p,.prose p+ul,.prose ol+p,.prose p+ol{margin-top:1em}.prose ul,.prose ol{padding-left:1.5em;list-style:outside}.prose li+li{margin-top:.25em}.prose code{color:var(--c-white);font-family:inherit}.prose pre{border:1px dashed var(--c-grey);padding:.75rem 1rem;overflow-x:auto}.prose a{color:var(--accent);text-underline-offset:.2em;text-decoration:underline}.portrait{object-fit:cover;border:1px dashed var(--c-grey);background:var(--c-black);width:8rem;height:8rem;margin-bottom:1.5rem;display:block}.intro{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;display:flex}.intro-text{flex-direction:column;align-items:center;display:flex}@media (min-width:640px){.intro{text-align:left;flex-direction:row;justify-content:space-between;align-items:center;gap:2rem}.intro-text{align-items:flex-start}}.intro .portrait{flex-shrink:0;margin-bottom:0}.entry+.entry{margin-top:1rem}.entry-meta{color:var(--c-grey)}.entry-title{color:var(--c-white)}.skill-list li+li{margin-top:.1rem}.skill-bar{color:var(--c-green);white-space:pre}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.index>li+li{margin-top:.3rem}.index-meta{color:var(--c-grey);margin-left:.75rem}.meta-block{margin-top:1.25rem}.meta-block dl{grid-template-columns:max-content 1fr;gap:.2rem 1.5rem;display:grid}.meta-block dt{color:var(--c-grey)}.meta-block dd{color:var(--c-white)}.project-body{margin-top:1.5rem}.back-link{margin-top:2rem;display:inline-block}.contact-list li+li{margin-top:.25rem}.action-list{flex-wrap:wrap;gap:.25rem .9ch;margin-top:1rem;display:flex}@keyframes blink{to{visibility:hidden}}@media (prefers-reduced-motion:reduce){.site-name:after{animation:none}}.episode-link{color:var(--accent);font-style:italic}.skill-name{min-width:16ch;display:inline-block}.scramble-pending .layout *{color:#0000!important;text-shadow:none!important}.section-block{scroll-margin-top:1.5rem}.section-block+.section-block{margin-top:4rem}.project summary{cursor:pointer;grid-template-columns:4ch minmax(0,1fr) 6ch;align-items:baseline;list-style:none;display:grid}.project summary::-webkit-details-marker{display:none}.project summary .toggle{color:var(--c-grey)}.project summary .toggle-open,.project[open] summary .toggle-closed{display:none}.project[open] summary .toggle-open{display:inline}.project summary .episode-link{overflow-wrap:anywhere;min-width:0}.project summary .index-meta{text-align:right;margin-left:0}.project summary:hover .episode-link,.project summary:focus-visible .episode-link{color:var(--c-black);background:var(--accent);box-shadow:.4ch 0 0 0 var(--accent), -.3ch 0 0 0 var(--accent)}.project summary:focus-visible{outline:1px solid var(--accent);outline-offset:3px}.project-detail{margin-top:.5rem;padding-left:4ch}.project-detail .page-lead{margin-top:0}p,li,dd,a{overflow-wrap:anywhere}@media (max-width:640px){.main{padding:1.5rem 1rem 2rem}.sidebar{padding:1.25rem 1rem}.section{margin-top:1.75rem}.section-block+.section-block{margin-top:3rem}.skill-name{min-width:0;display:block}.skill-bar{font-size:.85em}.project-detail{padding-left:2ch}.project summary{grid-template-columns:4ch minmax(0,1fr)}.project summary .index-meta{text-align:left;grid-column:2}.meta-block dl{grid-template-columns:max-content minmax(0,1fr);gap:.2rem 1rem}.action-list{gap:.5rem 1.2ch}}
