:root{--paper:#f3f4f6;--card:#ffffff;--ink:#16181d;--ink-soft:#575d6b;--rule:#d8dbe2;--accent:#1f49a0;--accent-soft:#e7ecf8;--ember:#9c5522;--display:"Newsreader",Georgia,"Times New Roman",serif;--body:"Atkinson Hyperlegible",-apple-system,"Segoe UI",Helvetica,sans-serif;--utility:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--step--1:0.82rem;--step-0:1.02rem;--step-1:1.3rem;--step-2:1.7rem;--step-3:clamp(2.1rem,5vw,3.1rem);--measure:66ch;--radius:3px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#14161b;--card:#1b1e25;--ink:#e9eaee;--ink-soft:#9ba2b1;--rule:#2d323c;--accent:#8fb0f2;--accent-soft:#1f2735;--ember:#d79a63;color-scheme:dark}}:root[data-theme=dark]{--paper:#14161b;--card:#1b1e25;--ink:#e9eaee;--ink-soft:#9ba2b1;--rule:#2d323c;--accent:#8fb0f2;--accent-soft:#1f2735;--ember:#d79a63;color-scheme:dark}:root[data-mode=roadtrip]{--paper:#1d1a22;--card:#262231;--ink:#f6ead9;--ink-soft:#c3ab97;--rule:#413a4e;--accent:#f0a24a;--accent-soft:#33293a;--ember:#e8703f;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}h1,h2,h3{font-family:var(--display);font-weight:500;text-wrap:balance;line-height:1.14;margin:0}p{margin:0}.mono{font-family:var(--utility);font-size:var(--step--1)}.eyebrow{font-family:var(--utility);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.shell{display:grid;grid-template-columns:15.5rem minmax(0,1fr);min-height:100%}.rail{border-right:1px solid var(--rule);padding:2rem 1.5rem;position:sticky;top:env(safe-area-inset-top,0px);align-self:start;max-height:100vh;overflow:auto}.wordmark{display:flex;flex-direction:column;gap:.2rem;margin-bottom:1.6rem}.wordmark .name{text-decoration:none;color:var(--ink);font-family:var(--display);font-size:var(--step-1);letter-spacing:-.01em}.wordmark .role{font-size:var(--step--1);color:var(--ink-soft);line-height:1.4}.rail nav{display:flex;flex-direction:column;gap:.1rem}.rail nav a,.rail nav button{all:unset;cursor:pointer;text-decoration:none;display:grid;grid-template-columns:1.4rem 1fr;gap:.1rem .4rem;padding:.42rem .5rem;border-radius:var(--radius);font-size:var(--step--1)}.rail nav a .num,.rail nav button .num{font-family:var(--utility);font-size:.68rem;color:var(--ink-soft);padding-top:.18rem}.rail nav a .lbl,.rail nav button .lbl{font-weight:700}.rail nav a .sub,.rail nav button .sub{grid-column:2;font-size:.72rem;color:var(--ink-soft);line-height:1.3}.rail nav a:hover,.rail nav button:hover{background:var(--accent-soft)}.rail nav a[aria-current=page],.rail nav button[aria-current=true]{background:var(--accent-soft)}.rail nav a[aria-current=page] .lbl,.rail nav button[aria-current=true] .lbl{color:var(--accent)}.rail nav a:focus-visible,.rail nav button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.rail-foot{margin-top:1.8rem;padding-top:1rem;border-top:1px solid var(--rule);display:flex;flex-direction:column;gap:.6rem}.toggle{all:unset;cursor:pointer;font-family:var(--utility);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--rule);border-radius:var(--radius);padding:.3rem .5rem;width:max-content}.toggle:hover{color:var(--accent);border-color:var(--accent)}.toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.main{padding:3rem 2.5rem 4rem;max-width:62rem}.view{display:flex;flex-direction:column;gap:2.2rem}.hero{display:flex;flex-direction:column;gap:1.1rem;max-width:var(--measure)}.hero h1{font-size:var(--step-3);letter-spacing:-.02em}.hero h1 em{font-style:italic;color:var(--accent)}.hero .lede{font-size:var(--step-1);line-height:1.5;color:var(--ink)}.hero .sub{color:var(--ink-soft);max-width:60ch}.strip{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;font-family:var(--utility);font-size:var(--step--1);color:var(--ink-soft);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:.7rem 0}.strip b{color:var(--ink);font-weight:500}.cta{display:inline-flex;align-items:center;gap:.5rem;width:max-content;background:var(--ink);color:var(--paper);font-family:var(--utility);font-size:var(--step--1);padding:.6rem .9rem;border-radius:var(--radius);text-decoration:none}.cta:hover{background:var(--accent);color:#fff}:root[data-theme=dark] .cta:hover,:root[data-mode=roadtrip] .cta:hover{color:#10121a}.flagship{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:var(--radius)}.flagship article{background:var(--card);padding:1.1rem 1.2rem 1.2rem;display:flex;flex-direction:column;gap:.5rem;min-width:0}.flagship h3{font-size:var(--step-1)}.flagship p{font-size:var(--step--1);color:var(--ink-soft);line-height:1.5}.flagship a{font-family:var(--utility);font-size:var(--step--1);margin-top:auto}.tag{font-family:var(--utility);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid;border-radius:999px;padding:.1rem .45rem;width:max-content}.tag.shipped{color:#2d7a4f}.tag.parked{color:var(--ember)}.tag.killed{color:var(--ink-soft)}:root[data-theme=dark] .tag.shipped,:root[data-mode=roadtrip] .tag.shipped{color:#6fc08f}.latest{display:flex;flex-direction:column;gap:0}.latest .row{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.2rem 1rem;padding:.85rem 0;border-top:1px solid var(--rule);align-items:baseline}.latest .row:last-child{border-bottom:1px solid var(--rule)}.latest .where{font-family:var(--utility);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.latest .what{font-family:var(--display);font-size:var(--step-1)}.latest .what a{text-decoration:none;color:var(--ink)}.latest .what a:hover{color:var(--accent);text-decoration:underline}.latest .note{grid-column:2;font-size:var(--step--1);color:var(--ink-soft)}.crumb{font-family:var(--utility);font-size:var(--step--1);color:var(--ink-soft);display:flex;gap:.4rem;flex-wrap:wrap}.crumb a{color:var(--ink-soft)}.page-head{display:flex;flex-direction:column;gap:.6rem;max-width:var(--measure)}.page-head h2{font-size:var(--step-2)}.page-head .sub{color:var(--ink-soft)}.prose{max-width:var(--measure);display:flex;flex-direction:column;gap:1rem}.prose h3{font-size:var(--step-1);margin-top:.8rem}.prose ol,.prose ul{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.5rem}.beats{counter-reset:beat;list-style:none;padding:0;display:flex;flex-direction:column;gap:0}.beats li{border-top:1px solid var(--rule);padding:.9rem 0;display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.6rem}.beats li:last-child{border-bottom:1px solid var(--rule)}.beats li::before{counter-increment:beat;content:counter(beat,decimal-leading-zero);font-family:var(--utility);font-size:.72rem;color:var(--accent);padding-top:.3rem}.beats b{font-family:var(--display);font-weight:600;font-size:var(--step-1);display:block;margin-bottom:.15rem}.beats span{font-size:var(--step--1);color:var(--ink-soft)}.callout{border-left:2px solid var(--accent);background:var(--accent-soft);padding:.9rem 1rem;border-radius:0 var(--radius)var(--radius)0;display:flex;flex-direction:column;gap:.4rem}.callout .eyebrow{color:var(--accent)}.roasters{width:100%;border-collapse:collapse;font-size:var(--step--1)}.roasters th{text-align:left;font-family:var(--utility);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-weight:400;padding:0 .8rem .5rem 0;border-bottom:1px solid var(--rule)}.roasters td{padding:.6rem .8rem .6rem 0;border-bottom:1px solid var(--rule);vertical-align:top}.roasters td:first-child{font-weight:700}.roasters .score{font-family:var(--utility);font-variant-numeric:tabular-nums;white-space:nowrap}.scroll-x{overflow-x:auto}.brew-now{display:flex;flex-direction:column;gap:.3rem;border:1px solid var(--rule);border-radius:var(--radius);padding:1rem 1.1rem;background:var(--card);max-width:var(--measure)}.brew-now .cup{font-family:var(--display);font-size:var(--step-1)}.sugar{all:unset;cursor:pointer;font-family:var(--utility);font-size:var(--step--1);color:var(--ink-soft);border-bottom:1px dotted var(--ink-soft);width:max-content;margin-top:.4rem}.sugar:hover{color:var(--ember);border-color:var(--ember)}.sugar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sugar-reply{font-size:var(--step--1);color:var(--ember);min-height:1.5rem}.stamp{border:2px solid var(--ember);color:var(--ember);font-family:var(--utility);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;padding:.5rem .8rem;border-radius:var(--radius);width:max-content;transform:rotate(-2.5deg)}.rt-inner .eyebrow{color:var(--accent)}.rt-inner .mono{color:var(--ink-soft)}.rt .route .note{color:var(--ink-soft)}.rt{position:fixed;inset:0;z-index:40;background:var(--paper);padding:calc(2rem + env(safe-area-inset-top,0px))1.5rem calc(2rem + env(safe-area-inset-bottom,0px));overflow:auto}.rt-inner{max-width:46rem;margin:0 auto;display:flex;flex-direction:column;gap:1.2rem}.rt h2{font-size:var(--step-2)}.route{list-style:none;margin:0;padding:0}.route li{display:grid;grid-template-columns:1.1rem 1fr auto;gap:.1rem .9rem;padding:.55rem 0;align-items:baseline;border-bottom:1px dotted var(--rule)}.route .dot{justify-self:center;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:.55rem}.route li[data-base=true] .dot{box-shadow:0 0 0 4px var(--accent-soft)}.route .stop{font-family:var(--display);font-size:var(--step-1)}.route .yr{font-family:var(--utility);font-size:var(--step--1);color:var(--ink-soft);font-variant-numeric:tabular-nums}.route .note{grid-column:2/4;font-size:var(--step--1);color:var(--ink-soft)}.rt-foot{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}.footer{margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:baseline;font-family:var(--utility);font-size:var(--step--1);color:var(--ink-soft)}.hint{font-size:.7rem;color:var(--ink-soft);opacity:.75}@media(max-width:860px){.shell{grid-template-columns:minmax(0,1fr)}.rail{position:static;max-height:none;border-right:0;border-bottom:1px solid var(--rule);padding:1.5rem 1rem}.rail nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.2rem}.rail nav a .sub,.rail nav button .sub{display:none}.main{padding:2rem 1rem 3rem}.latest .row{grid-template-columns:minmax(0,1fr)}.latest .note{grid-column:1}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}