:root{--bg-color:#000;--bg-hover:#1f293780;--text-main:#d1d5db;--text-heading:#efefef;--text-muted:#9ca3af;--text-dim:#6b7280;--accent-cyan:#22d3ee;--accent-cyan-hover:#67e8f9;--accent-cyan-dim:#22d3ee33;--accent-cyan-light:#22d3ee80;--accent-fuchsia:#d946ef;--accent-fuchsia-light:#e879f9;--accent-fuchsia-dim:#d946ef33;--accent-yellow:yellow;--accent-green:#0f0;--border-color:#1f2937;--code-bg:#0d0d0d;--code-header-bg:#1a1a1a;--shadow-dark:#000c;--shadow-light:#ffffff0d;--font-sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-2xl:2.25rem;--text-3xl:3rem;--fw-light:300;--fw-bold:800;--lh-title:4.5rem;--lh-subtitle:2.8rem;--lh-content:1.75em;--lh-code-block:1.34rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:2.5rem;--space-3xl:3rem;--space-4xl:3.5rem;--container-max-width:48rem;--radius-sm:.25rem;--radius-md:.5rem;--border-thin:1px solid var(--border-color);--transition-fast:.2s ease}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);font-family:var(--font-sans);line-height:var(--lh-content);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;min-height:100vh;display:flex}::selection{background-color:var(--accent-fuchsia);color:var(--bg-color)}.container{width:100%;max-width:var(--container-max-width);padding:0 var(--space-lg);margin:0 auto}main{width:100%;max-width:var(--container-max-width);padding:0 var(--space-lg) var(--space-xl) var(--space-lg);margin:0 auto}h1,h2,h3,h4{color:var(--text-heading);font-weight:var(--fw-bold)}.blog-title{line-height:var(--lh-title)}.blog-subtitle{font-size:var(--text-2xl);line-height:var(--lh-subtitle)}a{color:var(--accent-cyan);transition:color var(--transition-fast), text-decoration-color var(--transition-fast);text-decoration:none}nav{padding:var(--space-xl) var(--space-lg);width:100%;max-width:var(--container-max-width);border-bottom:var(--border-thin);justify-content:space-between;align-items:center;margin:0 auto;display:flex}nav.toc{border-bottom:none;margin:0 0 1.2rem;padding:0;display:block;& h2{margin-top:1rem}& ol{list-style:none}}.nav-brand{align-items:center;gap:var(--space-sm);color:var(--accent-fuchsia);font-family:var(--font-mono);font-weight:var(--fw-bold);letter-spacing:-.05em;cursor:pointer;display:flex;&:hover{color:var(--accent-cyan)}}.nav-link{color:var(--text-dim);font-family:var(--font-mono);font-size:var(--text-sm);align-items:center;gap:var(--space-sm);display:flex;&:hover{color:var(--accent-cyan)}}.nav-links{align-items:center;gap:var(--space-lg);margin:0;padding:0;list-style:none;display:flex}header{width:100%;max-width:var(--container-max-width);padding:0 var(--space-lg);margin:0 auto}h1{font-size:var(--text-3xl);letter-spacing:-.025em;margin-bottom:var(--space-lg)}.gradient{background:linear-gradient(to right, var(--accent-cyan), var(--accent-fuchsia));color:#0000;-webkit-background-clip:text;background-clip:text}.blog-metadata{&>ul{align-items:center;gap:var(--space-md);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;margin-bottom:0;list-style:none;display:flex;&>li{align-items:center;gap:.375rem;display:flex;&:not(:last-of-type):after{content:"|";color:var(--accent-cyan-light);margin-left:.625rem}}}}.tags{gap:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);flex-wrap:wrap;flex-basis:100%;list-style:none;display:flex}.tag{padding:var(--space-xs) var(--space-sm);border:1px solid var(--accent-fuchsia-light);border-radius:var(--radius-sm);color:var(--accent-fuchsia-light);cursor:pointer;transition:all var(--transition-fast);&:hover{background-color:var(--bg-hover);border-color:var(--text-dim)}}article{& p{margin-bottom:var(--space-lg);font-size:var(--text-lg);font-weight:var(--fw-light)}& ul,& ol{margin-bottom:var(--space-lg);padding-left:0;list-style-position:inside}& li{font-size:var(--text-lg);font-weight:var(--fw-light);& p{display:inline}&>ul,&>ol{margin-top:var(--space-sm);margin-bottom:var(--space-sm);padding-left:var(--space-lg)}}& a:hover{text-underline-offset:4px;color:var(--accent-cyan-hover);text-decoration:underline}& h2{font-size:var(--text-xl);margin-top:var(--space-4xl);align-items:baseline;gap:var(--space-sm);margin-bottom:1.25rem;display:flex}}.section-num{color:var(--accent-fuchsia);font-family:var(--font-mono);font-size:1.3em}figure{margin:var(--space-3xl) 0;& img{border-radius:var(--radius-md);border:var(--border-thin);background-color:var(--code-header-bg);width:100%;height:auto;box-shadow:0 0 30px var(--shadow-dark), 0 0 0 1px var(--shadow-light);display:block}}figcaption{text-align:center;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-dim);margin-top:var(--space-md)}blockquote{border-left:2px solid var(--accent-yellow);padding:.75rem var(--space-md) .75rem 1.25rem;margin:var(--space-2xl) 0;color:var(--accent-yellow);font-style:italic}.quote,.quote-yellow{color:var(--accent-yellow)}.quote-green{color:var(--accent-green)}:not(pre)>code{color:var(--accent-fuchsia);border-radius:var(--radius-sm);font-family:var(--font-mono);font-weight:var(--fw-bold);margin:0 .1rem}.code-wrapper{margin:var(--space-2xl) 0;border-radius:var(--radius-md);position:relative}pre{border:1px solid var(--accent-fuchsia);border-radius:var(--radius-md);padding:var(--space-lg) var(--space-xl);margin:var(--space-xl) 0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-main);z-index:1;line-height:var(--lh-code-block);position:relative;overflow-x:auto}footer{gap:var(--space-md);border-top:var(--border-thin);padding:var(--space-xl) var(--space-lg);width:100%;max-width:var(--container-max-width);flex-direction:column;align-items:center;margin-top:auto;margin-left:auto;margin-right:auto;display:flex;& .footer-copy{color:var(--text-dim);font-size:var(--text-sm);font-family:var(--font-mono)}& .footer-links{gap:var(--space-lg);list-style:none;display:flex}}a:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:3px;border-radius:var(--radius-sm)}.post-content [id],article [id]{scroll-margin-top:var(--space-xl)}.post-content{counter-reset:post-h2;overflow-wrap:break-word}.post-content h2{counter-reset:post-h3;font-size:var(--text-xl);margin-top:var(--space-4xl);align-items:baseline;gap:var(--space-sm);margin-bottom:1.25rem;display:flex}.post-content h2:before{counter-increment:post-h2;content:counter(post-h2) " –";color:var(--accent-fuchsia);font-family:var(--font-mono)}.post-content h3{counter-reset:post-h4;margin-top:var(--space-3xl);margin-bottom:var(--space-md);align-items:baseline;gap:var(--space-sm);font-size:1.25rem;display:flex}.post-content h3:before{counter-increment:post-h3;content:counter(post-h2) "." counter(post-h3) " –";color:var(--accent-fuchsia);font-family:var(--font-mono)}.post-content h4{font-size:var(--text-lg);margin-top:var(--space-xl);margin-bottom:var(--space-md);align-items:baseline;gap:var(--space-sm);display:flex}.post-content h4:before{counter-increment:post-h4;content:counter(post-h2) "." counter(post-h3) "." counter(post-h4) " –";color:var(--accent-fuchsia);font-family:var(--font-mono)}.toc-num{color:var(--accent-fuchsia);font-family:var(--font-mono)}nav.toc ol{margin-bottom:var(--space-sm);padding-left:0;list-style:none}nav.toc li>ol{margin-top:var(--space-xs);margin-bottom:var(--space-xs);padding-left:var(--space-lg)}.post-content table{border-collapse:collapse;width:100%;margin:var(--space-2xl) 0;font-family:var(--font-mono);font-size:var(--text-sm);display:block;overflow-x:auto}.post-content thead{color:var(--text-heading)}.post-content th,.post-content td{border:var(--border-thin);padding:var(--space-sm) var(--space-md);text-align:left;vertical-align:top}.post-content th{background-color:var(--code-header-bg)}span.nav-link{cursor:default}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
