:root{
  --primary:#22452F;--secondary:#708D76;--accent:#C9A45B;
  --bg:#EDF2EB;--surface:#FFFDF8;--ink:#233128;--muted:#687168;
  --shadow:0 12px 30px rgba(20,50,30,.14);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Georgia,"Times New Roman",serif}
button{font:inherit}
.app-shell{max-width:680px;min-height:100vh;margin:auto;background:var(--surface);box-shadow:0 0 36px rgba(0,0,0,.13)}
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(255,253,248,.96);backdrop-filter:blur(12px);border-bottom:1px solid #dfe7df}

.logo-img{height:52px;width:52px;flex-shrink:0}.topbar-center{flex:1;text-align:center}
.brand{font-size:28px;letter-spacing:.09em;color:var(--primary);font-weight:800}
.tagline{font:13px Arial,sans-serif;color:var(--secondary);margin-top:4px}
.page{padding:22px 18px 42px}
.eyebrow{text-transform:uppercase;letter-spacing:.15em;font:800 12px Arial,sans-serif;color:var(--accent)}
h1{font-size:36px;line-height:1.04;color:var(--primary);margin:8px 0}
.intro{font:16px/1.5 Arial,sans-serif;color:var(--muted);margin:0 0 18px}
.filters{display:flex;gap:8px;overflow:auto;padding:2px 0 14px;scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.pill,.filter{border:0;border-radius:999px;padding:8px 12px;background:#E8EFE8;color:#111;font:800 13px Arial,sans-serif;white-space:nowrap}
.filter{cursor:pointer}
.filter.active{background:var(--primary);color:#fff}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tile{border:0;padding:0;text-align:left;background:#fff;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);cursor:pointer}
.tile-media{height:175px;background-size:cover;background-position:center;position:relative}
.tile-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.55))}

.tile-copy{padding:14px}
.tile-copy h2{font-size:21px;line-height:1.08;color:var(--primary);margin:0 0 9px}
.meta{display:flex;gap:6px;flex-wrap:wrap}
.recipe-bar{position:sticky;top:69px;z-index:25;display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border-bottom:1px solid #dfe7df}
.back{border:0;border-radius:12px;padding:9px 12px;background:#E8EFE8;color:#111;font-weight:800;cursor:pointer}
.recipe-label{color:var(--primary);font-weight:800}
.carousel{display:flex;flex-direction:column;overflow-y:auto;scroll-snap-type:y mandatory;height:calc(100dvh - 115px);gap:0;padding:0;scrollbar-width:none}
.carousel::-webkit-scrollbar{display:none}
.card::-webkit-scrollbar{display:none}
.card{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 100%;width:100%;border-radius:0;overflow-y:auto;overflow-x:hidden;background:#fff;box-shadow:none;scrollbar-width:none}
.hero{position:relative;background-size:cover;background-position:center}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.03),rgba(0,0,0,.74))}
.hero-copy{position:absolute;z-index:2;left:28px;right:28px;bottom:32px;color:#fff}
.hero-copy h2{font-size:44px;line-height:1;margin:8px 0 10px;text-shadow:0 2px 14px rgba(0,0,0,.35)}
.hero-copy p{font:16px/1.5 Arial,sans-serif;margin:0}
.small{text-transform:uppercase;letter-spacing:.18em;font:800 12px Arial,sans-serif}
.content{padding:24px 18px 14px}
.content h2{font-size:30px;color:var(--primary);margin:0 0 6px}
.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}
.quick{background:#E8EFE8;border-radius:12px;padding:12px 8px;text-align:center;font-family:Arial,sans-serif}
.quick b{display:block;font-size:19px;color:var(--primary)}
.quick span{font-size:12px;color:#111;font-weight:800}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.subhead{text-transform:uppercase;letter-spacing:.13em;color:var(--accent);font-size:12px;font-weight:800;margin:10px 0 5px}
ul,ol{font:16px/1.58 Arial,sans-serif;margin:0;padding-left:21px}
ol li{margin-bottom:9px}
.nutrition{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.nutrition div,.box{background:#E8EFE8;border-radius:14px;padding:9px;font:14px/1.4 Arial,sans-serif}
.nutrition strong{display:block;color:var(--primary);font-size:18px}
.box{border-left:4px solid var(--accent);margin-bottom:8px}
.pairings-line{font:14px/1.5 Arial,sans-serif;margin:0;color:var(--ink)}
.swipe-note{text-align:center;padding:0 20px 20px;color:var(--muted);font:13px Arial,sans-serif}
.error{margin:30px;padding:20px;border-radius:16px;background:#fff3f1;color:#7a261e;font-family:Arial,sans-serif}
@media(max-width:500px){
  .tile-media{height:145px}.tile-copy h2{font-size:19px}
  .hero-copy h2{font-size:37px}.two-col{grid-template-columns:1fr}
}