:root{--paper:#f3ece0;--paper-warm:#ebe2d2;--ink:#1a1410;--ink-soft:#4a3f36;--ink-faint:#8a7d6f;--ink-ghost:#b8aa9a;--accent:#b8311c;--accent-soft:rgba(184, 49, 28, 0.10);--accent-strong:#8c1e10;--rule:rgba(26, 20, 16, 0.10);--rule-bright:rgba(26, 20, 16, 0.22);--font-mono:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:15px;line-height:1.7;min-height:100vh;position:relative}body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.04;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}ul,ol{padding-left:1.5rem}img,svg{max-width:100%;display:block}.wrap{max-width:680px;margin:0 auto;padding:clamp(2rem,6vw,5rem)clamp(1.5rem,5vw,2.5rem)4rem;position:relative}.topnav{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:clamp(4rem,10vw,7rem);font-size:.82rem;flex-wrap:wrap;gap:1rem}.nav-id{color:var(--ink-soft);letter-spacing:.02em}.nav-id .accent{color:var(--accent)}.nav-links{display:flex;gap:1.5rem}.nav-links a{color:var(--ink-soft);transition:color .2s ease}.nav-links a:hover,.nav-links a.active{color:var(--accent)}@keyframes blink{50%{opacity:0}}.cursor{display:inline-block;color:var(--accent);animation:blink 1.15s steps(2,end)infinite;margin-left:.15em}.prompt{color:var(--ink-faint);font-size:.8rem;margin-bottom:1.25rem;letter-spacing:.02em}.prompt .a{color:var(--accent);margin-right:.35em}h1.name{font-family:var(--font-mono);font-weight:700;font-size:clamp(2.4rem,6vw,3.4rem);line-height:1.05;letter-spacing:-.03em;margin-bottom:1.75rem;color:var(--ink)}.bio{color:var(--ink-soft);font-size:1rem;line-height:1.75;max-width:56ch;margin-bottom:2.25rem}.bio strong{color:var(--ink);font-weight:600}.bio .mark{background:var(--accent-soft);color:var(--accent);padding:0 .25em;font-weight:500}.bio p{margin-bottom:1rem}.bio p:last-child{margin-bottom:0}.status{display:flex;align-items:center;gap:.65rem;font-size:.82rem;color:var(--ink-soft);margin-bottom:clamp(4rem,10vw,6rem);padding:.65rem 1rem;background:var(--accent-soft);border-left:2px solid var(--accent);width:fit-content;max-width:100%}.status .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:blink 2.5s ease-in-out infinite;flex-shrink:0}.status .accent{color:var(--accent);font-weight:500}.sec-head{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:.9rem;margin-bottom:1.25rem;margin-top:clamp(3rem,7vw,5rem);border-bottom:1px solid var(--rule-bright);gap:1rem;flex-wrap:wrap}.sec-head:first-child{margin-top:0}.sec-head h2{font-family:var(--font-mono);font-weight:500;font-size:.8rem;color:var(--ink-soft);letter-spacing:.02em}.sec-head h2 .a{color:var(--accent);margin-right:.35em}.sec-head a{font-size:.74rem;color:var(--ink-faint);letter-spacing:.04em;transition:color .2s ease}.sec-head a:hover{color:var(--accent)}.posts{margin-bottom:0}.post{display:grid;grid-template-columns:110px 1fr;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--rule);color:inherit;transition:padding-left .25s ease}.post:last-child{border-bottom:none}.post:hover{padding-left:.5rem}.post:hover .p-title{color:var(--accent)}.p-date{font-size:.76rem;color:var(--ink-faint);letter-spacing:.02em;padding-top:.15em}.p-title{font-family:var(--font-mono);font-weight:500;font-size:1rem;letter-spacing:-.005em;line-height:1.4;color:var(--ink);transition:color .2s ease}.list-full .post{grid-template-columns:110px 1fr;padding:1.5rem 0}.list-full .p-summary{font-size:.9rem;color:var(--ink-soft);line-height:1.6;margin-top:.5rem;max-width:60ch}.list-full .p-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.75rem}.list-full .tag{font-size:.7rem;color:var(--ink-faint);background:var(--paper-warm);padding:.15rem .55rem;border-radius:999px;letter-spacing:.02em}.contact{font-size:.9rem}.contact a{display:flex;justify-content:space-between;align-items:baseline;padding:.85rem 0;border-bottom:1px solid var(--rule);color:var(--ink);transition:padding-left .25s ease,color .2s ease}.contact a:hover{padding-left:.5rem;color:var(--accent)}.contact a:last-child{border-bottom:none}.contact .k{color:var(--ink-soft);letter-spacing:.02em;font-weight:500}.contact .v{color:var(--ink-faint);font-size:.8rem}.sec-head .sec-meta{font-size:.72rem;color:var(--ink-faint);letter-spacing:.04em}.contact-form{margin-top:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.contact-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.contact-form .field{display:flex;flex-direction:column;gap:.4rem}.contact-form label{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-soft);letter-spacing:.04em}.contact-form label::before{content:'> ';color:var(--accent)}.contact-form input,.contact-form textarea{font-family:var(--font-mono);font-size:.9rem;color:var(--ink);background:0 0;border:1px solid var(--rule-bright);border-radius:2px;padding:.65rem .8rem;width:100%;outline:none;transition:border-color .2s ease,background .2s ease;resize:vertical}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--ink-ghost)}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);background:rgba(184,49,28,3%)}.contact-form textarea{min-height:120px;line-height:1.6}.contact-form .submit{font-family:var(--font-mono);font-size:.88rem;font-weight:500;color:var(--paper);background:var(--ink);border:none;padding:.85rem 1.5rem;border-radius:2px;cursor:pointer;align-self:flex-start;transition:background .2s ease,transform .15s ease;letter-spacing:.02em}.contact-form .submit .a{color:var(--accent);margin-right:.4em}.contact-form .submit:hover{background:var(--accent-strong)}.contact-form .submit:active{transform:translateY(1px)}.sitefoot{margin-top:clamp(5rem,11vw,8rem);padding-top:2rem;border-top:1px solid var(--rule);font-size:.72rem;color:var(--ink-faint);display:flex;justify-content:space-between;letter-spacing:.02em;flex-wrap:wrap;gap:1rem}.sitefoot a{color:var(--ink-faint);transition:color .2s ease;margin-left:1rem}.sitefoot a:first-child{margin-left:0}.sitefoot a:hover{color:var(--accent)}.foot-links{display:flex}.page-title{font-family:var(--font-mono);font-weight:700;font-size:clamp(2rem,5vw,2.8rem);letter-spacing:-.03em;margin-bottom:1.5rem;color:var(--ink)}.article{max-width:100%}.article-title{font-family:var(--font-mono);font-weight:700;font-size:clamp(1.8rem,4.5vw,2.5rem);line-height:1.15;letter-spacing:-.025em;margin-bottom:1rem;color:var(--ink)}.article-meta{font-size:.76rem;color:var(--ink-faint);margin-bottom:2rem;display:flex;flex-wrap:wrap;gap:.35rem .5rem;align-items:center}.article-meta .dot-sep{color:var(--ink-ghost)}.article-meta .tag{font-size:.7rem;background:var(--accent-soft);color:var(--accent);padding:.1rem .5rem;border-radius:999px}.article-lede{font-size:1.08rem;color:var(--ink-soft);line-height:1.65;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--rule)}.prose{color:var(--ink-soft);font-size:.95rem;line-height:1.8}.prose h2,.prose h3,.prose h4{font-family:var(--font-mono);font-weight:700;color:var(--ink);letter-spacing:-.02em;margin:2.5rem 0 .85rem;scroll-margin-top:2rem}.prose h2{font-size:1.25rem;padding-bottom:.4rem;border-bottom:1px solid var(--rule-bright)}.prose h2::before{content:'## ';color:var(--accent);opacity:.8}.prose h3{font-size:1.05rem}.prose h3::before{content:'### ';color:var(--accent);opacity:.6}.prose h4{font-size:.92rem;color:var(--ink-soft)}.prose p{margin-bottom:1.25rem}.prose strong{color:var(--ink);font-weight:600}.prose em{font-style:italic;color:var(--ink)}.prose a{color:var(--accent);border-bottom:1px solid var(--accent-soft);transition:border-color .2s ease}.prose a:hover{border-bottom-color:var(--accent)}.prose ul,.prose ol{margin-bottom:1.25rem;padding-left:1.25rem}.prose li{margin-bottom:.35rem}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:2px solid var(--accent);padding:.25rem 0 .25rem 1.25rem;margin:1.5rem 0;color:var(--ink);background:var(--accent-soft);font-style:italic}.prose code{font-family:var(--font-mono);font-size:.88em;background:var(--paper-warm);color:var(--accent-strong);padding:.12em .4em;border-radius:3px}.prose pre{background:var(--ink);color:var(--paper);padding:1.25rem;border-radius:4px;overflow-x:auto;font-size:.85rem;line-height:1.6;margin:1.5rem 0;border-left:3px solid var(--accent)}.prose pre code{background:0 0;color:inherit;padding:0;font-size:inherit}.prose hr{border:none;border-top:1px dashed var(--rule-bright);margin:2.5rem 0}.prose img{margin:1.5rem 0;border-radius:4px}.prose table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.88rem}.prose th,.prose td{text-align:left;padding:.55rem .85rem;border-bottom:1px solid var(--rule)}.prose th{color:var(--ink);font-weight:600;border-bottom:2px solid var(--ink)}.external-out{margin-top:2.5rem;padding:1rem 1.25rem;background:var(--paper-warm);border-left:2px solid var(--accent)}.external-out a{color:var(--accent);font-weight:500;font-size:.9rem}.article-foot{margin-top:4rem;padding-top:1.5rem;border-top:1px solid var(--rule);font-size:.82rem}.article-foot a{color:var(--ink-soft);transition:color .2s ease}.article-foot a:hover{color:var(--accent)}@media(max-width:600px){.post,.list-full .post{grid-template-columns:1fr;gap:.3rem}.p-date{padding-top:0}.contact a{flex-direction:column;align-items:flex-start;gap:.15rem}.contact .v{font-size:.75rem}.contact-form .field-row{grid-template-columns:1fr}}