@font-face{font-family:AlexBrush;src:url(/font/AlexBrush-Regular.ttf) format("truetype");font-weight:400;font-style:normal}:root{--primary-pink: #FFB7C5;--soft-pink: #FFF0F5;--deep-pink: #DB7093;--text-color: #4A4A4A;--gold: #D4AF37;--card-bg: rgba(255, 255, 255, .85);--header-font: "AlexBrush", cursive;--body-font: "Outfit", sans-serif}body{margin:0;padding:0;font-family:var(--body-font);overflow:hidden;background:url(/img/bg1.png) no-repeat center center fixed;background-size:cover;color:var(--text-color);height:100vh;width:100vw}#app{width:100%;height:100%;position:relative;overflow:hidden}.scene{perspective:1000px;height:100vh;display:flex;align-items:center;justify-content:center;position:relative;z-index:10}.card-stack{width:100%;height:100%;position:relative;transform-style:preserve-3d;display:flex;align-items:center;justify-content:center}.card{position:absolute;width:90vw;max-width:360px;aspect-ratio:9 / 16;max-height:85vh;background:#ffffff26;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:20px;box-shadow:0 4px 30px #0000001a;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:3.5rem 2rem;box-sizing:border-box;transition:transform 1.5s cubic-bezier(.4,0,.2,1),opacity 1s ease,filter 1s ease;transform-origin:center center}.card:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:url(/img/frame.png) center center no-repeat;background-size:100% 100%;pointer-events:none;z-index:1;opacity:1}.card-content{width:100%;z-index:2}.wedding-header{font-size:1.2rem;text-transform:uppercase;letter-spacing:3px;margin-bottom:1rem;color:var(--text-color)}.couple-names{font-family:var(--header-font);font-size:3.5rem;color:var(--deep-pink);margin:.5rem 0;line-height:1.2;text-shadow:2px 2px 4px rgba(0,0,0,.05)}.date{font-size:1.1rem;margin-top:1rem;font-weight:300}.separator-sakura{font-size:2rem;margin:1.5rem 0;animation:pulse 2s infinite ease-in-out}.btn-open,.btn-submit,.btn-nav{background:linear-gradient(45deg,var(--deep-pink),var(--primary-pink));border:none;padding:12px 30px;border-radius:50px;color:#fff;font-family:var(--body-font);font-size:1rem;font-weight:600;cursor:pointer;box-shadow:0 4px 15px #db70934d;transition:transform .2s,box-shadow .2s;letter-spacing:1px}.btn-open:hover,.btn-submit:hover,.btn-nav:hover{transform:translateY(-2px);box-shadow:0 6px 20px #db709380}.btn-open{padding:0;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:1rem auto 0}.btn-open svg{width:28px;height:28px;fill:none}.section-title{font-family:var(--header-font);font-size:3rem;color:var(--deep-pink);margin:0 0 1rem;line-height:1}#card-2{padding:0;overflow:hidden;box-sizing:border-box}#card-2 .couple-photo-container{width:85%;height:85%;top:7.5%;left:7.5%;border-radius:15px;box-shadow:0 5px 20px #00000080;overflow:hidden;z-index:2;border:2px solid rgba(255,255,255,.2)}#card-2 .card-content{width:100%;height:100%;position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(to bottom,#ffffff4d,#0000 40%,#0009);padding:2rem;box-sizing:border-box}.couple-photo-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;margin:0;border-radius:0}.couple-photo{width:100%;height:100%;object-fit:cover;border-radius:0;max-height:none;box-shadow:none;transition:transform 3s ease}#card-2 .section-title{color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.5);margin-top:1rem}.card .btn-nav.btn-icon{background:#ffffffe6;color:var(--deep-pink);border:2px solid var(--deep-pink);box-shadow:0 4px 10px #0000001a;border-radius:50%;padding:0;width:50px;height:50px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;line-height:1;margin:1rem auto;cursor:pointer;transition:all .3s ease}.card .btn-nav.btn-icon svg{width:24px;height:24px;fill:currentColor}#card-2 .btn-nav.btn-icon{border:none;box-shadow:0 4px 10px #0003;margin:0}.card .btn-nav.btn-icon:hover{background:#fff;transform:translateY(-2px) rotate(15deg);box-shadow:0 6px 15px #db70934d}.event-details{margin:1.5rem 0;color:var(--text-color)}.event-item h3{font-family:var(--header-font);font-size:2rem;color:var(--deep-pink);margin-bottom:.2rem}.event-item .time{font-size:1.1rem;font-weight:500;margin-bottom:.5rem}.separator-small{font-size:1.5rem;margin:1rem 0;opacity:.7}.venue{margin-top:1.5rem;border-top:1px dashed rgba(219,112,147,.3);padding-top:1rem}.address-detail{font-size:.9rem;color:#666;margin-top:.2rem}#card-2 .btn-name{box-shadow:0 4px 10px #0003;background:#fffffff2}#card-2 .name-buttons{margin-bottom:1rem}#card-2 button{position:relative;z-index:10}.couple-photo:hover{transform:scale(1.02)}.name-buttons{display:flex;justify-content:space-around;gap:1rem;width:100%;margin-top:auto;margin-bottom:2rem}.btn-name{background:#fff;border:2px solid var(--deep-pink);color:var(--deep-pink);padding:8px 15px;border-radius:30px;font-family:var(--header-font);font-size:1.2rem;cursor:pointer;transition:all .3s ease;flex:1}.btn-name:hover{background:#ffe4e1;color:var(--deep-pink);transform:translateY(-2px);box-shadow:0 4px 10px #0000001a}.couple-name-title{font-family:var(--header-font);font-size:3rem;color:var(--deep-pink);margin:1rem 0}.full-height-flex{display:flex;flex-direction:column;height:100%}.ampersand{font-family:var(--header-font);font-size:2rem;color:var(--gold)}.event-details{background:#ffffff80;padding:1rem;border-radius:10px;margin:1rem 0;font-size:.95rem}.event-details p{margin:.3rem 0}.nav-buttons{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.btn-nav{padding:10px 20px;font-size:.9rem}.btn-nav.prev{background:transparent;border:1px solid var(--deep-pink);color:var(--deep-pink);box-shadow:none}.btn-nav.prev:hover{background:var(--soft-pink)}#card-3 p{margin-top:3.5rem;margin-bottom:.5rem}.greeting-form{display:flex;flex-direction:column;gap:1rem;text-align:left;margin-top:2rem}.greeting-form input,.greeting-form textarea,.greeting-form select{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-family:var(--body-font);background:#ffffffe6;transition:border-color .3s;box-sizing:border-box;font-size:1rem}.greeting-form input:focus,.greeting-form textarea:focus,.greeting-form select:focus{outline:none;border-color:var(--deep-pink)}.sakura-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:hidden}.petal{position:absolute;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10"><path d="M5 0C5 0 10 5 5 10C0 5 5 0 5 0Z" fill="%23FFB7C5" opacity="0.6"/></svg>') no-repeat;width:20px;height:20px;background-size:contain;animation:fall linear infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes fall{0%{transform:translateY(-10vh) rotate(0) translate(0);opacity:0}10%{opacity:.8}to{transform:translateY(110vh) rotate(360deg) translate(50px);opacity:0}}.hidden{display:none!important}.custom-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.custom-modal:not(.hidden){opacity:1;visibility:visible}.modal-content{background-color:#40e0d0;padding:0;border-radius:15px;width:80%;max-width:400px;box-shadow:0 5px 15px #0000004d;transform:scale(.8);transition:transform .3s cubic-bezier(.175,.885,.32,1.275);overflow:hidden;font-family:var(--body-font);border:2px solid white}.custom-modal:not(.hidden) .modal-content{transform:scale(1)}.modal-header{padding:15px 20px;background-color:#fff3;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.3)}.modal-header h2{margin:0;font-size:2rem;color:#004d40}.close-btn{color:#004d40;float:right;font-size:28px;font-weight:700;cursor:pointer;line-height:1;font-family:var(--body-font)}.close-btn:hover,.close-btn:focus{color:#002d25;text-decoration:none;cursor:pointer}.modal-body{padding:20px;color:#004d40;font-size:1.5rem;line-height:1.4;text-align:center}.modal-buttons{display:flex;justify-content:center;gap:15px;margin-top:20px}.modal-buttons button{min-width:100px}.location-map-section{margin-top:1.5rem;text-align:center;border-top:1px dashed rgba(219,112,147,.3);padding-top:1rem}.location-map-section h3{font-family:var(--header-font);font-size:2rem;color:var(--deep-pink);margin:0 0 .5rem}.btn-map-icon{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;background:#fff;border:2px solid var(--deep-pink);border-radius:50%;font-size:2rem;text-decoration:none;box-shadow:0 4px 10px #0000001a;transition:transform .3s ease,box-shadow .3s ease;animation:bounce 2s infinite}.btn-map-icon:hover{transform:scale(1.1);background:var(--soft-pink);box-shadow:0 6px 15px #db70934d}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}
