@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-opsz-normal-D9N6E8K1.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-opsz-normal-IcJDqblK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-opsz-normal-Cre6nC2_.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Commit Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/commit-mono-latin-400-normal-wzhe4RuD.woff2)format("woff2"),url(/assets/commit-mono-latin-400-normal-s0S3qwFW.woff)format("woff")}@property --p{syntax:"<number>";inherits:true;initial-value:1}:root{--bg:oklch(95.5% .012 80);--card:oklch(98.2% .008 80);--sunk:oklch(93% .014 80);--fg:oklch(23.5% .025 45);--muted:oklch(47% .02 55);--line:oklch(87% .015 75);--line-strong:oklch(60% .02 65);--accent:oklch(43% .072 210);--accent-fg:oklch(98% .008 80);--error:oklch(45% .16 25);--coffee:oklch(40% .055 50);--roast-light:oklch(74% .07 70);--roast-dark:oklch(27% .035 45);--water:var(--accent);--water-fill:color-mix(in oklch, var(--accent) 16%, transparent);--tint:color-mix(in oklch, var(--accent) 8%, var(--card));--qr-ground:oklch(98.2% .008 80);--shadow:0 1px 2px oklch(23.5% .025 45/.06), 0 12px 32px -12px oklch(23.5% .025 45/.18);--font-display:"Bricolage Grotesque Variable", "Arial Narrow", system-ui, sans-serif;--font-body:"Bricolage Grotesque Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Commit Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs:.78rem;--text-sm:.875rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-xl:clamp(1.4rem, 1.2rem + .9vw, 1.75rem);--text-2xl:clamp(1.85rem, 1.2rem + 2.6vw, 3rem);--text-page:clamp(2.1rem, 1.5rem + 2.6vw, 3.5rem);--text-display:clamp(2.9rem, 1rem + 6.4vw, 6rem);--space-3xs:.125rem;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:6rem;--space-4xl:9rem;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-full:999px;--shell:76rem;--measure:42rem;--gutter:clamp(1rem, 4vw, 3rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.24s;--dur-long:.6s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:oklch(17.5% .012 50);--card:oklch(21.5% .013 50);--sunk:oklch(14.5% .01 50);--fg:oklch(92% .015 60);--muted:oklch(73% .02 60);--line:oklch(31% .012 50);--line-strong:oklch(56% .018 55);--accent:oklch(76% .09 205);--accent-fg:oklch(18% .02 205);--error:oklch(76% .14 22);--coffee:oklch(62% .06 60);--water-fill:color-mix(in oklch, var(--accent) 26%, transparent);--shadow:none}}*,:before,:after{box-sizing:border-box}html,body{overflow-x:clip}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}img,svg{max-width:100%}img{height:auto}main{max-width:var(--shell);padding:var(--space-md) var(--gutter) var(--space-2xl);margin:0 auto}main>:where(p,ul,ol,dl,h2,h3,pre,details,form,textarea,.banner,.error,.notes):not(.wide,.cards,.ledger,.facts){max-width:var(--measure)}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;overflow-wrap:anywhere;min-width:0;font-style:normal}h1{font-size:var(--text-page);letter-spacing:-.025em;margin:var(--space-xl) 0 var(--space-md);font-weight:650;line-height:1.02}h1.display{font-size:var(--text-display);letter-spacing:-.022em;margin:0;font-weight:700;line-height:.94}main>h1{max-width:60rem}p.lede{font-size:var(--text-lg);margin:0 0 var(--space-lg);text-wrap:pretty;line-height:1.45}h2{font-size:var(--text-xl);letter-spacing:-.015em;margin:var(--space-xl) 0 var(--space-xs);font-weight:600;line-height:1.15}h2.pull{margin-top:var(--space-2xl)}h3{font-size:var(--text-lg);letter-spacing:-.01em;margin:var(--space-lg) 0 var(--space-2xs);font-weight:600;line-height:1.2}p{margin:0 0 var(--space-md);text-wrap:pretty}code,pre,kbd{font-family:var(--mono);font-size:.88em}pre{background:var(--sunk);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-md);tab-size:2;background-image:linear-gradient(to right, var(--sunk) 30%, transparent), linear-gradient(to left, var(--sunk) 30%, transparent), linear-gradient(to right, var(--line-strong), transparent), linear-gradient(to left, var(--line-strong), transparent);background-position:0,100%,0,100%;background-repeat:no-repeat;background-size:2rem 100%,2rem 100%,.6rem 100%,.6rem 100%;background-attachment:local,local,scroll,scroll;line-height:1.55;overflow-x:auto}.muted{color:var(--muted)}.figures,.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.9em}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.skip{left:var(--gutter);top:var(--space-xs);z-index:20;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);background:var(--fg);color:var(--bg);text-decoration:none;position:absolute;transform:translateY(-300%)}.skip:focus-visible{transform:none}.site-header{gap:var(--space-xs) var(--space-lg);padding-bottom:var(--space-sm);border-bottom:2px solid var(--fg);view-transition-name:masthead;flex-wrap:wrap;align-items:baseline;display:flex}.site-header strong{font-family:var(--font-display);letter-spacing:-.02em;color:var(--fg);padding-left:1.5em;font-size:1.3rem;font-weight:700;position:relative}.site-header strong:before{content:"";background:currentColor;width:1.05em;height:1.28em;position:absolute;top:50%;left:0;transform:translateY(-50%);-webkit-mask:url(/mark-small.svg) 50%/contain no-repeat;mask:url(/mark-small.svg) 50%/contain no-repeat}.site-header a{text-decoration:none}.site-nav{gap:var(--space-2xs) var(--space-lg);font-size:var(--text-sm);flex-wrap:wrap;flex:1;align-items:baseline;display:flex}.site-nav>*{color:var(--fg);white-space:nowrap;padding-block:var(--space-2xs);transition:background-size var(--dur-short) var(--ease-out);background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat}.site-nav>a:hover,.site-nav>[aria-current]{background-size:100% 2px}.site-nav>:last-child{color:var(--muted);margin-left:auto}@media (width<=46rem){.site-header{padding-bottom:0;position:relative}.site-nav{justify-content:space-between;gap:0 var(--space-xs);scrollbar-width:none;flex-wrap:nowrap;flex:100%;font-size:.78rem;overflow-x:auto}.site-nav>*{padding-block:var(--space-sm)}.site-nav>:last-child{padding-block:var(--space-xs);margin:0;position:absolute;top:0;right:0}}footer{margin-top:var(--space-3xl);padding-top:var(--space-lg);border-top:2px solid var(--fg);font-size:var(--text-sm)}footer p{max-width:var(--measure);margin:0}.site-footer nav{margin-bottom:var(--space-sm);color:var(--muted)}.site-footer nav a{color:var(--fg);white-space:nowrap}.btn{justify-content:center;align-items:center;gap:var(--space-xs);background:var(--fg);min-height:2.6rem;color:var(--bg);border:1px solid var(--fg);border-radius:var(--radius-full);font:inherit;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);padding:0 1.15rem;font-size:.95rem;font-weight:550;line-height:1;text-decoration:none;display:inline-flex}.btn--lg{min-height:3rem;padding-inline:1.5rem;font-size:1rem}.btn--ghost{color:var(--fg);border-color:var(--line-strong);background:0 0}.btn:hover{background:color-mix(in oklch, var(--fg) 82%, var(--bg));border-color:color-mix(in oklch, var(--fg) 82%, var(--bg))}.btn:active{transform:translateY(1px)}.btn--ghost:hover{background:color-mix(in oklch, var(--fg) 8%, transparent);border-color:var(--fg)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.btn:disabled:hover,.btn[aria-disabled=true]:hover{background:var(--fg);border-color:var(--fg)}.btn--ghost:disabled:hover,.btn--ghost[aria-disabled=true]:hover{border-color:var(--line-strong);background:0 0}.btn[aria-busy=true]{cursor:progress}.btn[aria-expanded=true]{background:color-mix(in oklch, var(--fg) 10%, transparent);color:var(--fg);border-color:var(--fg)}:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}label.btn:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.row{gap:var(--space-xs);margin:var(--space-sm) 0;flex-wrap:wrap;align-items:center;display:flex}.row h2{margin:0}nav.row{gap:var(--space-xs) var(--space-lg);margin-top:var(--space-xl);padding-top:var(--space-md);border-top:1px solid var(--line);font-size:var(--text-sm)}.chip{border:1px solid var(--line-strong);min-height:2rem;color:var(--fg);border-radius:var(--radius-full);font:inherit;font-size:var(--text-sm);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);background:0 0;align-items:center;padding:0 .8rem;text-decoration:none;display:inline-flex}.chip .num{color:var(--muted);margin-left:.4em;font-size:.85em}.chip--on .num{color:inherit;opacity:.7}.chip:disabled{color:var(--muted);cursor:not-allowed;border-style:dashed}.chip--on{background:var(--fg);color:var(--bg);border-color:var(--fg)}.chip:hover:not(:disabled){border-color:var(--fg)}.chip--on:hover{background:color-mix(in oklch, var(--fg) 82%, var(--bg))}.field{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--card);width:100%;color:var(--fg);font:inherit;transition:border-color var(--dur-micro) var(--ease-out);padding:.6rem .8rem}.field:hover{border-color:var(--fg)}.field::placeholder{color:var(--muted)}:is(input,select).field{height:2.75rem}select.field{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--fg) 50%), linear-gradient(135deg, var(--fg) 50%, transparent 50%);background-position:right 1.05rem center,right .75rem center;background-repeat:no-repeat;background-size:.3rem .3rem;padding-right:2.2rem}input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:var(--fg)}summary{cursor:pointer}textarea.field{white-space:pre;min-height:14rem;font-family:var(--mono);resize:vertical;font-size:.9rem;line-height:1.55;overflow:auto}.tool textarea.field{min-height:30rem}input[type=search].field{border-radius:var(--radius-full);padding-inline:1.1rem}.field--xs{max-width:4rem}.field--sm{max-width:6rem}.field--md{max-width:8rem}.banner{background:var(--tint);border:1px solid color-mix(in oklch, var(--accent) 40%, var(--line));border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin:var(--space-md) 0}.error{color:var(--error);border:1px solid var(--error);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);overflow-wrap:anywhere}.notes{border:1px solid var(--line);border-radius:var(--radius-md);margin:var(--space-md) 0;padding:var(--space-sm) var(--space-md);overflow-wrap:anywhere}:is(.banner,.error,.notes)>:first-child{margin-top:0}:is(.banner,.error,.notes)>:last-child{margin-bottom:0}.curve{margin:var(--space-lg) 0}.curve-plot{height:var(--curve-h,12rem);border-bottom:1px solid var(--line-strong);margin-top:1.9rem;position:relative;container-type:inline-size}.curve-svg,.spark{width:100%;display:block;overflow:visible}.curve-svg{height:100%;position:absolute;inset:0}.curve-line{fill:none;stroke:var(--water);stroke-width:2px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.curve-area{fill:var(--water-fill)}.curve-svg--ghost .curve-line{stroke:var(--line-strong);stroke-width:1px;stroke-dasharray:2 4}.curve-svg--ghost .curve-area{fill:none}.curve-svg--done{clip-path:inset(-2rem calc((1 - var(--p)) * 100%) -1px -1px)}.curve-pt{left:var(--x);bottom:var(--y);background:var(--water);width:.56rem;height:.56rem;box-shadow:0 0 0 2px var(--bg);transition:background-color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);border-radius:50%;margin:0 0 -.28rem -.28rem;position:absolute}.curve-pt-w{font-family:var(--mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--fg);transition:color var(--dur-short) var(--ease-out);line-height:1;position:absolute;bottom:.75rem;left:.2rem}@container (width<=30rem){.curve-pt-w--wide{display:none}}.curve-pt--left .curve-pt-w{left:auto;right:.2rem}.curve-pt.is-pending{background:var(--line-strong)}.curve-pt.is-pending .curve-pt-w{color:var(--muted)}.curve-pt.is-active{transform:scale(1.5)}.curve-pt.is-active .curve-pt-w{transform-origin:0 100%;transform:scale(.667)}.curve-pt--left.is-active .curve-pt-w{transform-origin:100% 100%}.curve-playhead{width:2px;height:calc(var(--h,0) * 100%);background:var(--water);transform:translateX(calc(var(--p) * 100cqi));opacity:0;margin-left:-1px;position:absolute;bottom:0;left:0}.curve[data-playing] .curve-playhead{opacity:1}.curve-axis{height:1.3rem;margin:var(--space-xs) 0 0;font-family:var(--mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--muted);padding:0;list-style:none;position:relative}.curve-axis li{left:var(--x);white-space:nowrap;position:absolute;transform:translate(-50%)}.curve-axis li:first-child{transform:none}.curve-axis li:last-child{transform:translate(-100%)}.curve figcaption{margin-top:var(--space-xs);font-size:var(--text-sm)}.spark{height:2.9rem}.spark .curve-line{stroke-width:1.5px}.ratio-coffee{fill:var(--coffee)}.ratio{margin:var(--space-lg) 0}.ratio-bar{grid-template-columns:var(--c) minmax(0, 1fr);border-bottom:1px solid var(--line-strong);height:4.5rem;display:grid}.ratio-bar>:first-child{background:var(--coffee)}.ratio-bar>:last-child{background:var(--water-fill);border-top:2px solid var(--water)}.ratio-legend{justify-content:space-between;gap:var(--space-md);margin:var(--space-xs) 0 0;font-family:var(--mono);font-size:var(--text-xs);color:var(--muted);display:flex}.strip{margin:0}.strip ol{gap:3px;margin:0;padding:0;list-style:none;display:flex}.strip li{flex:var(--share) 1 0;gap:var(--space-3xs);min-width:0;font-size:var(--text-sm);overflow-wrap:anywhere;flex-direction:column;display:flex}.strip-bar{height:4.5rem;margin-bottom:var(--space-xs);border-top:2px solid var(--coffee);background:color-mix(in oklch, var(--coffee) calc(78% - var(--k) * 26%), var(--bg))}.strip figcaption{margin-top:var(--space-sm);font-size:var(--text-sm)}.bag{gap:var(--space-xl);margin:var(--space-lg) 0 var(--space-xl);display:grid}.bag>*{min-width:0;margin:0}.bag-main>:first-child{margin-top:0}@media (width>=60rem){.bag{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}.bag>.spec{grid-template-columns:minmax(0,1fr)}}.conformance{margin:var(--space-lg) 0 var(--space-xl)}.tally+.tally{margin-top:var(--space-xl)}.tally h3{margin:0 0 var(--space-sm)}.tally dl{gap:var(--space-md);margin:0;display:grid}.tally dt{margin-bottom:var(--space-xs);font-size:var(--text-sm);color:var(--muted)}.tally dd{margin:0}.cells{flex-wrap:wrap;gap:3px;margin:0;padding:0;list-style:none;display:flex}.cell{width:.95rem;height:1.6rem;transition:transform var(--dur-micro) var(--ease-out);border-radius:2px;display:block}.cell:hover{transform:scaleY(1.25)}.accept{background:var(--water)}.refuse{background:var(--coffee)}@media (pointer:coarse){.cell{pointer-events:none}}.cell-caption{min-height:1.5em;margin:var(--space-sm) 0 0;font-size:var(--text-sm)}.copyable{max-width:var(--measure);position:relative}.copyable>pre{padding-top:2.9rem}.copy{top:var(--space-xs);right:var(--space-xs);border:1px solid var(--line-strong);border-radius:var(--radius-full);background:var(--card);min-height:1.9rem;color:var(--fg);font:inherit;font-size:var(--text-xs);cursor:pointer;transition:border-color var(--dur-micro) var(--ease-out);padding:0 .7rem;position:absolute}.copy:hover{border-color:var(--fg)}.cards{gap:var(--space-md);margin:var(--space-lg) 0;grid-template-columns:repeat(auto-fill,minmax(min(19rem,100%),1fr));padding:0;list-style:none;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg) var(--space-lg);min-width:0}main>.card,.save-panel{margin-top:var(--space-xl)}.group{margin-top:var(--space-2xl)}.group>h2{align-items:baseline;gap:var(--space-sm);padding-bottom:var(--space-sm);border-bottom:2px solid var(--fg);font-size:var(--text-xl);margin:0;display:flex}.group>h2 .num{font-size:var(--text-sm);letter-spacing:0;font-weight:400}.facet{margin:var(--space-xs) 0;position:relative}.facet:has(.facet-label){padding-left:5rem}@media (width<=40rem){.facet{scrollbar-width:none;margin-right:calc(var(--gutter) * -1);padding-right:calc(var(--gutter) * 2);-webkit-mask-image:linear-gradient(to left, transparent, var(--bg) 3rem);mask-image:linear-gradient(to left, transparent, var(--bg) 3rem);flex-wrap:nowrap;overflow-x:auto}}.facet-label{font-size:var(--text-sm);color:var(--muted);position:absolute;top:.35rem;left:0}.empty{justify-items:start;gap:var(--space-sm);margin:var(--space-xl) 0;padding:var(--space-xl) 0;border-block:1px solid var(--line);display:grid}.empty p{font-family:var(--font-display);font-size:var(--text-xl);margin:0;font-weight:600}.count{font-size:var(--text-sm)}.rows{margin:0;padding:0;list-style:none}.recipe-row{gap:var(--space-2xs) var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--line);grid-template-columns:5.5rem minmax(0,1fr) auto;align-items:center;display:grid}.row-glyph{border-bottom:1px solid var(--line-strong);grid-row:span 2;align-self:start}.row-glyph .spark{height:3.2rem}.spark--weights .curve-line{stroke-width:1.5px}.row-main>*{margin:0}.row-main h3{font-size:var(--text-md);letter-spacing:-.005em}.row-main h3 a{color:var(--fg);text-decoration:none}.recipe-row{position:relative}.recipe-row:before{content:"";inset:0 calc(var(--space-sm) * -1);z-index:-1;border-radius:var(--radius-sm);background:color-mix(in oklch, var(--fg) 5%, transparent);opacity:0;transition:opacity var(--dur-micro) var(--ease-out);position:absolute}.row-main h3 a:after{content:"";position:absolute;inset:0}.recipe-row :is(.row-link,.btn){z-index:1;position:relative}.row-figs{grid-column:2/-1;margin:0}.row-figs>:empty{display:none}.recipe-row>.btn{min-height:2.1rem;font-size:var(--text-sm);grid-area:1/3;padding:0 .9rem}.row-link{color:inherit;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong)}.row-link:hover{color:var(--accent)}.rows-head{display:none}@media (width>=62rem){.rows-head{gap:0 var(--space-md);margin:var(--space-xl) 0 calc(var(--space-xl) * -1);font-size:var(--text-xs);color:var(--muted);grid-template-columns:7rem minmax(0,1fr) 12rem 4.75rem 8.25rem 2.75rem 4.5rem;display:grid}.rows-head>:nth-child(n+3){text-align:right}}.recipe-row.is-on:before{opacity:1}.row-source{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.list-head{justify-content:space-between;align-items:baseline;gap:var(--space-2xs) var(--space-xl);margin:var(--space-lg) 0 0;flex-wrap:wrap;display:flex}.list-head>*{margin:0}.intro{font-size:.95rem}.legend{gap:var(--space-2xs) var(--space-lg);margin:var(--space-xs) 0 0;font-size:var(--text-sm);color:var(--muted);flex-wrap:wrap;display:flex}.legend .spark{width:2.6rem;height:1.1rem;margin-right:var(--space-2xs);vertical-align:-.15rem;display:inline-block}@media (width<=40rem){.recipe-row{grid-template-columns:4.25rem minmax(0,1fr)}.recipe-row>.btn{display:none}.figures.row-figs{gap:0 var(--space-lg);grid-column:2;grid-template-columns:repeat(2,max-content);display:grid}}@media (hover:hover){.recipe-row:hover:before{opacity:1}.recipe-row:hover h3 a{color:var(--accent)}.recipe-row:hover .spark,.wall-link:hover .spark{animation:wipe .7s var(--ease-out)}}@media (width>=62rem){.recipe-row{gap:0 var(--space-md);grid-template-columns:7rem minmax(0,1fr) 12rem 4.75rem 8.25rem 2.75rem 4.5rem}.row-glyph{grid-row:auto;align-self:center}.figures.row-figs{display:contents}.figures.row-figs>span{text-align:right;display:block}.recipe-row>.btn{grid-area:auto}}.index{margin:0;padding:0;list-style:none}.index>li{gap:var(--space-3xs) var(--space-lg);padding:var(--space-sm) 0;border-bottom:1px solid var(--line);font-size:.95rem;display:grid}.index-link{font-family:var(--font-display);font-size:var(--text-md);color:var(--fg);word-break:keep-all;line-break:strict;overflow-wrap:anywhere;font-weight:600;text-decoration:none}.index-link:hover{color:var(--accent)}.roast{margin-right:var(--space-2xs);vertical-align:-.05em;gap:2px;display:inline-flex}.roast>i{width:.5rem;height:.8rem;box-shadow:inset 0 0 0 1px var(--line-strong);border-radius:1px}@media (prefers-color-scheme:dark){.roast>i{box-shadow:inset 0 0 0 1px var(--line-strong)}}.roast>.on{background:color-mix(in oklch, var(--roast-dark) calc(var(--k) * 20%), var(--roast-light))}.origins{margin:var(--space-2xs) 0;padding:0;list-style:none}.index .origins{font-size:var(--text-sm);color:var(--muted);margin:0}@media (width>=52rem){.index>li{grid-template-columns:minmax(0,4fr) minmax(0,6fr) minmax(0,2.5fr) minmax(0,2.5fr) 4.5rem;align-items:baseline}.index>li>:last-child{text-align:right}}.origins>*+*{margin-top:var(--space-3xs)}.cards--few{grid-template-columns:repeat(auto-fit,minmax(min(19rem,100%),26rem))}.card h3{margin:0 0 var(--space-2xs)}.card h2{margin:0 0 var(--space-xs)}.card p{margin:var(--space-xs) 0}.card h3 a,.card h2 a{color:var(--fg);transition:background-size var(--dur-short) var(--ease-out);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;text-decoration:none}.card h3 a:hover,.card h2 a:hover{background-size:100% 1px}.figures{flex-wrap:wrap;gap:0 1.3em;display:flex}.figures>span{white-space:nowrap}.card .btn{min-height:2.1rem;font-size:var(--text-sm);padding:0 .8rem}.card-head{gap:var(--space-sm);margin-bottom:var(--space-xs);align-items:center;min-width:0;display:flex}.card-head h3,.card-head p{margin:0}.card-icon{border-radius:22%;flex:none;width:56px;height:56px}.attribution{font-size:var(--text-sm);color:var(--muted)}.bean-card>p{margin:var(--space-2xs) 0}.bean-recipes,.bean-sources{margin:var(--space-xs) 0 0;padding:0;list-style:none}.bean-recipes li{gap:var(--space-md);grid-template-columns:5.5rem minmax(0,1fr) auto;align-items:center;display:grid}.bean-recipes li,.bean-sources li{padding:var(--space-xs) 0;border-top:1px solid var(--line)}.card .bean-recipes{font-size:var(--text-sm)}.overlay{margin:var(--space-xl) 0 0}.overlay-plot{border-bottom:1px solid var(--line-strong);height:clamp(11rem,26vw,19rem);margin-left:3rem;position:relative}.overlay svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ov-grid{fill:none;stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke}.ov-line{fill:none;stroke:var(--water);stroke-width:1.5px;stroke-opacity:.55;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:stroke-opacity var(--dur-micro) var(--ease-out)}.ov-hit{fill:none;stroke:#0000;stroke-width:12px;vector-effect:non-scaling-stroke;pointer-events:stroke}.overlay.has-on .ov-line{stroke-opacity:.12}.overlay.has-on .ov-line.is-on{stroke-opacity:1;stroke-width:2.5px}.overlay-levels{width:3rem;font-family:var(--mono);font-size:var(--text-xs);color:var(--muted);margin:0;padding:0;list-style:none;position:absolute;inset:0 100% 0 auto}.overlay-levels li{right:var(--space-xs);bottom:var(--y);white-space:nowrap;position:absolute;transform:translateY(50%)}.overlay-axis{margin-left:3rem}.overlay figcaption{margin:var(--space-xs) 0 0 3rem;font-size:var(--text-sm)}.steps{padding-left:0;list-style:none}.steps li{gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--line);transition:background-color var(--dur-micro) var(--ease-out);display:flex}.steps li.is-active{background:var(--water-fill)}.steps .t{min-width:3.2rem;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);font-size:.9em}.steps .to{padding-left:var(--space-sm);font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:.9em}.clock{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.04em;margin:var(--space-md) 0;font-size:clamp(3.5rem,2rem + 9vw,7rem);line-height:1}.qr-panel{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-md);background:var(--card);max-width:20rem;margin-top:var(--space-sm);animation:rise var(--dur-short) var(--ease-out)}.qr-panel svg{border-radius:var(--radius-sm);width:100%;height:auto}.qr-panel svg path:first-child{fill:var(--qr-ground)}.qr-panel svg path:last-child{stroke:oklch(23.5% .025 45)}.scoped-share{margin:var(--space-xs) 0 var(--space-lg);padding-left:var(--space-md);border-left:1px solid var(--line)}.scoped-share>.muted{margin:0 0 var(--space-xs);font-size:var(--text-sm)}.scoped-share .btn{min-height:2.1rem;font-size:var(--text-sm);padding:0 .8rem}.whole-share{margin:var(--space-xl) 0 var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--line)}.whole-share>.muted{margin:0 0 var(--space-xs)}:is(.whole-share,.scoped-share,.save-panel) .btn{min-height:2.25rem;font-size:var(--text-sm);padding:0 .85rem}:is(.whole-share,.scoped-share,.save-panel) .row{gap:var(--space-2xs)}.qr-figure{margin:0}.qr-figure img{background:var(--qr-ground);border-radius:var(--radius-sm);width:100%;display:block}.hero{gap:var(--space-lg) var(--space-2xl);padding:clamp(1.25rem, 3vw, 2.5rem) 0 var(--space-xl);display:grid}.hero>*{min-width:0}.hero .lede{max-width:34rem}.hero .row{margin:0}@media (width>=64rem){.hero{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end}.hero .lede{font-size:var(--text-md);margin-bottom:var(--space-md)}.hero>.live{grid-column:1/-1}}@media (width<=63.99rem){.hero .lede{margin-bottom:var(--space-md);font-size:1rem}.hero .row{gap:var(--space-2xs);flex-wrap:nowrap}.hero .row .btn{min-height:2.6rem;padding-inline:var(--space-xs);font-size:var(--text-sm);flex:1 1 0}}.live{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);display:grid;overflow:hidden}.live>*{min-width:0}.live-stage{padding:var(--space-lg) var(--space-lg) var(--space-md);--curve-h:clamp(9rem, 18vw, 13rem)}@media (width>=64rem){.live{grid-template-columns:minmax(0,8fr) minmax(0,5fr)}.live-stage{padding:var(--space-xl) var(--space-xl) var(--space-lg)}.live>.live-doc{contain:size;border-top:0;border-left:1px solid var(--line);flex-direction:column;display:flex}.live .live-json{flex:1 1 0;height:auto;min-height:0}}.live-stage .curve{margin:var(--space-xs) 0 0}.live-doc{border-top:1px solid var(--line);background:var(--sunk)}.live-file{justify-content:space-between;gap:0 var(--space-md);padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--line);font-family:var(--mono);font-size:var(--text-xs);color:var(--muted);flex-wrap:wrap;margin:0;display:flex}.live-file-link{color:var(--fg)}.live-json{height:calc(7 * 1.6em + 2 * var(--space-sm));padding:var(--space-sm) 0;color:var(--muted);scrollbar-width:thin;-webkit-mask-image:linear-gradient(to bottom, transparent, var(--bg) 1.2em calc(100% - 1.6em), transparent);mask-image:linear-gradient(to bottom, transparent, var(--bg) 1.2em calc(100% - 1.6em), transparent);background:0 0;border:0;border-radius:0;margin:0;font-size:.82rem;line-height:1.6;position:relative;overflow:auto}.ln{padding:0 var(--space-lg) 0 calc(var(--space-lg) + (var(--i,0) + 2) * 1ch);text-indent:-2ch;white-space:pre-wrap;overflow-wrap:anywhere;transition:background-color var(--dur-short) var(--ease-out);display:block}.ln .k{color:var(--fg)}.ln .n{color:var(--accent)}.ln.is-active{background:var(--water-fill);color:var(--fg)}.readout{gap:var(--space-xl);align-items:flex-end;margin:0;display:flex}.readout>div{flex-direction:column-reverse;display:flex}.readout dt{font-size:var(--text-sm);color:var(--muted)}.readout dd{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.04em;margin:0;font-size:clamp(2.2rem,1.4rem + 2.6vw,3.5rem);line-height:1}.live-controls{gap:var(--space-sm);margin-top:var(--space-sm);align-items:center;display:flex}.live-controls[hidden]{display:none}.live-controls .btn{min-width:5.4rem;min-height:2.25rem;font-size:var(--text-sm)}.live-controls input[type=range]{min-width:0;accent-color:var(--accent);flex:1}.live-hint{justify-content:space-between;gap:var(--space-md);margin:var(--space-xs) 0 0;font-size:var(--text-sm);display:flex}.live:not([data-ready]) .live-hint{display:none}.link{color:var(--accent);font:inherit;text-underline-offset:.18em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline;text-decoration-thickness:1px}.link:hover{text-decoration-thickness:2px}.live[data-ready] .curve-pt{cursor:grab;touch-action:none;width:1rem;height:1rem;margin:0 0 -.5rem -.5rem}@media (prefers-reduced-motion:no-preference){.live[data-played]:not([data-edited]) .curve-pt:nth-child(5){animation:nudge .9s var(--ease-in-out) .4s 2}}.live[data-ready] .curve-pt:after{content:"";position:absolute;inset:-.8rem}.live[data-ready] .curve-pt:active{cursor:grabbing}.live[data-ready] .curve-pt-w{bottom:1.15rem}.curve-pt-w.is-off{display:none}.curve-pt.is-active .curve-pt-w.is-off{display:block}.live[data-ready] .curve-pt:is(:hover,.is-active){box-shadow:0 0 0 2px var(--card), 0 0 0 4px var(--water);transform:none}.live[data-ready] .curve-pt:is(:hover,.is-active) .curve-pt-w{transform:none}.live[data-ready] .curve-pt.is-active .curve-pt-w{z-index:2;border-radius:var(--radius-sm);background:var(--fg);color:var(--bg);padding:.2rem .4rem;bottom:1.25rem}.unit{letter-spacing:0;color:var(--muted);margin-left:.14em;font-size:.5em}.mv{border-top:1px solid var(--line);padding-block:clamp(2.5rem,7vw,4.5rem)}.hero+.mv{margin-top:var(--space-xl)}.mv h2{font-size:var(--text-2xl);letter-spacing:-.03em;margin:0 0 var(--space-lg);max-width:16ch;font-weight:650;line-height:1.02}.mv p{max-width:var(--measure)}.mv--quiet{padding-block:var(--space-xl)}.mv--quiet>h2{font-size:var(--text-xl);letter-spacing:-.015em}.mv-split>section+section{margin-top:var(--space-2xl)}@media (width>=60rem){.mv-head{gap:var(--space-xl);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;display:grid}.mv-split{gap:var(--space-2xl);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.mv-split>section+section{margin-top:0}}.carriers{gap:var(--space-xl);margin:var(--space-xl) 0 0;padding:var(--space-lg) 0 0;border-top:2px solid var(--fg);list-style:none;display:grid}.carriers>li{min-width:0}.carriers h3{margin:0 0 var(--space-md)}.carriers pre{margin:0 0 var(--space-sm);font-size:.84rem}.carriers .qr-figure{margin-bottom:var(--space-sm)}.qr{border-radius:var(--radius-sm);background:var(--qr-ground);color:oklch(23.5% .025 45);fill:currentColor;width:100%;max-width:15rem;height:auto;display:block}.share-url{margin-bottom:var(--space-sm);font-family:var(--mono);font-size:var(--text-sm);overflow-wrap:anywhere;color:var(--muted);line-height:1.5;text-decoration:none;display:block}.share-url b{color:var(--fg);font-weight:400}.share-url:hover b{color:var(--accent)}@media (width>=46rem){.carriers{grid-template-columns:minmax(0,6fr) minmax(0,3fr) minmax(0,4fr)}.carriers>li+li{padding-left:var(--space-xl);border-left:1px solid var(--line)}}.facts{gap:0 var(--space-lg);border-top:2px solid var(--fg);grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));margin:0;padding:0;display:grid}.facts>div{padding:var(--space-sm) 0 var(--space-md)}.facts dt{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.05em;font-size:clamp(2.2rem,1.4rem + 2.6vw,3.5rem);line-height:1}.facts dd{margin:var(--space-xs) 0 0;color:var(--muted);font-size:var(--text-sm);line-height:1.4}.wall{gap:var(--space-lg) var(--space-md);margin:var(--space-xl) 0 var(--space-lg);grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}@media (width>=40rem){.wall{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=64rem){.wall{grid-template-columns:repeat(6,minmax(0,1fr))}}.wall-link{color:var(--muted);transition:color var(--dur-micro) var(--ease-out);text-decoration:none;display:block}.wall .spark{border-bottom:1px solid var(--line-strong);height:3.4rem}.wall span{min-height:2.7em;margin-top:var(--space-2xs);font-size:var(--text-xs);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.wall-link:hover,.wall-link:focus-visible{color:var(--fg)}.shelf{gap:0 var(--space-lg);border-top:2px solid var(--fg);grid-template-columns:repeat(auto-fit,minmax(min(11rem,100%),1fr));margin:0;padding:0;list-style:none;display:grid}.shelf li{gap:var(--space-2xs);padding:var(--space-md) 0 0;flex-direction:column;display:flex}.shelf>*>:first-child:after{content:" →";font-family:var(--mono);color:var(--muted);font-weight:400}.shelf>*>:first-child{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.01em;color:var(--fg);font-weight:600;text-decoration:none}.shelf>*>:first-child:hover{color:var(--accent)}.shelf span{font-size:var(--text-sm);color:var(--muted)}.outro{margin-top:var(--space-2xl);padding:clamp(3rem, 9vw, 7rem) 0 var(--space-xl);border-top:1px solid var(--line);position:relative;overflow:hidden}.outro-curve{inset:var(--space-xl) 0 0 58%;position:absolute}.outro-curve .spark{height:100%}.outro>:not(.outro-curve){position:relative}.outro-line{max-width:14ch;margin:0 0 var(--space-lg);font-family:var(--font-display);font-size:var(--text-display);letter-spacing:-.03em;text-wrap:balance;font-weight:700;line-height:.94}.outro+footer{margin-top:0}@media (prefers-color-scheme:dark){.outro-curve{opacity:1}.live{border-color:var(--line-strong)}}@media (pointer:coarse){.site-footer nav a{padding-block:var(--space-xs);display:inline-block}}.qa{padding:var(--space-md) 0 0;border-top:1px solid var(--line-strong);margin:0;list-style:none}.qa>li{break-inside:avoid;padding-bottom:var(--space-lg)}.qa h3{margin:0 0 var(--space-xs)}.qa p{margin:0}@media (width>=52rem){.qa{columns:2;column-gap:var(--space-2xl)}}.mv-split h3{margin-top:var(--space-xl)}.mv-split h2{max-width:none;font-size:clamp(1.85rem,1.2rem + 1.9vw,2.5rem)}.ledger{margin:var(--space-lg) 0;border-top:1px solid var(--line-strong);padding:0;list-style:none}.mv-head>.ledger{margin:0}.ledger>li{padding:var(--space-md) 0;border-bottom:1px solid var(--line)}.ledger h3{margin:0 0 var(--space-2xs)}.ledger p{margin:0}@media (width>=46rem){.ledger:not(.ledger--stacked)>li{gap:var(--space-lg);grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:baseline;display:grid}.ledger:not(.ledger--stacked) h3{margin:0}}.ledger.ledger--drawn>li{gap:0 var(--space-lg);grid-template-columns:5rem minmax(0,1fr);align-items:start;display:grid}.glyph{width:100%;height:auto;color:var(--fg);grid-row:span 2}@media (width>=46rem){.ledger.ledger--drawn>li{grid-template-columns:6.5rem minmax(0,4fr) minmax(0,8fr);align-items:center}.ledger.ledger--drawn .glyph{grid-row:auto}}.glyph .ink{fill:none;stroke:currentColor;vector-effect:non-scaling-stroke;stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round}.glyph .wet{fill:var(--water-fill);stroke:var(--water);vector-effect:non-scaling-stroke;stroke-width:1.5px;stroke-linejoin:round}.guarantees{margin:var(--space-lg) 0 0;border-top:1px solid var(--line-strong);padding:0;list-style:none}.guarantees>*{padding:var(--space-sm) 0;border-bottom:1px solid var(--line)}.dropzone{border-style:dashed;border-color:var(--line-strong);text-align:center;background:0 0}.tool{gap:var(--space-lg);margin-top:var(--space-lg);display:grid}.tool>*{min-width:0}.tool-result>:first-child{margin-top:0}.tool-result:empty:before{content:"The result appears here.";padding:var(--space-lg);border:1px dashed var(--line-strong);border-radius:var(--radius-md);color:var(--muted);display:block}@media (width>=60rem){.tool{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}.gen-field{margin:var(--space-sm) 0;display:block}.gen-field>.muted{margin-bottom:var(--space-2xs);font-size:var(--text-sm);display:block}.gen-step{flex-wrap:wrap}.gen-step .field{flex:8rem;width:auto}.gen-step :is(.field--xs,.field--sm,.field--md){flex:0 auto}.gen-layout{gap:var(--space-md);grid-template-areas:"json""preview""form";display:grid}.gen-json{grid-area:json}.gen-preview{grid-area:preview}.gen-form{gap:var(--space-md);grid-area:form;display:grid}.gen-form>*,.gen-layout>*{min-width:0;margin:0}.gen-form>.btn{justify-self:start}.gen-form>.card{gap:0 var(--space-md);grid-template-columns:repeat(auto-fit,minmax(min(11rem,100%),1fr));align-items:end;display:grid}.gen-form>.card>:not(.gen-field),.gen-form .gen-field:first-of-type{grid-column:1/-1}.gen-preview :is(.cj-card,.card){background:0 0;border:0;padding:0}.gen-preview .card{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--line);border-radius:0}.gen-layout summary{cursor:pointer;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}@media (width>=62rem){.gen-layout{grid-template-columns:minmax(0,1fr) minmax(0,24rem);grid-template-areas:"json preview""form preview";align-items:start}.gen-preview{top:var(--space-md);max-height:calc(100dvh - 2rem);position:sticky;overflow-y:auto}.gen-preview .cj-step-delta{display:none}.gen-preview .cj-steps:has(.cj-step-delta){column-gap:var(--space-sm);grid-template-columns:max-content minmax(0,1fr) max-content}}:is(.pitfalls,.impl){border-collapse:collapse;width:100%;margin:var(--space-md) 0;font-size:.95rem;display:block;overflow-x:auto}:is(.pitfalls,.impl) :is(th,td){border-bottom:1px solid var(--line);padding:var(--space-sm) var(--space-md) var(--space-sm) 0;text-align:left;vertical-align:top}:is(.pitfalls,.impl) thead th{border-bottom:1px solid var(--line-strong);font-size:var(--text-sm);color:var(--muted);font-weight:500}:is(.pitfalls,.impl) tbody th{white-space:nowrap;font-weight:400}.pitfalls code{white-space:pre}@media (width<=46rem){:is(.pitfalls,.impl) thead{display:none}:is(.pitfalls,.impl) :is(tbody,tr,th,td){display:block}:is(.pitfalls,.impl) tr{padding:var(--space-sm) 0;border-bottom:1px solid var(--line)}:is(.pitfalls,.impl) tbody :is(th,td){padding:var(--space-3xs) 0;white-space:normal;border:0}:is(.pitfalls,.impl) [data-label]:before{content:attr(data-label);font-size:var(--text-xs);color:var(--muted);display:block}.pitfalls code{white-space:pre-wrap;overflow-wrap:anywhere}}@media (width<=40rem){main pre:not(.live-json){white-space:pre-wrap;overflow-wrap:anywhere;font-size:.78rem}}pre.prose{white-space:pre-wrap;overflow-wrap:anywhere}main .cj-view{--cj-accent:var(--accent);--cj-fg:var(--fg);--cj-muted:var(--muted);--cj-bg:var(--card);--cj-border:var(--line);--cj-radius:var(--radius-md);--cj-font:inherit;margin-top:var(--space-lg);container-type:inline-size}.cj-view .cj-card{padding:var(--space-lg)}.cj-view .cj-title{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.015em;font-weight:600;line-height:1.15}.cj-view .cj-badge{color:var(--accent-fg);font-family:var(--font-body);letter-spacing:0}.cj-view .cj-fact{gap:var(--space-sm);padding:var(--space-xs) 0;border-top:1px solid var(--line);grid-template-columns:6.5rem minmax(0,1fr);margin:0;display:grid}.cj-view .cj-fact-label{font-size:var(--text-sm);margin:0}.cj-view .cj-fact-value{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.92em}.cj-view .cj-steps{margin-top:var(--space-md);padding:var(--space-sm) 0 0;border-top:1px solid var(--line-strong);list-style:none}.cj-view .cj-step-time,.cj-view .cj-step-delta,.cj-view .cj-step-target{font-family:var(--mono);font-size:.9em}.cj-recipe-block{gap:var(--space-md);display:grid}.cj-recipe-block>p{margin:0}.curve-card{padding:var(--space-xs) var(--space-lg) var(--space-md);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);--curve-h:clamp(8rem, 20vw, 13rem)}.curve-card .curve{margin:0}.cj-view .cj-step-target{font-weight:400}.cj-view[data-solo] .cj-title,.cj-brewing :is(.cj-title,.cj-subtitle,.cj-fact,.cj-notes){display:none}.cj-view.cj-brewing .cj-recipe-card:has(.cj-steps){display:block}.cj-view.cj-brewing .cj-steps{border-top:0;margin-top:0;padding-top:0}.cj-view[data-solo] .cj-recipe-card>.cj-steps{grid-row:2/span 24}.cj-view .cj-step--active :is(.cj-step-time,.cj-step-delta,.cj-step-target){font-weight:400}.cj-view~.muted{margin-top:var(--space-lg)}.cj-view .cj-notes{margin:var(--space-lg) 0 0;max-width:var(--measure);color:var(--muted);font-size:.95rem}@container (width>=46rem){.cj-view .cj-recipe-card:has(.cj-steps){column-gap:var(--space-2xl);grid-template-columns:minmax(0,20rem) minmax(0,1fr);align-content:start;display:grid}.cj-view .cj-recipe-card:has(.cj-steps)>*{grid-column:1}.cj-view .cj-recipe-card:has(.cj-steps)>:is(.cj-title,.cj-subtitle,.cj-notes){grid-column:1/-1}.cj-view .cj-recipe-card>.cj-steps{border-top:0;grid-area:3/2/span 24;align-self:start;margin-top:0;padding-top:0}}.cj-brewing{margin-top:var(--space-lg)}.brew-stage{gap:var(--space-md) var(--space-xl);--curve-h:clamp(8rem, 24vw, 13rem);display:grid}.brew-stage>*{min-width:0}.brew-now .clock{margin:0}.brew-cue{align-items:baseline;gap:var(--space-2xs) var(--space-md);margin:var(--space-sm) 0 0;font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.015em;flex-wrap:wrap;font-weight:600;line-height:1.15;display:flex}.brew-target{font-family:var(--mono);letter-spacing:-.02em;color:var(--accent);font-weight:400}@media (width>=60rem){.brew-stage{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:end}}.brew-next{min-height:1.5em;margin:var(--space-xs) 0 0;color:var(--muted)}.brew-controls{margin:var(--space-lg) 0;align-items:stretch}.brew-controls .cj-brew-btn:first-child{min-width:7rem}.brew-stage[data-paused] .clock{color:var(--muted)}.brew-stage[data-paused] .curve-playhead{background:var(--muted)}.cj-brew-controls{display:contents}.brew-controls .cj-brew-btn{border:1px solid var(--fg);border-radius:var(--radius-full);background:var(--fg);min-height:3rem;color:var(--bg);font:inherit;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);justify-content:center;align-items:center;padding:0 1.4rem;font-weight:550;display:inline-flex}.brew-controls .cj-brew-btn:hover{background:color-mix(in oklch, var(--fg) 82%, var(--bg))}.brew-controls .cj-brew-btn:active{transform:translateY(1px)}.brew-controls .cj-brew-btn--ghost{color:var(--fg);border-color:var(--line-strong);background:0 0}.brew-controls .cj-brew-btn--ghost:hover{background:color-mix(in oklch, var(--fg) 8%, transparent)}.cj-brewing .cj-step{opacity:.45;transition:opacity var(--dur-short) var(--ease-out)}.cj-brewing .cj-step--active,.cj-brewing .cj-step--active~.cj-step{opacity:1}:is(.cj-view .cj-steps:has(.cj-step-delta),.cj-brewing .cj-steps:has(.cj-step-delta)){column-gap:var(--space-md);grid-template-columns:max-content minmax(0,1fr) max-content max-content;display:grid}:is(.cj-view .cj-steps:has(.cj-step-delta) .cj-step,.cj-brewing .cj-steps:has(.cj-step-delta) .cj-step){grid-column:1/-1;grid-template-columns:subgrid;align-items:baseline;display:grid}.cj-view .cj-step-delta,.cj-view .cj-step-target,.cj-brewing .cj-step-delta,.cj-brewing .cj-step-target{font-variant-numeric:tabular-nums;justify-self:end}@container (width<=30rem){.cj-view .cj-step-delta{display:none}.cj-view .cj-steps:has(.cj-step-delta){column-gap:var(--space-sm);grid-template-columns:max-content minmax(0,1fr) max-content}}.recipe{gap:var(--space-md) var(--space-2xl);display:grid}.recipe>*{min-width:0}.recipe+.recipe{margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:2px solid var(--fg)}.recipe>h2{font-size:var(--text-page);letter-spacing:-.025em;margin:0;font-weight:650;line-height:1.02}.page-title--kicker h1{margin:var(--space-xl) 0 var(--space-lg);padding-bottom:var(--space-sm);border-bottom:2px solid var(--fg);font-family:var(--font-body);font-size:var(--text-md);letter-spacing:0;color:var(--muted);font-weight:500;line-height:1.4}.recipe .figures{font-size:var(--text-md)}.recipe-top>:first-child,.recipe-main>.curve:first-child{margin-top:0}.recipe-top .whole-share,.recipe-top .scoped-share{margin:var(--space-lg) 0 0;border:0;padding:0}.recipe-notes{max-width:var(--measure);font-size:.95rem}.recipe--plain{max-width:var(--measure)}@media (width>=60rem){.recipe:not(.recipe--plain){grid-template:"head head""main top""main notes"1fr/minmax(0,7fr) minmax(0,5fr)}.recipe>h2{grid-area:head}.recipe:not(.recipe--plain)>.recipe-main{grid-area:main}.recipe:not(.recipe--plain)>.recipe-top{grid-area:top}.recipe:not(.recipe--plain)>.recipe-notes{grid-area:notes}}.spec{gap:0 var(--space-lg);max-width:60rem;margin:var(--space-lg) 0;border-top:1px solid var(--line-strong);grid-template-columns:repeat(auto-fit,minmax(min(14rem,100%),1fr));display:grid}.spec-row{padding:var(--space-sm) 0;border-bottom:1px solid var(--line)}.spec dt{font-size:var(--text-sm);color:var(--muted)}.spec dd{margin:0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes nudge{50%{transform:translateY(-.5rem)}}@keyframes wipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes draw{0%{--p:0}}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}::view-transition-old(root){animation-duration:.18s;animation-timing-function:var(--ease-out)}::view-transition-new(root){animation-duration:.18s;animation-timing-function:var(--ease-out)}.hero>*{animation:rise var(--dur-long) var(--ease-out) backwards;animation-delay:calc(var(--n,0) * 90ms)}.hero>:nth-child(2){--n:1}.hero>:nth-child(3){--n:2}[data-draw=wait]:not(.outro) .spark,[data-draw=wait] .outro-curve{clip-path:inset(0 100% 0 0)}[data-draw=in]:not(.outro) .spark{animation:wipe .8s var(--ease-out) backwards;animation-delay:calc(var(--k,0) * 45ms)}[data-draw=in] .outro-curve{animation:wipe 1.4s var(--ease-in-out) backwards}main[data-slug] .curve{animation:draw .9s var(--ease-in-out) .15s backwards}}.label-panel{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--line)}.label-check{gap:var(--space-xs);align-items:baseline;display:flex}.label-preview svg{border:1px solid var(--line);width:100%;height:auto;display:block}#label-print{display:none}@media print{.printing-labels,.printing-labels body{background:#fff;margin:0;padding:0}.printing-labels body>:not(#label-print){display:none}.printing-labels #label-print{display:block}.printing-labels #label-print svg{max-width:none;display:block}}@media (prefers-reduced-motion:reduce){:root{--dur-micro:1ms;--dur-short:1ms;--dur-long:1ms}}.embed-try{gap:var(--space-lg);margin:var(--space-xl) 0;display:grid}@media (width>=46rem){.embed-try{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}.embed-code{gap:var(--space-sm);min-width:0;display:grid}.embed-code pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:18rem;overflow:auto}.embed-steps{margin:0 0 var(--space-xs);padding-left:1.25rem}.embed-steps li+li{margin-top:var(--space-2xs)}.embed-check{gap:var(--space-xs);align-items:baseline;display:flex}.embed-error{color:var(--error);margin:0}.ledger coffee-json{margin-top:var(--space-md);display:block}
