/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--primary:#8b5e3c;--primary-hover:#714a2e;--primary-soft:#f3e7db;--primary-dark:#5d3d24;--accent:#d98f70;--accent-soft:#fbe9e1;--accent-dark:#b46a4f;--bg:#faf7f2;--surface:#fff;--surface-alt:#f3eee8;--border:#ddd3c7;--border-strong:#c7b9a8;--text:#1f1a17;--text-2:#5f554e;--text-3:#8b8178;--success:#3d7a57;--success-soft:#e0efe6;--success-dark:#2c5a40;--warning:#b8841e;--warning-soft:#fbefd2;--warning-dark:#8a6112;--error:#b54848;--error-soft:#f5dcdc;--error-dark:#8a3535;--info:#3f6fa8;--info-dark:#2e578a;--r-sm:12px;--r-md:16px;--r-lg:20px;--r-xl:24px;--r-pill:999px;--sh-primary:0 4px 0 var(--primary-dark);--sh-accent:0 4px 0 var(--accent-dark);--sh-success:0 4px 0 var(--success-dark);--sh-warning:0 4px 0 var(--warning-dark);--sh-error:0 4px 0 var(--error-dark);--sh-gray:0 4px 0 var(--border-strong);--sh-card:0 2px 0 var(--border);--sh-bubble:0 6px 0 var(--primary-dark);--t:.15s cubic-bezier(.4, 0, .2, 1);--font:"Fredoka", system-ui, sans-serif}body.theme-dark{--primary:#c39267;--primary-hover:#d6a77f;--primary-soft:#32251c;--primary-dark:#8a5d3a;--accent:#f0a98a;--accent-soft:#3b2a24;--accent-dark:#b97a5c;--bg:#141312;--surface:#1e1c1a;--surface-alt:#292623;--border:#3b3733;--border-strong:#564f49;--text:#f7f3ee;--text-2:#cdc4bb;--text-3:#978c82;--success:#6ab083;--success-soft:#1f3328;--success-dark:#4a8b62;--warning:#d4a547;--warning-soft:#33270f;--warning-dark:#a07c2d;--error:#e17878;--error-soft:#361e1e;--error-dark:#a85454}body.theme-calico{--primary:#c96b5c;--primary-hover:#b25344;--primary-soft:#fce6e1;--primary-dark:#8f3d31;--accent:#e7b05a;--accent-soft:#fceed1;--accent-dark:#b3853a;--bg:#fff7f2;--surface:#fff;--surface-alt:#faede3;--border:#ebd7c9;--border-strong:#d6b8a3;--text:#2a201b;--text-2:#6e5a4f;--text-3:#a59487}body.theme-espresso{--primary:#6e4b3a;--primary-hover:#58392b;--primary-soft:#efe2d6;--primary-dark:#4a3022;--accent:#c78d4f;--accent-soft:#f6e6cf;--accent-dark:#946432;--bg:#f4efe9;--surface:#fffdf9;--surface-alt:#ece3d8;--border:#d9cdbe;--border-strong:#b9a890;--text:#201a16;--text-2:#57463b;--text-3:#987}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;min-height:100vh;font-weight:500}body.theme-dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html:has(.theme-dark){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}button{font-family:inherit}.btn{text-transform:uppercase;letter-spacing:.8px;border-radius:var(--r-sm);cursor:pointer;color:#fff;-webkit-user-select:none;user-select:none;min-width:120px;transition:filter var(--t), transform var(--t), box-shadow var(--t), background var(--t);background:var(--primary);box-shadow:var(--sh-primary);border:2px solid #0000;justify-content:center;align-items:center;gap:10px;padding:13px 22px;font-family:inherit;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:var(--primary-hover)}.btn:active{box-shadow:0 0 0 var(--primary-dark);transform:translateY(2px)}.btn[disabled]{opacity:.55;cursor:not-allowed}.btn-accent{background:var(--accent);box-shadow:var(--sh-accent)}.btn-accent:hover{filter:brightness(1.05);background:var(--accent)}.btn-accent:active{box-shadow:0 0 0 var(--accent-dark)}.btn-success{background:var(--success);box-shadow:var(--sh-success)}.btn-success:hover{filter:brightness(1.08);background:var(--success)}.btn-success:active{box-shadow:0 0 0 var(--success-dark)}.btn-warning{background:var(--warning);box-shadow:var(--sh-warning)}.btn-warning:hover{filter:brightness(1.05);background:var(--warning)}.btn-warning:active{box-shadow:0 0 0 var(--warning-dark)}.btn-danger{background:var(--error);box-shadow:var(--sh-error)}.btn-danger:hover{filter:brightness(1.05);background:var(--error)}.btn-danger:active{box-shadow:0 0 0 var(--error-dark)}.btn-secondary{background:var(--surface);color:var(--primary);border:2px solid var(--border);box-shadow:var(--sh-gray)}.btn-secondary:hover{background:var(--surface-alt);border-color:var(--border-strong)}.btn-secondary:active{box-shadow:0 0 0 var(--border-strong)}.btn-ghost{color:var(--text-2);border:2px solid var(--border);box-shadow:none;background:0 0}.btn-ghost:hover{border-color:var(--border-strong);color:var(--text)}.btn-ghost:active{transform:translateY(1px)}.btn-sm{min-width:0;padding:9px 14px;font-size:13px}.btn-xl{padding:18px 32px;font-size:17px}.icon-btn{border-radius:var(--r-sm);background:var(--surface);width:44px;min-width:44px;height:44px;color:var(--text-2);border:2px solid var(--border);box-shadow:var(--sh-gray);cursor:pointer;transition:all var(--t);justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{border-color:var(--border-strong);color:var(--text)}.icon-btn:active{box-shadow:0 0 0 var(--border-strong);transform:translateY(2px)}.icon-btn.is-active{background:var(--accent-soft);color:var(--accent-dark);border-color:var(--accent)}.input{background:var(--surface-alt);border:2px solid var(--border);border-radius:var(--r-sm);color:var(--text);width:100%;transition:background var(--t), border-color var(--t);padding:14px 18px;font-family:inherit;font-size:16px;font-weight:500}.input::placeholder{color:var(--text-3)}.input:focus{background:var(--surface);border-color:var(--primary);outline:none}.tag{background:var(--primary);color:#fff;letter-spacing:1px;text-transform:uppercase;border-radius:var(--r-pill);align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.tag-soft{background:var(--primary-soft);color:var(--primary)}.tag-accent{background:var(--accent);color:#fff}.tag-success{background:var(--success-soft);color:var(--success-dark)}.tag-warning{background:var(--warning-soft);color:var(--warning-dark)}.stat{background:var(--surface-alt);border:2px solid var(--border);border-radius:var(--r-pill);color:var(--text);align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:700;display:inline-flex}.stat .stat-icon{font-size:18px;line-height:1}.progress-track{background:var(--surface-alt);border:2px solid var(--border);border-radius:var(--r-pill);height:16px;position:relative;overflow:hidden}.progress-fill{background:var(--primary);border-radius:var(--r-pill);height:100%;transition:width .4s cubic-bezier(.4,0,.2,1);position:relative}.progress-fill:after{content:"";border-radius:var(--r-pill);background:#ffffff80;height:3px;position:absolute;inset:1px 4px auto}.section-header{border-bottom:2px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:20px;padding-bottom:12px;display:flex}.section-header h2{letter-spacing:-.2px;font-size:24px;font-weight:600}.section-header .eyebrow{letter-spacing:1.2px;text-transform:uppercase;color:var(--text-3);font-size:12px;font-weight:700}.checkbox-row{background:var(--surface);border:2px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:all var(--t);-webkit-user-select:none;user-select:none;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.checkbox-row:hover{border-color:var(--border-strong);background:var(--surface-alt)}.checkbox-row.checked{background:var(--success-soft);border-color:var(--success)}.checkbox-row.checked .check-box{background:var(--success);border-color:var(--success-dark);color:#fff}.checkbox-row.checked .check-label{color:var(--text-3);text-decoration:line-through;text-decoration-thickness:2px}.check-box{border:2px solid var(--border-strong);background:var(--surface);color:#0000;width:24px;height:24px;transition:all var(--t);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:16px;font-weight:700;line-height:1;display:inline-flex}.check-label{color:var(--text);font-size:16px;font-weight:500;line-height:1.45}.check-label .qty{color:var(--primary);font-weight:700}.stepper{background:var(--surface-alt);border:2px solid var(--border);border-radius:var(--r-pill);box-shadow:var(--sh-card);align-items:stretch;gap:0;padding:4px;display:inline-flex}.stepper button{border-radius:var(--r-pill);background:var(--primary);color:#fff;cursor:pointer;width:38px;height:38px;transition:all var(--t);box-shadow:0 2px 0 var(--primary-dark);border:none;justify-content:center;align-items:center;font-size:20px;font-weight:700;line-height:1;display:inline-flex}.stepper button:hover{background:var(--primary-hover)}.stepper button:active{box-shadow:0 0 0 var(--primary-dark);transform:translateY(1px)}.stepper button:disabled{background:var(--border);box-shadow:0 2px 0 var(--border-strong);cursor:not-allowed}.stepper .val{min-width:64px;color:var(--text);justify-content:center;align-items:center;padding:0 12px;font-size:18px;font-weight:700;display:inline-flex}.card{background:var(--surface);border:2px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-card);transition:transform var(--t), border-color var(--t);padding:20px}.card-hover:hover{border-color:var(--border-strong);cursor:pointer;transform:translateY(-2px)}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.recipe-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-card);cursor:pointer;transition:transform var(--t), border-color var(--t), box-shadow var(--t);flex-direction:column;display:flex;overflow:hidden}.recipe-card:hover{border-color:var(--border-strong);transform:translateY(-3px)}.recipe-thumb{aspect-ratio:4/3;border-bottom:2px solid var(--border);position:relative;overflow:hidden}.recipe-thumb-img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.recipe-thumb-fallback{background:url(/recipe-background.svg) 50%/cover}body.theme-dark .recipe-thumb-fallback{background-image:url(/recipe-background-dark.svg)}body.theme-calico .recipe-thumb-fallback{background-image:url(/recipe-background-calico.svg)}body.theme-espresso .recipe-thumb-fallback{background-image:url(/recipe-background-espresso.svg)}.recipe-thumb .ph{color:#ffffffd9;letter-spacing:1px;text-transform:uppercase;background-image:repeating-linear-gradient(45deg,#ffffff14 0 7px,#fff0 7px 14px);background-size:14px 14px;justify-content:center;align-items:center;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;display:flex;position:absolute;inset:0}.recipe-thumb-fallback .ph{color:var(--text-2);text-shadow:0 1px 2px #fff9;background-image:none;font-size:13px;font-weight:600}.recipe-thumb .save{background:var(--surface);-webkit-backdrop-filter:blur(8px);border:2px solid var(--border);cursor:pointer;width:38px;height:38px;color:var(--text-2);transition:all var(--t);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;right:12px;box-shadow:0 2px #00000014}.recipe-thumb .save:hover{color:var(--accent);transform:scale(1.06)}.recipe-thumb .save.saved{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.recipe-thumb .source{color:#fff;letter-spacing:.5px;border-radius:var(--r-pill);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0000008c;padding:4px 10px;font-size:11px;font-weight:600;position:absolute;bottom:12px;left:12px}.recipe-body{flex-direction:column;flex:1;gap:10px;padding:16px 18px 18px;display:flex}.recipe-title{letter-spacing:-.2px;color:var(--text);font-size:19px;font-weight:600;line-height:1.25}.recipe-meta{color:var(--text-2);flex-wrap:wrap;gap:14px;font-size:13px;font-weight:500;display:flex}.recipe-meta span{align-items:center;gap:5px;display:inline-flex}.topbar{z-index:50;-webkit-backdrop-filter:blur(12px)saturate(140%);border-bottom:2px solid var(--border);background:#faf7f2eb;position:sticky;top:0}body.theme-dark .topbar{background:#141312eb}body.theme-calico .topbar{background:#fff7f2eb}body.theme-espresso .topbar{background:#f4efe9eb}.topbar-inner{align-items:center;gap:16px;max-width:1180px;margin:0 auto;padding:14px 24px;display:flex}.logo{letter-spacing:-.5px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:24px;font-weight:700;display:inline-flex}.logo-mark{width:40px;height:40px;color:var(--primary);display:block}.spacer{flex:1}.theme-dropdown{position:relative}.theme-dropdown-menu{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:10px;min-width:160px;margin-top:6px;padding:6px;position:absolute;top:100%;right:0;box-shadow:0 8px 24px #0000002e}.theme-option{width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:10px;padding:8px 12px;font-size:14px;transition:background .15s;display:flex}.theme-option:hover{background:var(--border)}.theme-option:active{opacity:.75}.theme-option.is-active{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.theme-option.is-active{background:color-mix(in srgb, var(--primary) 14%, transparent)}}.theme-option.is-active{color:var(--primary);font-weight:600}.theme-swatch{border:2px solid var(--border);border-radius:50%;flex-shrink:0;width:16px;height:16px}.hero{text-align:center;box-shadow:none;background:0 0;border:none;border-radius:0;padding:56px 24px 48px;position:relative}.hero>*{z-index:1;position:relative}.hero h1{letter-spacing:-1.2px;color:var(--text);text-wrap:balance;margin:0 0 14px;font-size:clamp(40px,6vw,64px);font-weight:700;line-height:1.02}.hero h1 .hl{color:var(--primary)}.hero p.sub{color:var(--text-2);text-wrap:pretty;max-width:560px;margin:0 auto 28px;font-size:18px;line-height:1.5}.paster{background:var(--surface);border:2px solid var(--border-strong);border-radius:var(--r-md);max-width:640px;box-shadow:0 4px 0 var(--border-strong);transition:border-color var(--t), box-shadow var(--t);gap:10px;margin:0 auto;padding:8px;display:flex}.paster:focus-within{border-color:var(--primary);box-shadow:0 4px 0 var(--primary-dark)}.paster .input{box-shadow:none;background:0 0;border:none;flex:1;padding:12px 14px;font-size:17px}.paster .input:focus{background:0 0}.page{max-width:1180px;margin:0 auto;padding:32px 24px 96px}.row{align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:10px;display:flex}.cook-overlay{z-index:1000;background:var(--bg);flex-direction:column;animation:.25s cubic-bezier(.4,0,.2,1) fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.cook-header{border-bottom:2px solid var(--border);background:var(--surface);align-items:center;gap:18px;padding:18px 28px;display:flex}.cook-title{color:var(--text-2);letter-spacing:-.2px;flex:1;font-size:18px;font-weight:600}.cook-title b{color:var(--text);font-weight:700}.cook-body{flex:1;justify-content:center;align-items:flex-start;padding:48px 24px 32px;display:flex;overflow-y:auto}.cook-step-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--r-xl);width:100%;max-width:760px;box-shadow:var(--sh-card);flex-direction:column;gap:24px;padding:40px 44px 44px;display:flex}.cook-step-num{color:var(--text-3);letter-spacing:1.4px;text-transform:uppercase;align-items:center;gap:16px;font-size:13px;font-weight:700;display:flex}.cook-step-num .pip{background:var(--border-strong);border-radius:50%;width:8px;height:8px}.cook-step-num .pip.active{background:var(--primary);transform:scale(1.4)}.cook-step-num .pip.done{background:var(--success)}.cook-step-text{color:var(--text);letter-spacing:-.3px;text-wrap:pretty;font-size:clamp(24px,3vw,32px);font-weight:500;line-height:1.32}.cook-ing-list{background:var(--surface-alt);border:2px solid var(--border);border-radius:var(--r-md);flex-direction:column;gap:6px;padding:16px 20px;display:flex}.cook-ing-list .lbl{letter-spacing:1.4px;color:var(--text-3);text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:700}.cook-ing-list .ing{color:var(--text);font-size:16px;font-weight:500}.cook-ing-list .ing .qty{color:var(--primary);font-weight:700}.timer{background:var(--warning-soft);border:2px solid var(--warning);border-radius:var(--r-pill);color:var(--warning-dark);align-items:center;gap:14px;padding:14px 18px 14px 14px;display:inline-flex}.timer .face{font-variant-numeric:tabular-nums;text-align:center;min-width:76px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:22px;font-weight:700}.timer.running{background:var(--warning);color:#fff}.cook-footer{border-top:2px solid var(--border);background:var(--surface);align-items:center;gap:14px;padding:18px 28px;display:flex}.cook-footer .progress-track{flex:1}.bubble{color:#fff;background:var(--primary);width:56px;height:56px;box-shadow:var(--sh-bubble);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:inline-flex}.bubble-success{background:var(--success);box-shadow:0 6px 0 var(--success-dark)}.bubble-locked{background:var(--border);color:var(--text-3);box-shadow:0 6px 0 var(--border-strong)}.bubble-active{animation:2.2s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.chat-fab{z-index:900;cursor:pointer;width:auto;height:auto;transition:transform var(--t);background:0 0;border:none;padding:0;position:fixed;bottom:24px;right:24px}.chat-fab:hover{transform:translateY(-2px)}.chat-fab:active{transform:translateY(1px)}.chat-fab-icon{width:auto;height:80px;color:var(--primary);display:block}.chat-panel{z-index:900;flex-direction:column;width:360px;height:480px;padding:0;animation:.2s cubic-bezier(.4,0,.2,1) fadeIn;display:flex;position:fixed;bottom:24px;right:24px}.chat-header{border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.chat-header-title{color:var(--text);letter-spacing:-.2px;font-size:16px;font-weight:700}.chat-header-close{color:var(--text-3);cursor:pointer;transition:color var(--t);background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.chat-header-close:hover{color:var(--text)}.chat-messages{flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow-y:auto}.chat-empty{text-align:center;color:var(--text-3);padding:32px 12px;font-size:14px;font-weight:500;line-height:1.5}.chat-bubble-user{background:var(--primary-soft);color:var(--text);border-radius:var(--r-md) var(--r-md) 4px var(--r-md);word-break:break-word;align-self:flex-end;max-width:85%;padding:10px 14px;font-size:14px;font-weight:500}.chat-bubble-bot{background:var(--surface-alt);color:var(--text);border-radius:var(--r-md) var(--r-md) var(--r-md) 4px;word-break:break-word;align-self:flex-start;max-width:85%;padding:10px 14px;font-size:14px;font-weight:500}.chat-results-label{color:var(--text-2);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.chat-results-list{flex-direction:column;gap:6px;padding:0;list-style:none;display:flex}.chat-result-link{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);color:var(--primary);transition:border-color var(--t), background var(--t);align-items:center;gap:10px;padding:8px 10px;font-size:13px;font-weight:600;text-decoration:none;display:flex}.chat-result-link:hover{border-color:var(--primary);background:var(--primary-soft)}.chat-result-thumb{object-fit:cover;border-radius:8px;flex-shrink:0;width:36px;height:36px}.chat-typing{gap:5px;padding:12px 18px;display:inline-flex}.chat-typing .dot{background:var(--text-3);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite chatDot}.chat-typing .dot:nth-child(2){animation-delay:.15s}.chat-typing .dot:nth-child(3){animation-delay:.3s}@keyframes chatDot{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.chat-input-bar{border-top:2px solid var(--border);gap:8px;padding:12px;display:flex}.chat-input{flex:1;padding:10px 14px;font-size:14px}.chat-send{flex-shrink:0}.site-footer{max-width:1180px;margin:48px auto 0;padding:32px 24px 48px}.footer-links{flex-wrap:wrap;justify-content:center;align-items:center;margin-bottom:18px;display:flex}.footer-dot{color:var(--text-3);margin:0 8px;font-weight:700}.footer-link{letter-spacing:.8px;text-transform:uppercase;color:var(--text-2);transition:color var(--t);font-family:inherit;font-size:12px;font-weight:600;text-decoration:none}.footer-link:hover{color:var(--primary)}.kofi-btn{background:var(--accent);color:#fff;border-radius:var(--r-pill);box-shadow:0 4px 0 var(--accent-dark);transition:transform var(--t), box-shadow var(--t), filter var(--t);align-items:center;gap:12px;padding:12px 20px 12px 14px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.kofi-btn:hover{filter:brightness(1.05)}.kofi-btn:active{box-shadow:0 0 0 var(--accent-dark);transform:translateY(2px)}.kofi-cup{border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:inline-flex}.kofi-lbl{opacity:.85;letter-spacing:.4px;text-transform:uppercase;margin-bottom:1px;font-size:11px;font-weight:500;display:block}.kofi-btn b{letter-spacing:-.2px;font-size:16px;font-weight:700;display:block}.kofi-btn-sm{box-shadow:0 3px 0 var(--accent-dark);gap:8px;padding:6px 14px 6px 8px;font-size:13px}.kofi-btn-sm .kofi-cup{width:24px;height:24px}.kofi-btn-sm b{font-size:13px}.site-footer-fineprint{color:var(--text-3);letter-spacing:.2px;font-size:12px;font-weight:500}.footer-overlay{z-index:1000;background:var(--bg);flex-direction:column;animation:.25s cubic-bezier(.4,0,.2,1) fadeIn;display:flex;position:fixed;inset:0}.footer-overlay-close{z-index:1;position:absolute;top:18px;right:18px}.footer-overlay-body{flex:1;justify-content:center;align-items:flex-start;padding:48px 24px 64px;display:flex;overflow-y:auto}.footer-overlay-content{width:100%;max-width:680px}.footer-overlay-content h2{letter-spacing:-.4px;margin-bottom:6px;font-size:28px;font-weight:700}.footer-overlay-content h3{color:var(--primary);letter-spacing:-.1px;margin-top:28px;margin-bottom:8px;font-size:17px;font-weight:700}.footer-overlay-content p{color:var(--text-2);margin-bottom:4px;font-size:15px;font-weight:500;line-height:1.6}.footer-overlay-content ul{flex-direction:column;gap:6px;padding:0;list-style:none;display:flex}.footer-overlay-content ul li{color:var(--text-2);padding-left:18px;font-size:15px;font-weight:500;line-height:1.5;position:relative}.footer-overlay-content ul li:before{content:"";background:var(--primary);border-radius:50%;width:7px;height:7px;position:absolute;top:9px;left:0}.footer-page-updated{letter-spacing:.3px;color:var(--text-3)!important;margin-bottom:12px!important;font-size:13px!important;font-weight:600!important}.footer-page-version{border-bottom:2px solid var(--border);margin-bottom:28px;padding-bottom:24px}.footer-page-version:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}button.footer-link{cursor:pointer;background:0 0;border:none;padding:0}.banner{border-radius:var(--r-lg);border:2px solid;align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.banner-success{background:var(--success-soft);color:var(--success-dark);border-color:var(--success)}.banner-warning{background:var(--warning-soft);color:var(--warning-dark);border-color:var(--warning)}.banner-info{background:var(--accent-soft);color:var(--accent-dark);border-color:var(--accent)}.banner .em{font-size:22px;line-height:1}.banner b{margin-bottom:2px;font-weight:700;display:block}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg, var(--surface-alt) 25%, var(--border) 50%, var(--surface-alt) 75%);border-radius:var(--r-sm);background-size:800px 100%;animation:1.5s linear infinite shimmer}.skeleton-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.skeleton-card .skeleton-thumb{aspect-ratio:4/3;border-bottom:2px solid var(--border)}.skeleton-card .skeleton-body{flex-direction:column;gap:10px;padding:16px 18px 18px;display:flex}.skeleton-card .skeleton-line{border-radius:8px;height:16px}.skeleton-card .skeleton-line-short{width:60%}@media print{@page{margin:1.5cm 1.2cm}.topbar,.print-hide,.site-footer,.btn,.icon-btn,.stepper,.banner,.banner-info,.banner-success,.chat-fab,.chat-panel,img,.recipe-header-grid>:first-child:not(.recipe-thumb){display:none!important}.recipe-thumb{height:auto!important;min-height:0!important;aspect-ratio:unset!important;border:none!important;border-radius:0!important;padding:0!important}.recipe-thumb .ph{display:none!important}*{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:0 0!important}body{font-family:Georgia,Times New Roman,serif;font-size:12pt;line-height:1.35;background:#fff!important}h1,h2,h3{font-family:Georgia,Times New Roman,serif}h1{font-size:16pt;margin:0 0 .15em!important}h2{font-size:13pt;margin:0 0 .1em!important}.recipe-header-grid,.recipe-body-grid{grid-template-columns:none!important;gap:0!important;margin-bottom:.3em!important;display:block!important}.page{max-width:none;padding:0}.recipe-header-grid>.col{gap:4px!important}.recipe-header-grid .row{margin-top:0!important}.stat{border:none!important;padding:2px 0!important}.check-box{display:none!important}.checkbox-row{opacity:1!important;background:0 0!important;border:none!important;padding:.1em 0!important;text-decoration:none!important}.checkbox-row:before{content:"– ";font-weight:400}.checkbox-row.checked .check-label{opacity:1!important;text-decoration:none!important}.check-label{font-size:11pt}.qty{color:#000!important;font-weight:700!important}.eyebrow{display:none!important}.card{page-break-inside:avoid;border:none!important;margin-bottom:.25em!important;padding:.15em 0!important}.bubble{width:auto!important;height:auto!important;box-shadow:none!important;border-radius:0!important;font-size:12pt!important}.bubble:after{content:"."!important}.source{margin-top:.3em;font-size:11pt;text-decoration:underline;display:block!important;position:static!important}.recipe-grid{display:none!important}.section-header{margin-top:.6em;padding-bottom:.2em;border-bottom:1px solid #999!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width<=720px){.topbar-inner{padding:12px 16px}.page{padding:20px 16px 80px}.hero{padding:40px 20px 36px}.cook-step-card{padding:28px 22px}.footer-overlay-close{top:12px;right:12px}.footer-overlay-body{padding:24px 16px 48px}.chat-panel{width:calc(100vw - 32px);height:calc(100vh - 160px);bottom:16px;right:16px}.chat-fab{bottom:16px;right:16px}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
