@import"https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Nunito:wght@300;400;500;600;700&display=swap";:root{--color-primary: #DC2626;--color-primary-light: #EF4444;--color-primary-dark: #B91C1C;--color-secondary: #F87171;--color-secondary-light: #FCA5A5;--color-cta: #CA8A04;--color-cta-light: #EAB308;--color-cta-dark: #A16207;--color-accent: #EA580C;--color-accent-light: #FB923C;--bg-primary: #FEF2F2;--bg-secondary: #FFFFFF;--bg-card: #FFFBFB;--bg-warm: #FFF7ED;--text-primary: #450A0A;--text-secondary: #7F1D1D;--text-muted: #991B1B;--text-light: #B91C1C;--shadow-sm: 0 1px 3px rgba(69, 10, 10, .08);--shadow-md: 0 4px 12px rgba(69, 10, 10, .1);--shadow-lg: 0 8px 30px rgba(69, 10, 10, .12);--shadow-glow: 0 0 30px rgba(220, 38, 38, .15);--shadow-gold: 0 4px 20px rgba(202, 138, 4, .25);--border-light: rgba(220, 38, 38, .1);--border-medium: rgba(220, 38, 38, .2);--border-accent: rgba(202, 138, 4, .3);--easy-bg: #DCFCE7;--easy-text: #166534;--easy-border: #86EFAC;--medium-bg: #FEF9C3;--medium-text: #854D0E;--medium-border: #FDE047;--hard-bg: #FEE2E2;--hard-text: #991B1B;--hard-border: #FECACA;--michelin-bg: #F3E8FF;--michelin-text: #7C3AED;--michelin-border: #DDD6FE;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.7;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 20%,rgba(220,38,38,.03) 0%,transparent 40%),radial-gradient(circle at 80% 80%,rgba(202,138,4,.04) 0%,transparent 40%),radial-gradient(circle at 50% 50%,rgba(248,113,113,.02) 0%,transparent 50%);pointer-events:none;z-index:-1}h1,h2,h3,h4,h5,h6{font-family:Fredoka,sans-serif;font-weight:600;color:var(--text-primary);letter-spacing:.01em}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--color-primary),var(--color-cta));border-radius:5px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--color-primary-dark),var(--color-cta-dark))}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulseWarm{0%,to{box-shadow:0 0 #dc262666}50%{box-shadow:0 0 0 15px #dc262600}}@keyframes pulseGold{0%,to{box-shadow:0 0 #ca8a0466}50%{box-shadow:0 0 0 12px #ca8a0400}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes bounceGentle{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes borderPulse{0%,to{border-color:var(--color-secondary-light)}50%{border-color:var(--color-cta)}}.animate-fadeIn{animation:fadeIn .5s ease forwards}.animate-fadeInUp{animation:fadeInUp .5s ease forwards}.animate-float{animation:float 3s ease-in-out infinite}.animate-pulseWarm{animation:pulseWarm 2s ease-in-out infinite}.animate-pulseGold{animation:pulseGold 2s ease-in-out infinite}.animate-shimmer{background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-warm) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.animate-slideDown{animation:slideDown .4s ease forwards}.stagger-animation>*{animation:fadeInUp .5s ease forwards;opacity:0}.stagger-animation>*:nth-child(1){animation-delay:.1s}.stagger-animation>*:nth-child(2){animation-delay:.2s}.stagger-animation>*:nth-child(3){animation-delay:.3s}.stagger-animation>*:nth-child(4){animation-delay:.4s}.stagger-animation>*:nth-child(5){animation-delay:.5s}.stagger-animation>*:nth-child(6){animation-delay:.6s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.warm-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:20px;box-shadow:var(--shadow-md);transition:all var(--transition-normal)}.warm-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-medium);transform:translateY(-4px)}.warm-card-accent{background:linear-gradient(135deg,var(--bg-card) 0%,var(--bg-warm) 100%);border:2px solid var(--border-accent);border-radius:24px;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.warm-card-accent:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-primary),var(--color-cta),var(--color-accent))}.btn-primary{background:linear-gradient(135deg,var(--color-cta) 0%,var(--color-cta-light) 100%);color:#fff;font-family:Nunito,sans-serif;font-weight:700;font-size:1rem;padding:14px 32px;border:none;border-radius:14px;cursor:pointer;box-shadow:var(--shadow-gold);transition:all var(--transition-normal);position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.btn-primary:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 8px 30px #ca8a0459}.btn-primary:hover:before{left:100%}.btn-primary:active{transform:translateY(-1px) scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;font-family:Nunito,sans-serif;font-weight:600;font-size:.95rem;padding:12px 24px;border:none;border-radius:12px;cursor:pointer;box-shadow:var(--shadow-md);transition:all var(--transition-normal)}.btn-secondary:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-ghost{background:transparent;color:var(--color-primary);font-weight:600;padding:12px 24px;border:2px solid var(--border-medium);border-radius:12px;cursor:pointer;transition:all var(--transition-normal)}.btn-ghost:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.form-label{display:block;font-weight:600;font-size:.95rem;color:var(--text-secondary);margin-bottom:8px}.form-select{width:100%;padding:14px 44px 14px 16px;font-family:Nunito,sans-serif;font-size:1rem;font-weight:500;color:var(--text-primary);background:var(--bg-secondary);border:2px solid var(--border-light);border-radius:12px;cursor:pointer;transition:all var(--transition-normal);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23DC2626'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px}.form-select:hover{border-color:var(--color-secondary)}.form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #dc26261a}.form-select option{background:var(--bg-secondary);color:var(--text-primary)}.upload-zone{background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-warm) 100%);border:3px dashed var(--color-secondary-light);border-radius:20px;padding:48px 32px;text-align:center;transition:all var(--transition-normal);position:relative;overflow:hidden}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--color-cta);background:linear-gradient(135deg,var(--bg-warm) 0%,#FEF3C7 100%);animation:borderPulse 1.5s ease-in-out infinite}.upload-zone.drag-over{transform:scale(1.02);box-shadow:var(--shadow-gold)}.upload-icon{width:80px;height:80px;margin:0 auto 24px;color:var(--color-secondary);transition:all var(--transition-normal)}.upload-zone:hover .upload-icon{color:var(--color-cta);animation:float 2s ease-in-out infinite}.image-preview{position:relative;aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--bg-warm);border:2px solid var(--border-light);transition:all var(--transition-normal);cursor:pointer}.image-preview:hover{border-color:var(--color-primary);transform:scale(1.03);box-shadow:var(--shadow-md)}.image-preview img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.image-preview:hover img{transform:scale(1.1)}.image-preview .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(69,10,10,.8) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-normal);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:12px}.image-preview:hover .overlay{opacity:1}.delete-btn{position:absolute;top:8px;right:8px;background:var(--color-primary);color:#fff;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:scale(.8);transition:all var(--transition-normal)}.image-preview:hover .delete-btn{opacity:1;transform:scale(1)}.delete-btn:hover{background:var(--color-primary-dark);transform:scale(1.1)}.recipe-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:24px;overflow:hidden;transition:all var(--transition-normal);position:relative}.recipe-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-primary),var(--color-cta));opacity:0;transition:opacity var(--transition-normal)}.recipe-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg),0 20px 50px #dc26261a;border-color:var(--color-secondary-light)}.recipe-card:hover:before{opacity:1}.recipe-card-image{width:100%;height:220px;object-fit:cover;transition:transform var(--transition-slow)}.recipe-card:hover .recipe-card-image{transform:scale(1.08)}.recipe-card-content{padding:24px}.recipe-title{font-family:Fredoka,sans-serif;font-size:1.4rem;font-weight:600;color:var(--color-primary);margin-bottom:12px;line-height:1.3;transition:color var(--transition-normal)}.recipe-card:hover .recipe-title{color:var(--color-primary-dark)}.difficulty-badge{display:inline-flex;align-items:center;padding:6px 14px;border-radius:20px;font-size:.85rem;font-weight:600;letter-spacing:.02em;border:1px solid transparent;transition:all var(--transition-normal)}.difficulty-easy{background:var(--easy-bg);color:var(--easy-text);border-color:var(--easy-border)}.difficulty-medium{background:var(--medium-bg);color:var(--medium-text);border-color:var(--medium-border)}.difficulty-hard{background:var(--hard-bg);color:var(--hard-text);border-color:var(--hard-border)}.difficulty-michelin{background:var(--michelin-bg);color:var(--michelin-text);border-color:var(--michelin-border)}.recipe-meta{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-light)}.recipe-meta-item{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:.9rem}.recipe-meta-item svg{width:20px;height:20px}.details-toggle{background:none;border:none;color:var(--color-cta);font-weight:600;font-size:.95rem;cursor:pointer;padding:8px 0;display:flex;align-items:center;gap:6px;transition:all var(--transition-normal)}.details-toggle:hover{color:var(--color-cta-dark);gap:10px}.details-toggle svg{transition:transform var(--transition-normal)}.details-toggle.expanded svg{transform:rotate(180deg)}.recipe-details{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-light);animation:slideDown .4s ease}.recipe-section-title{font-family:Fredoka,sans-serif;font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:12px;display:flex;align-items:center;gap:10px}.recipe-section-title:before{content:"";width:4px;height:22px;background:linear-gradient(to bottom,var(--color-primary),var(--color-cta));border-radius:2px}.ingredient-list,.instruction-list{list-style:none;padding:0;margin:0}.ingredient-list li{color:var(--text-secondary);padding:10px 0 10px 28px;position:relative;font-size:.95rem;border-bottom:1px dashed var(--border-light)}.ingredient-list li:last-child{border-bottom:none}.ingredient-list li:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:10px;height:10px;background:linear-gradient(135deg,var(--color-primary),var(--color-cta));border-radius:50%}.instruction-list{counter-reset:step}.instruction-list li{color:var(--text-secondary);padding:14px 0 14px 48px;position:relative;font-size:.95rem;line-height:1.6;border-bottom:1px solid var(--border-light)}.instruction-list li:last-child{border-bottom:none}.instruction-list li:before{counter-increment:step;content:counter(step);position:absolute;left:0;top:14px;width:32px;height:32px;background:linear-gradient(135deg,var(--color-primary),var(--color-cta));color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:24px}.loading-spinner{position:relative;width:80px;height:80px}.loading-spinner:before{content:"🍳";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:2.5rem;animation:wiggle 1s ease-in-out infinite}.loading-spinner:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border:4px solid var(--bg-warm);border-top-color:var(--color-primary);border-right-color:var(--color-cta);border-radius:50%;animation:spin 1s linear infinite}.loading-text{font-size:1.1rem;color:var(--text-secondary);font-weight:600;text-align:center}.error-alert{background:var(--hard-bg);border:2px solid var(--hard-border);border-radius:16px;padding:20px 24px;display:flex;align-items:flex-start;gap:16px}.error-alert svg{width:24px;height:24px;color:var(--color-primary);flex-shrink:0;margin-top:2px}.error-alert-title{font-weight:700;color:var(--color-primary);margin-bottom:4px}.error-alert-message{color:var(--text-secondary);font-size:.95rem}.grounding-info{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:2px solid #93C5FD;border-radius:16px;padding:20px 24px;margin-top:40px}.grounding-info h4{font-family:Playfair Display SC,Georgia,serif;color:#1d4ed8;font-size:1rem;font-weight:700;margin-bottom:12px}.grounding-info ul{list-style:none;padding:0;margin:0}.grounding-info li{padding:6px 0}.grounding-info a{color:#2563eb;text-decoration:none;font-size:.9rem;transition:color var(--transition-normal)}.grounding-info a:hover{color:#1d4ed8;text-decoration:underline}@media(max-width:768px){.warm-card,.warm-card-accent,.recipe-card{border-radius:16px}.btn-primary{padding:12px 24px;font-size:.95rem}.upload-zone{padding:32px 20px}.recipe-card-content{padding:20px}.recipe-title{font-size:1.2rem}.upload-icon{width:60px;height:60px}}@media(max-width:375px){body{font-size:14px}.recipe-meta{gap:10px}}
