:root{--yellow-bright:#ffe566;--yellow-main:#ffd43b;--yellow-deep:#f5c518;--yellow-pale:#fff9e6;--yellow-cream:#fff3b0;--green-bright:#a8e063;--green-main:#66bb6a;--green-deep:#2e7d32;--green-pale:#e8f5e9;--green-mint:#7cb342;--text-dark:#2d4a1e;--text-on-yellow:#3d4a00;--white:#fff;--shadow-soft:#2e7d3233}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff9e6;color:var(--text-dark);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{padding:2vh 2vw;text-align:center}.floating-envelope{align-items:flex-end;animation:fadeUp .6s ease-out;bottom:22vh;display:flex;gap:20px;justify-content:center;left:47%;max-width:95vw;position:absolute;transform:translateX(-50%);z-index:50}.floating-envelope .envelope-wrapper{bottom:0;left:auto;position:relative}.floating-envelope .envelope-wrapper:not(.expanded){transform:scale(.27)}.floating-envelope .envelope-wrapper.expanded.flap,.floating-envelope .envelope-wrapper.expanded:not(.flap){transform:scale(1)}.envelope-wrapper{height:auto;max-width:380px;width:100%}.blow-button{animation:pulseGlow 2s ease-in-out infinite;background:linear-gradient(135deg,var(--yellow-main),var(--yellow-bright));border:2px solid var(--green-main);border-radius:999px;box-shadow:0 4px 14px var(--shadow-soft);color:var(--text-on-yellow);cursor:pointer;font-family:Arial,sans-serif;font-size:1rem;font-weight:600;left:50%;padding:.75rem 1.5rem;position:fixed;top:62%;transform:translateX(-50%);transition:transform .15s ease,box-shadow .15s ease;z-index:20}.blow-button:hover{box-shadow:0 6px 18px #2e7d3259;transform:translateX(-50%) scale(1.04)}.blow-button:active{transform:translateX(-50%) scale(.97)}@keyframes pulseGlow{0%,to{box-shadow:0 4px 14px var(--shadow-soft)}50%{box-shadow:0 4px 22px #66bb6a73}}.instruction-card{background-color:var(--white);border:2px solid var(--green-main);border-radius:12px;bottom:5vh;box-shadow:0 4px 12px var(--shadow-soft);color:var(--text-dark);font-family:Arial,sans-serif;font-size:1rem;left:50%;max-width:90vw;min-width:250px;padding:1em;position:fixed;text-align:center;transform:translateX(-50%);width:20vw;z-index:1000}.instruction-card h4{color:var(--green-deep);margin:0 0 .4em}.cake-ready-message{animation:fadeInPop 1s ease-out forwards;color:var(--green-deep);font-family:Comic Sans MS,Segoe Print,cursive;font-size:1.5rem;margin-top:2vh;text-shadow:1px 1px 3px #0000001a}@keyframes fadeUp{0%{opacity:0;transform:translate(-50%,40px)}to{opacity:1;transform:translate(-50%)}}@keyframes fadeInPop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (max-width:768px){.blow-button{font-size:.9rem;padding:.65rem 1.2rem;top:65%}.instruction-card{font-size:.95rem;padding:.8em;width:40vw}.cake-ready-message{font-size:1.2rem}.floating-envelope{align-items:flex-end;bottom:18vh;flex-direction:row;gap:15px}}@media (max-width:480px){.blow-button{font-size:.85rem;top:68%;width:85vw}.instruction-card{font-size:.85rem;padding:.6em;width:80vw}.cake-ready-message{font-size:1rem}.floating-envelope{align-items:flex-end;bottom:22vh;flex-direction:row;gap:10px}}.background-animation{background:linear-gradient(to bottom,var(--yellow-cream),var(--green-pale) 60%,var(--yellow-bright));height:100%;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:-1}.circle{animation:floatUp 12s linear infinite;animation-delay:calc(var(--i)*-1s);background:radial-gradient(circle,var(--yellow-bright),#0000);border-radius:50%;bottom:-100px;height:30px;left:calc(var(--i)*5%);position:absolute;transform:scale(calc(.5 + var(--i)*.05));width:30px}.circle:nth-child(2n){background:radial-gradient(circle,var(--green-bright),#0000)}@keyframes floatUp{0%{opacity:.4;transform:translateY(0) scale(1)}50%{opacity:.8}to{opacity:0;transform:translateY(-110vh) scale(1.2)}}.candle-count-display{animation:fadeIn 2s ease-in-out forwards;background:linear-gradient(135deg,var(--yellow-main),var(--yellow-bright));border:2px solid var(--green-main);border-radius:10px;box-shadow:0 4px 12px var(--shadow-soft);color:var(--text-on-yellow);font-family:Arial,sans-serif;font-size:30px;font-weight:700;margin:150px auto 20px;opacity:0;padding:10px 20px;text-align:center;width:fit-content}@media (max-width:768px){.candle-count-display{font-size:25px;margin-top:100px}}@keyframes fadeIn{to{opacity:1}}.candle-count-display span{color:var(--green-deep);font-weight:700}body{background:var(--yellow-pale)}.cake{height:200px;left:50%;margin:-70px 0 0 -125px;top:50%;width:250px}.cake,.cake>*{position:absolute}.cake.interactive{cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none}.plate{background:#ccc;bottom:-10px;box-shadow:0 2px 0 #b3b3b3,0 4px 0 #b3b3b3,0 5px 40px #00000080;height:110px;left:-10px;width:270px}.layer,.plate{border-radius:50%}.layer{background:#fff;box-shadow:0 2px 0 #ffd43b,0 4px 0 #ffd43b,0 6px 0 #ffd43b,0 8px 0 #ffd43b,0 10px 0 #ffd43b,0 12px 0 #ffd43b,0 14px 0 #ffd43b,0 16px 0 #ffd43b,0 18px 0 #ffd43b,0 20px 0 #ffd43b,0 22px 0 #ffd43b,0 24px 0 #ffd43b,0 26px 0 #ffd43b,0 28px 0 #ffd43b,0 30px 0 #ffd43b;height:100px;opacity:0;transform:translateY(-220px);width:250px}.layer-top{animation:layerRise .6s ease-out .4s forwards;top:0}.layer-middle{animation:layerRise .6s ease-out .2s forwards;top:33px}.layer-bottom{animation:layerRise .6s ease-out 0s forwards;top:66px}.icing{animation:icingDrop .6s ease-out .6s forwards;border-radius:50%;height:108px;opacity:0;right:-4px;top:-3px;transform:translateY(-220px);width:258px;z-index:2}.icing:before{background:#fff9f0;border-radius:50%;bottom:6px;box-shadow:0 0 4px #f6efe3,0 0 4px #f6efe3,0 0 4px #f6efe3;content:"";left:5px;position:absolute;right:5px;top:4px;z-index:3}.drip{animation:dripBounce .5s ease-out .8s forwards;background:#f0e4d0;border-radius:0 0 25px 25px;height:60px;opacity:0;transform:translateY(-30px) scaleY(.3);width:50px}.drip1{height:48px;left:5px;top:60px;transform:skewY(15deg) translateY(-30px) scaleY(.3);width:40px}.drip2{left:185px;top:70px;transform:skewY(-15deg) translateY(-30px) scaleY(.3)}.drip3{left:110px;top:58px;width:56px}.drip3,.drip4{border-radius:0 0 40px 40px}.drip4{left:55px;top:80px;width:40px}.candle{animation:candleDrop .6s ease-out 1s forwards;background-color:#2e7d32;border-radius:6px/3px;height:35px;left:50%;margin-left:-8px;opacity:0;top:10px;transform:translateY(-100px);width:12px;z-index:10}.candle:before{background-color:#66bb6a;border-radius:50%;content:"";height:6px;left:0;position:absolute;top:0;width:12px}.candle.out .flame{display:none}.flame{animation:flicker 1s ease-in-out infinite alternate;background-color:orange;border-radius:8px 8px 8px 8px/20px 20px 8px 8px;box-shadow:0 0 10px #ffa50080,0 0 20px #ffa50080,0 0 60px #ffa50080,0 0 80px #ffa50080;height:25px;left:50%;margin-left:-6px;position:absolute;top:-28px;transform-origin:50% 90%;width:10px;z-index:10}.smoke-wrapper{left:45%;pointer-events:none;position:absolute;top:-10px;transform:translateX(-50%)}.smoke-puff{animation-fill-mode:forwards;background:radial-gradient(circle,#bebebe99 0,#7878784d 70%,#0000 100%);border-radius:50%;bottom:0;filter:blur(1px);height:16px;opacity:0;position:absolute;width:16px}.puff-1{animation:puffLeft 5s ease-out forwards}.puff-2{animation:puffRight 6s ease-out .2s forwards}.puff-3{animation:puffLeft 7s ease-out .4s forwards}.puff-4{animation:puffRight 8s ease-out .6s forwards}@keyframes dripBounce{0%{opacity:0;transform:translateY(-30px) scaleY(.3)}60%{opacity:1}to{opacity:1;transform:translateY(0) scaleY(1)}}@keyframes candleIn{to{transform:translateY(0)}}@keyframes puffLeft{0%{opacity:.9;transform:translate(0) scale(.35)}30%{opacity:.7;transform:translate(-3px,-40px) scale(.6)}60%{opacity:.4;transform:translate(-5px,-100px) scale(1.2)}to{opacity:0;transform:translate(-7px,-150px) scale(1.6)}}@keyframes puffRight{0%{opacity:.9;transform:translate(0) scale(.35)}30%{opacity:.7;transform:translate(3px,-40px) scale(.6)}60%{opacity:.4;transform:translate(5px,-100px) scale(1.2)}to{opacity:0;transform:translate(7px,-150px) scale(1.6)}}@keyframes layerRise{0%{opacity:0;transform:translateY(-220px)}80%{transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes icingDrop{0%{opacity:0;transform:translateY(-200px)}60%{opacity:1;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes flicker{0%{box-shadow:0 0 10px #ffa50033,0 0 20px #ffa50033,0 0 60px #ffa50033,0 0 80px #ffa50033;transform:skewX(5deg)}25%{box-shadow:0 0 10px #ffa50080,0 0 20px #ffa50080,0 0 60px #ffa50080,0 0 80px #ffa50080;transform:skewX(-5deg)}50%{box-shadow:0 0 10px #ffa5004d,0 0 20px #ffa5004d,0 0 60px #ffa5004d,0 0 80px #ffa5004d;transform:skewX(10deg)}75%{box-shadow:0 0 10px #ffa50066,0 0 20px #ffa50066,0 0 60px #ffa50066,0 0 80px #ffa50066;transform:skewX(-10deg)}to{box-shadow:0 0 10px #ffa50080,0 0 20px #ffa50080,0 0 60px #ffa50080,0 0 80px #ffa50080;transform:skewX(5deg)}}@keyframes candleDrop{0%{opacity:0;transform:translateY(-100px)}80%{opacity:1;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}:root{--primary:#fff;--bg-color:#2e7d32;--bg-envelope-color:#fff9e6;--envelope-tab:#ffe566;--envelope-cover:#ffd43b;--shadow-color:#2e7d3240;--txt-color:#2d4a1e;--heart-color:#66bb6a}body{background-color:#2e7d32;background-color:var(--bg-color);box-sizing:border-box;color:#2d4a1e;color:var(--txt-color);font-family:Merriweather,serif;margin:0;padding:0}.envelope-wrapper{bottom:110px;cursor:pointer;height:260px;left:50%;overflow:visible;perspective:1000px;position:absolute;transform:translate(-50%) scale(1);transform-origin:bottom center;transition:transform .4s ease;width:380px;z-index:50}.envelope-wrapper:not(.expanded){overflow:hidden;transform:translate(-50%) scale(.27)}.envelope-wrapper.expanded.flap,.envelope-wrapper.expanded:not(.flap){overflow:visible;transform:translate(-50%) scale(1)}.envelope{height:100%;position:relative;transform-style:preserve-3d;transition:all .4s ease;width:100%}.envelope:before{backface-visibility:visible;border-left:190px solid #0000;border-right:190px solid #0000;border-top:145px solid #ffe566;border-top:145px solid var(--envelope-tab);top:0;transform:rotateX(0deg);transform-origin:top;transition:transform .4s ease-in-out .4s,z-index 0s ease-in-out .6s}.envelope:after,.envelope:before{content:"";position:absolute;z-index:2}.envelope:after{border-bottom:115px solid #ffd43b;border-bottom:115px solid var(--envelope-cover);border-left:190px solid #ffd43b;border-left:190px solid var(--envelope-cover);border-right:190px solid #ffd43b;border-right:190px solid var(--envelope-cover);border-top:145px solid #0000;height:0;width:0}.flap .envelope:before{transform:rotateX(180deg);transition:transform .4s ease-in-out 0s,z-index 0s ease-in-out .2s;z-index:0}.envelope-back{background-color:#fff9e6;background-color:var(--bg-envelope-color);border-radius:4px;height:100%;left:0;top:0;width:100%}.envelope-back,.letter{position:absolute;z-index:1}.letter{word-wrap:break-word;background:#fff;background:var(--primary);bottom:12%;box-shadow:0 2px 6px #2e7d3240;box-shadow:0 2px 6px var(--shadow-color);box-sizing:border-box;font-size:10px;height:48%;left:8%;opacity:0;overflow:hidden;padding:10px 12px;transform:scale(.8);transition:bottom .4s ease-in-out 0s,height .4s ease-in-out 0s,transform .4s ease-in-out 0s,opacity .4s ease-in-out 0s;width:84%;word-break:break-word}.letter .text{opacity:0;transition:opacity .15s ease 0s,visibility .15s ease 0s;visibility:hidden}.envelope-wrapper.expanded:not(.flap) .letter,.flap .letter{opacity:1;transform:scale(1)}.flap .letter{bottom:215px;height:420px;overflow:hidden;transition:bottom .4s ease-in-out .4s,height .4s ease-in-out .4s,transform .4s ease-in-out .4s,opacity .4s ease-in-out .4s}.flap .letter .text{opacity:1;transition:opacity .3s ease .8s,visibility .3s ease .8s;visibility:visible}.heart{background:#66bb6a;background:var(--heart-color);box-shadow:0 1px 6px #2e7d3240;box-shadow:0 1px 6px var(--shadow-color);left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) rotate(45deg);transition:transform .2s ease .8s,opacity .2s ease .8s;z-index:4}.heart,.heart:after,.heart:before{height:15px;position:absolute;width:15px}.heart:after,.heart:before{background-color:#66bb6a;background-color:var(--heart-color);border-radius:50%;content:""}.heart:before{top:-7.5px}.heart:after{right:7.5px}.flap .heart{opacity:0;transform:translate(-50%,-50%) rotate(90deg) scale(0);transition:transform .2s ease 0s,opacity .2s ease 0s}.text{color:#2d4a1e;color:var(--txt-color);font-family:Gill Sans,Gill Sans MT,Calibri,Trebuchet MS,sans-serif;font-size:10px;text-align:left}.text strong{font-family:Great Vibes,cursive;font-size:18.5px}.text p{font-family:Merriweather,serif;font-size:13.5px;line-height:1.45;margin:.4em 0 0}@media (max-width:768px){.envelope-wrapper{bottom:90px;height:200px;width:280px}.envelope:after,.envelope:before{border-width:110px 140px 90px}.letter{font-size:8.5px;padding:6px 8px}.flap .letter{bottom:165px;height:340px}.text strong{font-size:14px}.text p{font-size:9.5px}}@media (max-width:480px){.envelope-wrapper{bottom:50px;height:175px;width:240px}.envelope-wrapper.expanded.flap{overflow:visible}.envelope:after,.envelope:before{border-width:95px 120px 80px}.letter{font-size:7px;left:10%;margin-bottom:20px;padding:5px 7px;width:80%}.flap .letter{bottom:140px;height:300px}.text strong{font-size:12px}.text p{font-size:9.5px}.heart,.heart:after,.heart:before{height:12px;width:12px}}.gift-box-wrapper{align-items:center;cursor:pointer;display:flex;justify-content:center;transition:transform .3s cubic-bezier(.175,.885,.32,1.275);-webkit-user-select:none;user-select:none}.gift-box-wrapper:hover{transform:scale(1.08)}.gift-box-wrapper:active{transform:scale(.95)}.gift-box{display:flex;flex-shrink:0;height:150px;margin:0;padding:0;width:150px}.gift-box #bodymovin{margin:auto;width:150px}@media (max-width:768px){.gift-box{height:130px}.gift-box,.gift-box #bodymovin{width:130px}}@media (max-width:480px){.gift-box{height:110px}.gift-box,.gift-box #bodymovin{width:110px}}.mic-modal-overlay{align-items:center;background:#2e7d3273;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.mic-modal{background:var(--yellow-pale);border:2px solid var(--green-main);border-radius:16px;box-shadow:0 8px 20px var(--shadow-soft);box-sizing:border-box;max-width:400px;padding:2rem;text-align:center;width:100%}.mic-modal h2{color:var(--green-deep);font-size:1.6rem;margin-bottom:.5rem}.mic-modal p{color:var(--text-dark);font-size:1rem;margin-bottom:1.2rem}.start-button{background:var(--green-main);border:none;border-radius:8px;color:var(--white);cursor:pointer;font-size:1rem;padding:.6rem 1.4rem;transition:background .2s ease,transform .15s ease}.start-button:hover{background:var(--yellow-main);color:var(--text-on-yellow);transform:scale(1.03)}@media (max-width:480px){.mic-modal{padding:1.2rem}.mic-modal h2{font-size:1.3rem}.mic-modal p{font-size:.95rem}.start-button{font-size:1rem;padding:.8rem;width:100%}}.sunflower-decor{bottom:10px;display:inline-block;filter:drop-shadow(0 0 10px #f4d03f);font-size:60px;line-height:1;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;z-index:1001}.sunflower-decor.right{animation:sunflower-pulse-right 3s ease-in-out infinite;right:-10px}.sunflower-decor.left{animation:sunflower-pulse-left 3s ease-in-out infinite;animation-delay:-1.5s;left:-10px}@keyframes sunflower-pulse-right{0%{transform:scale(1)}50%{transform:scale(1.08) rotate(5deg)}to{transform:scale(1)}}@keyframes sunflower-pulse-left{0%{transform:scale(1)}50%{transform:scale(1.08) rotate(-5deg)}to{transform:scale(1)}}@media (max-width:768px){.sunflower-decor{bottom:6px;font-size:45px}.sunflower-decor.right{right:-6px}.sunflower-decor.left{left:-6px}}@media (max-width:480px){.sunflower-decor{bottom:4px;font-size:36px}.sunflower-decor.right{right:-4px}.sunflower-decor.left{left:-4px}}.modal-overlay{animation:fadeInOverlay .4s cubic-bezier(.16,1,.3,1) forwards;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:#12190c8c;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:2000}.modal-card,.modal-overlay{align-items:center;display:flex}.modal-card{animation:scaleInCard .4s cubic-bezier(.34,1.56,.64,1) .1s forwards;background:#ffffffd9;border:1px solid #ffffff80;border-radius:24px;box-shadow:0 24px 64px #00000040,inset 0 0 0 1px #fff6;flex-direction:column;height:auto;max-height:85vh;max-width:440px;opacity:0;overflow:hidden;padding:28px 24px 24px;position:relative;transform:scale(.9);width:90%}.modal-close-btn{background:none;border:none;color:#2e7d32;color:var(--green-deep,#2e7d32);cursor:pointer;font-size:2.2rem;line-height:1;margin:0;opacity:.7;padding:0;position:absolute;right:18px;top:14px;transition:transform .2s ease,opacity .2s ease}.modal-close-btn:hover{opacity:1;transform:rotate(90deg) scale(1.1)}.modal-close-btn:active{transform:rotate(90deg) scale(.95)}.modal-title{color:#1b5e20;color:var(--green-deep,#1b5e20);font-family:Comic Sans MS,Segoe Print,cursive,sans-serif;font-size:1.6rem;font-weight:700;letter-spacing:-.5px;margin:0 0 6px;text-align:center}.modal-subtitle{color:#556b2f;font-family:Arial,sans-serif;font-size:.85rem;margin:0 0 16px;opacity:.9;text-align:center}.canvas-wrapper{align-items:center;background:#fdfdfd;border-radius:12px;box-shadow:0 8px 24px #0000001f;display:flex;flex:1 1;justify-content:center;max-height:480px;min-height:250px;overflow:hidden;-webkit-user-select:none;user-select:none;width:100%}.canvas-wrapper canvas{border-radius:12px;display:block;max-height:100%!important;max-width:100%!important;object-fit:contain}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}@keyframes scaleInCard{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (max-width:480px){.modal-card{border-radius:20px;max-height:90vh;padding:24px 16px 16px}.modal-title{font-size:1.3rem}.modal-subtitle{font-size:.78rem;margin-bottom:12px}.canvas-wrapper{min-height:200px}}
/*# sourceMappingURL=main.08f00cfb.css.map*/