body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(180deg,#667eea 0,#764ba2 35%,#f093fb 70%,#f5f7fa);color:#4a4a4a;font-family:Raleway,sans-serif;min-height:100vh;overflow-x:hidden;position:relative}.hero-background{object-fit:cover;opacity:.4;z-index:-2}.hero-background,body:after{height:100%;left:0;position:fixed;top:0;width:100%}body:after{background:radial-gradient(circle at center,#0000 0,#fff3 100%);content:"";z-index:-1}.App{align-items:center;display:flex;flex-direction:column;min-height:100vh;padding-bottom:4rem;position:relative}.hero-section{animation:fadeIn 1.5s ease-out;background:linear-gradient(180deg,#ffffff1a 0,#0000);margin:0 auto;max-width:1200px;padding:4rem 1rem 2rem;position:relative;text-align:center;width:100%;z-index:2}.hero-section h1{-webkit-text-fill-color:#0000;text-fill-color:#0000;animation:titleGlow 3s ease-in-out infinite alternate;background:linear-gradient(135deg,#667eea,#764ba2 30%,#4c63d2 70%,#5a67d8);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(2px 2px 8px rgba(102,126,234,.3));font-family:Raleway,sans-serif;font-size:4.5rem;font-weight:600;letter-spacing:2px;line-height:1.2;margin-bottom:1rem;position:relative}@keyframes titleGlow{0%{filter:drop-shadow(2px 2px 8px rgba(102,126,234,.3))}to{filter:drop-shadow(2px 2px 15px rgba(102,126,234,.5))}}.hero-section p{color:#fffffff2;font-size:1.3rem;font-style:italic;font-weight:400;letter-spacing:.5px;line-height:1.6;margin-bottom:2rem;text-shadow:1px 1px 3px #0000004d}.top-counter{animation:slideDown 1s ease-out 1s both;left:2rem;position:fixed;top:2rem;z-index:100}.date-counter{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-radius:25px;box-shadow:0 10px 30px #0000001a,0 0 0 1px #ffffff80,inset 0 0 0 1px #ffb6c133;max-width:280px;min-height:400px;overflow:hidden;padding:1.5rem;position:relative;width:280px}.flower-frame-top{object-position:top right;right:-50%;top:-50%}.flower-frame-bottom,.flower-frame-top{height:200%;object-fit:contain;opacity:.2;pointer-events:none;position:absolute;width:200%}.flower-frame-bottom{bottom:-50%;left:-50%;object-position:bottom left;transform:rotate(180deg)}.counter-header{margin-bottom:1.5rem;text-align:center}.counter-header h2{-webkit-text-fill-color:#0000;text-fill-color:#0000;background:linear-gradient(135deg,#4c63d2,#667eea);-webkit-background-clip:text;background-clip:text;font-size:1.4rem;font-weight:600;margin-bottom:.3rem}.start-date{color:#667eea;font-family:Dancing Script,cursive;font-size:1rem;opacity:.9}.time-display{grid-gap:.8rem;display:grid;gap:.8rem;grid-template-columns:1fr 1fr 1fr;margin-bottom:1.5rem}.time-unit{background:linear-gradient(145deg,#fff,#ffeef1);border-radius:15px;box-shadow:0 3px 10px #ffb6c126,inset 0 0 0 1px #fffc;overflow:hidden;padding:.8rem .5rem;position:relative;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1)}.time-unit:before{background:linear-gradient(135deg,#0000,#ffb6c11a);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%}.time-unit:hover{box-shadow:0 15px 40px #ffb6c140,inset 0 0 0 1px #ffffffe6;transform:translateY(-10px) scale(1.03)}.time-unit:hover:before{opacity:1}.time-unit .number{-webkit-text-fill-color:#0000;text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#5a67d8);-webkit-background-clip:text;background-clip:text;display:block;font-size:1.8rem;font-weight:700;line-height:1;margin-bottom:.2rem}.time-unit .label{color:#999;font-size:.7rem;font-weight:500;letter-spacing:1px;text-transform:uppercase}.milestone-stats{grid-gap:.8rem;border-top:1px solid #667eea33;display:grid;gap:.8rem;grid-template-columns:1fr;padding-top:1rem;position:relative}.milestone-stats:before{background:#fff;color:#667eea;content:"✦";font-size:1.2rem;left:50%;padding:0 1rem;position:absolute;top:-10px;transform:translateX(-50%)}.stat{text-align:center;transition:transform .3s ease}.stat:hover{transform:scale(1.1)}.stat-number{-webkit-text-fill-color:#0000;text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#5a67d8);-webkit-background-clip:text;background-clip:text;display:block;font-size:1.2rem;font-weight:700;margin-bottom:.1rem}.stat-label{color:#888;font-size:.7rem;font-weight:500;letter-spacing:1px;text-transform:uppercase}.floating-hearts{height:100%;overflow:hidden;pointer-events:none;position:fixed;width:100%;z-index:1}.heart{animation:float 25s infinite;filter:drop-shadow(0 0 10px rgba(255,182,193,.3));font-size:24px;opacity:.5;position:absolute}.floating-clouds{height:100%;pointer-events:none;position:fixed;width:100%;z-index:0}.cloud{animation:drift 80s linear infinite;height:80px;object-fit:contain;opacity:.8;position:absolute;width:180px}.cloud:first-child{animation-duration:70s;top:15%;width:200px}.cloud:nth-child(2){animation-delay:-30s;animation-duration:90s;top:40%;width:150px}.cloud:nth-child(3){animation-delay:-60s;animation-duration:100s;top:70%;width:170px}.love-birds{animation:sway 5s ease-in-out infinite;filter:drop-shadow(0 5px 15px rgba(0,0,0,.1));height:100px;object-fit:contain;position:fixed;right:2.5rem;top:2.5rem;width:120px;z-index:3}.sparkles{animation:twinkle 4s ease-in-out infinite;height:100%;left:0;mix-blend-mode:screen;object-fit:cover;opacity:.5;pointer-events:none;position:fixed;top:0;width:100%;z-index:1}@keyframes float{0%{transform:translateY(100vh) translateX(0) rotate(0deg)}33%{transform:translateY(50vh) translateX(30px) rotate(120deg)}66%{transform:translateY(0) translateX(-30px) rotate(240deg)}to{transform:translateY(-100vh) translateX(0) rotate(1turn)}}@keyframes drift{0%{transform:translateX(-250px)}to{transform:translateX(calc(100vw + 250px))}}@keyframes sway{0%,to{transform:rotate(-5deg) translateY(0)}25%{transform:rotate(3deg) translateY(-5px)}50%{transform:rotate(5deg) translateY(0)}75%{transform:rotate(-3deg) translateY(5px)}}@keyframes twinkle{0%,to{opacity:.2;transform:scale(1)}50%{opacity:.4;transform:scale(1.1)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.love-quote{animation:fadeIn 2s ease-out 1s both;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#ffffff26,#ffb6c11a);border-radius:30px;box-shadow:0 10px 40px #0000000d,inset 0 0 0 1px #fff3;color:#fffffff2;font-size:1.3rem;font-style:italic;line-height:1.8;margin:3rem auto 2rem;max-width:800px;padding:2.5rem 3rem;position:relative;text-align:center;text-shadow:2px 2px 4px #0003}.love-quote:after,.love-quote:before{color:#fff6;content:'"';font-family:Dancing Script,cursive;font-size:4rem;line-height:1;position:absolute}.love-quote:before{left:20px;top:10px}.love-quote:after{bottom:10px;right:20px;transform:rotate(180deg)}.couple-silhouette{bottom:0;height:180px;left:50%;object-fit:contain;opacity:.5;position:fixed;transform:translateX(-50%);width:250px;z-index:0}.photo-carousel{margin-top:3rem;position:relative;z-index:2}.carousel-container{margin:0 auto;max-width:850px;position:relative}.carousel-frame{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(145deg,#ffffff26,#667eea0d);border:2px solid #667eea1a;border-radius:35px;box-shadow:0 25px 80px #00000026,0 0 0 1px #ffffff4d,inset 0 1px 0 #fff6;height:550px;overflow:hidden;position:relative;width:100%}.carousel-slide{height:100%;left:0;opacity:0;position:absolute;top:0;transform:scale(1.05);transition:all .8s cubic-bezier(.4,0,.2,1);width:100%}.carousel-slide.active{opacity:1;transform:scale(1)}.carousel-slide img{height:100%;object-fit:cover;object-position:center top;transition:transform .8s ease;width:100%}.carousel-slide img.tangram-photo{object-position:center center}.carousel-slide img.wedding-photo{object-position:center 30%}.carousel-slide img.bower-photo,.carousel-slide img.greekpeak-photo,.carousel-slide img.nathaniel-photo,.carousel-slide img.revere-photo,.carousel-slide img.sanya-photo,.carousel-slide img.xian-photo{object-fit:contain}.carousel-slide.active img{transform:scale(1.02)}.photo-frame-border{border:2px solid #fff6;border-radius:25px;bottom:12px;box-shadow:inset 0 0 20px #ffffff1a;left:12px;pointer-events:none;position:absolute;right:12px;top:12px}.carousel-nav{align-items:center;background:linear-gradient(145deg,#fffffff2,#f5f7fafa);border:2px solid #667eea33;border-radius:50%;box-shadow:0 8px 25px #667eea26,inset 0 1px 0 #fffc;color:#667eea;cursor:pointer;display:flex;font-size:1.4rem;font-weight:600;height:55px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .4s cubic-bezier(.4,0,.2,1);width:55px;z-index:10}.carousel-nav:hover{background:linear-gradient(145deg,#fff,#f5f7fa);border-color:#667eea4d;box-shadow:0 12px 35px #667eea40,inset 0 1px 0 #ffffffe6;transform:translateY(-50%) scale(1.15)}.carousel-nav.prev{left:-27px}.carousel-nav.next{right:-27px}.carousel-caption{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:linear-gradient(145deg,#000c,#141414e6);border:1px solid #ffffff1a;border-radius:25px;bottom:25px;box-shadow:0 8px 25px #0000004d;color:#fff;font-size:1.1rem;font-weight:500;left:50%;padding:1rem 2rem;position:absolute;text-shadow:1px 1px 2px #000c;transform:translateX(-50%)}.carousel-dots{display:flex;gap:1rem;justify-content:center;margin-top:2.5rem}.dot{background:#fff9;border:2px solid #667eea4d;border-radius:50%;box-shadow:0 2px 8px #667eea1a;cursor:pointer;height:14px;transition:all .4s cubic-bezier(.4,0,.2,1);width:14px}.dot.active{background:linear-gradient(135deg,#667eea,#5a67d8);border-color:#667eea99;box-shadow:0 4px 15px #667eea4d;transform:scale(1.4)}.dot:hover{background:linear-gradient(135deg,#667eea,#4c63d2);border-color:#667eea80;box-shadow:0 3px 12px #667eea33;transform:scale(1.2)}.carousel-controls{display:flex;justify-content:center;margin-top:1.5rem}.auto-play-btn{background:linear-gradient(145deg,#ffffffe6,#f5f7faf2);border:2px solid #667eea33;border-radius:25px;box-shadow:0 5px 20px #667eea1a;color:#667eea;cursor:pointer;font-size:1rem;font-weight:500;padding:.8rem 1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.auto-play-btn:hover{background:linear-gradient(145deg,#fff,#f5f7fa);border-color:#667eea4d;box-shadow:0 8px 25px #667eea33;transform:scale(1.05)}.collapsible-counter{-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);background:linear-gradient(145deg,#fffffff2,#f5f7fafa);border:2px solid #667eea1a;border-radius:25px;box-shadow:0 15px 40px #00000014,0 0 0 1px #fff9,inset 0 1px 0 #fffc;max-width:320px;overflow:hidden;padding:0;position:relative;transition:all .5s cubic-bezier(.4,0,.2,1)}.collapsible-counter.collapsed{height:80px}.collapsible-counter.expanded{height:auto;max-height:350px}.counter-header-fixed{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffc;border-bottom:1px solid #667eea1a;border-radius:25px 25px 0 0;padding:1.2rem;position:relative;z-index:10}.counter-toggle{align-items:center;border-radius:15px;cursor:pointer;display:flex;justify-content:space-between;padding:.3rem;transition:all .3s ease}.counter-toggle:hover{background:#667eea0d}.counter-summary{align-items:center;display:flex;gap:1.2rem}.summary-number{-webkit-text-fill-color:#0000;text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#4c63d2 50%,#5a67d8);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 1px 2px rgba(102,126,234,.1));font-size:1.8rem;font-weight:800}.summary-label{color:#888;font-size:.75rem;font-weight:600;letter-spacing:1.5px;margin-right:.3rem;text-transform:uppercase}.toggle-btn{align-items:center;background:linear-gradient(135deg,#667eea26,#5a67d81a);border:1px solid #667eea33;border-radius:50%;box-shadow:0 2px 8px #667eea1a;color:#667eea;cursor:pointer;display:flex;font-size:1rem;font-weight:600;height:35px;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);width:35px}.toggle-btn:hover{background:linear-gradient(135deg,#667eea40,#5a67d833);box-shadow:0 4px 15px #667eea33;transform:scale(1.05)}.counter-details{max-height:0;opacity:0;overflow:hidden;padding:0 1.5rem 1.5rem;pointer-events:none;transform:translateY(-30px);transition:all .5s cubic-bezier(.4,0,.2,1)}.collapsible-counter.expanded .counter-details{max-height:500px;opacity:1;padding:1rem 1.5rem 1.5rem;pointer-events:auto;transform:translateY(0)}.collapsible-counter .flower-frame-bottom,.collapsible-counter .flower-frame-top{opacity:.08}.gallery-header{margin-bottom:3rem;text-align:center}.gallery-header h2{-webkit-text-fill-color:#0000;text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:600;margin-bottom:.5rem}.gallery-header p{color:#ffffffe6;font-size:1.2rem;text-shadow:2px 2px 4px #0003}.photo-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:2rem}.photo-item{animation:fadeIn 1s ease-out;background:#ffffffe6;border-radius:20px;box-shadow:0 10px 30px #0000001a;cursor:pointer;overflow:hidden;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.photo-item:nth-child(odd){transform:rotate(-2deg)}.photo-item:nth-child(2n){transform:rotate(2deg)}.photo-item:hover{box-shadow:0 20px 50px #0003;transform:scale(1.05) rotate(0deg);z-index:10}.photo-item img{height:250px;object-fit:cover;transition:transform .3s ease;width:100%}.photo-item:hover img{transform:scale(1.1)}.photo-overlay{background:linear-gradient(0deg,#000c 0,#0000);bottom:0;left:0;padding:1.5rem;position:absolute;right:0;transform:translateY(100%);transition:transform .3s ease}.photo-item:hover .photo-overlay{transform:translateY(0)}.photo-caption{color:#fff;font-size:1.1rem;font-weight:500;text-shadow:1px 1px 2px #00000080}.photo-modal{animation:fadeIn .3s ease;background:#000000e6;height:100%;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content,.photo-modal{align-items:center;display:flex;justify-content:center}.modal-content{max-height:90vh;max-width:90vw;position:relative}.modal-content img{border-radius:10px;box-shadow:0 20px 60px #00000080;max-height:100%;max-width:100%;object-fit:contain}.close-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;position:absolute;right:0;top:-50px;transition:background .3s ease;width:40px}.close-btn:hover{background:#ffffff4d}.nav-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:2rem;height:50px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:background .3s ease;width:50px}.nav-btn:hover{background:#ffffff4d}.prev-btn{left:-80px}.next-btn{right:-80px}.modal-caption{bottom:-60px;color:#fff;font-size:1.2rem;left:50%;position:absolute;text-align:center;transform:translateX(-50%);white-space:nowrap}@media (max-width:768px){.hero-section h1{font-size:3rem;letter-spacing:1px}.hero-section p{font-size:1.1rem;margin-bottom:1.5rem}.top-counter{left:auto;margin:1rem auto;max-width:350px;padding:0 1rem;position:relative;top:auto;width:100%}.collapsible-counter{margin:0 auto;max-width:100%}.counter-header-fixed{padding:1rem}.counter-header h2{font-size:1.6rem}.time-display{gap:.5rem;grid-template-columns:repeat(3,1fr)}.time-unit{padding:.6rem .3rem}.time-unit .number{font-size:1.4rem}.time-unit .label{font-size:.6rem}.milestone-stats{gap:.5rem;grid-template-columns:repeat(3,1fr)}.stat-number{font-size:1rem}.stat-label{font-size:.6rem}.love-birds{height:65px;right:1.5rem;top:1.5rem;width:80px}.carousel-container{max-width:95%}.carousel-frame{border-radius:25px;height:400px}.carousel-nav.prev{left:-20px}.carousel-nav.next{right:-20px}.carousel-nav{font-size:1.2rem;height:45px;width:45px}.carousel-caption{border-radius:20px;bottom:20px;font-size:1rem;padding:.8rem 1.5rem}.summary-number{font-size:1.4rem}.summary-label{font-size:.7rem}.toggle-btn{font-size:.9rem;height:30px;width:30px}.dot{height:12px;width:12px}.auto-play-btn{font-size:.9rem;padding:.7rem 1.2rem}}
/*# sourceMappingURL=main.e51ccf26.css.map*/