html{font-size:80%}:root{--cream: #F8F5F0;--warm-cream: #FDF9F4;--brown: #5A3E2F;--dark-brown: #3D2A1F;--muted-red: #B8564F;--soft-red: #C5635F;--dark-gray: #0F0F0F;--white: #FFFFFF;--light-brown: rgba(90, 62, 47, .08);--subtle-brown: rgba(90, 62, 47, .15);--shadow-soft: rgba(90, 62, 47, .12);--shadow-medium: rgba(90, 62, 47, .18);--border-color: #E0D7D1;--transition-fast: .2s;--transition-medium: .3s;--transition-slow: .5s;--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-back: cubic-bezier(.34, 1.56, .64, 1);--ease-expo: cubic-bezier(.19, 1, .22, 1);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.25rem}html{scroll-behavior:smooth}body{font-family:Inter,sans-serif;margin:0}#root{background:linear-gradient(135deg,var(--warm-cream) 0%,var(--cream) 100%)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.app-container{min-height:100vh;min-height:100dvh;max-width:480px;margin:0 auto;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);color:var(--dark-gray);background:transparent;animation:fadeInUp .8s ease-out;position:relative;display:flex;flex-direction:column}.app-main{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;min-height:0}.app-container:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 20%,rgba(197,99,95,.03) 0%,transparent 50%);pointer-events:none;z-index:-1}.header{text-align:center;margin-top:clamp(.5rem,3vh,1.5rem);margin-bottom:clamp(1.5rem,5vh,3rem)}.header-controls{display:flex;justify-content:space-between;align-items:center}.control-btn{background:#ffffffe6;border:1px solid var(--subtle-brown);border-radius:var(--radius-md);padding:.5rem .75rem;font-size:1.5rem;font-weight:500;letter-spacing:1px;text-transform:uppercase;color:var(--brown);cursor:pointer;margin:1em 1em 0;width:5rem;box-shadow:0 4px 12px var(--shadow-soft);position:relative;overflow:hidden;transition:all var(--transition-medium) var(--ease-smooth);display:flex;align-items:center;justify-content:center}.control-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transform:translate(-100%);transition:transform .5s}.control-btn:hover{background:var(--white);transform:translateY(-2px) scale(1.05);box-shadow:0 6px 20px var(--shadow-medium)}.control-btn:hover:before{transform:translate(100%)}.control-btn:active{transform:translateY(0) scale(.98);transition:transform .1s}.control-btn:focus{outline:none;box-shadow:0 0 0 2px var(--warm-cream),0 0 0 4px var(--soft-red)}.control-btn i{transition:transform .3s ease}.control-btn:hover i{transform:scale(1.15)}.logo{font-size:clamp(2.5rem,11vw,3.5rem);font-weight:700;letter-spacing:-1.5px;color:var(--dark-gray);margin-bottom:8px;position:relative;animation:logoEntrance 1s ease-out .3s both;text-shadow:0 2px 4px rgba(90,62,47,.1)}.logo:after{content:"";position:absolute;bottom:-.5rem;left:50%;transform:translate(-50%);width:5rem;height:4px;background:linear-gradient(90deg,var(--muted-red),var(--soft-red));border-radius:3px;animation:underlineGrow .8s ease-out .8s both;box-shadow:0 2px 8px #c5635f4d}.subtitle{font-family:Space Mono,monospace;font-size:clamp(.8rem,3vw,1rem);color:var(--brown);opacity:.7;letter-spacing:.25em;text-transform:uppercase;margin-top:1rem;font-weight:600;animation:subtitleFade .8s ease-out 1s both}.recipe-selection{background:#ffffffb3;border-radius:20px;padding:clamp(1.25rem,5vw,2rem);margin-bottom:2rem;border:1px solid var(--subtle-brown);box-shadow:0 4px 12px var(--shadow-soft);margin:1rem;animation:slideInUp .6s ease-out .4s both;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease}.recipe-selection:hover{background:#ffffffd9;box-shadow:0 8px 24px var(--shadow-medium);transform:translateY(-2px)}@keyframes slideInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.recipe-title{font-size:1rem;font-weight:600;color:var(--brown);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:1.5rem;text-align:center;position:relative;padding-bottom:.5rem}.recipe-title:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:60px;height:2px;background:linear-gradient(90deg,transparent,var(--muted-red),transparent)}.recipe-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:2rem}.recipe-card{background:#fffc;border:2px solid transparent;border-radius:16px;padding:1.25rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-align:center;position:relative;overflow:hidden;animation:cardEntrance .5s ease-out both;display:flex;flex-direction:column;align-items:center;gap:.5rem}.recipe-card:nth-child(1){animation-delay:.1s}.recipe-card:nth-child(2){animation-delay:.2s}.recipe-card:nth-child(3){animation-delay:.3s}.recipe-card:nth-child(4){animation-delay:.4s}@keyframes cardEntrance{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.recipe-card: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 .6s}.recipe-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 24px var(--shadow-soft);background:#fff;border-color:var(--light-brown)}.recipe-card:hover:before{left:100%}.recipe-card.selected{background:linear-gradient(135deg,var(--muted-red),var(--soft-red));color:#fff;transform:translateY(-2px) scale(1.03);box-shadow:0 8px 20px #b8564f66,0 0 30px #b8564f33;border-color:transparent;animation:selectedPulse 2s ease-in-out infinite}@keyframes selectedPulse{0%,to{box-shadow:0 8px 20px #b8564f66,0 0 30px #b8564f33}50%{box-shadow:0 8px 24px #b8564f80,0 0 40px #b8564f4d}}.recipe-name{font-size:1.25rem;font-weight:500;margin-bottom:.5rem}.recipe-icon{font-size:2.5rem;margin-bottom:.5rem;transition:transform .3s ease;line-height:1}.recipe-card:hover .recipe-icon{transform:scale(1.1) rotate(5deg)}.recipe-card.selected .recipe-icon{animation:iconBounce .6s ease-out}@keyframes iconBounce{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.2) rotate(-10deg)}50%{transform:scale(1.15) rotate(10deg)}75%{transform:scale(1.1) rotate(-5deg)}}.recipe-details{font-size:1rem;opacity:.8;line-height:1.4;white-space:pre-line}.start-btn{background:linear-gradient(135deg,var(--muted-red),var(--soft-red));color:#fff;border:none;border-radius:16px;padding:1.25rem 2rem;font-family:inherit;font-size:1.25rem;font-weight:500;text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%;box-shadow:0 4px 12px var(--shadow-soft),0 0 #c5635f66;position:relative;overflow:hidden}.start-btn: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 .6s}.start-btn:after{content:"→";position:absolute;right:2rem;opacity:0;transform:translate(-10px);transition:all .3s ease}.start-btn:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 12px 28px var(--shadow-medium),0 0 20px #c5635f4d;background:linear-gradient(135deg,var(--soft-red),var(--muted-red))}.start-btn:hover:before{left:100%}.start-btn:hover:after{opacity:1;transform:translate(0)}.start-btn:active{transform:translateY(-1px) scale(1.01);transition:transform .1s}.start-btn.loading{pointer-events:none;opacity:.8}.start-btn.loading:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid transparent;border-top:2px solid white;border-radius:50%;animation:buttonSpin 1s linear infinite}@keyframes buttonSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.brewing-content{min-height:0;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;position:relative;animation:brewingFadeIn .8s ease-out}@keyframes brewingFadeIn{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.step-counter{font-size:1rem;color:var(--brown);opacity:.6;text-transform:uppercase;letter-spacing:1px;margin-bottom:clamp(1rem,3vh,2rem);animation:counterFadeIn .6s ease-out;position:relative;padding:.5rem 1rem;background:#ffffff80;border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-weight:600}.step-counter:before{content:"📍";margin-right:.5rem;font-size:1.2rem}@keyframes counterFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:.6;transform:translateY(0)}}.step-text{font-size:clamp(1rem,4vw,1.25rem);line-height:1.6;color:var(--dark-gray);margin-bottom:2rem;max-width:360px;font-weight:400;opacity:.85;font-style:italic;text-align:center;animation:textSlideIn .8s ease-out .2s both}@keyframes textSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:.85;transform:translateY(0)}}.timer-wrapper{display:flex;flex-direction:column;align-items:center;gap:clamp(1rem,3vh,2rem);margin:clamp(1rem,3vh,2rem) 0;width:100%;animation:timerSlideIn .8s ease-out .3s both}@keyframes timerSlideIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.lottie-animation-space{width:100%;height:clamp(120px,24vh,200px);display:flex;align-items:center;justify-content:center;background:#ffffff80;border-radius:20px;border:1px solid var(--subtle-brown);max-width:500px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:float 3s ease-in-out infinite;transition:all .3s ease;box-shadow:0 4px 12px var(--shadow-soft)}.lottie-animation-space:hover{background:#ffffffa6;transform:translateY(-2px);box-shadow:0 8px 20px var(--shadow-soft)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.lottie{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--brown);opacity:.6}.lottie span:first-child{font-size:3rem}.lottie span:last-child{font-size:1rem;text-transform:uppercase;letter-spacing:1px}.timer-circle-container{position:relative;width:clamp(180px,56vw,240px);height:clamp(180px,56vw,240px);display:flex;align-items:center;justify-content:center;animation:timerPulse 2s ease-in-out infinite}@keyframes timerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.timer-circle-container.urgent{animation:urgentShake .5s ease-in-out infinite alternate}@keyframes urgentShake{0%{transform:scale(1) rotate(-1deg)}to{transform:scale(1.03) rotate(1deg)}}.timer-pulse-circle{animation:pulseBeat 1s ease-in-out infinite}@keyframes pulseBeat{0%{r:100;opacity:.3}50%{r:110;opacity:.1}to{r:120;opacity:0}}.timer-svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.timer-progress-circle{transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1)}.timer-display{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10}.timer-number{font-size:clamp(2.25rem,9vw,3rem);font-weight:500;color:var(--dark-gray);line-height:1;transition:all .3s cubic-bezier(.4,0,.2,1)}.timer-number.urgent{color:var(--muted-red);animation:urgentPulse .5s ease-in-out infinite alternate}@keyframes urgentPulse{0%{transform:scale(1);color:var(--muted-red)}to{transform:scale(1.05);color:var(--soft-red)}}.timer-label{font-size:1rem;color:var(--brown);opacity:.7;text-transform:uppercase;letter-spacing:1px;margin-top:.25rem;transition:all .3s ease}.timer-label.urgent{color:var(--muted-red);opacity:1}.action-btn{background:linear-gradient(135deg,var(--muted-red),var(--soft-red));color:#fff;border:none;border-radius:16px;padding:clamp(1rem,3vw,1.25rem) clamp(1.75rem,6vw,2.5rem);font-family:inherit;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px var(--shadow-soft);margin-top:2rem;position:relative;overflow:hidden;animation:actionBtnEntrance .6s ease-out .5s both}@keyframes actionBtnEntrance{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.action-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;z-index:0}.action-btn:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 12px 28px var(--shadow-medium)}.action-btn:hover:before{width:300px;height:300px}.action-btn:active{transform:translateY(-2px) scale(1.02);transition:transform .1s}.action-btn span{position:relative;z-index:1}.step-tip{font-size:.9rem;color:var(--brown);opacity:.75;font-style:italic;text-align:center;max-width:320px;line-height:1.5;animation:tipFadeIn .8s ease-out .4s both;background:#fff6;padding:.75rem 1rem;border-radius:12px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}@keyframes tipFadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:.75;transform:translateY(0)}}.completion-content{display:flex;flex-direction:column;align-items:center;margin-top:2rem;animation:completionCelebration 1.2s ease-out}@keyframes completionCelebration{0%{opacity:0;transform:translateY(50px) scale(.8)}50%{opacity:1;transform:translateY(-10px) scale(1.1)}to{opacity:1;transform:translateY(0) scale(1)}}.completion-icon{font-size:clamp(3.5rem,14vw,5rem);margin-bottom:1.5rem;opacity:.8;animation:celebrationBounce 2s ease-in-out infinite;filter:drop-shadow(0 4px 8px rgba(90,62,47,.2))}@keyframes celebrationBounce{0%,20%,50%,80%,to{transform:translateY(0) rotate(0)}40%{transform:translateY(-10px) rotate(-5deg)}60%{transform:translateY(-5px) rotate(5deg)}}.completion-title{font-size:clamp(1.4rem,6vw,1.875rem);font-weight:500;color:var(--dark-gray);margin-bottom:.75rem;animation:titleSlideIn .8s ease-out .3s both}@keyframes titleSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.completion-subtitle{font-size:.9375rem;color:var(--brown);opacity:.7;margin-bottom:2rem;font-style:italic;max-width:300px;line-height:1.4;animation:subtitleFadeIn .8s ease-out .6s both}@keyframes subtitleFadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:.7;transform:translateY(0)}}.progress-bar{width:96vw;max-width:480px;height:8px;background:var(--light-brown);border-radius:4px;margin:0 auto;overflow:hidden;position:fixed;bottom:2em;left:50%;transform:translate(-50%);animation:progressBarSlideIn .6s ease-out;display:none;box-shadow:inset 0 2px 4px #5a3e2f1a}@keyframes progressBarSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media screen and (max-width: 700px){.progress-bar{max-width:96vw}}@media screen and (min-width: 768px){.progress-bar{max-width:700px}}.progress-fill{height:100%;background:linear-gradient(90deg,var(--muted-red),var(--soft-red));border-radius:4px;transition:width .8s var(--ease-smooth);position:relative;overflow:hidden;box-shadow:0 0 10px #c5635f4d}.progress-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:progressShimmer 2s infinite}@keyframes progressShimmer{0%{left:-100%}to{left:100%}}.control-btn:focus,.action-btn:focus,.start-btn:focus,.create-recipe-btn:focus,.recipe-card:focus{outline:2px solid var(--soft-red);outline-offset:2px}.loading{position:relative;pointer-events:none}.loading:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#fffc;display:flex;align-items:center;justify-content:center;border-radius:inherit}.recipe-selection,.lottie-animation-space{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.page-transition-enter{opacity:0;transform:translate(100px)}.page-transition-enter-active{opacity:1;transform:translate(0);transition:opacity .3s ease-out,transform .3s ease-out}.page-transition-exit{opacity:1;transform:translate(0)}.page-transition-exit-active{opacity:0;transform:translate(-100px);transition:opacity .3s ease-out,transform .3s ease-out}.aeropress-animation{animation:rotate-scale 3s infinite ease-in-out;width:100px;height:auto}@keyframes rotate-scale{0%{transform:scale(1) rotate(0)}50%{transform:scale(1.1) rotate(180deg)}to{transform:scale(1) rotate(360deg)}}@media (max-width: 480px){.app-container{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.timer-circle-container{width:200px;height:200px;margin:0 auto}.timer-number{font-size:2.5rem}.lottie-animation-space{height:160px}.recipe-grid{grid-template-columns:1fr;gap:.75rem}.recipe-card:hover,.action-btn:hover,.start-btn:hover{transform:translateY(-2px) scale(1.01)}.control-btn:hover{transform:translateY(-1px) scale(1.01)}}.custom-recipes-section{margin-top:2rem}.custom-recipes-title{font-size:1.1rem;font-weight:600;color:var(--brown);margin-bottom:1rem;text-align:center;position:relative;padding-bottom:.5rem}.custom-recipes-title:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:50px;height:2px;background:linear-gradient(90deg,transparent,var(--soft-red),transparent)}.recipe-card.custom{border:2px solid var(--soft-red);background:#c5635f14;box-shadow:0 2px 8px #c5635f26}.recipe-card.custom:hover{box-shadow:0 8px 20px #c5635f40;transform:translateY(-4px) scale(1.02)}.recipe-card.custom.selected{background:var(--soft-red);color:#fff;box-shadow:0 8px 20px #c5635f66,0 0 30px #c5635f33}.recipe-params{font-size:.75rem;color:var(--brown);margin-top:.5rem;opacity:.8}.recipe-card.custom.selected .recipe-params{color:#ffffffe6}.recipe-actions{display:flex;gap:1rem;margin-top:2rem;flex-direction:column}.create-recipe-btn{background:linear-gradient(135deg,var(--muted-red),var(--soft-red));color:#fff;border:none;padding:1.25rem 2rem;border-radius:16px;font-size:1.25rem;font-weight:500;text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%;box-shadow:0 4px 12px var(--shadow-soft);position:relative;overflow:hidden;animation:createBtnSlide .6s ease-out .8s both}@keyframes createBtnSlide{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.create-recipe-btn: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 .6s}.create-recipe-btn:after{content:"+";position:absolute;right:2rem;font-size:1.5rem;opacity:0;transform:rotate(-90deg) scale(.5);transition:all .3s ease}.create-recipe-btn:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 12px 28px var(--shadow-medium);background:linear-gradient(135deg,var(--soft-red),var(--muted-red))}.create-recipe-btn:hover:before{left:100%}.create-recipe-btn:hover:after{opacity:1;transform:rotate(0) scale(1)}.create-recipe-btn:active{transform:translateY(-1px) scale(1.01);transition:transform .1s}.recipe-editor-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.recipe-editor{background:var(--warm-cream);border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #5a3e2f4d}.editor-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--light-brown)}.editor-header h2{margin:0;color:var(--dark-brown);font-size:1.5rem}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--brown);padding:.25rem;border-radius:4px;transition:background .2s ease}.close-btn:hover{background:var(--light-brown)}.editor-content{padding:1.5rem}.recipe-basic-info{margin-bottom:2rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--dark-brown)}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--subtle-brown);border-radius:6px;font-size:1rem;background:#fff;transition:border-color .2s ease;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--soft-red)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.custom-steps-section h3{color:var(--dark-brown);margin-bottom:1rem}.add-step-buttons{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.add-step-btn{background:var(--light-brown);color:var(--brown);border:1px solid var(--subtle-brown);padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s ease}.add-step-btn:hover{background:var(--subtle-brown)}.steps-list{display:flex;flex-direction:column;gap:1.5rem}.step-editor{border:1px solid var(--subtle-brown);border-radius:8px;background:#fff;overflow:hidden}.step-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:var(--light-brown)}.step-number{background:var(--brown);color:#fff;width:1.5rem;height:1.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600}.step-type{font-weight:500;color:var(--brown);text-transform:capitalize}.step-controls{display:flex;gap:.25rem}.move-btn,.delete-btn{background:none;border:1px solid var(--subtle-brown);padding:.25rem .5rem;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s ease}.move-btn:hover,.delete-btn:hover{background:var(--subtle-brown)}.move-btn:disabled{opacity:.5;cursor:not-allowed}.delete-btn{border-color:var(--muted-red);color:var(--muted-red)}.delete-btn:hover{background:var(--muted-red);color:#fff}.step-fields{padding:1rem}.editor-actions{display:flex;justify-content:space-between;align-items:center;padding:15px 25px;border-top:1px solid var(--border-color);background:var(--background-color-light)}.editor-actions-left,.editor-actions-right{display:flex;gap:10px}.save-btn,.cancel-btn{padding:10px 20px;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease;border:none}.save-btn{background:linear-gradient(135deg,var(--muted-red),var(--soft-red));color:#fff}.save-btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px var(--shadow-soft)}.cancel-btn{background:transparent;color:var(--brown);border:1px solid var(--subtle-brown)}.cancel-btn:hover{background:var(--light-brown);border-color:var(--brown)}.delete-recipe-btn{position:absolute;top:8px;right:8px;background:#fff3;border:none;color:#fff;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;font-size:16px;opacity:.8}.delete-recipe-btn:hover{background:#f009;opacity:1;transform:scale(1.1) rotate(10deg)}.recipe-card.custom{position:relative}.automatic-step{display:flex;flex-direction:column;align-items:center;margin:2rem 0;animation:autoStepFadeIn .6s ease-out}@keyframes autoStepFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auto-progress{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--brown);padding:2rem;background:#ffffff80;border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--subtle-brown);animation:breathe 2s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.02);opacity:1}}.loading-spinner{width:2rem;height:2rem;border:3px solid var(--light-brown);border-top:3px solid var(--soft-red);border-radius:50%;animation:enhancedSpin 1.2s cubic-bezier(.4,0,.2,1) infinite;position:relative}.loading-spinner:after{content:"";position:absolute;top:-3px;left:-3px;right:-3px;bottom:-3px;border-radius:50%;border:3px solid transparent;border-top:3px solid var(--muted-red);animation:enhancedSpin .8s cubic-bezier(.4,0,.2,1) infinite reverse}@keyframes enhancedSpin{0%{transform:rotate(0);border-top-color:var(--soft-red)}25%{border-top-color:var(--muted-red)}50%{transform:rotate(180deg);border-top-color:var(--soft-red)}75%{border-top-color:var(--muted-red)}to{transform:rotate(360deg);border-top-color:var(--soft-red)}}@media screen and (min-width: 768px){.app-container,.progress-bar{max-width:700px}}@media (max-width: 768px){.recipe-editor{margin:.5rem;max-height:95vh}.form-row{grid-template-columns:1fr}.add-step-buttons{justify-content:center}.editor-actions{flex-direction:column;gap:1rem}.editor-actions-right{width:100%;justify-content:center}}@media (max-width: 700px){.progress-bar{max-width:96vw}}@media (max-width: 480px){.app-container{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.timer-circle-container{width:200px;height:200px;margin:0 auto}.timer-number{font-size:2.5rem}.lottie-animation-space{height:160px}.recipe-grid{grid-template-columns:1fr;gap:.75rem}.control-btn{min-width:48px;min-height:48px}.recipe-card{min-height:120px;padding:1.5rem}.action-btn,.start-btn,.create-recipe-btn{min-height:56px;font-size:1rem}.recipe-card:hover,.action-btn:hover,.start-btn:hover{transform:translateY(-2px) scale(1.01)}.control-btn:hover{transform:translateY(-1px) scale(1.01)}.recipe-icon{font-size:2.25rem}}.recipe-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;width:100%;margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--subtle-brown)}.recipe-stat{display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1.15}.recipe-stat-value{font-family:Space Mono,monospace;font-size:.8rem;font-weight:700;color:var(--brown)}.recipe-stat-label{font-size:.55rem;text-transform:uppercase;letter-spacing:.04em;opacity:.65;color:var(--brown)}.recipe-card.selected .recipe-stats{border-top-color:#ffffff59}.recipe-card.selected .recipe-stat-value,.recipe-card.selected .recipe-stat-label{color:#fff}.recipe-actions .create-recipe-btn{background:transparent;color:var(--brown);border:2px solid var(--subtle-brown);box-shadow:none;font-size:1rem}.recipe-actions .create-recipe-btn:after{color:var(--brown)}.recipe-actions .create-recipe-btn:hover{background:var(--light-brown);border-color:var(--brown);color:var(--dark-brown);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-soft)}.brewing-screen{width:100%;padding:0 1rem 1.5rem;box-sizing:border-box}.brew-topbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;animation:counterFadeIn .6s ease-out}.brew-nav-btn{display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0;background:#ffffffd9;border:1px solid var(--subtle-brown);color:var(--brown);border-radius:999px;padding:.5rem .9rem;font-family:inherit;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all var(--transition-medium) var(--ease-smooth);box-shadow:0 2px 8px var(--shadow-soft)}.brew-nav-btn:hover:not(:disabled){background:var(--white);transform:translateY(-1px);box-shadow:0 4px 12px var(--shadow-medium)}.brew-nav-btn:active:not(:disabled){transform:translateY(0) scale(.98)}.brew-nav-btn:disabled{opacity:.4;cursor:not-allowed}.brew-nav-btn:focus-visible{outline:2px solid var(--soft-red);outline-offset:2px}.brew-progress{flex:1;min-width:0}.brew-progress-track{height:8px;background:var(--light-brown);border-radius:4px;overflow:hidden;box-shadow:inset 0 1px 3px #5a3e2f1a}.brew-progress-fill{height:100%;background:linear-gradient(90deg,var(--muted-red),var(--soft-red));border-radius:4px;transition:width .5s var(--ease-smooth);box-shadow:0 0 8px #c5635f4d}.timer-controls{display:flex;gap:1rem;margin-top:1.75rem;animation:actionBtnEntrance .6s ease-out .4s both}.timer-control-btn{display:inline-flex;align-items:center;gap:.5rem;background:#ffffffd9;border:1px solid var(--subtle-brown);color:var(--brown);border-radius:999px;padding:.75rem 1.5rem;font-family:inherit;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all var(--transition-medium) var(--ease-smooth);box-shadow:0 2px 8px var(--shadow-soft)}.timer-control-btn:hover{background:var(--white);transform:translateY(-2px);box-shadow:0 6px 16px var(--shadow-medium)}.timer-control-btn:active{transform:translateY(0) scale(.98)}.timer-control-btn:focus-visible{outline:2px solid var(--soft-red);outline-offset:2px}.timer-circle-container.paused{animation:none;opacity:.7}.timer-circle-container.paused .timer-progress-circle{stroke:var(--brown);opacity:.5}.timer-circle-container.paused .timer-label{color:var(--brown);opacity:.8}@media (max-width: 360px){.brew-nav-btn span{display:none}.brew-nav-btn{padding:.5rem .7rem}}@media (max-height: 740px){.lottie-animation-space{height:clamp(80px,13vh,130px)}.timer-circle-container{width:clamp(150px,34vh,220px);height:clamp(150px,34vh,220px)}.timer-wrapper{gap:clamp(.5rem,2vh,1.25rem);margin:clamp(.5rem,2vh,1.25rem) 0}.step-text{margin-bottom:clamp(.75rem,2vh,1.5rem)}}@media (max-height: 560px){.lottie-animation-space{display:none}}.recipe-grid .recipe-card{animation:cardSlideUp .6s var(--ease-out-expo) both}.recipe-grid .recipe-card:nth-child(1){animation-delay:.1s}.recipe-grid .recipe-card:nth-child(2){animation-delay:.15s}.recipe-grid .recipe-card:nth-child(3){animation-delay:.2s}.recipe-grid .recipe-card:nth-child(4){animation-delay:.25s}.recipe-grid .recipe-card:nth-child(5){animation-delay:.3s}.recipe-grid .recipe-card:nth-child(6){animation-delay:.35s}@keyframes cardSlideUp{0%{opacity:0;transform:translateY(30px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.interactive-element{transition:transform var(--transition-fast) var(--ease-out-back)}.interactive-element:active{transform:scale(.95)}.magnetic-btn{position:relative;transition:transform var(--transition-medium) var(--ease-out-expo)}.magnetic-btn:hover{transform:translateY(-2px)}.magnetic-btn:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:inherit;border-radius:inherit;opacity:.3;transform:translateY(4px);z-index:-1;transition:all var(--transition-medium) var(--ease-out-expo)}.magnetic-btn:hover:before{transform:translateY(6px);opacity:.2}.ripple{position:relative;overflow:hidden}.ripple:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff80;transform:translate(-50%,-50%);transition:width .6s,height .6s}.ripple:active:before{width:300px;height:300px}.text-reveal{overflow:hidden}.text-reveal .text-content{animation:textSlideUp .8s var(--ease-out-expo) both}@keyframes textSlideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.skeleton{background:linear-gradient(90deg,var(--light-brown) 25%,rgba(255,255,255,.5) 50%,var(--light-brown) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.focus-enhanced:focus{outline:none;box-shadow:0 0 0 2px var(--warm-cream),0 0 0 4px var(--soft-red);animation:focusPulse 2s ease-in-out infinite}@keyframes focusPulse{0%,to{box-shadow:0 0 0 2px var(--warm-cream),0 0 0 4px var(--soft-red)}50%{box-shadow:0 0 0 2px var(--warm-cream),0 0 0 6px #c5635f4d}}.fade-transition-enter{opacity:0}.fade-transition-enter-active{opacity:1;transition:opacity var(--transition-slow) var(--ease-out-expo)}.fade-transition-exit{opacity:1}.fade-transition-exit-active{opacity:0;transition:opacity var(--transition-medium) var(--ease-in-out-quad)}.slide-transition-enter{transform:translate(100%)}.slide-transition-enter-active{transform:translate(0);transition:transform var(--transition-slow) var(--ease-out-expo)}.slide-transition-exit{transform:translate(0)}.slide-transition-exit-active{transform:translate(-100%);transition:transform var(--transition-medium) var(--ease-in-out-quad)}.success-bounce{animation:successBounce .6s var(--ease-out-back)}@keyframes successBounce{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.error-shake{animation:errorShake .5s ease-in-out}@keyframes errorShake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.count-up{animation:countUp .8s var(--ease-out-expo)}@keyframes countUp{0%{transform:scale(.5) rotateY(-90deg);opacity:0}50%{transform:scale(1.1) rotateY(0);opacity:.8}to{transform:scale(1) rotateY(0);opacity:1}}.float-gentle{animation:floatGentle 4s ease-in-out infinite}@keyframes floatGentle{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.progress-enhanced{position:relative;overflow:hidden}.progress-enhanced:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:progressShine 2s infinite}@keyframes progressShine{0%{left:-100%}to{left:100%}}.glow-effect{position:relative}.glow-effect:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg,var(--soft-red),var(--muted-red));border-radius:inherit;z-index:-1;opacity:0;transition:opacity var(--transition-medium)}.glow-effect:hover:after,.glow-effect:focus:after{opacity:.3;animation:glow 2s ease-in-out infinite alternate}@keyframes glow{0%{opacity:.3}to{opacity:.6}}
