@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--bg:#faf8f2;--paper:#fffefa;--ink:#26382b;--muted:#85897e;--green:#3c6144;--green2:#e9efe4;--line:#e9e7df;--peach:#f1ddd1;--gold:#d0a571}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;margin:0;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #86aa7f;outline-offset:2px}.header{max-width:1100px;margin:auto;padding:22px 32px;display:flex;align-items:center;justify-content:space-between}.brand{border:0;background:none;display:flex;align-items:center;gap:11px;font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:var(--ink);padding:0}.brand-mark{font-family:system-ui;font-size:29px;color:var(--green);line-height:1}.brand-dot{color:#d8a17c}.header-right{display:flex;align-items:center;gap:16px}.header-label{font-size:10px;letter-spacing:2.5px;color:#8e9886;font-weight:700}.circle-btn,.icon-button{border:1px solid var(--line);background:var(--paper);color:var(--ink);height:40px;width:40px;border-radius:50%;font-size:21px}.main{max-width:1100px;padding:0 32px 100px;margin:0 auto;min-height:70vh}.hero{margin-top:12px;display:grid;grid-template-columns:1.13fr .87fr;min-height:395px;background:#e8e9d9;border-radius:23px;overflow:hidden}.hero-copy{padding:54px 28px 40px 53px;display:flex;flex-direction:column;justify-content:center}.eyebrow{color:var(--green);font-weight:700;letter-spacing:3px;font-size:11px;text-transform:uppercase}.hero h1{font-family:'Playfair Display',serif;font-size:clamp(36px,4vw,58px);line-height:1.12;letter-spacing:-1.5px;margin:17px 0 17px;max-width:480px;font-weight:600}.hero p{font-size:14px;color:#667466;max-width:370px;line-height:1.8;margin:0 0 25px}.hero-image{background:url('https://images.unsplash.com/photo-1543353071-873f17a7a088?w=1200&q=85') center/cover}.primary{background:var(--green);border:0;color:white;padding:13px 21px;border-radius:9px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:max-content}.primary:hover{background:#294d34}.secondary{background:var(--green2);color:var(--green);border:0;padding:11px 17px;border-radius:9px;font-weight:700}.section{margin-top:40px}.section-top{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:20px}.section h2,.inner-title{font-family:'Playfair Display',serif;font-size:32px;letter-spacing:-.6px;margin:7px 0 0;font-weight:600}.soft{color:var(--muted);font-size:13px}.search-row{display:flex;gap:10px;margin-top:24px;align-items:center}.search-box{flex:1;position:relative}.search-box input{height:50px;width:100%;border:1px solid var(--line);border-radius:12px;background:white;padding:0 16px 0 44px;color:var(--ink);outline:none}.search-box:before{content:'⌕';position:absolute;left:15px;top:5px;color:#929990;font-size:30px}.chips{display:flex;gap:9px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;border:1px solid var(--line);color:#667265;background:white;border-radius:22px;padding:10px 16px;font-size:12px;font-weight:700}.chip.active{background:var(--green);color:white;border-color:var(--green)}.recipe-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.recipe-card{border:none;background:transparent;text-align:left;padding:0;color:inherit;position:relative;min-width:0}.recipe-card .image-wrap{display:block;position:relative;border-radius:13px;overflow:hidden;aspect-ratio:1.15;background:#e9e7df}.recipe-card img{display:block;height:100%;width:100%;object-fit:cover;transition:transform .25s ease}.recipe-card:hover img{transform:scale(1.045)}.pill{position:absolute;bottom:11px;left:11px;border-radius:20px;background:#fffefaed;padding:7px 10px;font-size:10px;color:#48624c;font-weight:700}.heart{position:absolute;right:10px;top:10px;border:0;border-radius:50%;height:35px;width:35px;background:#fffffff2;color:var(--green);font-size:21px;display:grid;place-items:center}.heart.saved{background:var(--green);color:white}.recipe-card h3{font-family:'Playfair Display',serif;font-size:19px;font-weight:600;margin:12px 0 6px;line-height:1.24}.recipe-card p{font-size:11px;color:#979d93;margin:0;letter-spacing:.2px}.recipe-card:hover h3{text-decoration:underline;text-underline-offset:3px}.footer-note{font-size:11px;color:#a0a39c;text-align:center;margin:35px 0}.empty{padding:50px 22px;text-align:center;border:1px dashed #d7dbd0;border-radius:18px;background:#ffffff75}.empty .emoji{font-size:39px}.empty h3{font-family:'Playfair Display',serif;font-size:25px;margin:13px 0 6px}.empty p{font-size:13px;color:var(--muted);line-height:1.7}.inner-header{padding:25px 0 20px}.back{background:transparent;border:0;color:var(--green);font-weight:700;padding:0;font-size:13px}.recipe-hero{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;padding:10px 0 30px}.detail-img{width:100%;aspect-ratio:1.22;object-fit:cover;border-radius:20px;background:#e6e5da}.detail-heading{font-family:'Playfair Display',serif;font-weight:600;font-size:clamp(32px,4vw,52px);line-height:1.11;margin:14px 0 13px}.detail-description{color:#7c857c;line-height:1.75;font-size:14px}.facts{display:flex;gap:24px;margin:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}.fact b{display:block;font-size:15px}.fact small{color:var(--muted);font-size:11px}.detail-actions{display:flex;gap:10px;flex-wrap:wrap}.details-columns{display:grid;grid-template-columns:.8fr 1.2fr;gap:30px;margin-top:25px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:25px}.panel h2{font-family:'Playfair Display',serif;font-size:25px;margin:0 0 18px}.serving-row{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;margin-bottom:16px}.stepper{display:flex;align-items:center;gap:14px;background:var(--bg);border-radius:25px;padding:4px}.stepper button{height:27px;width:27px;border:none;border-radius:50%;background:white;color:var(--green);font-size:17px}.stepper strong{color:var(--ink)}.ingredient-row{display:flex;align-items:start;gap:11px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.55}.ingredient-row:last-child{border-bottom:0}.ingredient-row input{accent-color:var(--green);margin-top:3px;width:16px;height:16px}.ingredient-row:has(input:checked) span{text-decoration:line-through;color:#aeb2aa}.step-item{display:flex;gap:15px;padding:14px 0;border-bottom:1px solid var(--line);align-items:start}.step-item:last-child{border-bottom:0}.step-num{background:var(--green2);color:var(--green);height:30px;width:30px;flex:none;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12px}.step-item p{margin:3px 0 0;line-height:1.7;color:#677368;font-size:13px}.full-width{width:100%;margin-top:20px}.source-note{margin-top:16px;color:var(--muted);font-size:11px;line-height:1.7}.cook-view{max-width:700px;margin:auto;padding:20px 0}.progress-track{height:7px;border-radius:7px;background:#e4e9dc;overflow:hidden;margin:25px 0 40px}.progress-fill{height:100%;background:var(--green);transition:width .2s}.cook-step{min-height:245px;background:white;border:1px solid var(--line);border-radius:20px;padding:35px}.cook-step .step-count{font-size:11px;letter-spacing:2px;color:var(--green);font-weight:700}.cook-step h2{font-family:'Playfair Display',serif;font-size:29px;font-weight:600;line-height:1.5}.cook-controls{display:flex;justify-content:space-between;gap:12px;margin-top:18px}.shopping-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.shop-item{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);background:white;border-radius:12px;font-size:13px}.shop-item input{accent-color:var(--green);height:17px;width:17px}.shop-item.done span{text-decoration:line-through;color:#a3a69e}.shop-item span{flex:1}.small-btn{border:0;background:none;color:var(--muted);font-size:19px;padding:2px 6px}.toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:17px}.about-list{display:grid;grid-template-columns:1fr 1fr;gap:15px}.about-card{padding:25px;background:white;border:1px solid var(--line);border-radius:16px}.about-card h3{margin:8px 0}.about-card p{font-size:13px;line-height:1.75;color:var(--muted)}.bottom-nav{display:none}.loading{text-align:center;padding:15px;color:var(--muted);font-size:13px}#toast{opacity:0;pointer-events:none;transition:opacity .2s;position:fixed;bottom:27px;left:50%;transform:translateX(-50%);z-index:20;background:#2b4934;color:white;padding:11px 19px;border-radius:30px;font-size:12px;font-weight:700;box-shadow:0 8px 25px #1d37253a}#toast.show{opacity:1}@media(max-width:800px){.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.hero-copy{padding:32px}.hero{min-height:330px}.hero h1{font-size:40px}.details-columns{gap:14px}.panel{padding:18px}}@media(max-width:600px){.header{padding:17px 20px}.header-label{display:none}.brand{font-size:23px}.main{padding:0 18px 106px}.hero{grid-template-columns:1fr;position:relative;min-height:410px}.hero-image{position:absolute;inset:0;background-position:center;opacity:.36}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#e8e9dae8 9%,#e8e9daba 76%,#e8e9da33)}.hero-copy{position:relative;z-index:1;padding:36px 28px}.hero h1{font-size:43px;max-width:320px}.hero p{font-size:13px;color:#475647}.section{margin-top:30px}.section h2,.inner-title{font-size:27px}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 13px}.recipe-card h3{font-size:17px}.recipe-card p{font-size:10px}.recipe-card .image-wrap{aspect-ratio:1}.search-row{margin-top:17px}.recipe-hero,.details-columns{grid-template-columns:1fr}.recipe-hero{gap:17px}.detail-img{aspect-ratio:1.32}.detail-heading{font-size:35px}.facts{gap:22px}.shopping-list,.about-list{grid-template-columns:1fr}.bottom-nav{position:fixed;z-index:10;display:flex;bottom:0;left:0;right:0;background:#fffefaf7;border-top:1px solid var(--line);justify-content:space-around;padding:7px 5px calc(8px + env(safe-area-inset-bottom));backdrop-filter:blur(12px)}.bottom-nav button{border:0;background:none;color:#9aa299;display:flex;flex-direction:column;align-items:center;gap:0;flex:1;font-size:10px;font-weight:700;padding:3px}.bottom-nav button.active{color:var(--green)}.nav-icon{font-size:26px;line-height:1.25}.panel{padding:20px}.cook-step{padding:24px;min-height:265px}.cook-step h2{font-size:23px}}
