:root{--void-black: #080B14;--void-elevated: #0D111C;--void-surface: #121726;--ink: #F0F2F7;--ink-dim: #8A92A8;--ink-faint: #5A6278;--amber-burnt: #C75B3A;--amber-soft: rgba(199, 91, 58, .12);--amber-glow: rgba(199, 91, 58, .22);--line: rgba(240, 242, 247, .06);--line-strong: rgba(240, 242, 247, .12);--void: var(--void-black);--void-2: var(--void-elevated);--void-3: var(--void-surface);--accent: var(--amber-burnt);--accent-soft: var(--amber-soft);--accent-glow: var(--amber-glow);--font-display: "Fraunces", Georgia, "Times New Roman", serif;--font-body: "Space Grotesk", "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--fz-display: clamp(2.6rem, 6.5vw, 5.2rem);--fz-h2: clamp(2rem, 4.5vw, 3.5rem);--fz-h3: clamp(1.25rem, 2.2vw, 1.7rem);--fz-lead: clamp(1.05rem, 1.8vw, 1.35rem);--fz-body: 1.0625rem;--fz-sm: .9375rem;--fz-mono: .8125rem;--sp-1: .5rem;--sp-2: 1rem;--sp-3: 1.5rem;--sp-4: 2rem;--sp-6: 3rem;--sp-8: 4rem;--sp-12: 6rem;--sp-section: clamp(4rem, 10vh, 7.5rem);--maxw: 80rem;--gutter: clamp(1rem, 5vw, 4rem);--nav-height: 88px;--ease: cubic-bezier(.22, 1, .36, 1);--ease-interact: cubic-bezier(.32, .72, 0, 1);--dur: .35s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + 1.5rem);-webkit-text-size-adjust:100%}body{position:relative;width:100%;min-height:100dvh;overflow-x:hidden;background-color:var(--void-black);color:var(--ink-dim);font-family:var(--font-body);font-size:var(--fz-body);line-height:1.65;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(120% 70% at 50% -10%,rgba(18,23,54,.35),transparent 55%),radial-gradient(90% 60% at 100% 0%,var(--amber-glow),transparent 50%)}body:after{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;color:var(--ink);line-height:1.05;letter-spacing:-.03em}p{max-width:65ch}a{color:var(--ink);text-decoration:none;transition:color var(--dur) var(--ease),opacity var(--dur) var(--ease)}a:hover{color:var(--amber-burnt)}button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}img{max-width:100%;height:auto;display:block}ul,ol{list-style:none}::selection{background-color:var(--amber-burnt);color:var(--void-black)}.skip-to-content{position:fixed;top:0;left:var(--sp-4);z-index:9999;padding:.65rem 1rem;border-radius:0 0 .5rem .5rem;background-color:var(--ink);color:var(--void-black);font-family:var(--font-mono);font-size:var(--fz-mono);font-weight:500;text-transform:uppercase;letter-spacing:.12em;transform:translateY(-120%);transition:transform .25s var(--ease-interact),background-color var(--dur) var(--ease)}.skip-to-content:focus{transform:translateY(0);outline:2px solid var(--amber-burnt);outline-offset:2px}.section{position:relative;z-index:2;padding-block:var(--sp-section);scroll-margin-top:var(--nav-height)}.eyebrow{display:inline-flex;align-items:center;gap:.75rem;font-family:var(--font-mono);font-size:var(--fz-mono);font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--amber-burnt)}.eyebrow:before{content:"";width:2rem;height:1px;background:var(--amber-burnt)}.section-title{font-size:var(--fz-h2);font-weight:900;color:var(--ink);margin-top:var(--sp-3)}.section-head{display:grid;grid-template-columns:1.1fr .9fr;align-items:end;gap:var(--sp-3) var(--sp-8);margin-bottom:var(--sp-6)}.section-head-lead{font-size:var(--fz-lead);color:var(--ink-dim);max-width:46ch;padding-bottom:.4rem;line-height:1.6}@media(max-width:1100px){.section-head{gap:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-5)}}@media(max-width:820px){.section-head{grid-template-columns:1fr;gap:var(--sp-3);margin-bottom:var(--sp-5)}}.fade-in-section{opacity:0;transform:translateY(32px);filter:blur(4px);transition:opacity .8s var(--ease),transform .8s var(--ease),filter .8s var(--ease);will-change:opacity,transform,filter}.fade-in-section.is-visible{opacity:1;transform:none;filter:blur(0)}.delay-100{transition-delay:80ms}.delay-200{transition-delay:.16s}.delay-300{transition-delay:.24s}.delay-400{transition-delay:.32s}.delay-500{transition-delay:.4s}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--void-black)}::-webkit-scrollbar-thumb{background-color:var(--void-surface);border:2px solid var(--void-black);border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:var(--ink-faint)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.fade-in-section{opacity:1;transform:none;filter:blur(0)}}.blog-wrap{position:relative;z-index:2;max-width:46rem;margin-inline:auto;padding-inline:var(--gutter);padding-block:clamp(5rem,12vh,9rem) var(--sp-12)}.blog-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-8)}.blog-home-link{font-family:var(--font-mono);font-size:var(--fz-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}.blog-home-link:hover{color:var(--amber-burnt)}.blog-head{margin-bottom:var(--sp-8)}.blog-head h1{font-size:var(--fz-h2);margin-top:var(--sp-2)}.blog-head p{margin-top:var(--sp-3);font-size:var(--fz-lead);color:var(--ink-dim);max-width:42ch}.notes-head{margin-bottom:var(--sp-8)}.notes-search{display:flex;align-items:center;gap:.65rem;margin-top:var(--sp-3);max-width:32rem;padding-bottom:.6rem;border-bottom:1px solid var(--line-strong);transition:border-color var(--dur) var(--ease)}.notes-search:focus-within{border-color:var(--amber-burnt)}.notes-search-icon{font-size:1.2rem;color:var(--ink-faint)}.notes-search input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--ink);font-family:var(--font-body);font-size:var(--fz-lead)}.notes-search input::placeholder{color:var(--ink-faint)}.notes-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.notes-year-group+.notes-year-group{margin-top:var(--sp-6)}.notes-year{font-family:var(--font-mono);font-size:var(--fz-mono);font-weight:500;letter-spacing:.22em;color:var(--ink-faint);text-transform:uppercase;margin-bottom:var(--sp-1)}.notes-empty{margin-top:var(--sp-6);color:var(--ink-faint);font-family:var(--font-mono);font-size:var(--fz-sm)}.post-list{display:flex;flex-direction:column}.post-list-item{border-top:1px solid var(--line)}.post-list-item:last-child{border-bottom:1px solid var(--line)}.post-list-link{display:block;padding-block:var(--sp-4);transition:padding-left var(--dur) var(--ease)}.post-list-link:hover{padding-left:var(--sp-2)}.post-list-date{font-family:var(--font-mono);font-size:var(--fz-mono);letter-spacing:.1em;color:var(--ink-faint)}.post-list-title{font-size:var(--fz-h3);margin-top:var(--sp-1);color:var(--ink);transition:color var(--dur) var(--ease)}.post-list-link:hover .post-list-title{color:var(--amber-burnt)}.post-list-desc{margin-top:.5rem;color:var(--ink-dim);font-size:var(--fz-sm)}.post-list-tags{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}.post-list-tags li{font-family:var(--font-mono);font-size:var(--fz-mono)}.post-list-tags a,.post-tags a{color:var(--ink-faint);transition:color var(--dur) var(--ease)}.post-list-tags a:hover,.post-tags a:hover{color:var(--amber-burnt)}.post-back{display:inline-block;margin-bottom:var(--sp-6);font-family:var(--font-mono);font-size:var(--fz-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}.post-back:hover{color:var(--amber-burnt)}.post-header{margin-bottom:var(--sp-6);padding-bottom:var(--sp-4);border-bottom:1px solid var(--line)}.post-date{font-family:var(--font-mono);font-size:var(--fz-mono);letter-spacing:.12em;color:var(--amber-burnt);text-transform:uppercase}.post-title{font-size:clamp(2.2rem,5vw,3.4rem);margin-top:var(--sp-3)}.post-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:var(--sp-3)}.post-tags li{font-family:var(--font-mono);font-size:var(--fz-mono);color:var(--ink-faint)}.prose{color:var(--ink-dim);font-size:var(--fz-body);line-height:1.75}.prose>*+*{margin-top:var(--sp-3)}.prose h2{font-size:var(--fz-h3);margin-top:var(--sp-8);color:var(--ink)}.prose h3{font-size:1.3rem;margin-top:var(--sp-6);color:var(--ink)}.prose p,.prose li{max-width:68ch}.prose a{color:var(--amber-burnt);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}.prose a:hover{color:var(--ink)}.prose strong{color:var(--ink);font-weight:600}.prose ul,.prose ol{padding-left:1.4rem}.prose ul{list-style:none}.prose ul li:before{content:"—";color:var(--amber-burnt);margin-left:-1.4rem;margin-right:.7rem}.prose ol{list-style:decimal}.prose ol li::marker{color:var(--amber-burnt);font-family:var(--font-mono)}.prose blockquote{border-left:2px solid var(--amber-burnt);padding-left:var(--sp-3);font-family:var(--font-display);font-style:italic;font-size:1.3rem;color:var(--ink)}.prose code{font-family:var(--font-mono);font-size:.875em;background:var(--void-surface);padding:.15em .4em;border-radius:.3rem;color:var(--ink)}.prose pre{background:var(--void-elevated);border:1px solid var(--line);border-radius:.6rem;padding:var(--sp-3);overflow-x:auto}.prose pre code{background:none;padding:0;font-size:var(--fz-mono);line-height:1.6}.prose img{max-width:100%;max-height:32rem;margin-inline:auto;margin-block:var(--sp-4);border-radius:.6rem;border:1px solid var(--line)}.prose p:has(>.caption){margin-top:calc(var(--sp-4) * -1 + var(--sp-2));text-align:center}.prose .caption{font-family:var(--font-mono);font-size:var(--fz-sm);font-style:normal;color:var(--ink-faint);letter-spacing:.02em}.post-footer{margin-top:var(--sp-8);padding-top:var(--sp-4);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--fz-mono);letter-spacing:.1em;text-transform:uppercase}
