
:root{--cream:#fbf6ec;--card:#fffdf8;--ink:#3a3230;--muted:#8a7d72;--berry:#9c3b2e;--berry-d:#7c2c21;--sage:#6b8265;--line:#e7dccb;--gold:#c9962f}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Nunito Sans',system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.6}
h1,h2,h3,.serif{font-family:'Playfair Display',Georgia,serif}
a{color:var(--berry);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
header.top{position:sticky;top:0;z-index:20;background:rgba(251,246,236,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;gap:16px;padding:12px 20px}
header.top .brand{font-family:'Playfair Display',serif;font-weight:700;font-size:1.25rem;color:var(--berry)}
header.top nav{margin-left:auto;display:flex;gap:18px;font-weight:600}
header.top nav a{color:var(--ink)}
.hero{background:linear-gradient(180deg,#f3e7d2,#fbf6ec);border-bottom:1px solid var(--line);text-align:center;padding:64px 20px 48px}
.hero .kicker{letter-spacing:.28em;text-transform:uppercase;color:var(--berry);font-weight:700;font-size:.72rem}
.hero h1{font-size:clamp(2.4rem,6vw,4rem);margin:.2em 0 .1em;color:var(--berry-d);line-height:1.05}
.hero p.sub{font-size:1.15rem;color:var(--muted);font-style:italic;max-width:600px;margin:12px auto 0}
.hero .count{margin-top:22px;display:inline-block;background:var(--berry);color:#fff;padding:8px 18px;border-radius:30px;font-weight:700;font-size:.9rem}
section{padding:48px 0}
.section-title{text-align:center;margin:0 0 8px;font-size:2rem;color:var(--berry-d)}
.section-sub{text-align:center;color:var(--muted);margin:0 0 34px}
.intro-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:40px 44px;box-shadow:0 8px 30px rgba(124,44,33,.06);max-width:760px;margin:0 auto;position:relative}
.intro-card:before{content:"\201C";position:absolute;top:-6px;left:20px;font-family:'Playfair Display',serif;font-size:5rem;color:var(--gold);opacity:.5}
.intro-card p{margin:0 0 14px}
.intro-sig{text-align:right;font-family:'Playfair Display',serif;font-style:italic;color:var(--berry);font-size:1.15rem;margin-top:18px}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.cat-tile{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px 18px;text-align:center;transition:.18s;display:block}
.cat-tile:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(124,44,33,.10);text-decoration:none;border-color:var(--gold)}
.cat-tile .em{font-size:2.2rem}
.cat-tile .nm{font-family:'Playfair Display',serif;font-weight:700;color:var(--ink);margin-top:8px}
.cat-tile .ct{color:var(--muted);font-size:.85rem}
.searchbar{max-width:560px;margin:0 auto 30px;position:relative}
.searchbar input{width:100%;padding:15px 18px 15px 46px;border:1px solid var(--line);border-radius:32px;font-size:1rem;font-family:inherit;background:var(--card)}
.searchbar input:focus{outline:none;border-color:var(--berry)}
.searchbar:before{content:"🔍";position:absolute;left:18px;top:13px;opacity:.6}
.filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:30px}
.chip{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:7px 15px;border-radius:24px;font-weight:600;font-size:.85rem;cursor:pointer;font-family:inherit}
.chip.active{background:var(--berry);color:#fff;border-color:var(--berry)}
.rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.rcard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;transition:.16s;display:flex;flex-direction:column}
.rcard:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(124,44,33,.10);text-decoration:none}
.rcard .rc-cat{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);font-weight:700}
.rcard h3{margin:6px 0 8px;font-size:1.22rem;color:var(--berry-d);line-height:1.2}
.rcard .rc-meta{color:var(--muted);font-size:.85rem;margin-top:auto}
.rcard .rc-note{font-style:italic;color:var(--muted);font-size:.85rem;margin-top:10px;border-top:1px dashed var(--line);padding-top:8px}
.noresults{text-align:center;color:var(--muted);padding:40px;display:none}
footer{background:#2e2724;color:#e8ddcf;text-align:center;padding:40px 20px;margin-top:20px}
footer .serif{color:#fff;font-size:1.3rem}
footer a{color:var(--gold)}
.photostrip{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.photo-ph{aspect-ratio:1;background:repeating-linear-gradient(45deg,#efe3d0,#efe3d0 12px,#e9dcc6 12px,#e9dcc6 24px);border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.8rem;text-align:center;padding:10px;border:1px solid var(--line)}
/* recipe page */
.recipe-page{max-width:760px;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:44px 48px;box-shadow:0 8px 30px rgba(124,44,33,.06)}
.recipe-page .rc-cat{color:var(--sage);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}
.recipe-page h1{color:var(--berry-d);font-size:2.4rem;margin:.1em 0 .5em}
.recipe-page h2{color:var(--berry);font-size:1.3rem;border-bottom:2px solid var(--line);padding-bottom:6px;margin-top:34px}
.ing-list{list-style:none;padding:0}
.ing-list li{padding:7px 0 7px 28px;border-bottom:1px dashed var(--line);position:relative}
.ing-list li:before{content:"•";color:var(--berry);position:absolute;left:8px;font-weight:700}
.ing-list li.subhead{font-weight:700;color:var(--berry);border-bottom:none;padding-left:0}
.ing-list li.subhead:before{content:""}
.steps-list{padding-left:0;counter-reset:step;list-style:none}
.steps-list li{position:relative;padding:0 0 18px 46px;counter-increment:step}
.steps-list li:before{content:counter(step);position:absolute;left:0;top:-2px;width:30px;height:30px;background:var(--berry);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:'Playfair Display',serif}
.note-box{background:#f5ecd9;border-left:4px solid var(--gold);border-radius:0 10px 10px 0;padding:16px 20px;margin-top:26px;font-style:italic;color:#6b5b46}
.backlink{display:inline-block;margin-bottom:20px;font-weight:600}
.actions{margin-top:30px;display:flex;gap:12px;flex-wrap:wrap}
.btn{border:1px solid var(--berry);color:var(--berry);background:none;padding:10px 20px;border-radius:26px;font-weight:700;cursor:pointer;font-family:inherit;font-size:.9rem}
.btn:hover{background:var(--berry);color:#fff}
@media print{header.top,footer,.actions,.backlink{display:none}.recipe-page{border:none;box-shadow:none;padding:0}body{background:#fff}}
@media(max-width:640px){.recipe-page{padding:28px 22px}.hero{padding:44px 16px 34px}}
