@import"https://fonts.googleapis.com/css2?family=Great+Vibes&family=Sacramento&display=swap";@import"https://fonts.googleapis.com/css2?family=Fredoka+One&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}html,body,.container{height:100%;font-family:Great Vibes,cursive;overflow:hidden;margin:0;padding:0}body{background:#ffe6fa;background:linear-gradient(to bottom,#ffe6fa,#ff9a9e,#fad0c4);color:#fff}div#beach,div#sea,.moon,#people,#car,.wave2-parent,div#video{display:none}canvas#canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}.merrywrap{position:absolute;right:0;left:0;bottom:0;top:0;background-color:transparent;transition:background-color .5s ease;z-index:10;pointer-events:none}.giftbox{pointer-events:auto;position:absolute;width:300px;height:200px;left:50%;margin-left:-150px;top:50%;z-index:10;cursor:pointer;perspective:1000px;pointer-events:none;transition:pointer-events .3s ease}body.spotlight-active .giftbox{pointer-events:auto}.merrywrap:active .giftbox:not(.spotlight-active .giftbox){animation:boxLockedShake .4s ease-in-out}@keyframes boxLockedShake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.giftbox>div{background:#ff5e62;position:absolute;box-shadow:0 10px 20px #0003;border:1px solid #ff9966;border-radius:5px}.giftbox:after{position:absolute;color:#d63384;width:100%;content:"Open My Heart";left:0;bottom:-60px;font-size:35px;font-family:Sacramento,cursive;text-align:center;text-shadow:1px 1px 2px rgba(255,255,255,.8);animation:heartbeat 1.5s infinite}@keyframes heartbeat{0%{transform:scale(1)}15%{transform:scale(1.1)}30%{transform:scale(1)}45%{transform:scale(1.1)}60%{transform:scale(1)}to{transform:scale(1)}}.cake{display:none!important}.giftbox .cover{width:100%;top:0;left:0;height:25%;z-index:2;border-bottom:4px solid #fff}.giftbox .cover:before{position:absolute;height:100%;left:50%;width:50px;transform:translate(-50%);background:#fff}.giftbox .cover>div{position:absolute;width:50px;height:50px;left:50%;top:-50px;transform:translate(-50%)}.giftbox .cover>div:before,.giftbox .cover>div:after{position:absolute;left:0;top:0;width:100%;height:100%;content:"";box-shadow:inset 0 0 0 15px #fff;border-radius:30px;transform-origin:50% 100%}.giftbox .cover>div:before{transform:translate(-45%) skewY(40deg)}.giftbox .cover>div:after{transform:translate(45%) skewY(-40deg)}.giftbox .box{right:5%;left:5%;height:80%;bottom:0}.giftbox .box:before{width:50px;height:100%;left:50%;transform:translate(-50%);background:#fff;position:absolute;content:""}.step-1 .giftbox{animation:wobble .5s linear infinite forwards}.step-1 .cover{animation:wobble .5s linear infinite .1s forwards}.step-2 .giftbox .cover{animation:flyUp 1s ease-in-out forwards}.step-2 .giftbox .box{animation:flyDown 1s ease-in-out .1s forwards}.step-2 .giftbox:after{opacity:0;transition:opacity .5s}.icons{position:absolute;left:0;height:auto;transform:translateY(10px);width:100%;z-index:5;pointer-events:none;text-align:center}.icons .row{width:100%;text-align:center;white-space:nowrap}.icons .row span{color:#d63384;font-family:Great Vibes,cursive;font-size:40px;display:inline-block;opacity:0;text-shadow:2px 2px 4px rgba(255,255,255,.8);transition:transform .5s ease-in,opacity .7s}.step-3 .giftbox,.step-4 .giftbox{opacity:0;pointer-events:none}.step-3 .icons span,.step-4 .icons span{opacity:1;animation:gentleBob 2s infinite ease-in-out alternate}@keyframes gentleBob{0%{transform:translateY(0)}to{transform:translateY(-10px)}}.memory-gallery{position:fixed;bottom:0;left:0;width:100%;height:100%;z-index:50;pointer-events:none;display:flex;justify-content:flex-start;align-items:flex-end;padding:30px}.memory-gallery>*{pointer-events:auto}.video-container{width:180px;aspect-ratio:16 / 9;background:#000;border-radius:10px;box-shadow:0 8px 25px #0006;overflow:hidden;position:absolute;bottom:40px;left:20px;border:1.5px solid #fff;z-index:5}.video-container iframe{width:100%;height:100%}.photo-grid{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;width:100%;order:3}.wave2{margin:0;position:relative;animation:floatHeart 6s ease-in-out infinite;cursor:pointer;transition:transform .3s}.wave2:hover{transform:scale(1.1) rotate(0)!important;z-index:100}.wave2 img{border:6px solid #fff;border-radius:10px;box-shadow:0 5px 15px #0000001a;width:150px;height:auto;display:block}.wave2 figcaption{font-family:Sacramento,cursive;color:#c02669;text-align:center;margin-top:5px;font-size:1.5rem;font-weight:700;text-shadow:1px 1px 0px rgba(255,255,255,.5)}@keyframes floatHeart{0%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}to{transform:translateY(0) rotate(-2deg)}}@keyframes wobble{25%{transform:rotate(4deg)}75%{transform:rotate(-2deg)}}@keyframes flyUp{0%{transform:translateY(0);opacity:1}to{transform:translateY(-1000px) rotate(10deg);opacity:0}}@keyframes flyDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(1000px);opacity:0}}#message-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2000;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:opacity .3s ease}#message-modal.visible{opacity:1;pointer-events:auto}.modal-content{background:#ffffffd9;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);padding:40px;border-radius:20px;text-align:center;position:relative;box-shadow:0 20px 50px #0003;border:2px solid #fff;max-width:80%;min-width:300px;animation:popIn .4s cubic-bezier(.175,.885,.32,1.275);display:flex;flex-direction:column;align-items:center;justify-content:center}.modal-image{max-width:100%;max-height:250px;border-radius:10px;margin-bottom:20px;border:4px solid #fff;box-shadow:0 4px 15px #0000001a}@keyframes popIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.close-btn{position:absolute;top:10px;right:15px;font-size:30px;cursor:pointer;color:#ff5e62;font-family:sans-serif;transition:transform .2s}.close-btn:hover{transform:scale(1.1)}#love-message-text{font-family:Great Vibes,cursive;font-size:3rem;color:#d63384;margin:0;line-height:1.2}.text-neon{color:#fff!important;text-shadow:0 0 5px #ff00de,0 0 10px #ff00de,0 0 20px #ff00de,0 0 40px #ff00de!important;animation:neonPulse 1.5s infinite alternate}@keyframes neonPulse{0%{text-shadow:0 0 5px #ff00de,0 0 10px #ff00de,0 0 20px #ff00de}to{text-shadow:0 0 10px #ff00de,0 0 20px #ff00de,0 0 30px #ff00de,0 0 40px #ff00de,0 0 50px #ff00de}}.text-shimmer{background:linear-gradient(45deg,#d63384,#f96,#d63384);background-size:200% auto;color:transparent!important;-webkit-background-clip:text;background-clip:text;animation:shimmer 2s linear infinite;font-weight:700}@keyframes shimmer{to{background-position:200% center}}.text-bounce{animation:bounce 1s infinite alternate}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-15px)}}.text-glitch{position:relative;color:#d63384}.text-glitch:before,.text-glitch:after{content:attr(innerText);position:absolute;top:0;left:0;width:100%;height:100%}.text-glitch:before{left:2px;text-shadow:-1px 0 #00ffff;clip:rect(44px,450px,56px,0);animation:glitch-anim 5s infinite linear alternate-reverse}.text-glitch:after{left:-2px;text-shadow:-1px 0 #ff00ff;clip:rect(44px,450px,56px,0);animation:glitch-anim2 5s infinite linear alternate-reverse}@keyframes glitch-anim{0%{clip:rect(13px,9999px,86px,0)}25%{clip:rect(69px,9999px,20px,0)}50%{clip:rect(6px,9999px,11px,0)}75%{clip:rect(45px,9999px,60px,0)}to{clip:rect(93px,9999px,47px,0)}}@keyframes glitch-anim2{0%{clip:rect(81px,9999px,55px,0)}25%{clip:rect(7px,9999px,96px,0)}50%{clip:rect(89px,9999px,7px,0)}75%{clip:rect(85px,9999px,63px,0)}to{clip:rect(2px,9999px,41px,0)}}.text-rainbow{background-image:linear-gradient(to left,violet,indigo,#00f,green,#ff0,orange,red);-webkit-background-clip:text;background-clip:text;color:transparent!important;animation:rainbow 3s linear infinite}@keyframes rainbow{to{background-position:1000px 0}}.text-rotate{animation:softRotate 2s infinite ease-in-out;display:inline-block}@keyframes softRotate{0%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}to{transform:rotate(-5deg)}}.mini-box{position:absolute;width:30px;width:80px;height:80px;background:url(/img/gif/gift.gif) no-repeat center center;background-size:contain;z-index:1500;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:transform .2s,opacity .8s ease-out;opacity:0}.mini-box.spawned{opacity:1}.mini-box:before,.mini-box:after{display:none!important}.mini-box:hover{transform:scale(1.1)}.click-me-text{position:absolute;top:30px;left:50%;transform:translate(-50%);background:#fff;color:#d63384;font-family:sans-serif;font-size:10px;padding:2px 5px;border-radius:5px;white-space:nowrap;opacity:.9;box-shadow:0 2px 5px #0000001a;animation:gentleBob 1s infinite alternate;pointer-events:none;z-index:20}.click-me-text:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);border-width:4px 4px 0;border-style:solid;border-color:#fff transparent transparent transparent}.mini-box.transformed .click-me-text{display:none}.mini-box.shake-box{transform:none!important;animation:mildShake .5s infinite}@keyframes mildShake{0%{transform:translate(1px,1px) rotate(0)}25%{transform:translate(-1px,-2px) rotate(-2deg)}50%{transform:translate(-3px) rotate(2deg)}75%{transform:translate(3px,2px) rotate(0)}to{transform:translate(1px,-1px) rotate(-2deg)}}.mini-box.transformed{background:transparent;border:none;box-shadow:none;animation:none;width:auto!important;height:auto!important;overflow:visible;z-index:1001;opacity:1!important;visibility:visible!important}.mini-box.transformed:before,.mini-box.transformed:after{display:none!important}.floating-img{width:120px;height:auto;border-radius:10px;box-shadow:0 5px 15px #0003;max-width:90vw}.game-options{display:flex;justify-content:center;gap:20px;margin-top:20px;width:100%}.birthday-text{font-family:Sacramento,cursive;font-size:4rem;color:#fff;text-shadow:0 0 10px #ff00de,0 0 20px #ff00de;animation:neonGlow 1.5s ease-in-out infinite alternate;text-align:center;margin-top:20px}@keyframes neonGlow{0%{text-shadow:0 0 10px #fff,0 0 20px #ff00de,0 0 30px #ff00de}to{text-shadow:0 0 5px #fff,0 0 10px #ff00de,0 0 15px #ff00de}}.game-btn{background:linear-gradient(135deg,#d63384,#ff69b4);color:#fff;border:3px solid #fff;padding:12px 30px;font-family:Great Vibes,cursive;font-weight:700;font-size:1.8rem;border-radius:12px;cursor:pointer;transition:all .3s ease;box-shadow:0 5px 15px #d6338466,inset 0 -2px 5px #0003;text-shadow:1px 1px 2px rgba(0,0,0,.3);position:relative;overflow:hidden}.game-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 .5s}.game-btn:hover:before{left:100%}.game-btn:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 8px 20px #d6338499,inset 0 -2px 5px #0000004d;border-color:#ffe0f0}.floating-heart{position:relative;width:60px;height:60px;background-color:#ff5e62;display:flex;justify-content:center;align-items:center;text-align:center;box-shadow:0 5px 15px #ff5e6266;animation:floatingHeartBeat 2s infinite ease-in-out;transform:rotate(-45deg);z-index:1001}.floating-heart:before,.floating-heart:after{content:"";position:absolute;width:60px;height:60px;background-color:inherit;border-radius:50%}.floating-heart:before{top:-30px;left:0}.floating-heart:after{left:30px;top:0}.floating-heart span{transform:rotate(45deg);position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:5;color:#fff;font-weight:700;font-size:10px;font-family:Fredoka One,cursive;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.5)}@keyframes floatingHeartBeat{0%,to{transform:rotate(-45deg) scale(1)}50%{transform:rotate(-45deg) scale(1.1)}}.modal-content.heart-modal{background-color:transparent!important;box-shadow:none!important;width:300px;height:300px;top:50%;transform:translate(-50%,-50%) rotate(-45deg);padding:0;border:none;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none}.modal-content.heart-modal:before,.modal-content.heart-modal:after{content:"";position:absolute;width:300px;height:300px;background-color:#ff5e62;border-radius:50%}.modal-content.heart-modal:before{top:-150px;left:0}.modal-content.heart-modal:after{left:150px;top:0}.modal-content.heart-modal #love-message-text{position:absolute;top:-60px;left:-60px;width:100%;height:100%;display:flex;justify-content:center;align-items:center;transform:rotate(45deg);z-index:10;color:#fff!important;text-shadow:0 2px 4px rgba(0,0,0,.2);font-size:2.5rem;padding:20px}.modal-content.heart-modal .close-btn{z-index:20;color:#fff;right:50%;top:-120px;transform:translate(50%) rotate(45deg)}@media (max-width: 800px){.icons .row span{font-size:35px}.giftbox{width:220px;height:150px;margin-left:-110px}.memory-gallery{width:95%;top:55%}.video-container{max-width:100%}.photo-grid{gap:15px}.wave2 img{width:100px}.wave2 figcaption{font-size:1.2rem}#love-message-text{font-size:2rem}.mini-box{width:40px;height:40px}.floating-img{width:100px}.floating-text{font-size:1rem}.letter-paper{width:90vw;max-width:350px;min-height:450px;padding:35px 25px;transform:rotate(-1deg)}.letter-greeting{font-size:1.3rem}.letter-greeting:before,.letter-greeting:after{font-size:1.2rem;left:-30px;right:-30px}.letter-content{font-size:1.2rem;line-height:26px}.letter-signature{font-size:1.4rem}.rose-decoration{width:80px;bottom:10px;right:10px}.letter-paper:before{font-size:1.5rem;top:10px;right:15px}.letter-paper:after{font-size:1.2rem;bottom:15px;left:15px}.modal-content.heart-modal{width:200px;height:200px}.modal-content.heart-modal:before,.modal-content.heart-modal:after{width:200px;height:200px}.modal-content.heart-modal:before{top:-100px}.modal-content.heart-modal:after{left:100px}.modal-content.heart-modal #love-message-text{font-size:1.5rem;top:-40px;left:-40px}}.movie-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;z-index:2000;opacity:0;transition:opacity 2s ease-in;display:flex;justify-content:center;overflow:hidden}.movie-text{position:absolute;bottom:-100%;color:#fff;font-family:Great Vibes,cursive;font-size:2.5rem;line-height:2;text-align:center;width:90%;max-width:800px;animation:creditsScroll 20s linear forwards;text-shadow:0 0 10px rgba(255,255,255,.5)}.movie-text p{margin-bottom:30px}@keyframes creditsScroll{0%{bottom:-100%}to{bottom:100%;transform:translateY(-50px)}}@media (max-width: 800px){.movie-text{font-size:1.5rem}}.movie-overlay.solid-black{background:#000!important}.final-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-family:Great Vibes,cursive;font-size:3rem;opacity:0;transition:opacity 1s ease-in;text-shadow:0 0 10px rgba(255,255,255,.8);width:100%;text-align:center}.cake{position:absolute;bottom:-15vh;left:50%;transform:translate(-50%) scale(.35);font-size:1.5vmin;height:44em;width:44em;z-index:5;pointer-events:none;opacity:0;transition:all 1.5s ease-in-out;filter:drop-shadow(0 10px 30px rgba(0,0,0,.3));background:radial-gradient(ellipse 50% 50%,#fccfa2 33%,#ffb564 66%,#ffa233 95%,transparent 105%) left 8em top 1em / 1.8em 4em,radial-gradient(ellipse 50% 50%,#fccfa2 33%,#ffb564 66%,#ffa233 95%,transparent 105%) left 13.5em top 1em / 1.8em 4em,radial-gradient(circle 1em,#fff 90%,transparent 100%) right 14em top 8.5em / 2em 2em,radial-gradient(circle 3.5em,#f90865 95%,transparent 100%) right 10em top 7.5em / 7em 7em,radial-gradient(circle 3em at 110% 100%,transparent 80%,#036b03 85%,#036b03 95%,transparent 100%) right 11.5em top 3em / 6em 6em,radial-gradient(ellipse 50% 50%,#fccfa2 33%,#ffb564 66%,#ffa233 95%,transparent 105%) right 18em top 1em / 1.8em 4em,linear-gradient(0deg,#ff889c 12.5%,#ffe6e6 12.5%,#ffe6e6 25%,#ff889c 25%,#ff889c 37.5%,#ffe6e6 37.5%,#ffe6e6 50%,#ff889c 50%,#ff889c 62.5%,#ffe6e6 62.5%,#ffe6e6 75%,#ff889c 75%,#ff889c 87.5%,#ffe6e6 87.5%) right 17.35em top 5.2em / 3em 8em,linear-gradient(0deg,#fccb9d 33%,#f97369 33%,#f97369 66%,#fccb9d 66%) left 0 bottom 0 / 100% 50%;background-repeat:no-repeat;border-radius:4em}.step-3 .cake,.step-4 .cake{opacity:1;transform:translate(-50%) scale(.45);bottom:-17vh;animation:cakeEntrance 2s ease-out}@keyframes cakeEntrance{0%{transform:translate(-50%) scale(.2) translateY(100px);opacity:0}to{transform:translate(-50%) scale(.45) translateY(0);opacity:1}}.cake:before{content:"";display:block;width:105%;height:46%;left:-2.5%;top:30%;position:absolute;border-radius:5em;background:radial-gradient(circle 2.1em at 50% 0,#fff 99%,transparent 100%) left 14em bottom 7em / 4.15em 3em,linear-gradient(#fccb9d,#fccb9d) left 14em bottom 5em / 4.5em 5em,radial-gradient(circle 2em at 50% 100%,#fccb9d 99%,transparent 100%) left 10em bottom 12em / 4em 3em,linear-gradient(#fccb9d,#fccb9d) left 10em bottom 5em / 4em 7em,radial-gradient(circle 3em at 50% 0,#fff 99%,transparent 100%) right 16em bottom 2.1em / 6em 3em,radial-gradient(circle 3em at 50% 100%,#fccb9d 99%,transparent 100%) right 22em bottom 12em / 6em 3em,linear-gradient(#fccb9d,#fccb9d) right 22em bottom 5em / 6em 7em,linear-gradient(#fccb9d,#fccb9d) right 8em bottom 5em / 8em 5em,radial-gradient(circle 4em at 50% 100%,#fccb9d 99%,transparent 100%) right 8em bottom 10em / 8em 4em,radial-gradient(circle 4.05em at right 4em bottom 5em,#fff 99%,transparent 100%),radial-gradient(circle 5em at left 5em bottom 5em,#fff 99%,transparent 100%),linear-gradient(#fff,#fff) 0 0 / 100% 75%;background-repeat:no-repeat}.cake:after{content:"22";position:absolute;top:calc(10% - 8px);left:13%;font-size:11em;font-family:Arial,sans-serif;font-weight:900;color:#ff889c;font-style:normal;letter-spacing:.05em;transform:rotate(0);text-shadow:.08em 0em 0 #ffe6e6,0 0em .3em rgba(0,0,0,.4)}@media (max-width: 800px){.cake{font-size:1.5vmin;transform:translate(-50%) scale(.48);bottom:-5vh}.cake:after{font-weight:900;transform:rotate(0)!important}.step-3 .cake,.step-4 .cake{transform:translate(-50%) scale(.53);bottom:-5vh;animation:cakeEntranceMobile 2s ease-out}@keyframes cakeEntranceMobile{0%{transform:translate(-50%) scale(.3) translateY(100px);opacity:0}to{transform:translate(-50%) scale(.53) translateY(0);opacity:1}}}@media (max-width: 600px){.cake{font-size:1.6vmin;transform:translate(-50%) scale(.5);bottom:-8vh}.cake:after{font-weight:900;transform:rotate(0)!important}.step-3 .cake,.step-4 .cake{transform:translate(-50%) scale(.55);bottom:-8vh;animation:cakeEntranceSmallMobile 2s ease-out}@keyframes cakeEntranceSmallMobile{0%{transform:translate(-50%) scale(.32) translateY(100px);opacity:0}to{transform:translate(-50%) scale(.55) translateY(0);opacity:1}}.letter-paper{width:95vw;max-width:320px;min-height:400px;padding:30px 20px}.letter-greeting{font-size:1.1rem}.letter-content{font-size:1rem;line-height:24px}.letter-signature{font-size:1.2rem;margin-top:30px}.letter-date{font-size:1rem}.rose-decoration{width:60px}.sparkle{font-size:.8rem}}.modal-content.letter-modal{background:transparent!important;box-shadow:none!important;border:none!important;padding:0!important;perspective:1000px;animation:letterPopIn .8s cubic-bezier(.175,.885,.32,1.275);display:none;position:relative;overflow:visible}.modal-content.letter-modal.visible{display:flex!important}@keyframes letterPopIn{0%{transform:scale(.3) rotate(-15deg) translateY(50px);opacity:0}60%{transform:scale(1.05) rotate(2deg) translateY(-10px);opacity:.9}to{transform:scale(1) rotate(-2deg) translateY(0);opacity:1}}.letter-paper{position:relative;width:600px;min-height:500px;background:#fff;background-image:linear-gradient(rgba(220,220,220,.3) 1px,transparent 1px);background-size:100% 32px;padding:50px 40px;box-shadow:0 0 0 1px #c8c8c84d,0 5px 15px #0000001a,0 15px 35px #0000001a,inset 0 1px #fffc;transform:rotate(-2deg);font-family:Great Vibes,cursive;color:#2c3e50;display:flex;flex-direction:column;border-radius:20px;border:3px solid #e0e0e0;overflow:hidden}.letter-paper:before{content:"💕";position:absolute;top:15px;right:20px;font-size:2rem;animation:floatingHeart 3s ease-in-out infinite;z-index:1}.letter-paper:after{content:"💖";position:absolute;bottom:20px;left:25px;font-size:1.5rem;animation:floatingHeart 3s ease-in-out infinite 1.5s;z-index:1}@keyframes floatingHeart{0%,to{transform:translateY(0) rotate(0);opacity:.7}50%{transform:translateY(-10px) rotate(5deg);opacity:1}}.letter-header{text-align:center;margin-bottom:30px;position:relative;z-index:10}.letter-date{font-family:Sacramento,cursive;font-size:1.2rem;color:#d63384;margin-bottom:10px;opacity:.8}.letter-greeting{font-size:1.6rem;color:#c41e3a;margin:0;text-shadow:1px 1px 2px rgba(255,255,255,.8);position:relative}.letter-greeting:before{display:none}.letter-greeting:after{display:none}@keyframes heartPulse{0%,to{transform:translateY(-50%) scale(1)}50%{transform:translateY(-50%) scale(1.2)}}.letter-content{margin-top:20px;line-height:32px;font-size:1.9rem;text-align:left;z-index:10;position:relative;flex-grow:1}.letter-content p{margin:0 0 20px;text-indent:30px}.letter-signature{text-align:right;margin-top:40px;font-size:1.4rem;color:#c41e3a;position:relative}.letter-signature:before{content:"With all my love,";display:block;font-size:1.2rem;color:#8b1538;margin-bottom:10px;font-style:italic}.love-border{position:absolute;top:0;left:0;right:0;bottom:0;border:2px solid transparent;border-image:linear-gradient(45deg,#ff69b4,#ff1493,#dc143c,#ff69b4) 1;border-radius:20px;pointer-events:none;z-index:5}.rose-decoration{position:absolute;top:63px;right:-70px;width:100%;height:auto;z-index:2;transform:rotate(-112deg);filter:drop-shadow(2px 4px 8px rgba(0,0,0,.2));opacity:.8}.letter-paper .close-btn{position:absolute;top:-20px;right:-20px;background:linear-gradient(135deg,#ff1493,#dc143c);border:3px solid #fff;color:#fff;width:40px;height:40px;font-size:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:100;box-shadow:0 4px 15px #dc143c66;transition:all .3s cubic-bezier(.175,.885,.32,1.275);cursor:pointer}.letter-paper .close-btn:hover{transform:scale(1.1) rotate(90deg);background:linear-gradient(135deg,#dc143c,#b91c3c);box-shadow:0 6px 20px #dc143c99}.sparkle-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:3;overflow:hidden;border-radius:20px}.sparkle{position:absolute;color:gold;font-size:1rem;animation:sparkleFloat 4s infinite linear;opacity:0}@keyframes sparkleFloat{0%{opacity:0;transform:translateY(100%) rotate(0)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(-20%) rotate(360deg)}}.sparkle:nth-child(1){left:10%;animation-delay:0s}.sparkle:nth-child(2){left:30%;animation-delay:1s}.sparkle:nth-child(3){left:50%;animation-delay:2s}.sparkle:nth-child(4){left:70%;animation-delay:3s}.sparkle:nth-child(5){left:90%;animation-delay:.5s}.bulb-string{position:fixed;top:0;left:0;width:100%;height:40px;z-index:2000;pointer-events:none;display:flex;justify-content:flex-start;padding:0 0 0 16px}.bulb-string:before{content:"";position:absolute;top:0;left:0;width:100%;height:25px;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="50" height="25" viewBox="0 0 50 25"><path d="M 0 5 Q 25 25 50 5" stroke="%231a1a1a" stroke-width="3" fill="none" stroke-linecap="round"/></svg>');background-repeat:repeat-x;background-size:50px 25px;z-index:-1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.5))}.bulb{position:relative;width:18px;height:28px;border-radius:50%/40% 40% 60% 60%;margin-top:15px;animation:bulbGlow 1.5s infinite alternate ease-in-out;transform-origin:top center}.bulb:before{content:"";position:absolute;top:-4px;left:50%;transform:translate(-50%);width:12px;height:8px;background:#333;border-radius:2px 2px 0 0;z-index:2}.bulb:after{content:"";position:absolute;top:20%;left:50%;transform:translate(-50%);width:4px;height:10px;background:#fff9;filter:blur(2px);border-radius:50%}@keyframes bulbGlow{0%{transform:rotate(-2deg);filter:brightness(.9) contrast(1)}to{transform:rotate(2deg);filter:brightness(1.4) contrast(1.2)}}.bulb-red{background:radial-gradient(circle at 35% 35%,#ff4d4d,#8b0000);box-shadow:0 0 25px #ff0000e6,0 0 50px #ff000080,inset 0 0 10px #ffffff4d;animation-delay:0s}.bulb-pink{background:radial-gradient(circle at 35% 35%,#ff69b4,#c71585);box-shadow:0 0 25px #ff69b4e6,0 0 50px #ff69b480,inset 0 0 10px #fff6;animation-delay:.3s}.bulb-white{background:radial-gradient(circle at 35% 35%,#fff,#d3d3d3);box-shadow:0 0 25px #ffffffe6,0 0 50px #ffffff80,inset 0 0 10px #ffffff80;animation-delay:.6s}#lampadario{position:fixed;left:50%;top:0;z-index:110;transition:all 1s ease}#lampadario.hidden{opacity:0;transform:translate(-50%,-200px);pointer-events:none}#filo{position:relative;background-color:#000;width:2px;height:150px;left:50%;margin-left:-1px;z-index:1;transform-origin:0% 0%;animation:oscillaFilo .9s ease-in-out 0s infinite alternate}#lampadario input[value=off]:checked~#filo{box-shadow:0 0 4px #ffffff40}#filo:after{content:" ";left:-8px;top:100%;position:absolute;border-bottom:20px solid #000000;border-left:6px solid transparent;border-right:6px solid transparent;height:0;width:6px}#lampadario input[value=off]:checked~#filo:after{filter:drop-shadow(0 0 5px rgba(255,255,255,.3))}#lampadario input{position:absolute;width:120px;height:100px;top:150px;left:50%;margin-left:-60px;opacity:0;z-index:2;cursor:pointer}#lampadario input[value=on]{top:150px}#lampadario input[value=off]{top:-100px}#lampadario input[value=on]:checked{top:-100px}#lampadario input[value=on]:checked+input[value=off]{top:150px}#lampadario label{width:70px;height:70px;top:168px;position:absolute;left:50%;margin-left:-33px;border-radius:100%;animation:oscillaLampadina .9s ease-in-out 0s infinite alternate;z-index:1;transition:all .2s ease-in-out}#lampadario label:after{content:"";position:absolute;top:25%;left:48%;width:3px;height:25px;background:linear-gradient(to bottom,#444,#222,#444);box-shadow:1px 0 #00000080,2px 2px #0003,-1px 2px #0003;border-radius:4px;transition:all .2s ease-in-out;transform:rotate(2deg)}#lampadario label:before{content:"";position:absolute;top:25%;left:52%;width:3px;height:25px;background:linear-gradient(to bottom,#444,#222,#444);box-shadow:-1px 0 #00000080,-2px 2px #0003,1px 2px #0003;border-radius:4px;transition:all .2s ease-in-out;transform:rotate(-2deg)}#lampadario input[value=off]:checked~label{background:#ffffff40;box-shadow:inset 0 1px 10px #fff6,inset 0 2px 30px #ffffff1a;border:1px solid rgba(255,255,255,.3)}#lampadario input[value=on]:checked~label{background:#fff;box-shadow:0 0 20px #ffffffe6,0 0 50px #fffc,0 0 80px #fff9}#lampadario input[value=on]:checked~label:after,#lampadario input[value=on]:checked~label:before{background:#fff;box-shadow:0 0 10px #fff,0 0 20px #ffee58,0 0 30px #ffee58}.lamp-hint{position:absolute;top:250px;left:50%;transform:translate(-50%);color:gold;font-family:Montserrat,sans-serif;font-weight:700;font-size:24px;letter-spacing:3px;text-transform:uppercase;white-space:nowrap;pointer-events:none;transition:opacity .3s ease,visibility .3s ease;text-shadow:0 0 20px rgba(255,215,0,.8),0 2px 4px rgba(0,0,0,.7);animation:hintPulse 1.5s infinite alternate ease-in-out;opacity:1;z-index:120}#lampadario input[value=on]:checked~.lamp-hint{opacity:0!important;visibility:hidden}@keyframes hintPulse{0%{transform:translate(-50%) translateY(5px)}to{transform:translate(-50%) translateY(-5px)}}@keyframes oscillaFilo{0%{transform:rotate(5deg)}to{transform:rotate(-5deg)}}@keyframes oscillaLampadina{0%{transform:rotate(3deg) translate(-22px,-1px)}to{transform:rotate(-3deg) translate(22px,-1px)}}.spotlight-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000;z-index:100;opacity:1;pointer-events:none;transition:opacity .8s ease}body.spotlight-active .spotlight-overlay{background:transparent}body.spotlight-active .merrywrap{z-index:105}.spotlight-overlay.hidden{opacity:0;pointer-events:none;transition:opacity 3.5s ease-in-out}#sorpresa{position:absolute;top:50%;left:50%;width:300vw;height:300vh;transform:translate(-50%,-50%);background:radial-gradient(circle at 50% calc(50% + 40vh),transparent 150px,rgba(0,0,0,.95) 400px,rgba(0,0,0,1) 100%);pointer-events:none;z-index:-1;opacity:0;transition:opacity .5s ease,background 3.5s ease-out}#lampadario input[value=on]:checked~label #sorpresa{opacity:1}body.gift-opened #sorpresa{background:radial-gradient(circle at 50% calc(50% + 40vh),transparent 100%,rgba(0,0,0,1) 100%);opacity:0}#lampadario.hidden{opacity:0;transform:translate(-50%,-100%);pointer-events:none;transition:all 1s ease}@media (max-width: 600px){.letter-paper{min-height:350px;padding:30px 20px}.letter-content{font-size:20px;line-height:25px;background-size:100% 25px}.lamp-hint{width:80vw;white-space:normal;text-align:center;font-size:18px;letter-spacing:2px}.balloon{width:30px;height:38px}.balloon-thread-container{top:38px;width:200px;height:100px}.mini-box{width:100px!important;height:100px!important}}.balloon{position:absolute;width:80px;height:100px;background:transparent;z-index:5;pointer-events:auto;cursor:pointer;border-radius:0}.balloon-body-container{width:100%;height:100%;position:relative;filter:drop-shadow(0 10px 15px rgba(0,0,0,.2));animation:balloonFloat 4s ease-in-out infinite alternate}.balloon-svg{width:100%;height:100%;overflow:visible}@keyframes balloonFloat{0%{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-5px) rotate(2deg)}}.balloon-knot{position:absolute;bottom:8px;left:50%;transform:translate(-50%);width:10px;height:12px;clip-path:polygon(30% 0%,70% 0%,100% 100%,0% 100%);z-index:2;border-radius:1px}.balloon-fragment{position:absolute;width:15px;height:15px;background:inherit;border-radius:50%;z-index:1001;pointer-events:none;opacity:1;box-shadow:0 0 8px #fff9}@keyframes balloonPop{0%{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}to{transform:scale(.3);opacity:0}}.balloon-thread-container{position:absolute;top:60px;left:50%;transform:translate(-50%);width:200px;height:120px;pointer-events:none;overflow:visible}.balloon-thread-path{fill:none;stroke:#fff9;stroke-width:1.5;stroke-linecap:round;filter:drop-shadow(0 1px 1px rgba(0,0,0,.3))}.balloon:before,.balloon:after,.balloon-body,.balloon-body:before,.balloon-body:after{display:none!important}#car-container{position:fixed;bottom:-50px;left:0;width:100%;height:300px;z-index:20;pointer-events:none;overflow:visible}#car-container svg{width:100%;height:100%;visibility:visible!important;overflow:visible}@media (max-width: 600px){#car-container{bottom:-90px}}.cute-characters-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10;overflow:hidden}.cute-char{position:absolute}.cute-char img{display:block;max-width:100%;height:auto;filter:drop-shadow(0 5px 15px rgba(0,0,0,.2))}.char-left{bottom:15px;left:15px;width:60px;animation:charBounce 2s infinite ease-in-out}@keyframes charBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.char-right{bottom:15px;right:15px;width:70px;animation:charSway 3s infinite ease-in-out alternate}@keyframes charSway{0%{transform:rotate(-5deg)}to{transform:rotate(5deg)}}.char-float-1{animation:charFloatAcross 35s linear infinite;opacity:.8;position:fixed;top:10%;width:70px}@keyframes charFloatAcross{0%{left:-100px;transform:translateY(0) rotate(-5deg)}25%{transform:translateY(-20px) rotate(5deg)}50%{transform:translateY(0) rotate(-5deg)}75%{transform:translateY(20px) rotate(5deg)}to{left:110%;transform:translateY(0) rotate(-5deg)}}.char-walk{bottom:-5px;left:-150px;width:80px;animation:charWalkAcross 40s linear infinite;animation-delay:2s;position:fixed}@keyframes charWalkAcross{0%{left:-200px}to{left:110%}}@media (max-width: 600px){.char-left{width:80px;bottom:10px;left:10px}.char-right{width:100px;bottom:10px;right:10px}.char-float-1{width:70px;top:20%}.char-walk{width:90px}}.cassette-modal{background:transparent!important;box-shadow:none!important;border:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;padding:0;width:auto;height:auto;display:flex;justify-content:center;align-items:center;overflow:visible}.cassette-body{position:relative;width:620px;min-height:400px;height:auto;background:pink;border-radius:15px;box-shadow:inset 0 0 20px #ff69b480,0 20px 50px #0000004d,0 10px #d18ba0;display:flex;flex-direction:column;align-items:center;padding:24px;border:1px solid #ff69b4;transform:scale(.8);transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.cassette-body .close-btn{position:absolute;top:15px;right:20px;z-index:9999;color:#fff;font-size:24px;text-shadow:0 1px 2px rgba(0,0,0,.2);background:#f36;width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;line-height:1;transition:all .2s;border:2px solid #fff;box-shadow:0 4px 10px #f366}.cassette-body .close-btn:hover{transform:scale(1.1) rotate(5deg);background:#ff0040}.cassette-screw{position:absolute;width:12px;height:12px;background:radial-gradient(circle,gold 20%,#b8860b 80%);border-radius:50%;border:1px solid #d4af37;z-index:10;box-shadow:0 1px 2px #0003}.cassette-screw:after{content:"+";position:absolute;top:50%;left:50%;color:#8b6914;font-size:14px;line-height:0;font-weight:700;transform:translate(-50%,-50%)}.cassette-screw.top-left{top:18px;left:18px}.cassette-screw.top-right{top:18px;right:18px}.cassette-screw.bottom-left{bottom:18px;left:18px}.cassette-screw.bottom-right{bottom:18px;right:18px}.cassette-label{width:94%;height:80%;background:#fff0f5;border-radius:8px;position:relative;overflow:hidden;box-shadow:inset 0 2px 5px #0000001a;background-image:radial-gradient(#ffb6c1 15%,transparent 16%),radial-gradient(#ffb6c1 15%,transparent 16%);background-size:40px 40px;background-position:0 0,20px 20px;display:flex;flex-direction:column;align-items:center;border:1px solid #ffe4e1}.cassette-header{width:100%;height:50px;background:#f36;display:flex;justify-content:space-between;align-items:center;padding:0 20px;color:#fff;font-family:Great Vibes,cursive;font-size:1.8rem;font-weight:500;text-shadow:1px 1px 2px rgba(0,0,0,.2);border-bottom:2px solid #cc0033}.cassette-side{font-size:1rem;padding:2px 8px;background:#fff;color:#f36;border-radius:10px;font-family:Montserrat,sans-serif;font-weight:700}.cassette-title{font-size:1.2rem;letter-spacing:1px}.cassette-window{width:85%;height:110px;background:#280a14e6;border-radius:20px;margin-top:15px;border:3px solid #ff99aa;position:relative;display:flex;justify-content:space-around;align-items:center;padding:10px;box-sizing:border-box;box-shadow:inset 0 0 15px #00000080;z-index:1}.cassette-photo{width:50%;max-width:250px;height:auto;aspect-ratio:1;object-fit:cover;border:8px solid #fff;border-bottom:25px solid #fff;box-shadow:0 5px 15px #0003;transition:all .4s cubic-bezier(.175,.885,.32,1.275);background:#fff;display:none;position:relative;margin:0;flex-shrink:0;z-index:100!important;pointer-events:auto;transform:rotate(-3deg)}.cassette-photo.active{display:block;animation:photoPop .6s ease-out}@keyframes photoPop{0%{opacity:0;transform:scale(.8) rotate(10deg)}to{opacity:1;transform:scale(1) rotate(-3deg)}}.cassette-photo:hover{transform:scale(1.05) rotate(0);box-shadow:0 15px 35px #ff33664d}.reel{width:75px;height:75px;background:#fff;border-radius:50%;position:relative;border:5px solid #ffccdd;box-shadow:0 0 10px #fff3}.spoke{position:absolute;top:50%;left:50%;width:80%;height:6px;background:#f68;border-radius:10px;transform:translate(-50%,-50%)}.spoke:nth-child(2){transform:translate(-50%,-50%) rotate(60deg)}.spoke:nth-child(3){transform:translate(-50%,-50%) rotate(120deg)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cassette-body.playing .reel{animation:spin 3s linear infinite}.cassette-center-display{flex-grow:1;display:flex;flex-direction:row;justify-content:space-between;align-items:stretch;padding:20px;width:100%;min-height:250px;gap:0}#love-message-text{color:#c03;font-family:Great Vibes,cursive;font-size:clamp(1.6rem,2.5vw,2.8rem);margin:0;line-height:1.4;text-align:center;width:50%;max-width:50%;height:100%;max-height:250px;z-index:200;position:relative;text-shadow:1px 1px 1px rgba(255,255,255,.8);background:transparent;padding:15px 20px;border-radius:8px;word-wrap:break-word;overflow-wrap:break-word;white-space:pre-wrap;overflow-y:auto;display:flex;align-items:center;justify-content:center}.game-mode .cassette-center-display{flex-direction:column;justify-content:center;gap:20px}.game-mode #love-message-text{width:100%;max-width:100%;text-align:center;color:#d63384}.game-mode .cassette-photo{display:none!important}#love-message-text::-webkit-scrollbar{width:8px}#love-message-text::-webkit-scrollbar-track{background:#ffb6c14d;border-radius:4px}#love-message-text::-webkit-scrollbar-thumb{background:#ff69b4;border-radius:4px}.cassette-center-display::-webkit-scrollbar{width:8px}.cassette-center-display::-webkit-scrollbar-track{background:#ffb6c14d;border-radius:4px}.cassette-center-display::-webkit-scrollbar-thumb{background:#ff69b4;border-radius:4px}.cassette-controls{width:100%;min-height:50px;height:auto;margin-top:auto;background:#f9a;border-radius:0 0 12px 12px;display:flex;justify-content:center;align-items:center;border-top:2px solid #ff6688;padding:10px}.play-btn{width:50px;height:50px;background:#f36;border:2px solid #fff;border-radius:50%;cursor:pointer;box-shadow:0 4px 10px #f366;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;justify-content:center;align-items:center}.play-icon{width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:18px solid #fff;margin-left:4px}.cassette-body.playing .play-btn{background:#fff;border:2px solid #ff3366}.cassette-body.playing .play-icon{width:14px;height:16px;border:none;border-left:4px solid #ff3366;border-right:4px solid #ff3366;background:transparent;margin-left:0}@media (max-width: 768px){.cassette-body{width:95vw;height:auto;min-height:500px;transform:scale(.95);padding:15px}.cassette-center-display{flex-direction:row;align-items:stretch;padding:15px;gap:10px;min-height:200px}.cassette-photo{width:48%;max-width:150px}#love-message-text{width:48%;max-width:48%;font-size:clamp(1.4rem,2vw,2rem);padding:10px 15px;max-height:200px}}
