:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f8f6f1;--surface:#fffefb;--surface-sunken:#f1eee7;--surface-hover:#ebe7de;--surface-glass:#f8f6f1db;--overlay:#1c1a166b;--ink:#1c1a16;--ink-2:#5d584f;--ink-3:#757064;--ink-inverse:#fffefb;--line:#e5e0d6;--line-strong:#cdc6b8;--paused-fill:color-mix(in srgb, var(--ink) 9%, var(--surface));--accent:var(--ink);--accent-ink:var(--ink-inverse);--focus:#2563cc;--star:#c08000;--good:#2f7d43;--danger:#c2412d;--protein:#eb6834;--carbs:#1baf7a;--fat:#2a78d6;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Helvetica Neue", sans-serif;--weight:450;--text-base:.96875rem;--text-small:.84375rem;--text-input:1rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--page-max:76rem;--gutter:clamp(1rem, .6rem + 1.8vw, 2rem);--header-height:3.5rem;--tap:2.75rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--radius-pill:999px;--shadow-sheet:0 -.5rem 2rem #1c1a161f;--shadow-pop:0 .75rem 2rem #1c1a1624, 0 0 0 1px var(--line);--shadow-bar:0 -1px 0 var(--line), 0 -.5rem 1.5rem #1c1a160f;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.12s;--dur:.2s;--dur-slow:.32s}[data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141311;--surface:#1e1c19;--surface-sunken:#191815;--surface-hover:#2a2824;--surface-glass:#141311d6;--overlay:#0000008f;--ink:#f3efe7;--ink-2:#bcb5a9;--ink-3:#8d867b;--ink-inverse:#141311;--accent:#ddd7cc;--line:#2f2c27;--line-strong:#46423b;--focus:#6ea2f5;--star:#f0ad2e;--good:#5cb174;--danger:#e2735f;--protein:#d95926;--carbs:#199e70;--fat:#3987e5;--shadow-sheet:0 -.5rem 2rem #00000080;--shadow-pop:0 .75rem 2rem #00000080, 0 0 0 1px var(--line);--shadow-bar:0 -1px 0 var(--line), 0 -.5rem 1.5rem #0000004d}@media (prefers-contrast:more){:root{--line:color-mix(in srgb, var(--ink) 30%, var(--surface));--line-strong:color-mix(in srgb, var(--ink) 55%, var(--surface))}}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:100%;font-weight:var(--weight);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;line-height:1.5;overflow-x:clip}body{min-height:100dvh;font-size:var(--text-base);background:var(--bg);margin:0;overflow-x:clip}h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}h1,h2,h3,h4,h5,h6,strong,b,th{font-size:inherit;font-weight:var(--weight)}h1,h2,h3,h4{text-wrap:balance}p{text-wrap:pretty}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,select,textarea{color:inherit;font:inherit;letter-spacing:inherit;margin:0}input,textarea{font-size:var(--text-input)}option{font:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button,a,input,select,summary,label{-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::selection{background:color-mix(in srgb, var(--focus) 24%, transparent)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.page{width:100%;max-width:var(--page-max);padding-inline:var(--gutter);margin-inline:auto}.tabular{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.app-header{z-index:30;background:var(--bg);position:relative}.app-header--sticky{background:var(--surface-glass);box-shadow:0 1px 0 var(--line);-webkit-backdrop-filter:saturate(160%)blur(16px);backdrop-filter:saturate(160%)blur(16px);position:sticky;top:0}.app-header__inner{align-items:center;gap:var(--space-2);min-height:var(--header-height);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid}.app-header__start{justify-self:start;align-items:center;min-width:0;display:flex}.app-header__center{justify-self:center;min-width:0}.app-header__end{justify-self:end;align-items:center;gap:var(--space-1);display:flex}.brand{min-height:var(--tap);border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:var(--weight);align-items:center;gap:.5rem;margin-inline-start:-.25rem;padding-inline:.25rem;display:inline-flex}.brand__mark{width:1.625rem;height:1.625rem}.back-link{min-height:var(--tap);border-radius:var(--radius-pill);color:var(--ink);font-size:var(--text-small);font-weight:var(--weight);align-items:center;gap:.375rem;margin-inline-start:-.5rem;padding-inline:.5rem .75rem;display:inline-flex}@media (hover:hover){.back-link:hover{background:var(--surface-hover)}}.btn{min-height:var(--tap);border-radius:var(--radius-pill);font-size:var(--text-base);font-weight:var(--weight);white-space:nowrap;transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease, opacity var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:0 1.125rem;line-height:1.2;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4}.btn--primary{background:var(--accent);color:var(--accent-ink)}@media (hover:hover){.btn--primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 86%, var(--bg))}}.btn--secondary{border-color:var(--line-strong);background:var(--surface);color:var(--ink)}@media (hover:hover){.btn--secondary:hover:not(:disabled){background:var(--surface-hover)}}.btn--ghost{color:var(--ink)}@media (hover:hover){.btn--ghost:hover:not(:disabled){background:var(--surface-hover)}}.btn--lg{min-height:3.25rem;font-size:var(--text-base);padding-inline:1.5rem}.btn--block{width:100%}.icon-btn{width:var(--tap);height:var(--tap);border-radius:var(--radius-pill);color:var(--ink);transition:background-color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out);flex:none;place-items:center;display:inline-grid}@media (hover:hover){.icon-btn:hover:not(:disabled){background:var(--surface-hover)}}.icon-btn:active:not(:disabled){transform:scale(.94)}.icon-btn:disabled{opacity:.35}.icon-btn--outline{border:1px solid var(--line-strong);background:var(--surface)}.tabs{gap:var(--space-5);overscroll-behavior-x:contain;scrollbar-width:none;box-shadow:inset 0 -1px 0 var(--line);display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{min-height:var(--tap);color:var(--ink-2);font-size:var(--text-base);font-weight:var(--weight);white-space:nowrap;transition:color var(--dur-fast) ease;flex:none;align-items:center;display:inline-flex;position:relative}@media (hover:hover){.tab:hover{color:var(--ink)}}.tab:before{width:max(calc(100% + var(--space-3)), var(--tap));height:max(100%, var(--tap));content:"";position:absolute;top:50%;left:50%;translate:-50% -50%}.tab:after{background:var(--ink);content:"";height:2px;transition:transform var(--dur) var(--ease-out);border-radius:2px 2px 0 0;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.tab:focus-visible{outline-offset:-2px}.tab[aria-current=page],.tab[aria-selected=true]{color:var(--ink)}.tab[aria-current=page]:after,.tab[aria-selected=true]:after{transform:scaleX(1)}.chip-row{gap:var(--space-2);overscroll-behavior-x:contain;scrollbar-width:none;scroll-padding-inline:var(--gutter);margin-block:-.1875rem;padding-block:.1875rem;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);min-height:2.375rem;color:var(--ink);font-size:var(--text-small);font-weight:var(--weight);white-space:nowrap;transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out);flex:none;align-items:center;gap:.375rem;padding:0 .875rem;line-height:1;display:inline-flex;position:relative}@media (hover:hover){.chip:hover:not(:disabled){border-color:var(--ink-3)}}.chip:active:not(:disabled){transform:scale(.96)}.chip:disabled{opacity:.4}.chip:before{content:"";position:absolute;inset:-.1875rem 0}.chip svg{flex:none}.chip[aria-pressed=true],.chip[aria-checked=true],.chip[data-active=true]{border-color:var(--ink);background:var(--ink);color:var(--ink-inverse)}.chip__count{border-radius:var(--radius-pill);background:var(--ink);min-width:1.25rem;height:1.25rem;color:var(--ink-inverse);font-size:var(--text-small);font-weight:var(--weight);font-variant-numeric:tabular-nums;place-items:center;padding:0 .3125rem;display:inline-grid}.chip[data-active=true] .chip__count{background:var(--ink-inverse);color:var(--ink)}.chip__hint{color:var(--ink-3);font-weight:var(--weight);font-variant-numeric:tabular-nums}.chip[aria-pressed=true] .chip__hint,.chip[aria-checked=true] .chip__hint{color:color-mix(in srgb, var(--ink-inverse) 70%, transparent)}.choice-group{gap:var(--space-3);border:0;min-width:0;margin:0;padding:0;display:grid}.choice-group__legend{color:var(--ink);font-size:var(--text-small);font-weight:var(--weight);padding:0}.choice-group__hint{color:var(--ink-2);font-size:var(--text-small);margin-top:-.375rem}.choice-group__options{gap:var(--space-2);flex-wrap:wrap;display:flex}.stepper{border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);align-items:center;gap:0;padding:0;display:inline-flex}.stepper button{width:var(--tap);height:var(--tap);border-radius:var(--radius-pill);transition:background-color var(--dur-fast) ease;place-items:center;display:grid}@media (hover:hover){.stepper button:hover:not([aria-disabled=true]){background:var(--surface-hover)}}.stepper button[aria-disabled=true]{opacity:.3}.stepper__value{min-width:4.75rem;color:var(--ink);font-size:var(--text-small);font-weight:var(--weight);font-variant-numeric:tabular-nums;text-align:center}.stars{align-items:center;display:inline-flex}.stars__star{width:var(--tap);height:var(--tap);border-radius:var(--radius-pill);color:var(--ink-3);transition:color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out);place-items:center;display:grid}.stars__star[data-filled=true]{color:var(--star)}.stars__star:active:not(:disabled){transform:scale(.88)}.stars--readonly{color:var(--star);gap:.0625rem}.stars--readonly .stars__star{width:auto;height:auto}.macros{gap:var(--space-3);display:grid}.macros__tiles{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.macros__tile{min-width:0;padding-inline:var(--space-3);border-inline-start:1px solid var(--line);gap:.125rem;display:grid}.macros__tile:first-child{border-inline-start:0;padding-inline-start:0}.macros__value{color:var(--ink);font-size:var(--text-base);font-weight:var(--weight);white-space:nowrap;line-height:1.15}.macros__unit{color:var(--ink-2);font-size:var(--text-small);font-weight:var(--weight);margin-inline-start:.0625rem}.macros__label{color:var(--ink-2);font-size:var(--text-small);font-weight:var(--weight);white-space:nowrap;align-items:center;gap:.375rem;display:flex}.macros__key{border-radius:2px;flex:none;width:.5rem;height:.5rem}.macros__key--protein{background:var(--protein)}.macros__key--carbs{background:var(--carbs)}.macros__key--fat{background:var(--fat)}@media (width<=23.375rem){.macros__tiles{row-gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.macros__tile:nth-child(odd){border-inline-start:0;padding-inline-start:0}}.macro-bar{border-radius:4px;gap:2px;height:.5rem;display:flex;overflow:hidden}.macro-bar__segment{min-width:2px;height:100%}.macro-bar__segment--protein{background:var(--protein)}.macro-bar__segment--carbs{background:var(--carbs)}.macro-bar__segment--fat{background:var(--fat)}.sheet{border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--surface);width:100%;max-width:100%;max-height:min(88dvh,52rem);box-shadow:var(--shadow-sheet);color:var(--ink);border:0;margin:0;padding:0;position:fixed;inset:auto 0 0;overflow:hidden}.sheet[open]{animation:sheet-in var(--dur-slow) var(--ease-out);flex-direction:column;display:flex}.sheet[data-closing=true]{animation:sheet-out var(--dur) var(--ease-in-out) forwards}.sheet::backdrop{background:#1c1a166b;animation:.32s cubic-bezier(.22,1,.36,1) fade-in}[data-mode=dark] .sheet::backdrop{background:#0000008f}.sheet[data-closing=true]::backdrop{animation:.2s cubic-bezier(.65,0,.35,1) forwards fade-out}.sheet__handle{touch-action:none;flex:none}.sheet__grabber{border-radius:var(--radius-pill);background:var(--line-strong);width:2.25rem;height:.3125rem;margin:.5rem auto 0}.sheet__header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-5);border-bottom:1px solid var(--line);display:flex}.sheet__title{font-size:var(--text-base);font-weight:var(--weight)}.sheet__body{overscroll-behavior:contain;min-height:0;padding:var(--space-5);flex:1;overflow-y:auto}.sheet__footer{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5) calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);display:flex}@media (width>=48rem){.sheet{border-radius:var(--radius-xl) 0 0 var(--radius-xl);width:min(26rem,100%);height:100dvh;max-height:100dvh;inset:0 0 0 auto}.sheet[open]{animation-name:sheet-in-side}.sheet[data-closing=true]{animation-name:sheet-out-side}.sheet__grabber{display:none}.sheet__header{padding-top:var(--space-3)}}html:has(dialog[open]){overflow:hidden}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes sheet-out{to{transform:translateY(100%)}}@keyframes sheet-in-side{0%{transform:translate(100%)}}@keyframes sheet-out-side{to{transform:translate(100%)}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.status-text{min-height:1.25rem;color:var(--ink-2);font-size:var(--text-small)}.status-text[data-tone=error]{color:var(--danger)}.not-found{place-content:center;justify-items:center;gap:var(--space-4);min-height:70dvh;padding:var(--gutter);text-align:center;display:grid}.not-found h1{font-size:var(--text-base)}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){.app-header--sticky{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}}.appearance-toggle__sun,[data-mode=dark] .appearance-toggle__moon{display:none}[data-mode=dark] .appearance-toggle__sun{display:block}@media (forced-colors:active){.chip[aria-pressed=true],.chip[aria-checked=true],.chip[data-active=true]{color:highlighttext;forced-color-adjust:none;background:highlight;border:2px solid highlight}.chip[aria-pressed=true] .chip__hint,.chip[aria-checked=true] .chip__hint,.chip[data-active=true] .chip__count{color:highlighttext}.tab:after{background:highlight}.btn--primary{border:2px solid buttontext}.macro-bar__segment{forced-color-adjust:none}.stars__star[data-filled=true]{color:highlight}}.library{padding-bottom:var(--space-16)}.library__results :is(a,button,select,[tabindex]){scroll-margin-top:calc(5.875rem + var(--space-2))}.library__skip{display:none}@media (width>=64rem){.library__results :is(a,button,select,[tabindex]){scroll-margin-top:calc(var(--tap) + var(--space-2))}.library__skip{z-index:25;padding:var(--space-2) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);opacity:0;pointer-events:none;display:block;position:absolute}.library__skip:focus-visible{opacity:1;pointer-events:auto}}.search-field{align-items:center;width:100%;display:flex;position:relative}.search-field__icon{color:var(--ink-3);pointer-events:none;position:absolute;left:1rem}.search-field__input{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);width:100%;min-width:0;min-height:3rem;color:var(--ink);text-overflow:ellipsis;appearance:none;transition:border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;padding:0 2.75rem}.search-field__input::placeholder{color:var(--ink-3);opacity:1}.search-field__input::-webkit-search-cancel-button{appearance:none}.search-field__input::-webkit-search-decoration{appearance:none}@media (hover:hover){.search-field__input:hover{border-color:var(--line-strong)}}.search-field__input:focus-visible{border-color:var(--ink-3);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 28%, transparent);outline:0}.search-field__clear{width:var(--tap);height:var(--tap);border-radius:var(--radius-pill);color:var(--ink-3);transition:color var(--dur-fast) ease;place-items:center;display:grid;position:absolute;right:.125rem}@media (hover:hover){.search-field__clear:hover{color:var(--ink-2)}}.library__search{padding-block:var(--space-1) var(--space-2)}.library-search--header{display:none}.filter-bar__anchor{height:1px;margin-bottom:-1px}.filter-bar{z-index:20;background:var(--bg);transition:background-color var(--dur) ease, box-shadow var(--dur) ease;position:sticky;top:0}.filter-bar[data-stuck=true]{background:var(--surface-glass);box-shadow:0 1px 0 var(--line);-webkit-backdrop-filter:saturate(160%)blur(16px);backdrop-filter:saturate(160%)blur(16px)}.meal-tabs__list{justify-content:space-between;gap:var(--space-3);margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);scroll-padding-inline:var(--gutter)}.meal-tabs__tab{font-size:var(--text-small)}@media (width<=23.375rem){.meal-tabs{margin-inline:calc(-1 * var(--gutter));background:linear-gradient(var(--line), var(--line)) bottom / 100% 1px no-repeat}.meal-tabs__list{box-shadow:none;-webkit-mask-image:linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);-webkit-mask-image:linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);mask-image:linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);margin-inline:0}.meal-tabs__list:after{content:"";flex:none;width:1px}}.quick-filters{margin-inline:calc(-1 * var(--gutter));padding:.375rem var(--gutter);-webkit-mask-image:linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);-webkit-mask-image:linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);mask-image:linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent)}.quick-filters:after{content:"";flex:none;width:1px}.quick-filters__removable svg{opacity:.8;margin-inline-end:-.125rem}.filter-bar__progress{opacity:0;pointer-events:none;height:2px;transition:opacity var(--dur) ease;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}.filter-bar__progress:before{background:var(--ink-2);content:"";border-radius:2px;width:40%;position:absolute;inset:0 auto 0 0;transform:translate(-100%)}.filter-bar__progress[data-active=true]{opacity:1;transition-delay:.15s}.filter-bar__progress[data-active=true]:before{animation:library-progress 1.1s var(--ease-in-out) infinite}@keyframes library-progress{to{transform:translate(250%)}}@media (prefers-reduced-motion:reduce){.filter-bar__progress[data-active=true]:before{width:100%;animation:1.2s ease-in-out infinite alternate library-progress-pulse;transform:none}}@keyframes library-progress-pulse{0%{opacity:.25}}.library__sidebar{display:none}.results-header{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:3.5rem;padding-top:var(--space-1);display:flex}.results-header__count{color:var(--ink)}.results-header__count:focus{outline:0}.results-header__count:focus-visible{outline:2px solid var(--focus)}.results-header__sort{min-height:var(--tap);border-radius:var(--radius-pill);color:var(--ink);font-size:var(--text-small);white-space:nowrap;transition:background-color var(--dur-fast) ease;flex:none;align-items:center;margin-inline-end:calc(-1 * var(--space-2));padding:0 1.75rem 0 2rem;display:inline-flex;position:relative}@media (hover:hover){.results-header__sort:hover{background:var(--surface-hover)}}.results-header__sort:has(select:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.results-header__sort-control{border-radius:inherit;width:100%;height:100%;font-size:var(--text-input);opacity:0;cursor:pointer;appearance:none;border:0;position:absolute;inset:0}.results-header__sort-control option{font-size:var(--text-small)}.results-header__sort-icon{color:var(--ink-2);pointer-events:none;position:absolute;left:.6875rem}.results-header__sort-caret{pointer-events:none;position:absolute;right:.625rem}.results-hint{margin:calc(-1 * var(--space-2)) 0 var(--space-2);color:var(--ink-2);font-size:var(--text-small)}.results-hint__link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:.2em;margin-block:-.75rem;padding-block:.75rem;text-decoration-thickness:1px;display:inline-block}@media (hover:hover){.results-hint__link:hover{text-decoration-color:currentColor}}.library__results .results-list,.library__results .empty-results{transition:opacity var(--dur) ease}.library__results[aria-busy=true] .results-list,.library__results[aria-busy=true] .empty-results{opacity:.55;transition-delay:.12s}.results-list{display:grid}.results-list__item{margin-inline:calc(-1 * var(--space-2));padding:.375rem var(--space-2);content-visibility:auto;contain-intrinsic-size:auto 6.75rem;position:relative}@media (width<=23.375rem){.results-list__item{contain-intrinsic-size:auto 7.40625rem}}.results-list__item+.results-list__item:before{top:0;right:var(--space-2);left:calc(var(--space-2) + 6rem + var(--space-4));background:var(--line);content:"";height:1px;position:absolute}.recipe-card{align-items:center;gap:var(--space-4);border-radius:var(--radius-md);transition:background-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;grid-template-columns:6rem minmax(0,1fr);padding-block:.375rem;display:grid}.recipe-card:active{background:var(--surface-hover);box-shadow:0 0 0 .375rem var(--surface-hover)}.recipe-card__media{aspect-ratio:1;border-radius:var(--radius-md);background:var(--surface-sunken);width:6rem;position:relative;overflow:hidden}.recipe-card__media:after{border-radius:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 7%, transparent);content:"";pointer-events:none;position:absolute;inset:0}.recipe-card__media img{object-fit:cover;width:100%;height:100%;transition:transform var(--dur-slow) var(--ease-out)}.recipe-card__body{gap:.125rem;min-width:0;display:grid}.recipe-card__title{margin-bottom:var(--space-1);color:var(--ink);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.recipe-card__meta{color:var(--ink-2);font-size:var(--text-small);font-variant-numeric:tabular-nums;line-height:1.4;overflow:hidden}.recipe-card__facts{flex-wrap:wrap;margin-inline-start:-.875rem;display:flex}.recipe-card__fact{white-space:nowrap;align-items:center;display:inline-flex}.recipe-card__fact:before{width:.875rem;color:var(--ink-3);content:"·";content:"·" / "";text-align:center;flex:none}.recipe-card__fact[data-emphasis=true]{color:var(--ink)}.recipe-card__fact .macros__key{margin-inline-end:.3125rem}.recipe-card__fact svg{margin-inline-end:.1875rem}.recipe-card__rating svg{color:var(--star)}.recipe-card__cooked svg{color:var(--good)}.results-more{padding-top:var(--space-8);justify-content:center;display:flex}.results-more__button{padding-inline:2.75rem;position:relative}.results-more__spinner{border:2px solid var(--line-strong);border-top-color:var(--ink-2);opacity:0;width:1rem;height:1rem;transition:opacity var(--dur-fast) ease;border-radius:50%;position:absolute;left:1.125rem}.results-more__button[aria-busy=true] .results-more__spinner{opacity:1;animation:.8s linear infinite library-spin}.results-more__button[aria-disabled=true]:active{transform:none}@keyframes library-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.results-more__button[aria-busy=true] .results-more__spinner{animation:1.2s ease-in-out infinite alternate library-progress-pulse}}.results-more__left{color:var(--ink-2)}.results-more__note{color:var(--ink-2);font-size:var(--text-small);text-align:center}.empty-results{justify-items:center;gap:var(--space-4);padding:var(--space-12) 0 var(--space-8);text-align:center;display:grid}.empty-results__title{color:var(--ink)}.empty-results__body{max-width:28rem;margin-top:calc(-1 * var(--space-3));color:var(--ink-2)}.empty-results__chips{justify-content:center;gap:var(--space-2);flex-wrap:wrap;max-width:28rem;display:flex}.empty-results__elsewhere{justify-items:center;gap:var(--space-3);margin-top:var(--space-4);display:grid}.empty-results__label{color:var(--ink-2);font-size:var(--text-small)}.filter-panel{gap:var(--space-6);display:grid}.filter-panel__legend{justify-content:space-between;align-items:baseline;gap:var(--space-3);width:100%;display:flex}.filter-panel__hint{color:var(--ink-3);text-align:end}.filter-panel__segments{grid-template-columns:repeat(auto-fill,minmax(max(3.25rem,20% - .3rem),1fr));gap:.375rem;display:grid}.filter-panel__segments .chip{min-width:0;padding-inline:var(--space-1);justify-content:center}.filter-panel__any[aria-pressed=true]{border-color:var(--ink);background:var(--surface);color:var(--ink)}.filter-sheet .sheet__footer .btn{min-height:3.25rem}.filter-clear{padding-inline:var(--space-3);flex:none}.filter-clear[aria-disabled=true]{opacity:.4;cursor:default}.filter-clear[aria-disabled=true]:active{transform:none}@media (hover:hover){.filter-clear[aria-disabled=true]:hover{background:0 0}}.filter-sheet__apply{min-width:0;padding-inline:var(--space-3);flex:1}.filter-sheet__apply-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.filter-sheet__apply[aria-busy=true]{opacity:.85}.filter-sheet__none{min-height:3.25rem;color:var(--ink-2);flex:1;place-items:center;display:grid}.library__sidebar-header{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:3.5rem;padding-top:var(--space-1);margin-bottom:var(--space-2);display:flex}.library__sidebar-title{color:var(--ink)}.library__sidebar-clear{margin-inline-end:calc(-1 * var(--space-3))}@media (width>=48rem){.meal-tabs__list{justify-content:flex-start;gap:var(--space-6)}.meal-tabs__tab{font-size:var(--text-base)}.results-list{gap:var(--space-5) var(--space-4);padding-top:var(--space-1);grid-template-columns:repeat(2,minmax(0,1fr))}.results-list__item{margin:calc(-1 * var(--space-1));padding:var(--space-1);contain-intrinsic-size:auto calc((50vw - 2rem) / 1.5 + 4.92rem)}.results-list__item+.results-list__item:before{display:none}.recipe-card{align-items:start;gap:var(--space-3);grid-template-columns:minmax(0,1fr);padding:0}.recipe-card:active{box-shadow:none;background:0 0}.recipe-card__media{aspect-ratio:3/2;width:100%}@media (hover:hover){.recipe-card:hover .recipe-card__media img{transform:scale(1.03)}}}@media (width>=64rem){.library__search,.quick-filters{display:none}.library-search--header{width:clamp(22rem,36vw,36rem);display:flex}.library-search--header .search-field__input{min-height:var(--tap)}.library__body{align-items:start;column-gap:var(--space-10);padding-top:var(--space-2);grid-template-columns:18rem minmax(0,1fr);display:grid;position:relative}.library__sidebar{top:var(--tap);max-height:calc(100dvh - var(--tap));padding-bottom:var(--space-8);overscroll-behavior:contain;scrollbar-width:thin;display:block;position:sticky;overflow-y:auto}.results-list{column-gap:var(--space-5)}.results-list__item{contain-intrinsic-size:auto calc((50vw - 12.5rem) / 1.5 + 4.92rem)}.filter-bar{box-shadow:0 1px 0 var(--line)}.meal-tabs__list{box-shadow:none}}@media (width>=80rem){.results-list{grid-template-columns:repeat(3,minmax(0,1fr))}.results-list__item{contain-intrinsic-size:auto 17.125rem}}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){.filter-bar[data-stuck=true]{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}}@media (forced-colors:active){.filter-panel__any[aria-pressed=true]{border:2px solid highlight}.search-field__input:focus-visible{outline:2px solid highlight}.filter-bar__progress:before{forced-color-adjust:none;background:highlight}.results-header__sort:has(select:focus-visible){outline-color:highlight}}@media (width<=17.5rem){.results-header{flex-wrap:wrap}.recipe-card{gap:var(--space-2);grid-template-columns:minmax(0,1fr)}.recipe-card__media{aspect-ratio:3/2;width:100%}.recipe-card__fact{white-space:normal}.filter-panel__legend{flex-wrap:wrap}.filter-panel__segments{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-sheet .sheet__footer{flex-direction:column-reverse;align-items:stretch}.filter-sheet__apply{flex:none}.filter-panel .chip{white-space:normal;text-align:center;flex-shrink:1;max-width:100%;height:auto;padding-block:.375rem}}.recipe-page{--recipe-column:40rem;--cook-bar-space:calc(3.25rem + 2 * var(--space-3) + env(safe-area-inset-bottom));padding-bottom:calc(var(--cook-bar-space) + var(--space-12))}html:has(.recipe-page){scroll-padding-top:calc(var(--header-height) + var(--space-3));scroll-padding-bottom:calc(3.25rem + 2 * var(--space-3) + env(safe-area-inset-bottom) + var(--space-3))}.recipe-top,.recipe-body{max-width:var(--recipe-column);margin-inline:auto}.app-header__inner:has(.recipe-header-title){grid-template-columns:auto minmax(0,1fr) auto}.app-header__center:has(.recipe-header-title){justify-self:stretch}.recipe-header-title{max-width:40rem;color:var(--ink);font-size:var(--text-base);opacity:0;text-overflow:ellipsis;transition:opacity .16s ease, transform .16s var(--ease-out);white-space:nowrap;overflow:hidden;transform:translateY(.25rem)}.recipe-header-title[data-visible=true]{opacity:1;transform:none}.recipe-intro__title:focus:not(:focus-visible){outline:none}.recipe-hero{width:calc(100% + 2 * var(--gutter));margin-inline:calc(-1 * var(--gutter));aspect-ratio:3/2;background:var(--surface-sunken);cursor:zoom-in;display:block;position:relative;overflow:hidden}.recipe-hero:focus-visible{outline-offset:-3px}.recipe-hero__image{object-fit:cover;width:100%;height:100%}.recipe-hero__zoom{right:var(--space-3);bottom:var(--space-3);border-radius:var(--radius-pill);color:#fffffff0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:2rem;height:2rem;transition:background-color var(--dur-fast) ease;background:#00000061;place-items:center;display:grid;position:absolute}@media (hover:hover){.recipe-hero:hover .recipe-hero__zoom{background:#0000008c}}.image-viewer{width:100%;max-width:none;height:100%;max-height:none;padding:max(var(--space-4), env(safe-area-inset-top)) env(safe-area-inset-right) max(var(--space-4), env(safe-area-inset-bottom)) env(safe-area-inset-left);color:#fffffff0;cursor:zoom-out;background:#0a0a09;border:0;margin:0;position:fixed;inset:0}.image-viewer[open]{animation:fade-in var(--dur) var(--ease-out);grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;display:grid}.image-viewer::backdrop{background:0 0}.image-viewer__image{object-fit:contain;width:100%;max-width:100%;height:100%;max-height:100%;animation:image-viewer-in var(--dur-slow) var(--ease-out);grid-area:1/1}.image-viewer__image--large{opacity:0;transition:opacity var(--dur) ease}.image-viewer__image--large[data-loaded=true]{opacity:1}.image-viewer__close{top:max(var(--space-3), env(safe-area-inset-top));right:max(var(--space-3), env(safe-area-inset-right));z-index:1;color:inherit;cursor:pointer;background:#ffffff24;position:absolute}@media (hover:hover){.image-viewer__close:hover:not(:disabled){background:#ffffff3d}}@keyframes image-viewer-in{0%{opacity:0;transform:scale(.97)}}.recipe-identity{min-width:0}.recipe-intro{padding-top:var(--space-5);display:grid}.recipe-intro__title{color:var(--ink);font-size:var(--text-base);overflow-wrap:break-word;line-height:1.4}.recipe-intro__facts,.recipe-intro__meta{color:var(--ink-2);font-size:var(--text-small);font-variant-numeric:tabular-nums}.recipe-intro__facts{margin-top:var(--space-1)}.recipe-intro__dot{color:var(--ink-3);padding-inline:.4em}.recipe-intro__meta{align-items:center;gap:var(--space-1) var(--space-3);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.recipe-intro__cooked{color:var(--ink-2);align-items:center;gap:.3125rem;display:inline-flex}.recipe-intro__cooked svg{color:var(--good)}.recipe-intro__diets{margin-top:var(--space-1);color:var(--ink-2);font-size:var(--text-small);overflow:hidden}.recipe-intro__diet-list{flex-wrap:wrap;margin-inline-start:-1.1em;display:flex}.recipe-intro__diet:before{width:1.1em;color:var(--ink-3);content:"·";content:"·" / "";text-align:center;display:inline-block}.recipe-summary{margin-top:var(--space-4);position:relative}.recipe-summary__text{color:var(--ink-2);font-size:var(--text-small);white-space:pre-line;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;line-height:1.55;display:-webkit-box;overflow:hidden}.recipe-summary__text[data-expanded=true]{-webkit-line-clamp:unset;line-clamp:none;display:block}.recipe-summary__toggle{min-height:var(--tap);margin-block:calc(var(--space-2) * -1) calc(var(--space-3) * -1);color:var(--ink);font-size:var(--text-small);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:.2em;padding-inline:0}.recipe-summary__more{background:linear-gradient(to right, transparent, var(--bg) 2rem);color:var(--ink);font-size:var(--text-small);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:.2em;padding-inline-start:2.5rem;line-height:1.55;position:absolute;bottom:0;right:0}.recipe-summary__more:before{inset:calc((var(--tap) - 1.55em) / -2) 0;content:"";position:absolute}@media (hover:hover){.recipe-summary__toggle:hover,.recipe-summary__more:hover{text-decoration-color:currentColor}}.nutrition{gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-4) var(--space-4) 0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);display:grid}.nutrition__header{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.nutrition__title{color:var(--ink);font-size:var(--text-base)}.nutrition__basis{color:var(--ink-2);font-size:var(--text-small);font-variant-numeric:tabular-nums}.nutrition__toggle{width:calc(100% + 2 * var(--space-4));min-height:var(--tap);margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4);border-top:1px solid var(--line);border-radius:0 0 var(--radius-lg) var(--radius-lg);color:var(--ink);font-size:var(--text-small);transition:background-color var(--dur-fast) ease;justify-content:space-between;align-items:center;display:flex}@media (hover:hover){.nutrition__toggle:hover{background:var(--surface-hover)}}.nutrition__toggle svg{color:var(--ink-2);transition:transform var(--dur) var(--ease-out)}.nutrition__toggle[aria-expanded=true]{border-radius:0}.nutrition__toggle[aria-expanded=true] svg{transform:rotate(180deg)}.nutrition__more:not([hidden]){gap:var(--space-3);margin-top:calc(var(--space-4) * -1);padding:var(--space-3) 0 var(--space-4);display:grid}.nutrition__list{display:grid}.nutrition__row{justify-content:space-between;align-items:baseline;gap:var(--space-3);font-size:var(--text-small);padding-block:.5625rem;display:flex}.nutrition__row+.nutrition__row{border-top:1px solid var(--line)}.nutrition__row dt{color:var(--ink-2)}.nutrition__row dd{color:var(--ink);font-variant-numeric:tabular-nums}.segmented{border-radius:var(--radius-pill);background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--line);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.segmented button{min-height:var(--tap);padding-inline:var(--space-4);border-radius:var(--radius-pill);color:var(--ink-2);font-size:var(--text-small);isolation:isolate;transition:color var(--dur-fast) ease;position:relative}.segmented button:before{z-index:-1;border-radius:var(--radius-pill);content:"";transition:background-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;position:absolute;inset:.1875rem}@media (hover:hover){.segmented button:hover{color:var(--ink)}}.segmented button[aria-pressed=true]{color:var(--ink)}.segmented button[aria-pressed=true]:before{background:var(--surface);box-shadow:0 0 0 1px var(--line-strong), 0 1px 3px #1c1a1614}.cook-bar{z-index:20;padding:var(--space-3) var(--gutter) calc(var(--space-3) + env(safe-area-inset-bottom));background:var(--surface-glass);box-shadow:var(--shadow-bar);-webkit-backdrop-filter:saturate(160%)blur(16px);backdrop-filter:saturate(160%)blur(16px);position:fixed;bottom:0;left:0;right:0}.cook-bar[hidden]{display:none}.recipe-page:has(.recipe-timers--bar){padding-bottom:calc(var(--cook-bar-space) + 2.75rem + var(--space-12))}.cook-bar .btn{max-width:var(--recipe-column);white-space:normal;text-align:center;margin-inline:auto;display:flex}.cook-bar__step{color:color-mix(in srgb, var(--accent-ink) 72%, transparent);font-variant-numeric:tabular-nums;white-space:nowrap}.recipe-timers{gap:var(--space-2);display:flex}.recipe-timers--bar{margin:-.25rem calc(-1 * var(--gutter)) calc(var(--space-2) - .25rem);padding:.25rem var(--gutter);scroll-padding-inline:var(--gutter);scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);-webkit-mask-image:linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);mask-image:linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);overflow-x:auto}@media (width>=48rem){.recipe-timers--bar{max-width:var(--recipe-column);flex-wrap:wrap;margin-inline:auto;padding-inline:0;overflow-x:visible;-webkit-mask-image:none;mask-image:none}}.recipe-timers--bar::-webkit-scrollbar{display:none}.recipe-timers--header{display:none}.recipe-timer{border-radius:var(--radius-pill);background:var(--surface);min-height:2.25rem;box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--ink);font-size:var(--text-small);white-space:nowrap;animation:fade-in var(--dur) var(--ease-out);flex:none;align-items:center;gap:.375rem;padding:0 .875rem 0 .4375rem;display:inline-flex;position:relative}.recipe-timer:before{content:"";position:absolute;inset:-.25rem 0}@media (hover:hover){.recipe-timer:hover{box-shadow:inset 0 0 0 1px var(--ink-3)}}.recipe-timer__dial{flex:none;place-items:center;width:1.375rem;height:1.375rem;display:grid;position:relative}.recipe-timer__glyph{width:.875rem;height:.875rem;position:absolute}.recipe-timer__label,.recipe-timer__dot,.recipe-timer__state{color:var(--ink-2)}.recipe-timer__clock{font-variant-numeric:tabular-nums}.recipe-timer[data-status=paused]{background:var(--paused-fill)}.recipe-timer[data-status=paused] .recipe-timer__clock{color:var(--ink-2)}.recipe-timer[data-status=done]{background:var(--ink);box-shadow:none;color:var(--ink-inverse);animation:timer-alarm 1.4s var(--ease-out) 6}.recipe-timer[data-status=done] :is(.recipe-timer__label,.recipe-timer__dot){color:color-mix(in srgb, var(--ink-inverse) 72%, transparent)}.recipe-timer[data-status=done] .timer-ring{opacity:0}.recipe-timer[data-status=done] .recipe-timer__glyph{animation:1.4s ease-in-out 6 cook-ring}@keyframes timer-alarm{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--ink) 45%, transparent)}70%,to{box-shadow:0 0 0 .375rem color-mix(in srgb, var(--ink) 0%, transparent)}}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){.cook-bar{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}}.recipe-ingredients,.recipe-method,.recipe-feedback{margin-top:var(--space-10);padding-top:var(--space-3);border-top:1px solid var(--line)}.recipe-section__head{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);min-height:var(--tap);flex-wrap:wrap;display:flex}.recipe-section__title{color:var(--ink);font-size:var(--text-base);line-height:1.3}.recipe-section__aside{color:var(--ink-2);font-size:var(--text-small);font-variant-numeric:tabular-nums}.ingredient-group{margin-top:var(--space-2)}.ingredient-group+.ingredient-group{margin-top:var(--space-5)}.ingredient-group__title{padding-bottom:var(--space-1);color:var(--ink-2);font-size:var(--text-small)}.ingredient+.ingredient{box-shadow:inset 0 1px 0 var(--line)}.ingredient__row{column-gap:var(--space-3);min-height:var(--tap);cursor:pointer;grid-template-columns:1.375rem 4.75rem minmax(0,1fr);align-items:start;padding-block:.6875rem;line-height:1.4;display:grid;position:relative}.ingredient__tick{border-radius:var(--radius-pill);width:1.375rem;height:1.375rem;box-shadow:inset 0 0 0 1.5px var(--ink-3);color:#0000;transition:background-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out);place-items:center;display:grid}@media (hover:hover){.ingredient__row:hover .ingredient__tick{box-shadow:inset 0 0 0 1.5px var(--ink-2)}}.ingredient__row:active .ingredient__tick{transform:scale(.9)}.ingredient__row:has(.ingredient__input:focus-visible){border-radius:var(--radius-sm);outline:2px solid var(--focus);outline-offset:2px}.ingredient__quantity{color:var(--ink);font-variant-numeric:tabular-nums;text-align:end;overflow-wrap:anywhere}.ingredient__text{min-width:0;color:var(--ink);overflow-wrap:anywhere}.ingredient__hint,.ingredient__note{color:var(--ink-2)}.ingredient__optional{border-radius:var(--radius-pill);background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2);font-size:var(--text-small);padding:0 .4375rem;line-height:1.375rem;display:inline-block}.ingredient__row[data-checked=true] .ingredient__tick{background:var(--ink);box-shadow:none;color:var(--ink-inverse)}.ingredient__row[data-checked=true] :is(.ingredient__quantity,.ingredient__text,.ingredient__hint,.ingredient__note){color:var(--ink-3)}.ingredient__row[data-checked=true] .ingredient__name{text-decoration:line-through;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3);text-decoration-thickness:1px}.recipe-ingredients__footer{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.recipe-ingredients__footer:has(button){margin-top:var(--space-1);border-top:1px solid var(--line)}.recipe-ingredients__count{color:var(--ink-2);font-size:var(--text-small);font-variant-numeric:tabular-nums}.recipe-ingredients__clear{font-size:var(--text-small);margin-inline-end:calc(var(--space-3) * -1)}.recipe-method__steps{gap:var(--space-6);margin-top:var(--space-3);display:grid}.method-group+.method-group{margin-top:var(--space-8)}.method-group__title{color:var(--ink-2);font-size:var(--text-small)}.method-group__title+.recipe-method__steps{margin-top:var(--space-3)}.step{column-gap:var(--space-4);grid-template-columns:1.75rem minmax(0,1fr);align-items:start;display:grid}.step__number{border-radius:var(--radius-pill);width:1.75rem;height:1.75rem;box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--ink);font-size:var(--text-small);font-variant-numeric:tabular-nums;place-items:center;line-height:1;display:grid}.step__body{gap:var(--space-3);min-width:0;max-width:65ch;color:var(--ink);overflow-wrap:anywhere;padding-top:calc(.875rem - .8em);line-height:1.6;display:grid}.step__heading,.step__label{color:var(--ink-2);font-size:var(--text-small);display:block}.step__tip,.step__bullets{color:var(--ink-2);font-size:var(--text-small);line-height:1.55}.step__tip .step__lead{color:var(--ink)}.step__bullets{gap:var(--space-2);padding-inline-start:1.125rem;list-style:outside;display:grid}.step__bullets li::marker{color:var(--ink-3)}.recipe-method__empty{margin-top:var(--space-2);color:var(--ink-2)}.recipe-note{margin-top:var(--space-8);padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface-sunken)}.recipe-note__title{color:var(--ink-2);font-size:var(--text-small)}.recipe-note__text{margin-top:var(--space-2);color:var(--ink);white-space:pre-line;line-height:1.6}.recipe-feedback__title{min-height:var(--tap);color:var(--ink);font-size:var(--text-base);align-items:center;line-height:1.3;display:flex}.recipe-feedback__hint{color:var(--ink-2);font-size:var(--text-small)}.recipe-feedback__controls{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-4);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.recipe-feedback__controls .stars{margin-inline-start:calc(var(--space-2) * -1)}.recipe-feedback__cooked{align-items:center;gap:var(--space-1);display:flex}.recipe-feedback__done{color:var(--ink);align-items:center;gap:.375rem;display:inline-flex}.recipe-feedback__done svg{color:var(--good)}.recipe-feedback__undo{color:var(--ink-2)}.recipe-feedback__status{align-items:center;gap:var(--space-3);min-height:1.75rem;margin-top:var(--space-2);display:flex}.recipe-feedback__retry{color:var(--ink);font-size:var(--text-small);text-underline-offset:.2em;text-decoration:underline}.recipe-not-found__text{max-width:28rem;color:var(--ink-2)}@media (width>=48rem){.image-viewer{padding-inline:max(var(--space-4), env(safe-area-inset-left)) max(var(--space-4), env(safe-area-inset-right))}.recipe-top{padding-top:var(--space-6)}.recipe-hero{border-radius:var(--radius-lg);width:100%;margin-inline:0}.recipe-intro{padding-top:var(--space-6)}}@media (width>=64rem){.recipe-page{padding-bottom:var(--space-16)}html:has(.recipe-page){scroll-padding-bottom:var(--space-4)}.recipe-top,.recipe-body{max-width:none}.recipe-top{gap:var(--space-10);padding-top:var(--space-8);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;display:grid}.recipe-intro{padding-top:var(--space-1)}.cook-bar{margin-top:var(--space-5);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;padding:0;position:static}.cook-bar .btn{max-width:none}.recipe-timers--bar{display:none}.recipe-timers--header{margin-inline-end:var(--space-2);display:flex}.recipe-body{gap:var(--space-12);margin-top:var(--space-12);grid-template-columns:22rem minmax(0,1fr);align-items:start;display:grid}.recipe-ingredients{top:min(calc(var(--header-height) + var(--space-4)), calc(100dvh - var(--ingredients-height,0px) - var(--space-4)));margin-top:0;position:sticky}.recipe-method{margin-top:0}.recipe-feedback{margin-top:var(--space-16)}}@media (forced-colors:active){.ingredient__tick{border:1px solid canvastext}.ingredient__row:not([data-checked=true]) .ingredient__tick svg{visibility:hidden}.segmented button[aria-pressed=true]:before{forced-color-adjust:none;background:selecteditem}.segmented button[aria-pressed=true]{color:selecteditemtext;forced-color-adjust:none}.recipe-timer{border:1px solid canvastext}.recipe-timer[data-status=done]{color:highlighttext;forced-color-adjust:none;background:highlight}}@media (width<=17.5rem){.recipe-feedback .stars__star{width:2rem}.recipe-feedback .btn{white-space:normal;text-align:center}.recipe-header-title{display:none}}.cook{--cook-column:40rem;--cook-raised:var(--surface-sunken);--cook-raised-line:var(--line-strong);z-index:60;background:var(--surface);width:100%;max-width:none;height:100dvh;max-height:none;color:var(--ink);border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}[data-mode=dark] .cook{--cook-raised:var(--surface-hover);--cook-raised-line:var(--line-strong)}.cook[open]{display:block}.cook[data-enter=true]{animation:cook-in var(--dur-slow) var(--ease-out)}.cook::backdrop{background:#fffefb}[data-mode=dark] .cook::backdrop{background:#1e1c19}.cook__frame{height:100%;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left);flex-direction:column;display:flex;position:relative}.cook__bar{align-items:center;gap:var(--space-2);width:100%;min-height:var(--header-height);padding-inline:calc(var(--gutter) - .625rem) var(--gutter);flex:none;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.cook__title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;line-height:1.3;overflow:hidden}.cook__ingredients-btn{min-height:2.5rem;padding-inline:.75rem .9375rem}.cook__ingredients-btn:before{content:"";position:absolute;inset:-.125rem}.cook__ingredients-btn{position:relative}@media (width<=22.4375rem){.cook__ingredients-btn{width:var(--tap);min-height:var(--tap);padding:0}.cook__ingredients-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.cook__status,.cook-tray__list,.cook-step{width:100%;max-width:calc(var(--cook-column) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.cook__status{padding-top:var(--space-1);flex:none}.cook-progress__bar,.cook-progress__nav ol{gap:.25rem;display:flex}.cook-progress__nav{display:none}.cook-progress__segment{background:var(--line-strong);border-radius:2px;flex:1;height:.25rem;display:block;position:relative;overflow:hidden}.cook-progress__segment:after{background:var(--ink);content:"";transform-origin:0;transition:transform var(--dur-slow) var(--ease-out);position:absolute;inset:0;transform:scaleX(0)}.cook-progress__segment[data-state=done]:after,.cook-progress__segment[data-state=current]:after{transform:scaleX(1)}.cook__meta{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:2.25rem;display:flex}.cook__count{color:var(--ink);font-size:var(--text-small);font-variant-numeric:tabular-nums}.cook__of{color:var(--ink-3)}.cook__meta-end{align-items:center;gap:var(--space-4);display:flex}.cook__keys{color:var(--ink-2);font-size:var(--text-small);white-space:nowrap;align-items:center;gap:.25rem;display:none}.cook__key{min-width:1.375rem;height:1.375rem;box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--ink);border-radius:.3125rem;place-items:center;padding-inline:.25rem;line-height:1;display:inline-grid}.cook__key+.cook__key{margin-inline-end:.25rem}.cook__awake{color:var(--ink-2);font-size:var(--text-small);white-space:nowrap;align-items:center;gap:.3125rem;display:inline-flex}.cook-tray{transition:grid-template-rows var(--dur) var(--ease-out);flex:none;grid-template-rows:1fr;display:grid}.cook-tray[data-empty=true]{grid-template-rows:0fr}.cook-tray__clip{min-height:0;overflow:hidden}.cook-tray__list{gap:var(--space-2);padding-block:var(--space-2) var(--space-3);overscroll-behavior-x:contain;scroll-padding-inline:var(--gutter);scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);-webkit-mask-image:linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);mask-image:linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);display:flex;overflow-x:auto}.cook-tray__list[data-compact] .cook-tray__label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.cook-tray__list[data-compact] .cook-tray__main{min-height:2.75rem}.cook-tray__list::-webkit-scrollbar{display:none}.cook-tray__item{border-radius:var(--radius-pill);background:var(--cook-raised);box-shadow:inset 0 0 0 1px var(--cook-raised-line);animation:cook-pop var(--dur-slow) var(--ease-out);transition:background-color var(--dur) ease, color var(--dur) ease;flex:none;align-items:center;display:flex}.cook-tray__main{border-radius:var(--radius-pill);text-align:start;align-items:center;gap:.5rem;min-height:3.25rem;padding:.5rem .875rem .5rem .5rem;display:flex}.cook-tray__item:has(.cook-tray__cancel) .cook-tray__main{padding-inline-end:.125rem}.cook-tray__dial{flex:none;place-items:center;width:2rem;height:2rem;display:grid;position:relative}.cook-tray__glyph{width:.75rem;height:.75rem;position:absolute}.cook-tray__text{gap:.0625rem;display:grid}.cook-tray__time{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.25}.cook-tray__state{color:var(--ink-2);font-size:var(--text-small)}.cook-tray__label{color:var(--ink-2);font-size:var(--text-small);white-space:nowrap;line-height:1.25}.cook-tray__cancel{border-radius:var(--radius-pill);width:2.25rem;height:2.25rem;color:var(--ink-2);transition:background-color var(--dur-fast) ease;flex:none;place-items:center;margin-inline-end:.375rem;display:grid;position:relative}.cook-tray__cancel:before{content:"";position:absolute;inset:-.25rem}@media (hover:hover){.cook-tray__cancel:hover{background:var(--surface-hover);color:var(--ink)}}.cook-tray__item[data-status=paused]{background:var(--paused-fill)}.cook-tray__item[data-status=paused] .cook-tray__time{color:var(--ink-2)}.cook-tray__item[data-status=done] .cook-tray__time{color:inherit}.cook-tray__item[data-status=done]{background:var(--ink);box-shadow:none;color:var(--ink-inverse);animation:cook-alarm 1.4s var(--ease-out) infinite}.cook-tray__item[data-status=done] .cook-tray__label{color:color-mix(in srgb, var(--ink-inverse) 72%, transparent)}.cook-tray__item[data-status=done] .cook-tray__glyph{width:1.125rem;height:1.125rem;animation:1.4s ease-in-out infinite cook-ring}.cook-tray__item[data-status=done] .timer-ring{opacity:0}.timer-ring__track{stroke:var(--line-strong)}.timer-ring__value{stroke:var(--ink);transition:stroke-dashoffset .25s linear}.cook__scroll{overscroll-behavior:contain;touch-action:pan-y pinch-zoom;min-height:0;-webkit-mask-image:linear-gradient(to bottom, transparent, #000 var(--space-3), #000 calc(100% - var(--space-3)), transparent);-webkit-mask-image:linear-gradient(to bottom, transparent, #000 var(--space-3), #000 calc(100% - var(--space-3)), transparent);mask-image:linear-gradient(to bottom, transparent, #000 var(--space-3), #000 calc(100% - var(--space-3)), transparent);flex:1;overflow:hidden auto}.cook-step{align-content:start;gap:var(--space-8);padding-block:var(--space-3) var(--space-10);border-radius:var(--radius-md);outline:none;display:grid}.cook-step:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.cook-step[data-direction=next]{animation:cook-step-next var(--dur) var(--ease-out)}.cook-step[data-direction=previous]{animation:cook-step-previous var(--dur) var(--ease-out)}.cook-step__heading{margin-bottom:var(--space-4);color:var(--ink-2);line-height:1.4}.cook-text{gap:var(--space-4);max-width:40ch;color:var(--ink);overflow-wrap:break-word;line-height:1.7;display:grid}.cook-text__lead{margin-bottom:var(--space-1);color:var(--ink-2);font-size:var(--text-small);display:block}.cook-text__tip{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--ink-2);line-height:1.6}[data-mode=dark] .cook-text__tip{background:color-mix(in srgb, var(--surface-hover) 70%, var(--surface))}.cook-text__list{gap:.5em;padding-inline-start:1.15em;list-style:outside;display:grid}.cook-text__list li::marker{color:var(--ink-3)}.cook-timer{border-radius:var(--radius-pill);background:var(--cook-raised);box-shadow:inset 0 0 0 1px var(--cook-raised-line);color:var(--ink);white-space:nowrap;transition:background-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease, color var(--dur-fast) ease;padding:.1em .5em .1em .4em;display:inline;position:relative}.cook-timer:before{content:"";position:absolute;inset:-.3em -.1em}@media (hover:hover){.cook-timer:hover{box-shadow:inset 0 0 0 1px var(--ink-3)}}.cook-timer:active{background:var(--surface-hover)}.cook-timer__icon{vertical-align:-.12em;width:.9em;height:.9em;margin-inline-end:.3em;display:inline-block}.cook-timer__clock{border-inline-start:1px solid var(--cook-raised-line);font-variant-numeric:tabular-nums;margin-inline-start:.4em;padding-inline-start:.45em}.cook-timer[data-status=running]{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--ink)}.cook-timer[data-status=paused]{background:var(--paused-fill);box-shadow:inset 0 0 0 1.5px var(--ink-2)}.cook-timer[data-status=paused] .cook-timer__clock{color:var(--ink-2)}.cook-timer[data-status=done]{background:var(--ink);box-shadow:none;color:var(--ink-inverse)}.cook-timer[data-status=done] .cook-timer__clock{border-color:color-mix(in srgb, var(--ink-inverse) 35%, transparent)}.cook-overnight{white-space:nowrap}.cook-overnight__icon{width:.85em;height:.85em;color:var(--ink-2);vertical-align:-.08em;margin-inline-end:.25em;display:inline-block}.cook-step__ingredients{padding-top:var(--space-5);border-top:1px solid var(--line)}.cook-label,.cook-ing-section__title{margin-bottom:var(--space-1);color:var(--ink-2);font-size:var(--text-small)}.cook-ings{display:grid}.cook-ing__row{align-items:start;gap:var(--space-3);min-height:var(--tap);cursor:pointer;grid-template-columns:1.5rem minmax(0,1fr);padding-block:.6875rem;display:grid}.cook-ing+.cook-ing .cook-ing__row{box-shadow:inset 0 1px 0 var(--line)}.cook-ing__input{opacity:0;width:1px;height:1px;margin:0;position:absolute}.cook-ing__box{border-radius:var(--radius-pill);width:1.5rem;height:1.5rem;box-shadow:inset 0 0 0 1.5px var(--ink-3);color:#0000;transition:background-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out);place-items:center;margin-top:.0625rem;display:grid}@media (hover:hover){.cook-ing__row:hover .cook-ing__box{box-shadow:inset 0 0 0 1.5px var(--ink-2)}}.cook-ing__row:active .cook-ing__box{transform:scale(.9)}.cook-ing__input:checked+.cook-ing__box{background:var(--ink);box-shadow:none;color:var(--ink-inverse)}.cook-ing__input:focus-visible+.cook-ing__box{outline:2px solid var(--focus);outline-offset:2px}.cook-ing__text{transition:color var(--dur-fast) ease;line-height:1.5}.cook-ing__qty{font-variant-numeric:tabular-nums}.cook-ing__hint,.cook-ing__note{color:var(--ink-2)}.cook-ing__optional{border-radius:var(--radius-pill);background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2);font-size:var(--text-small);vertical-align:.0625rem;padding:0 .5rem;line-height:1.5rem;text-decoration:none;display:inline-block}.cook-ing[data-checked=true] .cook-ing__text,.cook-ing[data-checked=true] .cook-ing__hint,.cook-ing[data-checked=true] .cook-ing__note{color:var(--ink-3);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--ink-3) 70%, transparent);text-decoration-color:color-mix(in srgb, var(--ink-3) 70%, transparent)}.cook-ing-sections{gap:var(--space-6);display:grid}.cook-step--all{gap:var(--space-4)}.cook-step--all .cook-step__heading{margin-bottom:0}.cook-step__serves,.cook-sheet__serves{color:var(--ink-2);font-size:var(--text-small)}.cook-sheet__serves{margin-bottom:var(--space-4)}.cook__nav{padding:var(--space-3) var(--gutter) calc(var(--space-3) + env(safe-area-inset-bottom));background:var(--surface);box-shadow:0 -1px 0 var(--line);flex:none}.cook__nav-inner{gap:var(--space-3);max-width:var(--cook-column);flex-wrap:wrap;margin-inline:auto;display:flex}.cook__nav-inner .btn{white-space:normal;min-width:0}.cook__back{flex:0 auto;padding-inline:1.125rem 1.375rem}.cook__back[aria-disabled=true]{opacity:.4;cursor:default}.cook__back[aria-disabled=true]:active{transform:none}.cook__next{flex:8rem}.cook__next[aria-disabled=true]{cursor:progress}.cook__error{max-width:var(--cook-column);margin:0 auto var(--space-3);color:var(--danger);font-size:var(--text-small);text-wrap:pretty}.cook__spinner{animation:.9s linear infinite cook-spin}.confirm{width:min(26rem, calc(100% - 2 * var(--gutter)));max-width:none;margin:auto auto calc(var(--space-3) + env(safe-area-inset-bottom));padding:var(--space-5);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-pop);color:var(--ink);border:0}.confirm[open]{gap:var(--space-1);animation:cook-rise var(--dur-slow) var(--ease-out);display:grid}.confirm::backdrop{animation:fade-in var(--dur) var(--ease-out);background:#1c1a166b}[data-mode=dark] .confirm::backdrop{background:#0000008f}.confirm__title{color:var(--ink)}.confirm__text{color:var(--ink-2)}.confirm__actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.confirm__actions .btn{white-space:normal;flex:auto;min-width:0;min-height:3rem}.cook-done{min-height:100%;padding:var(--space-8) var(--gutter);text-align:center;place-items:center;display:grid;position:relative;overflow:hidden}.cook-done__body{justify-items:center;gap:var(--space-2);width:100%;max-width:26rem;display:grid;position:relative}.cook-done__photo{aspect-ratio:1;width:9.5rem;margin-bottom:var(--space-4);animation:cook-pop .52s var(--ease-out) both;position:relative}.cook-done__photo img{object-fit:cover;border-radius:1.75rem;width:100%;height:100%;box-shadow:0 1rem 2.5rem #1c1a162e,0 0 0 1px #1c1a160f}[data-mode=dark] .cook-done__photo img{box-shadow:0 1rem 2.5rem #00000080,0 0 0 1px #ffffff0f}.cook-done__badge{border-radius:var(--radius-pill);background:var(--good);width:2.5rem;height:2.5rem;box-shadow:0 0 0 .25rem var(--surface);color:var(--ink-inverse);animation:cook-pop .42s .26s var(--ease-out) both;place-items:center;display:grid;position:absolute;bottom:-.5rem;right:-.5rem}.cook-done__title{color:var(--ink);animation:cook-rise .52s .12s var(--ease-out) both;outline:none;line-height:1.4}.cook-done__meta{color:var(--ink-2);animation:cook-rise .52s .18s var(--ease-out) both}.cook-done__rate{justify-items:center;gap:var(--space-1);width:100%;margin-top:var(--space-6);padding:var(--space-4) var(--space-4) var(--space-3);border-radius:var(--radius-xl);background:color-mix(in srgb, var(--surface) 72%, transparent);box-shadow:inset 0 0 0 1px var(--line);animation:cook-rise .52s .26s var(--ease-out) both;display:grid}.cook-done__question{color:var(--ink)}.cook-done__rate .stars__star{width:3rem;height:3rem}.cook-done__hint{min-height:1.25rem;color:var(--ink-2);font-size:var(--text-small)}@media (width>=48rem){.cook{--cook-column:30rem}.cook__status{padding-top:0}.cook-progress__bar{display:none}.cook-progress__nav{display:block}.cook-progress__nav li{flex:1;display:flex}.cook-progress__jump{border-radius:3px;flex:1;align-items:center;height:1.5rem;display:flex}.cook-progress__jump .cook-progress__segment{transition:height var(--dur-fast) var(--ease-out)}@media (hover:hover){.cook-progress__jump:hover .cook-progress__segment{height:.4375rem}.cook-progress__jump:hover .cook-progress__segment[data-state=todo]{background:var(--ink-3)}}.cook-step{padding-top:var(--space-6)}.cook__nav-inner .btn{min-height:3.5rem}.confirm{margin-block:auto}.cook__back{min-width:9rem}}@media (width>=64rem){.cook{--cook-column:46rem}.cook__bar{max-width:calc(var(--cook-column) + 2 * var(--gutter));margin-inline:auto}.cook-step{justify-content:space-between;gap:var(--space-12);grid-template-columns:minmax(0,40ch) 19rem;padding-top:clamp(2rem,8vh,5rem)}.cook-step__ingredients{padding-top:.25rem;border-top:0;border-inline-start:1px solid var(--line);align-self:start;padding-inline-start:var(--space-8)}.cook-step--all{grid-template-columns:minmax(0,1fr)}}@media (width>=64rem) and (hover:hover) and (pointer:fine){.cook__keys{display:inline-flex}}@media (forced-colors:active){.cook-timer,.cook-tray__item{border:1px solid canvastext}.cook-timer[data-status=running],.cook-timer[data-status=paused]{border-width:2px}.cook-timer[data-status=paused],.cook-tray__item[data-status=paused]{border-style:dashed}.cook-timer[data-status=done],.cook-tray__item[data-status=done]{color:highlighttext;forced-color-adjust:none;background:highlight}.cook-ing__box{border:1px solid canvastext}.cook-ing__input:not(:checked)+.cook-ing__box svg{visibility:hidden}.cook-progress__segment{forced-color-adjust:none;background:graytext}.cook-progress__segment:after{background:canvastext}.cook__key{border:1px solid canvastext}}@keyframes cook-in{0%{opacity:0;transform:translateY(1.5rem)}}@keyframes cook-step-next{0%{opacity:0;transform:translate(2rem)}}@keyframes cook-step-previous{0%{opacity:0;transform:translate(-2rem)}}@keyframes cook-pop{0%{opacity:0;transform:scale(.88)}}@keyframes cook-rise{0%{opacity:0;transform:translateY(.75rem)}}@keyframes cook-alarm{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--ink) 45%, transparent)}70%,to{box-shadow:0 0 0 .5rem color-mix(in srgb, var(--ink) 0%, transparent)}}@keyframes cook-ring{0%,50%,to{transform:rotate(0)}10%,30%{transform:rotate(-14deg)}20%,40%{transform:rotate(14deg)}}@keyframes cook-spin{to{transform:rotate(360deg)}}@media (width<=17.5rem){.cook-done .stars__star{width:2rem}}
