*{margin:0;padding:0;box-sizing:border-box}body{font-family:Quicksand,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;overflow-x:hidden}#root{min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;position:relative;overflow:hidden}.app.authenticated:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:url(/bg-pattern.jpg);background-size:100px 100px;background-repeat:repeat;opacity:.75;pointer-events:none;z-index:0}.header{text-align:center;margin-bottom:40px;position:relative;z-index:1}.title{font-family:Pacifico,cursive;font-size:clamp(2rem,6vw,4rem);color:#fff;text-shadow:0 4px 20px rgba(255,105,180,.5);margin-bottom:10px;animation:float 3s ease-in-out infinite}.subtitle{font-size:clamp(1rem,3vw,1.5rem);color:#ffe4e1;font-weight:500}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.carousel-container{position:relative;width:100%;max-width:500px;z-index:1}.carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;gap:20px;padding:20px;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.carousel::-webkit-scrollbar{display:none}.carousel-nav{display:flex;justify-content:center;gap:10px;margin-top:20px}.nav-dot{width:12px;height:12px;border-radius:50%;background:#ffffff4d;border:none;cursor:pointer;transition:all .3s ease}.nav-dot.active{background:#fff;transform:scale(1.3)}.gift-card{min-width:100%;scroll-snap-align:center;background:linear-gradient(135deg,#fffffff2,#fff0f5f2);border-radius:30px;padding:30px;box-shadow:0 20px 60px #ff69b44d;display:flex;flex-direction:column;align-items:center;position:relative;overflow:hidden;transition:transform .3s ease}.gift-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,182,193,.2) 0%,transparent 70%);animation:shimmer 8s infinite linear}@keyframes shimmer{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gift-emoji{font-size:80px;margin-bottom:20px;filter:drop-shadow(0 4px 10px rgba(255,105,180,.3));animation:bounce 2s ease-in-out infinite;position:relative;z-index:1}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.gift-name{font-family:Pacifico,cursive;font-size:2rem;color:#ff1493;margin-bottom:20px;position:relative;z-index:1}.gift-date{font-size:1rem;color:#888;margin-bottom:20px;position:relative;z-index:1}.countdown-container{position:relative;z-index:1}.locked-message{font-size:1.1rem;color:#ff69b4;margin-bottom:15px;font-weight:600}.countdown{display:flex;gap:15px;justify-content:center;margin-bottom:20px}.time-unit{display:flex;flex-direction:column;align-items:center;background:linear-gradient(135deg,#ffb6d9,#ff85a2);padding:15px;border-radius:15px;min-width:70px;box-shadow:0 4px 15px #ff69b44d}.time-value{font-size:2rem;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2)}.time-label{font-size:.75rem;color:#fff;margin-top:5px;text-transform:uppercase;letter-spacing:1px}.open-button{background:linear-gradient(135deg,#ff1493,#ff69b4);color:#fff;border:none;padding:15px 40px;border-radius:50px;font-size:1.2rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 10px 30px #ff149366;font-family:Quicksand,sans-serif;position:relative;z-index:1}.open-button:hover{transform:translateY(-3px);box-shadow:0 15px 40px #ff149380}.open-button:active{transform:translateY(-1px)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:linear-gradient(135deg,#fff,#fff0f5);border-radius:30px;padding:40px;max-width:500px;width:100%;text-align:center;position:relative;animation:scaleIn .4s ease;box-shadow:0 20px 60px #ff69b480}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.close-button{position:absolute;top:20px;right:20px;background:none;border:none;font-size:2rem;cursor:pointer;color:#ff1493;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.close-button:hover{background:#ff14931a;transform:rotate(90deg)}.modal-emoji{font-size:100px;margin-bottom:20px;animation:bounce 2s ease-in-out infinite}.modal-title{font-family:Pacifico,cursive;font-size:2.5rem;color:#ff1493;margin-bottom:20px}.modal-gif{width:100%;max-width:400px;border-radius:20px;margin:20px 0;box-shadow:0 10px 30px #0003}.modal-message{font-size:1.3rem;color:#ff69b4;line-height:1.6;margin-top:20px;font-weight:600}.hearts-background{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:999}.heart{position:absolute;font-size:20px;animation:floatHeart 4s ease-in infinite;opacity:0}@keyframes floatHeart{0%{opacity:0;transform:translateY(0) rotate(0)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(-100vh) rotate(360deg)}}@media (max-width: 768px){.title{font-size:2.5rem}.gift-card{padding:25px}.gift-emoji{font-size:60px}.gift-name{font-size:1.5rem}.time-unit{padding:10px;min-width:60px}.time-value{font-size:1.5rem}.modal-content{padding:30px}.modal-title{font-size:2rem}}.password-container{background:linear-gradient(135deg,#fffffff2,#fff0f5f2);border-radius:30px;padding:50px 40px;box-shadow:0 20px 60px #ff69b466;text-align:center;max-width:400px;width:100%;position:relative;z-index:1}.password-title{font-family:Pacifico,cursive;font-size:2.5rem;color:#ff1493;margin-bottom:15px}.password-subtitle{font-size:1.1rem;color:#ff69b4;margin-bottom:30px;font-weight:500}.password-form{display:flex;flex-direction:column;gap:20px}.password-input{padding:15px 20px;border:3px solid #FFB6D9;border-radius:50px;font-size:1.1rem;font-family:Quicksand,sans-serif;text-align:center;outline:none;transition:all .3s ease}.password-input:focus{border-color:#ff1493;box-shadow:0 0 20px #ff14934d}.password-button{background:linear-gradient(135deg,#ff1493,#ff69b4);color:#fff;border:none;padding:15px 40px;border-radius:50px;font-size:1.2rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 10px 30px #ff149366;font-family:Quicksand,sans-serif}.password-button:hover{transform:translateY(-3px);box-shadow:0 15px 40px #ff149380}.password-button:active{transform:translateY(-1px)}.password-error{color:#ff1493;font-weight:600;margin-top:15px;animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}@media (max-width: 768px){.password-container{padding:40px 30px}.password-title{font-size:2rem}}
