@font-face{font-family:ibm plex serif;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/plex-serif-300.woff2)format('woff2')}@font-face{font-family:ibm plex serif;font-style:italic;font-weight:300;font-display:swap;src:url(/assets/fonts/plex-serif-300-italic.woff2)format('woff2')}@font-face{font-family:ibm plex serif;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-serif-400.woff2)format('woff2')}@font-face{font-family:ibm plex serif;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-serif-400-italic.woff2)format('woff2')}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/plex-mono-300.woff2)format('woff2')}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-mono-400.woff2)format('woff2')}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plex-mono-500.woff2)format('woff2')}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/plex-mono-600.woff2)format('woff2')}*,*::before,*::after{box-sizing:border-box;border-radius:0}*{margin:0}html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;color-scheme:light dark}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{min-height:100dvh;line-height:var(--leading-relaxed)}img,picture,svg,video,canvas{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit;border-radius:0}button{background:0 0;border:0;cursor:pointer}a{color:inherit;text-decoration:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}::selection{background:var(--selection);color:var(--ink)}:focus-visible{outline:2px solid var(--rust);outline-offset:3px;border-radius:0}:focus:not(:focus-visible){outline:none}hr{border:0;border-top:1px solid var(--rule);margin-block:var(--space-8)}html{font-family:var(--font-mono);font-size:13px}body{background:var(--bg);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-base);font-weight:400;line-height:var(--leading-relaxed);letter-spacing:var(--tracking-normal);transition:background var(--motion-slow),color var(--motion-slow)}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:300;line-height:var(--leading-tight);letter-spacing:var(--tracking-tighter);color:var(--ink)}h5,h6{font-family:var(--font-mono);font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--ink-muted);font-size:var(--text-xs)}h1{font-size:clamp(36px,5vw,52px)}h2{font-size:clamp(24px,3vw,30px);letter-spacing:var(--tracking-tight)}h3{font-size:var(--text-2xl);font-weight:400;letter-spacing:-.01em}h4{font-size:var(--text-lg);font-weight:400;letter-spacing:0}h1 em,h2 em,h3 em{font-style:italic;color:var(--accent);font-weight:inherit}p{line-height:var(--leading-relaxed)}small{font-size:var(--text-sm);color:var(--ink-soft)}em,i{font-style:italic}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.95em}.label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--accent)}.label--muted{color:var(--ink-muted)}.lede{font-family:var(--font-serif);font-weight:300;font-size:clamp(15px,1.5vw,19px);line-height:var(--leading-normal);color:var(--ink-soft);max-width:64ch}.text-mono{font-family:var(--font-mono)}.text-serif{font-family:var(--font-serif)}.text-italic{font-style:italic}.text-accent{color:var(--accent)}.uppercase{text-transform:uppercase;letter-spacing:var(--tracking-wider)}.prose{max-width:760px;font-family:var(--font-serif);font-size:17px;line-height:1.65;color:var(--ink)}.prose>*+*{margin-top:16px}.prose h2,.prose h3,.prose h4{font-family:var(--font-serif);margin-top:48px;margin-bottom:12px;font-weight:300;letter-spacing:var(--tracking-tight);color:var(--ink)}.prose h2+*,.prose h3+*,.prose h4+*{margin-top:12px}.prose h2{font-size:30px}.prose h3{font-size:22px;font-weight:400}.prose h4{font-size:18px;font-weight:500}.prose a{color:var(--ink);border-bottom:1px solid var(--accent);transition:color var(--motion-fast)}.prose a:hover{color:var(--accent)}.prose em{font-style:italic}.prose strong{font-weight:600}.prose ul,.prose ol{padding-left:22px}.prose ul{list-style:square}.prose ol{list-style:decimal}.prose li+li{margin-top:6px}.prose li::marker{color:var(--ink-muted)}.prose blockquote{border-left:2px solid var(--accent);padding:4px 24px;font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:19px;line-height:var(--leading-snug);color:var(--ink-soft)}.prose hr{border:0;border-top:1px solid var(--line-soft);margin-block:48px}.prose img,.prose figure img{border:1px solid var(--line-soft)}.prose figure{display:flex;flex-direction:column;gap:8px}.prose figcaption{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--ink-muted)}.prose img,.prose video{max-width:100%;height:auto;display:block;margin:24px auto;border:1px solid var(--line-soft)}.prose code{background:var(--bg-2);color:var(--ink);padding:.1em .35em;border:1px solid var(--line-soft);font-family:var(--font-mono);font-size:.92em}.prose pre{background:var(--bg-2);color:var(--ink);padding:16px;border:1px solid var(--line-soft);overflow-x:auto;font-family:var(--font-mono);line-height:var(--leading-snug)}.prose pre code{background:0 0;border:0;padding:0;font-size:12.5px}.prose table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:12.5px}.prose th,.prose td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line-soft)}.prose th{font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-wide);font-size:11px;color:var(--ink);border-bottom-color:var(--line)}.activity{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.activity__cell{padding:18px 16px;border-right:1px solid var(--line-soft);display:flex;flex-direction:column;gap:10px;min-width:0;min-height:200px}.activity__cell:last-child{border-right:0}.activity__cell .lbl{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--accent)}.np{justify-content:flex-start}.np__body{display:flex;gap:14px;align-items:center;min-width:0;margin-top:auto;margin-bottom:auto}.np__cover{flex:none;width:100px;height:100px;background:var(--bg-2);overflow:hidden}.np__cover img{width:100%;height:100%;object-fit:cover;display:block}.np__text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.np__title{font-family:var(--font-serif);font-size:clamp(18px,1.8vw,22px);font-weight:300;line-height:var(--leading-tight);color:var(--ink);letter-spacing:var(--tracking-tighter);word-wrap:break-word}.np__title a{color:inherit;text-decoration:none;border-bottom:1px solid var(--line-soft);transition:border-color var(--motion-fast)}.np__title a:hover{border-bottom-color:var(--accent)}.np__sub{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);letter-spacing:var(--tracking-wide)}.np__when{font-family:var(--font-mono);font-size:10px;color:var(--ink-muted);margin-top:auto}.np__empty{font-family:var(--font-serif);font-style:italic;font-size:14px;color:var(--ink-muted);margin:0}.activity__heat{align-items:flex-start;justify-content:center}.heatmap{display:grid;grid-template-columns:repeat(13,16px);gap:3px;font-family:var(--font-mono);line-height:1;user-select:none}.heatmap__col{display:grid;grid-template-rows:repeat(7,16px);gap:2px}.heatmap__cell{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:default}.heatmap__cell--blank{color:transparent}.heatmap__cell.lvl-0{color:color-mix(in srgb,var(--ink-muted) 35%,transparent)}.heatmap__cell.lvl-1{color:color-mix(in srgb,var(--accent) 35%,var(--ink-muted))}.heatmap__cell.lvl-2{color:color-mix(in srgb,var(--accent) 60%,var(--ink-soft))}.heatmap__cell.lvl-3{color:color-mix(in srgb,var(--accent) 80%,var(--ink))}.heatmap__cell.lvl-4{color:var(--accent)}.activity__sub{font-family:var(--font-mono);font-size:10px;color:var(--ink-muted);letter-spacing:var(--tracking-wide);text-transform:uppercase;margin-top:auto;font-variant-numeric:tabular-nums}.activity__sub em{font-style:italic;color:var(--accent);text-transform:none}@media(max-width:540px){.activity{grid-template-columns:1fr}.activity__cell{border-right:0;border-bottom:1px solid var(--line-soft)}.activity__cell:last-child{border-bottom:0}.heatmap__cell{width:14px;height:14px;font-size:12px}}.alert{display:flex;gap:var(--space-3);padding:var(--space-3)var(--space-4);border:1px solid var(--rule);background:var(--surface);font-family:var(--font-serif);font-size:var(--text-sm)}.alert--success{border-left:3px solid var(--status-active)}.alert--error{border-left:3px solid var(--rust);color:var(--ink)}.alert--info{border-left:3px solid var(--neutral-400)}.alert__title{font-family:var(--font-mono);font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-widest);font-size:var(--text-xs)}.alert__body{color:var(--ink)}.btn{font-family:var(--font-mono);font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:var(--tracking-wider);padding:9px 16px;border:1px solid var(--line);background:0 0;color:var(--ink);text-decoration:none;cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:8px;min-height:36px;transition:all var(--motion-fast)}.btn:hover{background:var(--ink);color:var(--bg)}.btn--primary{background:var(--ink);color:var(--bg)}.btn--primary:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.btn--ghost{border-color:var(--line-soft);color:var(--ink)}.btn--ghost:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn--accent{background:var(--accent);border-color:var(--accent);color:var(--bg)}.btn--accent:hover{background:var(--ink);border-color:var(--ink)}.btn--link{background:0 0;border:0;border-bottom:1px solid var(--accent);padding:0 0 2px;min-height:0;color:var(--ink);text-transform:none;letter-spacing:0;font-family:var(--font-serif);font-style:italic;font-size:14px}.btn--link:hover{color:var(--accent);background:0 0}.card{background:var(--paper);border:1px solid var(--rule);padding:var(--space-6);transition:border-color var(--motion-fast)}.card--inset{background:var(--surface)}.card--flat{background:0 0;border:0;padding:0}.card--interactive{cursor:pointer}.card--interactive:hover{border-color:var(--rust)}.card__title{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-2);letter-spacing:var(--tracking-tight)}.card__excerpt{font-family:var(--font-serif);color:var(--neutral-700);font-size:var(--text-base);line-height:var(--leading-relaxed)}.card__footer{margin-top:var(--space-4);display:flex;align-items:center;gap:var(--space-3)}.prose pre.ch-chroma{background:var(--code-bg);color:var(--code-fg);border-color:var(--code-border)}.prose pre.ch-chroma code{color:var(--code-fg)}.ch-c,.ch-cm,.ch-c1,.ch-cs,.ch-cp,.ch-cpf{color:var(--code-comment);font-style:italic}.ch-k,.ch-kc,.ch-kd,.ch-kn,.ch-kp,.ch-kr{color:var(--code-keyword)}.ch-kt,.ch-nc,.ch-nd,.ch-ne{color:var(--code-type);font-style:italic}.ch-nf,.ch-fm{color:var(--code-fn);font-weight:500}.ch-n,.ch-na,.ch-no,.ch-ni,.ch-py,.ch-nl,.ch-nn,.ch-nx,.ch-nt,.ch-nv,.ch-vc,.ch-vg,.ch-vi,.ch-vm{color:var(--code-fg)}.ch-s,.ch-sa,.ch-sb,.ch-sc,.ch-dl,.ch-sd,.ch-s2,.ch-se,.ch-sh,.ch-si,.ch-sx,.ch-sr,.ch-s1,.ch-ss{color:var(--code-string)}.ch-m,.ch-mb,.ch-mf,.ch-mh,.ch-mi,.ch-il,.ch-mo{color:var(--code-number)}.ch-o,.ch-ow,.ch-p{color:var(--code-operator)}.ch-nb,.ch-bp{color:var(--code-builtin)}.ch-err{color:var(--code-error);text-decoration:underline wavy}.ch-gd{color:var(--code-diff-del)}.ch-gi{color:var(--code-diff-add)}.ch-gh{color:var(--code-fn);font-weight:500}.ch-gu{color:var(--code-builtin)}.ch-ge{font-style:italic}.ch-gs{font-weight:500}.ch-gr{color:var(--code-error)}.ch-gp{color:var(--code-comment)}.page:has(.docs-layout){max-width:1180px}.docs-layout{display:grid;grid-template-columns:220px minmax(0,760px);gap:64px;align-items:start;justify-content:center}.docs-sidebar{position:sticky;top:24px;align-self:start;max-height:calc(100vh - 48px);overflow-y:auto;font-family:var(--font-mono);font-size:12.5px;line-height:1.6}.docs-sidebar__project{padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--line-soft)}.docs-sidebar__project a{color:var(--ink)}.docs-sidebar .muted{opacity:.6}.docs-tree__section{margin-bottom:18px}.docs-tree__section h4{margin:0 0 6px;font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft,var(--ink));opacity:.7}.docs-tree ul{list-style:none;margin:0;padding:0}.docs-tree li{margin:0}.docs-tree a{display:block;padding:3px 0;color:var(--ink);text-decoration:none;border-left:2px solid transparent;padding-left:10px;margin-left:-12px}.docs-tree a:hover{color:var(--accent)}.docs-tree a[aria-current=page]{color:var(--accent);border-left-color:var(--accent)}.docs-content{min-width:0}.docs-content .prose{max-width:760px}.docs-content .prose :is(h2,h3,h4){position:relative}.docs-content .prose :is(h2,h3,h4):hover::before{content:"§";position:absolute;left:-1.2em;color:var(--accent);opacity:.6;font-weight:400}.docs-pager{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:64px;padding-top:24px;border-top:1px solid var(--line-soft);font-family:var(--font-mono);font-size:12px}.docs-pager__cell--next{text-align:right}.docs-pager a{display:block;text-decoration:none;color:var(--ink)}.docs-pager a:hover .docs-pager__title{color:var(--accent)}.docs-pager__dir{display:block;text-transform:uppercase;letter-spacing:.06em;opacity:.6;margin-bottom:4px}.docs-pager__title{font-family:var(--font-serif);font-size:16px}@media(max-width:800px){.docs-layout{grid-template-columns:1fr;gap:24px}.docs-sidebar{position:static;max-height:none;border-bottom:1px solid var(--line-soft);padding-bottom:16px}}.entries{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-soft)}.entry{display:grid;grid-template-columns:90px 56px 1fr 60px;gap:24px;padding:18px 0;border-bottom:1px solid var(--line-soft);transition:padding-left var(--motion-base),color var(--motion-fast);text-decoration:none;color:var(--ink);align-items:baseline}.entry:hover{padding-left:12px}.e-date{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.e-title{font-family:var(--font-serif);font-size:17px;line-height:1.3;font-weight:400;color:var(--ink);letter-spacing:0;transition:color var(--motion-fast)}.entry:hover .e-title{color:var(--accent)}.e-title em{font-style:italic;color:var(--ink-soft)}.e-cat{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--ink-muted);white-space:nowrap}.e-len{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--ink-muted);text-align:right;white-space:nowrap}@media(max-width:600px){.entry{grid-template-columns:80px 48px 1fr;gap:16px}.e-len{display:none}}.year-group{margin-bottom:32px}.year-group__head{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:4px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wider)}.year-group__year{color:var(--ink);font-weight:500}.year-group__count{color:var(--ink-muted)}.filter-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--line-soft);margin-bottom:32px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--ink-muted)}.filter-row .chips{display:inline-flex;gap:16px;flex-wrap:wrap}.filter-row .chip{color:var(--ink-muted);background:0 0;border:0;padding:0;cursor:pointer;text-transform:inherit;letter-spacing:inherit;font:inherit;transition:color var(--motion-fast)}.filter-row .chip:hover{color:var(--ink)}.filter-row .chip--active{color:var(--accent)}.filter-row .chip--active::before{content:"/";color:var(--accent);margin-right:1px}.filter-row .spacer{flex:1}.featured{position:relative;border-left:2px solid var(--accent);padding:14px 0 14px 24px;margin-block:24px}.featured .label{display:block;margin-bottom:12px}.featured h2,.featured h3{font-family:var(--font-serif);font-size:clamp(24px,3.4vw,32px);font-weight:400;line-height:1.15;letter-spacing:-.015em;color:var(--ink);margin:0 0 12px}.featured h2 em,.featured h3 em{font-style:italic;color:var(--accent)}.featured h2 a,.featured h3 a{color:var(--ink);background-image:linear-gradient(var(--accent),var(--accent));background-size:0% 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--motion-cinema),color var(--motion-fast)}.featured h2 a:hover,.featured h3 a:hover{background-size:100% 1px;color:var(--accent)}.featured p{font-family:var(--font-serif);font-weight:300;font-size:15px;line-height:var(--leading-normal);color:var(--ink-soft);max-width:60ch;margin-bottom:12px}.featured .meta{display:flex;gap:24px;flex-wrap:wrap;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--ink-muted)}.featured .meta strong{color:var(--ink);font-weight:500}.featured-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.featured-card{display:flex;flex-direction:column;gap:14px;padding:28px;border:1px solid var(--line-soft);background:var(--bg);text-decoration:none;color:var(--ink);transition:border-color var(--motion-fast),background var(--motion-fast);min-height:260px}.featured-card:hover{border-color:var(--line);background:var(--bg-2)}.featured-card:hover .featured-card__title{color:var(--accent)}.featured-card__eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--ink-muted)}.featured-card__eyebrow .sep{color:var(--line-soft)}.featured-card__title{font-family:var(--font-serif);font-size:clamp(22px,2.6vw,28px);font-weight:400;line-height:1.15;letter-spacing:-.015em;color:var(--ink);transition:color var(--motion-fast);margin:0}.featured-card__title em{font-style:italic;color:var(--accent);font-weight:400}.featured-card__desc{font-family:var(--font-serif);font-weight:300;font-size:14px;line-height:var(--leading-normal);color:var(--ink-soft);max-width:56ch}.featured-card__foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line-soft);display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--ink-muted);white-space:nowrap}.featured-card__foot strong{color:var(--ink);font-weight:500}@media(max-width:600px){.featured-grid{grid-template-columns:1fr}.featured-card{min-height:0;padding:24px}}.bottom{border-top:1px solid var(--line);margin-top:64px;padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--ink-muted)}.bottom>div+div{display:flex;gap:16px}.bottom a{color:var(--ink-muted);transition:color var(--motion-fast)}.bottom a:hover{color:var(--accent)}.hero{margin-bottom:56px}.hero h1{font-family:var(--font-serif);font-size:clamp(40px,6vw,64px);font-weight:300;line-height:1.05;letter-spacing:var(--tracking-tighter);color:var(--ink);margin-bottom:24px;max-width:14ch}.hero h1 em{font-style:italic;color:var(--accent);font-weight:300}.hero__lede{font-family:var(--font-serif);font-weight:300;font-size:19px;line-height:var(--leading-normal);color:var(--ink-soft);max-width:580px;margin-bottom:24px}.hero__lede a{color:var(--ink);border-bottom:1px solid var(--ink-muted);transition:color var(--motion-fast),border-color var(--motion-fast)}.hero__lede a:hover{color:var(--accent);border-bottom-color:var(--accent)}.hero__quick{display:flex;flex-wrap:wrap;gap:18px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-widest);padding-top:14px;border-top:1px solid var(--line-soft)}.hero__quick a{color:var(--ink-muted);transition:color var(--motion-fast)}.hero__quick a::before{content:"/";color:var(--ink-muted);margin-right:1px}.hero__quick a:hover,.hero__quick a:hover::before{color:var(--accent)}.id-card{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:24px;background:var(--bg-2);border:1px solid var(--line-soft)}.id-block{padding:4px 24px 4px 0;display:flex;flex-direction:column;gap:8px}.id-block+.id-block{padding-right:0;padding-left:24px;border-left:1px solid var(--line-soft)}.id-block .label{display:block;margin-bottom:4px}.id-block .val{font-family:var(--font-serif);font-size:16px;line-height:var(--leading-snug);color:var(--ink);font-weight:300}.id-block .val a{color:var(--ink);border-bottom:1px solid var(--accent);transition:color var(--motion-fast)}.id-block .val a:hover{color:var(--accent)}.id-block .val em{font-style:italic;color:var(--accent)}@media(max-width:600px){.id-card{grid-template-columns:1fr}.id-block,.id-block+.id-block{padding:14px 0;border-left:0;border-bottom:1px solid var(--line-soft)}.id-block:last-child{border-bottom:0}}.link{color:var(--ink);border-bottom:1px solid var(--rust);transition:color var(--motion-fast),border-color var(--motion-fast)}.link:hover{color:var(--rust)}.link--plain{color:inherit;border-bottom:0}.link--plain:hover{color:var(--rust)}.link--muted{color:var(--neutral-500);border-bottom:0}.link--muted:hover{color:var(--ink)}.nav{display:flex;align-items:center;gap:var(--space-6)}.nav__brand{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-wide);color:var(--ink)}.nav__list{display:flex;gap:var(--space-6);list-style:none;padding:0;margin:0}.nav__link{position:relative;display:inline-flex;align-items:center;height:44px;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--neutral-600);transition:color var(--motion-fast)}.nav__link::after{content:"";position:absolute;left:0;right:0;bottom:10px;height:1px;background:var(--rust);transform:scaleX(0);transform-origin:left;transition:transform var(--motion-fast)}.nav__link:hover{color:var(--ink)}.nav__link:hover::after,.nav__link--active::after{transform:scaleX(1)}.nav__link--active{color:var(--ink)}.nav__spacer{flex:1}@media(max-width:720px){.nav{gap:var(--space-3);flex-wrap:wrap}.nav__list{gap:var(--space-4)}}.flagship{border:1px solid var(--line-soft);background:var(--bg-2);padding:28px;display:flex;flex-direction:column;gap:18px}.flagship__head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.flagship__name{font-family:var(--font-mono);font-size:18px;font-weight:500;color:var(--ink);letter-spacing:0}.flagship__name::before{content:"/";color:var(--accent);margin-right:1px}.flagship__version{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--ink-muted)}.flagship__version strong{color:var(--accent);font-weight:500}.flagship__title{font-family:var(--font-serif);font-size:clamp(24px,3vw,32px);font-weight:300;line-height:1.15;letter-spacing:var(--tracking-tighter);color:var(--ink)}.flagship__title em{font-style:italic;color:var(--accent);font-weight:300}.flagship__desc{font-family:var(--font-serif);font-weight:300;font-size:17px;line-height:var(--leading-normal);color:var(--ink-soft);max-width:60ch}.flagship__meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:var(--bg)}.flagship__meta-cell{padding:14px;border-right:1px solid var(--line-soft);display:flex;flex-direction:column;gap:4px}.flagship__meta-cell:last-child{border-right:0}.flagship__meta-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--ink-muted)}.flagship__meta-value{font-family:var(--font-mono);font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums}.flagship__actions{display:flex;gap:12px;flex-wrap:wrap}@media(max-width:600px){.flagship__meta{grid-template-columns:1fr 1fr}.flagship__meta-cell:nth-child(2n){border-right:0}.flagship__meta-cell:nth-child(-n+2){border-bottom:1px solid var(--line-soft)}}.proj-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-soft)}.proj{display:grid;grid-template-columns:1fr auto;gap:24px;padding:16px 0;border-bottom:1px solid var(--line-soft);text-decoration:none;color:var(--ink);transition:padding-left var(--motion-base);align-items:start}.proj:hover{padding-left:12px}.p-title-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.p-name{font-family:var(--font-mono);font-size:15px;font-weight:500;color:var(--ink);letter-spacing:0;transition:color var(--motion-fast)}.p-name::before{content:"/";color:var(--ink-muted);margin-right:1px}.proj:hover .p-name{color:var(--accent)}.proj:hover .p-name::before{color:var(--accent)}.p-version{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--ink-muted)}.p-version strong{color:var(--ink);font-weight:500}.p-desc{font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:14px;line-height:var(--leading-snug);color:var(--ink-soft);margin-top:4px;max-width:60ch}.p-tags{display:inline-flex;align-items:center;gap:12px;margin-top:8px;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--ink-muted)}.tag{color:inherit}.tag.stars{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;line-height:1;color:var(--ink)}.tag.stars::before{content:"★";font-size:14px;line-height:1;color:var(--accent)}.tag[data-lang]::before{content:"";display:inline-block;width:7px;height:7px;background:var(--lang-default);margin-right:6px;vertical-align:1px}.tag[data-lang=go]::before{background:var(--lang-go)}.tag[data-lang=js]::before,.tag[data-lang=javascript]::before{background:var(--lang-js)}.tag[data-lang=ts]::before,.tag[data-lang=typescript]::before{background:var(--lang-ts)}.tag[data-lang=rust]::before{background:var(--lang-rust)}.tag[data-lang=python]::before{background:var(--lang-python)}.tag[data-lang=shell]::before,.tag[data-lang=bash]::before{background:var(--lang-shell)}.p-status{text-align:right;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--ink-muted);display:flex;flex-direction:column;gap:4px;white-space:nowrap}.p-status .live{color:var(--ink)}.p-status .live::before{content:"● ";color:var(--accent-2)}.p-status .wip{color:var(--ink)}.p-status .wip::before{content:"◐ ";color:var(--accent)}.p-status .archive{color:var(--ink-muted)}.p-status .archive::before{content:"○ ";color:var(--ink-muted)}.p-status .date{color:var(--ink-muted)}.p-role{display:inline-block;min-width:90px;padding:0 6px;border:1px solid var(--accent);color:var(--accent);font-family:var(--font-mono);font-size:10px;font-weight:500;text-align:center;text-transform:uppercase;letter-spacing:var(--tracking-widest);border-radius:2px;vertical-align:middle;align-self:flex-end}@media(max-width:600px){.proj{grid-template-columns:1fr}.p-status{text-align:left}}.release-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-soft)}.release{display:grid;grid-template-columns:90px 5rem 1fr auto;gap:16px;padding:14px 0;border-bottom:1px solid var(--line-soft);align-items:baseline}.r-date{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--ink-muted);font-variant-numeric:tabular-nums}.r-project{font-family:var(--font-mono);font-size:12px;color:var(--ink)}.r-project::before{content:"/";color:var(--ink-muted);margin-right:1px}.r-msg{font-family:var(--font-serif);font-size:14px;color:var(--ink-soft);line-height:var(--leading-snug)}.r-tag{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-wide);padding:3px 8px;border:1px solid;white-space:nowrap}.r-tag--major{color:var(--accent)}.r-tag--minor{color:var(--accent-2)}.r-tag--patch{color:var(--ink-muted)}@media(max-width:600px){.release{grid-template-columns:1fr auto}.r-date,.r-project{grid-column:1/-1}}.series-nav{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:56px;padding-top:24px;border-top:1px solid var(--line)}.series-nav__cell{padding:16px 24px;display:flex;flex-direction:column;gap:6px;min-height:64px}.series-nav__cell--next{text-align:right;border-left:1px solid var(--line-soft)}.series-nav__cell a{display:flex;flex-direction:column;gap:6px;color:var(--ink);text-decoration:none;transition:color var(--motion-fast)}.series-nav__cell a:hover{color:var(--accent)}.series-nav__cell a:hover .series-nav__title{color:var(--accent)}.series-nav__dir{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--ink-muted)}.series-nav__title{font-family:var(--font-serif);font-size:17px;line-height:1.3;color:var(--ink);letter-spacing:0}@media(max-width:600px){.series-nav{grid-template-columns:1fr}.series-nav__cell--next{text-align:left;border-left:0;border-top:1px solid var(--line-soft)}}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line)}.stat{padding:16px;border-right:1px solid var(--line-soft);display:flex;flex-direction:column;gap:6px}.stat:last-child{border-right:0}.stat .num{font-family:var(--font-serif);font-size:clamp(24px,3vw,32px);font-weight:300;line-height:1;letter-spacing:var(--tracking-tighter);color:var(--ink);font-variant-numeric:tabular-nums}.stat .num em{font-style:italic;color:var(--accent);font-weight:300}.stat .lbl{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--ink-muted)}@media(max-width:600px){.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2n){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line-soft)}}.subscribe{margin-top:56px;padding:28px;background:var(--bg-2);border:1px solid var(--line-soft)}.subscribe .label{display:block;margin-bottom:14px}.subscribe h3{font-family:var(--font-serif);font-size:22px;font-weight:300;line-height:1.2;letter-spacing:-.01em;color:var(--ink);margin-bottom:8px}.subscribe h3 em{font-style:italic;color:var(--accent)}.subscribe p{font-family:var(--font-mono);font-size:13px;color:var(--ink-soft);margin-bottom:18px;max-width:60ch}.sub-form{display:flex;border:1px solid var(--line);background:var(--bg)}.sub-form input[type=email]{flex:1;background:0 0;border:0;padding:12px 14px;font-family:var(--font-mono);font-size:13px;color:var(--ink);min-width:0}.sub-form input[type=email]:focus{outline:none;background:var(--bg-2)}.sub-form button{background:var(--ink);color:var(--bg);border:0;padding:12px 20px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wider);cursor:pointer;transition:background var(--motion-fast)}.sub-form button:hover{background:var(--accent)}@media(max-width:540px){.sub-form{flex-direction:column}.sub-form button{padding:14px}}.tag-cloud{display:flex;flex-wrap:wrap;gap:14px 18px;padding-block:24px;align-items:baseline;border-top:1px solid var(--line-soft)}.tag-cloud__item{display:inline-flex;align-items:baseline;gap:4px;font-family:var(--font-serif);color:var(--ink);letter-spacing:-.01em;text-decoration:none;border-bottom:1px solid transparent;transition:color var(--motion-fast),border-color var(--motion-fast)}.tag-cloud__item:hover{color:var(--accent);border-bottom-color:var(--accent)}.tag-cloud__count{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--ink-muted);vertical-align:4px}.tag-cloud__item:hover .tag-cloud__count{color:var(--accent)}.tag-cloud__item--xl{font-size:28px;font-weight:400}.tag-cloud__item--lg{font-size:22px;font-weight:400}.tag-cloud__item--md{font-size:18px}.tag-cloud__item--sm{font-size:15px;color:var(--ink-soft)}.tag-cloud__item--xs{font-size:14px;color:var(--ink-muted)}.tag-stream__row .e-cat{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--accent);margin-right:10px}.tag-stream__dek{font-family:var(--font-serif);font-style:italic;color:var(--ink-soft);font-weight:300}.theme-switcher{display:inline-flex;align-items:center}.theme-switcher form{margin:0;padding:0}.theme-switcher form:has(.theme-switcher__btn[aria-pressed=true]){display:none}.theme-switcher__btn{background:0 0;border:1px solid var(--line);color:var(--ink);padding:4px 10px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:all var(--motion-fast);display:inline-flex;align-items:center;gap:6px}.theme-switcher__btn:hover{background:var(--ink);color:var(--bg)}.theme-switcher__btn svg{display:none}.theme-switcher__btn::after{content:"→";color:var(--accent);transition:color var(--motion-fast)}.theme-switcher__btn:hover::after{color:var(--bg)}.layout{min-height:100dvh;display:flex;flex-direction:column}.page{max-width:1080px;margin:0 auto;padding:48px 32px 56px;width:100%}.reading{max-width:760px;margin-inline:auto}@media(max-width:600px){.page{padding:24px 18px 60px}}.top{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:24px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--ink-muted)}.top__brand{color:var(--ink)}.top__brand-link{color:inherit;text-decoration:none}.top__brand-link:hover{color:var(--accent)}.top__brand strong{font-weight:500}.top__brand .sep{color:var(--ink-muted);margin-inline:4px}.top__section{color:var(--accent)}.pages{display:flex;flex-wrap:wrap;gap:24px;padding:12px 0;border-bottom:1px solid var(--line-soft);margin-bottom:56px;font-family:var(--font-mono);font-size:12px;text-transform:lowercase;letter-spacing:.04em}.pages a{color:var(--ink-soft);transition:color var(--motion-fast)}.pages a::before{content:"/";color:var(--ink-muted);margin-right:1px}.pages a:hover{color:var(--ink)}.pages a:hover::before{color:var(--ink)}.pages a[aria-current=page]{color:var(--accent)}.pages a[aria-current=page]::before{color:var(--accent)}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--line);margin-top:56px;margin-bottom:24px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-widest)}.section-title h2{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--ink);margin:0}.section-title h2::before{content:"// ";color:var(--accent)}.section-title span{color:var(--ink-muted)}.page-header{margin-bottom:56px}.page-header .label{display:block;margin-bottom:14px}.page-header h1{font-family:var(--font-serif);font-size:clamp(36px,5vw,52px);font-weight:300;line-height:1.05;letter-spacing:var(--tracking-tighter);color:var(--ink);margin-bottom:14px}.page-header h1 em{font-style:italic;color:var(--accent);font-weight:300}.page-header .desc{font-family:var(--font-serif);font-weight:300;font-size:17px;line-height:var(--leading-normal);color:var(--ink-soft);max-width:580px}.archive-note{margin-top:56px;padding-top:24px;border-top:1px solid var(--line-soft);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--ink-muted)}:root[data-theme=dark]{--bg:#1a1813;--bg-2:#221f18;--ink:#e8e3d2;--ink-soft:#b8b39f;--ink-muted:#7a7665;--accent:#c578b0;--accent-2:#9ab87a;--line:#e8e3d2;--line-soft:#2e2a20;--status-active:var(--accent-2);--status-progress:var(--accent);--status-archive:var(--ink-muted);--lang-default:#b8b39f;--lang-go:#6db1d4;--lang-js:#d4b25c;--lang-ts:#6e9ed4;--lang-rust:#d49060;--lang-python:#94c4a0;--lang-shell:#b8b39f;--code-bg:#1f1c16;--code-fg:var(--ink);--code-border:var(--line-soft);--code-comment:#7c7665;--code-keyword:#c89cd6;--code-type:#b8a4d6;--code-fn:#ece6d8;--code-string:#a8c282;--code-number:#d8b06e;--code-builtin:#a39b8a;--code-operator:#756e5f;--code-error:#e87a4e;--code-diff-add:#a8c282;--code-diff-del:#e87a4e;--paper:var(--bg);--paper-2:var(--bg-2);--rust:var(--accent);--rust-soft:#d490c1;--rule:var(--line-soft);--rule-strong:var(--line);--neutral-100:var(--bg-2);--neutral-200:#2a261e;--neutral-300:#36322a;--neutral-400:#53503f;--neutral-500:var(--ink-muted);--neutral-600:var(--ink-soft);--neutral-700:#cfc9b5;--surface:var(--bg-2);--surface-2:#2a261e;--fg:var(--ink);--fg-muted:var(--ink-soft);--fg-subtle:var(--ink-muted);--border:var(--line-soft);--border-strong:var(--line);--selection:color-mix(in srgb, var(--accent) 35%, var(--bg));--code-bg:var(--bg-2);--code-fg:var(--ink);--accent-fg:var(--bg);--accent-hover:#d490c1;--success:var(--accent-2)}@media(prefers-color-scheme:dark){:root:not([data-theme]){--bg:#1a1813;--bg-2:#221f18;--ink:#e8e3d2;--ink-soft:#b8b39f;--ink-muted:#7a7665;--accent:#c578b0;--accent-2:#9ab87a;--line:#e8e3d2;--line-soft:#2e2a20;--status-active:var(--accent-2);--status-progress:var(--accent);--status-archive:var(--ink-muted);--paper:var(--bg);--paper-2:var(--bg-2);--rust:var(--accent);--rust-soft:#d490c1;--rule:var(--line-soft);--rule-strong:var(--line);--surface:var(--bg-2);--surface-2:#2a261e;--fg:var(--ink);--fg-muted:var(--ink-soft);--fg-subtle:var(--ink-muted);--border:var(--line-soft);--border-strong:var(--line);--code-bg:var(--bg-2);--code-fg:var(--ink);--accent-fg:var(--bg)}}:root{--bg:#efece3;--bg-2:#e6e2d4;--ink:#1c1a14;--ink-soft:#4d4a3f;--ink-muted:#8e8a7a;--accent:#a01e7a;--accent-2:#5a7a3e;--line:#1c1a14;--line-soft:#c5c0b0;--status-active:var(--accent-2);--status-progress:var(--accent);--status-archive:var(--ink-muted);--lang-default:#4d4a3f;--lang-go:#1a4f6f;--lang-js:#7a6210;--lang-ts:#2c4f7c;--lang-rust:#6b3a1c;--lang-python:#3a5a4a;--lang-shell:#4d4a3f;--code-bg:#efe9dc;--code-fg:var(--ink);--code-border:var(--line-soft);--code-comment:#7a7665;--code-keyword:#6c3a8c;--code-type:#5a4a8c;--code-fn:#1c1a14;--code-string:#4a6a2c;--code-number:#7a5a1a;--code-builtin:#4d4a3f;--code-operator:#8e8a7a;--code-error:#b8421e;--code-diff-add:#4a6a2c;--code-diff-del:#b8421e;--paper:var(--bg);--paper-2:var(--bg-2);--rust:var(--accent);--rust-soft:#b53291;--rule:var(--line-soft);--rule-strong:var(--line);--neutral-100:var(--bg-2);--neutral-200:#d8d3c1;--neutral-300:#c5c0b0;--neutral-400:#a8a294;--neutral-500:var(--ink-muted);--neutral-600:var(--ink-soft);--neutral-700:#2f2c25;--surface:var(--bg-2);--surface-2:#d8d3c1;--fg:var(--ink);--fg-muted:var(--ink-soft);--fg-subtle:var(--ink-muted);--border:var(--line-soft);--border-strong:var(--line);--selection:color-mix(in srgb, var(--accent) 28%, var(--bg));--code-bg:var(--bg-2);--code-fg:var(--ink);--accent-fg:var(--bg);--accent-hover:#b53291;--danger:var(--accent);--danger-fg:var(--bg);--success:var(--accent-2);--font-mono:'IBM Plex Mono', ui-monospace, Menlo, Consolas, monospace;--font-serif:'IBM Plex Serif', Georgia, serif;--font-display:var(--font-serif);--font-sans:var(--font-mono);--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:17px;--text-xl:19px;--text-2xl:22px;--text-3xl:28px;--text-4xl:32px;--text-5xl:40px;--text-6xl:52px;--text-7xl:64px;--leading-none:1;--leading-tight:1.05;--leading-snug:1.3;--leading-normal:1.55;--leading-relaxed:1.6;--tracking-tight:-0.015em;--tracking-tighter:-0.025em;--tracking-normal:0;--tracking-wide:0.08em;--tracking-wider:0.10em;--tracking-widest:0.15em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:14px;--space-5:16px;--space-6:18px;--space-7:20px;--space-8:24px;--space-9:28px;--space-10:32px;--space-12:48px;--space-14:56px;--space-16:64px;--space-20:80px;--radius-sm:0;--radius-md:0;--radius-lg:0;--radius-pill:0;--shell-max:760px;--content-width:760px;--content-width-wide:760px;--page-padding-x:32px;--page-padding-top:48px;--page-padding-bottom:80px;--motion-fast:0.15s ease;--motion-base:0.2s ease;--motion-slow:0.3s ease;--motion-cinema:0.4s ease}@media(prefers-reduced-motion:reduce){:root{--motion-fast:0s;--motion-base:0s;--motion-slow:0s;--motion-cinema:0s}}