@import"https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600;700&family=Open+Sans:wght@400;500;600;700&display=swap";:root{--text-primary: #1a1a1a;--text-secondary: #4a4a52;--text-tertiary: #8a8a93;--surface: #ffffff;--surface-muted: #fafafa;--surface-elevated: #ffffff;--line: rgba(0, 0, 0, .06);--line-strong: rgba(0, 0, 0, .12);--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: #dbeafe;--success: #10b981;--success-soft: #d1fae5;--error: #ef4444;--error-soft: #fee2e2;--warning: #f59e0b;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-2xl: 32px;--transition: all .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Open Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:linear-gradient(to bottom,#fafafa,#f5f5f5);color:var(--text-primary);font-size:17px;line-height:1.8;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:.01em}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:flex;flex-direction:column}header{background:#fffc;border-bottom:1px solid var(--line);padding:2rem clamp(1.5rem,6vw,5rem);position:sticky;top:0;z-index:100;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);box-shadow:var(--shadow-sm);transition:var(--transition)}.header-brand{display:flex;align-items:center;gap:1.25rem}header h1{margin:0;font-size:clamp(2rem,3.5vw,2.75rem);font-family:Lora,serif;font-weight:600;letter-spacing:-.01em;color:var(--text-primary);line-height:1.3}.nav{margin-top:1.5rem;display:flex;gap:.5rem;flex-wrap:wrap}.nav a{padding:.7rem 1.5rem;border-radius:999px;text-decoration:none;font-weight:500;font-size:1rem;border:1.5px solid transparent;transition:var(--transition);position:relative;color:var(--text-secondary)}.nav a.active{background:var(--text-primary);color:#fff;border-color:var(--text-primary);box-shadow:var(--shadow-md)}.nav a:not(.active):hover{background:var(--surface-muted);border-color:var(--line-strong);color:var(--text-primary);transform:translateY(-1px)}main{flex:1;padding:clamp(2rem,5vw,4.5rem) clamp(1.5rem,5vw,4rem);max-width:1280px;width:100%;margin:0 auto}.section-card{background:var(--surface-elevated);border-radius:var(--radius-2xl);padding:clamp(2rem,4vw,4rem);border:1px solid var(--line);box-shadow:var(--shadow-xl);transition:var(--transition-slow);animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero{display:grid;gap:1.75rem}.hero h2{margin:.75rem 0;font-size:clamp(2rem,4.5vw,3rem);font-family:Lora,serif;font-weight:600;letter-spacing:-.01em;line-height:1.4;color:var(--text-primary)}.hero p{color:var(--text-secondary);max-width:70ch;line-height:1.9;font-size:1.125rem;margin-top:.5rem}.hero-cta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.primary-btn,.ghost-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600;font-size:1rem;padding:1rem 2rem;border-radius:999px;border:1.5px solid transparent;transition:var(--transition);cursor:pointer;text-decoration:none}.primary-btn{background:var(--text-primary);color:#fff;box-shadow:var(--shadow-md)}.primary-btn:hover{background:#1a1a1a;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.primary-btn:active{transform:translateY(0)}.ghost-btn{background:var(--surface);border-color:var(--line-strong);color:var(--text-primary)}.ghost-btn:hover{background:var(--surface-muted);border-color:var(--text-secondary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.75rem}.stat-card,.recipe-card,.family-card,.list-card{border-radius:var(--radius-xl);padding:2rem;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:var(--transition)}.stat-card:hover,.family-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--line-strong)}.recipe-card{border-radius:var(--radius-xl);padding:2.25rem;margin-bottom:2rem}.list-card{border-radius:var(--radius-lg);padding:2rem}.stat-value{font-size:3rem;font-weight:600;margin:.75rem 0;font-family:Lora,serif;color:var(--text-primary);line-height:1.2}.badge{display:inline-flex;align-items:center;padding:.5rem 1.125rem;border-radius:999px;background:var(--accent-soft);font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:.875rem}.pill{display:inline-flex;align-items:center;padding:.5rem 1.125rem;border-radius:999px;background:var(--surface-muted);font-weight:500;font-size:.9375rem;color:var(--text-secondary);border:1px solid var(--line)}.muted{color:var(--text-secondary);font-size:1rem;line-height:1.8}h3{font-size:1.625rem;font-weight:600;margin:.75rem 0;color:var(--text-primary);line-height:1.4;font-family:Lora,serif}.search-filter-section{margin:2.5rem 0;padding:2rem;background:var(--surface-muted);border-radius:var(--radius-lg);border:1px solid var(--line)}.search-container{position:relative;margin-bottom:1.25rem}.search-input{width:100%;padding:1rem 1.5rem 1rem 3rem;border-radius:var(--radius-md);border:1.5px solid var(--line);background:var(--surface);font-size:1rem;font-family:inherit;color:var(--text-primary);transition:var(--transition);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2352525b' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 1rem center;background-size:1.25rem}.search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background-color:#fff}.search-loading{position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);width:1.25rem;height:1.25rem;border:2px solid var(--accent);border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.filter-container{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.category-filter{flex:1;min-width:200px;max-width:300px;padding:.875rem 2.5rem .875rem 1.25rem;border-radius:var(--radius-md);border:1.5px solid var(--line);background:var(--surface);font-size:1rem;font-family:inherit;color:var(--text-primary);transition:var(--transition);cursor:pointer}.category-filter:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.clear-filters-btn{padding:.875rem 1.5rem;border-radius:var(--radius-md);border:1.5px solid var(--line-strong);background:var(--surface);color:var(--text-secondary);font-size:.9375rem;font-weight:500;cursor:pointer;transition:var(--transition);font-family:inherit}.clear-filters-btn:hover{background:var(--surface-muted);border-color:var(--text-secondary);color:var(--text-primary)}.filter-results{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.category-pill{font-weight:600;text-transform:capitalize}.split-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:2rem;margin-top:2.5rem}.recipes-container{margin-top:2.5rem}.recipes-header{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap;padding:1.5rem;background:var(--surface-muted);border-radius:var(--radius-lg);border:1px solid var(--line)}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2rem}.recipe-card-preview{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--line);overflow:hidden;cursor:pointer;transition:var(--transition);display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}.recipe-card-preview:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--line-strong)}.recipe-card-image{width:100%;height:200px;overflow:hidden;background:var(--surface-muted)}.recipe-card-image img{width:100%;height:100%;object-fit:cover;transition:var(--transition)}.recipe-card-preview:hover .recipe-card-image img{transform:scale(1.05)}.recipe-card-image-placeholder{width:100%;height:200px;background:var(--surface-muted);display:flex;align-items:center;justify-content:center;font-size:3rem}.recipe-card-content{padding:1.5rem;display:flex;flex-direction:column;flex:1}.recipe-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:1rem;border-top:1px solid var(--line)}.recipe-card-arrow{font-size:1.25rem;color:var(--accent);transition:var(--transition)}.recipe-card-preview:hover .recipe-card-arrow{transform:translate(4px)}.recipe-content{display:grid;gap:3rem;margin-top:3rem}.recipe-section{background:var(--surface-muted);padding:2rem;border-radius:var(--radius-lg);border:1px solid var(--line)}.recipe-list{list-style:none;padding:0;margin:0}.recipe-list li{padding:.875rem 0 .875rem 2rem;position:relative;line-height:1.8;color:var(--text-secondary);font-size:1.0625rem;border-bottom:1px solid var(--line)}.recipe-list li:last-child{border-bottom:none}.recipe-list ul li:before{content:"";position:absolute;left:0;top:1.25rem;width:6px;height:6px;border-radius:50%;background:var(--accent)}.recipe-list ol{counter-reset:step-counter;list-style:none}.recipe-list ol li{counter-increment:step-counter;padding-left:2.5rem}.recipe-list ol li:before{content:counter(step-counter);position:absolute;left:0;top:.875rem;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600}.share-section{margin:2rem 0;padding:1.5rem;background:var(--surface-muted);border-radius:var(--radius-lg);border:1px solid var(--line)}.share-buttons{display:flex;gap:.75rem;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:1.5rem}.recipe-card img{width:100%;border-radius:var(--radius-lg);margin:1.5rem 0;box-shadow:var(--shadow-md);transition:var(--transition)}.recipe-card img:hover{transform:scale(1.02);box-shadow:var(--shadow-lg)}.recipe-card strong{display:block;margin-top:2rem;margin-bottom:.875rem;font-size:1.25rem;font-weight:600;color:var(--text-primary);font-family:Lora,serif}.share-row{display:flex;justify-content:flex-end;margin-bottom:.75rem}.share-btn{background:transparent;color:var(--accent);border:1.5px solid var(--accent);padding:.625rem 1.5rem;border-radius:999px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:var(--transition)}.share-btn:hover{background:var(--accent);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.recipe-card ul,.recipe-card ol{margin:.75rem 0 2rem;padding-left:1.75rem;color:var(--text-secondary);line-height:2;font-size:1.0625rem}.recipe-card li{margin-bottom:.75rem}form{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}label{font-size:.9375rem;font-weight:600;color:var(--text-primary);letter-spacing:.01em;margin-bottom:.25rem}input,textarea,select{padding:1rem 1.25rem;border-radius:var(--radius-md);border:1.5px solid var(--line);background:var(--surface);font-size:1rem;font-family:inherit;color:var(--text-primary);transition:var(--transition);width:100%;line-height:1.6}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:#fff}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}textarea{min-height:140px;resize:vertical;line-height:1.8}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2352525b' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}button{border:none;border-radius:999px;padding:1rem 2rem;font-weight:600;font-size:1rem;background:var(--text-primary);color:#fff;cursor:pointer;transition:var(--transition);font-family:inherit;box-shadow:var(--shadow-sm);line-height:1.5}button:hover:not(:disabled){background:#1a1a1a;transform:translateY(-2px);box-shadow:var(--shadow-md)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--text-primary);border:1.5px solid var(--line-strong);box-shadow:none}button.secondary:hover:not(:disabled){background:var(--surface-muted);border-color:var(--text-secondary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}button.loading{position:relative;color:transparent!important;pointer-events:none}button.loading:after{content:"";position:absolute;top:50%;left:50%;width:1.25rem;height:1.25rem;margin:-.625rem 0 0 -.625rem;border:2px solid #fff;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}button.secondary.loading:after{border-color:var(--text-primary);border-top-color:transparent}@keyframes spin{to{transform:rotate(360deg)}}.status-message{padding:1.125rem 1.5rem;border-radius:var(--radius-md);font-weight:500;font-size:1rem;border:1px solid;animation:slideIn .3s ease-out;line-height:1.6}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.status-message.success{background:var(--success-soft);color:#065f46;border-color:var(--success)}.status-message.error{background:var(--error-soft);color:#7f1d1d;border-color:var(--error)}.blog-page .hero p em{font-style:italic;color:var(--text-primary)}.blog-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,2fr);gap:2.5rem;margin-top:2.5rem;align-items:flex-start}.blog-sidebar{position:sticky;top:6rem}.archive-card{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--line);padding:2rem;box-shadow:var(--shadow-md)}.archive-header strong{font-family:Lora,serif;font-size:1.375rem;color:var(--text-primary);display:block}.archive-list{margin-top:1.5rem;display:flex;flex-direction:column;gap:1rem}.archive-year-btn,.archive-month-btn{width:100%;display:flex;justify-content:space-between;align-items:center;border-radius:var(--radius-md);padding:.75rem 1rem;border:1px solid var(--line);background:var(--surface-muted);color:var(--text-primary);cursor:pointer;font-size:1rem;transition:var(--transition)}.archive-year-btn:hover,.archive-month-btn:hover{border-color:var(--text-secondary);background:#fff;box-shadow:var(--shadow-sm)}.archive-year-btn.active,.archive-month-btn.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-hover)}.archive-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem;margin-top:.75rem}.blog-feed{display:flex;flex-direction:column;gap:2rem}.blog-year-group{display:flex;flex-direction:column;gap:1.5rem}.blog-year-heading{margin:0;font-size:2rem;font-family:Lora,serif;color:var(--text-primary)}.blog-year-feed{display:flex;flex-direction:column;gap:1.5rem}.blog-post-card{border:1px solid var(--line);border-radius:var(--radius-xl);padding:2rem;background:var(--surface);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:1.25rem;transition:var(--transition)}.blog-post-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.blog-post-meta{display:flex;flex-direction:column;gap:.5rem}.blog-tags{display:flex;flex-wrap:wrap;gap:.5rem}.blog-tag{font-size:.8125rem;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--line);background:var(--surface-muted);color:var(--text-secondary)}.blog-post-body{display:flex;flex-direction:column;gap:1.25rem}.blog-post-media{margin:1rem 0;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line)}.blog-post-media img{width:100%;display:block;object-fit:cover}.blog-post-actions{display:flex;gap:.75rem;flex-wrap:wrap}.blog-loading{display:flex;align-items:center;gap:.75rem;padding:1.5rem;border-radius:var(--radius-lg);border:1px dashed var(--line);background:var(--surface-muted)}.empty-state{padding:2rem;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface-muted);text-align:center}.table-list{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.table-item{border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--line);background:var(--surface);transition:var(--transition);display:flex;flex-direction:column;gap:1rem}.table-item:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.table-item>div:first-child{flex:1}.table-item strong{display:block;font-size:1.25rem;margin-bottom:.5rem;color:var(--text-primary);line-height:1.5;font-family:Lora,serif;font-weight:600}footer{padding:3rem 1rem;text-align:center;color:var(--text-secondary);font-size:1rem;border-top:1px solid var(--line);margin-top:4rem;background:var(--surface);line-height:1.8}@media (max-width: 900px){.split-grid{grid-template-columns:1fr;gap:2.5rem}.blog-layout{grid-template-columns:1fr}.blog-sidebar{position:static}header{position:static}.table-item{flex-direction:column}.table-item>div:last-child{display:flex;flex-wrap:wrap;gap:.75rem}.table-item button{flex:1;min-width:120px}.search-filter-section{padding:1.5rem}.filter-container{flex-direction:column;align-items:stretch}.category-filter{max-width:100%}.clear-filters-btn{width:100%}.recipes-header{flex-direction:column;align-items:stretch}.recipes-header .primary-btn{width:100%}.recipes-grid{grid-template-columns:1fr}}@media (max-width: 600px){.header-brand{gap:1rem}.blog-post-card{padding:1.5rem}.nav{flex-direction:row;gap:.375rem}.nav a{padding:.625rem 1.25rem;font-size:.9375rem}.hero-cta{flex-direction:column}button,.primary-btn,.ghost-btn{width:100%}.grid{grid-template-columns:1fr;gap:1.5rem}.section-card{padding:1.75rem;border-radius:var(--radius-xl)}.stat-card,.recipe-card,.family-card,.list-card{padding:1.5rem}}
