:root{color:#292e26;font-synthesis:none;--paper:#f7f5ef;--ink:#292e26;--muted:#74776c;--line:#dedfd3;--accent:#a94830;--olive:#5a6248;background:#f7f5ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.6}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}a{color:inherit;text-decoration:none}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:4px;outline:3px solid #9baf79}h1,h2,h3,p{margin:0}h1,h2,.brand,.hero-note p,.completion p{font-family:Georgia,Times New Roman,serif;font-weight:400}button{color:inherit}::selection{background:#e9d1b1}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:5;background:#fff;padding:12px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:10px}.site-header{border-bottom:1px solid var(--line);align-items:center;gap:28px;max-width:1240px;height:108px;margin:auto;padding:0 40px;display:flex}.brand{letter-spacing:-2px;align-items:center;font-size:38px;line-height:1;display:flex}.brand-symbol{background:var(--accent);color:#fff9e9;border-radius:12px 12px 4px;justify-content:center;align-items:center;width:38px;height:42px;margin-right:12px;font-size:34px;font-style:italic;display:inline-flex}.brand-dot{color:var(--accent)}.header-note{color:var(--muted);border-left:1px solid var(--line);padding-left:27px;font-size:12px}.nav-link{margin-left:auto;font-size:13px;font-weight:600}.nav-link span{color:var(--accent);margin-left:18px;font-size:20px}main{max-width:1160px;min-height:65vh;margin:auto;padding:0 24px}.library-hero{justify-content:space-between;align-items:center;gap:36px;padding:76px 0 70px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:2px;color:var(--olive);font-size:10px;font-weight:700}.tiny-star{color:var(--accent);vertical-align:middle;margin-right:9px;font-size:17px}.library-hero h1{letter-spacing:-2.8px;margin:20px 0 26px;font-size:clamp(44px,5.5vw,72px);line-height:1.08}.library-hero h1 em{color:var(--olive);font-weight:400}.library-hero p{color:var(--muted);font-size:15px;line-height:1.85}.hero-note{text-align:center;background:#eef0e6;border:1px solid #d9dccb;border-radius:120px 120px 8px 8px;flex-shrink:0;width:230px;margin-right:28px;padding:25px 15px 33px;transform:rotate(4deg)}.note-star{color:var(--olive);font-size:55px;line-height:1.4}.hero-note p{color:var(--olive);margin:8px 0 24px;font-size:24px;line-height:1.3}.hero-note>span:last-child{letter-spacing:1.8px;color:var(--olive);font-size:8px}.library-section{border-top:1px solid var(--line);padding-top:30px;padding-bottom:70px}.library-toolbar{justify-content:space-between;align-items:center;gap:20px;display:flex}.section-title{align-items:baseline;gap:14px;display:flex}.section-title h2{letter-spacing:-.8px;font-size:30px}.section-title>span{color:var(--muted);font-size:12px}.section-title .count-badge{text-align:center;min-width:25px;height:25px;color:var(--olive);background:#e9ebdf;border-radius:50%;font-size:11px;line-height:25px}.search{border:1px solid var(--line);background:#fffdf8;border-radius:7px;align-items:center;gap:10px;width:310px;padding:10px 13px;display:flex}.search>span:first-child{color:var(--olive);font-size:27px;line-height:1}.search input{width:100%;min-width:0;color:var(--ink);outline-offset:8px;background:0 0;border:0;font-size:13px}.filter-tags{flex-wrap:wrap;gap:8px;margin:24px 0 30px;display:flex}.filter-tags button{border:1px solid var(--line);background:0 0;border-radius:24px;padding:7px 17px;font-size:12px}.filter-tags button.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.filter-tags button:hover:not(.active){background:#e9ebdf}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.recipe-card{border:1px solid var(--line);background:#fffdf8;border-radius:9px;transition:transform .2s,box-shadow .2s;overflow:hidden}.recipe-card:hover{transform:translateY(-4px);box-shadow:0 9px 30px #292e260a}.card-art{color:#a45d41;background:#efe0cd;border-bottom:1px solid #e2d4c2;justify-content:center;align-items:center;height:184px;display:flex;position:relative}.card-art.alternate{color:#687453;background:#e5e8d9;border-color:#d9deca}.card-art svg{width:164px;height:126px}.card-number{opacity:.7;font-size:11px;position:absolute;top:15px;left:19px}.art-caption{letter-spacing:1.8px;opacity:.75;font-size:7px;position:absolute;bottom:12px;right:15px}.card-content{padding:24px}.card-meta{letter-spacing:.6px;color:var(--muted);justify-content:space-between;font-size:10px;display:flex}.card-meta>span:first-child{text-transform:uppercase;color:var(--accent);font-weight:600}.recipe-card h3{letter-spacing:-.6px;margin:13px 0 11px;font-family:Georgia,serif;font-size:26px;font-weight:400;line-height:1.2}.recipe-card p{color:var(--muted);min-height:46px;font-size:13px;line-height:1.75}.card-open{border-top:1px solid var(--line);justify-content:space-between;margin-top:23px;padding-top:16px;font-size:11px;font-weight:600;display:flex}.card-open>span{color:var(--accent);font-size:20px;line-height:1}footer{border-top:1px solid var(--line);max-width:1160px;color:var(--muted);align-items:center;gap:25px;margin:auto;padding:28px 24px 35px;font-size:11px;display:flex}.footer-brand{color:var(--ink);letter-spacing:-1px;font-family:Georgia,serif;font-size:25px}footer>span{margin-left:auto}footer>span>span{color:var(--accent);padding-left:8px;font-size:17px}.loading-state{text-align:center;color:var(--muted);padding:100px 20px}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:25px;height:25px;margin-bottom:18px;animation:1s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;max-width:600px;margin:100px auto}.empty-state h1{margin:16px 0 25px;font-size:36px;line-height:1.25}.primary-button{background:var(--accent);color:#fff;border:0;border-radius:5px;padding:11px 22px}.text-link{margin-top:20px;text-decoration:underline;display:block}.empty-library{text-align:center;border:1px dashed var(--line);border-radius:8px;padding:60px 20px}.empty-library h3{font-family:Georgia,serif;font-size:26px;font-weight:400}.empty-library p{color:var(--muted);margin:12px 0 20px}.detail-topline{justify-content:space-between;align-items:center;margin:32px 0 38px;display:flex}.back-link{color:var(--muted);font-size:12px}.back-link span{margin-right:10px}.recipe-heading{justify-content:space-between;align-items:center;gap:30px;margin-bottom:35px;display:flex}.recipe-heading h1{letter-spacing:-2px;margin:14px 0 18px;font-size:clamp(42px,5vw,64px);line-height:1.15}.tag-line{flex-wrap:wrap;gap:8px;display:flex}.tag-line span{letter-spacing:1px;text-transform:uppercase;color:var(--olive);background:#e9edde;border-radius:3px;padding:4px 10px;font-size:9px}.lede{color:var(--muted);max-width:530px;font-size:15px;line-height:1.8}.source-link{color:var(--olive);border-bottom:1px solid #bfbcad;margin-top:20px;font-size:11px;display:inline-block}.author{color:var(--muted);margin-left:12px;font-size:11px}.recipe-seal{width:137px;height:137px;color:var(--olive);border:1px solid #c5cbb7;border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;margin-right:30px;display:flex;transform:rotate(12deg)}.recipe-seal>span:not(.seal-flower){letter-spacing:2px;font-size:8px}.seal-flower{font-size:47px;line-height:1.6}.portion-bar{background:#eeefe6;border:1px solid #daddcd;border-radius:8px;justify-content:space-between;align-items:center;gap:20px;padding:22px 25px;display:flex}.portion-bar .eyebrow{letter-spacing:1.5px;font-size:8px}.portion-label{margin-top:4px;font-size:22px;font-weight:650;line-height:1.4}.base-yield{color:var(--muted);white-space:nowrap;margin-left:13px;font-size:10px;font-weight:400}.portion-controls{align-items:center;gap:8px;display:flex}.stepper{background:#fffdf8;border:1px solid #ced2bf;border-radius:5px;align-items:center;display:flex;overflow:hidden}.stepper button{width:36px;min-height:42px;color:var(--olive);background:0 0;border:0;font-size:22px}.stepper input{border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);text-align:center;background:0 0;width:65px;min-width:0;font-size:17px;line-height:1.4}.multipliers{gap:3px;margin-left:14px;display:flex}.multipliers button{min-width:37px;min-height:38px;color:var(--olive);background:0 0;border:1px solid #0000;border-radius:5px;font-size:12px}.multipliers button.active{background:#dce2cd;border-color:#c8d0b7}.portion-feedback{color:var(--muted);min-height:37px;padding:11px 2px 0;font-size:11px}.inline-error{background:#f8e2db;border:1px solid #e8b6a9;border-radius:5px;margin:15px 0;padding:12px 17px;font-size:13px}.inline-error button{color:var(--accent);background:0 0;border:none;text-decoration:underline}.cooking-layout{grid-template-columns:310px minmax(0,1fr);gap:65px;padding:38px 0 80px;display:grid}.ingredient-panel .section-title{justify-content:space-between;gap:8px}.ingredient-panel h2,.steps-panel h2{font-size:30px}.cup-note{color:var(--muted);margin-top:15px;font-size:11px;line-height:1.6}.ingredient-group{text-transform:uppercase;letter-spacing:1.8px;color:var(--olive);margin:26px 0 10px;font-size:9px;font-weight:700}.ingredient-list{margin:0;padding:0;list-style:none}.ingredient-list li{border-bottom:1px solid var(--line);padding:11px 0;scroll-margin-top:20px;font-size:13px;line-height:1.65}.ingredient-list small{color:var(--muted);font-size:10px;display:block}.steps-panel>.section-title{justify-content:space-between}.progress-track{background:#e4e6db;border-radius:2px;height:3px;margin:18px 0 27px;overflow:hidden}.progress-track span{background:var(--olive);height:100%;transition:width .25s;display:block}.steps{margin:0;padding:0;list-style:none}.steps>li{border-bottom:1px solid var(--line);grid-template-columns:35px minmax(0,1fr);gap:19px;margin-bottom:25px;padding:0 0 28px;display:grid}.steps h3{letter-spacing:-.25px;margin:3px 0 11px;font-size:17px;font-weight:600}.steps p{color:#5a5f54;font-size:14px;line-height:1.95}.ingredient-mention{color:#89412f;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:#f2e6d8;border-radius:3px;padding:1px 4px;font-weight:600}.step-check{cursor:pointer;width:35px;height:35px;margin-top:2px;position:relative}.step-check input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.step-check span{width:35px;height:35px;color:var(--olive);border:1px solid #cccfbf;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.step-check input:focus-visible+span{outline-offset:4px;outline:3px solid #9baf79}.step-check input:checked+span{background:var(--olive);color:#fff;border-color:var(--olive)}.steps li.done h3{color:var(--muted)}.steps li.done p{opacity:.65}.completion{justify-content:space-between;align-items:center;gap:20px;margin:15px 0 30px;display:flex}.completion p{color:var(--olive);font-size:22px}.quiet-button{text-underline-offset:4px;color:var(--olive);background:0 0;border:0;padding:9px 0;font-size:11px;text-decoration:underline}.recipe-notes{background:#eff0e7;border-left:2px solid #a6b18c;margin-top:20px;padding:20px 23px}.recipe-notes h3{margin-bottom:8px;font-size:12px;font-weight:600}.recipe-notes p{color:var(--muted);margin-top:7px;font-size:12px}.storage-warning{color:var(--accent);padding-bottom:20px;font-size:12px}@media (width>=1400px){main{padding:0}.site-header{padding:0 40px}.library-hero{padding-top:86px}}@media (width<=1000px){.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cooking-layout{grid-template-columns:265px minmax(0,1fr);gap:35px}.portion-bar{flex-wrap:wrap}.recipe-seal{margin-right:10px}.base-yield{margin:3px 0 0;display:block}}@media (width<=650px){.site-header{height:83px;padding:0 22px}.brand{font-size:33px}.brand-symbol{width:31px;height:35px;margin-right:9px;font-size:28px}.header-note{display:none}.nav-link{font-size:11px}.nav-link span{margin-left:7px}main{padding:0 22px}.library-hero{padding:45px 0 38px}.library-hero h1{letter-spacing:-2px;margin:17px 0 22px;font-size:46px}.library-hero p{font-size:13px}.hero-note{display:none}.library-toolbar{flex-direction:column;align-items:stretch;gap:20px}.section-title h2{font-size:28px}.search{width:100%}.filter-tags{gap:7px;margin-top:20px}.filter-tags button{padding:7px 13px;font-size:11px}.recipe-grid{grid-template-columns:1fr;gap:21px}.card-art{height:167px}.card-content{padding:22px}.recipe-card p{min-height:0}.library-section{padding-bottom:45px}footer{gap:15px;margin:0 22px;padding:24px 0}footer p{font-size:10px}footer>span{display:none}.detail-topline{margin:25px 0 29px}.detail-topline>.eyebrow{display:none}.recipe-heading h1{font-size:45px}.recipe-heading{margin-bottom:28px}.recipe-seal{display:none}.lede{font-size:13px}.source-link{margin-top:15px}.portion-bar{gap:17px;padding:19px 16px}.base-yield{margin-left:10px;display:inline}.portion-label{font-size:21px}.portion-controls{flex-wrap:wrap;gap:8px;width:100%}.multipliers{gap:0;margin-left:auto}.multipliers button{min-width:32px}.stepper input{width:49px}.stepper button{width:32px}.portion-feedback{padding-top:10px;font-size:10px}.cooking-layout{padding:26px 0 45px;display:block}.ingredient-panel{border:1px solid var(--line);background:#f0f0e6;border-radius:7px;margin-bottom:37px;padding:22px 20px}.ingredient-panel .section-title h2{font-size:27px}.ingredient-list li{padding:9px 0;font-size:12px}.ingredient-group{margin-top:21px}.steps>li{grid-template-columns:31px minmax(0,1fr);gap:13px;margin-bottom:23px;padding-bottom:23px}.step-check,.step-check span{width:31px;height:31px}.steps h3{margin-top:5px;font-size:16px;line-height:1.4}.steps p{font-size:13px;line-height:1.95}.completion{flex-direction:column;align-items:flex-start;gap:5px}.recipe-notes{padding:17px 18px}.empty-state{margin:70px auto}.empty-state h1{font-size:30px}}.stepper button:disabled{cursor:default;opacity:.4}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.site-header,.detail-topline,.portion-controls,.filter-tags,footer,.source-link,.completion,.portion-feedback{display:none}.cooking-layout{display:block}.ingredient-panel{margin-bottom:25px}.steps>li{break-inside:avoid}.steps li.done p{opacity:1}body{background:#fff}.ingredient-mention{background:0 0}.recipe-heading h1{font-size:32px}}
