.skeleton{animation:skeleton-loading 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;border-radius:var(--radius-md,8px)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:1rem;margin-bottom:.5rem}.skeleton-heading{height:2rem;margin-bottom:1rem;width:60%}.skeleton-card{border-radius:var(--radius-lg,16px);height:200px}.skeleton-recipe-card{border-radius:var(--radius-xl,24px);min-height:300px}.skeleton-button{border-radius:var(--radius-lg,16px);height:48px;width:120px}.skeleton-recipe-grid{display:grid;gap:var(--space-xl,2rem);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.card,.ingredient-card,.recipe-card{overflow:hidden;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.card:before,.recipe-card:before{background:linear-gradient(135deg,rgba(255,107,88,.05),hsla(31,53%,64%,.05));content:"";height:100%;left:0;opacity:0;pointer-events:none;position:absolute;top:0;transition:opacity .3s ease;width:100%}.card:hover,.recipe-card:hover{box-shadow:var(--shadow-lg),0 0 0 1px rgba(255,107,88,.1);transform:translateY(-8px) scale(1.02)}.card:hover:before,.recipe-card:hover:before{opacity:1}.ingredient-card:hover{border-color:var(--coral-600);box-shadow:var(--shadow-md);transform:translateY(-4px)}.step-card-v3:hover:not(.active){box-shadow:-4px 0 0 var(--coral-500),var(--shadow-lg);transform:translateX(8px)}.card:active,.recipe-card:active{transform:translateY(-6px) scale(1.01);transition-duration:.1s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}.scroll-reveal{opacity:0}.scroll-reveal.active{animation:fadeInUp .6s ease-out forwards}.scroll-reveal-left.active{animation:slideInLeft .6s ease-out forwards}.scroll-reveal-right.active{animation:slideInRight .6s ease-out forwards}.scroll-reveal:first-child{animation-delay:0s}.scroll-reveal:nth-child(2){animation-delay:.1s}.scroll-reveal:nth-child(3){animation-delay:.2s}.scroll-reveal:nth-child(4){animation-delay:.3s}.scroll-reveal:nth-child(5){animation-delay:.4s}.scroll-reveal:nth-child(6){animation-delay:.5s}html{scroll-behavior:smooth}.btn,.btn-primary,.btn-secondary,.model-btn,.step-action-v3{overflow:hidden;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-primary:after,.btn:after,.step-action-primary-v3:after{background:hsla(0,0%,100%,.4);border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.btn-primary:active:after,.btn:active:after,.step-action-primary-v3:active:after{height:300px;width:300px}.btn-primary,.step-action-primary-v3{background:var(--gradient-coral);box-shadow:var(--shadow-coral)}.btn-primary:hover,.step-action-primary-v3:hover{box-shadow:0 8px 24px rgba(255,107,88,.35);transform:translateY(-2px)}.btn-primary:active,.step-action-primary-v3:active{box-shadow:var(--shadow-coral);transform:translateY(0)}.btn-secondary,.step-action-secondary-v3{background:#fff;border:2px solid var(--gray-200);transition:all .3s ease}.btn-secondary:hover,.step-action-secondary-v3:hover{background:var(--coral-100);border-color:var(--coral-600);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-pill,.model-btn{border:2px solid var(--gray-200);transition:all .2s ease}.btn-pill:hover,.model-btn:hover{border-color:var(--coral-600);transform:scale(1.05)}.btn-pill.active,.model-btn.active{background:var(--coral-600);box-shadow:var(--shadow-coral);color:#fff;transform:scale(1.05)}.btn-primary:disabled,.btn:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.5;transform:none!important}.btn-primary.loading,.btn.loading{color:transparent;pointer-events:none;position:relative}.btn-primary.loading:before,.btn.loading:before{animation:button-spin .6s linear infinite;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}@keyframes button-spin{to{transform:rotate(1turn)}}.btn:focus-visible,.input:focus-visible,.step-card-v3:focus-visible{outline:3px solid var(--coral-300);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}img.loading{animation:skeleton-loading 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%}.checkbox,.ingredient-checkbox-v3{transition:all .2s cubic-bezier(.4,0,.2,1)}.checkbox:hover,.ingredient-checkbox-v3:hover{border-color:var(--coral-600);transform:scale(1.1)}.checkbox.checked,.ingredient-checkbox-v3.checked{animation:checkboxPop .3s ease}@keyframes checkboxPop{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.recipe-progress-fill-v3{transition:width .5s cubic-bezier(.4,0,.2,1)}.toast{animation:toastSlideIn .3s ease-out}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}