*{box-sizing:border-box}html{background:#f7f0e4}body{color:#171511;-webkit-font-smoothing:antialiased;background:#f7f0e4;min-width:320px;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{touch-action:manipulation}button:focus-visible{outline-offset:2px;outline:3px solid #e75b29}:root{--ink:#171511;--ink-soft:#5f594f;--paper:#f7f0e4;--paper-deep:#ebdfcc;--line:#d7c8b0;--orange:#e75b29;--orange-dark:#af3719;--gin:#34745f;--radius:22px}.page-shell{max-width:760px;min-height:100vh;margin:0 auto;padding:20px 16px 36px;overflow:hidden}.hero{padding:10px 10px 36px;animation:.5s ease-out both rise;position:relative}.hero:after{content:"";z-index:-1;border:1px solid #e75b2973;border-radius:50%;width:230px;height:230px;position:absolute;top:-75px;right:-90px;box-shadow:0 0 0 26px #e75b2914,0 0 0 54px #e75b290b}.wordmark{letter-spacing:-.03em;align-items:center;gap:8px;font-weight:800;display:flex}.wordmark span{color:var(--orange);font-size:19px}.eyebrow,.section-kicker{color:var(--orange-dark);letter-spacing:.15em;margin:0;font-size:.66rem;font-weight:800}.hero .eyebrow{margin-top:36px}.hero h1{letter-spacing:-.07em;max-width:520px;margin:8px 0 12px;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.65rem,12vw,4.7rem);line-height:.91}.hero h1 em{color:var(--orange);font-weight:400}.intro{max-width:490px;color:var(--ink-soft);margin:0;font-size:1rem;line-height:1.55}.hero-note{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;align-items:center;gap:8px;margin-top:20px;font-size:.74rem;font-weight:700;display:flex}.hero-note i{background:var(--orange);border-radius:50%;width:3px;height:3px}.filter-panel,.flavor-map,.pantry-panel,.results{border:1px solid var(--line);border-radius:var(--radius);background:#fffaf1a6;margin-top:16px;padding:24px 18px}.filter-panel{background:var(--ink);color:#fff9ed;border-color:var(--ink)}.section-heading h2,.results-heading h2{letter-spacing:-.045em;margin:4px 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.58rem;line-height:1}.filter-panel .section-kicker{color:#f5a17e}.filter-row{flex-wrap:wrap;gap:8px;display:flex}.spirit-row{margin-top:20px}.filter-chip,.mood-chip,.pantry-chip,.map-card,.text-button,.reset-button,.share-button,.recipe-summary{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.filter-chip{color:#fff9ed;background:0 0;border:1px solid #ffffff42;border-radius:100px;min-height:43px;padding:9px 12px;font-size:.81rem;font-weight:700}.filter-chip span{margin-right:5px}.filter-chip.selected{color:var(--ink);background:#f7d6bd;border-color:#f7d6bd}.mood-line{border-top:1px solid #ffffff26;gap:10px;margin-top:22px;padding-top:19px;display:grid}.mood-line>span{color:#e8d9c6;font-size:.83rem;font-weight:700}.mood-chip{color:#eee1d2;background:#ffffff1a;border:0;border-radius:6px;min-height:40px;padding:7px 11px;font-size:.78rem;font-weight:700}.mood-chip.selected{color:var(--ink);background:#f5c244}.inline-heading,.results-heading{justify-content:space-between;align-items:end;gap:18px;display:flex}.text-button,.reset-button{min-height:38px;color:var(--orange-dark);text-underline-offset:3px;white-space:nowrap;background:0 0;border:0;padding:6px 0;font-size:.78rem;font-weight:800;text-decoration:underline}.map-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:18px;display:grid}.map-card{border:1px solid var(--line);min-height:125px;color:var(--ink);text-align:left;background:#fffaf1;border-radius:14px;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:15px;transition:transform .16s,border-color .16s;display:flex}.map-card:active{transform:scale(.98)}.map-card strong{letter-spacing:-.04em;font-family:Georgia,Times New Roman,serif;font-size:1.2rem}.map-card span{color:var(--ink-soft);font-size:.71rem;line-height:1.25}.map-card b{color:var(--orange-dark);text-transform:uppercase;letter-spacing:.07em;font-size:.69rem}.map-card.sour{background:#f8ead1}.map-card.spirit-forward{background:#edd8c1}.map-card.bubbly{background:#dceceb}.map-card.tropical{background:#f3d6ae}.map-card.active{border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}.pantry-copy{color:var(--ink-soft);margin:11px 0 16px;font-size:.83rem;line-height:1.45}.pantry-grid{flex-wrap:wrap;gap:8px;display:flex}.pantry-chip{border:1px solid var(--line);color:#4d463b;background:#fffdf8;border-radius:7px;min-height:40px;padding:7px 10px;font-size:.75rem;font-weight:750}.pantry-chip.selected{color:#fff;border-color:var(--gin);background:var(--gin)}.results{background:0 0;border:0;padding:24px 0 0}.recipe-stack{gap:10px;margin-top:18px;display:grid}.recipe-card{border:1px solid var(--line);background:#fffaf1;border-radius:15px;overflow:hidden}.recipe-card.open{border-color:#b9a48b;box-shadow:0 9px 20px #46311814}.recipe-summary{width:100%;min-height:76px;color:var(--ink);text-align:left;background:0 0;border:0;grid-template-columns:44px 1fr 28px;align-items:center;gap:10px;padding:12px 13px;display:grid}.recipe-emoji{background:var(--paper-deep);border-radius:12px;place-items:center;width:44px;height:44px;font-size:1.35rem;display:grid}.recipe-title{gap:4px;display:grid}.recipe-title b{letter-spacing:-.035em;font-family:Georgia,Times New Roman,serif;font-size:1.22rem}.recipe-title small{color:var(--ink-soft);text-transform:capitalize;font-size:.7rem}.open-mark{color:var(--orange-dark);text-align:center;font-size:1.55rem;font-weight:400}.recipe-details{border-top:1px solid #e5d8c5;padding:0 14px 16px;animation:.22s ease-out reveal}.story{color:#62584c;margin:15px 0;font-family:Georgia,Times New Roman,serif;font-size:.94rem;font-style:italic;line-height:1.45}.recipe-meta{border:1px solid #e3d6c2;border-radius:9px;grid-template-columns:1fr 1fr;margin:0 -2px 16px;display:grid;overflow:hidden}.recipe-meta span{color:var(--ink-soft);gap:2px;padding:8px 10px;font-size:.7rem;display:grid}.recipe-meta span+span{border-left:1px solid #e3d6c2}.recipe-meta b{color:var(--orange-dark);letter-spacing:.09em;text-transform:uppercase;font-size:.61rem}.ingredients{border-top:1px solid #e5d8c5;padding:14px 0 6px}.ingredients h3{text-transform:uppercase;letter-spacing:.11em;margin:0 0 8px;font-size:.72rem}.ingredients div{color:var(--ink-soft);border-top:1px dashed #e7dac8;justify-content:space-between;gap:14px;padding:7px 0;font-size:.82rem;display:flex}.ingredients b{color:var(--ink);white-space:nowrap;font-size:.75rem}.method{background:#efe4d3;border-radius:10px;margin-top:12px;padding:13px}.method span{color:var(--orange-dark);letter-spacing:.12em;text-transform:uppercase;font-size:.64rem;font-weight:900}.method p{color:#4f473c;margin:5px 0 0;font-size:.82rem;line-height:1.45}.share-button{color:#fff;background:var(--orange);border:0;border-radius:9px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:45px;margin-top:13px;font-size:.82rem;font-weight:850;display:flex}.share-button span{font-size:1.1rem}.share-button:active{background:var(--orange-dark)}.empty-state{text-align:center;background:#fffaf1;border:1px dashed #c8b79f;border-radius:16px;margin-top:16px;padding:33px 20px}.empty-state>span{color:var(--orange);font-size:2rem}.empty-state h3{margin:8px 0 5px;font-family:Georgia,Times New Roman,serif;font-size:1.4rem}.empty-state p{color:var(--ink-soft);margin:0 0 12px;font-size:.86rem}footer{border-top:1px solid var(--line);color:var(--ink-soft);margin:34px 7px 0;padding-top:18px;font-size:.73rem;line-height:1.5}footer p{margin:0}footer b{color:var(--ink)}.toast{z-index:5;color:#fff;background:var(--ink);border-radius:999px;width:max-content;max-width:calc(100vw - 40px);padding:12px 16px;font-size:.8rem;font-weight:750;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0003}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (width>=640px){.page-shell{padding:36px 30px 56px}.filter-panel,.flavor-map,.pantry-panel{padding:28px}.map-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.map-card{min-height:144px}.recipe-summary{padding:14px 17px}.recipe-details{padding:0 18px 19px}}
