:root{color:#3d302b;background:#fbf8f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #3d302b;--muted: #796b63;--soft-muted: #7a6d63;--accent: #b9784d;--accent-dark: #8c5637;--accent-soft: #f2dfc5;--yellow: #f3c873;--paper: #fffdf9;--background: #fbf8f2;--line: #e9dfd4;--green: #657c68;--shadow: 0 24px 70px rgba(93, 65, 43, .1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(circle at 8% 3%,rgba(242,200,115,.2),transparent 26rem),var(--background)}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(185,120,77,.35);outline-offset:3px}.app-shell{width:min(1180px,calc(100% - 3rem));min-height:100vh;margin:0 auto;display:flex;flex-direction:column}.site-header{display:flex;align-items:center;justify-content:space-between;padding:1.3rem 0}.brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--ink);font-size:.96rem;font-weight:780;letter-spacing:-.02em;text-decoration:none}.mark{width:2.35rem;height:2.35rem;padding:.28rem;overflow:visible;fill:var(--accent-soft);stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.mark path{fill:none;stroke:var(--accent)}.site-nav{display:flex;align-items:center;gap:1.65rem;color:var(--muted);font-size:.84rem}.site-nav a{padding:.5rem 0;text-decoration:none;transition:color .2s ease}.site-nav a:hover,.site-nav a.active{color:var(--ink)}.shopping-nav{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}.nav-count{display:inline-grid;min-width:1.3rem;height:1.3rem;padding:0 .25rem;place-items:center;border-radius:999px;color:var(--accent-dark);background:var(--accent-soft);font-size:.68rem;font-weight:800}main{flex:1}.page-main{padding:clamp(2rem,5vw,4.8rem) 0 6rem}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{color:var(--ink);letter-spacing:-.045em}h1{font-family:Georgia,Times New Roman,serif;font-weight:500}h2{font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.05}h3{font-size:1.15rem}h4{font-size:1rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:2.8rem;padding:.72rem 1.1rem;border:1px solid var(--accent-dark);border-radius:.65rem;color:#fffaf3;background:var(--accent-dark);font-size:.84rem;font-weight:750;text-decoration:none;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.button:disabled{cursor:not-allowed;opacity:.55}.button:hover{background:var(--accent);border-color:var(--accent);box-shadow:0 8px 18px #8c56372e;transform:translateY(-1px)}.button.secondary{color:var(--accent-dark);border-color:var(--line);background:var(--paper)}.button.secondary:hover{border-color:var(--accent-soft);background:#fff8ec}.page-intro.catalogue-intro{margin-bottom:1.6rem;padding-top:.5rem}.page-intro.catalogue-intro h1{margin-bottom:0;font-size:clamp(1.8rem,4vw,2.4rem);line-height:1.05}.catalogue{padding-bottom:3rem}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem}.list-pill{display:inline-flex;flex:0 0 auto;align-items:center;gap:.6rem;min-height:2.65rem;padding:.55rem .8rem;border:1px solid var(--line);border-radius:999px;color:var(--accent-dark);background:#fffdf9b8;font-size:.78rem;font-weight:700}.list-pill:hover{border-color:var(--accent-soft);background:var(--paper)}.list-pill-icon{display:grid;width:1.45rem;height:1.45rem;place-items:center;border-radius:50%;color:var(--accent);background:var(--accent-soft)}.catalogue-tools{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:2.3rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.catalogue-tools-main{display:flex;flex:1 1 auto;min-width:0;align-items:center;gap:1.5rem}.search-field{display:flex;flex:1 1 auto;align-items:center;gap:.55rem;width:min(100%,340px);padding:.1rem .85rem;border:1px solid var(--line);border-radius:.7rem;background:var(--paper);color:var(--accent);transition:border-color .2s ease,box-shadow .2s ease}.search-field:hover{border-color:var(--accent-soft)}.search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #b9784d24}.search-field input{width:100%;padding:.55rem 0;border:0;outline:0;color:var(--ink);background:transparent;font-size:.9rem}.search-field input::placeholder{color:var(--soft-muted)}.search-field button{padding:0;border:0;color:var(--soft-muted);background:transparent;font-size:1.2rem}.filter-tabs{display:flex;flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.filter-tabs button{padding:.5rem .8rem;border:0;border-radius:999px;color:var(--muted);background:transparent;font-size:.78rem}.filter-tabs button:hover,.filter-tabs button.active{color:var(--accent-dark);background:var(--accent-soft)}.recipe-group+.recipe-group{margin-top:4rem}.group-title{display:flex;align-items:center;gap:.75rem;margin-bottom:1.2rem}.group-title h3{margin:0;font-family:Georgia,serif;font-size:1.55rem;font-weight:500}.group-title span{display:grid;width:1.5rem;height:1.5rem;place-items:center;border-radius:50%;color:var(--accent-dark);background:var(--accent-soft);font-size:.68rem;font-weight:800}.recipe-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.recipe-card{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:1rem;background:var(--paper);box-shadow:0 8px 25px #5e432b0a;text-decoration:none;transition:box-shadow .25s ease,transform .25s ease}.recipe-card:hover{box-shadow:var(--shadow);transform:translateY(-4px)}.recipe-card-image{position:relative;display:grid;aspect-ratio:1 / .83;place-items:center;overflow:hidden;background:#f6ead9}.recipe-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.recipe-card:hover .recipe-card-image img{transform:scale(1.04)}.card-badge{position:absolute;top:.7rem;left:.7rem;padding:.3rem .45rem;border:1px solid rgba(255,253,249,.7);border-radius:999px;color:var(--accent-dark);background:#fffdf9c7;font-size:.62rem;font-weight:800}.recipe-card-content{display:flex;flex:1;flex-direction:column;padding:1rem}.recipe-card h4{margin-bottom:.45rem;font-size:1.05rem;line-height:1.05}.recipe-card-content p{margin-bottom:.9rem;color:var(--muted);font-size:.78rem;line-height:1.5}.recipe-category{color:var(--accent-dark);font-size:.65rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.card-link{display:inline-flex;align-items:center;gap:.35rem;margin-top:auto;color:var(--accent-dark);font-size:.74rem;font-weight:750}.card-link span{transition:transform .2s ease}.recipe-card:hover .card-link span{transform:translate(2px,-2px)}.empty-search,.empty-state{padding:4rem 1.5rem;border:1px dashed var(--line);border-radius:1rem;color:var(--muted);text-align:center}.empty-search>span,.empty-icon{display:block;margin-bottom:.8rem;color:var(--accent);font-size:2rem}.empty-search h3,.empty-state h2{margin-bottom:.5rem}.empty-search p,.empty-state p{line-height:1.6}.back-link{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:2.4rem;padding:0;border:0;color:var(--muted);background:transparent;font-size:.82rem}.back-link:hover{color:var(--accent-dark)}.recipe-hero{display:grid;grid-template-columns:minmax(200px,.42fr) minmax(0,1.3fr);gap:clamp(1.75rem,4vw,3.25rem);align-items:center;margin-bottom:clamp(2rem,4vw,3.5rem)}.recipe-hero-image{overflow:hidden;aspect-ratio:1;border-radius:1.5rem;background:#f3e5d2;box-shadow:var(--shadow)}.recipe-hero-image img{width:100%;height:100%;object-fit:cover}.tag-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:1rem}.tag{padding:.3rem .55rem;border-radius:999px;color:var(--muted);background:#f2ebe2;font-size:.66rem}.recipe-hero h1{max-width:700px;margin-bottom:.7rem;font-size:clamp(2.4rem,5vw,4.4rem);line-height:.95}.recipe-description{max-width:600px;margin-bottom:1.1rem;color:var(--muted);font-size:1.02rem;line-height:1.6}.recipe-meta{display:flex;flex-wrap:wrap;gap:.65rem 1.5rem;margin-bottom:1.8rem}.recipe-meta:last-child{margin-bottom:0}.recipe-meta div{display:grid;gap:.2rem}.recipe-meta strong{color:var(--accent-dark);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.recipe-meta span{color:var(--muted);font-size:.82rem}.scale-control{max-width:540px;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:.8rem;background:#fffdf9c2}.scale-control label,.range-field{display:grid;gap:.6rem}.scale-control label>span,.range-field>span{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--muted);font-size:.76rem}.scale-control strong,.range-field strong{color:var(--ink)}output{color:var(--accent-dark);font-weight:800}input[type=range]{width:100%;height:.3rem;accent-color:var(--accent);cursor:pointer}.recipe-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);gap:clamp(2rem,7vw,7rem)}.recipe-body-single{grid-template-columns:1fr}.recipe-section+.recipe-section{margin-top:clamp(3rem,6vw,5rem)}.section-heading h2{margin-bottom:0}.recipe-section .section-heading{margin-bottom:2rem}.ingredient-group+.ingredient-group{margin-top:2rem}.ingredient-group h3{margin-bottom:.8rem;padding-bottom:.55rem;border-bottom:1px solid var(--line);color:var(--accent-dark);font-family:Georgia,serif;font-size:1.35rem;font-weight:500}.ingredient-list{margin:0;padding:0;list-style:none}.ingredient-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.15rem;padding:.6rem 0;border-bottom:1px solid rgba(233,223,212,.7)}.ingredient-text{color:var(--ink);font-size:.94rem;line-height:1.45}.ingredient-text small{display:inline-block;margin-left:.55rem;padding:.2rem .35rem;border-radius:999px;color:var(--soft-muted);background:#f3eee8;font-size:.7rem}.ingredient-list li.is-optional .ingredient-text{color:var(--muted)}.add-ingredient,.remove-button{display:grid;flex:0 0 auto;width:1.8rem;height:1.8rem;place-items:center;padding:0;border:1px solid var(--line);border-radius:50%;color:var(--accent);background:var(--paper);font-size:1.1rem;line-height:1}.add-ingredient{font-size:0;background-color:var(--paper);background-image:linear-gradient(currentColor 0 0),linear-gradient(currentColor 0 0);background-position:center;background-repeat:no-repeat;background-size:11px 1.6px,1.6px 11px}.add-ingredient:hover{border-color:var(--accent-soft);background-color:var(--accent-soft)}.steps-list{margin:0;padding:0;list-style:none}.steps-list li{display:grid;grid-template-columns:2.6rem 1fr;gap:1rem;align-items:start}.steps-list li+li{margin-top:1.5rem}.step-number{color:var(--accent);font-family:Georgia,serif;font-size:1.2rem}.steps-list p{margin-bottom:0;color:var(--muted);font-size:.96rem;line-height:1.75}.recipe-aside{display:flex;flex-direction:column;align-self:start;gap:1rem;padding-top:0}.recipe-callout{padding:1.2rem;border:1px solid var(--line);border-radius:1rem;background:#fffdf9b3}.recipe-callout.warning{border-color:#efd6b8;background:#fff7e9}.recipe-callout strong{display:block;margin-bottom:.5rem;color:var(--accent-dark);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.recipe-callout p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.6}.special-calculator{display:grid;gap:1.3rem}.calculator-intro{padding:1.15rem 1.3rem;border:1px solid var(--line);border-radius:1rem;background:#fffdf9ad}.calculator-intro p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.5}.control-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.control-grid.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.control-card{min-height:100%;padding:1.25rem;border:1px solid var(--line);border-radius:1rem;background:var(--paper)}.control-card-heading{min-height:4.4rem;margin-bottom:1.1rem}.control-card h3{margin-bottom:.4rem;font-size:1rem}.control-card p{margin-bottom:0;color:var(--muted);font-size:.75rem;line-height:1.45}.paton-inputs{display:grid;gap:.5rem}.paton-inputs label,.number-field{display:flex;align-items:center;justify-content:space-between;gap:.7rem;color:var(--muted);font-size:.78rem}.paton-inputs small{color:var(--soft-muted);font-size:.7rem}.paton-inputs input,.number-field input,.schedule-fields input,.schedule-fields select{width:4.5rem;padding:.42rem .5rem;border:1px solid var(--line);border-radius:.45rem;outline:0;color:var(--ink);background:#fffdfa;font-size:.8rem}.paton-inputs input:focus,.number-field input:focus,.schedule-fields input:focus,.schedule-fields select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b9784d1f}.range-field+.range-field{margin-top:1rem}.radio-row{display:flex;flex-wrap:wrap;gap:.8rem;color:var(--muted);font-size:.8rem}.radio-row input{accent-color:var(--accent)}.calculated-small{margin-top:1.3rem!important;color:var(--accent-dark)!important}.schedule-fields+.schedule-fields{margin-top:.9rem}.schedule-fields>span{display:block;margin-bottom:.35rem;color:var(--muted);font-size:.72rem}.schedule-fields>div{display:flex;align-items:center;gap:.25rem}.schedule-fields select{width:6.8rem}.schedule-fields input{width:3.1rem}.schedule-fields b{color:var(--soft-muted);font-size:.72rem;font-weight:500}.calculator-section{padding:clamp(1.3rem,3vw,2rem);border:1px solid var(--line);border-radius:1rem;background:var(--paper)}.result-card{margin-top:1rem}.result-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.result-heading h2{margin-bottom:0;font-size:1.8rem}.result-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.poolish-result-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem}.result-total{margin-bottom:1rem;color:var(--accent-dark);font-family:Georgia,serif;font-size:2.1rem}.result-total span{color:var(--muted);font-family:inherit;font-size:.95rem}.result-ingredients{margin:0;padding:0;list-style:none}.result-ingredients li{padding:.45rem 0;border-bottom:1px solid rgba(233,223,212,.7);color:var(--muted);font-size:.82rem}.result-ingredients strong{color:var(--ink)}.poolish-phase+.poolish-phase{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--line)}.poolish-phase h3{margin-bottom:.25rem;font-family:Georgia,serif;font-size:1.3rem;font-weight:500}.poolish-phase h3 small{color:var(--soft-muted);font-family:Inter,sans-serif;font-size:.65rem;font-weight:700;letter-spacing:.02em}.phase-lead{margin:0 0 .1rem;color:var(--muted);font-size:.78rem}.poolish-totals{display:flex;flex-wrap:wrap;align-items:baseline;gap:.55rem 1rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.76rem}.poolish-totals span{flex-basis:100%;color:var(--soft-muted);font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.poolish-totals strong{color:var(--accent-dark);font-size:.85rem}.result-aside{align-self:start;padding:1rem;border-radius:.7rem;color:var(--muted);background:#f9f1e6;font-size:.8rem;line-height:1.55}.result-aside p+p{margin-top:.75rem}.result-aside strong{color:var(--accent-dark)}.pitcher-section{display:grid;grid-template-columns:1.2fr .8fr;gap:1.2rem;align-items:end;margin-top:1rem}.pitcher-section h2{margin-bottom:.55rem;font-size:1.6rem}.pitcher-section p{margin-bottom:0;color:var(--muted);font-size:.82rem;line-height:1.55}.inline-fields{display:flex;gap:1rem}.number-field{display:grid;gap:.35rem;justify-items:start}.number-field>span{color:var(--muted);font-size:.72rem}.number-field>div{display:flex;align-items:center;gap:.3rem}.number-field small{color:var(--soft-muted);font-size:.7rem}.dilution-result{grid-column:1 / -1;padding-top:.9rem;border-top:1px solid var(--line);color:var(--muted);font-size:.84rem}.dilution-result strong{color:var(--accent-dark)}.dilution-result span{margin:0 .5rem;color:var(--soft-muted)}.shopping-page{max-width:800px;width:100%;margin:0 auto}.page-intro{margin-bottom:2.2rem}.compact-intro h1{margin-bottom:.8rem;font-size:clamp(3rem,7vw,5.5rem);line-height:.9}.shopping-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line);color:var(--muted);font-size:.8rem}.button-row{display:flex;align-items:center;gap:.8rem}.text-button{padding:0;border:0;color:var(--accent-dark);background:transparent;font-size:.76rem;font-weight:700}.shopping-list{padding:1rem 1.2rem;border:1px solid var(--line);border-radius:1rem;background:var(--paper)}.shopping-items+.shopping-items{margin-top:1.5rem;padding-top:1.3rem;border-top:1px solid var(--line)}.list-label{margin-bottom:.5rem;color:var(--soft-muted);font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.shopping-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;min-height:3.1rem;border-bottom:1px solid rgba(233,223,212,.7)}.shopping-row label{display:flex;min-width:0;flex:1;align-items:center;gap:.75rem;color:var(--ink);font-size:.88rem;cursor:pointer}.shopping-row label>span:last-child{min-width:0;line-height:1.4}.shopping-row input{position:absolute;opacity:0}.shopping-row input:focus-visible+.fake-check{outline:3px solid rgba(185,120,77,.35);outline-offset:3px}.fake-check{display:grid;width:1.2rem;height:1.2rem;place-items:center;border:1px solid var(--line);border-radius:.35rem;color:transparent;background:#fffdfa;font-size:.75rem}.shopping-row input:checked+.fake-check{border-color:var(--green);color:#fff;background:var(--green)}.shopping-row.is-checked label{color:var(--soft-muted);text-decoration:line-through}.remove-button{border:0;color:var(--soft-muted);background:transparent}.remove-button{font-size:0;background-image:linear-gradient(currentColor 0 0),linear-gradient(currentColor 0 0);background-position:center;background-repeat:no-repeat;background-size:11px 1.6px,1.6px 11px;transform:rotate(45deg)}.remove-button:hover{color:var(--accent-dark)}.toast{position:fixed;right:1.5rem;bottom:1.5rem;z-index:5;display:flex;align-items:center;gap:1rem;padding:.8rem 1rem;border:1px solid var(--accent-soft);border-radius:.65rem;color:var(--accent-dark);background:var(--paper);box-shadow:var(--shadow);font-size:.8rem}.toast button{padding:0;border:0;color:var(--soft-muted);background:transparent;font-size:1.1rem}@media(min-width:761px){.search-field{flex:1 1 260px}}@media(max-width:1020px){.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.recipe-body{gap:2.5rem}.control-grid,.control-grid.three-columns{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app-shell{width:min(100% - 1.4rem,1180px)}.site-header{padding:.7rem 0 .5rem}.page-main{padding-top:.85rem}.site-nav{gap:.8rem}.recipe-hero,.recipe-body,.pitcher-section{grid-template-columns:1fr}.catalogue-tools{align-items:stretch;flex-direction:column;gap:.55rem;margin-bottom:.8rem;padding-bottom:.55rem}.catalogue-tools-main{align-items:stretch;flex-direction:column;gap:.7rem}.search-field{width:100%}.filter-tabs{justify-content:flex-start;overflow-x:auto}.catalogue-tools>.list-pill{display:none}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-hero{gap:1.4rem;margin-bottom:1.75rem}.recipe-hero-image{width:min(64%,240px);margin:0 auto}.recipe-aside{padding-top:0}.control-grid,.control-grid.three-columns{grid-template-columns:1fr}.control-card-heading{min-height:0}.result-layout,.poolish-result-layout{grid-template-columns:1fr;gap:1rem}.result-heading,.shopping-actions{align-items:start;flex-direction:column}.inline-fields{justify-content:space-between}.site-nav a{display:inline-flex;align-items:center;min-height:44px}.filter-tabs button{display:inline-flex;align-items:center;justify-content:center;min-height:44px}.search-field,.paton-inputs input,.number-field input,.schedule-fields input,.schedule-fields select,.brand,.list-pill{min-height:44px}.back-link{min-height:44px;margin-bottom:1.2rem}.radio-row label{display:inline-flex;align-items:center;min-height:44px}.add-ingredient,.remove-button{position:relative}.add-ingredient:after,.remove-button:after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}.toast{right:1rem;bottom:1rem;left:1rem;justify-content:space-between}.page-main{padding-bottom:3.5rem}}@media(max-width:480px){.brand{display:none}.page-intro.catalogue-intro{margin-bottom:.8rem;padding-top:.1rem}.recipe-group+.recipe-group{margin-top:2.5rem}.group-title{margin-bottom:.8rem}.recipe-grid{gap:.65rem}.recipe-card-content{padding:.8rem}.recipe-card h4{font-size:.96rem}.recipe-card-content p{font-size:.72rem}.section-heading{align-items:start;flex-direction:column}.ingredients-section .section-heading{align-items:start}.steps-list li{grid-template-columns:2rem 1fr;gap:.65rem}.steps-list p,.ingredient-text{font-size:.86rem}.button-row,.pitcher-section .inline-fields{align-items:start;flex-direction:column}}@media(max-width:420px){.recipe-card-image{aspect-ratio:1 / .68}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.recipe-card:hover,.recipe-card:hover .recipe-card-image img,.button:hover{transform:none}}
