*,:before,:after{box-sizing:border-box}*{-webkit-tap-highlight-color:transparent}:focus:not(:focus-visible){outline:none}html{-webkit-text-size-adjust:100%;background:var(--color-night)}body{background:var(--color-night);min-height:100dvh;margin:0}h1,h2,h3,h4,p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}button{font:inherit;color:inherit;cursor:pointer}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-cream);line-height:1.55}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.15}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.scene-canvas{z-index:var(--z-canvas);touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;outline:none;width:100%;height:100dvh;display:block;position:fixed;inset:0}.js:not(.no-webgl),.js:not(.no-webgl) body{overscroll-behavior:none;overflow:hidden}.js:not(.no-webgl) .recipes{display:none}.js:not(.no-webgl) .book-index{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.no-js .scene-canvas,.no-js .vignette,.no-js .grain,.no-js .scrim,.no-js .hud,.no-js .sheet,.no-js .loader,.no-webgl .scene-canvas,.no-webgl .vignette,.no-webgl .grain,.no-webgl .scrim,.no-webgl .hud,.no-webgl .sheet,.no-webgl .loader{display:none}.no-js .noscript-note{display:block}.noscript-note{display:none}.no-js .book-index,.no-js .recipes,.no-js .credits,.no-js .noscript-note,.no-webgl .book-index,.no-webgl .recipes,.no-webgl .credits,.no-webgl .noscript-note{width:min(46rem,100% - 2rem);margin-inline:auto;position:relative}.no-js .book-index,.no-webgl .book-index{padding-block:var(--space-8) var(--space-4)}.no-js .book-index__title,.no-webgl .book-index__title{font-size:var(--text-xl);margin-bottom:var(--space-4)}.no-js .book-index__section,.no-webgl .book-index__section{margin:var(--space-4) 0 var(--space-2);color:var(--color-brass)}.no-js .book-index button,.no-webgl .book-index button{color:var(--color-cream);text-align:left;background:0 0;border:0;padding:.15rem 0;text-decoration:underline}.no-js .recipes,.no-webgl .recipes{gap:var(--space-8);padding-bottom:var(--space-8);display:grid}.no-js .recipe,.no-webgl .recipe{padding:var(--space-6);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink)}.vignette,.grain,.scrim{z-index:var(--z-overlay);pointer-events:none;position:fixed;inset:0}.vignette{background:radial-gradient(at 50% 42%,#0000 38%,#080402b3 100%)}.grain{opacity:.09;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:160px}.scrim{opacity:0;transition:opacity .6s var(--ease-out);background:radial-gradient(#0a050259,#0a0502d1)}.is-reading .scrim{opacity:1}.hud{z-index:var(--z-hud);pointer-events:none;transition:opacity var(--duration-base) var(--ease-out);position:fixed;inset:0}.js:not(.is-loaded) .hud,.is-reading .hud{opacity:0}.hud__tools{top:max(var(--space-3), env(safe-area-inset-top));right:var(--space-3);gap:var(--space-2);display:flex;position:absolute}.hud__hint{right:0;bottom:max(var(--space-2), env(safe-area-inset-bottom));font-size:var(--text-sm);text-align:center;color:var(--color-cream);opacity:.55;position:absolute;left:0}.hud__tooltip{border-radius:var(--radius-sm);font-size:var(--text-sm);white-space:nowrap;background:#120a06d9;border:1px solid #d6b25e66;padding:.2rem .55rem;position:absolute;top:0;left:0}.hud__tooltip[hidden]{display:none}.hud__peek{top:max(1rem, env(safe-area-inset-top));border-radius:var(--radius-sm);max-width:calc(100% - 8rem);font-family:var(--font-display);font-size:var(--text-base);text-align:center;animation:peek-in var(--duration-base) var(--ease-out);background:#120a06d9;border:1px solid #d6b25e66;padding:.35rem .9rem;position:absolute;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.hud__peek{animation:none}}.hud__peek[hidden]{display:none}@keyframes peek-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.icon-button{width:2.75rem;height:2.75rem;color:var(--color-cream);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:auto;transition:background var(--duration-fast);background:#120a06b8;border:1px solid #d6b25e8c;border-radius:50%;place-items:center;padding:0;display:grid}.icon-button svg{width:1.35rem;height:1.35rem}.icon-button:hover{background:#4a2f1ee6}.icon-button:focus-visible{outline:3px solid var(--color-brass);outline-offset:2px}.icon-button__slash{opacity:0}.icon-button[aria-pressed=false] .icon-button__slash{opacity:1}.icon-button[aria-pressed=false] .icon-button__waves{opacity:.25}.sheet{z-index:var(--z-sheet);background:linear-gradient(90deg, #785a322e, transparent 6%, transparent 94%, #785a321f), var(--color-paper);color:var(--color-ink);border-radius:2px 5px 5px 2px;display:flex;position:fixed;box-shadow:0 0 0 1px #5a3c1e40,0 10px 30px #00000059}.sheet[hidden]{display:none}.sheet__scroll{min-width:0;padding:clamp(.9rem, 4%, 1.6rem) clamp(.9rem, 5%, 1.8rem) var(--space-8);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;outline:none;flex:1;overflow-y:auto}.sheet__close{z-index:1;background:var(--color-paper-shade);width:2.25rem;height:2.25rem;color:var(--color-ink);border:1px solid #5a3c1e59;border-radius:50%;font-size:1rem;line-height:1;position:absolute;top:.45rem;right:.45rem}.sheet__close:hover{background:var(--color-tomato);color:var(--color-paper)}.sheet__close:focus-visible{outline:3px solid var(--color-brass);outline-offset:2px}.sheet__copy{z-index:1;background:var(--color-tomato);color:var(--color-paper);font-size:var(--text-sm);clip-path:polygon(0 0,50% .3rem,100% 0,100% 100%,0 100%);transition:background var(--duration-fast);border:0;align-items:center;gap:.35rem;padding:.6rem .8rem .35rem;display:flex;position:absolute;top:-1.9rem;left:1.25rem}.sheet__copy svg{width:1rem;height:1rem}.sheet__copy:hover,.sheet__copy.is-copied{background:var(--color-tomato-deep)}.sheet__copy:focus-visible{outline:3px solid var(--color-brass);outline-offset:2px}@media (max-width:47.99rem){.sheet{box-shadow:none;border-radius:0;inset:0}.sheet__scroll{padding:calc(3.4rem + env(safe-area-inset-top)) 1.25rem calc(var(--space-8) + env(safe-area-inset-bottom))}.sheet__close{top:calc(.6rem + env(safe-area-inset-top));right:.75rem}.sheet__copy{padding:calc(.45rem + env(safe-area-inset-top)) .8rem .7rem;clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - .3rem),0 100%);top:0}}.sheet--spread .sheet__body{column-count:2;column-rule:1px solid #5a3c1e38;column-gap:2.5rem}.recipe{font-size:var(--text-base)}.recipe__head{margin-bottom:var(--space-4);column-span:all;padding-right:2.2rem}.recipe__kicker{font-size:var(--text-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--color-tomato)}.recipe__title{margin:var(--space-1) 0;font-size:var(--text-xl);text-wrap:balance}.recipe__aka,.recipe__byline,.recipe__family,.recipe__note{font-size:var(--text-sm);color:var(--color-ink-soft)}.recipe__family{margin-top:var(--space-2);font-style:italic}.recipe__note{font-style:italic}.recipe__meta{gap:var(--space-2) var(--space-6);margin-bottom:var(--space-4);padding-block:var(--space-2);column-span:all;font-size:var(--text-sm);border-block:1px dashed #5a3c1e66;flex-wrap:wrap;display:flex}.recipe__meta dt{font-family:var(--font-display);color:var(--color-ink-soft);font-weight:600}.recipe__meta dd{margin:0}.recipe__pending{padding:var(--space-4);border:1px dashed var(--color-tomato);border-radius:var(--radius-sm);background:#b83a2a12}.recipe__pending-title{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);color:var(--color-tomato-deep)}.recipe__component{margin-bottom:var(--space-4);break-inside:avoid-column}.recipe__subtitle{margin-bottom:var(--space-2);color:var(--color-tomato-deep);font-size:1.05rem}.recipe__variant{margin:var(--space-3) 0 var(--space-1);font-size:1rem}.recipe__ingredient{gap:0 var(--space-3);border-bottom:1px dotted #5a3c1e40;grid-template-columns:minmax(4.2rem,max-content) 1fr;padding:.18rem 0;display:grid}.recipe__amount{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.recipe__steps{margin-top:var(--space-3);padding-left:1.4rem;list-style:decimal}.recipe__steps li{margin-bottom:var(--space-2);padding-left:.2rem}.recipe__steps li::marker{font-family:var(--font-display);color:var(--color-tomato);font-weight:600}.recipe__aside{margin-bottom:var(--space-3);padding:var(--space-3);border-left:3px solid var(--color-brass-deep);break-inside:avoid-column;background:#d6b25e24}.recipe__aside ul{gap:var(--space-1);padding-left:1rem;list-style:outside;display:grid}.recipe__aside--warn{border-left-color:var(--color-tomato);background:#b83a2a17}.recipe__links{gap:var(--space-2);margin-block:var(--space-4);flex-wrap:wrap;display:flex}.recipe__related{margin-top:var(--space-4);break-inside:avoid-column}.recipe__related ul{gap:var(--space-1) var(--space-4);flex-wrap:wrap;display:flex}.recipe__ref,.recipe__made-with a{color:var(--color-tomato-deep);text-underline-offset:.2em}.recipe__ref:focus-visible,.recipe__made-with a:focus-visible{outline:3px solid var(--color-brass);outline-offset:2px}.button{border-radius:var(--radius-pill);background:var(--color-tomato);color:var(--color-paper);font-family:var(--font-display);transition:background var(--duration-fast);border:0;padding:.5rem 1rem;font-weight:600;text-decoration:none;display:inline-block}.button:hover{background:var(--color-tomato-deep)}.button:focus-visible{outline:3px solid var(--color-brass);outline-offset:2px}.search{z-index:var(--z-loader);background:radial-gradient(ellipse at 50% 0%, #fff6, transparent 60%), var(--color-paper);color:var(--color-ink);overscroll-behavior:contain;position:fixed;inset:0;overflow-y:auto}.search[hidden]{display:none}.search__inner{width:min(42rem,100% - 2rem);padding:max(var(--space-6), env(safe-area-inset-top)) 0 var(--space-12);margin-inline:auto}.search__form{z-index:1;align-items:center;gap:var(--space-2);padding-block:var(--space-2);border-bottom:2px solid var(--color-ink);background:var(--color-paper);display:flex;position:sticky;top:0}.search__input{min-width:0;padding:var(--space-2) 0;color:var(--color-ink);font-family:var(--font-display);background:0 0;border:0;outline:none;flex:1;font-size:clamp(1.6rem,1.2rem + 2vw,2.4rem);font-weight:600}.search__input::-webkit-search-cancel-button{display:none}.search__input::placeholder{color:var(--color-ink-soft);opacity:.55}.search__close{background:var(--color-paper-shade);width:2.75rem;height:2.75rem;color:var(--color-ink);border:1px solid #5a3c1e59;border-radius:50%;flex:none}.search__close:focus-visible{outline:3px solid var(--color-brass);outline-offset:2px}.search__tags{gap:var(--space-2);padding-top:var(--space-3);flex-wrap:wrap;display:flex}@media (max-width:47.99rem){.search__tags{scroll-snap-type:x proximity;scrollbar-width:none;flex-wrap:nowrap;margin-inline:-1rem;padding-inline:1rem;overflow-x:auto}.search__tags::-webkit-scrollbar{display:none}}.search__tag{border-radius:var(--radius-pill);background:var(--color-paper-shade);color:var(--color-ink);font-size:var(--text-sm);scroll-snap-align:start;transition:background var(--duration-fast), color var(--duration-fast);border:1px solid #5a3c1e59;flex:none;padding:.3rem .75rem}.search__tag[aria-pressed=true]{border-color:var(--color-tomato-deep);background:var(--color-tomato);color:var(--color-paper)}.search__tag--clear{background:0 0;border-style:dashed}.search__tag--clear[hidden]{display:none}.search__tag:focus-visible{outline:3px solid var(--color-brass);outline-offset:2px}.search__status{margin:var(--space-3) 0;font-size:var(--text-sm);color:var(--color-ink-soft)}.search__results{display:grid}.search__item{width:100%;padding:var(--space-3) var(--space-2);color:inherit;text-align:left;background:0 0;border:0;border-bottom:1px dotted #5a3c1e59;gap:.1rem;display:grid}.search__item:hover,.search__item:focus-visible{background:#d6b25e38;outline:none}.search__title{font-family:var(--font-display);font-size:1.2rem;font-weight:600}.search__meta,.search__hint{font-size:var(--text-sm);color:var(--color-ink-soft)}.search__hint em{color:var(--color-tomato-deep)}.search mark{color:inherit;background:#d6b25e99;border-radius:2px;padding:0 .08em}.is-searching .hud,.is-searching .slip{visibility:hidden}.slip{right:var(--space-3);bottom:max(var(--space-2), env(safe-area-inset-bottom));z-index:var(--z-credits);perspective:900px;position:fixed}.is-reading .slip,.js:not(.is-loaded) .slip{display:none}.slip__tab{color:var(--color-ink);font-family:var(--font-script);clip-path:polygon(0 0,calc(100% - .7rem) 0,100% .7rem,100% 100%,0 100%);transition:transform var(--duration-fast);background:linear-gradient(135deg,#f3e9d2,#e1cc9d);border:0;padding:.3rem 1.2rem .3rem .9rem;font-size:1.25rem;line-height:1.2;position:relative;transform:rotate(-1.5deg);box-shadow:0 2px 6px #0006}.slip__tab:hover{transform:rotate(0)translateY(-2px)}.slip__tab:focus-visible{outline:3px solid var(--color-brass);outline-offset:2px}.slip__paper{width:min(21rem,100vw - 1.5rem);max-height:min(32rem,78dvh);color:var(--color-ink);font-family:var(--font-hand);transform-origin:bottom;filter:drop-shadow(0 8px 14px #00000073);clip-path:polygon(0 1.2%,5% 0,11% 1.6%,18% .4%,26% 1.8%,33% .2%,41% 1.4%,49% 0,57% 1.7%,65% .3%,73% 1.5%,81% .1%,89% 1.6%,95% .5%,100% 1.4%,100% 100%,0 100%);background:radial-gradient(at 30% 10%,#ffffff73,#0000 60%),linear-gradient(#f3e9d2,#e6d4a8);outline:none;padding:1.6rem 1.4rem 1.2rem;font-size:.72rem;line-height:1.9;position:absolute;bottom:0;right:0;overflow-y:auto}.slip__paper[hidden]{display:none}.slip__paper a{color:var(--color-tomato-deep)}.slip__close{width:1.8rem;height:1.8rem;color:var(--color-ink);font-family:var(--font-body);background:#5a3c1e26;border:0;border-radius:50%;position:absolute;top:.9rem;right:.7rem}.slip__close:focus-visible{outline:3px solid var(--color-brass);outline-offset:2px}.slip__title{font-family:var(--font-script);color:var(--color-tomato-deep);font-size:2.3rem;font-weight:400;line-height:1.1}.slip__group{font-family:var(--font-script);color:var(--color-ink);margin-top:.6rem;font-size:1.5rem;font-weight:400}.slip__list{gap:.1rem;display:grid}.no-js .slip,.no-webgl .slip{margin:var(--space-8) auto;position:static}.title-intro-backdrop{z-index:calc(var(--z-loader) - 2);pointer-events:none;background:#0a0603b3;position:fixed;inset:0}.title-intro-backdrop[hidden]{display:none}.title-intro{z-index:calc(var(--z-loader) - 1);aspect-ratio:3;pointer-events:none;background:linear-gradient(#e9cd82,#b58a37 50%,#7f5c1f);border-radius:1.5%;width:min(86vw,46rem);margin:calc(min(86vw,46rem)/-6) 0 0 calc(min(86vw,46rem)/-2);position:fixed;top:50%;left:50%;box-shadow:0 18px 40px #0000008c}.title-intro[hidden]{display:none}.title-intro:before{content:"";background:radial-gradient(#f1e3bd,#d4b87c);border-radius:.8%;position:absolute;inset:6.5% 2.17%;box-shadow:inset 0 0 0 2px #462d0f8c}.title-intro__svg{position:absolute;overflow:visible}.title-intro__ink{fill:#2b1a10;fill-opacity:0;stroke:#2b1a10;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round}.title-intro__nib{fill:#2b1a10;opacity:0}
