@import"https://fonts.googleapis.com/css2?family=Caveat:wght@400;700&family=Inter:wght@400;500;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--bg-dark: #010101;--bg-medium: #5a123e;--accent-blue: #c62d70;--accent-pink: #f2a1c7;--accent-green: #10b981;--accent-gold: #ffd93d;--text-primary: #ffffff;--text-secondary: #939192;--text-muted: rgba(147, 145, 146, .6)}body{font-family:Inter,sans-serif;background:radial-gradient(ellipse at top,#5a123e,#010101 70%);min-height:100vh;color:var(--text-primary);overflow-x:hidden}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:var(--accent-pink);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--accent-blue)}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:16px;cursor:pointer;position:relative;transition:all .3s ease;overflow:hidden}.day-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;z-index:2}.day-number{font-size:2rem;font-weight:700;line-height:1}.day-icon{display:flex;align-items:center;justify-content:center}.lock-svg,.gift-svg,.check-svg{width:24px;height:24px;transition:all .3s ease}.calendar-day.locked{background:#01010199;color:#939192;border:1px solid rgba(90,18,62,.5)}.calendar-day.locked:hover{background:#5a123e4d;transform:scale(1.02)}.calendar-day.locked .lock-emoji{opacity:.7;font-size:20px}.calendar-day.unlocked{background:linear-gradient(135deg,#c62d70,#5a123e);color:#fff;border:none;box-shadow:0 4px 20px #c62d7066}.calendar-day.unlocked .gift-svg{color:#fbbf24;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));width:28px;height:28px;animation:wiggle 2s ease-in-out infinite}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.calendar-day.unlocked:hover{transform:scale(1.08);box-shadow:0 8px 30px #c62d7099}.calendar-day.today{background:linear-gradient(135deg,#f2a1c7,#c62d70);box-shadow:0 4px 25px #f2a1c780;border:2px solid #ffd93d}.calendar-day.claimed{background:linear-gradient(135deg,#059669,#10b981);color:#fff;border:none;box-shadow:0 4px 20px #10b9814d}.calendar-day.claimed:hover{transform:scale(1.05)}.calendar-day.claimed .check-svg{color:#fff;width:40px;height:40px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}@media(max-width:768px){.day-number{font-size:1.5rem}.lock-svg,.gift-svg,.check-svg{width:16px;height:16px}.calendar-day{border-radius:12px}}@media(max-width:450px){.day-number{font-size:1rem}.calendar-day{border-radius:8px}.day-content{gap:2px}.calendar-day.claimed .check-svg{width:24px;height:24px}.calendar-day.unlocked .gift-svg{width:20px;height:20px}.calendar-day.locked .lock-emoji{font-size:14px}}@media(min-width:900px){.day-number{font-size:2.5rem}.calendar-day.claimed .check-svg{width:50px;height:50px}.calendar-day.unlocked .gift-svg{width:36px;height:36px}.calendar-day.locked .lock-emoji{font-size:24px}}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1001;overflow:hidden}.confetti-particle{position:absolute;top:-20px;animation:confettiFall linear forwards;clip-path:polygon(50% 0%,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0% 50%,40% 40%)}@keyframes confettiFall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.gacha-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;z-index:9999;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:opacity 2s ease;--gacha-color: #00d9ff;--gacha-glow: rgba(0, 217, 255, .5)}.gacha-overlay.rarity-blue{--gacha-color: #00d9ff;--gacha-glow: rgba(0, 217, 255, .5)}.gacha-overlay.rarity-pink{--gacha-color: #ec4899;--gacha-glow: rgba(236, 72, 153, .5)}.gacha-overlay.rarity-gold{--gacha-color: #ffd700;--gacha-glow: rgba(255, 215, 0, .5)}.gacha-overlay.active{opacity:1;pointer-events:all;transition:opacity .5s ease}.gacha-star-wrapper,.gacha-particle-wrapper{position:absolute;top:50%;left:50%;width:0;height:0;transform:translate(50vw);opacity:0}.gacha-star-inner,.gacha-particle{position:absolute;top:0;left:0;width:40px;height:40px;margin-left:-20px;margin-top:-20px;transform:translateY(-50vh)}.gacha-star-wrapper.animate-fall,.gacha-particle-wrapper.animate-fall{animation:fall-x 3s ease-out forwards}.gacha-star-inner.animate-fall,.gacha-particle.animate-fall{animation:fall-y 3s ease-in forwards}@keyframes fall-x{0%{transform:translate(50vw);opacity:1}to{transform:translate(0);opacity:1}}@keyframes fall-y{0%{transform:translateY(-50vh)}to{transform:translateY(0)}}.star-core{width:100%;height:100%;border-radius:50%;background:radial-gradient(circle,#ffffff 5%,var(--gacha-color) 25%,transparent 60%);box-shadow:0 0 20px 5px var(--gacha-glow);position:relative;z-index:2}.star-outline{position:absolute;top:50%;left:50%;width:100%;height:100%;transform:translate(-50%,-50%);border-radius:50%;border:2px solid var(--gacha-color);box-shadow:0 0 10px var(--gacha-glow);opacity:0;z-index:1;animation:pulse-ring 1s infinite}@keyframes pulse-ring{0%{transform:translate(-50%,-50%) scale(.8);opacity:1}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.gacha-spark{border-radius:50%;background:var(--gacha-color);opacity:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 5px var(--gacha-glow);animation:spark-shoot .8s ease-out forwards}@keyframes spark-shoot{0%{transform:translate(-50%,-50%);opacity:1}to{transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty)));opacity:0}}.gacha-trail-segment{width:10px;height:10px;border-radius:50%;background:var(--gacha-color);opacity:.2;position:absolute;top:50%;left:50%;margin-left:-5px;margin-top:-5px;box-shadow:0 0 10px var(--gacha-glow)}.gacha-explosion{position:absolute;width:20px;height:20px;background:var(--gacha-color);border-radius:50%;box-shadow:0 0 50px 20px var(--gacha-color)}.animate-explode{animation:explode 2s ease-out forwards}@keyframes explode{0%{transform:scale(1);opacity:1;box-shadow:0 0 20px 10px var(--gacha-color)}50%{transform:scale(30);opacity:.8;box-shadow:0 0 100px 50px var(--gacha-color)}to{transform:scale(60);opacity:0}}.shooting-star.blue .star-glow{background:radial-gradient(circle,rgba(96,165,250,.5) 0%,transparent 70%)}.shooting-star.pink .star-glow{background:radial-gradient(circle,rgba(244,114,182,.5) 0%,transparent 70%)}.shooting-star.gold .star-glow{background:radial-gradient(circle,rgba(252,211,77,.5) 0%,transparent 70%)}.star-trail{position:absolute;bottom:100%;left:50%;width:4px;height:150px;transform:translate(-50%);border-radius:2px}.shooting-star.blue .star-trail{background:linear-gradient(to top,#60a5fa 0%,#3b82f6 30%,transparent 100%);box-shadow:0 0 15px #60a5fa}.shooting-star.pink .star-trail{background:linear-gradient(to top,#f472b6 0%,#ec4899 30%,transparent 100%);box-shadow:0 0 15px #f472b6}.shooting-star.gold .star-trail{background:linear-gradient(to top,#fcd34d 0%,#f59e0b 30%,transparent 100%);box-shadow:0 0 15px #fcd34d}.explosion{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:0;height:0}.explosion-ring{position:absolute;top:50%;left:50%;width:20px;height:20px;border-radius:50%;transform:translate(-50%,-50%);animation:expandRing 2s ease-out forwards}.explosion-ring.ring-2{animation:expandRing 2s ease-out .15s forwards}@keyframes expandRing{0%{width:20px;height:20px;opacity:1;border-width:8px}to{width:400px;height:400px;opacity:0;border-width:2px}}.explosion.blue .explosion-ring{border:8px solid #60a5fa;box-shadow:0 0 30px #3b82f6,inset 0 0 30px #60a5fa4d}.explosion.pink .explosion-ring{border:8px solid #f472b6;box-shadow:0 0 30px #ec4899,inset 0 0 30px #f472b64d}.explosion.gold .explosion-ring{border:8px solid #fcd34d;box-shadow:0 0 30px #f59e0b,inset 0 0 30px #fcd34d4d}.explosion-flash{position:absolute;top:50%;left:50%;width:600px;height:600px;transform:translate(-50%,-50%);border-radius:50%;animation:flash 1.5s ease-out forwards}@keyframes flash{0%{opacity:1;transform:translate(-50%,-50%) scale(0)}30%{opacity:.8;transform:translate(-50%,-50%) scale(.5)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}.explosion.blue .explosion-flash{background:radial-gradient(circle,rgba(96,165,250,.8) 0%,rgba(59,130,246,.4) 30%,transparent 70%)}.explosion.pink .explosion-flash{background:radial-gradient(circle,rgba(244,114,182,.8) 0%,rgba(236,72,153,.4) 30%,transparent 70%)}.explosion.gold .explosion-flash{background:radial-gradient(circle,rgba(252,211,77,.8) 0%,rgba(245,158,11,.4) 30%,transparent 70%)}.explosion-particle{position:absolute;top:0;left:0;width:8px;height:8px;border-radius:50%;animation:particleFly 2s ease-out forwards;animation-delay:calc(var(--i) * .02s)}@keyframes particleFly{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(calc(cos(var(--i) * 18deg)*200px),calc(sin(var(--i) * 18deg)*200px)) scale(0);opacity:0}}.explosion.blue .explosion-particle{background:#60a5fa;box-shadow:0 0 10px #60a5fa,0 0 20px #3b82f6}.explosion.pink .explosion-particle{background:#f472b6;box-shadow:0 0 10px #f472b6,0 0 20px #ec4899}.explosion.gold .explosion-particle{background:#fcd34d;box-shadow:0 0 10px #fcd34d,0 0 20px #f59e0b}.modal-overlay{position:fixed;inset:0;background:#0f172ae6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:linear-gradient(135deg,#450e30,#170510);border-radius:20px;padding:2rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;overflow-x:hidden;position:relative;border:1px solid rgba(198,45,112,.8);box-shadow:0 0 50px #c62d7033,0 20px 60px #00000080;animation:slideIn .4s ease}@keyframes slideIn{0%{transform:translateY(-50px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.close-button{position:absolute;top:1rem;right:1rem;background:#c62d7033;border:1px solid rgba(198,45,112,.3);color:#f2a1c7;font-size:1.5rem;width:40px;height:40px;border-radius:50%;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.close-button:hover{background:#c62d704d;transform:rotate(90deg)}.modal-header{text-align:center;margin-bottom:1.5rem}.modal-header h2{font-family:Caveat,cursive;font-size:2.5rem;color:#ffd93d;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.hint-progress{margin-top:1rem;text-align:center;color:#94a3b8;font-size:.9rem}.progress-bar{width:100%;height:6px;background:#ffffff1a;border-radius:3px;margin-top:.5rem;overflow:hidden}.progress-fill{height:100%;background:#c62d70;transition:width .3s ease}.guess-section{display:flex;flex-direction:column;gap:1.5rem}.prompt-image{display:grid;grid-template-areas:"stack";justify-items:center;align-items:center;min-height:200px}.prompt-image img{grid-area:stack;max-width:100%;height:auto;max-height:200px;border-radius:12px;border:2px solid rgba(198,45,112,.7);box-shadow:0 5px 20px #0006;opacity:0;transition:opacity 1.5s ease-in-out;cursor:zoom-in}.image-zoom-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;z-index:2000;display:flex;align-items:center;justify-content:center;cursor:zoom-out;animation:fadeIn .3s ease}.image-zoom-overlay img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 0 30px #00000080;animation:zoomIn .3s ease}@keyframes zoomIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.prompt-image img.visible{opacity:1}.hints-section{background:#010101cc;padding:1rem;border-radius:12px;border:1px solid rgba(147,145,146,.4)}.hints-section h3{color:#ffd93d;margin-bottom:.5rem;font-size:1.1rem}.hints-list{list-style:none;padding:0;margin:0}.hint{padding:.5rem;margin:.3rem 0;border-radius:8px;transition:all .3s ease}.hint.revealed{background:#c62d7033;color:#fff;border-left:3px solid #c62d70}.hint.hidden{background:#5a123e4d;color:#939192;font-style:italic}.hint-button{margin-top:.5rem;padding:.5rem 1rem;background:#5a123e66;border:1px solid rgba(147,145,146,.4);color:#939192;border-radius:8px;cursor:pointer;transition:all .3s ease;font-size:.9rem}.hint-button:hover{background:#5a123e99;color:#fff}.guess-form{display:flex;gap:.5rem;flex-wrap:wrap}.guess-form.shake{animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(10px)}}.guess-input{flex:1;min-width:150px;padding:.75rem 1rem;font-size:1rem;border:2px solid rgba(198,45,112,.4);border-radius:10px;background:#010101cc;color:#fff;outline:none;transition:all .3s ease}.guess-input:focus{border-color:#c62d70;box-shadow:0 0 15px #c62d704d}.guess-input::placeholder{color:#64748b}.guess-button{padding:.75rem 1.5rem;font-size:1rem;font-weight:700;background:linear-gradient(135deg,#c62d70,#5a123e);border:none;color:#fff;border-radius:10px;cursor:pointer;transition:all .3s ease}.guess-button:hover{transform:scale(1.05);box-shadow:0 5px 20px #c62d7080}.correct-message{text-align:center;font-size:1.5rem;color:#ffd93d;animation:correctPulse .5s ease}@keyframes correctPulse{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.gift-section{text-align:center}.gift-reveal{animation:giftReveal .8s ease}@keyframes giftReveal{0%{transform:scale(0) rotate(-10deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.gift-image{margin-bottom:1.5rem}.gift-image img{max-width:100%;height:auto;max-height:250px;border-radius:12px;border:2px solid rgba(198,45,112,.7);box-shadow:0 5px 30px #c62d704d;cursor:zoom-in}.gift-message{background:linear-gradient(135deg,#c62d7033,#5a123e33);padding:1.5rem;border-radius:12px;margin-bottom:1rem;border:1px solid rgba(198,45,112,.3)}.gift-message p{font-size:1.3rem;color:#fff;margin:0;font-weight:700}.answer-reveal{color:#64748b;font-size:.9rem}.answer-reveal strong{color:#ffd93d}.guess-count{font-size:.9rem;color:#94a3b8;margin-top:.5rem}.guess-count span{color:#ffd93d;font-weight:700;font-size:1.1em}@media(max-width:500px){.modal-content{padding:1.5rem}.modal-header h2{font-size:2rem}.guess-form{flex-direction:column}.guess-button{width:100%}}.snowfall-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.snowflake{position:absolute;top:-20px;color:#fffc;animation:snowfall linear infinite;text-shadow:0 0 5px rgba(255,255,255,.5);font-size:1rem}@keyframes snowfall{0%{transform:translateY(0) translate(0) rotate(0)}25%{transform:translateY(25vh) translate(15px) rotate(90deg)}50%{transform:translateY(50vh) translate(-15px) rotate(180deg)}75%{transform:translateY(75vh) translate(15px) rotate(270deg)}to{transform:translateY(100vh) translate(0) rotate(360deg)}}.calendar-container{min-height:100vh;padding:2rem;position:relative;overflow:hidden}.calendar-header{text-align:center;margin-bottom:2rem;position:relative;z-index:1}.calendar-header h1{font-family:Caveat,cursive;font-size:3.5rem;color:#ffd93d;text-shadow:2px 2px 4px rgba(0,0,0,.3);margin-bottom:.5rem}.subtitle{font-size:1.2rem;color:#fffc;font-weight:400}.calendar-wrapper{max-width:1000px;margin:0 auto;position:relative;z-index:1}.day-labels{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem;margin-bottom:.75rem;padding:0 .5rem}.day-label{text-align:center;color:#ffffff80;font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:1px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem;padding:.5rem;position:relative;z-index:1}.empty-cell{aspect-ratio:1}.calendar-footer{text-align:center;margin-top:2rem;color:gold;font-size:2rem;font-weight:700;opacity:1;position:relative;z-index:1;text-shadow:1px 1px 2px rgba(0,0,0,.5)}@media(max-width:768px){.calendar-container{padding:1rem}.calendar-header h1{font-size:2.2rem}.calendar-grid,.day-labels{gap:.5rem}.day-label{font-size:.7rem}}@media(max-width:500px){.calendar-grid,.day-labels{gap:.3rem}.calendar-header h1{font-size:1.6rem}.day-label{font-size:.6rem}}.app{min-height:100vh}
