@keyframes drawHeart{to{stroke-dashoffset:0}}.calendar{position:relative;max-width:420px;padding:40px;font-family:sans-serif}.calendar__month{text-align:center;margin-bottom:32px}.calendar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:16px;font-weight:500;text-transform:uppercase;margin-bottom:24px}.calendar__weekday{padding-bottom:4px}.calendar__days{display:grid;grid-template-columns:repeat(7,1fr);row-gap:24px;text-align:center;font-size:18px}.calendar__day{font-weight:400;text-align:center;font-size:15px;display:flex;justify-content:center;align-items:center;position:relative}.calendar__day--selected{font-weight:700;font-size:18px;overflow:visible;z-index:0}.calendar__day--selected span{position:relative;z-index:2;-webkit-user-select:none;-moz-user-select:none;user-select:none}.calendar__day--selected svg{position:absolute;top:50%;left:50%;width:100px;height:100px;transform:translate(-50%,-50%) rotate(-15deg) scale(.8);pointer-events:none;z-index:1}.calendar__day--selected svg path{stroke-dasharray:700;stroke-dashoffset:700;stroke-width:4;fill:none;stroke-linecap:round;stroke-linejoin:round;animation:drawHeart 2s ease forwards;animation-delay:.5s}.countdown{display:flex;justify-content:center;gap:4px;align-items:baseline;font-weight:500}.countdown__item{display:flex;align-items:center;flex-direction:column;gap:12px;font-size:12px;text-align:center;line-height:1}.countdown__item span{display:inline-block;font-weight:700;font-size:32px;min-width:50px;text-align:center;font-weight:500}.countdown__colon{font-size:32px}.music-btn-wrapper{width:130px;height:130px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.music-btn{width:90px;height:90px;background:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;position:absolute;top:20px;left:20px;outline:none;border:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;box-shadow:0 6px 16px rgba(0,0,0,.35)}.music-btn svg{width:32px;height:32px;fill:#000;pointer-events:none}.circle-text{position:absolute;top:0;left:0;animation:rotateCircle 8s linear infinite;z-index:2;pointer-events:none}.circle-text,.circle-text svg{width:130px;height:130px}.circle-text textPath{fill:#fff;font-size:12px;font-family:sans-serif;letter-spacing:1.5px}@keyframes rotateCircle{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media(max-width:600px){.music-btn-wrapper{width:100px;height:100px;bottom:10px;left:78%;transform:translateX(-50%)}.music-btn{width:70px;height:70px;top:15px;left:15px}.music-btn svg{width:26px;height:26px}.circle-text,.circle-text svg{width:100px;height:100px}.circle-text textPath{font-size:9px}}.timeline-row{display:flex;align-items:center;justify-content:center;margin-bottom:40px;opacity:0;transform:translateY(40px)}.timeline-row.visible{animation:fadeInUp 1s ease forwards}.timeline-row:nth-child(2){animation-delay:.2s}.timeline-row:nth-child(3){animation-delay:.4s}.timeline-row:nth-child(4){animation-delay:.6s}.timeline-row:nth-child(5){animation-delay:.8s}.timeline-row:nth-child(6){animation-delay:1s}.timeline-row:nth-child(7){animation-delay:1.2s}.timeline-row:nth-child(8){animation-delay:1.4s}.timeline-row:nth-child(9){animation-delay:1.6s}.timeline-row:nth-child(10){animation-delay:1.8s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.polaroid-stack{position:relative;width:100%;max-width:420px;margin:0 -20px;height:400px}.polaroid{position:absolute;background:#fff;padding:12px 12px 36px;box-shadow:0 6px 16px rgba(0,0,0,.25);border-radius:6px;text-align:center;font-family:Arial,sans-serif;opacity:0;transform:translateY(20px);transition:transform .5s ease,opacity .5s ease}.polaroid img{display:block;width:110%;border-radius:4px}.photo-left{width:70%;max-width:380px;transform:rotate(-5deg) translateY(20px);z-index:1;left:0;top:0}.photo-right{width:55%;max-width:310px;transform:rotate(8deg) translateY(20px);left:48%;top:80px;z-index:2}.polaroid-text{position:absolute;bottom:10px;left:0;right:0;font-size:18px;color:#333;font-family:Dancing Script,cursive;opacity:0;transform:translateY(10px);transition:transform .5s ease,opacity .5s ease}.animate .photo-left{opacity:1;transform:rotate(-5deg) translateY(0);transition-delay:0s}.animate .photo-right{opacity:1;transform:rotate(8deg) translateY(0);transition-delay:.5s}.animate .polaroid-text{opacity:1;transform:translateY(0);transition-delay:1s}@media(max-width:280px){.polaroid-stack{height:240px;margin-bottom:-70px}.photo-left{width:100%;top:0;left:0}.photo-right{width:90%;top:70px;left:50%}.polaroid-text{font-size:16px}}