:root{--bg-0:#06070a;--bg-1:#0b0d11;--bg-2:#12151b;--bg-3:#1a1e26;--line:#242a33;--line-strong:#343c48;--text-0:#e7eaee;--text-1:#a7afbb;--text-2:#6c7480;--accent-cyan:#5fd0c4;--accent-cyan-dim:#36766e;--accent-violet:#9d8cf0;--accent-violet-dim:#564c8a;--accent-amber:#dcb567;--accent-amber-dim:#7d6638;--accent-rose:#d9839c;--accent-rose-dim:#7a4a5a;--font-serif:ui-serif, Georgia, "Iowan Old Style", "Times New Roman", serif;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--fs-meta:clamp(.72rem, .7rem + .1vw, .8rem);--fs-body:clamp(.95rem, .92rem + .15vw, 1.05rem);--fs-lede:clamp(1.05rem, 1rem + .3vw, 1.2rem);--fs-h3:clamp(1.1rem, 1rem + .5vw, 1.35rem);--fs-h2:clamp(1.35rem, 1.15rem + 1vw, 1.75rem);--fs-h1:clamp(1.7rem, 1.3rem + 2vw, 2.5rem);--fs-hero:clamp(2rem, 1.4rem + 3vw, 3.4rem);--space-1:.25rem;--space-2:.5rem;--space-3:.875rem;--space-4:1.25rem;--space-5:2rem;--space-6:3rem;--space-7:4.5rem;--space-8:7rem;--measure:64ch;--radius:4px;--radius-lg:8px;--ease:cubic-bezier(.2, .7, .2, 1);--dur:.18s}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-text-size-adjust:100%}img,canvas,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}body{background:var(--bg-1);color:var(--text-0);font-family:var(--font-sans);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.55}::selection{background:var(--accent-violet-dim);color:var(--text-0)}:focus-visible{outline:1.5px solid var(--accent-cyan);outline-offset:2px;border-radius:var(--radius)}main{max-width:1080px;padding:0 var(--space-4) var(--space-8);margin:0 auto}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.site-header{max-width:1080px;padding:var(--space-4) var(--space-4);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.logo{font-family:var(--font-mono);font-size:var(--fs-h3);letter-spacing:-.02em;display:inline-flex}.logo-mark{color:var(--text-0)}.logo-accent{color:var(--accent-cyan)}.menu-toggle{flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;padding:6px;display:flex}.menu-toggle span{background:var(--text-1);width:100%;height:1.5px;transition:transform var(--dur) var(--ease), opacity var(--dur) var(--ease);display:block}.menu-toggle.is-open span:first-child{transform:translateY(6.5px)rotate(45deg)}.menu-toggle.is-open span:nth-child(2){opacity:0}.menu-toggle.is-open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.drawer-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;background:#06070a99;position:fixed;inset:0}.drawer{background:var(--bg-2);border-left:1px solid var(--line);z-index:50;width:min(280px,80vw);padding:var(--space-6) var(--space-5);animation:slide-in var(--dur) var(--ease);position:fixed;top:0;bottom:0;right:0}@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer ul{gap:var(--space-4);flex-direction:column;display:flex}.drawer a{font-family:var(--font-mono);font-size:var(--fs-body);color:var(--text-1);transition:color var(--dur) var(--ease)}.drawer a:hover{color:var(--accent-cyan)}.site-footer{max-width:1080px;padding:var(--space-5) var(--space-4) var(--space-7);font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--text-2);border-top:1px solid var(--line);justify-content:space-between;margin:0 auto;display:flex}.site-footer a{color:var(--text-2)}.site-footer a:hover{color:var(--accent-cyan)}.hero{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-2);padding:var(--space-7) var(--space-5);margin-bottom:var(--space-7);align-items:center;min-height:320px;display:flex;position:relative;overflow:hidden}.geometry-field{opacity:.8;width:100%;height:100%;position:absolute;inset:0}.hero-content{z-index:1;max-width:42ch;position:relative}.hero-kicker{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--accent-cyan);letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--space-3)}.hero h1{font-family:var(--font-serif);font-size:var(--fs-hero);color:var(--text-0);margin-bottom:var(--space-4);font-weight:500;line-height:1.08}.hero-lede{color:var(--text-1);font-size:var(--fs-lede)}.section-heading{margin-bottom:var(--space-4);justify-content:space-between;align-items:baseline;display:flex}.section-heading h2{font-family:var(--font-serif);font-size:var(--fs-h2)}.section-heading a{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--accent-violet)}.section-heading a:hover{color:var(--accent-cyan)}.page-header{padding:var(--space-6) 0 var(--space-5);border-bottom:1px solid var(--line);margin-bottom:var(--space-6)}.page-header h1{font-family:var(--font-serif);font-size:var(--fs-h1);margin-bottom:var(--space-2)}.page-header p{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--text-2)}.post-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.post-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-2);padding:var(--space-4);transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease);display:block}.post-card:hover{border-color:var(--accent-cyan-dim);transform:translateY(-2px)}.post-card-date{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--text-2);margin-bottom:var(--space-2)}.post-card-title{font-family:var(--font-serif);font-size:var(--fs-h3);margin-bottom:var(--space-2);color:var(--text-0);line-height:1.25}.post-card-description{color:var(--text-1);font-size:var(--fs-body);margin-bottom:var(--space-3)}.tag-list{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.tag-list a,.tag-list span{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--accent-violet);border:1px solid var(--line);transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease);border-radius:999px;padding:2px 10px}.tag-list a:hover{color:var(--accent-cyan);border-color:var(--accent-cyan-dim)}.tag-list--inline{margin-top:var(--space-2)}.tag-index{gap:var(--space-3);max-width:var(--measure);flex-direction:column;display:flex}.tag-index li{border-bottom:1px solid var(--line);padding-bottom:var(--space-2);justify-content:space-between;display:flex}.tag-index a{font-family:var(--font-mono);font-size:var(--fs-h3);color:var(--accent-violet)}.tag-index a:hover{color:var(--accent-cyan)}.tag-count{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--text-2);align-self:center}.post{max-width:var(--measure);margin:0 auto}.post-header{padding:var(--space-6) 0 var(--space-5);border-bottom:1px solid var(--line);margin-bottom:var(--space-6)}.post-date{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--accent-cyan)}.post-header h1{font-family:var(--font-serif);font-size:var(--fs-h1);margin:var(--space-3) 0 var(--space-3);line-height:1.12}.post-lede{color:var(--text-1);font-size:var(--fs-lede)}.prose{max-width:var(--measure);color:var(--text-0);margin:0 auto}.prose>*+*{margin-top:var(--space-4)}.prose h2{font-family:var(--font-serif);font-size:var(--fs-h2);margin-top:var(--space-6);padding-top:var(--space-2)}.prose h3{font-family:var(--font-serif);font-size:var(--fs-h3);margin-top:var(--space-5)}.prose p{font-size:var(--fs-body);color:var(--text-0)}.prose a{color:var(--accent-cyan);border-bottom:1px solid var(--accent-cyan-dim)}.prose a:hover{color:var(--accent-cyan);border-color:var(--accent-cyan)}.prose ul,.prose ol{padding-left:1.2em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li{margin-top:var(--space-2)}.prose li::marker{color:var(--accent-violet)}.prose blockquote{border-left:2px solid var(--accent-amber-dim);padding-left:var(--space-4);color:var(--text-1);font-style:italic}.prose hr{border:none;border-top:1px solid var(--line);margin:var(--space-6) 0}.prose img{border-radius:var(--radius);border:1px solid var(--line)}.prose table{border-collapse:collapse;width:100%;font-size:var(--fs-meta)}.prose th,.prose td{border:1px solid var(--line);padding:var(--space-2) var(--space-3);text-align:left}.prose th{color:var(--text-1);font-family:var(--font-mono)}.prose code{font-family:var(--font-mono);background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:.1em .4em;font-size:.88em}.prose pre{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);font-size:.85em;line-height:1.6;overflow-x:auto;background:var(--bg-0)!important}.prose pre code{font-family:var(--font-mono);background:0 0;border:none;padding:0}pre.shiki{border-radius:.75rem;padding:1.25rem 0;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.875rem;line-height:1.6;overflow-x:auto;color:#f8fafc!important;background-color:#0f172a!important}pre.shiki .line{box-sizing:border-box;width:100%;padding:0 1.25rem;display:inline-block}pre.shiki .line.highlighted-line{background-color:#1e293b;border-left:4px solid #f43f5e;padding-left:calc(1.25rem - 4px)}pre.shiki .line[data-line]:before{content:attr(data-line);text-align:right;color:#475569;-webkit-user-select:none;user-select:none;width:1.75rem;margin-right:1rem;display:inline-block}.post-pagination{max-width:var(--measure);margin:var(--space-7) auto 0;gap:var(--space-4);border-top:1px solid var(--line);padding-top:var(--space-5);grid-template-columns:1fr 1fr;display:grid}.pagination-link{gap:var(--space-1);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--dur) var(--ease);flex-direction:column;display:flex}.pagination-link:hover{border-color:var(--accent-cyan-dim)}.pagination-next{text-align:right;grid-column:2}.pagination-label{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--accent-violet)}.pagination-title{color:var(--text-0);font-size:var(--fs-body)}@media (width<=640px){.post-pagination{grid-template-columns:1fr}.pagination-next{text-align:left;grid-column:1}.hero{padding:var(--space-6) var(--space-4);min-height:260px}}
