@keyframes splash-logo-wipe{0%{clip-path:inset(0 102% 0 0)}to{clip-path:inset(0 0% 0 0)}}@keyframes splash-logo-settle{0%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes splash-line-draw{0%{opacity:0;transform:scaleX(0)}12%{opacity:1}to{opacity:1;transform:scaleX(1)}}@keyframes splash-tagline-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes page-fade-in{0%{opacity:0}to{opacity:1}}.splash-overlay{z-index:9999;clip-path:circle(150%);will-change:clip-path;background:#f0fdf4;justify-content:center;align-items:center;transition:clip-path .8s cubic-bezier(.76,0,.24,1);display:flex;position:fixed;inset:0}.splash-overlay.splash-fading{clip-path:circle(0%);pointer-events:none}.splash-content{flex-direction:column;align-items:center;gap:1.1rem;display:flex}.splash-logo{object-fit:contain;will-change:clip-path, transform;width:min(380px,75vw);height:auto;animation:.7s cubic-bezier(.4,0,.2,1) .2s both splash-logo-wipe,.5s cubic-bezier(.34,1.56,.64,1) .9s both splash-logo-settle}.splash-line{transform-origin:0;will-change:transform, opacity;background:linear-gradient(90deg,#10b981 0%,#06b6d4 100%);border-radius:2px;width:72px;height:2px;animation:.55s cubic-bezier(.4,0,.2,1) .88s both splash-line-draw}.splash-tagline{font-family:var(--font-sans,sans-serif);letter-spacing:.22em;text-transform:uppercase;color:#64748b;font-size:.68rem;font-weight:500;animation:.55s cubic-bezier(.4,0,.2,1) 1.1s both splash-tagline-up}.page-hidden{opacity:0;pointer-events:none}.page-revealing{animation:.75s both page-fade-in}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary:#10b981;--secondary:#06b6d4;--emerald-light:#34d399;--teal-dark:#0f766e;--bg:#f0fdf4;--bg-elevated:#fff;--bg-card:#ffffffd9;--border:#10b98126;--border-hover:#10b9814d;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--grad-brand:linear-gradient(135deg, var(--secondary) 0%, var(--primary) 100%);--grad-glow:radial-gradient(ellipse 80% 50% at 50% -20%, #10b98140, transparent);--grad-card:linear-gradient(145deg, #ffffffe6 0%, #ffffffb3 100%);--spacing-xs:.5rem;--spacing-sm:.75rem;--spacing-md:1.25rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-2xl:5rem;--font-serif:"Playfair Display", Georgia, serif;--font-sans:"Inter", "Poppins", system-ui, sans-serif;--radius-sm:.5rem;--radius-md:1rem;--radius-lg:1.5rem;--radius-xl:2rem;--shadow-card:0 8px 32px #10b9811a, 0 1px 0 #fff inset;--shadow-btn:0 4px 16px #10b98133;--shadow-btn-hover:0 8px 24px #10b98166}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-weight:400;line-height:1.6;overflow-x:hidden}.bg-fx{pointer-events:none;z-index:0;position:fixed;inset:0}.bg-fx:before{content:"";filter:blur(80px);background:radial-gradient(#10b9811f 0%,#0000 70%);width:1000px;height:600px;animation:8s ease-in-out infinite alternate glow-pulse;position:absolute;top:-30%;left:50%;transform:translate(-50%)}.bg-fx:after{content:"";filter:blur(100px);background:radial-gradient(#06b6d414 0%,#0000 70%);width:800px;height:500px;animation:10s ease-in-out 2s infinite alternate glow-pulse;position:absolute;bottom:-20%;right:-10%}@keyframes glow-pulse{0%{opacity:.6;transform:translate(-50%)scale(1)}to{opacity:1;transform:translate(-50%)scale(1.1)}}.page-wrapper{z-index:1;flex-direction:column;min-height:100vh;display:flex;position:relative}.header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(16px);z-index:100;background:#fff9;justify-content:space-between;align-items:center;padding:1.5rem 2rem;display:flex;position:sticky;top:0}.header-logo{align-items:center;gap:.6rem;text-decoration:none;display:flex}.header-logo-img{object-fit:contain;width:auto;height:40px;display:block}.header-nav{align-items:center;gap:1.5rem;display:flex}.nav-link{color:var(--text-secondary);border-radius:8px;padding:.4rem .8rem;font-size:.95rem;font-weight:500;text-decoration:none;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative}.nav-link:hover{color:var(--text-primary);background:#10b9810d}.nav-link.active{color:var(--primary);background:#10b9811a;font-weight:600}.main{padding:var(--spacing-2xl) var(--spacing-lg);align-items:center;gap:var(--spacing-xl);flex-direction:column;flex:1;display:flex}.hero{text-align:center;width:100%;max-width:680px}.hero-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--primary);align-items:center;gap:.4rem;margin-bottom:1.25rem;font-size:.72rem;font-weight:600;display:inline-flex}.hero-eyebrow-dot{background:var(--primary);width:6px;height:6px;box-shadow:0 0 10px var(--primary);border-radius:50%;animation:2s ease-in-out infinite dot-blink}@keyframes dot-blink{0%,to{opacity:1}50%{opacity:.3}}.hero-title{font-family:var(--font-sans);letter-spacing:-.03em;color:var(--text-primary);margin-bottom:1rem;font-size:clamp(2.4rem,6vw,4rem);font-weight:700;line-height:1.1}.hero-title-accent{background:var(--grad-brand);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-tagline{color:var(--text-secondary);letter-spacing:.01em;font-size:1.05rem;font-weight:300;line-height:1.7}.card{background:var(--grad-card);border:1px solid var(--border);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(24px);box-shadow:var(--shadow-card);padding:var(--spacing-xl);width:100%;max-width:720px;transition:border-color .3s,box-shadow .3s}.card:hover{border-color:var(--border-hover)}.form{gap:var(--spacing-lg);flex-direction:column;display:flex}.form-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:.5rem;font-size:.82rem;font-weight:600;display:block}.form-hint{color:var(--text-muted);margin-top:.35rem;font-size:.75rem;font-weight:400}.textarea-wrapper{position:relative}.textarea{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-family:var(--font-sans);resize:vertical;background:#ffffff80;outline:none;min-height:110px;padding:1rem 1.25rem;font-size:.97rem;line-height:1.7;transition:border-color .25s,box-shadow .25s,background .25s}.textarea::placeholder{color:var(--text-muted)}.textarea:focus{border-color:var(--primary);background:#fffc;box-shadow:0 0 0 3px #10b98133,0 0 20px #10b9811a}.textarea.error{border-color:#ef444480;box-shadow:0 0 0 3px #ef44441a}.error-message{color:#ef4444;align-items:center;gap:.4rem;margin-top:.35rem;font-size:.8rem;font-weight:500;animation:.2s slide-in;display:flex}@keyframes slide-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.btn-primary{border-radius:var(--radius-md);background:var(--grad-brand);color:#fff;font-family:var(--font-sans);letter-spacing:.02em;cursor:pointer;box-shadow:var(--shadow-btn);border:none;justify-content:center;align-items:center;gap:.6rem;padding:.95rem 2rem;font-size:.95rem;font-weight:600;transition:transform .2s,box-shadow .2s,opacity .2s;display:flex;position:relative;overflow:hidden}.btn-primary:before{content:"";opacity:0;background:linear-gradient(135deg,#fff3 0%,#0000 60%);transition:opacity .2s;position:absolute;inset:0}.btn-primary:hover:not(:disabled):before{opacity:1}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-btn-hover);transform:translateY(-2px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.7;cursor:not-allowed;transform:none}.btn-secondary{border:1px solid var(--border-hover);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;background:#fffc;justify-content:center;align-items:center;gap:.4rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:500;transition:all .2s;display:flex}.btn-secondary:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:#10b9811a}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.customizer-section{padding:var(--spacing-md) var(--spacing-xl);border-bottom-left-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-xl);background:#10b98105;border-top:1px dashed #10b98133}.customizer-form{flex-direction:column;gap:.5rem;display:flex}.customizer-input{border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);background:#fffc;outline:none;flex:1;padding:.65rem 1rem;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.customizer-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #10b98133}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.recipe-card{border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(24px);box-shadow:var(--shadow-card), 0 0 60px #10b9810d;background:linear-gradient(145deg,#ffffffe6 0%,#ffffffb3 100%);border:1px solid #10b98126;width:100%;max-width:720px;animation:.5s cubic-bezier(.16,1,.3,1) recipe-appear;overflow:hidden}@keyframes recipe-appear{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.recipe-card-header{padding:1.5rem var(--spacing-xl);background:linear-gradient(90deg,#10b9810d 0%,#0000 100%);border-bottom:1px solid #10b9811a;align-items:center;gap:.75rem;display:flex}.recipe-card-icon{background:var(--grad-brand);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.1rem;display:flex;box-shadow:0 4px 12px #10b9814d}.recipe-card-title-group{flex-direction:column;gap:.1rem;display:flex}.recipe-card-label{letter-spacing:.12em;text-transform:uppercase;color:var(--primary);font-size:.7rem;font-weight:600}.recipe-card-subtitle{color:var(--text-muted);font-size:.82rem}.recipe-body{padding:var(--spacing-xl)}.recipe-content{font-family:var(--font-sans);color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;font-size:.95rem;line-height:1.85}.recipe-content h1,.recipe-content h2,.recipe-content h3{font-family:var(--font-sans);color:var(--text-primary);margin:1.5rem 0 .5rem;font-weight:600}.divider{align-items:center;gap:1rem;width:100%;max-width:720px;display:flex}.divider-line{background:var(--border);flex:1;height:1px}.divider-text{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:500}.footer{text-align:center;border-top:1px solid var(--border);color:var(--text-muted);letter-spacing:.04em;padding:2rem;font-size:.78rem}.footer a{color:var(--primary);text-decoration:none}.footer a:hover{text-decoration:underline}.server-error{border-radius:var(--radius-md);color:#ef4444;background:#ef44440d;border:1px solid #ef444433;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;font-size:.88rem;line-height:1.6;animation:.25s slide-in;display:flex}.server-error-icon{flex-shrink:0;margin-top:.05rem;font-size:1.1rem}.chips{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.chip{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:#10b9810d;border:1px solid #10b98126;border-radius:100px;padding:.25rem .7rem;font-size:.75rem;font-weight:500;transition:all .15s}.chip:hover{color:var(--primary);background:#10b9811a;border-color:#10b9814d;transform:translateY(-1px)}.chip.selected{color:var(--primary);background:#10b98133;border-color:#10b98180}.impact-tracker{flex-direction:column;gap:1.5rem;width:100%;max-width:720px;display:flex}.impact-stats-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.impact-stat-card{border-radius:var(--radius-md);text-align:center;background:#fff9;border:1px solid #10b98126;padding:1.25rem}.impact-stat-value{color:var(--primary);margin-bottom:.25rem;font-size:2rem;font-weight:700;line-height:1}.impact-stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.75rem}.global-mission-banner{border-radius:var(--radius-md);text-align:center;background:linear-gradient(90deg,#10b9810d,#06b6d40d);border:1px solid #10b9811a;padding:1.25rem}.global-mission-value{color:var(--text-primary);margin-top:.25rem;font-size:1.2rem;font-weight:600}.pantry-section{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff9;overflow:hidden}.pantry-toggle{width:100%;color:var(--text-primary);font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:.85rem 1.25rem;font-size:.9rem;font-weight:500;display:flex}.pantry-toggle:hover{background:#10b9810d}.pantry-toggle-arrow{color:var(--text-muted);transition:transform .3s}.pantry-badge{background:var(--primary);color:#fff;border-radius:100px;margin-left:auto;margin-right:.5rem;padding:.1rem .5rem;font-size:.7rem}.pantry-grid{border-top:1px solid var(--border);background:#10b98105;flex-wrap:wrap;gap:.5rem;padding:1rem 1.25rem;display:flex}.pantry-chip{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:#10b9810d;border:1px solid #0000;align-items:center;gap:.3rem;padding:.35rem .75rem;font-size:.8rem;transition:all .2s;display:inline-flex}.pantry-chip:hover{background:#10b9811a}.pantry-chip.selected{color:var(--primary);background:#10b98126;border-color:#10b9814d}.pantry-check{font-weight:700}@media (max-width:768px){.header{padding:1rem 1.25rem}.main{padding:var(--spacing-xl) var(--spacing-md);gap:var(--spacing-lg)}.card{padding:var(--spacing-lg)}.recipe-card-header{padding:1.25rem var(--spacing-lg)}.recipe-body{padding:var(--spacing-lg)}.hero-title{font-size:2.2rem}}@media (max-width:480px){.card{border-radius:var(--radius-lg);padding:1.25rem}}
