@font-face{font-family:Geist Fallback;src:local("Arial");size-adjust:90%;ascent-override:92%;descent-override:25%;line-gap-override:0%}@font-face{font-family:"Instrument Serif Fallback";src:local("Georgia");size-adjust:100%;ascent-override:87%;descent-override:19%;line-gap-override:0%}@font-face{font-family:Geist Mono Fallback;src:local("Menlo"),local("Courier New");size-adjust:115%;ascent-override:90%;descent-override:25%;line-gap-override:0%}:root{--primary-dark: #386641;--primary: #6a994e;--primary-bright: #a7c957;--neutral: #f2e8cf;--secondary: #bc4749;--secondary-light: #d47779;--secondary-dark: #9a3a3c;--surface-0: #faf6ec;--surface-1: #ffffff;--surface-2: #f6eed6;--ink: #1f1d18;--ink-2: #3a3a3a;--ink-3: #6b6a63;--ink-4: #a6a49a;--hairline: rgba(31, 29, 24, .1);--hairline-strong: rgba(31, 29, 24, .18);--primary-color: var(--primary);--primary-hover: var(--primary-dark);--bg: var(--surface-0);--card-bg: var(--surface-1);--text-color: var(--ink-2);--text-strong: var(--ink);--text-muted: var(--ink-3);--button-color: #ffffff;--font-display: "Instrument Serif", "Instrument Serif Fallback", "Cormorant Garamond", serif;--font-display-he: "Noto Serif Hebrew", "Fredoka", serif;--font-ui: "Geist", "Geist Fallback", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-ui-he: "Noto Sans Hebrew", var(--font-ui);--font-mono: "Geist Mono", "Geist Mono Fallback", ui-monospace, "SF Mono", Menlo, monospace;--step--1: clamp(.78rem, .76rem + .1vw, .82rem);--step-0: clamp(.93rem, .9rem + .15vw, 1rem);--step-1: clamp(1rem, .96rem + .2vw, 1.09rem);--step-2: clamp(1.15rem, 1.08rem + .35vw, 1.32rem);--step-3: clamp(1.4rem, 1.28rem + .6vw, 1.75rem);--step-4: clamp(1.9rem, 1.65rem + 1.25vw, 2.75rem);--step-5: clamp(2.6rem, 2.1rem + 2.5vw, 4.25rem);--step-6: clamp(3.5rem, 2.6rem + 4.5vw, 6.75rem);--r-xs: 6px;--r-sm: 10px;--r-md: 14px;--r-lg: 20px;--r-xl: 28px;--r-2xl: 40px;--r-pill: 9999px;--shadow-1: 0 1px 2px rgba(31, 29, 24, .04), 0 2px 6px rgba(31, 29, 24, .04);--shadow-2: 0 2px 4px rgba(31, 29, 24, .05), 0 10px 30px -8px rgba(31, 29, 24, .1);--shadow-3: 0 6px 18px -6px rgba(31, 29, 24, .12), 0 24px 60px -24px rgba(31, 29, 24, .2);--ring: 0 0 0 3px rgba(106, 153, 78, .25);--ease: cubic-bezier(.2, .65, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-1: .16s;--dur-2: .28s;--dur-3: .52s;--content-max: 1200px;--gutter: clamp(20px, 4vw, 48px);--z-hide: -1;--z-base: 0;--z-elevated: 10;--z-sticky: 100;--z-page-overlay: 200;--z-nav: 1000;--z-backdrop: 1010;--z-drawer: 1020;--z-modal: 2000;--z-toast: 3000;--z-fullscreen: 10000;--z-spinner: 10010}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text-color);font-family:var(--font-ui);font-weight:400;font-size:var(--step-1);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11"}.display{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--step-6);line-height:.92;letter-spacing:-.025em;color:var(--text-strong)}.display-he{font-family:var(--font-display-he);font-style:normal;font-weight:400;font-size:var(--step-6);line-height:.95;letter-spacing:0;direction:rtl;color:var(--text-strong)}.heading-1{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--step-5);line-height:.97;letter-spacing:-.02em;color:var(--text-strong);margin:0}.heading-1-he{font-family:var(--font-display-he);font-style:normal;font-weight:400;font-size:var(--step-5);line-height:1;letter-spacing:0;direction:rtl;color:var(--text-strong);margin:0}.heading-2{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--step-4);line-height:1.05;letter-spacing:-.015em;color:var(--text-strong);margin:0}.heading-2-he{font-family:var(--font-display-he);font-style:normal;font-weight:400;font-size:var(--step-4);line-height:1.1;letter-spacing:0;direction:rtl;color:var(--text-strong);margin:0}.heading-3{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--step-3);line-height:1.15;letter-spacing:-.01em;color:var(--text-strong);margin:0}.heading-3-he{font-family:var(--font-display-he);font-style:normal;font-weight:400;font-size:var(--step-3);line-height:1.2;letter-spacing:0;direction:rtl;color:var(--text-strong);margin:0}.eyebrow{font-family:var(--font-ui);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--primary-dark);display:inline-flex;align-items:center;gap:10px}.eyebrow:before{content:"";width:24px;height:1px;background:var(--primary-dark);display:inline-block;flex-shrink:0}.lead{font-family:var(--font-ui);font-size:var(--step-2);line-height:1.5;color:var(--text-color)}.lead-he{font-family:var(--font-ui-he);font-size:var(--step-2);line-height:1.5;direction:rtl;color:var(--text-color)}.body-text{font-family:var(--font-ui);font-size:var(--step-1);line-height:1.65;color:var(--text-color)}.body-text-he{font-family:var(--font-ui-he);font-size:var(--step-1);line-height:1.65;direction:rtl;color:var(--text-color)}.caption{font-family:var(--font-mono);font-size:var(--step--1);line-height:1.5;color:var(--text-muted)}.mono-label{font-family:var(--font-mono);font-size:11px;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.mono-label-he{font-family:var(--font-mono);font-size:11px;letter-spacing:0;text-transform:none;direction:rtl;color:var(--text-muted)}.text-strong{color:var(--text-strong)}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary-dark)}.text-danger{color:var(--secondary)}.text-italic{font-style:italic}.text-center{text-align:center}.rtl{direction:rtl}:root{--sp-2xs: .25rem;--sp-xs: .5rem;--sp-sm: .75rem;--sp-md: 1rem;--sp-lg: 1.5rem;--sp-xl: 2rem;--sp-2xl: 3rem;--sp-3xl: 4.5rem}.content-wrap{max-width:var(--content-max);margin:0 auto;padding:0 var(--gutter)}.section{margin-top:var(--sp-3xl)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-lg);margin-bottom:var(--sp-lg);padding-bottom:var(--sp-md);border-bottom:1px solid var(--hairline)}.section-head h2,.section-head .section-title{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--step-4);letter-spacing:-.01em;margin:0;color:var(--text-strong)}.section-head .section-count{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);letter-spacing:.04em;white-space:nowrap}.section-lede{max-width:60ch;color:var(--text-muted);font-size:var(--step-1);margin:0 0 var(--sp-lg)}.card-pad{padding:24px}.card-pad-lg{padding:28px}.grid-gap{gap:var(--sp-md)}.grid-gap-sm{gap:var(--sp-sm)}.card{background:var(--card-bg);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.card--flat{background:var(--card-bg);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:none}.card--feature{background:linear-gradient(135deg,#386641,#2a4f32);border:none;border-radius:var(--r-xl);color:var(--neutral);position:relative;overflow:hidden}.card--feature:before{content:"";position:absolute;inset:auto -60px -80px auto;width:320px;height:320px;border-radius:50%;background:radial-gradient(closest-side,rgba(167,201,87,.35),transparent 70%);pointer-events:none}.recipe-card{background:var(--card-bg);border:1px solid var(--hairline);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)}.recipe-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}.recipe-card__photo{aspect-ratio:4 / 3;position:relative;background:linear-gradient(135deg,#d4e09b,#a7c957 60%,#6a994e);overflow:hidden;flex-shrink:0}.recipe-card__photo--main-courses{background:linear-gradient(135deg,#fca5a5,#f87171 60%,#bc4749)}.recipe-card__photo--desserts{background:linear-gradient(135deg,#f0abfc,#e879f9 60%,#d946ef)}.recipe-card__photo--soups-stews{background:linear-gradient(135deg,#93c5fd,#60a5fa 60%,#3b82f6)}.recipe-card__photo--salads{background:linear-gradient(135deg,#86efac,#4ade80 60%,#22c55e)}.recipe-card__photo--appetizers{background:linear-gradient(135deg,#fdba74,#fb923c 60%,#f97316)}.recipe-card__fav{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:#ffffffe6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--secondary);font-size:14px;border:none;padding:0;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.recipe-card__fav--active,.recipe-card__fav:hover{background:var(--secondary);color:#fff}.recipe-card__stamp{position:absolute;top:12px;left:12px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;border-radius:var(--r-xs)}.recipe-card__stamp--pending{background:#fffffff2;color:var(--secondary-dark)}.recipe-card__stamp--approved{background:var(--primary-dark);color:#fff}.recipe-card--pending .recipe-card__photo{background:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 10px,#eedfb3 10px,#eedfb3 20px)}.recipe-card__body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}.recipe-card__cat{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--primary-dark)}.recipe-card__title{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:22px;line-height:1.15;letter-spacing:-.01em;color:var(--text-strong);margin:0}.recipe-card__meta{margin-top:auto;padding-top:12px;border-top:1px solid var(--hairline);display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.bdg{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-pill);font-family:var(--font-ui);font-size:12px;font-weight:500;line-height:1;background:var(--surface-2);color:var(--text-strong);border:1px solid var(--hairline);cursor:default;white-space:nowrap;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}.bdg:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--bdg-color, var(--primary));flex-shrink:0}.bdg--active{background:var(--primary-dark);color:#fff;border-color:transparent}.bdg--active:before{background:var(--primary-bright)}.bdg--clickable{cursor:pointer}.bdg--clickable:hover:not(.bdg--active){background:var(--card-bg);border-color:var(--hairline-strong)}.bdg--cat-all{--bdg-color: var(--primary)}.bdg--cat-appetizers{--bdg-color: #f97316}.bdg--cat-main-courses{--bdg-color: var(--secondary)}.bdg--cat-side-dishes{--bdg-color: #fbbf24}.bdg--cat-soups-stews{--bdg-color: #3b82f6}.bdg--cat-salads{--bdg-color: #22c55e}.bdg--cat-desserts{--bdg-color: #d946ef}.bdg--cat-breakfast-brunch{--bdg-color: #06b6d4}.bdg--cat-breads-pastries{--bdg-color: #a34e2e}.bdg--cat-snacks{--bdg-color: #8b5cf6}.bdg--cat-beverages{--bdg-color: #0ea5e9}.bdg--easy,.bdg--medium,.bdg--hard{color:#fff;border-color:transparent}.bdg--easy:before,.bdg--medium:before,.bdg--hard:before{display:none}.bdg--easy{background:linear-gradient(135deg,#86efac,#22c55e);color:#14532d}.bdg--medium{background:linear-gradient(135deg,#fde047,#eab308);color:#713f12}.bdg--hard{background:linear-gradient(135deg,#fca5a5,#ef4444)}.bdg--time-short,.bdg--time-long{color:#fff;border-color:transparent}.bdg--time-short:before,.bdg--time-long:before{display:none}.bdg--time-short{background:linear-gradient(135deg,#93c5fd,#60a5fa)}.bdg--time-long{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.alert{padding:14px 18px;border-radius:var(--r-md);display:flex;align-items:flex-start;gap:12px;font-family:var(--font-ui);font-size:13.5px;line-height:1.5;border:1px solid;box-sizing:border-box}.alert__icon{font-size:16px;flex-shrink:0;margin-top:-1px;line-height:1.5}.alert b{font-weight:600}.alert--ok{background:color-mix(in oklab,var(--primary) 8%,white);border-color:color-mix(in oklab,var(--primary) 20%,transparent);color:var(--primary-dark)}.alert--warn{background:color-mix(in oklab,#eab308 10%,white);border-color:color-mix(in oklab,#eab308 25%,transparent);color:#7a5a07}.alert--err{background:color-mix(in oklab,var(--secondary) 8%,white);border-color:color-mix(in oklab,var(--secondary) 20%,transparent);color:var(--secondary-dark)}.alert--info{background:color-mix(in oklab,var(--text-muted) 8%,white);border-color:color-mix(in oklab,var(--text-muted) 20%,transparent);color:var(--text-muted)}.alerts{display:grid;gap:10px}.field{display:grid;gap:6px}.field__label{font-family:var(--font-ui);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.field__input,.field input,.field textarea,.field select{font-family:var(--font-ui);font-size:14px;color:var(--text-strong);background:var(--surface-1);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);padding:12px 14px;width:100%;transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease);-moz-appearance:none;appearance:none;-webkit-appearance:none;line-height:1.4}.field__input:focus,.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}.field textarea{resize:vertical;min-height:80px}.field__hint{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);line-height:1.4}.field--err .field__input,.field--err input,.field--err textarea,.field--err select{border-color:var(--secondary)}.field--err .field__input:focus,.field--err input:focus,.field--err textarea:focus,.field--err select:focus{box-shadow:0 0 0 3px #bc474933}.field--err .field__hint{color:var(--secondary)}.field__input:disabled,.field input:disabled,.field textarea:disabled,.field select:disabled{opacity:.5;cursor:not-allowed;background:var(--surface-2)}.select-ctrl{display:inline-flex;align-items:center;height:38px;padding:0 14px 0 32px;font-family:var(--font-ui);font-size:13px;font-weight:500;color:var(--text-strong);background:var(--surface-1);border:1px solid var(--hairline-strong);border-radius:var(--r-pill);-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;outline:none;width:100%;box-sizing:border-box;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%237c7562' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:left 10px center;background-size:16px;transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}[dir=rtl] .select-ctrl,.select-ctrl:dir(rtl){padding:0 32px 0 14px;background-position:right 10px center}.select-ctrl:hover{border-color:var(--hairline-strong);background-color:var(--surface-1)}.select-ctrl:focus{border-color:var(--primary);box-shadow:var(--ring)}.select-ctrl:disabled{opacity:.5;cursor:not-allowed}.fields-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.fields-grid .field--full{grid-column:span 2}.btn{font-family:var(--font-ui);font-size:14px;font-weight:500;letter-spacing:-.005em;padding:11px 20px;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1;white-space:nowrap;text-decoration:none;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.btn[disabled],.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--primary);color:#fff;border-color:transparent}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-ghost{background:transparent;color:var(--primary-dark);border-color:var(--hairline-strong)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-quiet{background:transparent;color:var(--text-strong);border-color:transparent}.btn-quiet:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--secondary);color:#fff;border-color:transparent}.btn-danger:hover:not(:disabled){background:var(--secondary-dark)}.btn-sm{font-size:12px;padding:7px 14px}.btn-lg{font-size:15px;padding:14px 26px}.btn-pill{border-radius:var(--r-pill);padding:10px 18px}.btn-sm.btn-pill{padding:7px 14px}.btn-icon{padding:10px;width:40px;height:40px;border-radius:var(--r-sm)}.btn-icon.btn-sm{width:32px;height:32px;padding:6px}.btn-icon.btn-lg{width:48px;height:48px;padding:12px}header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:.75rem var(--gutter);background:var(--surface-1);border-bottom:1px solid var(--hairline);gap:.5rem}header .menu-title-container{position:relative}header .logo{font-family:var(--font-display);font-size:clamp(1.4rem,2.5vw,1.9rem);font-weight:400;font-style:italic;color:var(--ink);line-height:1;text-decoration:none}header .logo em{font-style:italic;color:var(--primary-dark)}header .nav-search-container{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;transition:opacity .3s ease}header.app-loading{position:relative;overflow:hidden}header.app-loading>*{opacity:0;pointer-events:none}header.app-loading:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,#eef3e1 25%,#dcebc1,#eef3e1 75%);background-size:200% 100%;animation:nav-shimmer 1.5s infinite linear;z-index:var(--z-elevated)}@keyframes nav-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}header nav ul{display:flex;list-style:none;padding:.25rem;margin:0;background:var(--surface-2);border-radius:var(--r-pill);gap:2px}header nav ul li{margin:0}header nav ul li a{display:inline-flex;align-items:center;font-family:var(--font-ui);font-size:13px;font-weight:500;color:var(--ink-3);padding:.375rem .875rem;border-radius:var(--r-pill);white-space:nowrap;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease);text-decoration:none}header nav ul li a:hover{color:var(--ink);background:#ffffffb3}header nav ul li a.active{background:var(--surface-1);color:var(--ink);box-shadow:var(--shadow-1)}header .search-auth-container{display:flex;align-items:stretch;gap:.5rem}header .search-bar{display:flex;align-items:stretch}header .search-form{display:flex;align-items:center;background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-pill);overflow:hidden;transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}header .search-form:focus-within{border-color:var(--primary);box-shadow:var(--ring)}header .search-input{background:transparent;border:none;font-family:var(--font-ui);font-size:13px;color:var(--ink);padding:.375rem .75rem;flex-grow:1;outline:none;min-width:140px}header .search-input::placeholder{color:var(--ink-4)}header .search-button{background:transparent;border:none;cursor:pointer;padding:0 .75rem;height:100%;display:flex;align-items:center;justify-content:center;color:var(--ink-3);transition:color var(--dur-1) var(--ease)}header .search-button:hover{color:var(--primary-dark)}header .search-button .icon-search{font-size:14px}auth-avatar{width:36px;min-width:36px}header .auth-button{margin:0;padding:0;border:none;background:linear-gradient(135deg,var(--primary-bright),var(--primary-dark));color:#fff;cursor:pointer;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-weight:600;font-size:13px;transition:box-shadow var(--dur-1) var(--ease)}header .auth-button:hover{box-shadow:var(--shadow-2)}.auth-button svg{width:18px;height:18px}header .nav-toggle{display:none;background:transparent;border:none;border-radius:var(--r-xs);cursor:pointer;padding:.5rem;align-items:center;justify-content:center;transition:background var(--dur-1) var(--ease)}header .nav-toggle:hover{background:var(--surface-2)}header .hamburger{display:block;width:16px;height:2px;background-color:var(--ink-2);border-radius:1px;position:relative;transition:background-color var(--dur-1) var(--ease);will-change:background-color}header .hamburger:before,header .hamburger:after{content:"";position:absolute;left:0;width:16px;height:2px;background-color:var(--ink-2);border-radius:1px;transition:transform var(--dur-2) var(--ease);will-change:transform}header .hamburger:before{top:-6px}header .hamburger:after{top:6px}.nav-toggle.active .hamburger{background-color:transparent}.nav-toggle.active .hamburger:before{transform:translateY(6px) rotate(45deg)}.nav-toggle.active .hamburger:after{transform:translateY(-6px) rotate(-45deg)}@media (max-width: 768px){header{flex-direction:column;align-items:center;flex-wrap:nowrap;padding:.75rem 1rem;position:relative;gap:.5rem}header .menu-title-container{display:flex;align-items:center;gap:15px;justify-content:center;width:100%;margin-bottom:.25rem;flex-direction:row-reverse}header .nav-toggle{display:flex;z-index:var(--z-nav);position:relative;width:30px;height:30px;border-radius:10px;border:0;background:var(--primary-dark);color:#fff;padding:0;align-items:center;justify-content:center;box-shadow:var(--shadow-1);transition:opacity var(--dur-2) var(--ease),visibility var(--dur-2) var(--ease),background var(--dur-1) var(--ease)}header .nav-toggle:hover{background:var(--primary)}header .hamburger{display:block;width:16px;height:2px;background-color:#fff;border-radius:1px;position:relative;transition:background-color var(--dur-1) var(--ease);will-change:background-color}header .hamburger:before,header .hamburger:after{content:"";position:absolute;left:0;width:16px;height:2px;background-color:#fff;border-radius:1px;transition:transform var(--dur-2) var(--ease);will-change:transform}header .hamburger:before{top:-6px}header .hamburger:after{top:6px}header .nav-toggle.drawer-open{opacity:0;visibility:hidden;pointer-events:none}header .logo{font-size:clamp(1.6rem,5vw,2.2rem);text-align:center;flex:1}header .nav-search-container{width:100%;display:flex;justify-content:center}header .search-auth-container{display:flex;align-items:stretch;gap:10px;justify-content:center;width:100%}header .search-bar{width:auto;min-width:150px;flex-grow:1}header .search-form{width:100%}header .nav-search-container nav{display:none}.mobile-nav-drawer{position:fixed;top:0;right:0;height:100vh;width:min(320px,85vw);background-color:#fbf4e0;border-left:1px solid var(--hairline);transform:translate3d(100%,0,0);transition:transform var(--dur-3) var(--ease-out);z-index:var(--z-drawer);box-shadow:24px 0 64px -24px #1f1d1859;overflow:hidden;display:flex;flex-direction:column}.mobile-nav-drawer:before{content:"";position:absolute;left:44px;top:0;bottom:0;width:1px;background:#bc474940;z-index:var(--z-base)}.mobile-nav-drawer.active{transform:translateZ(0)}.mobile-nav-drawer .drawer-head{padding:20px 22px 18px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.mobile-nav-drawer .drawer-brand{display:flex;align-items:center;gap:10px;text-decoration:none}.mobile-nav-drawer .drawer-brand .words{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:20px;line-height:1;letter-spacing:-.01em;color:var(--text-strong)}.mobile-nav-drawer .drawer-brand .words em{font-style:normal;color:var(--primary-dark)}.mobile-nav-drawer .drawer-close{position:relative;width:32px;height:32px;border-radius:var(--r-pill);border:1px solid var(--hairline-strong);background:#fff9;display:inline-flex;align-items:center;justify-content:center;color:var(--text-strong);cursor:pointer}.mobile-nav-drawer .drawer-close:before{content:"×";font-size:1.2rem;line-height:1}.mobile-nav-drawer .drawer-idx{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--secondary-dark);padding:22px 22px 10px;display:flex;align-items:center;gap:10px;position:relative;z-index:1}.mobile-nav-drawer .drawer-idx:after{content:"";flex:1;height:1px;background:color-mix(in oklab,var(--secondary-dark) 35%,transparent)}.mobile-nav-drawer nav{margin-top:0;padding:0 10px;display:flex;flex-direction:column;position:relative;z-index:1;flex:1;overflow-y:auto}.mobile-nav-drawer nav ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px;background:transparent}.mobile-nav-drawer nav ul li{margin:0;opacity:0;transform:translate(20px);animation:slideInMenuItem var(--dur-3) var(--ease-out) forwards}.mobile-nav-drawer nav ul li:nth-child(1){animation-delay:.1s}.mobile-nav-drawer nav ul li:nth-child(2){animation-delay:.15s}.mobile-nav-drawer nav ul li:nth-child(3){animation-delay:.2s}.mobile-nav-drawer nav ul li:nth-child(4){animation-delay:.25s}.mobile-nav-drawer nav ul li:nth-child(5){animation-delay:.3s}.mobile-nav-drawer nav ul li:nth-child(6){animation-delay:.35s}@keyframes slideInMenuItem{to{opacity:1;transform:translate(0)}}.mobile-nav-drawer nav ul li a{display:flex;align-items:center;gap:14px;padding:13px 14px;border-radius:var(--r-md);text-decoration:none;color:var(--text-strong);font-family:var(--font-ui);font-size:17px;font-weight:500;position:relative;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.mobile-nav-drawer nav ul li a .ico{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0;font-size:16px}.mobile-nav-drawer nav ul li a:hover{background:#fff9}.mobile-nav-drawer nav ul li a.active{background:#fffc;box-shadow:0 1px 2px #1f1d180f;border:1px solid rgba(31,29,24,.08)}.mobile-nav-drawer nav ul li a.active .ico{color:var(--secondary-dark)}.mobile-nav-drawer nav ul li a.active:before{content:"";position:absolute;right:-10px;top:10px;bottom:10px;width:3px;background:var(--secondary);border-radius:3px 0 0 3px}.mobile-nav-drawer .drawer-foot{margin-top:auto;border-top:1px dashed color-mix(in oklab,var(--secondary) 40%,transparent);padding:14px 22px 26px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1;gap:10px}.mobile-nav-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#1f1d1866;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:all var(--dur-3) var(--ease-out);z-index:var(--z-backdrop)}.mobile-nav-backdrop.active{opacity:1;visibility:visible}}@media (min-width: 769px) and (max-width: 1200px){header{flex-direction:column;align-items:center}.nav-search-container{flex-direction:column;width:100%;align-items:center}}footer{background:var(--surface-2);border-top:1px solid var(--hairline);color:var(--ink-3);text-align:center;padding:1.25rem var(--gutter);font-family:var(--font-ui);font-size:var(--step--1);flex-shrink:0}footer p{margin:0 0 .25rem;color:var(--ink-3)}#icon-attribute{font-family:var(--font-mono);font-size:11px;color:var(--ink-2);text-decoration:none}#icon-attribute:hover{color:var(--primary-dark)}.search-bar{align-items:center}.search-form{display:flex;align-items:center;border-radius:var(--r-sm);overflow:hidden;height:40px}.search-form .search-input{border:none;font-family:var(--font-ui);font-size:1rem;padding:0 10px;flex-grow:1;outline:none;height:100%;border-bottom-right-radius:0;border-top-right-radius:0;min-width:0}.search-button{border:none;cursor:pointer;padding:0 15px;height:100%;display:flex;align-items:center;justify-content:center}.spa-app{min-height:100vh;display:flex;flex-direction:column}.header-container{flex-shrink:0}.spa-content{flex:1 0 auto;width:100%;min-height:0;position:relative;display:flex;flex-direction:column;background:radial-gradient(1200px 600px at 100% -10%,rgba(167,201,87,.1),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(188,71,73,.06),transparent 60%),var(--bg)}.spa-content:has(>.page-loading){min-height:calc(100vh - 60px);min-height:calc(100svh - 60px)}footer{flex-shrink:0}.spa-content .home-page{width:100%}.spa-content .quote-section{position:static;clear:both}.spa-loading{display:flex;align-items:center;justify-content:center;min-height:200px}.spa-content .page-loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#faf6ece6;z-index:var(--z-modal);transition:opacity .15s ease}@keyframes page-spin{to{transform:rotate(360deg)}}.page-loading-spinner{width:40px;height:40px;border:3px solid var(--surface-2);border-top-color:var(--primary);border-radius:50%;animation:page-spin .8s linear infinite;position:fixed;top:50%;left:50%;margin-top:-20px;margin-left:-20px}.spa-content .page-error{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;padding:2rem;text-align:center;margin:0}.spa-content .page-error .error-card{max-width:500px;padding:2rem;color:var(--secondary-dark);background:color-mix(in oklab,var(--secondary) 8%,white);border:1px solid color-mix(in oklab,var(--secondary) 20%,white);border-radius:var(--r-lg);box-shadow:var(--shadow-2)}.spa-content .page-error h2{margin-top:0;margin-bottom:1rem;font-size:var(--step-3);color:var(--secondary)}.spa-content .page-error p{margin:.5rem 0;line-height:1.5;color:var(--ink-2)}.spa-content .page-error .error-details{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-3);margin-top:1rem;background:var(--surface-2);padding:.5rem;border-radius:var(--r-xs);word-break:break-word}.spa-content .page-error .reload-button{margin-top:1.5rem;padding:.75rem 1.5rem;background:var(--secondary);color:#fff;border:none;border-radius:var(--r-sm);cursor:pointer;font-family:var(--font-ui);font-size:var(--step-0);font-weight:500;transition:background var(--dur-1) var(--ease)}.spa-content .page-error .reload-button:hover{background:var(--secondary-dark)}.spa-home-placeholder,.spa-categories-placeholder,.spa-propose-placeholder{padding:2rem 1rem}.spa-home-placeholder h1,.spa-categories-placeholder h1,.spa-propose-placeholder h1{color:var(--ink);margin-bottom:1rem}.spa-home-placeholder ul{margin:0;padding-left:1.5rem}.spa-home-placeholder li{margin:.5rem 0}@media (max-width: 768px){.spa-home-placeholder,.spa-categories-placeholder,.spa-propose-placeholder{padding:1rem .5rem}}img[data-src]{transition:opacity .3s ease;background-color:#f0f0f0}img[data-src].loading{opacity:.7;background-image:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading-shimmer 1.5s infinite}img[data-src].loaded{opacity:1;background:none}img[data-src].error{opacity:.5;background-color:#ffebee;border:1px solid #ffcdd2}@keyframes loading-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.recipe-card img[data-src]{width:100%;height:200px;object-fit:cover;border-radius:8px 8px 0 0}.recipe-card img[data-src].loading{background-color:#f5f5f5;position:relative}.recipe-card img[data-src].loading:after{content:"Loading...";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#666;font-size:14px}.auth-avatar img[data-src]{width:40px;height:40px;border-radius:50%;object-fit:cover}.auth-avatar img[data-src].loading{background-color:#e0e0e0}.recipe-detail img[data-src]{max-width:100%;height:auto;border-radius:8px}.recipe-detail img[data-src].loading{min-height:300px;background-color:#f5f5f5}@media (max-width: 768px){.recipe-card img[data-src]{height:150px}.recipe-detail img[data-src].loading{min-height:200px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}img[data-src].loaded{animation:fadeIn .3s ease-in}html{scrollbar-gutter:stable}body{height:100%;display:flex;flex-direction:column}h1,h2,h3{font-family:var(--font-display);font-weight:400}a{color:var(--primary-color);text-decoration:none}main{flex-grow:1}auth-controller:not(:defined),custom-modal:not(:defined){display:none;visibility:hidden}
