@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,500;9..144,650&family=Manrope:wght@400;500;600;700&display=swap";:root{color:#282a21;font-synthesis:none;--ink:#282a21;--paper:#f5f0e5;--tomato:#d84a2f;--green:#335d45;--line:#c9c0ae;background:#f5f0e5;font-family:Manrope,sans-serif}*{box-sizing:border-box}body{background:var(--paper);background-image:linear-gradient(#42372609 1px,#0000 1px);background-size:100% 26px;min-width:320px;min-height:100svh;margin:0}button,input,select{font:inherit}button{color:inherit}.topbar,.appbar{border-bottom:1px solid var(--line);z-index:20;background:#f5f0e5f5;justify-content:space-between;align-items:center;height:76px;padding:0 clamp(20px,4vw,56px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;display:flex}.brand b{letter-spacing:-1px;font-family:Fraunces,serif;font-size:27px}.mark{align-items:flex-end;gap:2px;height:28px;display:flex}.mark i{background:var(--tomato);border-radius:3px;width:5px;display:block;transform:skew(-10deg)}.mark i:first-child{height:18px}.mark i:nth-child(2){height:27px}.mark i:nth-child(3){height:22px}.save-note,.appbar>span,.eyebrow{letter-spacing:.13em;font-family:DM Mono,monospace;font-size:11px}.setup-grid{grid-template-columns:.9fr 1.1fr;gap:92px;max-width:1180px;margin:auto;padding:64px 40px 120px;display:grid}.setup-intro{align-self:start;position:sticky;top:140px}.eyebrow{color:var(--tomato);font-weight:500}.setup h1,.page h1,.modal h1{letter-spacing:-.045em;margin:18px 0 24px;font-family:Fraunces,serif;font-size:clamp(46px,6vw,78px);line-height:.94}.setup h1 em,.page h1 em{color:var(--green);font-weight:500}.setup-intro>p:not(.eyebrow){color:#5f5c51;max-width:490px;font-size:17px;line-height:1.7}.budget-stamp{border-left:3px solid var(--tomato);flex-direction:column;margin-top:52px;padding:8px 0 8px 18px;display:flex}.budget-stamp span{letter-spacing:.1em;font:10px DM Mono}.budget-stamp strong{margin:8px 0 4px;font:650 52px/1 Fraunces}.budget-stamp small{color:#6a675c}.setup-form{border:1px solid var(--line);background:#fffdf7;padding:38px;box-shadow:10px 10px #ded5c4}.setup-form>section,.setup-form>label,.setup-form>fieldset,.setup-form>.two{margin-bottom:30px}.setup-form label,.setup-form legend{flex-direction:column;gap:10px;font-size:13px;font-weight:700;display:flex}.field-head{justify-content:space-between;align-items:center;display:flex}.field-head label{font-size:15px}.field-head output{color:var(--tomato);font:600 26px Fraunces}input[type=range]{width:100%;accent-color:var(--tomato)}.range-labels{color:#777268;justify-content:space-between;font:10px DM Mono;display:flex}.two{grid-template-columns:1fr 1fr;gap:18px;display:grid}select,label>input:not([type=checkbox]){appearance:none;background:0 0;border:0;border-bottom:1px solid #918b7f;border-radius:0;outline:none;width:100%;padding:11px 24px 11px 0}.setup-form select{background-image:linear-gradient(45deg,#0000 50%,#333 50%),linear-gradient(135deg,#333 50%,#0000 50%);background-position:calc(100% - 8px) 55%,calc(100% - 3px) 55%;background-repeat:no-repeat;background-size:5px 5px}.setup-form fieldset{border:0;padding:0}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips button,.chips.static span{text-transform:capitalize;cursor:pointer;background:0 0;border:1px solid #999184;padding:9px 13px}.chips button.selected,.chips.static span{background:var(--green);border-color:var(--green);color:#fff}.checks{flex-wrap:wrap;gap:10px;display:flex}.checks label{position:relative}.checks input{opacity:0;position:absolute}.checks span{cursor:pointer;border-bottom:2px solid #0000;padding:6px 2px}.checks input:checked+span{border-color:var(--tomato);color:var(--tomato)}.allergy-note{color:#777268;border-top:1px solid var(--line);padding-top:14px;font-size:11px;line-height:1.5}.primary{background:var(--tomato);color:#fff;cursor:pointer;border:0;padding:15px 21px;font-weight:700;box-shadow:4px 4px #7b2818}.primary:hover{transform:translate(2px,2px);box-shadow:2px 2px #7b2818}.primary:disabled{opacity:.75}.generate{width:100%;min-height:54px}.mini-loader{vertical-align:-2px;border:2px solid #fff;border-right-color:#0000;border-radius:50%;width:14px;height:14px;margin-right:9px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.app{padding-bottom:84px}.appbar{height:62px}.appbar .brand b{font-size:23px}.page{max-width:980px;margin:auto;padding:52px 28px 100px}.dash-head{justify-content:space-between;align-items:flex-start;display:flex}.dash-head h1{margin:12px 0 20px;font-size:clamp(44px,7vw,72px)}.text-btn{cursor:pointer;background:0 0;border:0;border-bottom:1px solid;padding:4px 0;font-size:12px}.budget-line{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);grid-template-columns:180px 1fr;align-items:center;gap:24px 34px;margin:14px 0 45px;padding:20px 0;display:grid}.budget-line>div:first-child{flex-direction:column;display:flex}.budget-line span{text-transform:uppercase;letter-spacing:.06em;font:10px DM Mono}.budget-line strong{font:600 30px Fraunces}.budget-line p{color:#777268;grid-column:2;margin:-12px 0 0;font-size:11px}.budget-line p span{float:right}.meter{background:#dcd4c5;height:8px}.meter i{background:var(--green);max-width:100%;height:100%;display:block}.section-title,.aisle-head{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:end;padding-bottom:10px;display:flex}.section-title h2,.aisle-head h2{margin:0;font:600 28px Fraunces}.section-title span,.aisle-head span{text-transform:uppercase;font:10px DM Mono}.meal-row{border-bottom:1px solid var(--line);grid-template-columns:210px 1fr auto;align-items:center;gap:26px;padding:22px 0;display:grid;position:relative}.meal-photo{cursor:pointer;background:0 0;border:0;height:150px;padding:0;position:relative;overflow:hidden}.meal-photo img{object-fit:cover;width:100%;height:100%;transition:transform .35s}.meal-photo:hover img{transform:scale(1.03)}.meal-photo>span{background:var(--paper);place-items:center;width:28px;height:28px;font:12px DM Mono;display:grid;position:absolute;top:8px;left:8px}.tags{gap:6px;margin-bottom:8px;display:flex}.tags span{text-transform:uppercase;letter-spacing:.05em;color:var(--green);border-bottom:1px solid var(--green);font:9px DM Mono}.meal-title{text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.meal-title h3{margin:0;font:600 28px/1.05 Fraunces}.meal-title p{color:#6b685f;margin:7px 0 18px}.meal-meta{color:#6b685f;gap:15px;font-size:11px;display:flex}.meal-meta strong{color:var(--ink);margin-left:auto;font:600 16px Fraunces}.swap{cursor:pointer;color:var(--tomato);background:0 0;border:0;font-size:20px}.swap span{text-transform:uppercase;font:9px DM Mono;display:block}.bottom-nav{z-index:30;color:#c6c2b8;height:72px;padding-bottom:env(safe-area-inset-bottom);background:#282a21;justify-content:center;gap:min(14vw,150px);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:70px;display:flex;position:relative}.bottom-nav svg{fill:none;stroke:currentColor;stroke-width:1.5px;width:21px;height:21px}.bottom-nav span{text-transform:uppercase;letter-spacing:.08em;font:9px DM Mono}.bottom-nav .active{color:#fff}.bottom-nav .active:after{content:"";background:var(--tomato);width:18px;height:2px;position:absolute;bottom:7px}.shop-total{text-align:right}.shop-total span{text-transform:uppercase;font:9px DM Mono;display:block}.shop-total strong{font:600 34px Fraunces}.pantry{border:1px solid var(--green);background:#e9eee6;margin:15px 0 42px}.pantry summary{cursor:pointer;justify-content:space-between;padding:17px 20px;list-style:none;display:flex}.pantry summary span{text-transform:uppercase;font:10px DM Mono}.pantry-grid{grid-template-columns:repeat(3,1fr);gap:10px;padding:0 20px 18px;font-size:12px;display:grid}.pantry-grid input{accent-color:var(--green)}.aisle{margin-bottom:38px}.shop-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:16px 0;display:flex}.shop-item>label{cursor:pointer;align-items:center;gap:13px;display:flex}.shop-item input{opacity:0;position:absolute}.shop-item label>i{border:1px solid #6f6a5f;width:20px;height:20px;display:block}.shop-item input:checked+i{background:var(--green);box-shadow:inset 0 0 0 4px var(--paper)}.shop-item label span{flex-direction:column;display:flex}.shop-item small{color:#777268;margin-top:3px}.shop-item>div{text-align:right}.shop-item>div strong{font:600 16px Fraunces;display:block}.shop-item a{color:var(--tomato);font-size:10px}.shop-item.done{opacity:.48}.shop-item.done label b{text-decoration:line-through}.list-foot{border-top:1px solid var(--ink);justify-content:space-between;align-items:center;gap:30px;padding-top:18px;display:flex}.list-foot p{color:#777268;max-width:500px;font-size:11px}.settings>h1{margin-bottom:50px}.profile-block{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);grid-template-columns:repeat(4,1fr);display:grid}.profile-block>div{border-right:1px solid var(--line);flex-direction:column;gap:7px;padding:20px;display:flex}.profile-block>div:last-child{border:0}.profile-block span{text-transform:uppercase;font:9px DM Mono}.profile-block b{font:600 20px Fraunces}.settings section{border-bottom:1px solid var(--line);padding:28px 0}.settings h2{font:600 25px Fraunces}.settings>.primary{margin-top:30px}.danger{color:#9b2f20;cursor:pointer;background:0 0;border:0;border-bottom:1px solid;margin:28px 0;padding:0;display:block}.settings footer{align-items:center;gap:14px;margin-top:80px;display:flex}.settings footer p{font-family:Fraunces}.settings footer small{color:#777268;font:10px Manrope}.modal{z-index:80;background:var(--paper);padding-bottom:70px;position:fixed;inset:0;overflow:auto}.modal-close{z-index:2;color:#fff;cursor:pointer;background:#282a21;border:1px solid #fff;padding:10px 16px;position:fixed;top:20px;right:24px}.recipe-hero{color:#fff;background:#20231d;grid-template-columns:1.1fr .9fr;min-height:58vh;display:grid}.recipe-hero>img{object-fit:cover;width:100%;height:58vh}.recipe-hero>div{align-self:center;padding:9vw 6vw}.recipe-hero h1{margin:12px 0;font-size:clamp(44px,6vw,76px)}.recipe-hero>div>p:not(.eyebrow){color:#c9c7be;font-size:18px}.recipe-hero>div>div{text-transform:uppercase;color:#efc75e;gap:18px;margin-top:30px;font:10px DM Mono;display:flex}.recipe-body{grid-template-columns:.75fr 1.25fr;gap:85px;max-width:1000px;margin:55px auto;padding:0 30px;display:grid}.recipe-body h2{border-bottom:1px solid var(--ink);padding-bottom:10px;font:600 34px Fraunces}.recipe-body h3{margin-top:35px;font:600 20px Fraunces}.ingredient{border-bottom:1px solid var(--line);justify-content:space-between;padding:11px 0;font-size:13px;display:flex}.pantry-copy{color:#68645a;font-size:12px;line-height:1.8}.recipe-body ol{padding:0;list-style:none}.recipe-body li button{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;grid-template-columns:34px 1fr;gap:16px;width:100%;padding:15px 0;display:grid}.recipe-body li span{color:var(--tomato);font:600 22px Fraunces}.recipe-body li p{margin:0;line-height:1.6}.recipe-body li.active{background:#e9eee6;padding:0 14px}.cook{margin-top:20px}.error-boundary{padding:10vh 8vw}@media (width<=720px){.save-note{display:none}.setup-grid{padding:38px 20px 90px;display:block}.setup-intro{position:static}.setup h1{font-size:49px}.budget-stamp{margin:32px 0}.setup-form{padding:25px 20px;box-shadow:6px 6px #ded5c4}.two{grid-template-columns:1fr}.page{padding:36px 18px 95px}.dash-head{align-items:start}.dash-head .text-btn{margin-top:8px}.dash-head h1{font-size:49px}.budget-line{grid-template-columns:120px 1fr;gap:18px}.budget-line p{grid-column:1/-1;margin:0}.budget-line p span{float:none;margin-top:5px;display:block}.meal-row{grid-template-columns:112px 1fr;gap:15px;padding:16px 0}.meal-photo{height:126px}.meal-title h3{font-size:22px}.meal-title p{margin-bottom:12px;font-size:12px}.meal-meta{flex-wrap:wrap;gap:5px 10px}.meal-meta strong{width:100%;margin-left:0}.swap{position:absolute;bottom:12px;right:0}.swap span,.tags span:nth-child(2){display:none}.pantry-grid{grid-template-columns:1fr 1fr}.shop-item{align-items:start}.shop-item>div{min-width:65px}.list-foot{display:block}.list-foot .primary{width:100%;margin-top:12px}.profile-block{grid-template-columns:1fr 1fr}.profile-block>div:nth-child(2){border-right:0}.profile-block>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.recipe-hero{display:block}.recipe-hero>img{height:42vh}.recipe-hero>div{padding:34px 22px}.recipe-hero h1{font-size:44px}.recipe-body{margin:30px auto;padding:0 20px;display:block}.bottom-nav{justify-content:space-around;gap:0}.modal-close{top:12px;right:12px}.appbar{padding:0 18px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
