@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-normal-7BpKI3vF.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-normal-YHFkNujK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-normal-CFFu7zhK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-cyrillic-ext-wght-normal-c-5QAGAI.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-cyrillic-wght-normal-BMDVbyM7.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-greek-ext-wght-normal-BXZfsJY4.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-greek-wght-normal-Cc-u-6OI.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-vietnamese-wght-normal-BDs68eHQ.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-latin-ext-wght-normal-C8iNium2.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-latin-wght-normal-Bo_j9asI.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-cyrillic-ext-wght-italic-F_qGh3gi.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-cyrillic-wght-italic-BqzjwPnH.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-greek-ext-wght-italic-DBLPjGyR.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-greek-wght-italic-CXgqVJLg.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-vietnamese-wght-italic-Obd_lscc.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-latin-ext-wght-italic-B1mMy0tD.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-latin-wght-italic-DLiStKT6.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#faf5ec;--color-bg-sunken:#f2e9da;--color-surface:#fffcf7;--color-surface-raised:#fffcf7;--color-surface-hover:#f7efe3;--color-surface-pressed:#efe4d2;--color-line:#e6dac7;--color-line-strong:#8c7b6a;--color-text:#2b211a;--color-text-muted:#62544a;--color-text-subtle:#6f6052;--color-primary:#a8432a;--color-primary-hover:#8e3620;--color-primary-pressed:#7a2e19;--color-on-primary:#fff;--color-primary-text:#9a3c24;--color-primary-soft:#f7e2d6;--color-on-primary-soft:#7a2e19;--color-herb:#3d6a3e;--color-herb-soft:#e2edda;--color-on-herb-soft:#2a4e2c;--color-saffron:#b57514;--color-saffron-soft:#fbefd5;--color-on-saffron-soft:#6e4508;--color-saffron-bright:#f0b54a;--color-on-saffron-bright:#2b1a05;--color-delft:#24508c;--color-delft-soft:#e1eaf6;--color-on-delft-soft:#1c3f70;--color-danger:#b3261e;--color-danger-hover:#93201a;--color-on-danger:#fff;--color-danger-soft:#fbe3df;--color-on-danger-soft:#8a1c14;--color-inverse:#2b211a;--color-on-inverse:#faf5ec;--color-inverse-action:#f4a585;--color-tag-bg:#efe4d2;--color-tag-text:#2b211a;--color-star:var(--color-saffron);--color-star-empty:#ddd0bd;--color-star-outline:var(--color-line-strong);--color-focus:#24508c;--color-focus-halo:#faf5ec;--color-scrim:#1e140c73;--color-photo-scrim:#1a151299;--color-on-photo:#fff;--color-selection:#f4c9b4;--color-switch-thumb:#fff;--color-cook-bg:#fffcf7;--color-cook-panel:#f2e9da;--color-skeleton:#efe5d6;--color-skeleton-shine:#f8f2e8;--ph-1-bg:#f1e4d1;--ph-1-ink:#b39c82;--ph-2-bg:#f5dfd3;--ph-2-ink:#c08a73;--ph-3-bg:#e3e9d6;--ph-3-ink:#8f9d78;--ph-4-bg:#f6e8c9;--ph-4-ink:#c09a52;--avatar-1:#f7e2d6;--avatar-2:#e2edda;--avatar-3:#fbefd5;--avatar-4:#e1eaf6;--avatar-5:#efe0ea;--color-on-avatar:#2b211a;--shadow-1:0 1px 2px #4226120f, 0 1px 3px #42261214;--shadow-2:0 2px 4px #4226120f, 0 6px 16px #4226121a;--shadow-3:0 8px 24px #42261224, 0 2px 6px #42261214;--shadow-inset:inset 0 1px 2px #42261214;--edge-highlight:0 0 0 0 transparent;--paper-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .22 0 0 0 0 .1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--font-display:"Fraunces Variable", "Fraunces", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-body:"Source Sans 3 Variable", "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display-variation:"SOFT" 80, "WONK" 0;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1.0625rem;--text-md:1.1875rem;--text-lg:1.375rem;--text-xl:1.75rem;--text-2xl:clamp(2rem, 1.6rem + 1.8vw, 2.5rem);--text-3xl:clamp(2.25rem, 1.7rem + 2.6vw, 3.25rem);--cook-text:clamp(1.625rem, 1.2rem + 2vw, 2.375rem);--cook-step-num:clamp(3rem, 2rem + 4vw, 4.5rem);--cook-timer:clamp(3.5rem, 2rem + 8vw, 6rem);--cook-ingredient:clamp(1.25rem, 1rem + 1vw, 1.5rem);--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-display:580;--leading-tight:1.12;--leading-snug:1.3;--leading-normal:1.5;--leading-relaxed:1.6;--tracking-display:-.015em;--tracking-caps:.06em;--space-0:2px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--gutter:clamp(16px, 4vw, 32px);--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-pill:999px;--tap-min:48px;--tap-cook:64px;--control-h:52px;--control-h-sm:40px;--control-h-lg:60px;--icon-sm:18px;--icon-md:22px;--icon-lg:28px;--topbar-h:56px;--tabbar-h:64px;--rail-w:96px;--content-max:72rem;--reading-max:42rem;--card-min:160px;--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);--focus-width:3px;--focus-offset:2px;--focus-ring:0 0 0 var(--focus-offset) var(--color-focus-halo), 0 0 0 calc(var(--focus-offset) + var(--focus-width)) var(--color-focus);--dur-instant:80ms;--dur-fast:.14s;--dur-base:.22s;--dur-slow:.34s;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-emphasized:cubic-bezier(.3, 0, 0, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--z-sticky:10;--z-tabbar:20;--z-overlay:40;--z-sheet:50;--z-toast:60}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#1a1512;--color-bg-sunken:#14100d;--color-surface:#231d19;--color-surface-raised:#2c2520;--color-surface-hover:#2a231e;--color-surface-pressed:#332a24;--color-line:#3a312a;--color-line-strong:#857667;--color-text:#f4ece1;--color-text-muted:#c4b5a5;--color-text-subtle:#ae9f90;--color-primary:#ee8d68;--color-primary-hover:#f4a385;--color-primary-pressed:#f8b69c;--color-on-primary:#2a130a;--color-primary-text:#f29a78;--color-primary-soft:#45281d;--color-on-primary-soft:#f8c5af;--color-herb:#8ec187;--color-herb-soft:#1f301d;--color-on-herb-soft:#badbb3;--color-saffron:#f0b54a;--color-saffron-soft:#3a2c14;--color-on-saffron-soft:#f6d08a;--color-saffron-bright:#f0b54a;--color-on-saffron-bright:#2b1a05;--color-delft:#93b6ec;--color-delft-soft:#1b2a40;--color-on-delft-soft:#bcd2f4;--color-danger:#f2877a;--color-danger-hover:#f6a094;--color-on-danger:#2b0c08;--color-danger-soft:#401d19;--color-on-danger-soft:#f8b8ae;--color-inverse:#f4ece1;--color-on-inverse:#1a1512;--color-inverse-action:#9a3c24;--color-tag-bg:#352c25;--color-tag-text:#f4ece1;--color-star-empty:#4a3f37;--color-focus:#93b6ec;--color-focus-halo:#1a1512;--color-scrim:#0009;--color-photo-scrim:#14100d9e;--color-selection:#6b3a26;--color-switch-thumb:#1a1512;--color-cook-bg:#14100d;--color-cook-panel:#2c2520;--color-skeleton:#2a231e;--color-skeleton-shine:#352c26;--ph-1-bg:#2b241f;--ph-1-ink:#6f5f51;--ph-2-bg:#2f2320;--ph-2-ink:#7f5a4b;--ph-3-bg:#232820;--ph-3-ink:#5f6b51;--ph-4-bg:#2e2719;--ph-4-ink:#7d6a3f;--avatar-1:#45281d;--avatar-2:#1f301d;--avatar-3:#3a2c14;--avatar-4:#1b2a40;--avatar-5:#3a2335;--color-on-avatar:#f4ece1;--shadow-1:0 1px 2px #0006;--shadow-2:0 2px 6px #0006, 0 8px 20px #0000004d;--shadow-3:0 12px 32px #00000080, 0 2px 8px #00000059;--shadow-inset:inset 0 1px 2px #00000059;--edge-highlight:inset 0 1px 0 #fff0dc0d;--paper-grain:none}}:root[data-theme=dark],[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#1a1512;--color-bg-sunken:#14100d;--color-surface:#231d19;--color-surface-raised:#2c2520;--color-surface-hover:#2a231e;--color-surface-pressed:#332a24;--color-line:#3a312a;--color-line-strong:#857667;--color-text:#f4ece1;--color-text-muted:#c4b5a5;--color-text-subtle:#ae9f90;--color-primary:#ee8d68;--color-primary-hover:#f4a385;--color-primary-pressed:#f8b69c;--color-on-primary:#2a130a;--color-primary-text:#f29a78;--color-primary-soft:#45281d;--color-on-primary-soft:#f8c5af;--color-herb:#8ec187;--color-herb-soft:#1f301d;--color-on-herb-soft:#badbb3;--color-saffron:#f0b54a;--color-saffron-soft:#3a2c14;--color-on-saffron-soft:#f6d08a;--color-saffron-bright:#f0b54a;--color-on-saffron-bright:#2b1a05;--color-delft:#93b6ec;--color-delft-soft:#1b2a40;--color-on-delft-soft:#bcd2f4;--color-danger:#f2877a;--color-danger-hover:#f6a094;--color-on-danger:#2b0c08;--color-danger-soft:#401d19;--color-on-danger-soft:#f8b8ae;--color-inverse:#f4ece1;--color-on-inverse:#1a1512;--color-inverse-action:#9a3c24;--color-tag-bg:#352c25;--color-tag-text:#f4ece1;--color-star-empty:#4a3f37;--color-focus:#93b6ec;--color-focus-halo:#1a1512;--color-scrim:#0009;--color-photo-scrim:#14100d9e;--color-selection:#6b3a26;--color-switch-thumb:#1a1512;--color-cook-bg:#14100d;--color-cook-panel:#2c2520;--color-skeleton:#2a231e;--color-skeleton-shine:#352c26;--ph-1-bg:#2b241f;--ph-1-ink:#6f5f51;--ph-2-bg:#2f2320;--ph-2-ink:#7f5a4b;--ph-3-bg:#232820;--ph-3-ink:#5f6b51;--ph-4-bg:#2e2719;--ph-4-ink:#7d6a3f;--avatar-1:#45281d;--avatar-2:#1f301d;--avatar-3:#3a2c14;--avatar-4:#1b2a40;--avatar-5:#3a2335;--color-on-avatar:#f4ece1;--shadow-1:0 1px 2px #0006;--shadow-2:0 2px 6px #0006, 0 8px 20px #0000004d;--shadow-3:0 12px 32px #00000080, 0 2px 8px #00000059;--shadow-inset:inset 0 1px 2px #00000059;--edge-highlight:inset 0 1px 0 #fff0dc0d;--paper-grain:none}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background-color:var(--color-bg);background-image:var(--paper-grain);min-height:100dvh;color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);font-weight:var(--weight-regular);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}[data-theme]{background-color:var(--color-bg);background-image:var(--paper-grain);color:var(--color-text)}h1,h2,h3,h4{font-family:var(--font-display);font-variation-settings:var(--font-display-variation);font-optical-sizing:auto;font-weight:var(--weight-display);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}img,svg,video{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--color-primary-text);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}::selection{background:var(--color-selection);color:var(--color-text)}.num,time,data{font-variant-numeric:tabular-nums}:focus{outline:none}:focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}@media (forced-colors:active){:focus-visible{outline-color:highlight}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{min-height:100dvh;padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom))}.container{width:100%;max-width:var(--content-max);padding-inline:max(var(--gutter), var(--safe-left)) max(var(--gutter), var(--safe-right));margin-inline:auto}.container--reading{max-width:calc(var(--reading-max) + 2 * var(--gutter))}.stack{gap:var(--stack-gap,var(--space-4));flex-direction:column;display:flex}.cluster{align-items:center;gap:var(--cluster-gap,var(--space-2));flex-wrap:wrap;display:flex}.section{padding-block:var(--space-6)}.section-title{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);font-size:var(--text-lg);display:flex}.section-title>a,.section-title>button{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:0}.eyebrow{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted)}.muted{color:var(--color-text-muted)}.divider{background:var(--color-line);border:0;height:1px;margin:0}.btn{--btn-bg:transparent;--btn-fg:var(--color-text);--btn-border:transparent;--btn-bg-hover:var(--color-surface-hover);--btn-bg-active:var(--color-surface-pressed);justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-h);min-width:var(--tap-min);padding:0 var(--space-5);border:1.5px solid var(--btn-border);border-radius:var(--radius-md);background:var(--btn-bg);color:var(--btn-fg);font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-semibold);text-align:center;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-instant) var(--ease-out);line-height:1.2;text-decoration:none;display:inline-flex}.btn .lucide{width:var(--icon-md);height:var(--icon-md);flex:none}.btn:hover{background:var(--btn-bg-hover);text-decoration:none}.btn:active{background:var(--btn-bg-active);transform:scale(.98)}.btn--primary{--btn-bg:var(--color-primary);--btn-fg:var(--color-on-primary);--btn-bg-hover:var(--color-primary-hover);--btn-bg-active:var(--color-primary-pressed);box-shadow:var(--shadow-1)}.btn--secondary{--btn-bg:var(--color-surface);--btn-border:var(--color-line-strong)}.btn--tonal{--btn-bg:var(--color-primary-soft);--btn-fg:var(--color-on-primary-soft);--btn-bg-hover:color-mix(in srgb, var(--color-primary-soft) 85%, var(--color-primary));--btn-bg-active:color-mix(in srgb, var(--color-primary-soft) 75%, var(--color-primary))}.btn--ghost{--btn-fg:var(--color-primary-text);padding-inline:var(--space-3)}.btn--danger{--btn-bg:var(--color-danger);--btn-fg:var(--color-on-danger);--btn-bg-hover:var(--color-danger-hover);--btn-bg-active:var(--color-danger-hover)}.btn--danger-ghost{--btn-fg:var(--color-danger);--btn-bg-hover:var(--color-danger-soft);--btn-bg-active:var(--color-danger-soft);padding-inline:var(--space-3)}.btn--sm{min-height:var(--control-h-sm);padding-inline:var(--space-3);font-size:var(--text-sm);border-radius:var(--radius-sm)}.btn--sm .lucide{width:var(--icon-sm);height:var(--icon-sm)}.btn--lg{min-height:var(--control-h-lg);padding-inline:var(--space-6);font-size:var(--text-md)}.btn--block{width:100%;display:flex}.btn:disabled,.btn[aria-disabled=true]{--btn-bg:var(--color-bg-sunken);--btn-fg:var(--color-text-subtle);--btn-border:transparent;--btn-bg-hover:var(--btn-bg);--btn-bg-active:var(--btn-bg);box-shadow:none;cursor:not-allowed;transform:none}.btn--ghost:disabled,.btn--danger-ghost:disabled{--btn-bg:transparent}.btn[aria-busy=true]{cursor:progress}.btn[aria-busy=true] .lucide{display:none}.spinner{border:2.5px solid;border-right-color:#0000;border-radius:50%;flex:none;width:1.25em;height:1.25em;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{width:var(--tap-min);height:var(--tap-min);border-radius:var(--radius-pill);color:var(--color-text);cursor:pointer;touch-action:manipulation;transition:background-color var(--dur-fast) var(--ease-out), transform var(--dur-instant) var(--ease-out);background:0 0;border:0;flex:none;place-items:center;padding:0;display:inline-grid}.icon-btn .lucide{width:var(--icon-md);height:var(--icon-md)}.icon-btn:hover{background:var(--color-surface-hover)}.icon-btn:active{background:var(--color-surface-pressed);transform:scale(.94)}.icon-btn--filled{background:var(--color-surface);box-shadow:var(--shadow-1)}.icon-btn--photo{background:var(--color-photo-scrim);color:var(--color-on-photo);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.icon-btn--photo:hover,.icon-btn--photo:active{background:#14100dbf}.icon-btn--lg{width:var(--tap-cook);height:var(--tap-cook)}.icon-btn--lg .lucide{width:var(--icon-lg);height:var(--icon-lg)}.field{gap:var(--space-2);align-content:start;display:grid}.field__label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.field__optional{font-weight:var(--weight-regular);color:var(--color-text-muted)}.field__hint{font-size:var(--text-sm);color:var(--color-text-muted)}.field__error{align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-danger);display:flex}.field__error .lucide{width:var(--icon-sm);height:var(--icon-sm);flex:none;margin-top:2px}.field-row{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));display:grid}.input,.textarea,.select{width:100%;min-height:var(--control-h);padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-line-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:max(16px, var(--text-base));line-height:var(--leading-snug);appearance:none;transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);display:block}.input::placeholder,.textarea::placeholder{color:var(--color-text-subtle);opacity:1}.input:hover,.textarea:hover,.select:hover{border-color:var(--color-text-muted)}.input:focus-visible,.textarea:focus-visible,.select:focus-visible{border-color:var(--color-focus);outline:var(--focus-width) solid var(--color-focus);outline-offset:1px}.input[aria-invalid=true],.textarea[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--color-danger);border-width:2px}.input:disabled,.textarea:disabled,.select:disabled{background:var(--color-bg-sunken);color:var(--color-text-muted);cursor:not-allowed;border-style:dashed}.textarea{resize:vertical;min-height:7.5rem;line-height:var(--leading-relaxed)}.input--title{font-family:var(--font-display);font-variation-settings:var(--font-display-variation);font-size:var(--text-lg);font-weight:var(--weight-display)}.select-wrap{position:relative}.select-wrap .select{padding-right:var(--space-12);cursor:pointer}.select-wrap:after{content:"";right:var(--space-4);background:var(--color-text-muted);pointer-events:none;width:20px;height:20px;position:absolute;top:50%;translate:0 -50%;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}.input-group{position:relative}.input-group>.lucide{left:var(--space-4);width:var(--icon-md);height:var(--icon-md);color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;translate:0 -50%}.input-group>.input{padding-left:calc(var(--space-4) + var(--icon-md) + var(--space-3))}.input-group>.icon-btn{position:absolute;top:50%;right:2px;translate:0 -50%}.input-group:has(>.icon-btn)>.input{padding-right:var(--space-12)}.search .input{border-radius:var(--radius-pill);background:var(--color-bg-sunken);min-height:var(--control-h);border-color:#0000}.search .input:hover{border-color:var(--color-line-strong)}.search .input::-webkit-search-cancel-button{display:none}.check{align-items:center;gap:var(--space-3);min-height:var(--tap-min);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.check input{appearance:none;border:2px solid var(--color-line-strong);border-radius:var(--radius-xs);background:var(--color-surface);cursor:pointer;width:26px;height:26px;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);flex:none;place-items:center;margin:0;display:grid}.check input:after{content:"";background:var(--color-surface);width:70%;height:70%;transition:scale var(--dur-fast) var(--ease-spring);scale:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat}.check input:checked{background:var(--color-herb);border-color:var(--color-herb)}.check input:checked:after{scale:1}.check--strike:has(input:checked) .check__label{color:var(--color-text-muted);text-decoration:line-through;text-decoration-thickness:2px}.switch{appearance:none;border-radius:var(--radius-pill);background:var(--color-line-strong);cursor:pointer;width:52px;height:32px;transition:background-color var(--dur-base) var(--ease-out);flex:none;margin:0;position:relative}.switch:before{content:"";background:var(--color-switch-thumb);width:24px;height:24px;box-shadow:var(--shadow-1);transition:translate var(--dur-base) var(--ease-spring);border-radius:50%;position:absolute;top:4px;left:4px}.switch:checked{background:var(--color-primary)}.switch:checked:before{translate:20px}.segmented{gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-md);background:var(--color-bg-sunken);grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.segmented__option{justify-content:center;align-items:center;gap:var(--space-2);min-width:44px;min-height:40px;padding:0 var(--space-3);border-radius:calc(var(--radius-md) - 4px);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;display:inline-flex}.segmented__option .lucide{width:var(--icon-sm);height:var(--icon-sm)}.segmented__option input{opacity:0;pointer-events:none;position:absolute}.segmented__option[aria-pressed=true]{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-1), var(--edge-highlight)}.segmented__option:has(input:checked){background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-1), var(--edge-highlight)}.segmented__option:has(input:focus-visible){outline:var(--focus-width) solid var(--color-focus);outline-offset:1px}.stepper{align-items:center;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-pill);background:var(--color-bg-sunken);display:inline-flex}.stepper__value{text-align:center;min-width:6.5rem;font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.stepper .icon-btn{background:var(--color-surface);box-shadow:var(--shadow-1)}.chip-row{gap:var(--space-2);overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding-block:var(--space-1);margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.chip-row>*{scroll-snap-align:start;flex:none}.chip{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border:1.5px solid var(--color-line-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;cursor:pointer;touch-action:manipulation;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);display:inline-flex}.chip .lucide{width:var(--icon-sm);height:var(--icon-sm);flex:none}.chip:hover{background:var(--color-surface-hover)}.chip__check{display:none}.chip[aria-pressed=true],.chip[aria-checked=true]{background:var(--color-inverse);border-color:var(--color-inverse);color:var(--color-on-inverse)}.chip[aria-pressed=true] .chip__check,.chip[aria-checked=true] .chip__check{display:block}.chip__count{color:inherit;opacity:.8;font-variant-numeric:tabular-nums}.chip--menu:after{content:"";width:16px;height:16px;margin-right:calc(var(--space-1) * -1);background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}.tag-list{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.tag{align-items:center;gap:var(--space-1);min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-tag-bg);color:var(--color-tag-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;border:1.5px solid #0000;line-height:1.2;text-decoration:none;display:inline-flex}.tag .lucide{flex:none;width:16px;height:16px}a.tag:hover,button.tag:hover{background:var(--color-surface-pressed)}.tag--sm{min-height:28px;padding:0 var(--space-2);font-size:var(--text-xs)}.tag--suggested{background:var(--color-saffron-soft);color:var(--color-on-saffron-soft);border-style:dashed;border-color:var(--color-saffron);padding-right:var(--space-1)}.tag--rejected{color:var(--color-text-muted);border-color:var(--color-line);padding-right:var(--space-1);background:0 0}.tag--rejected .tag__label{text-decoration:line-through;text-decoration-thickness:1.5px}.tag__action{width:32px;height:32px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;margin-block:-2px;padding:0;display:inline-grid;position:relative}.tag__action .lucide{width:18px;height:18px}.tag__action:hover{background:#00000014}.tag__action--accept{background:var(--color-surface);color:var(--color-herb);box-shadow:var(--shadow-1)}.tag__action--accept:hover{background:var(--color-herb-soft)}.stars{--stars-size:18px;--rating:0;--star-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z'/%3E%3C/svg%3E");align-items:center;gap:var(--space-2);vertical-align:middle;display:inline-flex}.stars__meter{width:calc(var(--stars-size) * 5);height:var(--stars-size);background:linear-gradient(90deg, var(--color-star) calc(var(--rating) / 5 * 100%), var(--color-star-empty) 0);-webkit-mask:var(--star-mask) 0 0 / var(--stars-size) var(--stars-size) repeat-x;-webkit-mask:var(--star-mask) 0 0 / var(--stars-size) var(--stars-size) repeat-x;mask:var(--star-mask) 0 0 / var(--stars-size) var(--stars-size) repeat-x;flex:none;display:block}.stars__value{font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-text)}.stars__count{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.stars--sm{--stars-size:14px;font-size:var(--text-sm);gap:var(--space-1)}.stars--lg{--stars-size:24px;font-size:var(--text-md)}.stars--compact .stars__meter{width:var(--stars-size);background:var(--color-star)}.star-input{border:0;gap:0;margin:0;padding:0;display:inline-flex}.star-input__star{width:var(--tap-min);height:var(--tap-min);border-radius:var(--radius-sm);color:var(--color-star-outline);cursor:pointer;touch-action:manipulation;place-items:center;display:grid}.star-input__star .lucide{fill:#0000;stroke-width:1.75px;width:34px;height:34px;transition:fill var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-base) var(--ease-spring)}@media (hover:hover){.star-input__star:hover .lucide{transform:scale(1.12)}}.star-input__star:has(input:focus-visible){outline:var(--focus-width) solid var(--color-focus);outline-offset:-2px}:is(.star-input:has(input[value="1"]:checked) .star-input__star:nth-of-type(-n+1),.star-input:has(input[value="2"]:checked) .star-input__star:nth-of-type(-n+2),.star-input:has(input[value="3"]:checked) .star-input__star:nth-of-type(-n+3),.star-input:has(input[value="4"]:checked) .star-input__star:nth-of-type(-n+4),.star-input:has(input[value="5"]:checked) .star-input__star:nth-of-type(-n+5)){color:var(--color-star)}:is(.star-input:has(input[value="1"]:checked) .star-input__star:nth-of-type(-n+1) .lucide,.star-input:has(input[value="2"]:checked) .star-input__star:nth-of-type(-n+2) .lucide,.star-input:has(input[value="3"]:checked) .star-input__star:nth-of-type(-n+3) .lucide,.star-input:has(input[value="4"]:checked) .star-input__star:nth-of-type(-n+4) .lucide,.star-input:has(input[value="5"]:checked) .star-input__star:nth-of-type(-n+5) .lucide){fill:currentColor}.star-input__star:has(input:checked) .lucide{animation:star-pop var(--dur-slow) var(--ease-spring)}.star-input__caption{min-height:1.5em;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted)}@keyframes star-pop{0%{transform:scale(.7)}60%{transform:scale(1.2)}to{transform:scale(1)}}.photo{background:var(--color-bg-sunken);position:relative;overflow:hidden}.photo>img{object-fit:cover;width:100%;height:100%}.photo>img[data-loading]{opacity:0}.photo>img{transition:opacity var(--dur-slow) var(--ease-out)}.photo-placeholder{--placeholder-url:url(/placeholder-dish.svg);--ph-bg:var(--ph-1-bg);--ph-ink:var(--ph-1-ink);background:var(--ph-bg);position:relative;overflow:hidden}.photo-placeholder:before{content:"";background:var(--ph-ink);-webkit-mask:var(--placeholder-url) center / contain no-repeat;-webkit-mask:var(--placeholder-url) center / contain no-repeat;mask:var(--placeholder-url) center / contain no-repeat;position:absolute;inset:14% 12%}.photo-placeholder[data-tint="2"]{--ph-bg:var(--ph-2-bg);--ph-ink:var(--ph-2-ink)}.photo-placeholder[data-tint="3"]{--ph-bg:var(--ph-3-bg);--ph-ink:var(--ph-3-ink)}.photo-placeholder[data-tint="4"]{--ph-bg:var(--ph-4-bg);--ph-ink:var(--ph-4-ink)}.badge{align-items:center;gap:var(--space-1);min-height:24px;padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--color-tag-bg);color:var(--color-text);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.02em;white-space:nowrap;display:inline-flex}.badge .lucide{width:14px;height:14px}.badge--draft{background:var(--color-saffron-soft);color:var(--color-on-saffron-soft)}.badge--success{background:var(--color-herb-soft);color:var(--color-on-herb-soft)}.badge--info{background:var(--color-delft-soft);color:var(--color-on-delft-soft)}.badge--danger{background:var(--color-danger-soft);color:var(--color-on-danger-soft)}.badge--on-photo{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-1)}.count{border-radius:var(--radius-pill);background:var(--color-primary);min-width:20px;height:20px;color:var(--color-on-primary);font-size:12px;font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;place-items:center;padding:0 6px;line-height:1;display:inline-grid}.avatar{--avatar-size:36px;width:var(--avatar-size);height:var(--avatar-size);background:var(--avatar-1);color:var(--color-on-avatar);font-size:calc(var(--avatar-size) * .4);font-weight:var(--weight-bold);border-radius:50%;flex:none;place-items:center;line-height:1;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar[data-tint="2"]{background:var(--avatar-2)}.avatar[data-tint="3"]{background:var(--avatar-3)}.avatar[data-tint="4"]{background:var(--avatar-4)}.avatar[data-tint="5"]{background:var(--avatar-5)}.avatar--sm{--avatar-size:28px}.avatar--lg{--avatar-size:48px}.card-grid{grid-template-columns:repeat(auto-fill, minmax(min(var(--card-min), 100%), 1fr));gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.card-grid>li{min-width:0;display:flex}.card-grid>li>.recipe-card{flex:1}@media (min-width:600px){.card-grid{--card-min:220px;gap:var(--space-5)}}.recipe-card{border-radius:var(--radius-lg);background:var(--color-surface);min-width:0;color:inherit;box-shadow:var(--shadow-1), var(--edge-highlight);isolation:isolate;transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:hidden}@media (hover:hover){.recipe-card:hover{box-shadow:var(--shadow-2), var(--edge-highlight);transform:translateY(-2px)}.recipe-card:hover .recipe-card__media img{scale:1.03}}.recipe-card:active{transform:scale(.985)}.recipe-card:focus-visible{outline-offset:3px}.recipe-card__media{aspect-ratio:4/3}.recipe-card__media img{transition:scale var(--dur-slow) var(--ease-out)}.recipe-card__badges{top:var(--space-2);left:var(--space-2);gap:var(--space-1);z-index:1;display:flex;position:absolute}.recipe-card__body{gap:var(--space-1);padding:var(--space-3) var(--space-3) var(--space-4);flex-direction:column;display:flex}.recipe-card__title{font-family:var(--font-display);font-variation-settings:var(--font-display-variation);font-size:var(--text-md);font-weight:var(--weight-display);line-height:var(--leading-snug);letter-spacing:-.005em;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.recipe-card__meta{align-items:center;gap:var(--space-1) var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.meta-item{white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:5px;display:inline-flex}.meta-item .lucide{flex:none;width:16px;height:16px}.recipe-card--feature .recipe-card__media{aspect-ratio:4/3}@media (min-width:600px){.recipe-card--feature .recipe-card__media{aspect-ratio:16/9}}.recipe-card--feature .recipe-card__body{padding:var(--space-12) var(--space-4) var(--space-4);color:#fffaf3;background:linear-gradient(#14100d00 0%,#14100dbd 45%,#14100dd1 100%);position:absolute;inset:auto 0 0}.recipe-card--feature .recipe-card__title{font-size:var(--text-xl);-webkit-line-clamp:3}.recipe-card--feature .recipe-card__meta{color:#f1e6d8}.recipe-card--feature .stars__value{color:inherit}.list{border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1), var(--edge-highlight);margin:0;padding:0;list-style:none;overflow:hidden}.list--plain{box-shadow:none;background:0 0;border-radius:0}.list__header{padding:var(--space-5) var(--space-4) var(--space-2)}.list-row{align-items:center;gap:var(--space-3);min-height:76px;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-3);color:inherit;text-align:left;cursor:pointer;width:100%;transition:background-color var(--dur-fast) var(--ease-out);background:0 0;border:0;grid-template-columns:auto 1fr auto;text-decoration:none;display:grid;position:relative}.list-row:hover{background:var(--color-surface-hover)}.list-row:active{background:var(--color-surface-pressed)}.list-row:focus-visible{outline-offset:-3px;border-radius:var(--radius-md)}.list>li+li>.list-row:before,.list-row+.list-row:before{content:"";top:0;right:0;left:calc(var(--space-3) + 64px + var(--space-3));background:var(--color-line);height:1px;position:absolute}.list-row__thumb{border-radius:var(--radius-sm);width:64px;height:64px}.list-row__icon{border-radius:var(--radius-sm);background:var(--color-bg-sunken);width:40px;height:40px;color:var(--color-text);place-items:center;display:grid}.list-row__icon .lucide{width:var(--icon-md);height:var(--icon-md)}.list-row__body{gap:2px;min-width:0;display:grid}.list-row__title{font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-snug);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list-row__meta{gap:0 var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.list-row__end{align-items:center;gap:var(--space-2);color:var(--color-text-muted);display:flex}.list-row__end>.lucide{width:20px;height:20px}.list-row--setting{min-height:60px}.list-row--setting+.list-row--setting:before,.list>li+li>.list-row--setting:before{left:calc(var(--space-3) + 40px + var(--space-3))}.list-row--danger,.list-row--danger .list-row__icon{color:var(--color-danger)}.topbar{z-index:var(--z-sticky);align-items:center;gap:var(--space-1);min-height:calc(var(--topbar-h) + var(--safe-top));padding:var(--safe-top) max(var(--space-1), var(--safe-right)) 0 max(var(--space-1), var(--safe-left));background:color-mix(in srgb, var(--color-bg) 86%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(16px);backdrop-filter:saturate(1.4)blur(16px);transition:border-color var(--dur-base) var(--ease-out), background-color var(--dur-base) var(--ease-out);border-bottom:1px solid #0000;display:flex;position:sticky;top:0}.topbar.is-scrolled{border-bottom-color:var(--color-line)}.topbar__title{min-width:0;padding-inline:var(--space-2);font-family:var(--font-display);font-variation-settings:var(--font-display-variation);font-size:1.25rem;font-weight:var(--weight-display);letter-spacing:var(--tracking-display);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.topbar__actions{align-items:center;gap:0;margin-left:auto;display:flex}.topbar__large-title{padding:var(--space-2) var(--gutter) var(--space-3);font-size:var(--text-3xl)}.topbar__large-title .logo{width:auto;height:40px;color:var(--color-text)}.topbar--overlay{-webkit-backdrop-filter:none;backdrop-filter:none;padding-inline:max(var(--space-2), var(--safe-left)) max(var(--space-2), var(--safe-right));background:0 0;position:absolute;inset:0 0 auto}.tabbar{z-index:var(--z-tabbar);padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left);background:color-mix(in srgb, var(--color-surface) 92%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(16px);backdrop-filter:saturate(1.4)blur(16px);border-top:1px solid var(--color-line);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;inset:auto 0 0}.tabbar__item{min-height:var(--tabbar-h);padding:var(--space-1) 0;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;touch-action:manipulation;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex;position:relative}.tabbar__icon{border-radius:var(--radius-pill);width:60px;height:32px;transition:background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);place-items:center;display:grid;position:relative}.tabbar__icon .lucide{width:24px;height:24px}.tabbar__item:hover .tabbar__icon{background:var(--color-surface-hover)}.tabbar__item[aria-current=page]{color:var(--color-primary-text);font-weight:var(--weight-bold)}.tabbar__item[aria-current=page] .tabbar__icon{background:var(--color-primary-soft);color:var(--color-on-primary-soft)}.tabbar__item[aria-current=page] .tabbar__icon .lucide{stroke-width:2.25px}.tabbar__item:focus-visible{outline-offset:-4px;border-radius:var(--radius-md)}.tabbar__item--action .tabbar__icon{border-radius:var(--radius-md);background:var(--color-primary);width:52px;height:40px;color:var(--color-on-primary);box-shadow:var(--shadow-2)}.tabbar__item--action:hover .tabbar__icon{background:var(--color-primary-hover)}.tabbar__item--action{color:var(--color-text)}.tabbar__icon .count{box-shadow:0 0 0 2px var(--color-surface);position:absolute;top:-4px;right:6px}@media (min-width:960px){.app-shell{padding-bottom:0;padding-left:calc(var(--rail-w) + var(--safe-left))}.tabbar{width:calc(var(--rail-w) + var(--safe-left));align-content:center;gap:var(--space-3);padding:var(--safe-top) 0 var(--safe-bottom) var(--safe-left);border-top:0;border-right:1px solid var(--color-line);grid-auto-rows:max-content;grid-auto-flow:row;inset:0 auto 0 0}.tabbar__item{gap:var(--space-1);min-height:72px}.toast-region{bottom:var(--space-6);left:var(--rail-w)}}.sheet{z-index:var(--z-sheet);border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--color-surface-raised);width:100%;max-width:100%;max-height:92dvh;color:var(--color-text);box-shadow:var(--shadow-3), var(--edge-highlight);overscroll-behavior:contain;border:0;flex-direction:column;margin:0;padding:0;display:none;position:fixed;inset:auto 0 0;overflow:hidden}.sheet[open],.sheet.is-open{animation:sheet-in var(--dur-slow) var(--ease-emphasized);display:flex}.sheet::backdrop{background:var(--color-scrim);animation:fade-in var(--dur-base) var(--ease-out)}.sheet__grabber{border-radius:var(--radius-pill);background:var(--color-line-strong);opacity:.6;flex:none;width:40px;height:5px;margin:10px auto 2px}.sheet__header{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-5);display:flex}.sheet__title{font-size:var(--text-lg)}.sheet__body{padding:var(--space-2) var(--space-5) var(--space-5);flex:1;overflow-y:auto}.sheet__footer{gap:var(--space-3);padding:var(--space-3) var(--space-5) calc(var(--space-3) + var(--safe-bottom));border-top:1px solid var(--color-line);background:var(--color-surface-raised);display:flex}.sheet__footer>.btn{flex:1}.sheet__actions{gap:var(--space-2);display:grid}@media (min-width:600px){.sheet{border-radius:var(--radius-xl);width:min(560px,100% - 48px);max-height:min(85dvh,760px);margin:auto;inset:0}.sheet[open],.sheet.is-open{animation-name:modal-in}.sheet__grabber{display:none}.sheet__header{padding-top:var(--space-4)}.sheet__footer{padding-bottom:var(--space-4);justify-content:flex-end}.sheet__footer>.btn{flex:none}}.sheet--dialog{border-radius:var(--radius-xl);width:min(420px,100% - 32px);height:-moz-fit-content;height:fit-content;margin:auto;inset:0}.sheet--dialog[open],.sheet--dialog.is-open{animation-name:modal-in}.sheet--dialog .sheet__grabber{display:none}.sheet--dialog .sheet__header{padding-top:var(--space-5)}.sheet--dialog .sheet__footer{padding-bottom:var(--space-5);border-top:0}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.toast-region{inset:auto 0 calc(var(--tabbar-h) + var(--safe-bottom) + var(--space-3)) 0;z-index:var(--z-toast);align-items:center;gap:var(--space-2);padding-inline:var(--gutter);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);width:100%;max-width:30rem;min-height:56px;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-inverse);color:var(--color-on-inverse);box-shadow:var(--shadow-3);font-weight:var(--weight-medium);pointer-events:auto;animation:toast-in var(--dur-slow) var(--ease-emphasized);display:flex;position:relative;overflow:hidden}.toast:before{content:"";background:var(--toast-accent,transparent);width:4px;position:absolute;inset:0 auto 0 0}.toast>.lucide{width:var(--icon-md);height:var(--icon-md);flex:none}.toast__text{flex:1;min-width:0}.toast__action{min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-inverse-action);font-weight:var(--weight-bold);cursor:pointer;background:0 0;border:0;flex:none}.toast__action:hover{background:color-mix(in srgb, var(--color-on-inverse) 10%, transparent)}.toast--success{--toast-accent:var(--color-herb)}.toast--error{--toast-accent:var(--color-danger)}.toast.is-leaving{animation:toast-out var(--dur-base) var(--ease-in-out) forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(8px)}}.banner{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-delft-soft);color:var(--color-on-delft-soft);display:flex}.banner>.lucide{width:var(--icon-md);height:var(--icon-md);flex:none;margin-top:1px}.banner__body{gap:var(--space-1);flex:1;display:grid}.banner__title{font-weight:var(--weight-bold)}.banner--warning{background:var(--color-saffron-soft);color:var(--color-on-saffron-soft)}.banner--danger{background:var(--color-danger-soft);color:var(--color-on-danger-soft)}.banner--success{background:var(--color-herb-soft);color:var(--color-on-herb-soft)}.banner .btn--ghost{--btn-fg:currentColor;margin:calc(var(--space-2) * -1) calc(var(--space-2) * -1) calc(var(--space-2) * -1) 0}.empty-state{justify-items:center;gap:var(--space-3);max-width:26rem;padding:var(--space-12) var(--gutter);text-align:center;margin-inline:auto;display:grid}.empty-state__art{--placeholder-url:url(/placeholder-dish.svg);aspect-ratio:4/3;width:min(220px,60vw);margin-bottom:var(--space-2);background:var(--color-line-strong);opacity:.75;-webkit-mask:var(--empty-art,var(--placeholder-url)) center / contain no-repeat;-webkit-mask:var(--empty-art,var(--placeholder-url)) center / contain no-repeat;mask:var(--empty-art,var(--placeholder-url)) center / contain no-repeat}.empty-state__title{font-size:var(--text-xl)}.empty-state__text{color:var(--color-text-muted);max-width:32ch}.empty-state__actions{gap:var(--space-2);width:100%;max-width:18rem;margin-top:var(--space-3);display:grid}.skeleton{border-radius:var(--radius-xs);background:var(--color-skeleton);display:block;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent, var(--color-skeleton-shine), transparent);animation:shimmer 1.6s var(--ease-in-out) infinite;position:absolute;inset:0;translate:-100%}.skeleton--text{border-radius:var(--radius-pill);height:.9em;margin-block:.3em}.skeleton--title{border-radius:var(--radius-pill);width:80%;height:1.3em}.skeleton--media{aspect-ratio:4/3;border-radius:0}.skeleton--thumb{border-radius:var(--radius-sm);width:64px;height:64px}.skeleton--circle{border-radius:50%}.skeleton-card{border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1);overflow:hidden}.skeleton-card__body{padding:var(--space-3) var(--space-3) var(--space-4)}@keyframes shimmer{to{translate:100%}}@media (prefers-reduced-motion:reduce){.skeleton:after{display:none}}.progress{--progress:0%;border-radius:var(--radius-pill);background:var(--color-bg-sunken);height:6px;position:relative;overflow:hidden}.progress:after{content:"";width:var(--progress);border-radius:inherit;background:var(--color-primary);transition:width var(--dur-base) var(--ease-out);position:absolute;inset:0 auto 0 0}.progress--indeterminate:after{width:35%;animation:indeterminate 1.4s var(--ease-in-out) infinite}@keyframes indeterminate{0%{translate:-100%}to{translate:300%}}.hero{aspect-ratio:4/3;width:100%;max-height:62vh;position:relative}.hero:after{content:"";pointer-events:none;background:linear-gradient(#14100d59,#0000);height:96px;position:absolute;inset:0 0 auto}.hero.photo-placeholder:after{display:none}.recipe-header{gap:var(--space-3);margin-top:calc(var(--radius-xl) * -1);padding:var(--space-6) var(--gutter) var(--space-4);border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--color-bg);background-image:var(--paper-grain);display:grid;position:relative}.recipe-title{font-size:var(--text-2xl)}.recipe-summary{font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--color-text-muted)}.facts{gap:var(--space-2) var(--space-4);font-size:var(--text-base);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.facts .meta-item .lucide{width:18px;height:18px}.action-bar{gap:var(--space-3);display:flex}.action-bar>.btn--primary{flex:1}@media (min-width:960px){.hero{border-radius:var(--radius-lg);max-height:520px;overflow:hidden}.recipe-header{border-radius:0;margin-top:0;padding-inline:0}}.ingredients{margin:0;padding:0;list-style:none}.ingredients__group{margin-top:var(--space-5);margin-bottom:var(--space-1);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted)}.ingredient{gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px dashed var(--color-line);font-size:var(--text-md);line-height:var(--leading-snug);grid-template-columns:minmax(4.5rem,max-content) 1fr;align-items:baseline;display:grid}.ingredient__qty{font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;text-align:right;min-width:4.5rem}.ingredient__note{color:var(--color-text-muted);font-style:italic}.steps{counter-reset:step;gap:var(--space-5);margin:0;padding:0;list-style:none;display:grid}.step{counter-increment:step;gap:var(--space-3);font-size:var(--text-md);line-height:var(--leading-relaxed);grid-template-columns:2.25rem 1fr;display:grid}.step:before{content:counter(step);font-family:var(--font-display);font-variation-settings:var(--font-display-variation);font-size:var(--text-xl);font-weight:var(--weight-display);color:var(--color-primary-text);text-align:right;padding-top:2px;line-height:1}.step__body{gap:var(--space-2);justify-items:start;display:grid}.timer-chip{align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-3) 0 var(--space-2);border-radius:var(--radius-pill);background:var(--color-saffron-soft);color:var(--color-on-saffron-soft);font-size:var(--text-sm);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;cursor:pointer;border:0;display:inline-flex}.timer-chip .lucide{width:18px;height:18px}.timer-chip:hover{background:color-mix(in srgb, var(--color-saffron-soft) 80%, var(--color-saffron))}.log{gap:var(--space-3);padding-block:var(--space-4);grid-template-columns:auto 1fr;display:grid}.log+.log{border-top:1px solid var(--color-line)}.log__head{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.log__author{font-weight:var(--weight-bold)}.log__date{font-size:var(--text-sm);color:var(--color-text-muted)}.log__body{gap:var(--space-2);min-width:0;display:grid}.log__text{line-height:var(--leading-relaxed)}.adjustment{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-herb-soft);color:var(--color-on-herb-soft);line-height:var(--leading-snug);display:flex}.adjustment>.lucide{flex:none;width:20px;height:20px;margin-top:1px}.adjustment__label{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase;margin-bottom:2px;display:block}.photo-drop{place-items:center;gap:var(--space-2);min-height:168px;padding:var(--space-6);border:2px dashed var(--color-line-strong);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-muted);text-align:center;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);display:grid}.photo-drop .lucide{stroke-width:1.75px;width:36px;height:36px;color:var(--color-primary-text)}.photo-drop__title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text)}.photo-drop:hover,.photo-drop.is-dragover{background:var(--color-primary-soft);border-color:var(--color-primary)}.photo-drop:has(input:focus-visible){outline:var(--focus-width) solid var(--color-focus);outline-offset:2px}.thumb-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(88px,1fr));display:grid}.thumb{aspect-ratio:1;border-radius:var(--radius-sm);position:relative}.thumb .icon-btn{width:40px;height:40px;position:absolute;top:2px;right:2px}.queue{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.queue-item{align-items:center;gap:var(--space-3);padding:var(--space-2);padding-right:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-1), var(--edge-highlight);color:inherit;grid-template-columns:64px 1fr auto;text-decoration:none;display:grid}.queue-item__thumb{border-radius:var(--radius-sm);width:64px;height:64px}.queue-item__title{font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.status{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);align-items:center;gap:6px;display:inline-flex}.status .lucide{flex:none;width:16px;height:16px}.status--busy .lucide{animation:1.2s linear infinite spin}.status--ready{color:var(--color-herb)}.status--error{color:var(--color-danger)}.auth{align-content:center;justify-items:center;gap:var(--space-6);min-height:100dvh;padding:calc(var(--space-8) + var(--safe-top)) var(--gutter) calc(var(--space-8) + var(--safe-bottom));text-align:center;display:grid}.auth__mark{width:112px;height:112px;box-shadow:var(--shadow-2);border-radius:28px}.auth__title{font-size:var(--text-3xl)}.auth__text{max-width:30ch;font-size:var(--text-md);color:var(--color-text-muted)}.auth__actions{gap:var(--space-3);width:100%;max-width:22rem;display:grid}.cook{--cook-gutter:clamp(20px, 5vw, 48px);z-index:var(--z-overlay);background:var(--color-cook-bg);color:var(--color-text);grid-template-rows:auto auto 1fr auto;display:grid;position:fixed;inset:0}.cook__bar{align-items:center;gap:var(--space-2);padding:calc(var(--space-2) + var(--safe-top)) max(var(--space-2), var(--safe-right)) var(--space-2) max(var(--space-2), var(--safe-left));display:flex}.cook__bar .icon-btn{width:var(--tap-cook);height:var(--tap-cook)}.cook__bar .icon-btn .lucide{width:var(--icon-lg);height:var(--icon-lg)}.cook__title{min-width:0;font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cook__awake{font-size:var(--text-sm);color:var(--color-text-muted);align-items:center;gap:6px;display:inline-flex}.cook__awake .lucide{width:18px;height:18px;color:var(--color-saffron)}.cook__progress{padding:0 var(--cook-gutter);gap:6px;display:flex}.cook__progress-seg{border-radius:var(--radius-pill);background:var(--color-line);height:6px;transition:background-color var(--dur-base) var(--ease-out);flex:1}.cook__progress-seg.is-done{background:var(--color-primary)}.cook__progress-seg[aria-current=step]{background:var(--color-primary);opacity:.55}.cook__main{padding:var(--space-6) var(--cook-gutter) var(--space-8);overflow-y:auto}.cook__step{gap:var(--space-6);align-content:start;max-width:44rem;margin-inline:auto;display:grid}.cook__step-num{font-family:var(--font-display);font-variation-settings:var(--font-display-variation);font-size:var(--cook-step-num);font-weight:var(--weight-display);color:var(--color-primary-text);line-height:.9}.cook__step-num small{color:var(--color-text-muted);font-size:.4em;font-weight:var(--weight-medium)}.cook__step-text{font-size:var(--cook-text);font-weight:var(--weight-medium);text-wrap:pretty;line-height:1.38}.cook__step-text strong{font-weight:var(--weight-bold);color:var(--color-primary-text)}.cook__next{gap:var(--space-1);padding-top:var(--space-4);border-top:1px solid var(--color-line);font-size:var(--text-md);color:var(--color-text-muted);display:grid}.cook__nav{gap:var(--space-3);padding:var(--space-3) max(var(--cook-gutter), var(--safe-right)) calc(var(--space-3) + var(--safe-bottom)) max(var(--cook-gutter), var(--safe-left));border-top:1px solid var(--color-line);background:var(--color-cook-bg);grid-template-columns:minmax(max-content,1fr) 2fr;display:grid}.btn--cook{min-height:var(--tap-cook);font-size:var(--text-md);font-weight:var(--weight-bold);border-radius:var(--radius-lg)}.btn--cook .lucide{width:var(--icon-lg);height:var(--icon-lg)}.timer{justify-items:center;gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-cook-panel);color:var(--color-text);text-align:center;display:grid}.timer__label{align-items:center;gap:var(--space-2);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text-muted);display:inline-flex}.timer__label .lucide{width:22px;height:22px}.timer__time{font-size:var(--cook-timer);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}.timer .progress{background:var(--color-line);width:100%;max-width:20rem}.timer .progress:after{background:var(--color-saffron)}.timer__actions{gap:var(--space-3);display:flex}.timer__actions .icon-btn{width:var(--tap-cook);height:var(--tap-cook);background:var(--color-surface);box-shadow:var(--shadow-1)}.timer__actions .icon-btn .lucide{width:var(--icon-lg);height:var(--icon-lg)}.timer--done{background:var(--color-saffron-bright);color:var(--color-on-saffron-bright);animation:timer-ring 1.2s var(--ease-in-out) infinite alternate}.timer--done .timer__label{color:inherit}@keyframes timer-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-saffron-bright) 60%, transparent)}to{box-shadow:0 0 0 14px color-mix(in srgb, var(--color-saffron-bright) 0%, transparent)}}.timer-dock{gap:var(--space-2);padding:0 var(--cook-gutter) var(--space-2);scrollbar-width:none;display:flex;overflow-x:auto}.timer-pill{align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-4) 0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-inverse);color:var(--color-on-inverse);font-size:var(--text-md);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;cursor:pointer;border:0;flex:none;display:inline-flex}.timer-pill .lucide{width:20px;height:20px}.timer-pill__name{font-weight:var(--weight-medium);font-size:var(--text-sm);opacity:.85}.timer-pill.is-done{background:var(--color-saffron-bright);color:var(--color-on-saffron-bright)}.check--cook{min-height:var(--tap-cook);gap:var(--space-4);font-size:var(--cook-ingredient);line-height:var(--leading-snug)}.check--cook input{border-radius:8px;width:32px;height:32px}.check--cook+.check--cook{border-top:1px solid var(--color-line)}@media (min-width:960px){.cook__main{gap:var(--space-10);grid-template-columns:minmax(16rem,22rem) 1fr;display:grid}.cook__aside{border-right:1px solid var(--color-line);padding-right:var(--space-8)}}@media (max-width:959.98px){.cook__aside{display:none}}:root{--sidebar-w:240px;--bottom-bar-h:76px;scroll-padding-top:calc(var(--topbar-h) + var(--safe-top) + 8px);scroll-padding-bottom:calc(var(--tabbar-h) + var(--bottom-bar-h) + var(--safe-bottom))}html,body{overflow-x:hidden}#root{min-height:100dvh}.inline-icon{vertical-align:-.14em;width:1em;height:1em;display:inline-block}.section--tight{padding-block:var(--space-4)}.page-header{padding-top:calc(var(--space-6) + var(--safe-top));padding-bottom:var(--space-2)}.page-title{font-size:var(--text-xl)}.screen{padding-bottom:var(--space-10)}.link-btn{color:var(--color-primary-text);font:inherit;font-weight:var(--weight-semibold);text-underline-offset:.18em;cursor:pointer;background:0 0;border:0;min-height:24px;padding:0;text-decoration:underline;display:inline}.boot{min-height:100dvh;color:var(--color-primary-text);place-items:center;display:grid}.boot .spinner{width:32px;height:32px}.skip-link{top:calc(var(--safe-top) + 8px);z-index:var(--z-toast);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-inverse);color:var(--color-on-inverse);font-weight:var(--weight-bold);position:fixed;left:8px;translate:0 -200%}.skip-link:focus-visible{translate:0}.app-main:focus,h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus{outline:none}.sidebar{display:none}@media (min-width:960px){.app-shell{padding-left:calc(var(--sidebar-w) + var(--safe-left));padding-bottom:0}.tabbar{display:none}.sidebar{z-index:var(--z-tabbar);gap:var(--space-4);width:calc(var(--sidebar-w) + var(--safe-left));padding:calc(var(--space-6) + var(--safe-top)) var(--space-4) var(--space-5) calc(var(--space-4) + var(--safe-left));background:var(--color-surface);border-right:1px solid var(--color-line);box-shadow:var(--edge-highlight);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.sidebar__brand{padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);color:var(--color-text);display:block}.sidebar__logo svg{width:auto;height:36px}.sidebar__search{position:relative}.sidebar__search .input{min-height:44px;padding-right:2.5rem}.sidebar__kbd{border:1px solid var(--color-line-strong);min-width:22px;color:var(--color-text-muted);font:600 12px/20px var(--font-body);text-align:center;border-radius:6px;padding:0 6px;position:absolute;top:50%;right:12px;translate:0 -50%}.sidebar__nav{gap:var(--space-1);display:grid}.sidebar__item{align-items:center;gap:var(--space-3);min-height:48px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);font-weight:var(--weight-semibold);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);text-decoration:none;display:flex}.sidebar__item:hover{background:var(--color-surface-hover);color:var(--color-text)}.sidebar__item[aria-current=page]{background:var(--color-primary-soft);color:var(--color-on-primary-soft)}.sidebar__item{position:relative}.sidebar__item__icon{place-items:center;display:grid}.sidebar__item__icon .lucide{width:22px;height:22px}.sidebar__item__icon .count{min-width:24px;height:24px;font-size:13px;position:absolute;top:50%;right:12px;translate:0 -50%}.sidebar__item__label{flex:1}.sidebar__bottom{gap:var(--space-2);margin-top:auto;display:grid}.sidebar__user{padding:0 var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm)}.toast-region{left:var(--sidebar-w)}}.tabbar__item__icon,.tabbar__icon{position:relative}.tabbar__item{gap:2px}.tabbar__item__icon{border-radius:var(--radius-pill);width:64px;height:32px;transition:background-color var(--dur-base) var(--ease-out);place-items:center;display:grid}.tabbar__item__icon .lucide{width:24px;height:24px}.tabbar__item[aria-current=page] .tabbar__item__icon{background:var(--color-primary-soft);color:var(--color-on-primary-soft)}.tabbar__item[aria-current=page] .tabbar__item__icon .lucide{stroke-width:2.25px}.tabbar__item__icon .count{box-shadow:0 0 0 2px var(--color-surface);position:absolute;top:-4px;right:8px}.offline-banner{z-index:calc(var(--z-sticky) + 1);justify-content:center;align-items:center;gap:var(--space-2);padding:calc(var(--space-2) + var(--safe-top)) var(--gutter) var(--space-2);background:var(--color-inverse);color:var(--color-on-inverse);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-align:center;display:flex;position:sticky;top:0}.offline-banner .lucide{flex:none;width:18px;height:18px}.timer-dock--global{left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + var(--space-2));z-index:calc(var(--z-tabbar) - 1);padding:0 var(--gutter);pointer-events:none;justify-content:flex-end;position:fixed}.timer-dock--global>*{pointer-events:auto}body:has(.action-bar--sticky) .timer-dock--global{bottom:calc(var(--tabbar-h) + var(--bottom-bar-h) + var(--safe-bottom) + var(--space-2))}@media (min-width:960px){.timer-dock--global{left:var(--sidebar-w);bottom:var(--space-5)}body:has(.action-bar--sticky) .timer-dock--global{bottom:var(--space-5)}}.timer-pill-wrap{border-radius:var(--radius-pill);background:var(--color-inverse);color:var(--color-on-inverse);box-shadow:var(--shadow-3);flex:none;align-items:center;display:inline-flex}.timer-pill-wrap .timer-pill{box-shadow:none;padding-right:var(--space-2);text-decoration:none}.timer-pill__btn{width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.timer-pill__btn .lucide{width:20px;height:20px}.timer-pill__btn:hover{background:color-mix(in srgb, var(--color-on-inverse) 12%, transparent)}.timer-alerts{inset:calc(var(--safe-top) + var(--space-2)) var(--gutter) auto;z-index:var(--z-toast);gap:var(--space-2);max-width:36rem;margin-inline:auto;display:grid;position:fixed}.timer-alert{align-items:center;gap:var(--space-3);min-height:64px;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--color-saffron-bright);color:var(--color-on-saffron-bright);box-shadow:var(--shadow-3);font-size:var(--text-md);font-weight:var(--weight-bold);animation:timer-ring 1.2s var(--ease-in-out) infinite alternate;display:flex}.timer-alert>.lucide{flex:none;width:28px;height:28px}.timer-alert__text{flex:1}.timer-alert__stop{--btn-bg:var(--color-on-saffron-bright);--btn-fg:var(--color-saffron-bright);--btn-bg-hover:#000;min-height:48px;padding-inline:var(--space-5);font-size:var(--text-base)}.toast__close{border-radius:var(--radius-sm);width:40px;height:40px;color:inherit;opacity:.8;cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:grid}.toast__close .lucide{width:18px;height:18px}body:has(.action-bar--sticky) .toast-region{bottom:calc(var(--tabbar-h) + var(--bottom-bar-h) + var(--safe-bottom) + var(--space-2))}body:has(.fullscreen) .toast-region{bottom:calc(var(--safe-bottom) + var(--space-4))}body:has(.fullscreen .action-bar--sticky) .toast-region{bottom:calc(var(--bottom-bar-h) + var(--safe-bottom) + var(--space-3))}body:has(.cook) .toast-region{bottom:calc(96px + var(--safe-bottom))}@media (min-width:960px){:is(body:has(.action-bar--sticky) .toast-region,body:has(.fullscreen .action-bar--sticky) .toast-region){bottom:var(--space-6)}body:has(.fullscreen) .toast-region{left:0}}.menu{display:inline-flex;position:relative}.menu__list{z-index:var(--z-overlay);min-width:15rem;padding:var(--space-1);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-text);box-shadow:var(--shadow-3), var(--edge-highlight);border:1px solid var(--color-line);animation:modal-in var(--dur-base) var(--ease-emphasized);display:grid;position:absolute;top:calc(100% + 6px)}.menu__list--end{right:0}.menu__list--start{left:0}.menu__item{align-items:center;gap:var(--space-3);min-height:48px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:inherit;font:inherit;font-weight:var(--weight-semibold);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.menu__item .lucide{width:20px;height:20px;color:var(--color-text-muted)}.menu__item:hover,.menu__item:focus-visible{background:var(--color-surface-hover)}.menu__item:disabled{color:var(--color-text-subtle);cursor:not-allowed}.menu__item--danger,.menu__item--danger .lucide{color:var(--color-danger)}.banner__actions{margin-top:var(--space-2)}.banner__actions .cluster{gap:var(--space-2)}.banner .btn--secondary{--btn-bg:var(--color-surface)}.banner+.banner{margin-top:var(--space-2)}.star-field{gap:var(--space-1);justify-items:start;display:grid}.star-input{gap:var(--space-2);display:grid}.star-input:focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:4px;border-radius:var(--radius-sm)}.star-input__legend{margin-bottom:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:0}.star-input__row{gap:2px;margin-left:-6px;display:flex}.star-input--big .star-input__legend{font-family:var(--font-display);font-variation-settings:var(--font-display-variation);font-weight:var(--weight-display);font-size:var(--text-lg)}.star-input--big .star-input__star{width:60px;height:60px}.star-input--big .star-input__star .lucide{width:46px;height:46px}.star-input__caption{margin-top:0}.input--sm{width:5rem;min-height:40px;padding:var(--space-2) var(--space-3)}.select--sm{min-height:44px;padding-block:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);border-radius:var(--radius-pill)}.textarea--auto{resize:none;min-height:0;line-height:var(--leading-normal);overflow:hidden}.textarea--short{resize:none;min-height:4.5rem}.textarea--lines{font-variant-numeric:tabular-nums;line-height:1.75}.disclosure{border-top:1px solid var(--color-line);padding-block:var(--space-2)}.disclosure>summary{align-items:center;gap:var(--space-2);min-height:48px;font-weight:var(--weight-semibold);cursor:pointer;list-style:none;display:flex}.disclosure>summary::-webkit-details-marker{display:none}.disclosure>summary:before{content:"";width:18px;height:18px;transition:rotate var(--dur-fast) var(--ease-out);background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}.disclosure[open]>summary:before{rotate:90deg}.disclosure>:not(summary){margin-top:var(--space-2)}.copy-box{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-bg-sunken);border:1.5px dashed var(--color-line-strong)}.copy-box__value{word-break:break-all;-webkit-user-select:all;user-select:all;font:600 .95rem/1.5 ui-monospace,SF Mono,Menlo,Consolas,monospace;display:block}.code-block{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-inverse);color:var(--color-on-inverse);white-space:pre;-webkit-user-select:all;user-select:all;margin:0;font:.875rem/1.6 ui-monospace,SF Mono,Menlo,Consolas,monospace;overflow-x:auto}code{background:var(--color-bg-sunken);border-radius:5px;padding:1px 5px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.92em}.code-block code,.copy-box code{background:0 0;padding:0}.sheet--tall{height:92dvh}@media (min-width:600px){.sheet--tall{height:min(85dvh,760px)}}.sheet__subtitle{margin-top:calc(var(--space-2) * -1);margin-bottom:var(--space-4)}.sheet__subtitle-strong{font-size:var(--text-lg);margin-bottom:var(--space-2)}.sheet__body>.stack+.stack{margin-top:var(--space-4)}.joined-art{background:var(--color-saffron-soft);width:112px;height:112px;color:var(--color-on-saffron-soft);border-radius:32px;place-items:center;display:grid}.joined-art .lucide{stroke-width:1.75px;width:56px;height:56px}.auth{align-content:center}.auth__mark--sm{border-radius:22px;width:80px;height:80px}.auth__title--sm{font-size:var(--text-2xl)}.auth__hint{font-size:var(--text-sm);color:var(--color-text-muted);text-align:center}.auth__help{gap:var(--space-3);max-width:22rem;font-size:var(--text-sm);color:var(--color-text-muted);text-align:left;display:grid}.auth__help strong{color:var(--color-text)}.auth__actions .banner{text-align:left}.auth__actions--form{text-align:left;max-width:24rem}.auth__panel{width:100%;max-width:24rem;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1), var(--edge-highlight);text-align:left}.connect__marks{align-items:center;gap:var(--space-3);display:flex}.connect__link{width:28px;height:28px;color:var(--color-text-muted)}.connect__codex{background:var(--color-inverse);width:80px;height:80px;color:var(--color-on-inverse);font:700 2.2rem/1 var(--font-display);box-shadow:var(--shadow-2);border-radius:22px;place-items:center;display:grid}.connect__text{font-size:var(--text-md);line-height:var(--leading-relaxed)}.connect__host{color:var(--color-text-muted);font-size:var(--text-sm)}.home__header{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:calc(var(--space-4) + var(--safe-top));padding-bottom:var(--space-3);display:flex}.home__title{min-width:0;font-size:var(--text-3xl)}.home__logo{color:var(--color-text);display:block}.home__logo svg{width:auto;max-width:100%;height:44px}.home__title-desktop{display:none}.home__settings{margin-right:calc(var(--space-2) * -1)}@media (min-width:960px){.home__header{padding-top:var(--space-10)}.home__logo,.home__settings{display:none}.home__title-desktop{display:block}}.search-trigger{align-items:center;gap:var(--space-3);width:100%;min-height:var(--control-h);margin-bottom:var(--space-2);padding:0 var(--space-5);border-radius:var(--radius-pill);background:var(--color-bg-sunken);color:var(--color-text-subtle);font-size:var(--text-base);text-align:left;cursor:text;transition:border-color var(--dur-fast) var(--ease-out);border:1.5px solid #0000;display:flex}.search-trigger:hover{border-color:var(--color-line-strong)}.search-trigger .lucide{width:22px;height:22px;color:var(--color-text-muted)}@media (min-width:960px){.search-trigger{max-width:34rem}}.home-install{margin-top:var(--space-3)}.action-cards{gap:var(--space-3);margin-top:var(--space-4);display:grid}.action-cards:empty{display:none}@media (min-width:960px){.action-cards{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr))}}.action-card{align-items:center;gap:var(--space-3) var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1), var(--edge-highlight);flex-wrap:wrap;display:flex}.action-card__icon{border-radius:var(--radius-md);background:var(--color-primary-soft);width:48px;height:48px;color:var(--color-on-primary-soft);flex:none;place-items:center;display:grid}.action-card__icon .lucide{width:24px;height:24px}.action-card__body{gap:var(--space-1);flex:12rem;min-width:0;display:grid}.action-card__title{font-size:var(--text-md);line-height:var(--leading-snug)}.action-card__text{color:var(--color-text-muted);font-size:var(--text-sm)}.action-card__btn{margin-left:auto}.action-card--tags .action-card__body{gap:var(--space-3);flex-basis:100%}.action-card__foot{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.action-card__foot:empty{display:none}.action-card__more{min-height:44px;font-size:var(--text-sm);font-weight:var(--weight-semibold);align-items:center;gap:4px;margin-left:auto;text-decoration:none;display:inline-flex}.tag-card__recipe{align-items:center;gap:var(--space-3);color:inherit;font-weight:var(--weight-semibold);text-decoration:none;display:flex}.tag-card__thumb{border-radius:var(--radius-sm);flex:none;width:44px;height:44px}.home-section{padding-block:var(--space-5) var(--space-2)}.section-title>a{align-items:center;gap:2px;min-height:44px;text-decoration:none;display:inline-flex}.carousel{gap:var(--space-3);margin:0 calc(var(--gutter) * -1);padding:var(--space-1) var(--gutter) var(--space-3);scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:none;overscroll-behavior-x:contain;grid-auto-columns:minmax(158px,44%);grid-auto-flow:column;list-style:none;display:grid;overflow-x:auto}.carousel::-webkit-scrollbar{display:none}.carousel>li{scroll-snap-align:start;min-width:0;display:flex}.carousel>li>*{flex:1}@media (min-width:600px){.carousel{grid-auto-columns:minmax(200px,30%)}}@media (min-width:960px){.carousel{padding:var(--space-1) 0 var(--space-2);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-auto-columns:auto;grid-auto-flow:row;margin:0;overflow:visible}.carousel>li:nth-child(n+11){display:none}}.all-recipes{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:60px;margin-top:var(--space-6);padding:0 var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1), var(--edge-highlight);color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-semibold);text-decoration:none;display:flex}.all-recipes:hover{background:var(--color-surface-hover)}.all-recipes .lucide{width:22px;height:22px;color:var(--color-text-muted)}.empty-state__actions .btn{white-space:normal}.search-head{z-index:var(--z-sticky);padding-top:calc(var(--space-3) + var(--safe-top));padding-bottom:var(--space-2);background:color-mix(in srgb, var(--color-bg) 92%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(16px);backdrop-filter:saturate(1.4)blur(16px);position:sticky;top:0}@media (min-width:960px){.search-head{padding-top:var(--space-8)}}.search-head__row{align-items:center;gap:var(--space-2);display:flex}.search-head__field{flex:1;min-width:0}.search-head__cancel{flex:none}.search-head .chip-row{margin-top:var(--space-2)}.active-filters{align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.tag--filter{cursor:pointer;background:var(--color-inverse);min-height:40px;color:var(--color-on-inverse);border:0}.tag--filter:hover{opacity:.9;background:var(--color-inverse)!important}.search-progress{opacity:0;height:3px;transition:opacity var(--dur-fast);background:0 0;border-radius:0;position:absolute;bottom:0;left:0;right:0}.search-progress.is-on{opacity:1}.search-note{margin-bottom:var(--space-3);font-size:var(--text-sm)}.search-body{padding-top:var(--space-2)}.recent-list{margin:0;padding:0;list-style:none}.recent-list li{align-items:center;display:flex}.recent-list__item{align-items:center;gap:var(--space-3);min-height:48px;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:0;display:flex}.recent-list__item .lucide{width:20px;height:20px;color:var(--color-text-muted)}.results-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.results-head__title{margin:0}.recipe-row__tags{font-size:var(--text-sm);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recipe-row__tags .is-match{color:var(--color-text);font-weight:var(--weight-bold)}.recipe-row .list-row__meta{gap:0 var(--space-3)}.drafts-found{min-height:48px;margin-top:var(--space-3);font-weight:var(--weight-semibold);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.load-more{margin-top:var(--space-4)}.choice-list{border:0;gap:0;margin:0;padding:0;display:grid}.choice{align-items:center;gap:var(--space-3);min-height:56px;padding:0 var(--space-2);border-bottom:1px solid var(--color-line);font-size:var(--text-md);cursor:pointer;display:flex}.choice input{width:22px;height:22px;accent-color:var(--color-primary)}.tag-chooser{gap:var(--space-5);display:grid}.tag-chooser__group{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.tag-chooser__group legend{margin-bottom:var(--space-2)}.tag-chooser__chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.topbar--recipe{z-index:var(--z-sticky);-webkit-backdrop-filter:none;backdrop-filter:none;padding-inline:max(var(--space-2), var(--safe-left)) max(var(--space-2), var(--safe-right));transition:background-color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);background:0 0;position:fixed;inset:0 0 auto}.topbar--recipe .topbar__title{opacity:0;transition:opacity var(--dur-base) var(--ease-out)}.topbar--recipe.is-solid,.topbar--recipe:not(.has-photo){background:color-mix(in srgb, var(--color-bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(16px);backdrop-filter:saturate(1.4)blur(16px)}.topbar--recipe.is-solid .topbar__title{opacity:1}.topbar--recipe.is-solid .icon-btn--photo,.topbar--recipe:not(.has-photo) .icon-btn--photo{color:var(--color-text);-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}.topbar--recipe.is-solid .icon-btn--photo:hover,.topbar--recipe:not(.has-photo) .icon-btn--photo:hover{background:var(--color-surface-hover)}.topbar--recipe .topbar__actions{gap:var(--space-2)}.hero--empty{aspect-ratio:auto;height:calc(var(--topbar-h) + var(--safe-top) + 104px);max-height:none}.hero--empty:before{inset:calc(var(--safe-top) + 14px) 0 calc(var(--radius-xl) + 10px)}.gallery{background:var(--color-bg-sunken);overflow:hidden}.gallery__track{scroll-snap-type:x mandatory;scrollbar-width:none;height:100%;display:flex;overflow-x:auto}.gallery__track::-webkit-scrollbar{display:none}.gallery__slide{scroll-snap-align:start;flex:0 0 100%;height:100%}.gallery__slide img{object-fit:cover;width:100%;height:100%}.gallery__dots{left:0;right:0;bottom:calc(var(--radius-xl) + 10px);z-index:1;justify-content:center;gap:6px;display:flex;position:absolute}.gallery__dots span{background:#ffffff8c;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 1px #00000026}.gallery__dots span.is-active{background:#fff;border-radius:4px;width:20px}.recipe-header{gap:var(--space-3)}.recipe-header>.banner{margin-bottom:var(--space-1)}.recipe-title{overflow-wrap:anywhere}.rating-line{align-items:center;gap:var(--space-1) var(--space-2);font-size:var(--text-base);flex-wrap:wrap;display:flex}.rating-line__count{color:var(--color-text-muted);font-weight:var(--weight-semibold)}.rating-line__last{color:var(--color-text-muted);font-size:var(--text-sm);flex-wrap:wrap;flex-basis:100%;align-items:center;gap:6px;display:inline-flex}.rating-line__last .stars__value{display:none}.rating-line__none{color:var(--color-text-muted);font-weight:var(--weight-semibold)}.facts{margin:0;padding:0;list-style:none}.tag-row .tag-list{align-items:center}.tag-row__generating{min-height:36px;padding:0 var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm);align-items:center;gap:6px;font-style:italic;display:inline-flex}.tag-row__generating .lucide{width:16px;height:16px;color:var(--color-saffron);animation:pulse 1.6s var(--ease-in-out) infinite alternate}@keyframes pulse{0%{opacity:.4}to{opacity:1}}.tag--add{border:1.5px dashed var(--color-line-strong);color:var(--color-text-muted);cursor:pointer;background:0 0}.tag--add:hover{color:var(--color-text);border-color:var(--color-text-muted)}.tag--removable{padding-right:var(--space-1)}.tag__count{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-text) 8%, transparent);color:var(--color-text-muted);font-size:var(--text-xs);margin-left:6px;padding:0 7px;line-height:20px}.recipe__desktop-actions{display:none}.recipe__columns{padding-inline:max(var(--gutter), var(--safe-left)) max(var(--gutter), var(--safe-right))}.recipe__left,.recipe__right{min-width:0}.tips{margin-top:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--color-herb-soft);color:var(--color-on-herb-soft)}.tips__title{align-items:center;gap:var(--space-2);font-size:var(--text-md);margin-bottom:var(--space-2);display:flex}.tips__title .lucide{width:20px;height:20px}.tips__list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.tips__text{font-size:var(--text-md);line-height:var(--leading-snug);font-weight:var(--weight-semibold)}.tips__meta{font-size:var(--text-sm);opacity:.9}.ingredients-head{flex-wrap:wrap;align-items:center}.ingredients-head h2{font-size:var(--text-lg)}.scaled-note{margin:calc(var(--space-1) * -1) 0 var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-delft-soft);color:var(--color-on-delft-soft);font-size:var(--text-sm)}.scaled-note .link-btn{color:inherit}.ingredients__block+.ingredients__block{margin-top:var(--space-2)}.ingredients__group{margin-top:var(--space-4)}.ingredients__list{margin:0;padding:0;list-style:none}.ingredient-check{align-items:baseline;gap:var(--space-3);min-height:52px;padding:var(--space-3) 0;border-bottom:1px dashed var(--color-line);font-size:var(--text-md);line-height:var(--leading-snug);cursor:pointer;-webkit-user-select:none;user-select:none;grid-template-columns:26px minmax(3.5rem,max-content) 1fr;display:grid}.ingredient-check input{appearance:none;border:2px solid var(--color-line-strong);border-radius:var(--radius-xs);background:var(--color-surface);cursor:pointer;width:26px;height:26px;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);align-self:center;place-items:center;margin:0;display:grid}.ingredient-check input:after{content:"";background:var(--color-surface);width:70%;height:70%;transition:scale var(--dur-fast) var(--ease-spring);scale:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat}.ingredient-check input:checked{background:var(--color-herb);border-color:var(--color-herb)}.ingredient-check input:checked:after{scale:1}.ingredient-check__qty{font-weight:var(--weight-bold);text-align:right;white-space:nowrap}:is(.ingredient-check:has(input:checked) .ingredient-check__qty,.ingredient-check:has(input:checked) .ingredient-check__name){color:var(--color-text-muted);text-decoration:line-through;text-decoration-thickness:2px}.ingredient-check--cook{min-height:var(--tap-cook);font-size:var(--cook-ingredient);grid-template-columns:32px minmax(4rem,max-content) 1fr}.ingredient-check--cook input{border-radius:8px;width:32px;height:32px}.recipe-notes{margin-top:var(--space-5);padding:var(--space-4);border-left:3px solid var(--color-line-strong);color:var(--color-text-muted);font-style:italic;line-height:var(--leading-relaxed)}.step__body p{overflow-wrap:anywhere}.experiences__empty{margin-bottom:var(--space-3)}.logs{margin:0;padding:0;list-style:none}.log__menu{margin-left:auto}.log__menu .icon-btn{width:40px;height:40px}.log__kind{color:var(--color-text-muted);font-size:var(--text-sm);align-items:center;gap:4px;display:inline-flex}.log__kind .lucide{width:15px;height:15px}.log--pending{opacity:.85}.log--pending .status{flex-wrap:wrap}.log__photos{gap:var(--space-2);flex-wrap:wrap;display:flex}.log__photo{border-radius:var(--radius-sm);width:88px;height:88px;overflow:hidden}.log__photo img{object-fit:cover;width:100%;height:100%}.experiences__actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.comment-box{align-items:flex-end;gap:var(--space-2);margin-top:var(--space-3);display:flex}.comment-box__input{min-height:var(--control-h);resize:none;flex:1}.comment-box .btn{flex:none}.card-thumbs{gap:var(--space-3);flex-wrap:wrap;display:flex}.card-thumb{border-radius:var(--radius-sm);background:var(--color-bg-sunken);width:104px;height:104px;box-shadow:var(--shadow-1);display:block;overflow:hidden}.card-thumb img{object-fit:cover;width:100%;height:100%}.recipe-footer{gap:var(--space-1);padding-block:var(--space-4) var(--space-8);color:var(--color-text-muted);font-size:var(--text-sm);display:grid}.recipe-footer a{align-items:center;gap:4px;display:inline-flex}.action-bar--sticky{inset:auto 0 calc(var(--tabbar-h) + var(--safe-bottom)) 0;z-index:var(--z-sticky);min-height:var(--bottom-bar-h);padding:var(--space-3) max(var(--gutter), var(--safe-right)) var(--space-3) max(var(--gutter), var(--safe-left));background:color-mix(in srgb, var(--color-bg) 94%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(16px);backdrop-filter:saturate(1.4)blur(16px);border-top:1px solid var(--color-line);align-items:center;position:fixed}.action-bar--sticky .btn--primary{flex:1}.action-bar__log{border-radius:var(--radius-md);width:52px;height:52px}.fullscreen .action-bar--sticky{padding-bottom:calc(var(--space-3) + var(--safe-bottom));bottom:0}.recipe{padding-bottom:calc(var(--bottom-bar-h) + var(--space-6))}.recipe-skeleton .skeleton--media{max-height:50vh}@media (min-width:960px){.action-bar--sticky{display:none}.recipe{padding:0 var(--gutter) var(--space-12);max-width:calc(var(--content-max) + 2 * var(--gutter));margin-inline:auto}.topbar--recipe{margin-inline:calc(var(--gutter) * -1);background:color-mix(in srgb, var(--color-bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(16px);backdrop-filter:saturate(1.4)blur(16px);position:sticky;inset:auto}.topbar--recipe .icon-btn--photo{color:var(--color-text);-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}.topbar--recipe .icon-btn--photo:hover{background:var(--color-surface-hover)}.recipe__layout{gap:var(--space-4) var(--space-10);padding-top:var(--space-2);grid-template-columns:minmax(0,5fr) minmax(0,7fr);display:grid}.recipe__hero{grid-column:1}.recipe__hero .hero{aspect-ratio:4/3;max-height:none}.recipe__hero .hero--empty{aspect-ratio:4/3;border-radius:var(--radius-lg);height:auto}.recipe__hero .hero--empty:before{inset:18%}.gallery__dots{bottom:12px}.recipe-header{padding:var(--space-4) 0 0;background:0 0;grid-column:2;align-content:start}.recipe__desktop-actions{gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.recipe__columns{gap:var(--space-10);grid-column:1/-1;grid-template-columns:minmax(0,2fr) minmax(0,3fr);padding:0;display:grid}.recipe__left{top:calc(var(--topbar-h) + var(--space-4));max-height:calc(100dvh - var(--topbar-h) - var(--space-8));padding-right:var(--space-2);scrollbar-width:thin;align-self:start;position:sticky;overflow-y:auto}}.topbar--form{gap:var(--space-2)}.topbar--form .topbar__title{padding:0}.topbar__cancel{padding-inline:var(--space-2)}.topbar__actions--desktop{display:none}.edit-body{gap:var(--space-4);padding-top:var(--space-3);padding-bottom:calc(var(--bottom-bar-h) + var(--space-10));display:grid}.edit-screen .form-end{display:none}@media (min-width:960px){.topbar__actions--desktop{padding-right:var(--space-3);display:flex}.edit-screen .form-end{margin-top:var(--space-4);display:block}.edit-body{padding-bottom:var(--space-12)}}.recipe-form{gap:var(--space-6);display:grid}.form-section{gap:var(--space-3);display:grid}.form-section__title{font-size:var(--text-lg)}.form-row{gap:var(--space-3);grid-template-columns:auto 1fr 1fr;align-items:start;display:grid}@media (max-width:420px){.form-row{grid-template-columns:1fr 1fr}.form-row>:first-child{grid-column:1/-1}}.form-row .stepper__value{min-width:2.5rem}.form-row .stepper{align-self:start}.input-suffix{position:relative}.input-suffix .input{padding-right:3.25rem}.input-suffix>span{right:var(--space-4);color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;translate:0 -50%}.form-note{margin-top:calc(var(--space-3) * -1)}.step-editor{gap:var(--space-2);justify-items:start;display:grid}.step-editor__list{gap:var(--space-3);width:100%;margin:0;padding:0;list-style:none;display:grid}.step-editor__item{gap:var(--space-2);grid-template-columns:2rem 1fr auto;align-items:start;display:grid}.step-editor__num{font-family:var(--font-display);font-variation-settings:var(--font-display-variation);font-size:var(--text-lg);font-weight:var(--weight-display);color:var(--color-primary-text);text-align:right;padding-top:10px}.step-editor__body{gap:var(--space-2);min-width:0;display:grid}.step-editor__meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.step-editor__meta:empty{display:none}.step-editor__meta .btn--sm{min-height:36px}.timer-chip--edit{cursor:default;padding-right:4px}.timer-chip__edit,.timer-chip__x{min-height:36px;color:inherit;font:inherit;cursor:pointer;border-radius:var(--radius-pill);background:0 0;border:0;place-items:center;padding:0 4px;display:inline-grid}.timer-chip__x{width:32px}.timer-chip__x:hover,.timer-chip__edit:hover{background:#00000012}.timer-input{align-items:center;gap:var(--space-2);display:inline-flex}.dish-photos__strip{gap:var(--space-3);margin:0 calc(var(--gutter) * -1);padding:var(--space-1) var(--gutter);scrollbar-width:none;list-style:none;display:flex;overflow-x:auto}.dish-photos__item{flex:none;width:112px;height:112px;overflow:hidden}.dish-photos__item img{object-fit:cover;width:100%;height:100%}.dish-photos__cover{position:absolute;bottom:6px;left:6px}.dish-photos__make-cover{--btn-bg:var(--color-photo-scrim);--btn-fg:#fff;--btn-bg-hover:#14100dcc;min-height:32px;font-size:var(--text-xs);padding:0 6px;position:absolute;bottom:4px;left:4px;right:4px}.dish-photos__add{align-content:center;place-items:center;gap:var(--space-1);border:2px dashed var(--color-line-strong);border-radius:var(--radius-sm);background:var(--color-surface);width:112px;height:112px;color:var(--color-primary-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;display:grid}.dish-photos__add .lucide{width:28px;height:28px}.dish-photos__add:hover{background:var(--color-primary-soft);border-color:var(--color-primary)}.edit-tags{gap:var(--space-3);display:grid}.action-bar--form .btn{flex:1}.add-body{padding-bottom:var(--space-6)}.add-grid{gap:var(--space-8);display:grid}@media (max-width:959.98px){.add-grid--queue-first .queue-section{order:-1}}.empty-invite{margin-top:var(--space-2);color:var(--color-text-muted)}.empty-invite a{font-weight:var(--weight-semibold)}@media (min-width:960px){.add-grid{align-items:start;gap:var(--space-10);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.add-options{gap:var(--space-3);display:grid}.add-option{align-items:center;gap:var(--space-4);min-height:84px;padding:var(--space-4) var(--space-5);border:1.5px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-1), var(--edge-highlight);text-align:left;cursor:pointer;transition:transform var(--dur-instant) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);display:flex}.add-option:hover{border-color:var(--color-line-strong);background:var(--color-surface-hover)}.add-option:active{transform:scale(.985)}.add-option:disabled{opacity:.6;cursor:progress}.add-option__icon{border-radius:var(--radius-md);background:var(--color-primary-soft);width:52px;height:52px;color:var(--color-on-primary-soft);flex:none;place-items:center;display:grid}.add-option__icon .lucide{stroke-width:1.75px;width:28px;height:28px}.add-option__text{gap:2px;display:grid}.add-option__title{font-size:var(--text-md);font-weight:var(--weight-bold)}.add-option__hint{font-size:var(--text-sm);color:var(--color-text-muted)}.add-option--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.add-option--primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.add-option--primary .add-option__icon{background:color-mix(in srgb, var(--color-on-primary) 18%, transparent);color:var(--color-on-primary)}.add-option--primary .add-option__hint{color:color-mix(in srgb, var(--color-on-primary) 85%, transparent)}.resize-progress{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-bg-sunken);font-weight:var(--weight-semibold);display:grid}.add-tip{gap:var(--space-3);padding:var(--space-3) var(--space-1);color:var(--color-text-muted);font-size:var(--text-sm);display:flex}.add-tip .lucide{width:20px;height:20px;color:var(--color-saffron);flex:none}.link-import{gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1), var(--edge-highlight);padding:var(--space-4);border:1.5px solid var(--color-line-strong);display:grid}.link-import__title{align-items:center;gap:var(--space-4);font-family:var(--font-body);font-size:var(--text-md);font-weight:var(--weight-bold);letter-spacing:0;display:flex}.link-import__row{gap:var(--space-2);display:flex}.link-import__go{flex:1}.add-type{align-items:center;gap:var(--space-3);min-height:60px;padding:0 var(--space-5);border-radius:var(--radius-lg);color:var(--color-text);font-weight:var(--weight-semibold);border:1.5px dashed var(--color-line-strong);text-decoration:none;display:flex}.add-type:hover{background:var(--color-surface-hover)}.add-type>span{flex:1}.add-type .lucide{width:22px;height:22px;color:var(--color-text-muted)}.queue-section{gap:var(--space-3);align-content:start;display:grid}.queue-section .section-title{margin-bottom:0}.ready-card{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-herb-soft);color:var(--color-on-herb-soft);display:grid}.ready-card__title{font-size:var(--text-md);font-weight:var(--weight-bold)}.queue-empty{padding:var(--space-4) 0}.queue-item{grid-template-columns:64px 1fr auto;align-items:start}.queue-item__thumb{object-fit:cover;display:block;overflow:hidden}.queue-item__thumb--icon{background:var(--color-delft-soft);color:var(--color-on-delft-soft);place-items:center;display:grid}.queue-item__thumb--icon .lucide{width:28px;height:28px}.queue-item__body{gap:var(--space-1);min-width:0;padding-top:4px;display:grid}.queue-item__body .progress{margin-top:var(--space-1)}.queue-item__error{font-size:var(--text-sm);color:var(--color-text-muted)}.queue-item__actions{gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.queue-item--link{align-items:center}.queue-item--link:hover{background:var(--color-surface-hover)}.queue-item__chev{color:var(--color-text-muted);padding-right:var(--space-2);font-size:1.6rem}.queue-item .menu .icon-btn{width:44px;height:44px}.queue-eta{font-size:var(--text-sm)}.group-photos{gap:var(--space-4);display:grid}.group-photos__head{gap:var(--space-1);display:grid}.group-grid{gap:var(--space-3) var(--space-6);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin:0;padding:0 22px 0 0;list-style:none;display:grid}.group-grid__item{position:relative}.group-grid__photo{aspect-ratio:3/4;border-radius:var(--radius-md);background:var(--color-bg-sunken);box-shadow:var(--shadow-1);outline-offset:2px;outline:3px solid #0000;position:relative;overflow:hidden}.group-grid__item[data-group="1"] .group-grid__photo{outline-color:color-mix(in srgb, var(--color-saffron) 60%, transparent)}.group-grid__item[data-group="0"] .group-grid__photo{outline-color:color-mix(in srgb, var(--color-primary) 35%, transparent)}.group-grid__photo img{object-fit:cover;width:100%;height:100%}.group-grid__label{border-radius:var(--radius-xs);background:var(--color-surface);color:var(--color-text);font-size:var(--text-xs);font-weight:var(--weight-bold);box-shadow:var(--shadow-1);padding:2px 8px;position:absolute;bottom:6px;left:6px}.group-grid__link{top:50%;right:calc(var(--space-6) / -2 - 22px);z-index:1;border:2px solid var(--color-line-strong);background:var(--color-surface);width:44px;height:44px;color:var(--color-text-muted);box-shadow:var(--shadow-2);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:absolute;translate:0 -50%}.group-grid__link .lucide{width:20px;height:20px}.group-grid__link[aria-pressed=true]{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.group-grid__link:disabled{opacity:.4;cursor:not-allowed}.group-photos__actions{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + var(--space-2));justify-content:flex-end;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-surface) 94%, transparent);box-shadow:var(--shadow-3);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;position:sticky}.group-photos__actions .btn--primary{flex:1;max-width:20rem}@media (min-width:960px){.group-photos__actions{bottom:var(--space-4)}}.capture{background:var(--color-cook-bg);grid-template-rows:auto 1fr;min-height:100dvh;display:grid}.capture__bar{padding:calc(var(--space-2) + var(--safe-top)) var(--space-2) var(--space-2);justify-content:space-between;align-items:center;display:flex}.capture__counter{padding:0 var(--space-3);font-weight:var(--weight-bold);color:var(--color-text-muted)}.capture__body{align-content:start;gap:var(--space-4);width:100%;max-width:32rem;padding:0 var(--gutter) calc(var(--space-6) + var(--safe-bottom));margin-inline:auto;display:grid}.capture__photo{aspect-ratio:3/4;border-radius:var(--radius-lg);background:var(--color-bg-sunken);max-height:52dvh;box-shadow:var(--shadow-2);justify-self:center;width:100%;overflow:hidden}.capture__photo img{object-fit:contain;width:100%;height:100%}.capture__saved{font-size:var(--text-base)}.capture__meta{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.capture__recipe{font-size:var(--text-md);font-weight:var(--weight-bold)}.capture__actions{gap:var(--space-3);display:grid}.capture__actions .btn{white-space:normal}.review{min-height:100dvh;padding-bottom:calc(var(--bottom-bar-h) + var(--safe-bottom) + var(--space-6))}.review__bar{justify-content:space-between}.review__pos{text-align:center;font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text-muted);flex:0 auto}.review__photo{top:calc(var(--topbar-h) + var(--safe-top));z-index:5;position:sticky}.review__form{gap:var(--space-4);padding:var(--space-4) var(--gutter) 0;display:grid}.review__end{display:none}.review__actions .btn{flex:1}.review__actions .review__save{flex:2}.review-photo{height:35dvh;transition:height var(--dur-base) var(--ease-out);background:#1b1714;position:relative;box-shadow:0 4px 12px #0000001f}.review-photo.is-compact{height:15dvh;min-height:96px}.review-photo--empty{height:auto;min-height:120px;padding:var(--space-4);background:var(--color-bg-sunken);box-shadow:none;place-items:center;display:grid}.review-photo__scroll{overscroll-behavior:contain;place-items:start center;width:100%;height:100%;display:grid;overflow:auto}.review-photo__scroll img{min-width:100%;max-width:none;height:auto;transition:width var(--dur-base) var(--ease-out);display:block}.review-photo__tools{top:var(--space-2);right:var(--space-2);gap:var(--space-1);display:flex;position:absolute}.review-photo__tools .icon-btn{width:44px;height:44px}.review-photo__pager{padding-right:var(--space-1);border-radius:var(--radius-pill);background:var(--color-photo-scrim);color:#fff;align-items:center;gap:2px;display:inline-flex}.review-photo__count{font-weight:var(--weight-bold);font-size:var(--text-sm);padding:0 2px}.review-photo__toggle{left:var(--space-2);bottom:var(--space-2);align-items:center;gap:var(--space-1);min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-photo-scrim);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:0;display:inline-flex;position:absolute}.review-photo__toggle .lucide{width:16px;height:16px}.review-photo__source{right:var(--space-2);bottom:var(--space-2);min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-primary-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);box-shadow:var(--shadow-2);align-items:center;gap:4px;text-decoration:none;display:inline-flex;position:absolute}.review-state{justify-items:center;gap:var(--space-4);max-width:26rem;min-height:80dvh;padding:var(--space-10) var(--gutter);text-align:center;align-content:center;margin-inline:auto;display:grid}.review-state__bar{width:100%;max-width:16rem}.review-state__actions{gap:var(--space-3);width:100%;margin-top:var(--space-4);display:grid}.review-failures{gap:var(--space-2);padding:var(--space-3) var(--gutter) 0;display:grid}.review__form .review-failures{padding:0}@media (min-width:960px){.review{padding-bottom:0}.review__layout{min-height:calc(100dvh - var(--topbar-h));grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.review__photo{top:var(--topbar-h);height:calc(100dvh - var(--topbar-h))}.review-photo{border-radius:0;height:100%}.review-photo__toggle{display:none}.review__form{padding:var(--space-6) var(--space-8) var(--space-12);max-width:44rem}.review__end{justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-line);display:flex}}.cook{grid-template-rows:auto auto minmax(0,1fr) auto auto;overflow:hidden}.cook__awake-text{white-space:nowrap}@media (max-width:420px){.cook__awake-text{display:none}}.cook__main{overscroll-behavior:contain}.cook__content{min-width:0}.cook__aside-title{font-size:var(--text-lg);margin-bottom:var(--space-3)}.cook__aside .stepper{margin-bottom:var(--space-3)}.cook__heading{font-size:var(--text-2xl)}.cook__prep{gap:var(--space-5)}.cook__servings{display:flex}.cook__prep .tips{margin-top:0}.cook__note{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-saffron-soft);color:var(--color-on-saffron-soft);font-weight:var(--weight-semibold)}.cook__resume{gap:var(--space-3);max-width:44rem;margin:0 auto var(--space-6);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-cook-panel);font-size:var(--text-lg);font-weight:var(--weight-bold);display:grid}.cook__resume .btn{flex:1}.cook__step-num:focus{outline:none}.cook__timer-start{gap:var(--space-2);justify-items:start;display:grid}.cook__timer-start .btn--tonal{--btn-bg:var(--color-saffron-soft);--btn-fg:var(--color-on-saffron-soft);--btn-bg-hover:color-mix(in srgb, var(--color-saffron-soft) 80%, var(--color-saffron));font-variant-numeric:tabular-nums}.timer--setup .timer__time{font-size:clamp(2.5rem,2rem + 4vw,4rem)}.timer__setup{align-items:center;gap:var(--space-4);display:flex}.timer--setup .cluster{justify-content:center;gap:var(--space-3)}.timer__actions .icon-btn--primary{background:var(--color-primary);color:var(--color-on-primary)}.cook__dock{padding-top:var(--space-2)}.cook__nav .btn--next .lucide:last-child{margin-left:2px}.cook__done{gap:var(--space-5)}.cook__done .cooklog-fields{max-width:32rem}.cook .ingredients--cook .ingredients__group{font-size:var(--text-sm)}.cook .sheet .ingredient-check{font-size:var(--cook-ingredient)}@media (min-width:960px){.cook__main{grid-template-columns:minmax(16rem,24rem) 1fr;align-items:start}.cook__aside{max-height:100%;position:sticky;top:0}.cook__ing-btn,.cook__prep-list{display:none}}.cooklog-fields{gap:var(--space-5);display:grid}.when{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.when legend{margin-bottom:var(--space-2)}.when__date{max-width:14rem;margin-top:var(--space-2)}.cooklog-photo__thumb{width:120px;height:120px;overflow:hidden}.cooklog-photo__thumb img{object-fit:cover;width:100%;height:100%}.viewer{z-index:var(--z-overlay);color:#fff;background:#0d0b0a;grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0}.viewer__bar{padding:calc(var(--space-2) + var(--safe-top)) var(--space-2) var(--space-2);justify-content:space-between;align-items:center;display:flex}.viewer__count{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:0}.viewer__track{scroll-snap-type:x mandatory;scrollbar-width:none;display:flex;overflow-x:auto}.viewer__track::-webkit-scrollbar{display:none}.viewer__slide{scroll-snap-align:center;touch-action:pan-x pan-y pinch-zoom;flex:0 0 100%;place-items:center;display:grid;overflow:auto}.viewer__slide img{object-fit:contain;max-width:100%;max-height:100%}.viewer__track.is-zoomed{scroll-snap-type:none}.viewer__track.is-zoomed .viewer__slide img{width:200%;max-width:none;max-height:none}.viewer__caption{padding:var(--space-3) var(--gutter) calc(var(--space-4) + var(--safe-bottom));color:#e8dfd4;text-align:center;font-size:var(--text-sm)}.viewer .menu__list{color:var(--color-text)}.suggest-list{gap:var(--space-3);margin:var(--space-4) 0 0;padding:0;list-style:none;display:grid}.suggest-item{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1), var(--edge-highlight);display:grid}.suggest-item__head{align-items:center;gap:var(--space-3);color:inherit;text-decoration:none;display:flex}.suggest-item__thumb{border-radius:var(--radius-sm);flex:none;width:52px;height:52px}.suggest-item__title{font-size:var(--text-md);font-weight:var(--weight-semibold)}.settings-page__body{gap:var(--space-4);padding:var(--space-3) max(var(--gutter), var(--safe-left)) var(--space-10);max-width:calc(var(--reading-max) + 2 * var(--gutter));align-content:start;display:grid}.settings-hub{gap:var(--space-4);display:grid}.settings-hub__me{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-1) 0;display:flex}.settings-hub__name{font-family:var(--font-display);font-variation-settings:var(--font-display-variation);font-size:var(--text-xl);font-weight:var(--weight-display)}.settings-hub__theme{gap:var(--space-2);justify-items:start;display:grid}.settings-hub__version{font-size:var(--text-sm);text-align:center}.settings-hub .list-row[aria-current=page]{background:var(--color-primary-soft)}.settings-intro{max-width:40ch}.settings-list{margin:0}.settings-item{align-items:center;gap:var(--space-3);min-height:68px;padding:var(--space-3) var(--space-4);color:inherit;flex-wrap:wrap;text-decoration:none;display:flex}.settings-list>li+li{border-top:1px solid var(--color-line)}.settings-item--link:hover{background:var(--color-surface-hover)}.settings-item__body{flex:10rem;gap:2px;min-width:0;display:grid}.settings-item__title{font-weight:var(--weight-semibold);overflow-wrap:anywhere}.settings-item__meta{font-size:var(--text-sm);color:var(--color-text-muted)}.settings-item__actions{gap:var(--space-2);margin-left:auto;display:flex}.settings-add{justify-self:start}.settings-help{font-size:var(--text-sm)}.settings-section{gap:var(--space-3);margin-top:var(--space-3);display:grid}.settings-link-card{align-items:center;gap:var(--space-3);min-height:56px;padding:0 var(--space-4);border-radius:var(--radius-md);background:var(--color-saffron-soft);color:var(--color-on-saffron-soft);font-weight:var(--weight-semibold);text-decoration:none;display:flex}.settings-link-card>span{flex:1}.settings-link-card .lucide{flex:none;width:20px;height:20px}.codex-easy{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-delft-soft);color:var(--color-on-delft-soft);line-height:var(--leading-snug);display:flex}.codex-easy>.lucide{flex:none;width:24px;height:24px}.codex-easy__title{font-weight:var(--weight-bold);margin-bottom:2px}.help-steps{gap:var(--space-2);color:var(--color-text-muted);line-height:var(--leading-relaxed);margin:0;padding-left:1.4em;display:grid}.install{gap:var(--space-4);display:grid}.install__title{font-size:var(--text-lg)}.install__steps{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.install__steps li{align-items:center;gap:var(--space-3);font-size:var(--text-md);display:flex}.install__num{background:var(--color-primary-soft);width:32px;height:32px;color:var(--color-on-primary-soft);font-weight:var(--weight-bold);border-radius:50%;flex:none;place-items:center;display:grid}.settings-layout{gap:var(--space-10);padding-top:var(--space-8);grid-template-columns:20rem minmax(0,1fr);display:grid}.settings-layout__nav{top:var(--space-8);align-self:start;gap:var(--space-4);display:grid;position:sticky}.settings-layout__pane{min-width:0}.settings-layout__pane .settings-page__bar{-webkit-backdrop-filter:none;background:0 0;min-height:48px;padding:0;position:static}.settings-layout__pane .settings-page__bar .topbar__title{font-size:var(--text-xl);padding:0}.settings-layout__pane .settings-page__body{padding-inline:0}.settings-layout .settings-hub__logout{justify-self:start}.settings-layout .settings-hub__version{text-align:left}.rename-row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.input--inline{min-height:44px;padding-block:var(--space-2);flex:10rem}.comment-edit{gap:var(--space-2);display:grid}.comment-edit .cluster{gap:var(--space-2)}.queue-head{align-items:center;margin-bottom:0}.queue-head h2{font-size:var(--text-lg)}.merge-bar{top:calc(var(--safe-top) + var(--space-2));z-index:2;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-inverse);color:var(--color-on-inverse);box-shadow:var(--shadow-3);display:grid;position:sticky}.merge-bar .btn--danger-ghost{--btn-fg:var(--color-inverse-action);--btn-bg-hover:color-mix(in srgb, var(--color-on-inverse) 12%, transparent)}.merge-bar .btn:disabled{--btn-bg:color-mix(in srgb, var(--color-on-inverse) 14%, transparent);--btn-fg:color-mix(in srgb, var(--color-on-inverse) 60%, transparent)}.merge-bar__text{font-weight:var(--weight-semibold)}.queue-item--select{cursor:pointer;align-items:center}.queue-item--select.is-disabled{opacity:.55;cursor:not-allowed}.queue-item__check{width:26px;height:26px;margin-right:var(--space-2);accent-color:var(--color-herb)}.queue-item__thumb--card{background:var(--color-saffron-soft);color:var(--color-on-saffron-soft)}.tag__action{overflow:visible}.tag__action:after{content:"";border-radius:50%;position:absolute;inset:-6px}.tag__action+.tag__action{margin-left:12px}.tag--suggested,.tag--removable,.tag--rejected{padding-right:var(--space-2);min-height:44px}.tag-list{row-gap:var(--space-3)}.cook .timer-pill{min-height:56px;font-size:var(--text-md)}.cook .timer-pill__btn{width:56px;height:56px}.cook .timer-pill__btn .lucide{width:24px;height:24px}.cook .tag__action:after{inset:-12px}.cooklog-error,.photo-problem{margin-top:var(--space-4)}.queue-problem{padding-top:calc(var(--space-3) + var(--safe-top))}
