.app{min-height:100vh;background:linear-gradient(135deg,#ffeef8,#ffe5f1,#fff0f8,#ffe8f3,#ffeef8);padding:20px;position:relative;overflow-x:hidden}@media (min-width: 769px){.app{cursor:pointer}}@media (max-width: 768px){.desktop-only{display:none!important}}.flower-bg{position:fixed;font-size:3rem;opacity:.1;pointer-events:none;z-index:0}.flower-1{top:10%;left:5%}.flower-2{top:20%;right:10%}.flower-3{top:60%;left:8%}.flower-4{bottom:15%;right:15%}.flower-5{top:40%;right:5%}.flower-6{bottom:30%;left:12%}@media (min-width: 769px){.flower-bg{animation:float 20s infinite ease-in-out}.flower-1{animation-delay:0s}.flower-2{animation-delay:2s}.flower-3{animation-delay:4s}.flower-4{animation-delay:1s}.flower-5{animation-delay:3s}.flower-6{animation-delay:5s}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-30px) rotate(3deg)}}.click-photo{position:fixed;pointer-events:none;animation:photoFloat 1.2s ease-out forwards;z-index:9999;transform-origin:center}.click-photo img{width:60px;height:60px;object-fit:cover;border-radius:50%;border:3px solid white;box-shadow:0 5px 20px #d946a699}@keyframes photoFloat{0%{transform:translateY(0) scale(0);opacity:1}50%{transform:translateY(-60px) scale(1.2);opacity:1}to{transform:translateY(-120px) scale(.8);opacity:0}}.container{max-width:900px;margin:0 auto;position:relative;z-index:1;opacity:0;transform:translateY(30px);transition:all 1s ease-out}.container.fade-in{opacity:1;transform:translateY(0)}.card{background:#fffffff2;border-radius:30px;padding:60px 40px;box-shadow:0 20px 60px #ff69b433;border:2px solid rgba(255,182,193,.3)}@media (max-width: 768px){.card{box-shadow:0 10px 30px #ff69b426}}.header{text-align:center;margin-bottom:50px;animation:slideDown 1s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.flower-crown{display:flex;justify-content:center;gap:15px;margin:15px 0;font-size:2rem}.flower-crown span{display:inline-block}@media (min-width: 769px){.flower-crown span{animation:bounce 2s infinite ease-in-out}.flower-crown span:nth-child(1){animation-delay:0s}.flower-crown span:nth-child(2){animation-delay:.2s}.flower-crown span:nth-child(3){animation-delay:.4s}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.title{font-family:Playfair Display,serif;font-size:3.5rem;color:#d946a6;margin:20px 0 10px;text-shadow:2px 2px 4px rgba(255,105,180,.1);font-weight:700}.subtitle{font-family:Playfair Display,serif;font-size:1.8rem;color:#e879f9;margin:10px 0 20px;font-style:italic;font-weight:400}.photo-frame{margin:40px auto;text-align:center;animation:fadeInScale 1.5s ease-out .8s both}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.photo-border{display:inline-block;padding:15px;background:linear-gradient(135deg,#fce7f3,#fbcfe8,#fce7f3);border-radius:30px;box-shadow:0 15px 40px #ec48994d;position:relative}@media (min-width: 769px){.photo-border{transition:transform .3s ease,box-shadow .3s ease}.photo-border:hover{transform:scale(1.05);box-shadow:0 20px 60px #ec489966}}@media (max-width: 768px){.photo-border{box-shadow:0 10px 25px #ec489940}}.photo-border:before{content:"💕";position:absolute;top:-10px;left:-10px;font-size:2rem;animation:heartbeat 1.5s infinite}.photo-border:after{content:"💕";position:absolute;bottom:-10px;right:-10px;font-size:2rem;animation:heartbeat 1.5s infinite .75s}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.photo{width:300px;height:300px;object-fit:cover;border-radius:20px;border:3px solid white;display:block}.photo-caption{margin-top:20px;font-size:1.2rem;color:#d946a6;font-style:italic;font-weight:500}.content{animation:fadeIn 1.5s ease-out .5s both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.message-box{margin-bottom:40px}.message{font-size:1.15rem;line-height:1.8;color:#4a4a4a;margin-bottom:20px;text-align:center;font-weight:300}.message.highlight{font-size:1.3rem;font-weight:500;color:#d946a6;margin-top:30px;font-style:italic}.love-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin:40px 0}.note{background:linear-gradient(135deg,#fff5fb,#ffe8f3);padding:25px;border-radius:20px;text-align:center;border:2px solid rgba(255,182,193,.3)}@media (min-width: 769px){.note{transition:transform .3s ease,box-shadow .3s ease}.note:hover{transform:translateY(-5px);box-shadow:0 10px 30px #ff69b433}}.note-icon{font-size:2.5rem;display:block;margin-bottom:15px}.note p{color:#4a4a4a;font-size:1rem;line-height:1.6}.apology-section{background:linear-gradient(135deg,#ffe8f3,#fff0f8);padding:40px;border-radius:25px;margin:40px 0;border:2px solid rgba(255,182,193,.3)}.apology-title{font-family:Playfair Display,serif;font-size:2.5rem;color:#d946a6;text-align:center;margin-bottom:25px}.apology-text{font-size:1.1rem;line-height:1.8;color:#4a4a4a;text-align:center;margin-bottom:25px;font-weight:300}.promise{background:#fff;padding:25px;border-radius:20px;text-align:center;border:2px dashed rgba(255,105,180,.3)}.promise-icon{font-size:2rem;display:block;margin-bottom:15px}.promise p{color:#d946a6;font-size:1.1rem;font-weight:500;line-height:1.6}.garden{margin:50px 0;text-align:center}.garden-row{display:flex;justify-content:center;gap:10px;margin-bottom:20px;flex-wrap:wrap}.growing-flower{font-size:2.5rem;display:inline-block}@media (min-width: 769px){.growing-flower{animation:grow 3s infinite ease-in-out}.growing-flower:nth-child(1){animation-delay:0s}.growing-flower:nth-child(2){animation-delay:.2s}.growing-flower:nth-child(3){animation-delay:.4s}.growing-flower:nth-child(4){animation-delay:.6s}.growing-flower:nth-child(5){animation-delay:.8s}.growing-flower:nth-child(6){animation-delay:1s}.growing-flower:nth-child(7){animation-delay:1.2s}.growing-flower:nth-child(8){animation-delay:1.4s}.growing-flower:nth-child(9){animation-delay:1.6s}}@keyframes grow{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.garden-text{font-size:1.1rem;color:#d946a6;font-style:italic;font-weight:500}.final-message{text-align:center;margin-top:50px;padding:40px;background:linear-gradient(135deg,#fff0f8,#ffe8f3);border-radius:25px;border:2px solid rgba(255,182,193,.3)}.final-title{font-family:Playfair Display,serif;font-size:2rem;color:#d946a6;margin-bottom:20px}.signature{font-size:1.2rem;color:#4a4a4a;line-height:1.8;font-weight:300;margin-bottom:25px}.hearts-row{display:flex;justify-content:center;gap:15px;font-size:2rem}@media (min-width: 769px){.hearts-row{animation:pulse 2s infinite}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.gallery-section{margin:60px 0 40px;padding:50px 30px;background:linear-gradient(135deg,#fff0f8cc,#ffe8f3cc);border-radius:30px;border:2px solid rgba(255,182,193,.3)}.gallery-title{font-family:Playfair Display,serif;font-size:2.8rem;background:linear-gradient(135deg,#d946a6,#e879f9);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;margin-bottom:15px;font-weight:700}.gallery-subtitle{text-align:center;color:#d946a6;font-size:1.2rem;margin-bottom:50px;font-style:italic;font-weight:500}.photo-mosaic{display:grid;grid-template-columns:repeat(2,1fr);gap:25px;max-width:800px;margin:0 auto 40px}.photo-card{cursor:pointer;position:relative;animation:floatInPhoto .6s ease-out both;transition:transform .3s ease,box-shadow .3s ease}@keyframes floatInPhoto{0%{opacity:0;transform:translateY(40px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.card-1{grid-column:1;grid-row:1 / 3}.card-2{grid-column:2;grid-row:1}.card-3{grid-column:2;grid-row:2}.card-4{grid-column:1 / 3;grid-row:3}.photo-wrapper{position:relative;width:100%;height:100%;border-radius:20px;overflow:hidden;box-shadow:0 10px 40px #d946a633;background:#fff;padding:8px}@media (max-width: 768px){.photo-wrapper{box-shadow:0 5px 20px #d946a626;border-radius:15px}}.photo-wrapper img{width:100%;height:100%;object-fit:cover;border-radius:15px;display:block;image-rendering:auto}@media (max-width: 768px){.photo-wrapper img{border-radius:12px}}.card-1 .photo-wrapper img{min-height:450px}.card-2 .photo-wrapper img,.card-3 .photo-wrapper img{min-height:210px}.card-4 .photo-wrapper img{min-height:250px}.photo-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#d946a6f2,#e879f9f2);display:flex;align-items:center;justify-content:center;opacity:0;border-radius:20px;pointer-events:none}@media (min-width: 769px){.photo-overlay{transition:opacity .3s ease}.photo-card:hover .photo-overlay{opacity:1}}@media (max-width: 768px){.photo-overlay{display:none}}@media (min-width: 769px){.photo-wrapper img{transition:transform .4s ease}.photo-card:hover .photo-wrapper img{transform:scale(1.05)}.photo-card:hover{transform:translateY(-5px);box-shadow:0 15px 40px #d946a666;z-index:10}}.overlay-content{text-align:center;padding:20px}.overlay-hearts{font-size:2rem;display:block;margin-bottom:15px}.overlay-text{color:#fff;font-family:Playfair Display,serif;font-size:1.3rem;font-weight:600;text-shadow:2px 2px 4px rgba(0,0,0,.3);line-height:1.5}@media (min-width: 769px){.photo-card.spotlight{animation:spotlight 1.5s ease-in-out infinite}}@keyframes spotlight{0%,to{filter:brightness(1)}50%{filter:brightness(1.1);box-shadow:0 15px 40px #d946a680}}.love-indicator{display:flex;justify-content:center;gap:20px;margin-top:30px}.heart-dot{font-size:1.8rem;cursor:pointer;opacity:.4;transition:all .3s ease;filter:grayscale(50%)}.heart-dot:hover{opacity:.8;transform:scale(1.2);filter:grayscale(0%)}.heart-dot.beating{opacity:1;filter:grayscale(0%)}@media (min-width: 769px){.heart-dot.beating{animation:heartbeat 1s infinite}}.lightbox{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease;padding:20px}.lightbox-content{position:relative;text-align:center;animation:zoomIn .3s ease-out}@keyframes zoomIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.lightbox-content img{max-width:90vw;max-height:75vh;border-radius:20px;box-shadow:0 30px 80px #ff69b499;border:8px solid white}.lightbox-close{position:absolute;top:-20px;right:-20px;width:55px;height:55px;border-radius:50%;background:linear-gradient(135deg,#d946a6,#e879f9);border:none;color:#fff;font-size:1.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-weight:700;box-shadow:0 8px 20px #d946a680}.lightbox-close:hover{transform:rotate(90deg) scale(1.1);box-shadow:0 10px 30px #d946a6cc}.lightbox-decoration{margin-top:25px}.lightbox-message{color:#fff;font-family:Playfair Display,serif;font-size:1.8rem;font-style:italic;margin-bottom:15px;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.lightbox-hearts{display:flex;justify-content:center;gap:12px;font-size:2rem}.lightbox-hearts span{display:inline-block}@media (min-width: 769px){.lightbox-hearts span{animation:float 2s infinite ease-in-out}.lightbox-hearts span:nth-child(1){animation-delay:0s}.lightbox-hearts span:nth-child(2){animation-delay:.2s}.lightbox-hearts span:nth-child(3){animation-delay:.4s}.lightbox-hearts span:nth-child(4){animation-delay:.6s}.lightbox-hearts span:nth-child(5){animation-delay:.8s}}.click-hint{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#ffffffe6;padding:12px 25px;border-radius:30px;font-size:.9rem;color:#d946a6;box-shadow:0 5px 20px #ff69b433;z-index:100;animation:fadeInOut 3s infinite;border:2px solid rgba(255,182,193,.3)}@keyframes fadeInOut{0%,to{opacity:.6}50%{opacity:1}}@media (max-width: 768px){.card{padding:35px 20px;border-radius:20px}.title{font-size:2rem;line-height:1.2}.subtitle{font-size:1.2rem}.flower-crown{font-size:1.3rem;gap:10px}.photo{width:220px;height:220px}.message{font-size:.95rem;margin-bottom:15px}.message.highlight{font-size:1.1rem}.apology-title{font-size:1.8rem}.apology-section{padding:30px 20px;border-radius:20px}.love-notes{grid-template-columns:1fr;gap:15px}.note{padding:20px}.growing-flower{font-size:1.8rem}.garden-row{gap:8px}.gallery-title{font-size:1.8rem}.gallery-subtitle{font-size:1rem}.photo-mosaic{grid-template-columns:1fr;gap:15px}.card-1,.card-2,.card-3,.card-4{grid-column:1;grid-row:auto}.card-1 .photo-wrapper img,.card-2 .photo-wrapper img,.card-3 .photo-wrapper img,.card-4 .photo-wrapper img{min-height:280px;max-height:350px}.overlay-text{font-size:1.1rem}.click-hint{font-size:.8rem;padding:10px 20px}}@media (max-width: 480px){.title{font-size:1.7rem}.subtitle{font-size:1.1rem}.app{padding:10px}.card{padding:25px 15px;border-radius:15px}.photo{width:180px;height:180px}.photo-border{padding:10px}.gallery-section{padding:25px 15px;border-radius:20px}.gallery-title{font-size:1.5rem}.gallery-subtitle{font-size:.95rem;margin-bottom:30px}.photo-mosaic{gap:12px}.card-1 .photo-wrapper img,.card-2 .photo-wrapper img,.card-3 .photo-wrapper img,.card-4 .photo-wrapper img{min-height:250px;max-height:300px}.lightbox-close{width:40px;height:40px;font-size:1.2rem;top:-12px;right:-12px}.lightbox-message{font-size:1.2rem}.lightbox-hearts{font-size:1.5rem;gap:10px}.love-indicator{gap:12px}.heart-dot{font-size:1.3rem}.apology-section{padding:25px 15px}.final-message{padding:30px 15px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Poppins,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;-webkit-tap-highlight-color:transparent}@media (max-width: 768px){body{-webkit-overflow-scrolling:touch}}#root{width:100%;min-height:100vh}
