:root{--bg: #F7F6F3;--bg-soft: #EFEEE9;--bg-code: #EDEBE3;--ink: #14130F;--ink-2: #4A4842;--ink-3: #8A877E;--rule: #E2DFD6;--accent: #2F4A3E;--syn-kw: #7A3E20;--syn-str: #5A5A2E;--syn-com: #8A877E;--syn-num: #6B3F5E;--syn-cls: #2F4A3E;--syn-sym: #3E5C47}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:"Geist", ui-sans-serif, system-ui, sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01" 1}::selection{background:var(--accent);color:var(--bg)}a{color:inherit;text-decoration:none}.mono{font-family:"JetBrains Mono", ui-monospace, monospace;font-feature-settings:"zero" 1}.serif{font-family:"Newsreader", Georgia, serif}.shell{max-width:1060px;margin:0 auto;padding:0 32px}.shell--narrow{max-width:720px}header.nav{padding:28px 0 0}header.nav .inner{max-width:1060px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;font-family:"JetBrains Mono", monospace;font-size:12px;letter-spacing:0.02em}header.nav .brand{color:var(--ink);font-weight:500}header.nav .brand .dot{color:var(--accent)}header.nav nav{display:flex;gap:24px}header.nav nav a{color:var(--ink-3);transition:color .18s ease;position:relative;padding-bottom:2px}header.nav nav a:hover{color:var(--ink)}header.nav nav a.active{color:var(--ink)}header.nav nav a.active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--accent)}header.nav nav a.hire{color:var(--ink);padding-left:14px}header.nav nav a.hire::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;border-radius:50%;background:var(--accent);transform:translateY(-50%);animation:pulse 2.4s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(47,74,62,0.35)}70%{box-shadow:0 0 0 10px rgba(47,74,62,0)}100%{box-shadow:0 0 0 0 rgba(47,74,62,0)}}.back{padding-top:36px}.back a{font-family:"JetBrains Mono", monospace;font-size:12px;color:var(--ink-3);display:inline-flex;align-items:center;gap:8px;transition:color .2s, gap .2s}.back a:hover{color:var(--accent);gap:12px}.layout{display:grid;grid-template-columns:minmax(0, 1fr) 220px;gap:64px;align-items:start}.layout>main{min-width:0;max-width:720px}.layout--talk{grid-template-columns:minmax(0, 1fr) 260px}@media (max-width: 920px){.layout--talk{grid-template-columns:1fr;gap:24px}}@media (max-width: 860px){.layout{grid-template-columns:1fr;gap:24px}}.rail{position:sticky;top:32px;padding-top:110px;font-family:"JetBrains Mono", monospace;font-size:11px;line-height:1.6;max-height:calc(100vh - 64px);overflow-y:auto}.rail--post{padding-top:36px}.rail--tag{padding-top:72px}.rail--talk{padding-top:24px}.rail h5{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-3);margin:0 0 14px;font-weight:400}.rail ol,.rail ul{list-style:none;padding:0;margin:0 0 28px;border-left:1px solid var(--rule)}.rail li{margin:0}.rail ol a,.rail ul a{display:block;padding:5px 0 5px 14px;margin-left:-1px;color:var(--ink-3);border-left:1px solid transparent;transition:color .2s, border-color .2s;letter-spacing:0.01em}.rail ol a:hover,.rail ul a:hover{color:var(--ink)}.rail ol a.is-active,.rail ul a.is-active{color:var(--accent);border-left-color:var(--accent)}.rail ol li.lvl-2 a{padding-left:28px}.rail ol li.lvl-3 a{padding-left:42px}.rail ul.tag-list a{display:flex;justify-content:space-between;align-items:baseline;padding-right:12px;gap:10px}.rail ul.tag-list .cnt{color:var(--ink-3);font-size:10px;letter-spacing:0}.rail__card{border:1px solid var(--rule);border-radius:10px;padding:16px;margin-bottom:20px;background:var(--bg-soft)}.rail__card--plain{background:transparent}.rail__card .status{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--ink)}.rail__card .status .pulse{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 2.4s ease-out infinite;flex:none}.rail__card p{margin:0 0 12px;font-family:"Newsreader", Georgia, serif;font-style:italic;font-size:14px;line-height:1.4;color:var(--ink-2);font-variation-settings:"opsz" 24}.rail__card a.cta{display:inline-flex;align-items:center;gap:6px;color:var(--ink);border-bottom:1px solid var(--rule);padding-bottom:2px;font-size:11px;transition:color .2s, border-color .2s}.rail__card a.cta:hover{color:var(--accent);border-color:var(--accent)}.meta-card{border:1px solid var(--rule);border-radius:10px;padding:18px;margin-bottom:20px;background:var(--bg-soft)}.meta-card dl{margin:0;display:grid;gap:12px}.meta-card .row{display:grid;grid-template-columns:74px 1fr;gap:10px;align-items:baseline}.meta-card dt{color:var(--ink-3);letter-spacing:0.04em;font-size:11px}.meta-card dd{margin:0;font-family:"Geist", sans-serif;font-size:13px;color:var(--ink);letter-spacing:-0.005em;line-height:1.4}.meta-card dd.strong{font-family:"Newsreader", Georgia, serif;font-size:16px;font-weight:500;font-variation-settings:"opsz" 24}.meta-card dd a{color:var(--accent);border-bottom:1px solid var(--rule)}.meta-card dd a:hover{border-color:var(--accent)}.other-talks{list-style:none;padding:0;margin:0;border-left:0}.other-talks li{padding:10px 0;border-bottom:1px solid var(--rule)}.other-talks li:last-child{border-bottom:0}.other-talks a{display:block;padding:0;margin-left:0;border:0;transition:color .2s}.other-talks a:hover .t-title{color:var(--accent)}.other-talks .t-date{color:var(--ink-3);font-size:11px;letter-spacing:0.02em;margin-bottom:4px}.other-talks .t-title{font-family:"Geist", sans-serif;font-size:13px;color:var(--ink);line-height:1.35;letter-spacing:-0.003em;transition:color .2s;display:block;margin-bottom:3px}.other-talks .t-conf{color:var(--ink-3);font-size:11px;letter-spacing:0.02em}@media (max-width: 860px){.rail{display:none}}.hero{padding-top:110px;padding-bottom:32px}.hero>*{max-width:720px}.hero--post{padding-top:24px;padding-bottom:40px}.hero--talk{padding-top:32px;padding-bottom:28px}.hero--tag{padding-top:24px;padding-bottom:16px}.hero__eyebrow{font-family:"JetBrains Mono", monospace;font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent);margin:0 0 20px;display:flex;align-items:center;gap:12px}.hero__eyebrow::before{content:"";width:32px;height:1px;background:var(--accent)}.hero h1{font-family:"Newsreader", Georgia, serif;font-weight:400;font-size:clamp(36px, 4.6vw, 50px);line-height:1.1;letter-spacing:-0.02em;color:var(--ink);margin:0 0 28px;font-variation-settings:"opsz" 72}.hero h1 .accent{color:var(--accent)}.hero--post h1{font-size:clamp(34px, 4.2vw, 44px);margin-bottom:22px}.hero--talk h1{font-size:clamp(30px, 3.8vw, 42px);line-height:1.1;letter-spacing:-0.015em;margin-bottom:22px;max-width:680px}.hero--tag h1{font-size:clamp(44px, 5.8vw, 68px);line-height:1;margin-bottom:16px;font-variation-settings:"opsz" 144}.hero--tag h1 .hash{color:var(--accent)}.hero p.lead,.hero>p{font-size:19px;line-height:1.55;color:var(--ink-2);margin:0 0 18px;max-width:56ch}.hero--tag p.lead{font-size:16px;color:var(--ink-3);font-family:"JetBrains Mono", monospace;letter-spacing:0.04em}.hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-family:"JetBrains Mono", monospace;font-size:12px;color:var(--ink-3)}.hero__meta .dot{color:var(--rule)}.hero__meta .tag,.hero__meta .pill{color:var(--ink-2);padding:3px 10px;border:1px solid var(--rule);border-radius:999px;transition:color .2s, border-color .2s}.hero__meta .tag:hover{color:var(--accent);border-color:var(--accent)}.hero .status{display:inline-flex;align-items:center;gap:10px;margin-top:24px;font-family:"JetBrains Mono", monospace;font-size:12px;color:var(--ink-2);padding:8px 14px;border:1px solid var(--rule);border-radius:999px;transition:border-color .2s, color .2s}.hero .status:hover{border-color:var(--accent);color:var(--accent)}.hero .status .pulse{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 2.4s ease-out infinite}.hero .status .arrow{transition:transform .2s}.hero .status:hover .arrow{transform:translateX(3px)}.avatar-row{display:flex;align-items:center;gap:20px;margin-top:36px;padding-top:28px;border-top:1px solid var(--rule);max-width:720px}.avatar-row img{width:64px;height:64px;border-radius:50%;object-fit:cover;filter:grayscale(0.15)}.avatar-row .meta{font-family:"JetBrains Mono", monospace;font-size:12px;line-height:1.6;color:var(--ink-3)}.avatar-row .meta b{display:block;font-family:"Geist", sans-serif;font-weight:500;font-size:15px;color:var(--ink);letter-spacing:-0.005em}.stats{margin-top:36px;padding-top:28px;border-top:1px solid var(--rule);display:grid;grid-template-columns:repeat(3, auto);gap:40px;font-family:"JetBrains Mono", monospace;max-width:720px}.stat__num{font-family:"Newsreader", Georgia, serif;font-size:32px;font-weight:500;letter-spacing:-0.02em;color:var(--ink);font-variation-settings:"opsz" 36;line-height:1;margin-bottom:6px}.stat__label{font-size:11px;color:var(--ink-3);letter-spacing:0.08em;text-transform:uppercase}.section{padding-top:40px;padding-bottom:8px}.section__head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:28px;padding-bottom:14px;border-bottom:1px solid var(--rule)}.section__label{font-family:"JetBrains Mono", monospace;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-3)}.section__count{font-family:"JetBrains Mono", monospace;font-size:11px;color:var(--ink-3)}.writing{list-style:none;padding:0;margin:0}.writing li{display:grid;grid-template-columns:68px 1fr auto;gap:20px;align-items:baseline;padding:14px 0;border-bottom:1px solid transparent;transition:border-color .2s}.writing li:hover{border-bottom-color:var(--rule)}.writing .date{font-family:"JetBrains Mono", monospace;font-size:12px;color:var(--ink-3);padding-top:2px}.writing .title{font-size:17px;color:var(--ink);font-weight:400;line-height:1.45;letter-spacing:-0.003em;transition:color .2s}.writing li:hover .title{color:var(--accent)}.writing .meta{font-family:"JetBrains Mono", monospace;font-size:11px;color:var(--ink-3);white-space:nowrap}.writing .more,a.more{display:inline-block;margin-top:26px;font-family:"JetBrains Mono", monospace;font-size:12px;color:var(--ink-2);padding-bottom:2px;border-bottom:1px solid var(--rule);transition:color .2s, border-color .2s}a.more:hover{color:var(--accent);border-color:var(--accent)}.writing--tag{border-top:1px solid var(--rule);margin-top:40px}.writing--tag li{padding:16px 0;border-bottom:1px solid var(--rule)}.shipping{list-style:none;padding:0;margin:0}.shipping li{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:baseline;padding:16px 0;border-bottom:1px solid transparent;transition:border-color .2s}.shipping li:hover{border-bottom-color:var(--rule)}.shipping .name{font-family:"JetBrains Mono", monospace;font-size:14px;color:var(--ink);font-weight:500;letter-spacing:-0.01em;transition:color .2s}.shipping li:hover .name{color:var(--accent)}.shipping .desc{display:block;font-family:"Geist", sans-serif;font-size:14px;color:var(--ink-2);font-weight:400;margin-top:4px;letter-spacing:0}.shipping .count{font-family:"JetBrains Mono", monospace;font-size:12px;color:var(--ink-3);text-align:right;white-space:nowrap}.shipping .count b{display:block;color:var(--ink);font-weight:500;font-size:13px;letter-spacing:-0.01em}.subscribe{margin:60px 0 8px;padding:28px;background:var(--bg-soft);border-radius:14px;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center}.subscribe__copy h4{font-family:"Newsreader", Georgia, serif;font-weight:500;font-size:22px;line-height:1.2;letter-spacing:-0.01em;margin:0 0 4px;color:var(--ink);font-variation-settings:"opsz" 36}.subscribe__copy h4 .accent{color:var(--accent)}.subscribe__copy p{font-size:14px;line-height:1.5;color:var(--ink-2);margin:0;max-width:44ch}.subscribe__cta{background:var(--ink);color:var(--bg);font-family:"JetBrains Mono", monospace;font-size:12px;letter-spacing:-0.01em;padding:12px 20px;border-radius:999px;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:background .2s}.subscribe__cta:hover{background:var(--accent);color:var(--bg)}.subscribe__meta{margin-top:10px;font-family:"JetBrains Mono", monospace;font-size:11px;color:var(--ink-3);letter-spacing:0.02em}.help-list{list-style:none;padding:0;margin:0}.help-list li{padding:18px 0;border-bottom:1px solid var(--rule)}.help-list li:last-child{border-bottom:0}.help-list h5{font-family:"Newsreader", Georgia, serif;font-weight:400;font-size:22px;line-height:1.2;letter-spacing:-0.008em;margin:0 0 6px;color:var(--ink);font-variation-settings:"opsz" 36}.help-list p{font-size:16px;line-height:1.55;color:var(--ink-2);margin:0;max-width:60ch}.help-list a{color:var(--accent);border-bottom:1px solid var(--rule);transition:border-color .2s}.help-list a:hover{border-color:var(--accent)}.help{list-style:none;padding:0;margin:0}.help li{display:grid;grid-template-columns:44px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--rule);align-items:baseline}.help li:last-child{border-bottom:0}.help .no{font-family:"JetBrains Mono", monospace;font-size:12px;color:var(--ink-3);letter-spacing:0.04em}.help h3{font-family:"Newsreader", Georgia, serif;font-weight:500;font-size:22px;line-height:1.2;letter-spacing:-0.008em;color:var(--ink);margin:0 0 8px;font-variation-settings:"opsz" 36}.help p{font-size:16px;line-height:1.55;color:var(--ink-2);margin:0;max-width:60ch}.help a{color:var(--accent);border-bottom:1px solid var(--rule);transition:border-color .2s}.help a:hover{border-color:var(--accent)}.tiers{list-style:none;padding:0;margin:0}.tiers li{padding:22px 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:baseline}.tiers li:last-child{border-bottom:0}.tiers .tier{font-family:"Newsreader", Georgia, serif;font-weight:500;font-size:18px;color:var(--ink);letter-spacing:-0.005em;font-variation-settings:"opsz" 24}.tiers .desc{font-size:16px;line-height:1.55;color:var(--ink-2);max-width:58ch}.credentials{list-style:none;padding:0;margin:0;display:grid;gap:4px}.credentials li{font-size:16px;line-height:1.55;color:var(--ink-2);padding:10px 0 10px 22px;position:relative;border-bottom:1px solid var(--rule)}.credentials li:last-child{border-bottom:0}.credentials li::before{content:"";position:absolute;left:0;top:20px;width:10px;height:1px;background:var(--accent)}.credentials a{color:var(--ink);border-bottom:1px solid var(--rule);transition:color .2s, border-color .2s}.credentials a:hover{color:var(--accent);border-color:var(--accent)}.hire-block{margin:52px 0 72px;padding:32px 0 0;border-top:1px solid var(--rule)}.hire-block h3{font-family:"Newsreader", Georgia, serif;font-weight:400;font-size:32px;line-height:1.15;letter-spacing:-0.012em;margin:0 0 20px;color:var(--ink);font-variation-settings:"opsz" 36}.hire-block h3 em{font-style:italic;color:var(--accent)}.hire-block ul{list-style:none;padding:0;margin:0 0 32px;display:flex;flex-direction:column;gap:10px}.hire-block ul li{font-size:16px;line-height:1.55;color:var(--ink-2);padding-left:22px;position:relative;max-width:62ch}.hire-block ul li b{color:var(--ink);font-weight:500}.hire-block ul li::before{content:"";position:absolute;left:0;top:12px;width:10px;height:1px;background:var(--accent)}.contact{margin-top:12px;padding-top:20px;border-top:1px solid var(--rule);display:flex;flex-direction:column;gap:10px}.contact__row{display:grid;grid-template-columns:100px 1fr;gap:16px;align-items:baseline}.contact__label{font-family:"JetBrains Mono", monospace;font-size:12px;letter-spacing:0.02em;color:var(--ink-3)}.contact a{color:var(--ink);border-bottom:1px solid var(--rule);padding-bottom:1px;transition:color .2s, border-color .2s}.contact a:hover{color:var(--accent);border-color:var(--accent)}.contact-block{margin-top:48px;padding:28px;background:var(--bg-soft);border-radius:14px}.contact-block h3{font-family:"Newsreader", Georgia, serif;font-weight:500;font-size:26px;line-height:1.15;letter-spacing:-0.01em;margin:0 0 8px;color:var(--ink);font-variation-settings:"opsz" 36}.contact-block h3 .accent{color:var(--accent)}.contact-block p{font-size:15px;line-height:1.5;color:var(--ink-2);margin:0 0 20px;max-width:50ch}.contact-rows{display:grid;gap:10px;padding-top:16px;border-top:1px solid var(--rule)}.contact-row{display:grid;grid-template-columns:100px 1fr;gap:16px;align-items:baseline}.contact-row .label{font-family:"JetBrains Mono", monospace;font-size:12px;letter-spacing:0.02em;color:var(--ink-3)}.contact-row a{color:var(--ink);border-bottom:1px solid var(--rule);padding-bottom:1px;transition:color .2s, border-color .2s}.contact-row a:hover{color:var(--accent);border-color:var(--accent)}.year{padding-top:56px;padding-bottom:8px}.year__head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--rule)}.year__num{font-family:"Newsreader", Georgia, serif;font-weight:400;font-size:48px;line-height:1;color:var(--ink);letter-spacing:-0.03em;font-variation-settings:"opsz" 72}.year__count{font-family:"JetBrains Mono", monospace;font-size:11px;color:var(--ink-3);letter-spacing:0.06em}.talks{list-style:none;padding:0;margin:0}.talks li{display:grid;grid-template-columns:68px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--rule);align-items:baseline}.talks li:last-child{border-bottom:0}.talks .date{font-family:"JetBrains Mono", monospace;font-size:12px;color:var(--ink-3);padding-top:3px}.talks .title{font-size:18px;color:var(--ink);line-height:1.35;letter-spacing:-0.005em;display:block;margin-bottom:6px;transition:color .2s}.talks li:hover .title{color:var(--accent)}.talks .meta{font-family:"JetBrains Mono", monospace;font-size:12px;color:var(--ink-3);display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.talks .meta .conf{color:var(--ink-2)}.talks .meta .sep{color:var(--rule)}.talks .badge{display:inline-flex;align-items:center;gap:5px;color:var(--ink-3);border:1px solid var(--rule);padding:2px 8px;border-radius:999px;font-size:11px;transition:color .2s, border-color .2s}.talks .badge:hover{color:var(--accent);border-color:var(--accent)}.talks .badge svg{flex:none}.embed{margin:32px 0 40px;padding-top:36px;border-top:1px solid var(--rule)}.embed__label{font-family:"JetBrains Mono", monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}.embed__label a{color:var(--ink-3);border-bottom:1px dotted var(--ink-3);padding-bottom:1px;transition:color .2s, border-color .2s}.embed__label a:hover{color:var(--accent);border-color:var(--accent)}.embed__frame{position:relative;width:100%;padding-top:56.25%;background:var(--bg-soft);border:1px solid var(--rule);border-radius:10px;overflow:hidden}.embed__frame iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.abstract{margin-top:48px;padding-top:36px;border-top:1px solid var(--rule)}.abstract h2{font-family:"JetBrains Mono", monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-3);margin:0 0 18px;font-weight:400}.abstract p{font-family:"Newsreader", Georgia, serif;font-size:19px;line-height:1.6;color:var(--ink);margin:0 0 20px;letter-spacing:-0.003em;font-variation-settings:"opsz" 24}.abstract p:first-of-type::first-letter{font-family:"Newsreader", Georgia, serif;font-weight:500;font-size:3.2em;float:left;line-height:0.82;padding:6px 10px 0 0;color:var(--accent);font-variation-settings:"opsz" 72}.abstract a{color:var(--accent);border-bottom:1px solid var(--rule);transition:border-color .2s}.abstract a:hover{border-color:var(--accent)}.gems{list-style:none;padding:0;margin:0}.gems li{display:grid;grid-template-columns:1fr auto;gap:20px;padding:20px 0;border-bottom:1px solid var(--rule);align-items:baseline}.gems li:last-child{border-bottom:0}.gems .name{font-family:"JetBrains Mono", monospace;font-size:15px;color:var(--ink);font-weight:500;letter-spacing:-0.01em;transition:color .2s;border-bottom:1px solid transparent;padding-bottom:2px;display:inline-block}.gems li:hover .name{color:var(--accent);border-bottom-color:var(--accent)}.gems .desc{display:block;font-family:"Geist", sans-serif;font-size:16px;color:var(--ink-2);font-weight:400;margin-top:6px;line-height:1.5;max-width:58ch}.gems .desc a{color:var(--ink);border-bottom:1px solid var(--rule);transition:color .2s, border-color .2s}.gems .desc a:hover{color:var(--accent);border-color:var(--accent)}.gems .gh{font-family:"JetBrains Mono", monospace;font-size:11px;color:var(--ink-3);letter-spacing:0.06em;padding-top:5px}.gems .gh .arrow{transition:transform .2s;display:inline-block}.gems li:hover .gh{color:var(--accent)}.gems li:hover .gh .arrow{transform:translateX(3px)}.contrib{margin-top:48px;padding:28px;background:var(--bg-soft);border-radius:14px}.contrib h3{font-family:"Newsreader", Georgia, serif;font-weight:500;font-size:24px;line-height:1.15;letter-spacing:-0.01em;margin:0 0 10px;color:var(--ink);font-variation-settings:"opsz" 36}.contrib h3 .accent{color:var(--accent)}.contrib p{font-size:15px;line-height:1.55;color:var(--ink-2);margin:0 0 16px;max-width:56ch}.contrib-list{list-style:none;padding:16px 0 0;margin:0;border-top:1px solid var(--rule);display:grid;grid-template-columns:repeat(2, 1fr);gap:4px 20px}.contrib-list li{padding:6px 0;font-family:"JetBrains Mono", monospace;font-size:13px;letter-spacing:-0.005em}.contrib-list a{color:var(--ink);border-bottom:1px solid var(--rule);transition:color .2s, border-color .2s;padding-bottom:1px}.contrib-list a:hover{color:var(--accent);border-color:var(--accent)}.prose{padding-bottom:40px;color:var(--ink);max-width:700px}.prose p{margin:0 0 24px;line-height:1.72}.prose p a,.prose li a{color:var(--accent);border-bottom:1px solid var(--rule);transition:border-color .2s}.prose p a:hover,.prose li a:hover{border-color:var(--accent)}.prose h1,.prose h2,.prose h3{font-family:"Newsreader", Georgia, serif;font-weight:500;color:var(--ink);letter-spacing:-0.015em;line-height:1.2;margin:56px 0 18px;font-variation-settings:"opsz" 36;position:relative}.prose h1{font-size:30px}.prose h2{font-size:26px}.prose h3{font-size:22px}.prose h1 a[href^="#"],.prose h2 a[href^="#"],.prose h3 a[href^="#"]{position:absolute;left:-28px;top:0;padding-top:0.45em;color:var(--ink-3);font-family:"JetBrains Mono", monospace;font-size:0.55em;font-weight:400;opacity:0;transition:opacity .2s;border:0}.prose h1 a[href^="#"]::before,.prose h2 a[href^="#"]::before,.prose h3 a[href^="#"]::before{content:"#"}.prose h1:hover a[href^="#"],.prose h2:hover a[href^="#"],.prose h3:hover a[href^="#"]{opacity:1}.prose ul,.prose ol{margin:0 0 24px;padding-left:22px}.prose li{margin-bottom:6px;line-height:1.72}.prose ul li::marker{color:var(--accent)}.prose blockquote{margin:28px 0;padding:2px 0 2px 24px;border-left:2px solid var(--accent);font-family:"Newsreader", Georgia, serif;font-style:italic;font-weight:400;font-size:20px;line-height:1.5;color:var(--ink-2);font-variation-settings:"opsz" 36}.prose blockquote p{margin:0 0 8px}.prose blockquote p:last-child{margin-bottom:0}.prose blockquote a{color:var(--ink);border-bottom:1px solid var(--rule);font-style:italic}.prose blockquote a:hover{border-color:var(--accent);color:var(--accent)}.prose hr{border:0;border-top:1px solid var(--rule);margin:44px 0}.prose img{display:block;max-width:100%;height:auto;margin:32px auto;border-radius:6px}.prose p img{margin:0 auto}.prose code{font-family:"JetBrains Mono", monospace;font-size:0.88em;background:var(--bg-code);color:var(--ink);padding:2px 6px;border-radius:4px;border:1px solid var(--rule);letter-spacing:-0.01em;font-feature-settings:"zero" 1}.prose .highlighter-rouge{margin:28px 0;position:relative}.prose .highlight,.prose .highlighter-rouge pre{font-family:"JetBrains Mono", monospace;font-size:14.5px;line-height:1.65;background:var(--bg-code);border:1px solid var(--rule);border-radius:8px;margin:0;font-feature-settings:"zero" 1;letter-spacing:-0.005em}.prose .highlight pre,.prose .highlighter-rouge pre{background:transparent;border:0;padding:18px 22px;margin:0;overflow-x:auto}.prose .highlight code,.prose .highlighter-rouge code{background:transparent;border:0;padding:0;font-size:inherit;color:var(--ink)}.prose .language-ruby.highlighter-rouge::before{content:"Ruby"}.prose .language-javascript.highlighter-rouge::before,.prose .language-js.highlighter-rouge::before{content:"JS"}.prose .language-sql.highlighter-rouge::before{content:"SQL"}.prose .language-sh.highlighter-rouge::before,.prose .language-bash.highlighter-rouge::before,.prose .language-shell.highlighter-rouge::before{content:"Shell"}.prose .language-html.highlighter-rouge::before{content:"HTML"}.prose .language-haskell.highlighter-rouge::before{content:"Haskell"}.prose .highlighter-rouge[class*="language-"]::before{position:absolute;top:10px;right:14px;font-family:"JetBrains Mono", monospace;font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-3);user-select:none;pointer-events:none}.prose .highlight .k,.prose .highlight .kd,.prose .highlight .kr,.prose .highlight .kp,.prose .highlight .kn{color:var(--syn-kw);font-weight:500}.prose .highlight .nc,.prose .highlight .no,.prose .highlight .nn{color:var(--syn-cls);font-weight:500}.prose .highlight .nf,.prose .highlight .nb{color:var(--ink-2)}.prose .highlight .s,.prose .highlight .s1,.prose .highlight .s2,.prose .highlight .sr,.prose .highlight .se{color:var(--syn-str)}.prose .highlight .ss,.prose .highlight .sb{color:var(--syn-sym)}.prose .highlight .mi,.prose .highlight .mf,.prose .highlight .mh,.prose .highlight .mo{color:var(--syn-num)}.prose .highlight .c,.prose .highlight .c1,.prose .highlight .cm,.prose .highlight .cp,.prose .highlight .cs{color:var(--syn-com);font-style:italic}.prose .highlight .o,.prose .highlight .p{color:var(--ink-2)}.prose .highlight .n,.prose .highlight .nv,.prose .highlight .vi{color:var(--ink)}.after-post{border-top:1px solid var(--rule);padding-top:36px;margin-top:16px}.share{display:flex;gap:12px;align-items:center;font-family:"JetBrains Mono", monospace;font-size:12px;color:var(--ink-3);margin-bottom:24px}.share__label{letter-spacing:0.14em;text-transform:uppercase}.share a{color:var(--ink-2);padding:4px 10px;border:1px solid var(--rule);border-radius:999px;transition:color .2s, border-color .2s}.share a:hover{color:var(--accent);border-color:var(--accent)}.more-writing{margin:48px 0 0;padding-top:36px;border-top:1px solid var(--rule)}.more-writing h4{font-family:"JetBrains Mono", monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-3);margin:0 0 20px;font-weight:400}.more-writing ul{list-style:none;padding:0;margin:0}.more-writing li{display:grid;grid-template-columns:68px 1fr auto;gap:20px;align-items:baseline;padding:14px 0}.more-writing li+li{border-top:1px solid var(--rule)}.more-writing .date{font-family:"JetBrains Mono", monospace;font-size:12px;color:var(--ink-3)}.more-writing .title{font-size:17px;color:var(--ink);transition:color .2s}.more-writing li:hover .title{color:var(--accent)}.more-writing .meta{font-family:"JetBrains Mono", monospace;font-size:11px;color:var(--ink-3)}.empty{margin:40px 0;padding:40px 28px;background:var(--bg-soft);border-radius:12px;text-align:center}.empty p{font-family:"Newsreader", Georgia, serif;font-style:italic;font-size:18px;color:var(--ink-2);margin:0 0 12px;font-variation-settings:"opsz" 24}.empty a{font-family:"JetBrains Mono", monospace;font-size:12px;color:var(--ink);border-bottom:1px solid var(--rule);padding-bottom:2px}.empty a:hover{color:var(--accent);border-color:var(--accent)}.notfound{flex:1;display:flex;align-items:center;justify-content:center;padding:72px 0}.notfound .card{max-width:520px;width:100%}.notfound .big{font-family:"Newsreader", Georgia, serif;font-weight:400;font-size:clamp(72px, 12vw, 128px);line-height:0.9;letter-spacing:-0.04em;color:var(--ink);margin:0 0 12px;font-variation-settings:"opsz" 144}.notfound .big .dot{color:var(--accent)}.notfound .title{font-family:"Newsreader", Georgia, serif;font-weight:400;font-size:clamp(26px, 3vw, 32px);line-height:1.15;letter-spacing:-0.01em;margin:0 0 16px;color:var(--ink);font-variation-settings:"opsz" 36}.notfound .lead{font-size:16px;line-height:1.55;color:var(--ink-2);margin:0 0 32px;max-width:50ch}.notfound .lead code{font-family:"JetBrains Mono", monospace;font-size:0.9em;background:var(--bg-soft);padding:2px 6px;border-radius:4px;border:1px solid var(--rule);color:var(--ink)}.notfound .options{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule)}.notfound .options li{border-bottom:1px solid var(--rule)}.notfound .options a{display:grid;grid-template-columns:1fr auto;align-items:center;padding:16px 0;color:var(--ink);transition:color .2s}.notfound .options a:hover{color:var(--accent)}.notfound .options .label{font-size:16px;letter-spacing:-0.005em}.notfound .options .hint{font-family:"JetBrains Mono", monospace;font-size:11px;color:var(--ink-3);letter-spacing:0.04em;transition:transform .2s;display:inline-flex;align-items:center;gap:6px}.notfound .options a:hover .hint{transform:translateX(4px);color:var(--accent)}.subjects__list{display:flex;flex-wrap:wrap;gap:4px 18px;font-family:"JetBrains Mono", monospace;font-size:12px}footer.site{padding-top:40px;padding-bottom:64px;margin-top:56px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center;font-family:"JetBrains Mono", monospace;font-size:11px;color:var(--ink-3);letter-spacing:0.02em}footer.site .links{display:flex;gap:18px}footer.site a:hover{color:var(--accent)}.reveal{opacity:0;transform:translateY(10px);animation:rise .7s ease-out forwards}.reveal.d1{animation-delay:.06s}.reveal.d2{animation-delay:.14s}.reveal.d3{animation-delay:.24s}.reveal.d4{animation-delay:.36s}@keyframes rise{to{opacity:1;transform:none}}@media (max-width: 640px){.shell,header.nav .inner{padding:0 22px}.hero{padding-top:72px}.writing li{grid-template-columns:56px 1fr}.writing .meta{grid-column:2;padding-top:4px}.shipping li{grid-template-columns:1fr}.shipping .count{text-align:left}.subscribe{grid-template-columns:1fr;gap:16px;padding:22px}.subscribe__cta{justify-content:center;width:100%}.stats{grid-template-columns:repeat(3, 1fr);gap:16px}.help li{grid-template-columns:1fr;gap:6px}.tiers li{grid-template-columns:1fr;gap:6px}.talks li{grid-template-columns:54px 1fr;gap:16px}.gems li{grid-template-columns:1fr;gap:8px}.contrib-list{grid-template-columns:1fr}.prose h1 a[href^="#"],.prose h2 a[href^="#"],.prose h3 a[href^="#"]{display:none}.prose .highlighter-rouge[class*="language-"]::before{display:none}.more-writing li{grid-template-columns:54px 1fr}.more-writing .meta{grid-column:2}footer.site{flex-direction:column;gap:12px;align-items:flex-start}header.nav nav{gap:16px}}
