: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}.rsvp-success{display:none;background:#fff;border-radius:10px;padding:36px 40px;box-shadow:0 5px 15px #0000000d}.rsvp-success.show{display:block}.rsvp-success-title{font-family:var(--font-subheading);font-size:1.15rem;letter-spacing:.5px;color:var(--text-dark);margin-bottom:24px}.rsvp-success-sub{margin-top:20px;font-size:.88rem;color:#999;font-style:italic}.rsvp-summary{display:flex;flex-direction:column;gap:12px;border-top:1px solid #f0ede6;padding-top:20px}.rsvp-summary-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.rsvp-summary-row.hidden{display:none}.rsvp-summary-label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#aaa;white-space:nowrap}.rsvp-summary-value{font-size:.95rem;color:var(--text-dark);text-align:right}.rsvp-form.done{display:none}.rsvp-error{color:#c0392b;font-size:.9rem;margin-bottom:12px;min-height:1.2em}.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}.admin-layout{min-height:100vh;background:var(--cream);font-family:var(--font-body);color:var(--text-dark)}.admin-layout .admin-header{background:var(--gold);padding:22px 32px}.admin-layout .admin-header-inner{max-width:1040px;margin:0 auto}.admin-layout .admin-title{font-family:var(--font-subheading);color:#fff;font-size:1.35rem;font-weight:600;letter-spacing:1px}.admin-layout .admin-subtitle{color:#ffffffd1;font-size:.85rem;margin-top:3px}.admin-layout .admin-login-section{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 78px);padding:40px 20px}.admin-layout .admin-login-section.hidden{display:none}.admin-layout .admin-login-box{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;padding:40px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:12px}.admin-layout .admin-login-title{font-family:var(--font-subheading);font-size:1.1rem;letter-spacing:1px;margin-bottom:4px}.admin-layout .admin-label{font-size:.85rem;font-weight:700}.admin-layout .admin-input{width:100%;padding:10px 14px;border:1px solid #ddd;border-radius:6px;font-family:var(--font-body);font-size:1rem;box-sizing:border-box}.admin-layout .admin-input:focus{outline:none;border-color:var(--gold)}.admin-layout .admin-login-error{color:#c0392b;font-size:.85rem;min-height:1em}.admin-layout .admin-btn{background:var(--gold);color:#fff;border:none;padding:10px 22px;border-radius:6px;font-family:var(--font-subheading);font-size:.88rem;letter-spacing:1px;cursor:pointer;transition:background .2s}.admin-layout .admin-btn:hover{background:#bfa030}.admin-layout .admin-btn:disabled{opacity:.55;cursor:not-allowed}.admin-layout .admin-btn-outline{background:transparent;color:var(--gold);border:1px solid var(--gold)}.admin-layout .admin-btn-outline:hover{background:#d4af371a}.admin-layout .admin-dashboard{display:none}.admin-layout .admin-dashboard.visible{display:block}.admin-layout .admin-dashboard-inner{max-width:1040px;margin:0 auto;padding:40px 24px}.admin-layout .admin-stats{display:flex;gap:20px;margin-bottom:36px;flex-wrap:wrap}.admin-layout .admin-stat-card{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000000f;padding:20px 28px;flex:1;min-width:130px}.admin-layout .admin-stat-value{font-family:var(--font-subheading);font-size:2rem;color:var(--gold);font-weight:600}.admin-layout .admin-stat-label{font-size:.78rem;text-transform:uppercase;letter-spacing:1px;color:#999;margin-top:4px}.admin-layout .admin-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:18px}.admin-layout .admin-toolbar-title{font-family:var(--font-subheading);font-size:.95rem;letter-spacing:1px}.admin-layout .admin-toolbar-actions{display:flex;gap:8px}.admin-layout .admin-table-wrap{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000000f;overflow:auto}.admin-layout .admin-table{width:100%;border-collapse:collapse;font-size:.92rem}.admin-layout .admin-table thead{background:var(--gold);color:#fff}.admin-layout .admin-table thead th{padding:12px 16px;text-align:left;font-family:var(--font-subheading);font-weight:400;letter-spacing:.5px;font-size:.8rem;white-space:nowrap}.admin-layout .admin-table tbody tr:nth-child(2n){background:#faf9f6}.admin-layout .admin-table tbody tr:hover{background:#d4af3712}.admin-layout .admin-table tbody td{padding:11px 16px;border-bottom:1px solid #f0ede6;vertical-align:top}.admin-layout .admin-table-empty{text-align:center;padding:50px 20px;color:#bbb;font-style:italic}.admin-layout .admin-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.77rem;font-weight:700}.admin-layout .admin-badge-bus{background:#d4af3726;color:#9a7a10}.admin-layout .admin-badge-no{background:#f0f0f0;color:#999}
