﻿@font-face{font-family:"Bitter";font-style:normal;font-weight:600 700;font-display:swap;src:url("/fonts/bitter-semibold-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Bitter";font-style:normal;font-weight:600 700;font-display:swap;src:url("/fonts/bitter-semibold-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Bitter";font-style:italic;font-weight:600;font-display:swap;src:url("/fonts/bitter-semibold-italic-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Bitter";font-style:italic;font-weight:600;font-display:swap;src:url("/fonts/bitter-semibold-italic-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url("/fonts/ibm-plex-sans-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url("/fonts/ibm-plex-sans-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono-regular-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono-regular-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex-mono-medium-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex-mono-medium-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"bootstrap-icons";font-display:swap;font-style:normal;font-weight:400;src:url("/fonts/bootstrap-icons.woff2") format("woff2")}.bi::before,[class^=bi-]::before,[class*=" bi-"]::before{display:inline-block;font-family:"bootstrap-icons" !important;font-style:normal;font-weight:normal !important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-book::before{content:""}.bi-github::before{content:""}.bi-globe::before{content:""}.bi-linkedin::before{content:""}.bi-twitter-x::before{content:""}:root{--bg-primary: #0B0A08;--bg-secondary: #12110E;--bg-elevated: #1B1916;--bg-hover: #252320;--border: #2F2C27;--border-hover: #3A3630;--gold-deep: #7A5C1F;--gold-primary: #B8923A;--gold-bright: #D4A52A;--gold-electrum: #C4B878;--gold-pale: #E8DDB5;--gold-wash: rgba(184, 146, 58, 0.08);--ochre-deep: #5C2A1A;--ochre-primary: #C06A4E;--ochre-bright: #C27050;--ochre-wash: rgba(192, 106, 78, 0.10);--verdigris-deep: #2E4A3A;--verdigris-primary: #689680;--verdigris-bright: #74A68E;--verdigris-wash: rgba(104, 150, 128, 0.10);--text-primary: #E8E6E1;--text-secondary: #A09D96;--text-tertiary: #85827B;--accent: var(--gold-primary);--accent-dim: var(--gold-deep);--accent-glow: var(--gold-wash);--accent-bright: var(--gold-bright);--error: var(--ochre-primary);--warning: var(--ochre-primary);--success: var(--verdigris-primary);--info: var(--verdigris-primary);--code-bg: #12110E;--code-border: #2F2C27;--syn-string: #74A68E;--syn-constant: #D09878;--syn-type: #C4B878;--syn-variable: #D0CCC4;--syn-punctuation: #928F87;--syn-symbol: #967830;--font-display: "Bitter", Georgia, serif;--font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", ui-monospace, monospace;--text-h1: clamp(2rem, 3.5vw, 2.75rem);--text-h2: clamp(1.5rem, 2.5vw, 1.875rem);--text-h3: 1.375rem;--text-body: 1.0625rem;--text-small: 0.9375rem;--text-mono: 0.875rem;--text-eyebrow: 0.75rem;--text-caption: 0.75rem;--text-xs: 0.6875rem;--text-sm: 0.875rem;--text-base: 1.0625rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: var(--text-h2);--text-4xl: var(--text-h1);--leading-tight: 1.05;--leading-snug: 1.25;--leading-normal: 1.65;--leading-relaxed: 1.7;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--space-10: 128px;--content-width: 880px;--page-width: 1200px;--nav-height: 56px;--page-gutter: 24px;--ease-out: cubic-bezier(0.16, 1, 0.3, 1);--duration-fast: 150ms;--duration-normal: 300ms;--duration-slow: 600ms;--radius-sm: 2px;--radius: 3px;--min-touch: 44px;--meander-color: var(--gold-deep);--meander-opacity: 0.8}@media (max-width: 640px){:root{--page-gutter: 16px;--nav-height: 48px}}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;scroll-behavior:smooth;scrollbar-gutter:stable;scroll-padding-top:calc(var(--nav-height) + 16px)}body{min-height:100dvh;line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:inherit;text-decoration-skip-ink:auto}ul,ol{list-style:none}table{border-collapse:collapse;border-spacing:0}button{background:none;border:none;cursor:pointer}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 3px var(--gold-wash)}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}body{font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-normal);color:var(--text-primary);font-feature-settings:"kern" 1,"liga" 1}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;color:var(--text-primary);text-wrap:balance}h1{font-size:var(--text-h1);line-height:var(--leading-tight);letter-spacing:-.025em}h2{font-size:var(--text-h2);line-height:1.15;letter-spacing:-.015em;margin-top:var(--space-6);margin-bottom:var(--space-3)}h3{font-size:var(--text-h3);line-height:var(--leading-snug);letter-spacing:-.01em;margin-top:var(--space-5);margin-bottom:var(--space-2)}h4{font-size:var(--text-lg);font-family:var(--font-body);font-weight:600;line-height:var(--leading-snug);margin-top:var(--space-5);margin-bottom:var(--space-2)}.eyebrow,.section-label{font-family:var(--font-mono);font-size:var(--text-eyebrow);font-weight:500;text-transform:uppercase;letter-spacing:.2em;color:var(--accent);line-height:1}.section-label{padding-bottom:var(--space-2);border-bottom:1px solid var(--accent-dim);margin-bottom:var(--space-4)}.prose{max-width:80ch;font-size:var(--text-body);line-height:var(--leading-relaxed)}.prose>*+*{margin-top:1.4em}.prose p{margin-bottom:0}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent-dim);text-underline-offset:3px;text-decoration-thickness:1px;transition:text-decoration-color var(--duration-fast) var(--ease-out)}.prose a:hover{text-decoration-color:var(--accent)}.prose strong{font-weight:600;color:var(--text-primary)}.prose em{font-style:italic}.prose ul,.prose ol{margin-bottom:0;padding-left:1.25em}.prose ul{list-style:disc}.prose ol{list-style:decimal}.prose li{margin-bottom:.35em;line-height:var(--leading-normal)}.prose li>ul,.prose li>ol{margin-top:.35em;margin-bottom:0}.prose blockquote{border-left:2px solid var(--accent);padding-left:var(--space-4);margin:var(--space-5) 0;color:var(--text-secondary);font-style:italic}.prose hr{border:none;border-top:1px solid var(--border);margin:var(--space-6) 0}.prose img{border-radius:var(--radius);margin:var(--space-5) 0}.prose table{width:100%;margin:var(--space-5) 0;font-size:var(--text-small)}.prose table th,.prose table td{padding:var(--space-2) var(--space-3);border:1px solid var(--border);text-align:left}.prose table th{background:var(--bg-secondary);font-weight:600;font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.04em}.prose table td{background:var(--bg-primary)}.prose h2{margin-top:var(--space-7);margin-bottom:var(--space-3);font-weight:700}.prose h2:first-child{margin-top:0}.prose h3{margin-top:var(--space-6);margin-bottom:var(--space-2);font-weight:700}.prose h4{margin-top:var(--space-5);margin-bottom:var(--space-2)}code{font-family:var(--font-mono);font-size:.9em;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.1em .3em}pre code{background:none;border:none;border-radius:0;padding:0;font-size:var(--text-mono)}.text-sm{font-size:var(--text-small)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.small-caps{font-variant-caps:all-small-caps;letter-spacing:.05em}body{background-color:var(--bg-primary);display:flex;flex-direction:column;min-height:100dvh}main{flex:1}.container{width:100%;max-width:var(--page-width);margin:0 auto;padding:0 var(--page-gutter)}.content-container{width:100%;max-width:var(--content-width);margin:0 auto;padding:0 var(--page-gutter)}.site-header{position:sticky;top:0;z-index:100;height:var(--nav-height);border-bottom:1px solid var(--border);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);background:rgba(11,10,8,.88)}[data-theme=light] .site-header{background:rgba(247,246,243,.88)}.nav{display:flex;align-items:center;justify-content:space-between;height:var(--nav-height);max-width:var(--page-width);margin:0 auto;padding:0 var(--page-gutter)}.nav__logo{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--text-primary);text-decoration:none;letter-spacing:-.02em;line-height:1;transition:color var(--duration-fast) var(--ease-out)}.nav__logo:hover{color:var(--accent)}.nav__links{display:flex;align-items:center;gap:var(--space-6)}.nav__link{font-family:var(--font-body);font-size:var(--text-small);font-weight:400;color:var(--text-tertiary);text-decoration:none;letter-spacing:.01em;transition:color var(--duration-fast) var(--ease-out)}.nav__link:hover,.nav__link.active{color:var(--text-primary)}.nav__actions{display:flex;align-items:center;gap:var(--space-2)}.nav__social{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius);color:var(--text-tertiary);font-size:16px;text-decoration:none;transition:color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.nav__social:hover{color:var(--text-primary)}.nav__social:active{transform:scale(.92)}.nav__divider{width:1px;height:16px;background:var(--border);margin:0 var(--space-1)}.nav__mobile-toggle{display:none}@media (max-width: 768px){.nav__links{display:none}.nav__actions{margin-left:auto}.nav__social,.nav__divider{display:none}.nav__mobile-toggle{display:block}.nav__mobile-toggle[open] .nav__mobile-menu{display:flex;flex-direction:column;position:absolute;top:var(--nav-height);left:0;right:0;background:var(--bg-primary);border-bottom:1px solid var(--border);padding:var(--space-3) var(--page-gutter);gap:0;z-index:99;animation:nav-menu-in var(--duration-fast) var(--ease-out)}@keyframes nav-menu-in{from{opacity:0;transform:translateY(-4px)}}}@media (max-width: 768px) and (prefers-reduced-motion: reduce){.nav__mobile-toggle[open] .nav__mobile-menu{animation:none}}@media (max-width: 768px){.nav__mobile-toggle summary{list-style:none;cursor:pointer;color:var(--text-secondary);padding:var(--space-2)}.nav__mobile-toggle summary::-webkit-details-marker{display:none}}@media (max-width: 768px){.nav__mobile-menu .nav__link{font-size:var(--text-body);padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.nav__mobile-menu .nav__link:last-child{border-bottom:none}}.site-footer{margin-top:var(--space-8);border-top:1px solid var(--border)}.footer__inner{max-width:var(--page-width);margin:0 auto;height:var(--nav-height);padding:0 var(--page-gutter);display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.footer__copyright{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--text-tertiary);letter-spacing:.02em}.post-layout{display:grid;grid-template-columns:1fr;gap:var(--space-7);max-width:var(--page-width);margin:0 auto;padding:0 var(--page-gutter)}@media (min-width: 1024px){.post-layout{grid-template-columns:1fr 200px}}.post-layout__content{max-width:var(--content-width);min-width:0}.post-layout__sidebar{display:none}@media (min-width: 1024px){.post-layout__sidebar{display:block;position:sticky;top:calc(var(--nav-height) + var(--space-5));align-self:start;max-height:calc(100vh - var(--nav-height) - var(--space-7));overflow-y:auto}}.section-header{margin-bottom:var(--space-4)}.section-title{font-size:var(--text-h2);line-height:var(--leading-tight);letter-spacing:-.015em}.section-description{color:var(--text-secondary);font-size:var(--text-body);margin-top:var(--space-2);line-height:var(--leading-normal)}.page-content{padding:var(--space-7) 0 var(--space-5)}.page-content:first-child{padding-top:var(--space-6)}.post-grid{display:grid;gap:0}.post-card{position:relative;padding:var(--space-4) 0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr;gap:2px}.post-card:first-child{padding-top:0}.post-card:last-child{border-bottom:none;padding-bottom:0}.post-card:hover .post-card__title a{color:var(--accent)}.post-card__link{position:absolute;inset:0;z-index:0}.post-card__link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius)}.post-card__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;line-height:var(--leading-snug);letter-spacing:-.015em}.post-card__title a{color:var(--text-primary);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}.post-card__title a:hover{color:var(--accent)}.post-card__description{color:var(--text-secondary);font-size:var(--text-base);line-height:var(--leading-normal)}.post-card__meta,.post-card__title,.post-card__description{position:relative;z-index:1}.post-card__meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);letter-spacing:.01em}.post-card__meta time{color:var(--text-secondary)}.post-card--compact{padding:0;border-bottom:none}.post-card--featured{padding-left:var(--space-4);border-left:2px solid var(--accent)}.post-card--featured .post-card__title{font-size:var(--text-2xl)}.post-card--draft{opacity:.6}.post-card--draft .post-card__title a{color:var(--text-secondary)}.draft-badge{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--bg-primary);background:var(--text-tertiary);padding:.15em .5em;border-radius:var(--radius-sm);vertical-align:middle;margin-right:var(--space-1);position:relative;z-index:1}.draft-banner{font-family:var(--font-mono);font-size:var(--text-small);font-weight:500;color:var(--text-tertiary);border:1px dashed var(--border-hover);border-radius:var(--radius);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);text-align:center}.project-rows{display:flex;flex-direction:column}.project-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-3) var(--space-6);padding:var(--space-5) var(--space-3);text-decoration:none;transition:opacity var(--duration-normal) var(--ease-out),background-color var(--duration-normal) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.project-row+.project-row{border-top:1px solid var(--border)}.project-row:active{transform:scale(.995)}@media (hover: hover) and (pointer: fine){.project-row:hover{background:linear-gradient(90deg, var(--gold-wash), rgba(0,0,0,0) 75%)}}@media (hover: hover) and (pointer: fine){.project-rows:has(.project-row:hover) .project-row:not(:hover){opacity:.45}}.project-row__main{min-width:0}.project-row__title{display:flex;align-items:baseline;gap:var(--space-3);font-family:var(--font-display);font-size:var(--text-h3);font-weight:700;line-height:var(--leading-snug);color:var(--text-primary);transition:color var(--duration-normal) var(--ease-out)}.project-row:hover .project-row__title{color:var(--accent)}.project-row__description{margin-top:var(--space-1);color:var(--text-secondary);font-size:var(--text-small);line-height:var(--leading-normal)}.project-row__meta{display:flex;align-items:center;gap:var(--space-4)}.project-row__tech{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-1)}.project-row__arrow{color:var(--text-tertiary);font-size:var(--text-lg);line-height:1;opacity:0;transform:translateX(-6px);transition:opacity var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out),color var(--duration-normal) var(--ease-out)}.project-row:hover .project-row__arrow{opacity:1;transform:translateX(0);color:var(--accent)}@media (max-width: 640px){.project-row{grid-template-columns:1fr;padding:var(--space-4) var(--space-2)}.project-row__meta{justify-content:space-between}.project-row__tech{justify-content:flex-start}}@media (prefers-reduced-motion: reduce){.project-row,.project-row__title,.project-row__arrow{transition:none}.project-rows:hover .project-row:not(:hover){opacity:1}.project-row__arrow{opacity:1;transform:none}}.project-more{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-3);border-top:1px solid var(--border);font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:.04em;color:var(--text-tertiary);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}.project-more:hover{color:var(--accent)}.project-more:hover .project-more__arrow{transform:translateX(2px)}.project-more__cta{white-space:nowrap}.project-more__arrow{display:inline-block;transition:transform var(--duration-fast) var(--ease-out)}@media (max-width: 640px){.project-more{flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-4) var(--space-2)}}@media (prefers-reduced-motion: reduce){.project-more__arrow{transition:none}}.project-status{display:inline-block;font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;padding:3px 8px;border-radius:var(--radius-sm)}.project-status--active{background:var(--verdigris-wash);color:var(--verdigris-primary)}.project-status--archived{background:var(--bg-elevated);color:var(--text-tertiary)}.project-status--idea{background:var(--gold-wash);color:var(--accent)}.tag{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);background:var(--gold-wash);border:1px solid rgba(0,0,0,0);border-radius:var(--radius-sm);padding:5px 12px;text-decoration:none;line-height:1;transition:border-color var(--duration-fast) var(--ease-out)}.tag:hover{border-color:var(--accent-dim)}.tag--ochre{color:var(--ochre-primary);background:var(--ochre-wash)}.tag--verdigris{color:var(--verdigris-primary);background:var(--verdigris-wash)}.tag--neutral{color:var(--text-secondary);background:var(--bg-elevated)}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-1)}.tag--lg{font-size:var(--text-eyebrow);padding:var(--space-2) var(--space-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-body);font-size:var(--text-small);font-weight:600;min-height:var(--min-touch);padding:var(--space-2) var(--space-5);border-radius:var(--radius);text-decoration:none;letter-spacing:.01em;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.btn:active{transform:scale(.97)}.btn--primary{background:var(--gold-bright);color:#0b0a08}.btn--primary:hover{background:var(--gold-electrum)}.btn--ghost,.btn--ghost-prominent{color:var(--text-tertiary);border:1px solid var(--border);background:rgba(0,0,0,0)}.btn--ghost:hover,.btn--ghost-prominent:hover{color:var(--accent);border-color:var(--accent-dim)}.btn--ghost-prominent{color:var(--text-secondary);border-color:var(--border-hover)}.btn--sm{min-height:32px;padding:var(--space-1) var(--space-4);font-size:var(--text-caption)}.btn--destructive{background:var(--ochre-bright);color:#0b0a08}.btn--destructive:hover{background:var(--ochre-primary)}.theme-toggle{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius);color:var(--text-tertiary);transition:color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.theme-toggle:hover{color:var(--text-primary)}.theme-toggle:active{transform:scale(.92)}.theme-toggle svg{width:16px;height:16px}.theme-toggle .icon-sun,.theme-toggle .icon-moon{position:absolute;top:50%;left:50%;margin:-8px 0 0 -8px;opacity:0;transform:rotate(-45deg) scale(.85);transition:opacity var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out)}html[data-theme=dark] .theme-toggle .icon-sun,html[data-theme=light] .theme-toggle .icon-moon,html:not([data-theme]) .theme-toggle .icon-sun{opacity:1;transform:rotate(0) scale(1)}@media (prefers-reduced-motion: reduce){.theme-toggle .icon-sun,.theme-toggle .icon-moon{transform:none;transition:opacity var(--duration-normal) var(--ease-out)}}.pagination{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) 0;margin-top:var(--space-3);border-top:1px solid var(--border);font-family:var(--font-mono)}.pagination__link{font-size:var(--text-caption);color:var(--text-tertiary);text-decoration:none;letter-spacing:.02em;transition:color var(--duration-fast) var(--ease-out)}.pagination__link:hover{color:var(--accent)}.pagination__link--disabled{color:var(--border);pointer-events:none}.newsletter{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);margin:var(--space-6) 0 0}.newsletter__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-1)}.newsletter__description{color:var(--text-secondary);font-size:var(--text-small);margin-bottom:var(--space-4);line-height:var(--leading-normal)}.newsletter__form{display:flex;gap:var(--space-2);max-width:420px}@media (max-width: 480px){.newsletter__form{flex-direction:column}}.newsletter__input{flex:1;padding:var(--space-2) var(--space-3);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-small);min-height:var(--min-touch)}.newsletter__input::placeholder{color:var(--text-tertiary)}.newsletter__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--gold-wash)}.callout{border-left:1px solid var(--verdigris-primary);background:var(--verdigris-wash);border-radius:0 var(--radius) var(--radius) 0;padding:var(--space-3) var(--space-4);margin:var(--space-5) 0}.callout__title{font-family:var(--font-mono);font-weight:500;font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-1);display:flex;align-items:center;gap:var(--space-2)}.callout__body{font-size:var(--text-small);color:var(--text-secondary);line-height:var(--leading-normal)}.callout__body p:last-child{margin-bottom:0}.callout--tip,.callout--info{border-left-color:var(--verdigris-primary);background:var(--verdigris-wash)}.callout--warning,.callout--error{border-left-color:var(--ochre-primary);background:var(--ochre-wash)}.figure{margin:var(--space-5) 0}.figure__img{border-radius:var(--radius);width:100%}.figure__caption{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--text-tertiary);text-align:center;margin-top:var(--space-2);letter-spacing:.01em}.hero{padding:var(--space-7) 0 var(--space-6)}@media (max-width: 640px){.hero{padding:var(--space-6) 0 var(--space-5)}}.hero__author{font-family:var(--font-display);font-size:var(--text-h2);font-weight:700;color:var(--text-primary);letter-spacing:-.02em;margin-bottom:var(--space-2)}.hero__intro{font-size:var(--text-body);color:var(--text-secondary);line-height:var(--leading-normal);max-width:65ch}.post-header{padding-top:var(--space-5);padding-bottom:var(--space-4);margin-bottom:0}.post-header__title{font-family:var(--font-display);font-size:var(--text-h2);font-weight:600;line-height:1.15;letter-spacing:-.02em;margin-bottom:var(--space-3)}@media (min-width: 768px){.post-header__title{font-size:var(--text-h1);line-height:1.12;letter-spacing:-.02em}}.toc{font-size:var(--text-small)}.toc__title{font-family:var(--font-mono);font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em;font-size:10px;margin-bottom:var(--space-3)}.toc__list{list-style:none;padding:0}.toc__item{margin-bottom:0}.toc__link{display:block;color:var(--text-tertiary);text-decoration:none;padding:var(--space-1) 0;padding-left:var(--space-3);border-left:1px solid rgba(0,0,0,0);font-size:var(--text-caption);line-height:var(--leading-snug);transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.toc__link:hover{color:var(--text-secondary)}.toc__link.active{color:var(--accent);border-left-color:var(--accent)}.toc__link--h3{padding-left:var(--space-5);font-size:var(--text-xs)}.toc-mobile{display:block;margin-bottom:var(--space-4);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3)}@media (min-width: 1024px){.toc-mobile{display:none}}.toc-mobile summary{cursor:pointer;font-family:var(--font-mono);font-weight:500;font-size:var(--text-caption);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;list-style:none}.toc-mobile summary::-webkit-details-marker{display:none}.toc-mobile summary::after{content:" +"}.toc-mobile[open] summary::after{content:" −"}.prose h2,.prose h3,.prose h4{position:relative}.prose h2 a.zola-anchor,.prose h3 a.zola-anchor,.prose h4 a.zola-anchor{position:absolute;left:-1.25em;color:var(--text-tertiary);text-decoration:none;opacity:0;transition:opacity var(--duration-fast) var(--ease-out);font-family:var(--font-body);font-size:.75em}.prose h2:hover a.zola-anchor,.prose h3:hover a.zola-anchor,.prose h4:hover a.zola-anchor{opacity:1}.author-bio{margin-top:var(--space-7);padding-top:var(--space-6);border-top:1px solid var(--border)}.author-bio__inner{max-width:60ch}.author-bio__name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;line-height:1}.author-bio__name a{color:var(--text-primary);text-decoration:none}.author-bio__name a:hover{color:var(--accent)}.author-bio__role{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);letter-spacing:.02em;margin-top:var(--space-1)}.author-bio__text{font-size:var(--text-small);color:var(--text-secondary);line-height:var(--leading-normal);margin-top:var(--space-2)}.post-nav{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) 0;margin-top:var(--space-5);border-top:1px solid var(--border)}.post-nav__link{display:flex;flex-direction:column;gap:2px;text-decoration:none;max-width:45%}.post-nav__link--next{text-align:right;margin-left:auto}.post-nav__link--disabled{visibility:hidden}.post-nav__link:hover .post-nav__title{color:var(--accent)}.post-nav__label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);letter-spacing:.02em}.post-nav__title{font-family:var(--font-display);font-size:var(--text-small);font-weight:600;color:var(--text-primary);line-height:var(--leading-snug);transition:color var(--duration-fast) var(--ease-out)}.related-posts{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border)}.related-posts__title{font-family:var(--font-mono);font-size:var(--text-caption);font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);margin-bottom:var(--space-3)}.related-posts__grid{display:grid;gap:var(--space-4)}@media (min-width: 640px){.related-posts__grid{grid-template-columns:repeat(2, 1fr)}}@media (min-width: 1024px){.related-posts__grid{grid-template-columns:repeat(3, 1fr)}}.image-zoom-overlay{display:none;position:fixed;inset:0;z-index:1000;background:rgba(11,10,8,.92);align-items:center;justify-content:center;cursor:zoom-out}.image-zoom-overlay.active{display:flex}.image-zoom-img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:var(--radius-sm);cursor:zoom-out}.youtube-embed{position:relative;width:100%;aspect-ratio:16/9;margin:var(--space-5) 0;border-radius:var(--radius);overflow:hidden}.youtube-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.sun-disc{display:flex;justify-content:center;padding:var(--space-4) 0;color:var(--accent)}.sun-disc svg{width:40px;height:40px}.engraved-lines{display:flex;justify-content:center;padding:var(--space-3) 0;color:var(--accent)}.engraved-lines svg{width:100%;max-width:200px;height:12px}.meander-rule{height:8px;background-color:var(--meander-color);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8' viewBox='0 0 16 8'%3E%3Cpath d='M0 4H2V1H6V4H4V7H8V4H10V7H14V4H12V1H16V4' fill='none' stroke='white' stroke-width='1'/%3E%3C/svg%3E");-webkit-mask-repeat:repeat-x;-webkit-mask-size:16px 8px;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8' viewBox='0 0 16 8'%3E%3Cpath d='M0 4H2V1H6V4H4V7H8V4H10V7H14V4H12V1H16V4' fill='none' stroke='white' stroke-width='1'/%3E%3C/svg%3E");mask-repeat:repeat-x;mask-size:16px 8px;opacity:var(--meander-opacity)}.about{max-width:var(--content-width);margin:0 auto;padding:var(--space-7) var(--page-gutter) var(--space-6)}.about__header{display:grid;grid-template-columns:auto 1fr;gap:var(--space-6);align-items:center;margin-bottom:var(--space-7)}.about__portrait{position:relative;width:160px;height:160px}.about__portrait img{width:100%;height:100%;object-fit:cover;border-radius:50%;border:2px solid var(--gold-deep);display:block}.about__portrait::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px solid var(--gold-deep);opacity:.45;pointer-events:none}.about__name{font-family:var(--font-display);font-size:var(--text-h1);font-weight:700;line-height:var(--leading-tight);letter-spacing:-.02em;color:var(--text-primary)}.about__alias{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--text-tertiary);font-style:italic;margin-top:var(--space-1)}.about__role{font-family:var(--font-mono);font-size:var(--text-eyebrow);font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-top:var(--space-2)}.about__links{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-4) var(--space-7);margin-top:var(--space-8)}.about__link{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--text-caption);font-weight:500;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;transition:color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.about__link .bi{font-size:22px;line-height:1}.about__link:hover{color:var(--accent)}.about__link:active{transform:scale(.96)}.about__body.prose>p:last-child{font-family:var(--font-display);font-style:italic;font-size:var(--text-lg);color:var(--text-secondary);margin-top:var(--space-6)}@media (max-width: 640px){.about__header{grid-template-columns:1fr;justify-items:center;text-align:center;gap:var(--space-4)}.about__portrait{width:128px;height:128px}.about__links{display:grid;grid-template-columns:repeat(2, minmax(0, auto));justify-content:center;justify-items:start;gap:var(--space-4) var(--space-7)}}.uses{max-width:var(--content-width);margin:0 auto;padding:var(--space-7) var(--page-gutter) var(--space-5)}.uses__title{font-family:var(--font-display);font-size:var(--text-h1);font-weight:700;line-height:var(--leading-tight);letter-spacing:-.02em;margin-bottom:var(--space-4)}.uses__body.prose>p:first-child{font-size:var(--text-lg);color:var(--text-secondary);line-height:var(--leading-normal);padding-bottom:var(--space-6);margin-bottom:var(--space-5);position:relative}.uses__body.prose>p:first-child::after{content:"";display:block;height:8px;margin-top:var(--space-6);background-color:var(--meander-color);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8' viewBox='0 0 16 8'%3E%3Cpath d='M0 4H2V1H6V4H4V7H8V4H10V7H14V4H12V1H16V4' fill='none' stroke='white' stroke-width='1'/%3E%3C/svg%3E");-webkit-mask-repeat:repeat-x;-webkit-mask-size:16px 8px;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8' viewBox='0 0 16 8'%3E%3Cpath d='M0 4H2V1H6V4H4V7H8V4H10V7H14V4H12V1H16V4' fill='none' stroke='white' stroke-width='1'/%3E%3C/svg%3E");mask-repeat:repeat-x;mask-size:16px 8px;opacity:var(--meander-opacity)}.uses__body.prose h2{font-family:var(--font-mono);font-size:var(--text-eyebrow);font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-top:var(--space-6);margin-bottom:var(--space-3);padding-bottom:0;border-bottom:none}.uses__body.prose h2 a.zola-anchor{display:none}.uses__body.prose ul{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:0;list-style:none;margin-bottom:var(--space-5)}.uses__body.prose ul li{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);font-size:var(--text-small);color:var(--text-secondary);line-height:var(--leading-snug)}.uses__body.prose ul li:nth-child(even){background:var(--bg-elevated)}.uses__body.prose ul li:last-child{border-bottom:none}.uses__body.prose ul li::before{display:none}.uses__body.prose ul li strong{font-family:var(--font-mono);font-size:var(--text-small);font-weight:500;color:var(--text-primary);letter-spacing:.02em}.uses__body.prose ul li a{color:var(--accent);text-decoration-color:var(--accent-dim)}pre{position:relative;background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin:var(--space-4) 0;overflow-x:auto;font-family:var(--font-mono);font-size:var(--text-mono);line-height:1.55;tab-size:2}pre::-webkit-scrollbar{height:4px}pre::-webkit-scrollbar-track{background:rgba(0,0,0,0)}pre::-webkit-scrollbar-thumb{background:var(--code-border);border-radius:var(--radius)}.code-copy-btn{position:absolute;top:var(--space-2);right:var(--space-2);padding:2px var(--space-2);font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary);background:var(--bg-elevated);border:1px solid var(--code-border);border-radius:var(--radius-sm);cursor:pointer;opacity:0;transition:opacity var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.code-copy-btn:hover{color:var(--text-secondary)}pre:hover .code-copy-btn,pre:focus-within .code-copy-btn{opacity:1}@media (hover: none),(pointer: coarse){.code-copy-btn{opacity:1}}.line-numbers{user-select:none;color:var(--text-tertiary);padding-right:var(--space-3);text-align:right}pre mark{display:block;background:var(--gold-wash);margin:0 calc(var(--space-4)*-1);padding:0 var(--space-4);border-left:2px solid var(--accent)}pre code{color:var(--text-primary)}pre code .z-comment{color:var(--text-tertiary);font-style:italic}pre code .z-keyword,pre code .z-storage,pre code .z-entity.z-name.z-tag{color:var(--gold-primary)}pre code .z-keyword.z-operator,pre code .z-punctuation,pre code .z-meta.z-brace{color:var(--syn-punctuation)}pre code .z-string{color:var(--syn-string)}pre code .z-constant{color:var(--syn-constant)}pre code .z-entity.z-name.z-type,pre code .z-entity.z-name.z-class,pre code .z-entity.z-name.z-module,pre code .z-support.z-type,pre code .z-support.z-class{color:var(--syn-type)}pre code .z-variable,pre code .z-entity.z-other.z-attribute-name,pre code .z-string.z-interpolated,pre code .z-meta.z-embedded{color:var(--syn-variable)}pre code .z-constant.z-other.z-symbol,pre code .z-string.z-other.z-link,pre code .z-markup.z-underline.z-link{color:var(--syn-symbol)}pre code .z-invalid{color:var(--ochre-primary)}pre code .z-markup.z-heading,pre code .z-entity.z-name.z-section{color:var(--gold-primary);font-weight:bold}pre code .z-markup.z-bold{font-weight:bold}pre code .z-markup.z-italic{font-style:italic}[data-theme=light]{--bg-primary: #F7F6F3;--bg-secondary: #EFEEE9;--bg-elevated: #E7E5E0;--bg-hover: #DFDDD8;--border: #D2D0CB;--border-hover: #BAB8B2;--gold-primary: #7D5A1E;--gold-deep: #7A5C1F;--gold-wash: rgba(125, 90, 30, 0.08);--ochre-primary: #6B2E1C;--ochre-wash: rgba(107, 46, 28, 0.06);--verdigris-primary: #3A5B4A;--verdigris-wash: rgba(58, 91, 74, 0.07);--text-primary: #1C1B18;--text-secondary: #4B4A45;--text-tertiary: #65645E;--code-bg: #EFEEE9;--code-border: #D2D0CB;--syn-string: #2E5040;--syn-constant: #8B4A28;--syn-type: #6B5A20;--syn-variable: #2E2B24;--syn-punctuation: #656259;--syn-symbol: #6B5020}html.theme-transitioning,html.theme-transitioning *,html.theme-transitioning *::before,html.theme-transitioning *::after{transition:background-color var(--duration-normal) var(--ease-out),color var(--duration-normal) var(--ease-out),border-color var(--duration-normal) var(--ease-out) !important}:root{color-scheme:dark}[data-theme=light]{color-scheme:light}