body{margin:0;min-width:320px;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.7;color:#333;overflow-x:hidden}.app{width:100%;min-height:100vh;background:linear-gradient(135deg,#acc8e5,#db9b5f);position:relative}.container{max-width:1200px;margin:0 auto;padding:0 20px}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#db9b5f,#acc8e5);color:#fff;text-align:center;padding:40px 20px;position:relative;overflow:hidden;box-shadow:0 10px 40px #0000001a}.hero:before{content:"";position:absolute;inset:0;background:url('data:image/svg+xml,<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><defs><pattern id="grid" width="100" height="100" patternUnits="userSpaceOnUse"><path d="M 100 0 L 0 0 0 100" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="1"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');opacity:.3;animation:backgroundMove 20s linear infinite}.hero:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 1px,transparent 1px);background-size:50px 50px;animation:float 15s ease-in-out infinite;pointer-events:none}.hero-content{position:relative;z-index:1}.invitation-text{font-size:1.2rem;margin-bottom:20px;font-weight:300;letter-spacing:2px;opacity:0}.couple-names{font-size:3.5rem;font-weight:300;letter-spacing:6px;margin-bottom:30px;text-shadow:2px 2px 8px rgba(0,0,0,.3),0 0 20px rgba(255,255,255,.1);opacity:0;position:relative}.wedding-date{font-size:1.5rem;margin-bottom:10px;font-weight:300;letter-spacing:2px;opacity:0}.wedding-location{font-size:1.2rem;font-weight:300;opacity:0}.story{padding:80px 20px;background:#fff;animation:fadeIn 1s ease-out;position:relative}.story-text{text-align:center;font-size:1.4rem;line-height:2;color:#555;max-width:800px;margin:0 auto 50px;font-style:italic;opacity:0}.cat-banner{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;max-width:1000px;margin:0 auto 40px;padding:20px;background:transparent;border-radius:0}.cat-image{width:auto;height:120px;object-fit:contain;opacity:0;cursor:pointer}.cat-image:hover{transform:scale(1.2) rotate(5deg)}.gallery{padding:0;background:linear-gradient(180deg,#f8f9fa,#fff);animation:fadeIn 1s ease-out;position:relative;overflow:hidden}.couple-image{width:100%;max-width:800px;margin:0 auto;display:block;overflow:hidden;opacity:0;transform-style:preserve-3d;perspective:1000px;padding-top:40px}.couple-image img{width:100%;height:auto;display:block;object-fit:cover}.details{padding:100px 20px;background:#fff;animation:fadeIn 1s ease-out;position:relative}.details:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(219,155,95,.3),transparent)}.details h2{text-align:center;font-size:2.8rem;color:#db9b5f;margin-bottom:60px;font-weight:300;letter-spacing:3px;position:relative;padding-bottom:20px}.details h2:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:80px;height:2px;background:linear-gradient(90deg,transparent,#DB9B5F,transparent)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:30px;max-width:1000px;margin:0 auto}.detail-item{text-align:center;padding:40px 30px;background:linear-gradient(135deg,#acc8e5,#db9b5f);border-radius:16px;transition:transform .4s ease,box-shadow .4s ease;color:#fff;opacity:0;cursor:pointer;position:relative;overflow:hidden}.detail-item:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);opacity:0;transition:opacity .4s ease}.detail-item:hover:before{opacity:1}.detail-item:hover{transform:translateY(-12px) scale(1.03);box-shadow:0 20px 40px #00000040}.detail-item h3{font-size:1.5rem;color:#fff;margin-bottom:15px;font-weight:400}.detail-item p{font-size:1.1rem;color:#fff;margin-bottom:5px}.venue-link{color:#fff;text-decoration:underline;text-decoration-color:#fff9;transition:text-decoration-color .3s ease,opacity .3s ease}.venue-link:hover{text-decoration-color:#fff;opacity:.9}.dress-code{padding:80px 20px;background:#fff;animation:fadeIn 1s ease-out}.dress-code-container{max-width:600px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:40px;opacity:0}.dress-code-title{font-size:2rem;color:#db9b5f;font-weight:400;margin:0;font-family:serif;letter-spacing:1px}.dress-code-colors{display:flex;gap:15px;align-items:center}.color-circle{width:60px;height:60px;border-radius:50%;box-shadow:0 4px 12px #00000026,0 0 0 3px #fffc;transition:transform .3s ease,box-shadow .3s ease}.color-circle:hover{transform:scale(1.1);box-shadow:0 6px 20px #0003,0 0 0 3px #fff}.schedule{padding:80px 20px;background:#f8f9fa;animation:fadeIn 1s ease-out}.schedule h2{text-align:center;font-size:2.8rem;color:#db9b5f;margin-bottom:60px;font-weight:300;letter-spacing:3px;position:relative;padding-bottom:20px}.schedule h2:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:80px;height:2px;background:linear-gradient(90deg,transparent,#DB9B5F,transparent)}.schedule-list{max-width:800px;margin:0 auto;position:relative;padding-left:40px}.schedule-list:before{content:"";position:absolute;left:15px;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#db9b5f,#acc8e5);border-radius:2px}.schedule-item{position:relative;display:flex;align-items:flex-start;gap:30px;margin-bottom:40px;opacity:0;transition:transform .3s ease}.schedule-item:last-child{margin-bottom:0}.schedule-item:hover{transform:translate(5px)}.timeline-marker{position:absolute;left:-35px;top:50%;transform:translateY(-50%);width:20px;height:20px;background:linear-gradient(135deg,#db9b5f,#acc8e5);border-radius:50%;border:4px solid white;box-shadow:0 2px 8px #00000026;z-index:1;flex-shrink:0}.schedule-content{flex:1;background:#fff;padding:30px;border-radius:16px;box-shadow:0 4px 12px #00000014;transition:box-shadow .4s ease,transform .4s ease;border:1px solid rgba(219,155,95,.1)}.schedule-item:hover .schedule-content{box-shadow:0 8px 24px #00000026;transform:translate(5px)}.schedule-time{font-size:1.2rem;font-weight:600;color:#db9b5f;margin-bottom:8px;font-family:Prompt,sans-serif}.schedule-activity{font-size:1.1rem;color:#555;line-height:1.6;font-family:Prompt,sans-serif}.location-support{padding:80px 20px;background:#fff;animation:fadeIn 1s ease-out}.location-support-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px;max-width:1000px;margin:0 auto}.location-item{text-align:center;opacity:0}.location-link{cursor:pointer}.location-image{width:100%;max-width:320px;height:auto;border-radius:16px;box-shadow:0 6px 20px #0000001f;transition:transform .4s ease,box-shadow .4s ease;margin-bottom:25px;border:3px solid rgba(255,255,255,.8)}.location-item h3{font-size:1.8rem;color:#db9b5f;margin-top:0;margin-bottom:0;font-weight:400;letter-spacing:2px}.location-image:hover{transform:translateY(-8px) scale(1.03);box-shadow:0 12px 30px #0003}.footer{padding:40px 20px;background:linear-gradient(135deg,#db9b5f,#acc8e5);color:#fff;text-align:center;animation:fadeIn 1s ease-out}.footer p{font-size:1.1rem;letter-spacing:1px;opacity:0}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translate(0) rotate(0)}33%{transform:translate(30px,-30px) rotate(120deg)}66%{transform:translate(-20px,20px) rotate(240deg)}}@keyframes floatCat{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes gentlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes backgroundMove{0%{transform:translate(0)}to{transform:translate(50px,50px)}}@media(max-width:768px){.couple-names{font-size:2rem;letter-spacing:2px}.wedding-date{font-size:1.2rem}.wedding-location,.invitation-text{font-size:1rem}.details h2{font-size:2rem}.story-text{font-size:1.1rem}.cat-banner{gap:8px;padding:15px}.cat-image{height:80px}.image-grid{grid-template-columns:1fr;gap:15px}.details-grid{grid-template-columns:1fr;gap:20px}.story,.gallery,.details,.dress-code,.schedule,.location-support{padding:50px 20px}.dress-code-container{flex-direction:column;gap:25px}.dress-code-title{font-size:1.5rem}.color-circle{width:40px;height:40px}.schedule h2{font-size:2rem}.schedule-list{padding-left:30px}.schedule-list:before{left:10px;width:2px}.timeline-marker{left:-20px;width:16px;height:16px;border-width:3px;transform:translateY(-50%)}.schedule-content{padding:20px}.schedule-time{font-size:1.1rem}.schedule-activity{font-size:1rem}.location-support-grid{grid-template-columns:1fr;gap:30px}.location-item h3{font-size:1.5rem}.location-image{max-width:250px}.hero{min-height:80vh;padding:30px 20px}}@media(max-width:480px){.couple-names{font-size:1.5rem;letter-spacing:1px}.wedding-date{font-size:1rem}.invitation-text{font-size:.9rem}.details h2{font-size:1.5rem}.story-text{font-size:1rem}.cat-banner{gap:5px;padding:10px}.cat-image{height:60px}.detail-item{padding:20px}.detail-item h3{font-size:1.2rem}.detail-item p{font-size:1rem}.location-item h3{font-size:1.3rem}.location-image{max-width:200px}.schedule h2{font-size:1.5rem}.schedule-list{padding-left:25px}.timeline-marker{width:14px;height:14px;border-width:2px;transform:translateY(-50%)}.schedule-content{padding:15px}.schedule-time{font-size:1rem}.schedule-activity{font-size:.95rem}.dress-code-title{font-size:1.3rem}.color-circle{width:35px;height:35px}}
