:root{--paper:#f4f5f7;--ink:#17191e;--ink-soft:#5d6371;--rule:#d9dce3;--link:#1f49a0;--mark:#fbeec4;--serif:"Newsreader",Georgia,"Times New Roman",serif;--sans:"Atkinson Hyperlegible",-apple-system,"Segoe UI",Helvetica,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--read:38rem}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#15171c;--ink:#e7e8ec;--ink-soft:#9aa1af;--rule:#2c313b;--link:#93b2f0;--mark:#3a3420;color-scheme:dark}}:root[data-theme=dark]{--paper:#15171c;--ink:#e7e8ec;--ink-soft:#9aa1af;--rule:#2c313b;--link:#93b2f0;--mark:#3a3420;color-scheme:dark}:root[data-mode=roadtrip]{--paper:#1d1a22;--ink:#f6ead9;--ink-soft:#c3ab97;--rule:#413a4e;--link:#f0a24a;--mark:#4a3424;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px}a:focus-visible,button:focus-visible{outline:2px solid var(--link);outline-offset:2px}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15;text-wrap:balance;margin:0}p{margin:0}.muted{color:var(--ink-soft)}.shell{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:3.5rem;max-width:62rem;margin:0 auto;padding:3.5rem 1.5rem 4rem}.side{position:sticky;top:calc(2rem + env(safe-area-inset-top,0px));align-self:start;display:flex;flex-direction:column;gap:1.6rem}.me{font-family:var(--serif);font-size:1.25rem;color:var(--ink);text-decoration:none}.me:hover{text-decoration:underline}.side ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.side a.sec{font-family:var(--serif);font-size:1.02rem;color:var(--ink);text-decoration:none;display:block;line-height:1.3}.side a.sec:hover{text-decoration:underline}.side a.sec small{display:block;font-style:italic;color:var(--ink-soft);font-size:.86rem}.side a.sec[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.side .tools{display:flex;flex-direction:column;gap:.4rem;font-size:.82rem}.linkish{all:unset;cursor:pointer;color:var(--ink-soft);font-size:.82rem;width:max-content}.linkish:hover{color:var(--link);text-decoration:underline}.index{display:flex;flex-direction:column;gap:2.4rem;min-width:0;max-width:40rem}.index h1{font-size:2.2rem;letter-spacing:-.015em}.intro{display:flex;flex-direction:column;gap:.9rem;font-family:var(--serif);font-size:1.22rem;line-height:1.55}.intro .muted{font-size:1.05rem}.index h2{font-size:1.15rem;font-style:italic;font-weight:400;color:var(--ink-soft)}.list{list-style:none;margin:0;padding:0}.list li{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.1rem 1.2rem;padding:.9rem 0;border-top:1px solid var(--rule)}.list li:last-child{border-bottom:1px solid var(--rule)}.list time{font-family:var(--mono);font-size:.78rem;color:var(--ink-soft);padding-top:.3rem;font-variant-numeric:tabular-nums}.list .t{font-family:var(--serif);font-size:1.18rem;line-height:1.3}.list .t a{color:var(--ink);text-decoration:none}.list .t a:hover{color:var(--link);text-decoration:underline}.list .d{grid-column:2;color:var(--ink-soft);font-size:.94rem}.list .d i{font-family:var(--serif);font-size:1rem}.reading{max-width:calc(var(--read) + 3rem);margin:0 auto;padding:2rem 1.5rem 4rem}.topline{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;font-size:.88rem;color:var(--ink-soft);padding-bottom:3rem}.topline a{color:var(--ink-soft);text-decoration:none}.topline a:hover{color:var(--link);text-decoration:underline}.topline .me{font-size:1.05rem}article.post{display:flex;flex-direction:column;gap:0}.post h1{font-size:clamp(2.1rem,6vw,2.9rem);letter-spacing:-.02em}.post .dek{font-family:var(--serif);font-style:italic;font-size:1.35rem;line-height:1.45;color:var(--ink-soft);margin-top:.9rem}.post .meta{font-size:.86rem;color:var(--ink-soft);margin-top:1.2rem;display:flex;flex-wrap:wrap;gap:.2rem .9rem}.post .try{margin-top:1.4rem;font-size:.95rem}.body{font-family:var(--serif);font-size:1.2rem;line-height:1.7;margin-top:2.6rem;display:flex;flex-direction:column;gap:1.15rem}.body h2{font-size:1.5rem;margin-top:1.6rem}.body ul,.body ol{margin:0;padding-left:1.3rem;display:flex;flex-direction:column;gap:.6rem}.body strong{font-weight:600}.body table{border-collapse:collapse;font-size:1.02rem;line-height:1.5;width:100%}.body td{padding:.6rem .8rem .6rem 0;border-top:1px solid var(--rule);vertical-align:top}.body tr:last-child td{border-bottom:1px solid var(--rule)}.body td:first-child{font-family:var(--sans);font-size:.84rem;color:var(--ink-soft);width:6rem;padding-top:.8rem}.wide{overflow-x:auto}.endnote{margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--rule);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem 1.5rem;font-size:.92rem}.endnote a{text-decoration:none}.endnote a:hover{text-decoration:underline}.draftnote{background:var(--mark);padding:.05rem .25rem;border-radius:2px;font-family:var(--sans);font-size:.86rem}.roasters{border-collapse:collapse;width:100%;font-size:.94rem}.roasters th{text-align:left;font-weight:400;color:var(--ink-soft);font-size:.82rem;padding:0 1rem .4rem 0;border-bottom:1px solid var(--rule)}.roasters td{padding:.6rem 1rem .6rem 0;border-bottom:1px solid var(--rule);vertical-align:top}.roasters td:first-child{font-family:var(--serif);font-size:1.05rem}.sugar{all:unset;cursor:pointer;color:var(--ink-soft);border-bottom:1px dotted var(--ink-soft);font-size:.92rem;width:max-content}.sugar:hover{color:var(--link);border-color:var(--link)}.sugar-reply{font-family:var(--serif);font-style:italic;color:var(--ink-soft);min-height:1.6rem}.footer{max-width:62rem;margin:0 auto;padding:0 1.5rem 3rem;font-size:.84rem;color:var(--ink-soft)}.footer p{border-top:1px solid var(--rule);padding-top:1rem}.rt{position:fixed;inset:0;z-index:40;background:var(--paper);overflow:auto;padding:calc(3rem + env(safe-area-inset-top,0px))1.5rem calc(3rem + env(safe-area-inset-bottom,0px))}.rt-inner{max-width:var(--read);margin:0 auto;display:flex;flex-direction:column;gap:1.2rem}.rt h2{font-size:2rem}.rt .route{list-style:none;margin:0;padding:0}.rt .route li{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:.1rem 1rem;padding:.8rem 0;border-top:1px dashed var(--rule)}.rt .route .yr{font-family:var(--mono);font-size:.8rem;color:var(--link);padding-top:.3rem}.rt .route .stop{font-family:var(--serif);font-size:1.2rem}.rt .route .note{grid-column:2;color:var(--ink-soft);font-size:.94rem}@media(max-width:820px){.shell{grid-template-columns:minmax(0,1fr);gap:2rem;padding-top:2rem}.side{position:static;gap:1rem}.side ul{flex-direction:row;flex-wrap:wrap;gap:.4rem 1.1rem}.side a.sec small{display:none}.list li{grid-template-columns:minmax(0,1fr)}.list .d{grid-column:1}.body{font-size:1.12rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.index h1.stream{font-size:clamp(2.4rem,6.5vw,3.6rem);letter-spacing:-.025em;line-height:1.05}.stream .word{color:var(--link);font-style:italic}.caret{display:inline-block;width:.06em;height:.82em;background:var(--link);margin-left:.06em;vertical-align:-.06em;animation:blink 1.05s steps(1)infinite}@keyframes blink{50%{opacity:0}}.sampler{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;font-family:var(--mono);font-size:.78rem;color:var(--ink-soft);min-height:1.3rem;font-variant-numeric:tabular-nums}.sampler span{transition:color .2s,opacity .2s}.sampler .pick{color:var(--ink)}.sampler .pick::before{content:"▸ ";color:var(--link)}.sampler .alt{opacity:.7}.thesis{font-family:var(--serif);font-size:1.3rem;line-height:1.5;max-width:34rem}.thesis+p{margin-top:-.6rem}@media(prefers-reduced-motion:reduce){.caret{animation:none}}.body h3{font-size:1.25rem;margin-top:1rem}.body img{max-width:100%;height:auto;display:block;border-radius:3px}.body figure{margin:1rem 0}.body th{text-align:left;font-family:var(--sans);font-size:.84rem;font-weight:400;color:var(--ink-soft);padding:0 .8rem .4rem 0}.body code{font-family:var(--mono);font-size:.9em}.body blockquote{margin:0;padding-left:1rem;border-left:2px solid var(--rule);color:var(--ink-soft)}.intro img{max-width:100%;height:auto;display:block;border-radius:3px}.footer p{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1.5rem}.footer a{color:var(--ink-soft)}