:root{--ivory: #FFFEF9;--ivory-dark: #F8F6F0;--soft-beige: #EDE8DF;--warm-beige: #D4C8B8;--champagne-gold: #C9A962;--gold-light: #D4B86A;--gold-dark: #A68B4B;--deep-red: #8B2635;--red-light: #A63344;--text-dark: #3D3329;--text-muted: #6B5F52;--font-serif: "Cormorant Garamond", Georgia, serif;--font-sans: "Montserrat", -apple-system, sans-serif;--section-padding: 6rem;--card-padding: 2.5rem;--transition-smooth: .4s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .6s cubic-bezier(.34, 1.56, .64, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background:var(--ivory);color:var(--text-dark);line-height:1.6;min-height:100vh;overflow-x:hidden;position:relative}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at 20% 20%,rgba(201,169,98,.03) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(139,38,53,.02) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(212,200,184,.1) 0%,transparent 70%);pointer-events:none;z-index:0}.particles{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:hidden}.particle{position:absolute;width:6px;height:6px;background:radial-gradient(circle,var(--champagne-gold) 0%,transparent 70%);border-radius:50%;opacity:0;animation:floatParticle 18s infinite ease-in-out}.particle:nth-child(odd){background:radial-gradient(circle,rgba(139,38,53,.4) 0%,transparent 70%)}@keyframes floatParticle{0%{opacity:0;transform:translateY(100vh) rotate(0) scale(.5)}10%{opacity:.7}50%{opacity:.5;transform:translateY(50vh) rotate(180deg) scale(1)}90%{opacity:.7}to{opacity:0;transform:translateY(-50px) rotate(360deg) scale(.5)}}.decorative-corner{position:fixed;width:150px;height:150px;pointer-events:none;z-index:2;opacity:.15}.decorative-corner:before,.decorative-corner:after{content:"";position:absolute;background:var(--champagne-gold)}.decorative-corner.top-left{top:20px;left:20px}.decorative-corner.top-left:before{width:60px;height:1px;top:0;left:0}.decorative-corner.top-left:after{width:1px;height:60px;top:0;left:0}.decorative-corner.top-right{top:20px;right:20px}.decorative-corner.top-right:before{width:60px;height:1px;top:0;right:0}.decorative-corner.top-right:after{width:1px;height:60px;top:0;right:0}.decorative-corner.bottom-left{bottom:20px;left:20px}.decorative-corner.bottom-left:before{width:60px;height:1px;bottom:0;left:0}.decorative-corner.bottom-left:after{width:1px;height:60px;bottom:0;left:0}.decorative-corner.bottom-right{bottom:20px;right:20px}.decorative-corner.bottom-right:before{width:60px;height:1px;bottom:0;right:0}.decorative-corner.bottom-right:after{width:1px;height:60px;bottom:0;right:0}.music-control{position:fixed;top:30px;right:30px;z-index:1000;width:48px;height:48px;border:1px solid var(--champagne-gold);border-radius:50%;background:#fffef9e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition-smooth);box-shadow:0 4px 20px #c9a96226}.music-control:hover{background:var(--champagne-gold);transform:scale(1.05);box-shadow:0 6px 30px #c9a9624d}.music-control:hover .music-icon{color:var(--ivory)}.music-icon{width:20px;height:20px;color:var(--champagne-gold);transition:var(--transition-smooth)}.music-control .music-off,.music-control.muted .music-on{display:none}.music-control.muted .music-off{display:block}.container{position:relative;z-index:10;max-width:1200px;margin:0 auto;padding:0 2rem}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--section-padding) 0}.monogram-container{position:relative;margin-bottom:3rem;animation:fadeInScale 1.5s ease-out forwards}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.monogram{display:flex;align-items:center;justify-content:center;animation:gentleFloat 6s ease-in-out infinite;position:relative;z-index:5}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.monogram-logo{width:180px;height:auto;object-fit:contain;filter:drop-shadow(0 4px 20px rgba(201,169,98,.15));border-radius:8px}.monogram-frame{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:280px;height:280px;pointer-events:none}.frame-ornament{position:absolute;width:40px;height:40px;color:var(--champagne-gold);opacity:.6}.frame-ornament.top-left{top:0;left:0}.frame-ornament.top-right{top:0;right:0}.frame-ornament.bottom-left{bottom:0;left:0}.frame-ornament.bottom-right{bottom:0;right:0}.monogram-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:200px;height:200px;border:1px solid var(--champagne-gold);border-radius:50%;opacity:.35;animation:ringPulse 4s ease-in-out infinite}.monogram-ring.outer{width:240px;height:240px;opacity:.2;animation:ringPulseOuter 4s ease-in-out infinite;animation-delay:.5s}@keyframes ringPulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.35}50%{transform:translate(-50%,-50%) scale(1.03);opacity:.2}}@keyframes ringPulseOuter{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.2}50%{transform:translate(-50%,-50%) scale(1.04);opacity:.1}}.couple-names{font-family:var(--font-serif);font-size:3.5rem;font-weight:400;color:var(--text-dark);letter-spacing:.15em;margin-bottom:.5rem;text-transform:uppercase}.wedding-text{font-family:var(--font-serif);font-size:1.5rem;font-weight:300;font-style:italic;color:var(--champagne-gold);letter-spacing:.3em;text-transform:uppercase;margin-bottom:2rem}.date-ornament{display:flex;align-items:center;gap:1.5rem;margin-top:1rem}.ornament-line{width:80px;height:1px;background:linear-gradient(90deg,transparent,var(--champagne-gold),transparent)}.date{font-family:var(--font-sans);font-size:.9rem;font-weight:400;letter-spacing:.2em;color:var(--text-muted);text-transform:uppercase}.welcome-guide{font-family:var(--font-serif);font-size:1.15rem;font-weight:300;font-style:italic;color:var(--text-muted);letter-spacing:.02em;text-transform:none;max-width:42rem;margin:1.5rem auto 0;line-height:1.7}.welcome-guide--split{position:relative;display:inline-block;padding:.2rem .4rem}.welcome-guide--split:before{content:"";position:absolute;top:.15rem;right:.15rem;bottom:.15rem;left:.15rem;border-radius:16px;background:radial-gradient(circle at 30% 30%,rgba(201,169,98,.09) 0%,transparent 60%),linear-gradient(90deg,transparent 0%,rgba(201,169,98,.08) 35%,transparent 70%);background-size:100% 100%,220% 100%;opacity:0;transform:translateY(6px);animation:welcomeSweep 1.4s ease-out forwards;animation-delay:.65s;pointer-events:none;z-index:-1}@keyframes welcomeSweep{0%{opacity:0;transform:translateY(6px);background-position:0% 0%,0% 0%}to{opacity:1;transform:translateY(0);background-position:0% 0%,100% 0%}}.welcome-word{display:inline-block;opacity:0;transform:translateY(14px);filter:blur(4px);animation:welcomeWordIn .75s cubic-bezier(.2,.9,.2,1) forwards;animation-delay:var(--d, 0ms);will-change:transform,opacity,filter}@keyframes welcomeWordIn{0%{opacity:0;transform:translateY(14px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.fade-in-up{opacity:0;transform:translateY(30px);animation:fadeInUp 1s ease-out forwards}.delay-1{animation-delay:.3s}.delay-2{animation-delay:.6s}.delay-3{animation-delay:.9s}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}.slide-up{opacity:0;transform:translateY(50px);animation:slideUp .8s ease-out forwards}@keyframes slideUp{to{opacity:1;transform:translateY(0)}}.events{padding:var(--section-padding) 0}.events-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:3rem;align-items:start;max-width:1000px;margin:0 auto}.event-card{background:linear-gradient(180deg,var(--ivory) 0%,var(--ivory-dark) 100%);border-radius:20px;padding:var(--card-padding);text-align:center;position:relative;box-shadow:0 10px 40px #3d33290f,0 2px 10px #3d33290a;border:1px solid rgba(201,169,98,.15);transition:var(--transition-smooth);overflow:hidden}.event-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--champagne-gold),transparent);opacity:0;transition:var(--transition-smooth)}.event-card:hover{transform:translateY(-8px);box-shadow:0 20px 60px #3d33291a,0 8px 20px #3d33290f}.event-card:hover:before{opacity:1}.card-decoration{position:absolute;left:50%;transform:translate(-50%);width:40px;height:1px;background:var(--champagne-gold);opacity:.4}.card-decoration.top{top:15px}.card-decoration.bottom{bottom:15px}.icon-container{margin-bottom:1.5rem}.location-icon{width:40px;height:40px;color:var(--champagne-gold);stroke-width:1.2}.event-title{font-family:var(--font-serif);font-size:1.8rem;font-weight:500;color:var(--text-dark);margin-bottom:.75rem;letter-spacing:.05em}.event-time{margin-bottom:1.5rem}.time{font-family:var(--font-sans);font-size:.85rem;font-weight:500;letter-spacing:.15em;color:var(--deep-red);text-transform:uppercase;padding:.4rem 1rem;background:#8b26350f;border-radius:20px}.event-address{font-family:var(--font-sans);font-size:.95rem;font-style:normal;color:var(--text-muted);line-height:1.8;margin-bottom:2rem}.map-button{display:inline-flex;align-items:center;gap:.75rem;font-family:var(--font-sans);font-size:.85rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ivory);background:var(--champagne-gold);padding:1rem 2rem;border-radius:30px;text-decoration:none;transition:var(--transition-smooth);position:relative;overflow:hidden}.map-button:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(255,255,255,.15) 0%,transparent 50%);pointer-events:none}.map-button:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.18) 30%,transparent 60%);transform:translate(-120%);opacity:0;pointer-events:none}.map-button:hover{background:var(--gold-dark);transform:translateY(-2px);box-shadow:0 8px 25px #c9a96259}.map-button:hover:after{opacity:1;animation:buttonSheen .9s ease-out forwards}@keyframes buttonSheen{to{transform:translate(120%)}}.map-button .arrow-icon{width:16px;height:16px;transition:var(--transition-smooth)}.map-button:hover .arrow-icon{transform:translate(4px)}.divider{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 0}.divider-ornament{position:relative}.floral-ornament{width:70px;height:70px;color:var(--champagne-gold);animation:gentlePulse 4s ease-in-out infinite}@keyframes gentlePulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}.divider-line{width:1px;height:60px;background:linear-gradient(180deg,transparent,var(--champagne-gold),transparent)}.divider-line.top{background:linear-gradient(180deg,transparent,var(--champagne-gold));margin-bottom:.5rem}.divider-line.bottom{background:linear-gradient(180deg,var(--champagne-gold),transparent);margin-top:.5rem}.ornament-line{background-size:200% 100%;animation:shimmerLine 6s ease-in-out infinite}@keyframes shimmerLine{0%,to{background-position:0% 0%;opacity:.85}50%{background-position:100% 0%;opacity:1}}.decorative-corner{animation:cornerFloat 10s ease-in-out infinite}.decorative-corner.top-right,.decorative-corner.bottom-left{animation-delay:.8s}@keyframes cornerFloat{0%,to{transform:translateY(0);opacity:.12}50%{transform:translateY(-8px);opacity:.18}}.monogram-frame{animation:slowRotate 28s linear infinite;transform-origin:center}@keyframes slowRotate{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.music-control{animation:controlBreathe 5.5s ease-in-out infinite}.music-control:hover{animation:none}@keyframes controlBreathe{0%,to{transform:translateZ(0) scale(1)}50%{transform:translateZ(0) scale(1.03)}}.footer{text-align:center;padding:var(--section-padding) 0;margin-top:2rem}.footer-ornament{margin-bottom:2rem}.heart-decoration{width:120px;height:40px;color:var(--champagne-gold)}.footer-text{font-family:var(--font-serif);font-size:1.2rem;font-weight:300;font-style:italic;color:var(--text-muted);line-height:1.8;max-width:400px;margin:0 auto 2rem}.footer-names{font-family:var(--font-serif);font-size:1.5rem;font-weight:400;color:var(--champagne-gold);letter-spacing:.3em}@media(max-width:900px){.events-grid{grid-template-columns:1fr;gap:2rem;max-width:450px}.divider{flex-direction:row;padding:1.5rem 0;gap:1rem}.divider-line{width:60px;height:1px}.divider-line.top{background:linear-gradient(90deg,transparent,var(--champagne-gold));margin-bottom:0}.divider-line.bottom{background:linear-gradient(90deg,var(--champagne-gold),transparent);margin-top:0}.floral-ornament{width:50px;height:50px}}@media(max-width:768px){:root{--section-padding: 4rem;--card-padding: 2rem}.music-control{top:20px;right:20px;width:42px;height:42px}.decorative-corner{width:80px;height:80px}.decorative-corner:before{width:40px}.decorative-corner:after{height:40px}.monogram-frame{width:200px;height:200px}.frame-ornament{width:30px;height:30px}.monogram-logo{width:140px}.monogram-ring{width:150px;height:150px}.monogram-ring.outer{width:180px;height:180px}.couple-names{font-size:2rem;letter-spacing:.1em}.wedding-text{font-size:1.1rem;letter-spacing:.2em}.welcome-guide{font-size:1rem;padding:0 .5rem}.event-title{font-size:1.5rem}.footer-text{font-size:1rem;padding:0 1rem}}@media(max-width:480px){.container{padding:0 1.25rem}.monogram-frame{width:160px;height:160px}.frame-ornament{width:24px;height:24px}.monogram .letter-b,.monogram .letter-a{font-size:4rem}.monogram .ampersand{font-size:1.5rem}.monogram-ring{width:120px;height:120px}.monogram-ring.outer{width:145px;height:145px}.couple-names{font-size:1.4rem}.wedding-text{font-size:.9rem}.welcome-guide{font-size:.95rem;margin-top:1.25rem}.date-ornament{gap:1rem}.ornament-line{width:40px}.date{font-size:.75rem}.event-card{padding:2rem 1.5rem}.map-button{padding:.9rem 1.5rem;font-size:.8rem}.floral-ornament{width:40px;height:40px}.divider-line{width:40px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.music-control,.particles,.decorative-corner{display:none}.event-card{break-inside:avoid;box-shadow:none;border:1px solid #ccc}}
