.universal-modal{position:fixed;inset:0;z-index:calc(var(--z-modal) + (var(--modal-stack-layer, 0) - 1) * 10);display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:rgba(21,30,38,.45)}.universal-modal-panel{position:relative;width:100%;max-width:420px;padding:var(--space-6);background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-subtle);box-shadow:var(--shadow-md)}.universal-modal-panel--legal-scroll{max-width:min(94vw,640px);max-height:min(88vh,780px);display:flex;flex-direction:column}.universal-modal-panel--legal-scroll .universal-modal-body{overflow-y:auto;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch}.universal-modal-panel--legal-scroll .universal-modal-actions{flex-shrink:0;margin-top:var(--space-4)}.universal-modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-2)}.universal-modal-title{margin:0;font-size:var(--text-xl)}.universal-modal-body{color:var(--color-muted);font-size:var(--text-sm);line-height:1.45}.universal-modal-body p{margin:0}.universal-modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6)}.universal-modal-action,.universal-modal-actions>button{text-transform:uppercase}.universal-modal-action{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-subtle);font-family:var(--font-sans);font-size:.78rem;font-weight:var(--font-weight-bold);letter-spacing:var(--btn-letter-spacing);cursor:pointer;transition:var(--hover-btn-transition)}.universal-modal-action--secondary{border:1px solid var(--color-border);background:transparent;color:var(--color-text)}.universal-modal-action--secondary:focus-visible:not(:disabled),.universal-modal-action--secondary:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 9%,#ffffff);border-color:var(--color-primary);color:var(--color-text)}.universal-modal-action--primary{--hover-aggressive-bg:color-mix(in srgb,#000000 10%,var(--color-primary));border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-text-on-primary)}.universal-modal-action--primary:focus-visible:not(:disabled),.universal-modal-action--primary:hover:not(:disabled){background:var(--hover-aggressive-bg);border-color:var(--hover-aggressive-bg);color:var(--hover-aggressive-ink)}.universal-modal-action--primary:active:not(:disabled){filter:brightness(.97)}.universal-modal-action--danger{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff}.universal-modal-action--danger:focus-visible:not(:disabled),.universal-modal-action--danger:hover:not(:disabled){background:var(--color-remove-solid-hover);border-color:var(--color-remove-solid-hover);color:#fff}.universal-modal-action:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.universal-modal-action--danger:focus-visible{outline-color:var(--color-accent)}.universal-modal-action:disabled{cursor:not-allowed;opacity:.55}@media (max-width:480px){.universal-modal-actions{flex-direction:column-reverse}.universal-modal-action{width:100%}}.photo-attribution{margin:0}.photo-attribution--unsplash-dark{pointer-events:auto;flex-shrink:0;max-width:28ch;font-size:.625rem;line-height:1.45;letter-spacing:.02em;color:rgba(255,255,255,.42);text-shadow:0 1px 2px rgba(0,0,0,.45)}.photo-attribution--unsplash-dark a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:rgba(255,255,255,.28);text-decoration-color:rgba(255,255,255,.28);text-underline-offset:2px;transition:color var(--anim-fast),-webkit-text-decoration-color var(--anim-fast);transition:color var(--anim-fast),text-decoration-color var(--anim-fast);transition:color var(--anim-fast),text-decoration-color var(--anim-fast),-webkit-text-decoration-color var(--anim-fast)}.photo-attribution--unsplash-dark a:hover{color:rgba(255,255,255,.72);-webkit-text-decoration-color:rgba(255,255,255,.45);text-decoration-color:rgba(255,255,255,.45)}.photo-attribution-photo-caption{display:inline}@media (max-width:480px){.photo-attribution--unsplash-dark{font-size:.58rem}}.lucky-banner{padding-block:var(--space-10)}.lucky-banner-surface{position:relative;isolation:isolate;border-radius:var(--radius-subtle);overflow:hidden;box-shadow:none;min-height:20rem;background:#1c1b19}.lucky-banner-media{position:absolute;inset:0;z-index:0;background-image:var(--lucky-banner-image,none);background-size:cover;background-position:50%;background-repeat:no-repeat}.lucky-banner-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(270deg,rgba(0,0,0,.78) 0,rgba(0,0,0,.28) 55%,rgba(0,0,0,.1));mix-blend-mode:multiply}.lucky-banner-scrim-mobile-bottom{display:none}a.lucky-banner-inner{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:flex-end;padding-inline:clamp(var(--space-6),5vw,var(--space-12));padding-block:clamp(var(--space-8),3.5vw,var(--space-10));text-decoration:none;color:#ffffff}a.lucky-banner-inner:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.lucky-banner-content{width:min(100%,28rem);max-width:52ch;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:0}.lucky-banner-eyebrow{margin:0 0 var(--space-2) 0;font-size:.72rem;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--letter-spacing-widest);color:rgba(255,255,255,.88);line-height:var(--title-h2-line-height)}.lucky-banner-title{margin:0 0 var(--space-3) 0;font-size:var(--title-h2-size);line-height:var(--title-h2-line-height);color:#ffffff}@media (max-width:768px){.lucky-banner-title{font-size:clamp(1.375rem,1rem + 1.25vw,var(--text-xl))}}.lucky-banner-tagline{margin:0 0 var(--space-3) 0;font-size:var(--text-base);line-height:var(--line-height-normal);color:rgba(255,255,255,.9)}.lucky-banner-desc{margin:0 0 var(--space-4) 0;font-size:var(--text-sm);line-height:var(--line-height-relaxed);color:rgba(255,255,255,.78);max-width:52ch;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.lucky-banner-cta{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:var(--btn-padding);font-family:var(--font-sans);font-size:var(--btn-font-size);font-weight:var(--btn-font-weight);letter-spacing:var(--btn-letter-spacing);text-transform:uppercase;border-radius:var(--btn-border-radius);border:var(--btn-border);background:var(--color-primary);color:#1a1a1a;transition:filter var(--anim-fast),transform var(--anim-fast),box-shadow var(--anim-fast);cursor:inherit}a.lucky-banner-inner:hover .lucky-banner-cta{filter:brightness(1.06)}.lucky-banner-photo-credit{position:absolute;left:auto;right:max(var(--space-3),env(safe-area-inset-right,0px));bottom:max(var(--space-2),env(safe-area-inset-bottom,0px));z-index:5;max-width:min(36ch,calc(100% - var(--space-8)));text-align:right}@media (max-width:900px) and (min-width:641px){a.lucky-banner-inner{justify-content:center;padding-inline:var(--space-8);padding-block:clamp(var(--space-8),3.5vw,var(--space-10))}.lucky-banner-content{align-items:center;text-align:center}.lucky-banner-desc,.lucky-banner-eyebrow,.lucky-banner-tagline,.lucky-banner-title{text-align:center}.lucky-banner-cta{align-self:center}}@media (max-width:640px){.lucky-banner-surface{min-height:22rem}.lucky-banner-scrim{background:linear-gradient(270deg,rgba(0,0,0,.85) 0,rgba(0,0,0,.36) 50%,rgba(0,0,0,.09))}.lucky-banner-scrim-mobile-bottom{display:block;position:absolute;left:0;right:0;bottom:0;top:38%;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.7) 42%,rgba(0,0,0,.7));mix-blend-mode:multiply}a.lucky-banner-inner{justify-content:center;align-items:center;padding-inline:var(--space-5);padding-block:clamp(var(--space-8),3.5vw,var(--space-10))}.lucky-banner-content{width:100%;max-width:none;align-items:center;text-align:center}.lucky-banner-desc,.lucky-banner-eyebrow,.lucky-banner-tagline,.lucky-banner-title{text-align:center;margin-left:auto;margin-right:auto}.lucky-banner-desc{-webkit-line-clamp:4}.lucky-banner-cta{width:100%;max-width:20rem;align-self:center}.lucky-banner-photo-credit.photo-attribution{right:max(var(--space-2),env(safe-area-inset-right,0px));bottom:max(var(--space-2),env(safe-area-inset-bottom,0px));max-width:min(42ch,calc(100vw - var(--space-10)));font-size:.55rem;line-height:1.35}.lucky-banner{padding-block:var(--space-8)}}@media (max-width:480px){.lucky-banner-title{font-size:clamp(1.25rem,.875rem + 1vw,var(--text-lg));margin-bottom:var(--space-2)}.lucky-banner-desc{font-size:.8rem;margin-bottom:var(--space-3)}}:root{--color-primary:#f4b33c;--color-primary-rgb:244,179,60;--color-accent:#d23a32;--color-white:#ffffff;--color-bg:#faf9f8;--color-text:#2a2a2a;--color-text-on-primary:#1a1a1a;--color-muted:#666666;--color-border:rgb(var(--color-primary-rgb)/15%);--color-remove-border:var(--color-accent);--color-remove-bg:var(--color-white);--color-remove-ink:var(--color-accent);--color-remove-hover-bg:color-mix(in srgb,var(--color-accent) 12%,var(--color-white));--color-remove-hover-border:color-mix(in srgb,var(--color-accent) 72%,var(--color-text-on-primary));--color-remove-solid-bg:var(--color-accent);--color-remove-solid-ink:var(--color-remove-bg);--color-remove-solid-hover:color-mix(in srgb,#000000 12%,var(--color-accent));--color-sage-subdued:rgb(83,102,77);--color-sage-subdued-rgb:83,102,77;--color-recipe-owner-bar:var(--color-sage-subdued);--color-recipe-owner-bar-rgb:var(--color-sage-subdued-rgb);--color-surface-subtle:rgb(var(--color-primary-rgb)/6%);--color-surface-blue-subtle:#e8eaf6;--color-surface-blue-subtle-ink:#283593;--color-surface-sage-subtle:rgb(var(--color-sage-subdued-rgb)/11%);--color-announcement-bg-default:#e1f0ec;--color-subtle-teal:rgb(242 246 247);--color-subtle-teal-rgb:242,246,247;--category-badge-bg:var(--color-sage-subdued);--category-badge-text:var(--color-white);--category-badge-focus-ring:rgb(255 255 255/55%);--color-code-bg:rgb(var(--color-primary-rgb)/8%);--color-pre-bg:#f0ede9;--color-blockquote-bg:var(--color-code-bg);--color-primary-alpha-10:rgb(var(--color-primary-rgb)/10%);--color-primary-alpha-12:rgb(var(--color-primary-rgb)/12%);--color-primary-alpha-15:rgb(var(--color-primary-rgb)/15%);--color-primary-alpha-20:rgb(var(--color-primary-rgb)/20%);--color-primary-alpha-25:rgb(var(--color-primary-rgb)/25%);--color-primary-alpha-40:rgb(var(--color-primary-rgb)/40%);--font-sans:var(--font-body),system-ui,sans-serif;--font-display:var(--font-zilla-slab),serif;--font-heading:var(--font-display);--font-heading-narrow:var(--font-sans);--font-mono:"Courier New",Courier,monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--title-h1-size:clamp(2rem,1.375rem + 2vw,var(--text-4xl));--title-h2-size:clamp(1.625rem,1.125rem + 1.5vw,var(--text-3xl));--title-hero-size:clamp(2.375rem,1.625rem + 3vw,3.25rem);--title-h1-line-height:1.04;--title-h2-line-height:1.06;--title-hero-line-height:1;--text-display:var(--title-hero-size);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--title-display-weight:var(--font-weight-normal);--title-h1-h2-weight:var(--font-weight-semibold);--title-h3-size:var(--text-xl);--title-h3-weight:var(--font-weight-extrabold);--title-h3-tracking:0.05em;--title-h4-size:var(--text-lg);--title-h4-weight:var(--font-weight-bold);--title-h4-tracking:0.06em;--title-h5-size:var(--text-base);--title-h5-weight:var(--font-weight-bold);--title-h5-tracking:0.07em;--title-h6-size:var(--text-xs);--title-h6-weight:var(--font-weight-bold);--title-h6-tracking:0.08em;--letter-spacing-normal:0.02em;--letter-spacing-tight:0;--letter-spacing-wide:0.05em;--letter-spacing-wider:0.06em;--letter-spacing-widest:0.08em;--line-height-tight:1.15;--line-height-normal:1.3;--line-height-relaxed:1.7;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--max-width:1300px;--content-width:720px;--gutter:var(--space-6);--panel-width:calc(var(--max-width) + 2 * var(--space-8));--home-promo-banner-extend:clamp(2rem,5.5vw,4.25rem);--touch-target-min:2.75rem;--recipe-chrome-action-size:var(--touch-target-min);--icon-size-sm:18px;--icon-size-md:20px;--radius:12px;--radius-sm:6px;--radius-subtle:0.4rem;--radius-pill:100px;--radius-chip:20px;--border-width-default:1.5px;--border-width-thin:1px;--color-input-border:rgb(42 42 42/9%);--color-input-border-hover:var(--color-primary-alpha-40);--color-input-border-focus:var(--color-primary);--color-input-border-hover-light:rgb(255 255 255/38%);--color-card-border:var(--color-input-border);--border-subtle:var(--border-width-thin) solid var(--color-card-border);--color-border-muted:rgb(42 42 42/20%);--border-muted:var(--border-width-thin) solid var(--color-border-muted);--shadow-sm:0 2px 8px rgba(0,0,0,0.35);--shadow-md:0 4px 16px rgba(0,0,0,0.45);--shadow-elevated:0 12px 40px rgba(0,0,0,0.55);--shadow-inset-soft:inset 0 1px 2px rgba(255,255,255,0.06);--shadow-subtle:0 2px 10px rgba(0,0,0,0.035);--shadow-hover-subtle:0 3px 10px rgba(0,0,0,0.03);--shadow-nav-pill:0 4px 18px rgba(0,0,0,0.06),0 1px 3px rgba(0,0,0,0.04);--shadow-float:0 3px 10px rgba(0,0,0,0.16),0 1px 3px rgba(0,0,0,0.1);--panel-menu-border-color:rgba(0,0,0,0.1);--panel-menu-border:1px solid var(--panel-menu-border-color);--panel-menu-shadow:var(--shadow-nav-pill);--divider-subtle:1px solid var(--color-border);--recipe-item-card-bg:rgb(255 255 255/90%);--recipe-item-card-border:none;--recipe-item-card-shadow:none;--recipe-item-list-gap:var(--space-2);--anim-duration-fast:0.2s;--anim-duration-normal:0.3s;--anim-duration-slow:0.5s;--anim-timing-ease:ease;--anim-timing-ease-in:ease-in;--anim-timing-ease-out:ease-out;--anim-timing-ease-in-out:ease-in-out;--anim-fast:var(--anim-duration-fast) var(--anim-timing-ease);--anim-nav-skin:0.32s var(--anim-timing-ease);--anim-nav-reveal:transform 0.34s var(--anim-timing-ease-in-out),opacity 0.26s var(--anim-timing-ease);--anim-reveal-quick:opacity var(--anim-duration-fast) var(--anim-timing-ease-out),transform var(--anim-duration-fast) var(--anim-timing-ease-out),max-width var(--anim-duration-fast) var(--anim-timing-ease-out),margin-left var(--anim-duration-fast) var(--anim-timing-ease-out);--hover-subtle-surface:#ffffff;--hover-subtle-bg:color-mix(in srgb,#000000 5%,var(--hover-subtle-surface));--hover-subtle-border:transparent;--hover-subtle-transition:background var(--anim-fast),color var(--anim-fast);--hover-subtle-on-dark-bg:rgba(255,255,255,0.15);--hover-subtle-on-dark-active-bg:rgba(255,255,255,0.22);--hover-subtle-on-dark-transition:background var(--anim-fast);--hover-aggressive-bg:var(--color-primary);--hover-aggressive-ink:var(--color-text-on-primary);--hover-aggressive-active-bg:color-mix(in srgb,#000000 12%,var(--hover-aggressive-bg));--hover-aggressive-transition:background var(--anim-fast),color var(--anim-fast),border-color var(--anim-fast);--hover-outline-primary-bg:var(--color-primary-alpha-15);--hover-btn-transition:background var(--anim-fast),color var(--anim-fast),border-color var(--anim-fast),filter var(--anim-fast);--hover-link-transition:color var(--anim-fast),text-decoration-color var(--anim-fast);--z-base:1;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-toast:540;--z-modal-backdrop:400;--z-modal:500;--z-popover:600;--z-tooltip:700;--glass-bg:var(--color-bg);--glass-border:var(--border-width-default) solid var(--color-border);--input-bg:var(--color-white);--input-border:var(--border-width-thin) solid var(--color-input-border);--input-border-focus:var(--color-input-border-focus);--input-bg-focus:var(--color-white);--input-padding-block:var(--space-2);--input-padding-inline:var(--space-3);--input-min-height:2.35rem;--input-font-size:1rem;--input-shadow-focus:inset 0 1px 2px rgba(0,0,0,0.05),0 0 0 3px var(--color-primary-alpha-10);--badge-padding-lg:4px 8px;--badge-padding-sm:2px 7px;--badge-font-size-lg:0.7rem;--badge-font-size-sm:0.65rem;--badge-font-weight:700;--badge-letter-spacing:0.75px;--badge-text-transform:uppercase;--badge-border-radius:0;--chip-padding:5px 14px;--chip-border:var(--border-width-default) solid var(--color-border);--chip-font-size:var(--text-sm);--chip-font-weight:600;--chip-border-radius:var(--radius-pill);--btn-padding:var(--space-3) var(--space-6);--btn-font-size:var(--text-sm);--btn-font-weight:700;--btn-line-height:var(--line-height-tight);--btn-letter-spacing:var(--letter-spacing-wider);--btn-border-radius:var(--radius-subtle);--btn-border:var(--border-width-default) solid transparent}@media (min-width:481px) and (max-width:1024px){:root{--gutter:clamp(var(--space-4),2.8vw,var(--space-6))}}@media (max-width:480px){:root{--gutter:var(--space-4)}}.skeleton-status{display:flex}.skeleton-block{display:inline-block;flex:0 0 auto;min-width:0;height:1rem;border-radius:var(--radius-subtle);background:linear-gradient(90deg,rgb(var(--color-primary-rgb)/8%) 0,rgb(var(--color-primary-rgb)/16%) 42%,rgb(var(--color-primary-rgb)/8%) 84%);background-size:220% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton-text-stack{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.skeleton-text-line{height:.8rem}.user-menu-skeleton{align-items:center;gap:var(--space-2);min-height:38px;padding:.25rem .45rem;border:1px solid rgb(var(--color-primary-rgb)/22%);border-radius:999px}.user-menu-skeleton--compact{min-height:32px;padding:0;border-color:transparent}.user-menu-skeleton__avatar{width:28px;height:28px;border-radius:50%}.user-menu-skeleton--compact .user-menu-skeleton__avatar{width:30px;height:30px}.user-menu-skeleton__name{width:5.75rem;height:.8rem}.chip-skeletons{align-items:center;flex-wrap:wrap;gap:var(--space-2)}.chip-skeleton{height:34px;border-radius:999px}.recipe-grid-skeleton{width:100%;gap:var(--space-8)}.recipe-card-skeleton{display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius-subtle);background:var(--color-bg)}.recipe-card-skeleton__image{width:100%;aspect-ratio:16/10;height:auto;border-radius:0}.recipe-card-skeleton__body{display:flex;flex-direction:column;gap:var(--space-3);padding-block:var(--space-4) var(--space-2)}.recipe-card-skeleton__meta{width:38%;height:.72rem}.recipe-card-skeleton__title{width:78%;height:1.25rem}.recipe-card-skeleton__copy{width:100%}@keyframes skeleton-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@media (prefers-reduced-motion:reduce){.skeleton-block{animation:none;background-size:100% 100%}}