:root{--cream: #f6f0e1;--paper: #fffbf2;--oat: #efe6d2;--line: #e4dac4;--line-strong: #d4c8ad;--ink: #2b3022;--ink-soft: #565b48;--ink-faint: #7a7d69;--sage: #8ea27e;--sage-mist: #e5ead7;--sage-deep: #64794f;--olive: #4c5a2e;--olive-dark: #3b4723;--leaf: #9db08a;--terracotta: #b4532f;--terracotta-soft: #f3ddcf;--danger: #a3402a;--tone-sage: #dfe6cf;--tone-clay: #f1dccb;--tone-oat: #eee3c9;--tone-olive: #d7ddc0;--tone-blush: #f4e2d8;--font-display: "Iowan Old Style", "New York", ui-serif, "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--font-ui: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--radius-xl: 28px;--radius-lg: 20px;--radius-md: 14px;--radius-sm: 10px;--shadow-sm: 0 1px 2px rgba(64, 54, 28, .06);--shadow-md: 0 1px 2px rgba(64, 54, 28, .05), 0 10px 28px -14px rgba(64, 54, 28, .22);--shadow-lg: 0 2px 6px rgba(64, 54, 28, .06), 0 24px 48px -20px rgba(64, 54, 28, .3);--sidebar-w: 248px;--topbar-h: 58px;--tabbar-h: 64px;--gutter: clamp(16px, 4vw, 40px);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);color-scheme:light;font-family:var(--font-ui);font-size:16px;line-height:1.55;color:var(--ink);background:var(--cream);-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}*,*:before,*:after{box-sizing:border-box}html{scroll-padding-top:calc(var(--topbar-h) + var(--safe-top) + 12px);scroll-padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 72px)}html{background:var(--cream)}body{margin:0;min-height:100vh;min-height:100dvh;background:transparent;overflow-x:hidden}html.sheet-open body{overflow:hidden}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:600;letter-spacing:-.012em;line-height:1.15;color:var(--ink)}p{margin:0}code{font-size:.9em;background:var(--oat);padding:1px 6px;border-radius:6px}::selection{background:var(--sage-mist);color:var(--olive-dark)}:focus-visible{outline:3px solid var(--sage);outline-offset:2px;border-radius:8px}main:focus{outline:none}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;left:12px;top:calc(var(--safe-top) + 8px);z-index:200;padding:10px 16px;background:var(--olive);color:var(--paper);border-radius:999px;text-decoration:none;transform:translateY(-150%);transition:transform .2s ease}.skip-link:focus{transform:none}.muted{color:var(--ink-faint)}.text-link{color:var(--olive);font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}.text-link:hover{color:var(--olive-dark)}.wordmark{font-family:var(--font-display);font-weight:600;font-size:1.5rem;letter-spacing:-.02em;line-height:1;color:var(--ink)}.wordmark-plus{color:var(--terracotta);margin-left:1px}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--sage-deep);--leaf: var(--leaf)}.brand-mark{flex:none}.brand-compact .wordmark{font-size:1.32rem}.app{min-height:100vh;min-height:100dvh}.main-column{min-width:0;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}main{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:20px max(var(--gutter),var(--safe-right)) calc(var(--tabbar-h) + var(--safe-bottom) + 28px) max(var(--gutter),var(--safe-left))}.page{display:flex;flex-direction:column;gap:22px;min-width:0}.site-footer{display:none;padding:20px var(--gutter) 28px;text-align:center;font-size:.85rem;color:var(--ink-faint)}.site-footer span{font-family:var(--font-display);font-weight:600;color:var(--sage-deep);margin-right:6px}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;min-height:calc(var(--topbar-h) + var(--safe-top));padding:var(--safe-top) max(12px,var(--safe-right)) 0 max(var(--gutter),var(--safe-left));background:#f6f0e1db;-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid rgba(212,200,173,.55)}.topbar-actions{display:flex;gap:2px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);padding:6px max(6px,var(--safe-right)) calc(6px + var(--safe-bottom)) max(6px,var(--safe-left));background:#fffbf2e6;-webkit-backdrop-filter:saturate(1.4) blur(16px);backdrop-filter:saturate(1.4) blur(16px);border-top:1px solid rgba(212,200,173,.6)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:4px 2px;border:0;background:none;border-radius:14px;color:var(--ink-faint);text-decoration:none;font-size:.72rem;font-weight:600;letter-spacing:.01em;transition:color .2s ease,background-color .2s ease}.tab.is-active{color:var(--olive)}.tab-icon{position:relative;display:grid;place-items:center;width:52px;height:30px;border-radius:999px;transition:background-color .2s ease}.tab.is-active .tab-icon{background:var(--sage-mist)}.tab-badge{position:absolute;top:-2px;right:6px;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:var(--terracotta);color:#fff;font-size:.66rem;font-weight:700;line-height:1;border:2px solid var(--paper)}.sidebar{display:none}@media(min-width:1024px){.app{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.topbar,.bottom-nav{display:none}.sidebar{position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;gap:22px;padding:26px 16px 20px;border-right:1px solid var(--line);background:#fffbf299;overflow-y:auto}.sidebar .brand{padding:2px 10px 8px}main{padding:36px var(--gutter) 40px}.site-footer{display:block}html{scroll-padding-top:16px;scroll-padding-bottom:16px}}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-group-title{padding:0 12px 6px;font-size:.78rem;font-weight:600;color:var(--ink-faint)}.nav-link{display:flex;align-items:center;gap:12px;width:100%;min-height:42px;padding:8px 12px;border:0;border-radius:12px;background:none;color:var(--ink-soft);text-decoration:none;font-size:.95rem;font-weight:500;text-align:left;transition:background-color .18s ease,color .18s ease}.nav-link:hover{background:#e5ead799;color:var(--ink)}.nav-link.is-active{background:var(--sage-mist);color:var(--olive-dark);font-weight:650}.nav-link.is-active .icon{color:var(--olive)}.nav-count{margin-left:auto;min-width:24px;padding:1px 8px;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-size:.78rem;text-align:center;color:var(--ink-soft)}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding-top:12px;border-top:1px solid var(--line)}.nav-install{color:var(--olive);font-weight:600}.offline-bar{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:var(--oat);color:var(--ink-soft);font-size:.88rem;border-bottom:1px solid var(--line);text-align:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 20px;border-radius:999px;border:1px solid transparent;font-size:.98rem;font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .12s ease;-webkit-user-select:none;user-select:none;touch-action:manipulation}.button:active:not(:disabled){transform:scale(.98)}.button:disabled{opacity:.5}.button-primary{background:var(--olive);color:var(--paper);box-shadow:0 1px #ffffff26 inset,0 6px 16px -8px #3b472399}.button-primary:hover:not(:disabled){background:var(--olive-dark)}.button-secondary{background:var(--paper);color:var(--olive-dark);border-color:var(--line-strong)}.button-secondary:hover:not(:disabled){background:#fff;border-color:var(--sage)}.button-secondary.is-saved{color:var(--terracotta);border-color:#e2b8a2;background:#fff6f0}.button-ghost{background:transparent;color:var(--olive)}.button-ghost:hover:not(:disabled){background:#e5ead7b3}.button-danger{background:var(--danger);color:#fff}.button-danger:hover:not(:disabled){background:#8a3422}.button-quiet-danger{color:var(--danger)}.button-quiet-danger:hover:not(:disabled){background:#f8e4dc}.button-large{min-height:52px;padding:12px 24px;font-size:1.02rem}.button-small{min-height:38px;padding:7px 14px;font-size:.9rem}.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;flex:none;border:0;border-radius:999px;background:transparent;color:var(--ink-soft);text-decoration:none;transition:background-color .18s ease,color .18s ease}.icon-button:hover,.icon-button.is-active{background:var(--sage-mist);color:var(--olive-dark)}.disclosure{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;min-height:40px;padding:6px 4px;border:0;background:none;color:var(--olive);font-weight:600;font-size:.95rem}.disclosure:hover:not(:disabled){color:var(--olive-dark);text-decoration:underline;text-underline-offset:3px}.disclosure:disabled{opacity:.55}.spinner{width:18px;height:18px;flex:none;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;opacity:.85;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field-label{font-size:.86rem;font-weight:600;color:var(--ink-soft)}.field-hint{font-size:.84rem;color:var(--ink-faint)}.field input,.field textarea,.select-wrap select,.add-row input,.search input,.input-with-action input{width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--paper);font-size:16px;color:var(--ink);transition:border-color .18s ease,box-shadow .18s ease;-webkit-appearance:none;appearance:none}.field textarea{min-height:104px;resize:vertical;line-height:1.5}.field input:focus,.field textarea:focus,.select-wrap select:focus,.add-row input:focus,.search input:focus,.input-with-action input:focus{outline:none;border-color:var(--sage-deep);box-shadow:0 0 0 3px #8ea27e4d}::placeholder{color:#9a9c88;opacity:1}.select-wrap{position:relative;display:block}.select-wrap select{padding-right:40px;cursor:pointer;text-overflow:ellipsis}.select-wrap:after{content:"";position:absolute;right:16px;top:50%;width:8px;height:8px;pointer-events:none;border-right:2px solid var(--ink-faint);border-bottom:2px solid var(--ink-faint);transform:translateY(-70%) rotate(45deg)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px}.add-row{display:flex;gap:10px}.add-row input{flex:1;min-width:0}.input-with-action{position:relative;display:flex}.input-with-action input{padding-right:112px}.inline-action{position:absolute;right:6px;top:50%;transform:translateY(-50%);min-height:36px;padding:6px 12px;border-radius:999px;border:0;background:var(--sage-mist);color:var(--olive-dark);font-size:.85rem;font-weight:600}.inline-action:hover{background:#d8dfc6}.switch-row{display:flex;align-items:flex-start;gap:14px;padding:14px 0 0;cursor:pointer}.switch-row input{position:absolute;opacity:0;width:1px;height:1px}.switch{position:relative;flex:none;width:46px;height:28px;border-radius:999px;background:var(--line-strong);transition:background-color .2s ease;margin-top:2px}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .2s ease}.switch-row input:checked+.switch{background:var(--olive)}.switch-row input:focus-visible+.switch{outline:3px solid var(--sage);outline-offset:2px}.switch-row strong{display:block;font-weight:600}.switch-row small{display:block;color:var(--ink-faint);font-size:.86rem}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(18px,3vw,26px);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:16px}.panel h2{font-size:1.3rem}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 20px}.page-header h1{font-size:clamp(1.85rem,4.2vw,2.4rem)}.page-intro{margin-top:8px;max-width:62ch;color:var(--ink-soft)}.page-header-actions{display:flex;flex-wrap:wrap;gap:10px}.page-foot{display:flex;justify-content:flex-end}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.section-head h2{font-size:1.4rem;display:flex;align-items:center;gap:10px}.section-note{color:var(--ink-soft);font-size:.93rem}.count{display:inline-grid;place-items:center;min-width:30px;height:26px;padding:0 9px;border-radius:999px;background:var(--sage-mist);color:var(--olive-dark);font:600 .82rem/1 var(--font-ui)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;min-height:26px;padding:3px 11px;border-radius:999px;background:var(--sage-mist);color:var(--olive-dark);font-size:.8rem;font-weight:600}.chip-quiet{background:var(--oat);color:var(--ink-soft)}.chip-ai{background:var(--terracotta-soft);color:#8a3a1f}.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius-md);background:var(--oat);color:var(--ink-soft);font-size:.92rem}.notice .icon{flex:none;margin-top:2px;color:var(--sage-deep)}.notice-soft{background:var(--sage-mist)}.error-note{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:12px 14px;border:1px solid #ebc3b1;border-radius:var(--radius-md);background:#fbefe8;color:#7d3218;font-size:.93rem}.error-note p{flex:1 1 220px}.error-note .icon{flex:none}.inline-error{color:var(--danger);font-size:.92rem}.inline-actions{display:flex;flex-wrap:wrap;gap:8px}.confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 12px;border-radius:var(--radius-md);background:#fbefe8;color:#6f2c15;font-size:.92rem}.confirm>span{flex:1 1 200px}.danger-zone{padding-top:6px}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 20px;border:1.5px dashed var(--line-strong);border-radius:var(--radius-lg);color:var(--ink-soft)}.empty h3{font-size:1.3rem}.empty p{max-width:46ch}.empty .button{margin-top:6px}.empty-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--sage-mist);color:var(--sage-deep)}.back-link{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 12px 6px 6px;border:0;border-radius:999px;background:none;color:var(--olive);font-weight:600}.back-link:hover{background:var(--sage-mist)}.plain-list{margin:0;padding-left:1.1em;display:flex;flex-direction:column;gap:6px}.plain-list li::marker{color:var(--sage)}.token-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.token{display:inline-flex;align-items:center;gap:4px;min-height:38px;padding:4px 4px 4px 14px;border-radius:999px;background:var(--sage-mist);color:var(--olive-dark);font-weight:500}.token button{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:0;background:transparent;color:var(--sage-deep)}.token button:hover{background:#ffffffb3;color:var(--danger)}.token-list-large .token{font-size:1rem}.check-row{position:relative;display:flex;align-items:flex-start;gap:12px;padding:10px 4px;cursor:pointer;min-height:44px}.check-row input{position:absolute;opacity:0;width:1px;height:1px}.check-box{flex:none;display:grid;place-items:center;width:24px;height:24px;margin-top:1px;border-radius:8px;border:1.75px solid var(--line-strong);background:var(--paper);color:transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.check-row input:checked+.check-box{background:var(--olive);border-color:var(--olive);color:var(--paper)}.check-row input:focus-visible+.check-box{outline:3px solid var(--sage);outline-offset:2px}.check-text{flex:1;min-width:0;overflow-wrap:anywhere}.check-row.is-done .check-text,li.is-done .check-text{color:var(--ink-faint);text-decoration:line-through;text-decoration-color:var(--line-strong)}.hero{position:relative;display:grid;gap:22px;padding:clamp(22px,4vw,40px);border-radius:var(--radius-xl);background:radial-gradient(120% 140% at 100% 0%,#e5ead7f2,#e5ead700 55%),var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-md);overflow:hidden}.hero-main{display:flex;flex-direction:column;gap:14px;min-width:0}.hero-greeting{color:var(--sage-deep);font-weight:600}.hero h1{font-size:clamp(2rem,5vw,2.85rem);max-width:16ch}.hero-lede{color:var(--ink-soft);max-width:52ch;font-size:1.04rem}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.hero-prefs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:14px;padding:16px;border-radius:var(--radius-lg);background:#f6f0e1bf;border:1px solid var(--line)}.hero-prefs-note{grid-column:1 / -1}.tonight{align-self:start;display:flex;flex-direction:column;gap:8px;padding:18px;border-radius:var(--radius-lg);background:var(--cream);border:1px solid var(--line)}.tonight-day{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--sage-deep)}.tonight-label{color:var(--ink-soft);font-size:.93rem}.tonight-recipe{display:flex;align-items:center;gap:12px;text-decoration:none;padding:10px;margin:0 -10px -10px;border-radius:var(--radius-md)}.tonight-recipe:hover{background:var(--paper)}.tonight-recipe strong{display:block;font-family:var(--font-display);font-size:1.12rem;line-height:1.25}.tonight-recipe small{color:var(--ink-faint)}.tonight-emoji{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:50%;background:var(--paper);border:1px solid var(--line);font-size:1.6rem}@media(min-width:860px){.hero{grid-template-columns:minmax(0,1fr) 260px;align-items:start}.tonight{margin-top:6px}}@media(max-width:859px){.tonight{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:12px 14px}.tonight-day{font-size:1rem}.tonight-recipe{flex-basis:100%;margin:2px -6px -6px;padding:6px}.tonight-emoji{width:42px;height:42px;font-size:1.3rem}}@media(max-width:520px){.hero{padding:22px 18px;gap:16px;border-radius:24px}.hero-lede{font-size:1rem}.hero-actions .button{flex:1 1 0;padding-left:14px;padding-right:14px;min-width:0}}.surprise-card{display:flex;flex-wrap:wrap;align-items:center;gap:14px 16px;padding:18px 20px;border-radius:var(--radius-lg);background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-md)}.surprise-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--terracotta-soft);color:var(--terracotta);animation:breathe 2.4s ease-in-out infinite}.surprise-copy{flex:1 1 240px;display:flex;flex-direction:column;gap:4px}.surprise-copy strong{font-family:var(--font-display);font-size:1.15rem}.surprise-copy p{color:var(--ink-soft);font-size:.9rem}.progress{position:relative;height:4px;margin-top:8px;border-radius:99px;background:var(--sage-mist);overflow:hidden}.progress span{position:absolute;inset:0 auto 0 0;width:38%;border-radius:inherit;background:var(--sage-deep);animation:slide 1.5s ease-in-out infinite}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(270%)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.finder{display:flex;flex-direction:column;gap:14px}.search{position:relative;display:block}.search>.icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--ink-faint);pointer-events:none}.search input{min-height:54px;padding-left:48px;border-radius:999px;box-shadow:var(--shadow-sm);font-size:16px}.search input::-webkit-search-cancel-button{-webkit-appearance:none}.filters{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fridge-field{grid-column:1 / -1}@media(min-width:600px){.filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1180px){.filters{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr))}.fridge-field{grid-column:auto}}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:clamp(14px,2vw,22px)}.recipe-card{position:relative;display:flex;min-width:0;border-radius:var(--radius-lg);background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:box-shadow .22s ease,transform .22s ease,border-color .22s ease}.recipe-card:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong)}.recipe-card-link{display:flex;flex-direction:column;width:100%;text-decoration:none;color:inherit;border-radius:inherit}.recipe-card-link:focus-visible{outline-offset:3px;border-radius:var(--radius-lg)}.recipe-card .art{border-radius:calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0}.recipe-card-body{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px;flex:1}.recipe-card h3{font-size:1.2rem;line-height:1.22;padding-right:4px}.recipe-card-body>p{color:var(--ink-soft);font-size:.92rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:auto;padding-top:4px;color:var(--ink-faint);font-size:.85rem}.meta-item{display:inline-flex;align-items:center;gap:5px}.recipe-card-match{display:inline-flex;align-items:center;gap:6px;color:var(--sage-deep);font-size:.85rem;font-weight:600}.save-button{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:#fffbf2eb;color:var(--ink-soft);box-shadow:var(--shadow-sm);transition:color .18s ease,transform .18s ease}.save-button:hover,.save-button.is-saved{color:var(--terracotta)}.save-button:active{transform:scale(.92)}.art{position:relative;display:grid;place-items:center;aspect-ratio:4 / 3;overflow:hidden;background:var(--tone-oat);container-type:inline-size}.art.tone-sage{background:var(--tone-sage)}.art.tone-clay{background:var(--tone-clay)}.art.tone-oat{background:var(--tone-oat)}.art.tone-olive{background:var(--tone-olive)}.art.tone-blush{background:var(--tone-blush)}.art:before{content:"";position:absolute;inset:0;opacity:.35;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.35) 0 1px,transparent 1px 7px),repeating-linear-gradient(90deg,rgba(255,255,255,.25) 0 1px,transparent 1px 7px)}.art-photo:before{display:none}.art img{width:100%;height:100%;object-fit:cover}.plate{position:relative;display:grid;place-items:center;width:58%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 50% 50%,#fffdf7 0 56%,#f4ede0 57% 62%,#fffaf0 63% 100%);box-shadow:0 1px #ffffffe6 inset,0 14px 22px -14px #40361c73,0 2px 4px #40361c14}.plate-emoji{font-size:clamp(2.6rem,9vw,3.4rem);font-size:min(22cqi,4rem);line-height:1;filter:drop-shadow(0 4px 4px rgba(64,54,28,.18))}.art-hero .plate{width:52%;max-width:280px}.art-hero .plate-emoji{font-size:clamp(3.4rem,12vw,5.6rem);font-size:min(20cqi,6rem)}.art-status{position:absolute;bottom:12px;left:50%;transform:translate(-50%);padding:6px 12px;border-radius:999px;background:#fffbf2eb;font-size:.82rem;font-weight:600;color:var(--ink-soft);white-space:nowrap;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.create{display:grid;gap:20px;padding:clamp(20px,4vw,36px);border-radius:var(--radius-xl);background:var(--sage-mist);border:1px solid #d5dcc2}.create-intro{display:flex;flex-direction:column;gap:10px}.create-intro h2{font-size:clamp(1.5rem,3.4vw,1.9rem)}.create-intro p{color:var(--ink-soft);max-width:46ch}.create-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--paper);color:var(--olive)}.create-form{display:flex;flex-direction:column;gap:16px;padding:clamp(16px,3vw,24px);border-radius:var(--radius-lg);background:var(--paper);border:1px solid #d9dfc8}.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px}.form-footnote{flex:1 1 240px;font-size:.84rem;color:var(--ink-faint)}@media(min-width:960px){.create{grid-template-columns:300px minmax(0,1fr);align-items:start}}.recipe{display:flex;flex-direction:column;gap:26px}.recipe-hero{display:grid;gap:22px}.recipe-hero-art{position:relative}.recipe-hero-art .art{border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.photo-button{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:#fffbf2f0;color:var(--olive-dark);font-size:.88rem;font-weight:600;box-shadow:var(--shadow-sm)}.photo-button:hover{background:#fff}.recipe-hero-info{display:flex;flex-direction:column;gap:14px;min-width:0}.recipe-hero-info h1{font-size:clamp(2rem,5vw,2.9rem)}.recipe-lede{font-size:1.08rem;color:var(--ink-soft);max-width:58ch}.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:2px 0;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);overflow:hidden}.facts div{padding:10px 12px;border-left:1px solid var(--line)}.facts div:first-child{border-left:0}.facts dt{font-size:.78rem;color:var(--ink-faint);font-weight:600}.facts dd{margin:2px 0 0;font-family:var(--font-display);font-size:1.15rem;font-weight:600;white-space:nowrap}.recipe-actions{display:flex;flex-wrap:wrap;gap:10px}@media(min-width:860px){.recipe-hero{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:36px}.recipe-hero-art .art{aspect-ratio:1 / 1}}.recipe-body{display:grid;gap:22px}.ingredients,.method{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(18px,3vw,28px);display:flex;flex-direction:column;gap:12px}.ingredients h2,.method h2{font-size:1.5rem}.checklist{list-style:none;margin:0;padding:0}.checklist li+li{border-top:1px solid #f0e8d8}.pantry-tag{flex:none;align-self:center;padding:2px 9px;border-radius:999px;background:var(--sage-mist);color:var(--olive-dark);font-size:.74rem;font-weight:600}.method-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.toggle-chip{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:6px 14px;border-radius:999px;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink-soft);font-size:.88rem;font-weight:600}.toggle-chip.is-on{background:var(--sage-mist);border-color:var(--sage);color:var(--olive-dark)}.steps{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.steps li{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;padding:12px 0}.steps li+li{border-top:1px solid #f0e8d8}.steps p{font-size:1.04rem;line-height:1.65;max-width:68ch}.step-number{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--terracotta-soft);color:var(--terracotta);font-family:var(--font-display);font-style:italic;font-size:1.3rem;font-weight:600;line-height:1}.aside-block{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border-radius:var(--radius-md);background:var(--cream);border:1px solid #ece3cf}.aside-block h3{font-size:1.1rem}.aside-block p{color:var(--ink-soft)}.safety{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius-md);background:var(--sage-mist);color:var(--ink-soft);font-size:.9rem}.safety .icon{flex:none;margin-top:2px;color:var(--sage-deep)}@media(min-width:960px){.recipe-body{grid-template-columns:minmax(280px,.8fr) minmax(0,1.5fr);align-items:start}.ingredients{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto}}.is-revealed .recipe-hero-art{animation:reveal-art .7s cubic-bezier(.2,.75,.25,1) both}.is-revealed .recipe-hero-info{animation:reveal-info .7s .12s cubic-bezier(.2,.75,.25,1) both}@keyframes reveal-art{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes reveal-info{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.scan-steps{list-style:none;margin:0;padding:0;display:grid;gap:18px}.scan-step{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(18px,3vw,26px);display:flex;flex-direction:column;gap:14px;min-width:0}.scan-step h2{display:flex;align-items:center;gap:12px;font-size:1.35rem}.photo-picker{display:grid;gap:14px}.photo-preview,.photo-placeholder{width:100%;max-height:340px;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--line)}.photo-placeholder{display:grid;place-items:center;background:var(--cream);color:var(--sage);border-style:dashed;border-width:1.5px;border-color:var(--line-strong)}.photo-picker-actions{display:flex;flex-wrap:wrap;gap:10px}@media(min-width:760px){.photo-picker{grid-template-columns:300px minmax(0,1fr);align-items:center}.photo-picker-actions{flex-direction:column;align-items:flex-start}.photo-picker .field-hint{grid-column:1 / -1}}@media(min-width:1100px){.scan-steps{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.scan-steps>li:first-child{grid-row:span 2}}.suggestions{display:flex;flex-direction:column;gap:8px}.suggestion-list{display:flex;flex-wrap:wrap;gap:8px}.suggestion{display:inline-flex;align-items:center;gap:4px;min-height:38px;padding:6px 14px;border-radius:999px;border:1px dashed var(--line-strong);background:transparent;color:var(--ink-soft);font-size:.92rem}.suggestion:hover{border-style:solid;border-color:var(--sage);color:var(--olive-dark);background:var(--sage-mist)}.week{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.day{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:var(--radius-lg);background:var(--paper);border:1px solid var(--line);min-width:0}.day.is-today{border-color:#dfb59f;box-shadow:0 0 0 3px #b4532f14}.day-name{display:flex;align-items:center;gap:8px}.day-name strong{font-family:var(--font-display);font-size:1.2rem;font-weight:600}.today-tag{padding:2px 9px;border-radius:999px;background:var(--terracotta-soft);color:#8a3a1f;font-size:.75rem;font-weight:700}.day-meal{display:flex;align-items:center;gap:8px;min-width:0}.day-recipe{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:8px;margin:-8px 0 -8px -8px;border-radius:var(--radius-md);text-decoration:none}.day-recipe:hover{background:var(--cream)}.day-recipe strong{display:block;font-weight:600;line-height:1.3;overflow-wrap:anywhere}.day-recipe small{color:var(--ink-faint)}.day-emoji{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:50%;background:var(--cream);border:1px solid var(--line);font-size:1.4rem}.day-select select{color:var(--ink-faint);background:var(--cream);border-style:dashed}.shopping-list{list-style:none;margin:0;padding:0}.shopping-list li{display:flex;align-items:center;gap:4px}.shopping-list li+li{border-top:1px solid #f0e8d8}.shopping-list .check-row{flex:1;min-width:0}.shopping-list .icon-button{color:var(--ink-faint)}.export-panel{gap:14px}.export-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}@media(min-width:860px){.export-panel{flex-direction:row;align-items:center;justify-content:space-between}.export-actions{justify-content:flex-end}}.settings-page{max-width:880px}.settings-section h2{font-size:1.35rem}.status-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.status-list li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f0e8d8}.status-list li:last-child{border-bottom:0}.status-dot{width:10px;height:10px;border-radius:50%;background:var(--line-strong);flex:none}.status-dot.is-on{background:var(--sage-deep)}.status-dot.is-off{background:#d9a38c}.status-word{margin-left:auto;color:var(--ink-faint);font-size:.88rem;font-weight:600}.access-code{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}.access-code .field{flex:1 1 240px}.access-code .button{margin-top:27px}.settings-section>.button-small{align-self:flex-start}.install-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.install-card{padding:16px;border-radius:var(--radius-md);background:var(--cream);border:1px solid #ece3cf}.install-card.is-current{border-color:var(--sage);background:var(--sage-mist)}.install-card h3{display:flex;align-items:center;gap:8px;font-size:1.05rem;margin-bottom:8px}.install-card ol{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:4px;color:var(--ink-soft);font-size:.93rem}.about{text-align:center;color:var(--ink-faint);font-size:.85rem}.sheet{width:100%;max-width:100%;max-height:min(86vh,720px);margin:auto 0 0;padding:0;border:0;border-radius:24px 24px 0 0;background:var(--paper);color:var(--ink);box-shadow:var(--shadow-lg)}.sheet[open]{animation:sheet-up .28s cubic-bezier(.2,.8,.25,1)}.sheet::backdrop{background:#2b30225c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet-body{display:flex;flex-direction:column;gap:14px;padding:10px 20px calc(20px + var(--safe-bottom))}.sheet-body:before{content:"";align-self:center;width:40px;height:4px;border-radius:99px;background:var(--line-strong)}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet-head h2{font-size:1.35rem}.sheet-intro{color:var(--ink-soft)}@keyframes sheet-up{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}@media(min-width:640px){.sheet{max-width:520px;margin:auto;border-radius:24px}.sheet-body{padding:20px 24px 24px}.sheet-body:before{display:none}}.more-list{display:flex;flex-direction:column}.more-item{display:flex;align-items:center;gap:14px;min-height:54px;padding:10px 8px;border:0;border-radius:var(--radius-md);background:none;color:var(--ink);font-size:1.02rem;font-weight:500;text-align:left}.more-item+.more-item{border-top:1px solid #f0e8d8;border-radius:0}.more-item:hover{background:var(--cream)}.more-item .icon:first-child{color:var(--sage-deep)}.more-item.is-active{color:var(--olive-dark);font-weight:650}.more-chevron{margin-left:auto;color:var(--ink-faint)}.day-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.day-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:64px;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--cream);text-align:left}.day-option strong{font-weight:650}.day-option span{font-size:.82rem;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.day-option:hover{border-color:var(--sage);background:var(--sage-mist)}.day-option.is-selected{border-color:var(--sage-deep);background:var(--sage-mist)}.toasts{position:fixed;z-index:60;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 14px);width:min(560px,calc(100% - 24px));display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:10px 8px 10px 16px;pointer-events:auto;border-radius:16px;background:var(--ink);color:#f6f0e1;box-shadow:var(--shadow-lg);font-size:.93rem;animation:toast-in .25s ease-out}.toast>span{flex:1}.toast-action{flex:none;min-height:36px;padding:6px 12px;border:0;border-radius:999px;background:#f6f0e124;color:#fff;font-weight:650}.toast-action:hover{background:#f6f0e13d}.toast-close{flex:none;display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:none;color:#f6f0e1b3}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.install-hint{position:fixed;z-index:50;left:max(12px,var(--safe-left));right:max(12px,var(--safe-right));bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px);display:flex;align-items:center;gap:12px;padding:12px 8px 12px 16px;border-radius:18px;background:var(--paper);border:1px solid var(--line-strong);box-shadow:var(--shadow-lg);color:var(--ink-soft);font-size:.92rem}.install-hint>.icon{flex:none;color:var(--sage-deep)}.install-hint p{flex:1}@media(min-width:1024px){.toasts{bottom:24px}.install-hint{left:auto;right:24px;bottom:24px;max-width:420px}}html.has-install-hint main{padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 120px)}@media(min-width:1024px){html.has-install-hint main{padding-bottom:40px}}@media(max-width:380px){:root{--gutter: 14px}.hero-actions .button{flex:1 1 100%}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.facts div:nth-child(3){border-left:0}.facts div:nth-child(n+3){border-top:1px solid var(--line)}.add-row{flex-wrap:wrap}.add-row .button{flex:1 1 100%}}@media(max-height:500px)and (orientation:landscape){:root{--tabbar-h: 52px;--topbar-h: 50px}.tab{min-height:42px;flex-direction:row;gap:6px}.tab-icon{width:34px;height:26px}.sheet{max-height:92vh}.recipe-hero{grid-template-columns:minmax(180px,34%) minmax(0,1fr);align-items:start;gap:22px}.recipe-hero-art .art{aspect-ratio:1 / 1}.photo-button{left:8px;right:8px;bottom:8px;justify-content:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.progress span{animation:none;width:100%;opacity:.5}.spinner{animation:spin 1.6s linear infinite!important;animation-duration:1.6s!important;animation-iteration-count:infinite!important}}@media print{.sidebar,.topbar,.bottom-nav,.toasts,.install-hint,.recipe-actions,.back-link,.photo-button,.danger-zone,.toggle-chip,.site-footer,.offline-bar{display:none!important}main{padding:0;max-width:none}body,.panel,.ingredients,.method{background:#fff;box-shadow:none}}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes card-in{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}@keyframes float{0%,to{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-14px) rotate(6deg)}}@keyframes drift{0%{transform:translate(0) scale(1)}to{transform:translate(-40px,30px) scale(1.15)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes steam{0%{opacity:0;transform:translateY(6px) scaleY(.6) rotate(0)}30%{opacity:.9}to{opacity:0;transform:translateY(-18px) translate(4px) scaleY(1.2) rotate(8deg)}}@keyframes simmer{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes bubble{0%{opacity:0;transform:translateY(0) scale(.5)}30%{opacity:.85}to{opacity:0;transform:translateY(-14px) scale(1)}}@keyframes heart-pop{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes tick-pop{0%{transform:scale(.8)}to{transform:scale(1)}}@keyframes plate-in{0%{opacity:0;transform:rotate(-90deg) scale(.6)}to{opacity:1;transform:none}}@keyframes scan{0%{top:-30%}to{top:100%}}@keyframes tab-pill{0%{transform:scale(.8)}to{transform:scale(1)}}main>.page{animation:rise-in .45s cubic-bezier(.2,.75,.25,1) backwards}.hero{isolation:isolate}.hero:before,.hero:after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}.hero:before{width:440px;height:440px;right:-140px;top:-180px;background:radial-gradient(circle,rgba(157,176,138,.3),transparent 65%);animation:drift 14s ease-in-out infinite alternate}.hero:after{width:300px;height:300px;left:-120px;bottom:-160px;background:radial-gradient(circle,rgba(180,83,47,.12),transparent 65%);animation:drift 18s ease-in-out infinite alternate-reverse}.discover .hero-main>*{animation:rise-in .6s cubic-bezier(.2,.75,.25,1) backwards}.discover .hero-main>:nth-child(1){animation-delay:.05s}.discover .hero-main>:nth-child(2){animation-delay:.12s}.discover .hero-main>:nth-child(3){animation-delay:.2s}.discover .hero-main>:nth-child(4){animation-delay:.28s}.discover .hero-main>:nth-child(5){animation-delay:.34s}.discover .hero-main>:nth-child(n+6){animation-delay:.4s}.discover .tonight{animation:rise-in .6s .38s cubic-bezier(.2,.75,.25,1) backwards}.hero-garnish{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.hero-garnish span{position:absolute;font-size:30px;line-height:1;opacity:.16;animation:float 9s ease-in-out infinite}.hero-garnish span:nth-child(1){top:9%;left:56%;animation-delay:-1s}.hero-garnish span:nth-child(2){bottom:12%;left:44%;font-size:26px;animation-duration:11s;animation-delay:-4s}.hero-garnish span:nth-child(3){top:44%;left:66%;font-size:34px;animation-duration:10s;animation-delay:-6s}.hero-garnish span:nth-child(4){bottom:8%;right:30%;font-size:24px;animation-duration:12s;animation-delay:-2s}.hero-garnish span:nth-child(5){top:6%;right:26%;font-size:22px;animation-duration:8s;animation-delay:-3s}@media(max-width:859px){.hero-garnish span{opacity:.12}.hero-garnish span:nth-child(1){top:4%;left:auto;right:8%}.hero-garnish span:nth-child(2){bottom:4%;left:auto;right:6%}.hero-garnish span:nth-child(n+3){display:none}}.button-primary{position:relative;overflow:hidden;isolation:isolate}.button-primary:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.26) 50%,transparent 70%);transform:translate(-120%)}.button-surprise .icon{transition:transform .5s cubic-bezier(.3,1.4,.5,1)}@media(hover:hover){.button-primary:after{transition:transform .75s ease}.button-primary:hover:not(:disabled):after{transform:translate(120%)}.button-surprise:hover:not(:disabled) .icon{transform:rotate(180deg)}.button:hover:not(:disabled){transform:translateY(-1px)}}.recipe-grid>.recipe-card{animation:card-in .55s cubic-bezier(.2,.75,.25,1) backwards;animation-delay:calc(var(--i, 0) * 45ms)}.recipe-card:active{transform:scale(.985)}.plate{transition:transform .55s cubic-bezier(.3,1.3,.5,1)}.plate-emoji{display:inline-block;transition:transform .45s cubic-bezier(.3,1.4,.5,1)}.art img{transition:transform .6s ease}@media(hover:hover){.recipe-card:hover{transform:translateY(-4px)}.recipe-card:hover .plate{transform:rotate(-10deg) scale(1.04)}.recipe-card:hover .plate-emoji{transform:translateY(-4px) scale(1.1) rotate(10deg)}.recipe-card:hover .art-photo img{transform:scale(1.05)}}.save-button.is-saved .icon,.button-secondary.is-saved .icon{animation:heart-pop .45s cubic-bezier(.3,1.6,.5,1)}.fx-layer{position:fixed;inset:0;z-index:120;pointer-events:none;overflow:hidden}.fx-particle{position:absolute;line-height:1;will-change:transform,opacity;-webkit-user-select:none;user-select:none}.steam{position:absolute;left:50%;bottom:100%;width:30px;height:34px;transform:translate(-50%);pointer-events:none}.steam i{position:absolute;bottom:0;width:6px;height:22px;border-radius:6px;opacity:0;background:linear-gradient(to top,#8ea27e00,#8ea27e99,#8ea27e00);filter:blur(1.5px);animation:steam 2.6s ease-in-out infinite}.steam i:nth-child(1){left:4px}.steam i:nth-child(2){left:12px;height:26px;animation-delay:.85s}.steam i:nth-child(3){left:20px;animation-delay:1.7s}.tonight-emoji{position:relative;animation:bob 4s ease-in-out infinite}.steam-plate{bottom:78%}.cooking-loader{position:relative;display:inline-grid;place-items:center;flex:none;color:var(--sage-deep);--leaf: var(--leaf)}.cooking-pot{animation:simmer 1.6s ease-in-out infinite;transform-origin:50% 90%}.steam-loader{bottom:70%}.bubbles{position:absolute;left:30%;width:40%;top:58%;height:26%}.bubbles i{position:absolute;bottom:0;width:6px;height:6px;border-radius:50%;border:1.5px solid currentColor;opacity:0;animation:bubble 1.8s ease-in infinite}.bubbles i:nth-child(1){left:8%}.bubbles i:nth-child(2){left:45%;animation-delay:.6s}.bubbles i:nth-child(3){left:80%;animation-delay:1.2s}.surprise-card{animation:rise-in .4s cubic-bezier(.2,.75,.25,1) backwards}.recipe-hero-art{animation:rise-in .55s cubic-bezier(.2,.75,.25,1) backwards}.art-hero .plate{animation:plate-in .9s .1s cubic-bezier(.2,.8,.2,1) backwards}.recipe-hero-info{animation:rise-in .55s .1s cubic-bezier(.2,.75,.25,1) backwards}.checklist li,.steps li{animation:rise-in .5s cubic-bezier(.2,.75,.25,1) backwards;animation-delay:calc(.2s + var(--i, 0) * 45ms)}.step-number{transition:transform .3s cubic-bezier(.3,1.5,.5,1)}@media(hover:hover){.steps li:hover .step-number{transform:scale(1.12) rotate(-6deg)}}.check-box .icon path{stroke-dasharray:22;stroke-dashoffset:22;transition:stroke-dashoffset .3s ease .05s}.check-row input:checked+.check-box .icon path{stroke-dashoffset:0}.check-row input:checked+.check-box{animation:tick-pop .3s cubic-bezier(.3,1.6,.5,1)}.check-text{transition:color .25s ease}.photo-frame{position:relative;width:100%;overflow:hidden;border-radius:var(--radius-md)}.photo-frame .photo-preview{display:block}.scan-line{position:absolute;left:0;right:0;top:-30%;height:30%;pointer-events:none;background:linear-gradient(to bottom,#9db08a00,#9db08a80 85%,#ffffffe6);animation:scan 1.8s ease-in-out infinite}.token{animation:pop-in .4s cubic-bezier(.3,1.5,.5,1) backwards;animation-delay:calc(var(--i, 0) * 50ms)}.week .day{animation:rise-in .5s cubic-bezier(.2,.75,.25,1) backwards}.week .day:nth-child(2){animation-delay:.04s}.week .day:nth-child(3){animation-delay:.08s}.week .day:nth-child(4){animation-delay:.12s}.week .day:nth-child(5){animation-delay:.16s}.week .day:nth-child(6){animation-delay:.2s}.week .day:nth-child(7){animation-delay:.24s}.tab.is-active .tab-icon{animation:tab-pill .35s cubic-bezier(.3,1.4,.5,1)}.tab:active .tab-icon{transform:scale(.9)}.tab-badge,.nav-count{animation:pop-in .35s cubic-bezier(.3,1.6,.5,1)}.empty-icon{animation:bob 4s ease-in-out infinite}.reveal{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.75,.25,1)}.reveal:not(.is-visible){opacity:0;transform:translateY(24px)}:root{--tabbar-h: 80px;--glass-tint: rgba(255, 252, 244, .6)}.glass{position:relative;isolation:isolate;background:linear-gradient(180deg,#ffffff80,#ffffff29 46%,#ffffff47),var(--glass-tint);-webkit-backdrop-filter:blur(22px) saturate(1.9) brightness(1.05);backdrop-filter:blur(22px) saturate(1.9) brightness(1.05);border:0;box-shadow:inset 0 1px .5px #fffffff2,inset 0 -1px 1px #ffffff59,inset 0 0 14px #ffffff40,0 12px 32px -12px #2b302261,0 3px 8px #2b302214}.glass:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(140% 70% at 50% -18%,#ffffffbf,#fff0 55%),radial-gradient(60% 50% at 8% 120%,rgba(157,176,138,.18),transparent 70%),radial-gradient(60% 50% at 92% 120%,rgba(180,83,47,.1),transparent 70%)}.glass:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;background:linear-gradient(150deg,#fffffff2,#ffffff26 35%,#ffffff0d 60%,#ffffffb3);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}.bottom-nav{display:flex;align-items:center;gap:10px;left:max(12px,var(--safe-left));right:max(12px,var(--safe-right));bottom:max(10px,calc(var(--safe-bottom) - 8px));padding:0;background:none;border:0;grid-template-columns:none;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none}.bottom-nav>*{pointer-events:auto}.glass-pill{flex:1;min-width:0;display:flex;padding:6px;border-radius:999px;transition:transform .45s cubic-bezier(.3,1.2,.5,1),padding .35s ease;transform-origin:50% 100%}.glass-pill .tab{position:relative;z-index:1;flex:1;min-width:0;min-height:54px;border-radius:999px;color:var(--ink-soft);transition:color .3s ease,min-height .35s ease}.glass-pill .tab.is-active{color:var(--olive-dark)}.glass-pill .tab .tab-icon,.glass-pill .tab.is-active .tab-icon{background:transparent;animation:none;width:40px;height:28px;transition:transform .35s cubic-bezier(.3,1.5,.5,1)}.glass-pill .tab.is-active .tab-icon{transform:scale(1.12)}.glass-pill .tab:active .tab-icon{transform:scale(.88)}.tab-label{transition:opacity .25s ease,max-height .35s ease,transform .35s ease;max-height:18px;overflow:hidden}.glass-lens{position:absolute;z-index:0;top:6px;bottom:6px;left:6px;width:calc((100% - 12px) / var(--tabs));transform:translate(calc(var(--index) * 100%));transition:transform .6s cubic-bezier(.3,1.35,.45,1);pointer-events:none}.glass-lens-blob{position:absolute;inset:0 3px;border-radius:999px;background:linear-gradient(180deg,#ffffffc7,#ffffff6b);box-shadow:inset 0 1px 1px #fff,inset 0 -3px 8px #64794f29,inset 0 0 0 .5px #ffffffb3,0 6px 14px -6px #2b302259;animation:lens-squish .6s cubic-bezier(.3,1.2,.5,1)}@keyframes lens-squish{0%{transform:scale(1.18,.82)}45%{transform:scale(.94,1.06)}75%{transform:scale(1.03,.98)}to{transform:scale(1)}}.glass-orb{flex:none;display:grid;place-items:center;width:66px;height:66px;border-radius:50%;color:var(--ink-soft);transition:transform .4s cubic-bezier(.3,1.4,.5,1),width .35s ease,height .35s ease,color .3s ease}.glass-orb.is-active{color:var(--olive-dark)}.glass-orb:active{transform:scale(.9)}.bottom-nav.is-compact .glass-pill{padding:4px;transform:scale(.94)}.bottom-nav.is-compact .glass-pill .tab{min-height:42px}.bottom-nav.is-compact .tab-label{opacity:0;max-height:0;transform:translateY(4px)}.bottom-nav.is-compact .glass-lens{top:4px;bottom:4px;left:4px;width:calc((100% - 8px) / var(--tabs))}.bottom-nav.is-compact .glass-orb{width:50px;height:50px}.tab-badge{border-color:#fffcf4f2}.topbar{background:linear-gradient(180deg,#fffdf7b8,#f6f0e18c);-webkit-backdrop-filter:blur(18px) saturate(1.8);backdrop-filter:blur(18px) saturate(1.8);border-bottom:1px solid rgba(255,255,255,.6);box-shadow:0 1px #d4c8ad73,0 8px 24px -18px #2b302259}@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){.glass{background:#fffbf2f5}}@media(max-height:500px)and (orientation:landscape){:root{--tabbar-h: 62px}.glass-pill .tab{min-height:40px;flex-direction:row}.glass-orb{width:50px;height:50px}}@media(min-width:640px)and (max-width:1023px){.bottom-nav{left:50%;right:auto;width:min(560px,calc(100% - 32px));transform:translate(-50%)}}@media(min-width:1024px){.bottom-nav{display:none}}@supports (view-transition-name: none){main>.page{animation:none}.glass-pill{view-transition-name:tabbar}.glass-orb{view-transition-name:taborb}.topbar{view-transition-name:topbar}.sidebar{view-transition-name:sidebar}::view-transition-group(*){animation-duration:.45s;animation-timing-function:cubic-bezier(.25,.8,.25,1)}::view-transition-old(root){animation:vt-out .28s ease both}::view-transition-new(root){animation:vt-in .42s cubic-bezier(.2,.75,.25,1) both}html.vt-back::view-transition-old(root){animation-name:vt-out-back}html.vt-back::view-transition-new(root){animation-name:vt-in-back}::view-transition-old(tabbar),::view-transition-old(taborb),::view-transition-old(topbar),::view-transition-old(sidebar){display:none}::view-transition-new(tabbar),::view-transition-new(taborb),::view-transition-new(topbar),::view-transition-new(sidebar){animation:none}::view-transition-group(tabbar),::view-transition-group(taborb),::view-transition-group(topbar),::view-transition-group(sidebar){animation:none}html.vt-running .glass{background:#fffbf2f0;-webkit-backdrop-filter:none;backdrop-filter:none}html.vt-running .topbar{background:#faf6ecf7}}@keyframes vt-out{to{opacity:0;transform:translate(-24px) scale(.99)}}@keyframes vt-in{0%{opacity:0;transform:translate(32px)}}@keyframes vt-out-back{to{opacity:0;transform:translate(24px) scale(.99)}}@keyframes vt-in-back{0%{opacity:0;transform:translate(-32px)}}.brand .logo-lines path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw-line 1s cubic-bezier(.6,0,.3,1) .2s forwards}.brand .logo-lines path:nth-child(2){animation-delay:.3s}.brand .logo-lines path:nth-child(3){animation-delay:.38s}.brand .logo-lines path:nth-child(4){animation-delay:.5s}.brand .logo-lines path:nth-child(5){animation-delay:.58s}.brand .logo-leaf{transform-box:fill-box;transform-origin:0% 100%;animation:leaf-grow .6s .9s cubic-bezier(.3,1.6,.5,1) backwards}@media(hover:hover){.brand:hover .logo-leaf{animation:leaf-wiggle .8s ease-in-out}}@keyframes draw-line{to{stroke-dashoffset:0}}@keyframes leaf-grow{0%{transform:scale(0) rotate(-35deg)}}@keyframes leaf-wiggle{0%,to{transform:rotate(0)}30%{transform:rotate(-14deg)}65%{transform:rotate(8deg)}}.kinetic span{display:inline-block;animation:word-in .75s cubic-bezier(.2,.75,.25,1) backwards;animation-delay:calc(.1s + var(--w, 0) * .09s)}@keyframes word-in{0%{opacity:0;transform:translateY(.45em) rotate(3deg);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}.discover .hero-main>.kinetic{animation:none}.recipe-grid>.recipe-card{animation:none}.recipe-grid.reveal-ready>.recipe-card:not(.in-view):not(.skeleton){opacity:0;transform:translateY(28px) scale(.97)}.recipe-grid>.recipe-card.in-view{animation:card-in .6s cubic-bezier(.2,.75,.25,1) backwards;animation-delay:calc(var(--d, 0) * 60ms)}@media(hover:hover){.recipe-card{transform-style:preserve-3d}.recipe-card:hover{transform:perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(-4px);transition:transform .12s ease-out,box-shadow .25s ease}.recipe-card:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s ease;background:radial-gradient(240px circle at var(--gx, 50%) var(--gy, 30%),rgba(255,255,255,.35),transparent 60%)}.recipe-card:hover:after{opacity:1}}.recipe-card.skeleton{display:flex;flex-direction:column;pointer-events:none;animation:card-in .4s backwards}.skeleton-art{aspect-ratio:4 / 3;border-radius:calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0}.skeleton-line{display:block;height:12px;border-radius:6px}.skeleton-title{height:18px;width:70%}.skeleton-short{width:45%}.skeleton-art,.skeleton-line{background:linear-gradient(100deg,var(--oat) 30%,#faf5ea 50%,var(--oat) 70%);background-size:300% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.has-ripple:not(.tab){overflow:hidden}.glass-pill{overflow:hidden}.ripple{position:absolute;z-index:0;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.55) 0%,rgba(255,255,255,.25) 40%,transparent 70%);transform:scale(0);animation:ripple .65s cubic-bezier(.2,.7,.3,1) forwards}.button-secondary .ripple,.button-ghost .ripple,.icon-button .ripple,.more-item .ripple,.day-option .ripple,.suggestion .ripple,.toggle-chip .ripple,.tab .ripple,.glass-orb .ripple{background:radial-gradient(circle,rgba(100,121,79,.22) 0%,rgba(100,121,79,.1) 40%,transparent 70%)}@keyframes ripple{to{transform:scale(1);opacity:0}}.switch:after{transition:transform .4s cubic-bezier(.3,1.4,.5,1),width .2s ease}.switch-row:active .switch:after{width:28px}.switch-row input:checked+.switch:after{transform:translate(18px)}.switch-row:active input:checked+.switch:after{transform:translate(12px)}.create{background:linear-gradient(120deg,#e5ead7,#f1ead9,#f3e3d6,#e3e9d3,#e5ead7);background-size:300% 300%;animation:gradient-flow 18s ease-in-out infinite}@keyframes gradient-flow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.button-surprise[aria-busy=true]:after{transform:none;animation:busy-sheen 1.3s linear infinite}@keyframes busy-sheen{0%{transform:translate(-120%)}to{transform:translate(120%)}}@media(prefers-reduced-motion:reduce){.recipe-grid.reveal-ready>.recipe-card:not(.in-view):not(.skeleton){opacity:1;transform:none}.brand .logo-lines path{stroke-dashoffset:0}.kinetic span{filter:none}}.browse{display:flex;flex-direction:column;gap:12px}.browse-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.browse-head h2{font-size:clamp(1.45rem,3.4vw,1.75rem)}.view-toggle{display:inline-flex;padding:3px;border-radius:999px;background:var(--oat);border:1px solid var(--line)}.view-toggle button{display:grid;place-items:center;width:40px;height:34px;border:0;border-radius:999px;background:transparent;color:var(--ink-faint);transition:background-color .2s ease,color .2s ease,box-shadow .2s ease}.view-toggle button.is-on{background:var(--paper);color:var(--olive-dark);box-shadow:var(--shadow-sm)}.browse-bar{position:sticky;top:calc(var(--topbar-h) + var(--safe-top) + 8px);z-index:20;display:flex;gap:8px;padding:6px;margin:0 -6px;border-radius:999px}.browse-bar{background:#f6f0e1d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.browse-bar .search{flex:1;min-width:0}.browse-bar .search input{min-height:50px;padding-right:44px}.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:var(--oat);color:var(--ink-soft)}.filter-button{position:relative;flex:none;display:inline-flex;align-items:center;gap:8px;min-height:50px;padding:0 18px;border-radius:999px;border:1px solid var(--line-strong);background:var(--paper);color:var(--olive-dark);font-weight:650;box-shadow:var(--shadow-sm)}.filter-button.has-count{border-color:var(--sage-deep);background:var(--sage-mist)}.filter-count{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--olive);color:var(--paper);font-size:.78rem;font-weight:700;animation:pop-in .35s cubic-bezier(.3,1.6,.5,1)}@media(max-width:420px){.filter-button{padding:0 14px}.filter-button-label{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.filter-count{position:absolute;top:-4px;right:-4px}}@media(min-width:1024px){.browse-bar{top:8px}}.chip-scroller{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;scroll-padding-inline:var(--gutter);margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter) 6px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - var(--gutter)),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - var(--gutter)),transparent 100%)}.chip-scroller::-webkit-scrollbar{display:none}.quick-chip{flex:none;scroll-snap-align:start;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);font-size:.93rem;font-weight:600;white-space:nowrap;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}.quick-chip:hover{border-color:var(--sage);color:var(--olive-dark)}.quick-chip.is-on{background:var(--olive);border-color:var(--olive);color:var(--paper);box-shadow:0 6px 14px -8px #3b472399}.quick-chip:active{transform:scale(.96)}@media(min-width:1024px){.chip-scroller{flex-wrap:wrap;overflow:visible;margin:0;padding:2px 0;-webkit-mask-image:none;mask-image:none}}.results-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.results-count{color:var(--ink-soft);font-size:.93rem}.results-count strong{color:var(--ink);font-weight:700}.active-filters{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.active-chip{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:4px 10px 4px 12px;border-radius:999px;border:0;background:var(--sage-mist);color:var(--olive-dark);font-size:.85rem;font-weight:600;animation:pop-in .3s cubic-bezier(.3,1.5,.5,1)}.active-chip:hover{background:#d8dfc6}.sort-select{position:relative;margin-left:auto;display:inline-flex;align-items:center;color:var(--ink-soft)}.sort-select .icon{position:absolute;left:10px;pointer-events:none}.sort-select select{-webkit-appearance:none;appearance:none;min-height:36px;padding:6px 12px 6px 32px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--ink-soft);font-size:.9rem;font-weight:600;cursor:pointer}.sort-select select:hover,.sort-select select:focus{background:var(--paper);border-color:var(--line);outline:none}.filter-sheet{display:flex;flex-direction:column;gap:16px}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}.segmented button{min-height:42px;padding:8px 4px;white-space:nowrap;border-radius:12px;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink-soft);font-weight:600;font-size:.92rem;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.segmented button.is-on{background:var(--olive);border-color:var(--olive);color:var(--paper)}.filter-sheet-actions{position:sticky;bottom:0;display:flex;gap:10px;padding-top:6px;background:var(--paper)}.filter-sheet-actions .button-primary{flex:1}.sheet{overflow-y:auto}.recipe-card-art{position:relative}.art-badge{position:absolute;display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:999px;font-size:.76rem;font-weight:700;line-height:1.2;color:var(--ink);background:#fffbf2d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 1px #ffffffe6,0 2px 6px #2b30221f}.art-badge-time{left:10px;bottom:10px}.art-badge-ai{left:10px;top:10px;color:#8a3a1f;background:#f3ddcfe6}.meta-dot{width:3px;height:3px;border-radius:50%;background:var(--line-strong)}.meta-time-inline{display:none}.recipe-card-match{color:var(--sage-deep)}@media(max-width:639px){.recipe-grid:not(.is-list){grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.recipe-grid:not(.is-list) .recipe-card-body{padding:10px 12px 12px;gap:4px}.recipe-grid:not(.is-list) .recipe-card h3{font-size:1.02rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-grid:not(.is-list) .recipe-card-desc{display:none}.recipe-grid:not(.is-list) .recipe-card-meta{font-size:.78rem;gap:4px 8px;padding-top:2px}.recipe-grid:not(.is-list) .recipe-card-meta .meta-dot,.recipe-grid:not(.is-list) .recipe-card-meta .meta-dot+.meta-item{display:none}.recipe-grid:not(.is-list) .recipe-card-match{font-size:.76rem}.recipe-grid:not(.is-list) .save-button{top:6px;right:6px;width:38px;height:38px}.recipe-grid:not(.is-list) .save-button .icon{width:17px;height:17px}.recipe-grid:not(.is-list) .art-badge{font-size:.7rem;padding:3px 7px}.recipe-grid:not(.is-list) .art-badge-time{left:6px;bottom:6px}.recipe-grid:not(.is-list) .art-badge-ai{left:6px;top:6px}.recipe-grid:not(.is-list) .plate-emoji{font-size:min(24cqi,2.6rem)}}.recipe-grid.is-list{grid-template-columns:1fr;gap:10px}@media(min-width:900px){.recipe-grid.is-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.recipe-grid.is-list .recipe-card-link{flex-direction:row;align-items:stretch}.recipe-grid.is-list .recipe-card-art{flex:none;width:112px}.recipe-grid.is-list .recipe-card-art .art{height:100%;aspect-ratio:auto;min-height:104px;border-radius:calc(var(--radius-lg) - 1px) 0 0 calc(var(--radius-lg) - 1px)}.recipe-grid.is-list .plate{width:74%}.recipe-grid.is-list .plate-emoji{font-size:2rem}.recipe-grid.is-list .art-badge{display:none}.recipe-grid.is-list .recipe-card-body{padding:12px 56px 12px 14px;gap:4px;justify-content:center}.recipe-grid.is-list .recipe-card h3{font-size:1.08rem}.recipe-grid.is-list .recipe-card-desc{-webkit-line-clamp:1;font-size:.86rem}.recipe-grid.is-list .recipe-card-meta{margin-top:2px;padding-top:0;font-size:.8rem}.recipe-grid.is-list .meta-time-inline{display:inline-flex;order:-1;color:var(--ink-soft);font-weight:600}.recipe-grid.is-list .save-button{top:50%;right:8px;transform:translateY(-50%);box-shadow:none;background:transparent}.recipe-grid.is-list .save-button:active{transform:translateY(-50%) scale(.92)}.recipe-grid.is-list .recipe-card:hover{transform:translateY(-2px)}.recipe-grid.is-list .skeleton{flex-direction:row}.recipe-grid.is-list .skeleton-art{width:112px;aspect-ratio:auto;border-radius:calc(var(--radius-lg) - 1px) 0 0 calc(var(--radius-lg) - 1px)}.jump{display:flex;flex-direction:column;gap:10px}.jump .section-head h2{font-size:1.2rem}.jump-strip{list-style:none;display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter) 6px}.jump-strip::-webkit-scrollbar{display:none}.jump-strip li{flex:none;scroll-snap-align:start}.jump-card{display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;width:210px;padding:10px 12px 10px 10px;border-radius:var(--radius-md);background:var(--paper);border:1px solid var(--line);text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .25s ease,box-shadow .25s ease}.jump-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.jump-plate{grid-row:span 2;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;overflow:hidden;background:radial-gradient(circle,#fffdf7 0 60%,#f1e9d8 61% 100%);font-size:1.6rem;box-shadow:0 4px 10px -6px #40361c80}.jump-plate img{width:100%;height:100%;object-fit:cover}.jump-name{font-weight:650;font-size:.92rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jump-meta{color:var(--ink-faint);font-size:.8rem}@media(max-width:639px){.hero-lede{display:none}.hero h1{font-size:1.9rem}.hero-main{gap:10px}.discover{gap:18px}}.cook-cta{width:100%;justify-content:center}.recipe-actions .button-square{width:46px;padding:0;justify-content:center;flex:none}@media(min-width:481px){.cook-cta{width:auto;align-self:flex-start;padding-inline:28px}}@media(max-width:480px){.recipe-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 46px 46px;gap:8px}.recipe-actions .button:not(.action-save):not(.button-square) .icon{display:none}.recipe-actions .action-save{width:46px;padding:0!important;justify-content:center}.recipe-actions .action-save .action-label{display:none}.recipe-actions .button{min-width:0;padding-left:8px;padding-right:8px;gap:5px;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-actions .button .icon{flex:none}.recipe-actions .button-square{width:46px}}.facts dd:has(.stepper){margin-top:0}.stepper{display:inline-flex;align-items:center;gap:2px;margin-left:-6px}.stepper button{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:0;background:transparent;color:var(--olive)}.stepper button:hover:not(:disabled){background:var(--sage-mist)}.stepper button:disabled{color:var(--line-strong)}.stepper output{min-width:1.4em;text-align:center;font-variant-numeric:tabular-nums}.scaled-note{margin-top:-4px;font-size:.86rem;color:var(--sage-deep)}.link-button{border:0;background:none;padding:0;font:inherit;cursor:pointer}@media(max-width:520px){.facts div{padding:9px 8px 9px 11px}.facts dd{font-size:1.02rem}.facts-serves{padding-right:4px!important}.stepper{margin-left:-5px;gap:0}.stepper button{width:26px;height:26px}}@media(max-width:859px){.recipe-hero-art .art{aspect-ratio:16 / 10}.recipe-hero{gap:18px}.recipe-hero-info{gap:12px}}.toggle-chip-strong{background:var(--olive);border-color:var(--olive);color:var(--paper)}.toggle-chip-strong:hover{background:var(--olive-dark)}.recipe-tabs{display:none}@media(max-width:959px){.recipe-tabs{position:sticky;top:calc(var(--topbar-h) + var(--safe-top) + 8px);z-index:20;display:grid;grid-template-columns:1fr 1fr;padding:4px;margin-bottom:-10px;border-radius:999px;background:#efe6d2d1;border:1px solid var(--line);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 8px 22px -14px #40361c66}.recipe-tabs button{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;border:0;border-radius:999px;background:transparent;color:var(--ink-soft);font-weight:650;font-size:.95rem;transition:color .25s ease}.recipe-tabs button span{min-width:22px;padding:1px 7px;border-radius:999px;background:#fff9;font-size:.75rem}.recipe-tabs button.is-on{color:var(--olive-dark)}.recipe-tabs-pill{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:var(--paper);box-shadow:0 2px 8px -2px #40361c40;transition:transform .38s cubic-bezier(.3,1.4,.5,1)}.recipe-tabs:has(#tab-method.is-on) .recipe-tabs-pill{transform:translate(100%)}.recipe-body.tab-ingredients .method,.recipe-body.tab-method .ingredients{display:none}.recipe-body.tab-ingredients .ingredients,.recipe-body.tab-method .method{animation:tab-in .32s cubic-bezier(.2,.8,.25,1)}}@keyframes tab-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(min-width:640px)and (max-width:959px){.recipe-tabs{max-width:420px}}.cook-mode{width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:var(--cream);color:var(--ink)}.cook-mode[open]{animation:cook-in .36s cubic-bezier(.2,.8,.25,1)}.cook-mode::backdrop{background:var(--cream)}@keyframes cook-in{0%{opacity:0;transform:scale(.98) translateY(14px)}to{opacity:1;transform:none}}.cook-inner{display:flex;flex-direction:column;gap:18px;height:100%;max-width:760px;margin:0 auto;padding:calc(var(--safe-top) + 14px) max(20px,var(--safe-right)) calc(var(--safe-bottom) + 18px) max(20px,var(--safe-left))}.cook-top{display:flex;align-items:center;gap:10px}.cook-title{flex:1;min-width:0;font-family:var(--font-display);font-size:1.1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cook-progress{display:flex;gap:5px}.cook-progress span{flex:1;height:5px;border-radius:99px;background:var(--line);overflow:hidden;position:relative}.cook-progress span:after{content:"";position:absolute;inset:0;background:var(--olive);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}.cook-progress .is-done:after{transform:none}.cook-progress .is-current:after{transform:scaleX(.35);background:var(--terracotta)}.cook-step{flex:1;display:flex;flex-direction:column;justify-content:center;gap:16px;min-height:0;overflow-y:auto;animation:step-in .38s cubic-bezier(.2,.8,.25,1)}@keyframes step-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.cook-step-label{color:var(--terracotta);font-family:var(--font-display);font-style:italic;font-size:1.2rem;font-weight:600}.cook-step-text{font-family:var(--font-display);font-size:clamp(1.5rem,5.4vw,2.3rem);line-height:1.35;text-wrap:pretty}.cook-done{align-items:center;text-align:center}.cook-done .cook-step-text{max-width:20ch}.cook-ingredients{flex:1;list-style:none;margin:0;padding:0;overflow-y:auto}.cook-ingredients li{padding:14px 4px;font-size:1.15rem;border-bottom:1px solid var(--line)}.cook-nav{display:grid;grid-template-columns:1fr 1.6fr;gap:12px}.cook-nav .button{justify-content:center;min-height:58px}.cook-nav .button:only-child{grid-column:1 / -1}@media(prefers-reduced-motion:reduce){.cook-mode[open],.cook-step,.recipe-tabs-pill,.recipe-body .ingredients,.recipe-body .method{animation:none!important;transition:none!important}}.shop-progress{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:var(--radius-md);background:var(--cream);border:1px solid var(--line)}.shop-progress-text{display:flex;align-items:baseline;gap:8px}.shop-progress-text strong{font-family:var(--font-display);font-size:1.3rem;font-weight:600}.shop-progress-text span{color:var(--ink-faint);font-size:.9rem}.shop-progress-track{height:8px;border-radius:99px;background:var(--line);overflow:hidden}.shop-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--sage),var(--olive));transition:width .45s cubic-bezier(.3,1.2,.5,1)}.shop-group{display:flex;flex-direction:column;gap:2px}.shop-group-title{display:flex;align-items:center;gap:8px;font-size:1.1rem;padding-top:4px}.shop-group-done .check-text{color:var(--ink-faint)}.shopping-list li{animation:tab-in .3s ease both}.recipe-notes{display:flex;flex-direction:column;gap:14px;margin-top:-8px}@media(min-width:960px){.recipe-notes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.recipe-notes .safety:only-child,.recipe-notes .danger-zone{grid-column:1 / -1}}.method-head{justify-content:flex-start}.method-head h2{margin-right:auto}:root{--gold: #e2b763;--gold-deep: #c48a35}.ambient{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:strict}.ambient-wash{position:absolute;border-radius:50%;will-change:transform}.ambient-wash-1{width:min(80vmax,1000px);height:min(80vmax,1000px);left:-28vmax;top:-34vmax;background:radial-gradient(circle,#9db08a42,#9db08a00 64%);animation:wash-a 60s ease-in-out infinite alternate}.ambient-wash-2{width:min(70vmax,900px);height:min(70vmax,900px);right:-30vmax;bottom:-30vmax;background:radial-gradient(circle,#d6a07829,#d6a07800 64%);animation:wash-b 70s ease-in-out infinite alternate}@keyframes wash-a{0%{transform:translate(0) scale(1)}to{transform:translate(8vw,6vh) scale(1.08)}}@keyframes wash-b{0%{transform:translate(0) scale(1.05)}to{transform:translate(-8vw,-8vh) scale(.96)}}.ambient-cloud{position:absolute;left:0;top:var(--y);width:var(--w);height:calc(var(--w) * .42);transform:translate(calc(-1 * var(--w)));will-change:transform;animation:cloud-drift var(--dur) linear infinite;animation-delay:var(--delay)}.ambient-cloud-shape{display:block;width:100%;height:100%;opacity:var(--o, .7);filter:blur(5px);background:radial-gradient(ellipse 15% 27% at 77% 64%,var(--c) 0%,var(--c) 45%,transparent 100%),radial-gradient(ellipse 19% 38% at 63% 50%,var(--c) 0%,var(--c) 45%,transparent 100%),radial-gradient(ellipse 23% 48% at 46% 44%,var(--c) 0%,var(--c) 45%,transparent 100%),radial-gradient(ellipse 19% 32% at 29% 60%,var(--c) 0%,var(--c) 45%,transparent 100%),radial-gradient(ellipse 46% 24% at 52% 74%,var(--c) 0%,var(--c) 50%,transparent 100%);animation:cloud-bob 24s ease-in-out infinite alternate;animation-delay:var(--delay)}.ambient-cloud.tone-white{--c: rgba(255, 253, 247, .95)}.ambient-cloud.tone-sage{--c: rgba(178, 196, 156, .5)}.ambient-cloud.tone-peach{--c: rgba(236, 196, 168, .45)}.ambient-cloud.tone-gold{--c: rgba(238, 210, 150, .42)}@keyframes cloud-drift{0%{transform:translate(calc(-1 * var(--w)))}to{transform:translate(100vw)}}@keyframes cloud-bob{0%{transform:translateY(-8px) scaleX(1)}to{transform:translateY(10px) scaleX(1.06)}}@media(max-width:759px){.ambient-cloud.is-wide{display:none}.ambient-cloud{--w: var(--w-phone) !important}.ambient-wash-1{width:120vw;height:120vw;left:-45vw;top:-40vw}.ambient-wash-2{width:110vw;height:110vw;right:-50vw;bottom:-30vw}}.button-primary:after{background:linear-gradient(110deg,transparent 28%,rgba(255,255,255,.08) 40%,rgba(255,246,214,.42) 50%,rgba(255,255,255,.08) 60%,transparent 72%);animation:auto-shine 5.5s ease-in-out infinite;animation-delay:var(--shine-delay, 1.2s)}.button-primary:disabled:after{animation:none}@keyframes auto-shine{0%,66%{transform:translate(-130%)}to{transform:translate(130%)}}.hero-actions .button-primary{--shine-delay: .8s}.cook-cta{--shine-delay: 1.6s}.button-secondary{position:relative;overflow:hidden;isolation:isolate}.button-secondary:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(110deg,transparent 30%,rgba(226,183,99,.2) 48%,rgba(255,255,255,.9) 50%,rgba(226,183,99,.2) 52%,transparent 70%);transform:translate(-130%);animation:auto-shine 8s ease-in-out infinite;animation-delay:var(--shine-delay, 3s)}.button-secondary:nth-child(2):after{animation-delay:calc(var(--shine-delay, 3s) + .22s)}.button-secondary:nth-child(3):after{animation-delay:calc(var(--shine-delay, 3s) + .44s)}.button-secondary:nth-child(4):after{animation-delay:calc(var(--shine-delay, 3s) + .66s)}.button-secondary:disabled:after{animation:none}.button-surprise:not(:disabled),.cook-cta{animation:cta-glow 3.4s ease-in-out infinite}@keyframes cta-glow{0%,to{box-shadow:0 1px #ffffff26 inset,0 6px 16px -8px #3b472399,0 0 #9db08a00}50%{box-shadow:0 1px #ffffff26 inset,0 12px 28px -8px #3b47238c,0 0 0 6px #9db08a33}}.button-surprise .icon{animation:icon-flip 6s cubic-bezier(.3,1.3,.5,1) infinite 2.4s}@keyframes icon-flip{0%,86%{rotate:0deg}to{rotate:360deg}}.cook-cta .icon{animation:icon-nudge 2.6s ease-in-out infinite 1s}@keyframes icon-nudge{0%,60%,to{translate:0 0}75%{translate:4px 0}88%{translate:-1px 0}}.hero-actions .button-secondary .icon{animation:icon-pulse 5s ease-in-out infinite 3.5s}@keyframes icon-pulse{0%,80%,to{scale:1}88%{scale:1.25}94%{scale:.92}}.hero .kinetic span{padding-bottom:.1em;margin-bottom:-.1em;background-image:linear-gradient(100deg,var(--ink) 0 42%,var(--gold-deep) 46%,var(--gold) 50%,var(--gold-deep) 54%,var(--ink) 58% 100%);background-size:320% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;animation:word-in .75s cubic-bezier(.2,.75,.25,1) backwards,text-shine 7s ease-in-out infinite;animation-delay:calc(.1s + var(--w, 0) * .09s),calc(2.2s + var(--w, 0) * .14s)}@keyframes text-shine{0%,68%{background-position:100% 0}to{background-position:0 0}}.wordmark-plus{display:inline-block;animation:plus-turn 9s cubic-bezier(.3,1.4,.5,1) infinite 3s}@keyframes plus-turn{0%,88%{transform:none;color:var(--terracotta)}94%{transform:rotate(90deg) scale(1.3);color:var(--gold-deep)}to{transform:rotate(180deg);color:var(--terracotta)}}.art:after{content:"";position:absolute;inset:-20%;z-index:2;pointer-events:none;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.5) 50%,transparent 60%);transform:translate(-100%);animation:art-shine 7s ease-in-out infinite;animation-delay:calc(1.4s + var(--i, 0) * .32s)}@keyframes art-shine{0%,74%{transform:translate(-100%)}to{transform:translate(100%)}}.plate-emoji{animation:emoji-float 5.5s ease-in-out infinite;animation-delay:calc(var(--i, 0) * -.8s)}@keyframes emoji-float{0%,to{translate:0 0;rotate:-4deg}50%{translate:0 -7%;rotate:5deg}}.hero-sheen{position:absolute;inset:0;z-index:-1;overflow:hidden;border-radius:inherit;pointer-events:none}.hero-sheen:before{content:"";position:absolute;top:-40%;bottom:-40%;left:0;width:38%;background:linear-gradient(90deg,#fff0,#fffcf0bf,#fff0);transform:translate(-120%) rotate(18deg);animation:hero-sweep 11s ease-in-out infinite 1.2s}@keyframes hero-sweep{0%,62%{transform:translate(-120%) rotate(18deg)}to{transform:translate(380%) rotate(18deg)}}.glass-sheen{position:absolute;inset:0;z-index:3;overflow:hidden;border-radius:inherit;pointer-events:none}.glass-sheen:before{content:"";position:absolute;top:0;bottom:0;left:0;width:42%;background:linear-gradient(100deg,#fff0,#ffffffb3,#fff0);transform:translate(-130%) skew(-18deg);animation:glass-sweep 9s ease-in-out infinite 2s}.glass-orb .glass-sheen:before{width:80%;animation-name:glass-sweep-orb}@keyframes glass-sweep{0%,76%{transform:translate(-130%) skew(-18deg)}92%,to{transform:translate(360%) skew(-18deg)}}@keyframes glass-sweep-orb{0%,90%{transform:translate(-130%) skew(-18deg)}to{transform:translate(200%) skew(-18deg)}}.nav-link.is-active,.quick-chip.is-on,.segmented button.is-on,.view-toggle button.is-on,.toggle-chip.is-on,.toggle-chip-strong,.today-tag,.recipe-tabs-pill{background-image:linear-gradient(100deg,transparent 35%,var(--chip-shine, rgba(255, 255, 255, .6)) 50%,transparent 65%);background-size:250% 100%;background-repeat:no-repeat;background-position:150% 0;animation:chip-shine 6s ease-in-out infinite 2.6s}.quick-chip.is-on,.segmented button.is-on,.toggle-chip-strong{--chip-shine: rgba(255, 244, 210, .35)}.recipe-tabs-pill,.view-toggle button.is-on{--chip-shine: rgba(226, 183, 99, .28)}@keyframes chip-shine{0%,70%{background-position:150% 0}to{background-position:-50% 0}}.shop-progress-track span{position:relative;overflow:hidden}.shop-progress-track span:after,.cook-progress .is-current:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#fff0,#ffffffa6,#fff0);transform:translate(-100%);animation:bar-glint 2.6s ease-in-out infinite}@keyframes bar-glint{0%,35%{transform:translate(-100%)}to{transform:translate(100%)}}.empty-icon{animation:bob 3.6s ease-in-out infinite}.tab-badge,.nav-count{animation:pop-in .35s cubic-bezier(.3,1.6,.5,1),badge-ping 3.2s ease-out infinite 1.2s}@keyframes badge-ping{0%,60%{box-shadow:0 0 #b4532f73}to{box-shadow:0 0 0 9px #b4532f00}}.save-button.is-saved .icon,.button-secondary.is-saved .icon{animation:heart-pop .45s cubic-bezier(.3,1.6,.5,1),heartbeat 4.5s ease-in-out infinite 1.5s}@keyframes heartbeat{0%,80%,to{scale:1}85%{scale:1.22}90%{scale:1}94%{scale:1.14}}.step-number{animation:step-glow 6s ease-in-out infinite;animation-delay:calc(var(--i, 0) * .5s + 1s)}@keyframes step-glow{0%,82%,to{box-shadow:0 0 #b4532f00}90%{box-shadow:0 0 0 6px #b4532f24}}html.calm .ambient,html.calm .hero-sheen,html.calm .glass-sheen,html.calm .art:after,html.calm .shop-progress-track span:after,html.calm .cook-progress .is-current:before,html.calm .button-secondary:after{display:none}html.calm .button-primary:after{animation:none}html.calm .button-surprise,html.calm .cook-cta,html.calm .button-surprise .icon,html.calm .cook-cta .icon,html.calm .hero-actions .button-secondary .icon,html.calm .wordmark-plus,html.calm .plate-emoji,html.calm .empty-icon,html.calm .step-number,html.calm .nav-link.is-active,html.calm .quick-chip.is-on,html.calm .segmented button.is-on,html.calm .view-toggle button.is-on,html.calm .toggle-chip.is-on,html.calm .toggle-chip-strong,html.calm .today-tag,html.calm .recipe-tabs-pill{animation:none}html.calm .hero .kinetic span{animation:word-in .75s cubic-bezier(.2,.75,.25,1) backwards;animation-delay:calc(.1s + var(--w, 0) * .09s);background-position:100% 0}html.calm .tab-badge,html.calm .nav-count{animation:pop-in .35s cubic-bezier(.3,1.6,.5,1)}html.calm .save-button.is-saved .icon,html.calm .button-secondary.is-saved .icon{animation:heart-pop .45s cubic-bezier(.3,1.6,.5,1)}@media(prefers-reduced-motion:reduce){.ambient-cloud,.hero-sheen,.glass-sheen,.art:after,.button-secondary:after{display:none}.hero .kinetic span{background-position:100% 0!important}}@media print{.ambient,.hero-sheen,.glass-sheen{display:none!important}}:root{--paper-frost: rgba(255, 251, 242, .76)}.hero{background:radial-gradient(120% 140% at 100% 0%,#e5ead7bf,#e5ead700 55%),var(--paper-frost)}.panel,.recipe-card,.ingredients,.method,.day,.scan-step,.jump-card,.shop-progress{background-color:var(--paper-frost)}.recipe-card-body{background:transparent}html.calm .hero{background:radial-gradient(120% 140% at 100% 0%,#e5ead7f2,#e5ead700 55%),var(--paper)}html.calm :is(.panel,.recipe-card,.ingredients,.method,.day,.scan-step,.jump-card,.shop-progress){background-color:var(--paper)}:root{--card-glow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 0 0 1px rgba(255, 255, 255, .35), 0 0 20px rgba(255, 249, 232, .95), 0 0 46px -8px rgba(226, 183, 99, .3), 0 14px 30px -18px rgba(64, 54, 28, .24);--card-glow-strong: inset 0 1px 0 rgba(255, 255, 255, 1), 0 0 0 1px rgba(255, 255, 255, .5), 0 0 26px rgba(255, 249, 232, 1), 0 0 60px -6px rgba(226, 183, 99, .45), 0 18px 36px -18px rgba(64, 54, 28, .28)}.hero,.panel,.recipe-card,.ingredients,.method,.day,.scan-step,.jump-card,.shop-progress,.create,.surprise-card{box-shadow:var(--card-glow);border-color:#ded2b8bf}.day.is-today{box-shadow:var(--card-glow),0 0 0 3px #b4532f1a,0 0 34px -6px #b4532f47}.recipe-card,.jump-card,.day{transition:box-shadow .35s ease,transform .22s ease,border-color .22s ease}@media(hover:hover){.recipe-card:hover,.jump-card:hover,.day:hover{box-shadow:var(--card-glow-strong);border-color:#e2c48ccc}}.recipe-card:active,.jump-card:active{box-shadow:var(--card-glow-strong)}
