:root{--paper:#f6efe3;--paper-2:#fbf7f0;--ink:#2b241d;--muted:#7a6c5d;--line:#e4d8c5;--accent:#a8431f;--accent-dark:#86331a;--olive:#5e6b3a;--sage:#e6ead6;--cream:#f1e4cc;--radius:14px;--shadow:0 1px 2px #3c28140f, 0 6px 18px #3c28140f;--serif:"Fraunces", "Iowan Old Style", Georgia, serif;--sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--nav-h:64px;font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{background:radial-gradient(circle at 10% 0%, #a8431f0f, transparent 40%), radial-gradient(circle at 100% 20%, #5e6b3a12, transparent 35%), var(--paper);-webkit-tap-highlight-color:transparent;min-height:100vh;margin:0;line-height:1.5}h1,h2,h3{font-family:var(--serif);letter-spacing:-.01em;font-weight:700;line-height:1.2}h1{margin:.4rem 0 .6rem;font-size:2rem}h2{align-items:center;gap:.6rem;margin:1.6rem 0 .6rem;font-size:1.3rem;display:flex}h2:after{content:"";background:var(--line);flex:1;height:1px}small{color:var(--muted)}a{color:var(--accent);text-underline-offset:3px}.topbar{z-index:10;padding:.7rem max(1rem,50% - 410px);padding-top:calc(.7rem + env(safe-area-inset-top));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#f6efe3eb;align-items:center;gap:1.2rem;display:flex;position:sticky;top:0}.brand{font-family:var(--serif);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;display:flex;overflow:hidden}.brand span{font-size:1.5rem}.spacer{flex:1}nav.tabs{gap:.3rem;display:flex}nav.tabs a{color:var(--muted);border-radius:99px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-weight:500;text-decoration:none;display:flex}nav.tabs a.active{background:var(--accent);color:#fff}nav.tabs .ico{font-size:1.1rem}main{max-width:820px;margin:0 auto;padding:1.2rem 1rem 3rem}.footer-note{text-align:center;color:var(--muted);margin-top:2.5rem;font-size:.85rem}.footer-note code{background:var(--cream);letter-spacing:.08em;-webkit-user-select:all;user-select:all;border-radius:6px;padding:.15rem .5rem}button,.btn{font:inherit;border:1px solid var(--line);min-height:44px;color:var(--ink);cursor:pointer;background:#fff;border-radius:99px;justify-content:center;align-items:center;gap:.4rem;padding:.5rem 1rem;font-weight:500;text-decoration:none;transition:transform 60ms,background .15s,border-color .15s;display:inline-flex}button:hover,.btn:hover{border-color:var(--accent)}button:active,.btn:active{transform:scale(.97)}button.primary,.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:hover,.btn.primary:hover{background:var(--accent-dark)}button.danger{color:#a3202e}button.small{min-height:32px;padding:.1rem .75rem;font-size:.8rem}button.icon{min-width:44px;padding:.5rem}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline-offset:1px;outline:3px solid #a8431f59}input,textarea,select{font:inherit;border:1px solid var(--line);background:var(--paper-2);width:100%;min-height:44px;color:var(--ink);border-radius:10px;padding:.55rem .8rem;font-size:16px}textarea{resize:vertical;min-height:5rem}input[type=checkbox]{width:1.4rem;height:1.4rem;min-height:0;accent-color:var(--olive);flex:none}input[type=search]{background:#fff;border-radius:99px;padding-left:1.1rem}.row{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.8rem 0;display:flex}.row>input[type=search]{flex:14rem;width:auto}.row>.grow{flex:10rem;min-width:0}.grow{flex:1;min-width:0}.narrow{flex:none;width:5.5rem}.error{color:#a3202e;background:#fbe9e9;border-radius:10px;padding:.6rem .9rem}.center{text-align:center;color:var(--muted);margin-top:3rem}.list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem;margin:1rem 0;padding:0;list-style:none;display:grid}.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:1rem 1.1rem}.recipe-card{padding-top:1.3rem;transition:transform .12s,box-shadow .12s;position:relative;overflow:hidden}.recipe-card:before{content:"";background:var(--accent);height:6px;position:absolute;inset:0 0 auto}.recipe-card:nth-child(3n+2):before{background:var(--olive)}.recipe-card:nth-child(3n+3):before{background:#c9962b}.recipe-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px #3c28141f}.recipe-card a.title{font-family:var(--serif);color:var(--ink);font-size:1.2rem;font-weight:700;text-decoration:none;display:block}.recipe-card a.title:after{content:"";position:absolute;inset:0}.recipe-card p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.4rem 0;font-size:.95rem;display:-webkit-box;overflow:hidden}.meta{color:var(--muted);margin-top:.5rem;font-size:.85rem}.tag{background:var(--sage);color:var(--olive);border-radius:99px;margin:.2rem .3rem 0 0;padding:.1rem .7rem;font-size:.78rem;font-weight:500;display:inline-block}.empty{text-align:center;color:var(--muted);padding:3rem 1rem}.empty .big{font-size:3rem}.recipe-hero{border-radius:var(--radius);background:linear-gradient(135deg, var(--cream), #f7ead3);border:1px solid var(--line);padding:1.4rem 1.2rem}.recipe-hero h1{margin-top:0;font-size:2.2rem}.recipe-hero p{margin:.3rem 0}.ingredients{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin:0;padding:0;list-style:none}.ingredients li{border-bottom:1px dashed var(--line);padding:.65rem 1rem}.ingredients li:last-child{border-bottom:0}.steps{counter-reset:step;gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.steps li{counter-increment:step;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.steps label{cursor:pointer;align-items:flex-start;gap:.8rem;min-height:56px;padding:.9rem 1rem;display:flex}.steps label:before{content:counter(step);background:var(--cream);width:1.8rem;height:1.8rem;color:var(--accent);font-family:var(--serif);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.steps label input{order:3;margin-top:.2rem;margin-left:auto}.steps label span{flex:1;padding-top:.1rem}.steps li.done{background:var(--sage);border-color:#cdd5b0}.steps li.done span{color:var(--muted);text-decoration:line-through}.steps li.done label:before{background:var(--olive);color:#fff}.progress{background:var(--line);border-radius:99px;height:6px;margin:.8rem 0;overflow:hidden}.progress>div{background:var(--olive);height:100%;transition:width .25s}.form label{color:var(--muted);flex-direction:column;gap:.25rem;margin:.7rem 0;font-size:.9rem;font-weight:500;display:flex}.form .row label{margin:0}.form .step-row{align-items:flex-start}.step-num{font-family:var(--serif);color:var(--accent);width:1.6rem;padding-top:.6rem;font-weight:700}.step-actions{flex-direction:column;gap:.3rem;display:flex}.week-head{align-items:center;gap:.5rem;margin:.6rem 0;display:flex}.week-head h1{text-align:center;flex:1;margin:0;font-size:1.6rem}.day{gap:.5rem;display:grid}.day-name{font-family:var(--serif);font-size:1.1rem;font-weight:700}.day-name small{font-family:var(--sans);font-weight:400}.day.today{border-color:var(--accent);box-shadow:0 0 0 2px #a8431f26, var(--shadow)}.week-list{grid-template-columns:1fr}details{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-top:1rem;padding:.8rem 1rem}summary{cursor:pointer;font-weight:600}.login{text-align:center;gap:.9rem;max-width:400px;margin:8vh auto;padding:2rem 1.5rem;display:grid}.login .logo{font-size:3.2rem}.login h1{margin:0;font-size:2.2rem}.login h2{justify-content:center;margin:.8rem 0 0;font-size:1.1rem}.login h2:after{display:none}.login form{gap:.5rem;display:flex}.login .btn.ms{background:#fff}.google{justify-content:center;min-height:44px;display:flex}body:before{content:"";z-index:-1;pointer-events:none;opacity:.5;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .35  0 0 0 0 .25  0 0 0 0 .15  0 0 0 .07 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}main>*{animation:.35s both rise}.list>li{animation:.4s both rise}.list>li:nth-child(2){animation-delay:50ms}.list>li:nth-child(3){animation-delay:.1s}.list>li:nth-child(n+4){animation-delay:.15s}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.brand{letter-spacing:.01em;font-style:italic}.page-title{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;padding-bottom:.3rem;display:flex}.page-title h1{margin:0;font-size:2.4rem;font-style:italic;font-weight:500}.page-title .count{color:var(--muted);font-family:var(--serif);font-style:italic}.page-title:after{content:none}.chips{padding:.2rem 0 .6rem;scrollbar-width:none;gap:.4rem;margin:0 -1rem;padding-inline:1rem;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{background:var(--sage);min-height:34px;color:var(--olive);border-color:#0000;flex:none;padding:.2rem .9rem;font-size:.85rem}.chip.on{background:var(--olive);color:#fff}.recipe-card{flex-direction:column;min-height:150px;padding:1.4rem 1.2rem 1.1rem;display:flex}.recipe-card .meta{border-top:1px dotted var(--line);margin-top:auto;padding-top:.7rem}.card-emoji{opacity:.9;filter:drop-shadow(0 2px 3px #3c281426);font-size:2.6rem;transition:transform .2s;position:absolute;top:1rem;right:.7rem}.recipe-card:hover .card-emoji{transform:rotate(-8deg)scale(1.1)}.recipe-card a.title{padding-right:3.2rem}.recipe-hero{box-shadow:var(--shadow);background:linear-gradient(135deg,#f3e3c6,#f9efdc 60%,#f1e4cc);padding:1.6rem 1.4rem;position:relative;overflow:hidden}.recipe-hero:after{content:"";pointer-events:none;border:1px solid #a8431f40;border-radius:10px;position:absolute;inset:8px}.recipe-hero h1{padding-right:3.5rem;font-size:2.4rem;font-style:italic;font-weight:500}.hero-emoji{filter:drop-shadow(0 3px 4px #3c281433);font-size:3.2rem;position:absolute;top:.9rem;right:1.2rem}.recipe-hero p:first-of-type:first-letter{font-family:var(--serif)}h2{font-size:1.5rem;font-style:italic;font-weight:500}.ingredients li:before{content:"•";color:var(--accent);margin-right:.6rem}.steps li{transition:background .2s,border-color .2s}.steps label:before{box-shadow:inset 0 0 0 1px var(--line)}.day{border-left:4px solid var(--cream)}.day.today{border-left-color:var(--accent)}.day-emoji{font-size:1.1rem}.week-head h1{font-style:italic;font-weight:500}.week-head .icon{border-radius:50%}.topbar{box-shadow:0 1px 0 var(--line), 0 8px 20px -14px #3c28144d}.brand span{filter:drop-shadow(0 1px 1px #3c281440)}.login{border-top:6px solid var(--accent);background:linear-gradient(#fff, var(--paper-2))}.login h1{font-style:italic;font-weight:500}@media (width<=640px){h1{font-size:1.6rem}.recipe-hero h1{font-size:1.8rem}.page-title h1{font-size:1.9rem}.list{grid-template-columns:1fr}.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--paper);gap:.6rem}nav.tabs{z-index:20;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);background:#fbf7f0f5;gap:0;position:fixed;bottom:0;left:0;right:0}nav.tabs a{background:0 0;border-radius:0;flex-direction:column;flex:1;justify-content:center;gap:0;font-size:.75rem}nav.tabs a.active{color:var(--accent);background:0 0;font-weight:600}nav.tabs .ico{font-size:1.5rem}main{padding-bottom:calc(var(--nav-h) + 2.5rem + env(safe-area-inset-bottom))}.hide-mobile{display:none}.row.actions>*{flex:auto}.narrow{width:4.6rem}}@media print{.topbar,nav.tabs,.row.actions,.footer-note{display:none!important}body{background:#fff}}
