:root{--gold: #d4af37;--cream: #f4f1ea;--text-dark: #333;--font-heading: "Great Vibes", cursive;--font-subheading: "Cinzel", serif;--font-body: "Lato", sans-serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-body);background-color:var(--cream);color:var(--text-dark);overflow-x:hidden}h1,h2,h3{font-family:var(--font-heading);color:var(--text-dark)}h2{font-size:3rem;margin-bottom:20px;color:var(--gold)}h3{font-family:var(--font-subheading);font-size:1.5rem;margin-bottom:15px;letter-spacing:2px}p{line-height:1.6;margin-bottom:20px;font-size:1.1rem}.envelope-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#a843431f;display:flex;justify-content:center;align-items:center;z-index:1000;perspective:1000px;transition:opacity 1s ease-in-out,visibility 1s}.envelope-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.envelope-container{position:absolute;top:0;left:0;width:100%;height:100%;max-width:none;cursor:pointer;perspective:1000px}.envelope-wrapper{position:relative;width:100%;height:100%}.envelope-bot{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:2}.envelope-top{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:5;transform-origin:top;transition:transform 2.8s ease-in-out}.envelope-top-shadow{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:4;transform-origin:top;transition:transform 2.8s ease-in-out,opacity 2.8s ease-in-out;filter:brightness(0) blur(16px);transform:scale(1);opacity:.2}.envelope-container.open .envelope-top{transform:rotateX(30deg) translateY(-6%) scale(1.1)}.envelope-container.open .envelope-top-shadow{transform:scaleX(1.3) scaleY(1.4) translateY(-10%);opacity:.8}.hero{height:100vh;width:100%;max-width:none;padding:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(#c1c1c180,#20202080),url(../assets/castillo-de-munichp.jpg);background-size:cover;background-position:center;background-attachment:fixed;color:#fff;position:relative}.hero-content{display:flex;flex-direction:column;align-items:center;text-align:center;text-shadow:1px 2px 6px #5e5036}.hero h1{font-size:5rem;margin-bottom:10px;color:#fff}.hero .subtitle{font-family:var(--font-subheading);font-size:1.5rem;letter-spacing:5px;text-transform:uppercase;margin-bottom:20px;color:#fff}.hero-divider{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1.5rem 0;width:100%}.hero-divider .line{height:1px;background-color:#ffffff80;width:80px}.hero-divider .icon{color:var(--gold);font-size:1.2rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}.date-large{font-family:var(--font-subheading);font-size:1.5rem;padding:10px 40px;margin-top:10px;letter-spacing:2px}.hero-footer{position:absolute;bottom:40px;width:100%;display:flex;justify-content:center}.cta-button{display:inline-block;background-color:var(--gold);color:#fff;padding:15px 30px;text-decoration:none;border-radius:4px;font-family:var(--font-subheading);text-transform:uppercase;letter-spacing:1px;transition:background-color .3s,opacity 1s ease-out,transform 1s ease-out}.cta-button:hover{background-color:#bfa030}.main-content{opacity:0;transition:opacity 2s ease-in-out}.main-content.visible{opacity:1}section{padding:60px 20px;text-align:center;max-width:800px;margin:0 auto}.reveal,.hero-reveal{opacity:0;transform:translateY(30px);transition:all 1s ease-out}.reveal.revealed,.main-content.visible .hero .hero-reveal{opacity:1;transform:translateY(0)}.hero .subtitle.hero-reveal{transition-delay:.3s}.hero h1.hero-reveal{transition-delay:.6s}.hero .hero-divider.hero-reveal{transition-delay:.9s}.hero .date-large.hero-reveal{transition-delay:1.2s}.hero .cta-button.hero-reveal{transition-delay:1.5s}.countdown-timer{display:flex;justify-content:center;gap:30px;margin-top:30px}@media screen and (max-width:550px){.countdown-timer{flex-direction:column;align-items:center}}.time-box{display:flex;flex-direction:column;background:#fff;padding:15px;border-radius:8px;box-shadow:0 4px 6px #0000001a;min-width:80px}.time-val{font-size:2rem;font-weight:700;color:var(--gold)}.time-label{font-size:.8rem;text-transform:uppercase}.location-img{width:100%;height:300px;object-fit:cover;border-radius:12px;margin-bottom:25px;box-shadow:0 4px 15px #0000001a}.rsvp-form{background:#fff;padding:40px;border-radius:10px;box-shadow:0 5px 15px #0000000d;text-align:left}.form-group{margin-bottom:20px}label{display:block;margin-bottom:8px;font-weight:700}input,select,textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-family:inherit}button.submit-btn{background-color:var(--gold);color:#fff;border:none;padding:12px 30px;font-size:1rem;cursor:pointer;transition:background .3s;width:100%;font-family:var(--font-subheading);letter-spacing:1px}button.submit-btn:hover{background-color:#bfa030}.audio-control{position:fixed;bottom:20px;right:20px;background:#fff;padding:10px;border-radius:50%;box-shadow:0 2px 10px #0003;cursor:pointer;z-index:100;border:none}.section-divider{display:flex;align-items:center;justify-content:center;gap:1rem;margin:4rem 0;width:100%}.section-divider .line{height:1px;background-color:var(--gold);width:80px;opacity:.4}.section-divider .icon{color:var(--gold);font-size:1.2rem;opacity:.8}footer{padding:120px 20px;text-align:center;background:var(--gold);color:var(--cream);position:relative;overflow:hidden}.footer-content{position:relative;z-index:2}.heart-container{margin-bottom:20px;display:flex;justify-content:center}.heart-stroke{width:80px;height:80px;fill:none;stroke:var(--cream);stroke-width:2;stroke-linecap:round;stroke-dasharray:300;stroke-dashoffset:300;filter:drop-shadow(0 0 5px rgba(255,255,255,.3))}.revealed .heart-stroke{animation:draw-heart 3s ease-in-out forwards}@keyframes draw-heart{to{stroke-dashoffset:0}}footer p{font-family:var(--font-body);font-size:1rem;letter-spacing:2px;text-transform:uppercase;margin:0;opacity:.9}footer .names{display:block;font-family:var(--font-heading);font-size:3rem;margin-top:10px;text-transform:none;letter-spacing:0}footer:before{content:"";position:absolute;top:0;left:0;right:0;height:100%;background:url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 86c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm66-3c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895-2 2 2zm-46-45c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm54 54c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM57 7c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm-8 48c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM25 30c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm60 17c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM21 46c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM44 71c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm52-14c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23ffffff' fill-opacity='0.05' fill-rule='evenodd'/%3E%3C/svg%3E");opacity:.5}.timeline{max-width:600px;margin:40px auto 0;text-align:left;padding:0 10px}.timeline-item{display:flex;gap:20px;margin-bottom:40px;position:relative}.timeline-item:not(:last-child):after{content:"";position:absolute;left:22px;top:50px;bottom:-30px;width:2px;background:var(--gold);opacity:.15}.timeline-icon{width:46px;height:46px;border-radius:50%;background:#fff;border:2px solid rgba(212,175,55,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 10px #0000000d;color:var(--gold);z-index:1}.timeline-icon svg{width:22px;height:22px}.timeline-content{padding-top:2px}.timeline-header{display:flex;align-items:baseline;gap:12px;margin-bottom:4px}.timeline-time{display:inline-block;background:var(--text-dark);color:var(--cream);padding:2px 8px;border-radius:4px;font-size:.75rem;font-family:var(--font-subheading);font-weight:700}.timeline-title{font-family:var(--font-subheading);font-size:1.2rem;color:var(--text-dark);margin:0;letter-spacing:1px}.timeline-description{font-family:var(--font-body);font-size:.95rem;color:#666;margin:0;line-height:1.4}
