:root{--black: #1a1a1a;--charcoal: #2d2d2d;--dark-gray: #4a4a4a;--gray: #888;--light-gray: #bbb;--silver: #e5e5e5;--cream: #f9f7f4;--warm-white: #fdfcfa;--white: #fff;--gold: #c6a962;--gold-dark: #a8894a;--sage: #a8b5a0;--font-display: "Cinzel", serif;--font-body: "Cormorant Garamond", Georgia, serif;--ease: cubic-bezier(.25, .46, .45, .94);--ease-out: cubic-bezier(.16, 1, .3, 1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--cream);color:var(--charcoal);line-height:1.8;font-weight:300;overflow-x:hidden;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--charcoal)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:var(--gold)}::selection{background:var(--gold);color:var(--white)}@keyframes fadeUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;font-family:var(--font-body);font-size:1.2rem;color:var(--gray);font-style:italic}.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.5rem 3rem;display:flex;justify-content:center;align-items:center;transition:all .4s var(--ease)}.nav.scrolled{background:#fdfcfaf2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px #0000000a}.nav-links{display:flex;gap:3rem;list-style:none}.nav-link{font-family:var(--font-display);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--charcoal);cursor:pointer;position:relative;padding:.5rem 0;transition:color .3s var(--ease)}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease-out)}.nav-link:hover{color:var(--gold-dark)}.nav-link:hover:after{transform:scaleX(1);transform-origin:left}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(180deg,var(--warm-white) 0%,var(--cream) 100%);position:relative;overflow:hidden}.hero-ornament-top{position:absolute;top:0;left:50%;transform:translate(-50%);width:1px;height:100px;background:linear-gradient(to bottom,var(--gold),transparent);opacity:.5}.hero-content{text-align:center;padding:2rem}.hero-date{font-family:var(--font-display);font-size:.75rem;letter-spacing:.5em;color:var(--gold);margin-bottom:2.5rem;animation:fadeUp .8s var(--ease-out) .2s both}.hero-names{font-size:clamp(3.5rem,12vw,9rem);font-weight:400;letter-spacing:.08em;line-height:1;color:var(--charcoal);animation:fadeUp 1s var(--ease-out) .4s both}.hero-amp{display:block;font-family:var(--font-body);font-size:.22em;font-style:italic;font-weight:300;letter-spacing:.3em;color:var(--gold);margin:.6em 0;animation:fadeUp 1s var(--ease-out) .5s both}.hero-tagline{font-family:var(--font-body);font-size:1.2rem;font-style:italic;font-weight:300;color:var(--gray);margin-top:2.5rem;animation:fadeUp .8s var(--ease-out) .7s both}.hero-divider{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:3rem;animation:fadeUp .8s var(--ease-out) .9s both}.hero-line{width:50px;height:1px;background:var(--silver)}.hero-diamond{width:6px;height:6px;background:var(--gold);transform:rotate(45deg)}.hero-scroll{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);font-family:var(--font-display);font-size:.6rem;letter-spacing:.25em;color:var(--light-gray);cursor:pointer;animation:fadeIn .8s var(--ease-out) 1.2s both,float 3s ease-in-out infinite 2s;transition:color .3s var(--ease)}.hero-scroll:hover{color:var(--gold)}.intro-label{font-family:var(--font-display);font-size:.65rem;letter-spacing:.35em;color:var(--gold);margin-bottom:1.5rem}.intro-text{font-size:1.5rem;font-weight:300;font-style:italic;line-height:2;color:var(--dark-gray)}.intro-line{width:50px;height:1px;background:var(--gold);margin:2.5rem auto}.details-section{padding:6rem 2rem 8rem;background:var(--cream)}.section-header{text-align:center;margin-bottom:4rem}.section-label{font-family:var(--font-display);font-size:.65rem;letter-spacing:.35em;color:var(--gold);margin-bottom:1rem;display:block}.section-title{font-size:clamp(1.8rem,4vw,2.5rem);font-weight:400}.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1100px;margin:0 auto}.detail-card{background:var(--white);padding:2.5rem 2rem;text-align:center;border-radius:2px;transition:all .4s var(--ease);border:1px solid transparent}.detail-card:hover{border-color:var(--gold);transform:translateY(-4px);box-shadow:0 20px 40px #0000000a}.detail-icon{font-size:1.8rem;margin-bottom:1.2rem;display:block}.detail-card h3{font-size:.75rem;letter-spacing:.2em;margin-bottom:.8rem;color:var(--charcoal)}.detail-card p{font-size:1.05rem;color:var(--gray);line-height:1.7}.detail-highlight{display:block;font-style:italic;color:var(--gold-dark);margin-top:.4rem;font-size:1rem}.image-divider{height:55vh;position:relative;overflow:hidden}.image-divider:before,.image-divider:after{content:"";position:absolute;left:0;right:0;height:120px;z-index:1}.image-divider:before{top:0;background:linear-gradient(to bottom,var(--cream),transparent)}.image-divider:after{bottom:0;background:linear-gradient(to top,var(--white),transparent)}.timeline-section{padding:6rem 2rem 8rem;background:var(--white)}.timeline{max-width:700px;margin:0 auto}.timeline-item{display:flex;align-items:flex-start;gap:2rem;padding:1.8rem 0;border-bottom:1px solid var(--silver);transition:all .3s var(--ease)}.timeline-item:last-child{border-bottom:none}.timeline-item:hover{padding-left:.5rem}.timeline-item:hover .timeline-time{color:var(--gold)}.timeline-time{min-width:70px;font-family:var(--font-display);font-size:.85rem;letter-spacing:.1em;color:var(--gold-dark);padding-top:.15rem;transition:color .3s var(--ease)}.timeline-content h3{font-size:.8rem;letter-spacing:.15em;margin-bottom:.2rem}.timeline-content p{font-size:1.05rem;color:var(--gray);font-style:italic}.rsvp-section{padding:6rem 2rem 8rem;background:var(--cream)}.rsvp-container{max-width:580px;margin:0 auto}.form-section{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--silver)}.form-section:last-of-type{border-bottom:none;margin-bottom:1.5rem}.form-section-title{font-family:var(--font-display);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dark);margin-bottom:1.5rem;font-weight:400}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-hint{display:block;font-size:.85rem;font-style:italic;color:var(--gray);margin-top:.5rem}.rsvp-intro{text-align:center;font-size:1.1rem;font-style:italic;color:var(--gray);margin-bottom:2.5rem}.rsvp-intro strong{color:var(--gold-dark);font-weight:400}.form-group{margin-bottom:1.8rem}.form-label{display:block;font-family:var(--font-display);font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:var(--dark-gray);margin-bottom:.6rem}.form-input,.form-select,.form-textarea{width:100%;padding:1rem;font-family:var(--font-body);font-size:1.1rem;font-style:italic;border:1px solid var(--silver);background:var(--white);color:var(--charcoal);border-radius:2px;transition:border-color .3s var(--ease)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--gold)}.form-input::placeholder,.form-textarea::placeholder{color:var(--light-gray)}.form-select{cursor:pointer}.form-textarea{min-height:80px;resize:vertical}.form-radio-group{display:flex;gap:1rem}.form-radio{flex:1;padding:1rem;border:1px solid var(--silver);background:var(--white);text-align:center;cursor:pointer;font-size:1rem;font-style:italic;border-radius:2px;transition:all .3s var(--ease)}.form-radio:hover{border-color:var(--gold)}.form-radio.selected{background:var(--gold);border-color:var(--gold);color:var(--white)}.form-radio input{display:none}.btn-submit{width:100%;padding:1.2rem;margin-top:.5rem;font-family:var(--font-display);font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;background:var(--charcoal);color:var(--white);border-radius:2px;transition:all .4s var(--ease)}.btn-submit:hover{background:var(--gold)}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.success-message{text-align:center;padding:2rem 0}.success-icon{font-size:2.5rem;color:var(--gold);margin-bottom:1rem;display:block}.success-message h3{font-size:1.3rem;margin-bottom:.8rem}.success-message p{font-size:1.1rem;font-style:italic;color:var(--gray)}.footer{padding:4rem 2rem;background:var(--charcoal);text-align:center;color:var(--white)}.footer-names{font-family:var(--font-display);font-size:1.2rem;letter-spacing:.3em;margin-bottom:.8rem}.footer-heart{color:var(--gold);font-size:1rem;margin:1rem 0;animation:pulse 2s ease-in-out infinite}.footer-date{font-size:.7rem;letter-spacing:.25em;color:var(--gray)}@media(max-width:900px){.details-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.nav{padding:1rem 1.5rem}.nav-links{gap:1.5rem}.nav-link{font-size:.55rem;letter-spacing:.15em}.details-grid{grid-template-columns:1fr;gap:1rem}.detail-card{padding:2rem 1.5rem}.timeline-item{gap:1.5rem}.timeline-time{min-width:55px;font-size:.75rem}.form-radio-group{flex-direction:column}.form-row{grid-template-columns:1fr}.image-divider{height:40vh}.intro-section,.details-section,.timeline-section,.rsvp-section{padding:5rem 1.5rem}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--warm-white) 0%,var(--cream) 100%);padding:2rem;position:relative}.login-lang-toggle{position:absolute;top:1.5rem;right:1.5rem;background:var(--white);border:1px solid var(--silver);padding:.5rem 1rem;font-size:.85rem;cursor:pointer;border-radius:4px;transition:all .3s ease;display:flex;align-items:center;gap:.3rem}.login-lang-toggle:hover{border-color:var(--gold);color:var(--gold)}.login-container{width:100%;max-width:420px}.login-header{text-align:center;margin-bottom:3rem}.login-date{font-family:var(--font-display);font-size:.7rem;letter-spacing:.4em;color:var(--gold);margin-bottom:1rem}.login-names{font-family:var(--font-display);font-size:3rem;font-weight:400;letter-spacing:.1em;color:var(--charcoal);margin-bottom:.5rem}.login-tagline{font-family:var(--font-body);font-size:1.1rem;font-style:italic;color:var(--gray)}.login-form{background:var(--white);padding:2.5rem;border-radius:4px;box-shadow:0 20px 60px #0000000f}.login-form h2{font-family:var(--font-display);font-size:1.2rem;letter-spacing:.15em;text-transform:uppercase;text-align:center;margin-bottom:.5rem}.login-hint{text-align:center;font-size:.95rem;color:var(--gray);font-style:italic;margin-bottom:2rem}.login-error{background:#fef2f2;color:#b91c1c;padding:.8rem 1rem;border-radius:4px;font-size:.9rem;margin-bottom:1.5rem;text-align:center}.login-field{margin-bottom:1.5rem}.login-field label{display:block;font-family:var(--font-display);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dark-gray);margin-bottom:.5rem}.login-field input{width:100%;padding:1rem;font-family:var(--font-body);font-size:1.1rem;border:1px solid var(--silver);border-radius:4px;background:var(--cream);transition:all .3s ease}.login-field input:focus{outline:none;border-color:var(--gold);background:var(--white)}.login-btn{width:100%;padding:1.2rem;font-family:var(--font-display);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;background:var(--charcoal);color:var(--white);border:none;border-radius:4px;cursor:pointer;transition:all .3s ease;margin-top:.5rem}.login-btn:hover{background:var(--gold)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-footer{text-align:center;margin-top:2rem;font-size:.85rem;color:var(--gray);font-style:italic}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#1a1a1a,#2d2d2d,#1a1a1a)}.hero-bg{position:absolute;inset:0;overflow:hidden}.hero-pattern{position:absolute;inset:0;background-image:radial-gradient(circle at 20% 80%,rgba(201,168,124,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(201,168,124,.08) 0%,transparent 40%),radial-gradient(circle at 50% 50%,rgba(255,255,255,.02) 0%,transparent 60%)}.hero-decorations{position:absolute;inset:0;pointer-events:none}.hero-decoration{position:absolute;color:var(--gold);opacity:.15;font-size:2rem;animation:float 6s ease-in-out infinite}.hero-decoration-1{top:15%;left:10%;animation-delay:0s}.hero-decoration-2{top:20%;right:15%;animation-delay:1.5s}.hero-decoration-3{bottom:25%;left:15%;animation-delay:3s;font-size:1.5rem}.hero-decoration-4{bottom:20%;right:10%;animation-delay:4.5s;font-size:1.5rem}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(5deg)}}.hero-content{position:relative;z-index:1;text-align:center;padding:2rem;color:#fff}.hero-welcome-badge,.hero-date-day,.hero-and,.hero-ornament-icon{color:var(--gold)!important}.hero-welcome-badge{display:inline-block;background:#c9a87c33;border:1px solid rgba(201,168,124,.4);padding:.5rem 1.5rem;border-radius:30px;font-size:.85rem;color:var(--gold);margin-bottom:2rem;animation:fadeInUp .8s ease-out .1s both}.hero-date-badge{display:flex;flex-direction:column;align-items:center;margin-bottom:2rem;animation:fadeInUp .8s ease-out .2s both}.hero-date-day{font-family:var(--font-display);font-size:5rem;font-weight:400;line-height:1;color:var(--gold)}.hero-date-month{font-family:var(--font-display);font-size:1.5rem;letter-spacing:.3em;text-transform:uppercase;margin-top:.5rem}.hero-date-year{font-size:.9rem;letter-spacing:.5em;opacity:.6;margin-top:.3rem}.hero-names-wrapper{display:flex;align-items:center;justify-content:center;gap:2rem;margin-bottom:1.5rem;animation:fadeInUp .8s ease-out .4s both}.hero-name-line{width:80px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.hero-names-wrapper .hero-name-line:last-child{background:linear-gradient(90deg,var(--gold),transparent)}.hero-names{display:flex;align-items:center;gap:.5rem}.hero-name{font-family:var(--font-display);font-size:clamp(3rem,10vw,6rem);font-weight:400;letter-spacing:.05em;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.3)}.hero-and{font-family:var(--font-body);font-size:clamp(2rem,6vw,4rem);font-style:italic;color:var(--gold);margin:0 .3rem}.hero-subtitle{font-family:var(--font-body);font-size:1.2rem;font-style:italic;opacity:.8;margin-bottom:2rem;animation:fadeInUp .8s ease-out .5s both}.hero-ornament{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:2rem;animation:fadeInUp .8s ease-out .6s both}.hero-ornament span:first-child,.hero-ornament span:last-child{width:40px;height:1px;background:#ffffff4d}.hero-ornament-icon{color:var(--gold);font-size:1.5rem;animation:pulse 2s ease-in-out infinite}.hero-location{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.9rem;opacity:.7;animation:fadeInUp .8s ease-out .7s both}.hero-scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;color:#ffffff80;transition:color .3s ease;animation:fadeIn 1s ease-out 1s both}.hero-scroll-indicator:hover{color:var(--gold)}.hero-scroll-text{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}.hero-scroll-arrow{font-size:1.2rem;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}.intro-section{padding:8rem 2rem;background:var(--white);text-align:center}.intro-content{max-width:650px;margin:0 auto}.intro-icon{font-size:3rem;margin-bottom:1.5rem}.intro-label{font-family:var(--font-display);font-size:.7rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:1.5rem}.intro-text{font-size:1.4rem;font-weight:300;font-style:italic;line-height:2;color:var(--dark-gray);margin-bottom:2rem}.intro-signature{font-family:var(--font-display);font-size:1.5rem;color:var(--gold)}.image-divider{height:60vh;position:relative;overflow:hidden}.image-divider img{width:100%;height:100%;object-fit:cover}.image-overlay{position:absolute;inset:0;background:#0006;display:flex;align-items:center;justify-content:center}.image-quote{font-family:var(--font-display);font-size:clamp(1.2rem,3vw,2rem);font-style:italic;color:#fff;text-align:center;max-width:600px;padding:2rem;line-height:1.6}.timeline-section{padding:8rem 2rem;background:linear-gradient(180deg,var(--cream) 0%,var(--white) 100%)}.timeline-wrapper{max-width:600px;margin:0 auto;position:relative}.timeline-line{position:absolute;left:35px;top:30px;bottom:30px;width:2px;background:linear-gradient(to bottom,transparent,var(--gold),transparent)}.timeline{display:flex;flex-direction:column;gap:2rem}.timeline-item{display:flex;align-items:flex-start;gap:1.5rem;position:relative;animation:fadeInUp .6s ease-out both}.timeline-marker{flex-shrink:0;z-index:2}.timeline-icon{display:flex;align-items:center;justify-content:center;width:70px;height:70px;background:#fff;border:3px solid var(--gold);border-radius:50%;font-size:1.8rem;box-shadow:0 4px 20px #0000001a;transition:all .3s ease}.timeline-item:hover .timeline-icon{transform:scale(1.1);background:var(--gold)}.timeline-card{flex:1;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 4px 20px #0000000d;transition:all .3s ease;border:1px solid rgba(0,0,0,.05)}.timeline-item:hover .timeline-card{transform:translateY(-5px);box-shadow:0 10px 40px #0000001a}.timeline-time{display:inline-block;font-family:var(--font-display);font-size:.85rem;letter-spacing:.1em;color:#fff;background:var(--gold);padding:.4rem 1.2rem;border-radius:20px;margin-bottom:.8rem}.timeline-title{font-family:var(--font-display);font-size:1.3rem;letter-spacing:.05em;margin-bottom:.3rem;color:var(--charcoal)}.timeline-desc{font-size:.95rem;color:var(--gray);font-style:italic}.timeline-placeholder{text-align:center;padding:4rem 2rem;background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000000d;border:2px dashed var(--gold)}.timeline-placeholder-icon{font-size:4rem;display:block;margin-bottom:1.5rem}.timeline-placeholder h3{font-family:var(--font-display);font-size:1.5rem;color:var(--charcoal);margin-bottom:.5rem}.timeline-placeholder p{color:var(--gray);font-style:italic}.nav-actions{position:absolute;right:2rem;display:flex;align-items:center;gap:.8rem}.lang-toggle{font-size:1.2rem;background:none;border:none;cursor:pointer;padding:.3rem;transition:transform .3s ease}.lang-toggle:hover{transform:scale(1.2)}.nav-logout{font-family:var(--font-display);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;background:none;border:1px solid var(--silver);color:var(--gray);padding:.5rem 1rem;cursor:pointer;transition:all .3s ease;border-radius:2px}.nav-logout:hover{border-color:var(--gold);color:var(--gold)}.rsvp-status{display:flex;align-items:center;gap:1rem;background:var(--white);padding:1.2rem 1.5rem;border-radius:8px;margin-bottom:2rem;border-left:4px solid var(--gold);box-shadow:0 2px 10px #0000000d}.rsvp-status-icon{font-size:1.5rem;color:var(--gold)}.rsvp-status p{font-size:.95rem;color:var(--dark-gray);margin:0}.children-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:.5rem}.children-input{text-align:center}.children-input label{display:block;font-size:.8rem;color:var(--gray);margin-bottom:.5rem}.children-input input{width:100%;padding:.8rem;text-align:center;font-family:var(--font-body);font-size:1.2rem;border:1px solid var(--silver);border-radius:4px;background:var(--white)}.children-input input:focus{outline:none;border-color:var(--gold)}.overnight-info{display:flex;gap:1rem;background:linear-gradient(135deg,#fef9e7,#fdf6e3);border:1px solid var(--gold);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.overnight-info-icon{font-size:2rem;flex-shrink:0}.overnight-info strong{display:block;font-family:var(--font-display);font-size:.9rem;letter-spacing:.05em;color:var(--charcoal);margin-bottom:.5rem}.overnight-info p{font-size:.95rem;color:var(--dark-gray);line-height:1.6;margin:0}.footer{padding:5rem 2rem;background:var(--charcoal);color:#fff;text-align:center}.footer-content{max-width:400px;margin:0 auto}.footer-names{font-family:var(--font-display);font-size:2.5rem;margin-bottom:.5rem;background:linear-gradient(135deg,var(--gold),#e8d5b7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.footer-heart{font-size:1.5rem;color:var(--gold);margin:1rem 0;animation:pulse 2s ease-in-out infinite}.footer-date{font-size:1rem;letter-spacing:.1em;margin-bottom:.3rem}.footer-location{font-size:.85rem;opacity:.6}.form-textarea.small{min-height:60px}@media(max-width:768px){.hero-names-wrapper{flex-direction:column;gap:1rem}.hero-name-line{width:60px;display:none}.hero-names{flex-direction:column;gap:0}.hero-and{margin:.2rem 0}.nav-logout{right:1rem;padding:.4rem .8rem;font-size:.55rem}.timeline-line{left:25px}.timeline-icon{width:50px;height:50px;font-size:1.2rem}.timeline-item{gap:1rem}.timeline-card{padding:1rem 1.5rem}.children-grid{grid-template-columns:1fr;gap:.8rem}.children-input{display:flex;align-items:center;gap:1rem}.children-input label{margin-bottom:0;min-width:100px;text-align:left}.children-input input{max-width:80px}.overnight-info,.rsvp-status{flex-direction:column;text-align:center}.image-divider{height:40vh}.countdown{flex-wrap:wrap;gap:.5rem}.countdown-value{font-size:1.5rem}.countdown-label{font-size:.6rem}.map-container{flex-direction:column}.map-info{padding:1.5rem}.map-embed{height:250px}}.countdown{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:2rem;animation:fadeInUp .8s ease-out .8s both}.countdown-item{display:flex;flex-direction:column;align-items:center;padding:.8rem 1rem;background:#ffffff0d;border:1px solid rgba(201,168,124,.3);border-radius:8px;min-width:70px}.countdown-value{font-family:var(--font-display);font-size:2rem;font-weight:500;color:var(--gold);line-height:1}.countdown-label{font-family:var(--font-body);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#fff9;margin-top:.3rem}.countdown-separator{font-size:1.5rem;color:var(--gold);opacity:.5;margin:0 .2rem}.calendar-btn{margin-top:1rem;padding:.6rem 1rem;font-family:var(--font-display);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;background:transparent;border:1px solid var(--gold);color:var(--gold);border-radius:4px;cursor:pointer;transition:all .3s ease}.calendar-btn:hover{background:var(--gold);color:var(--charcoal)}.map-section{padding:6rem 2rem;background:var(--cream)}.map-container{max-width:1000px;margin:0 auto;display:flex;gap:2rem;background:var(--white);border-radius:12px;overflow:hidden;box-shadow:0 10px 40px #00000014}.map-info{flex:1;padding:2.5rem;display:flex;flex-direction:column;justify-content:center}.map-info h3{font-family:var(--font-display);font-size:1.5rem;color:var(--charcoal);margin-bottom:.5rem}.map-info p{color:var(--gray);font-style:italic;margin-bottom:1.5rem}.map-directions-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.5rem;font-family:var(--font-display);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;background:var(--charcoal);color:var(--white);border-radius:4px;transition:all .3s ease}.map-directions-btn:hover{background:var(--gold)}.map-embed{flex:1.5;min-height:300px}.map-embed iframe{width:100%;height:100%}.gallery-page{min-height:100vh;background:linear-gradient(135deg,var(--cream) 0%,var(--white) 100%);padding:5rem 2rem 2rem}.gallery-nav{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 20px #00000014;z-index:100}.back-btn{background:transparent;border:none;font-size:1rem;color:var(--charcoal);cursor:pointer;padding:.5rem 1rem;border-radius:8px;transition:all .3s ease}.back-btn:hover{background:var(--cream);color:var(--gold)}.gallery-nav .nav-actions{display:flex;gap:.8rem;align-items:center}.gallery-nav .lang-toggle{background:transparent;border:1px solid var(--silver);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.gallery-nav .lang-toggle:hover{border-color:var(--gold)}.gallery-nav .nav-logout{background:var(--charcoal);color:var(--white);border:none;padding:.5rem 1rem;font-size:.85rem;cursor:pointer;border-radius:6px;transition:all .3s ease}.gallery-nav .nav-logout:hover{background:var(--gold)}.gallery-header{text-align:center;margin-bottom:2rem;padding-top:1rem}.gallery-header h1{font-family:var(--font-display);font-size:2.5rem;color:var(--charcoal);margin-bottom:.5rem}.gallery-header p{color:var(--dark-gray);font-size:1.1rem}.upload-area{max-width:600px;margin:0 auto 3rem;padding:2.5rem;border:2px dashed var(--silver);border-radius:16px;text-align:center;cursor:pointer;transition:all .3s ease;background:var(--white)}.upload-area:hover{border-color:var(--gold);background:#d4af370d}.upload-area.drag-over{border-color:var(--gold);background:#d4af371a;transform:scale(1.02)}.upload-area.uploading{pointer-events:none;opacity:.8}.upload-icon{font-size:3rem;margin-bottom:1rem;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.upload-text{font-size:1.1rem;color:var(--charcoal);margin-bottom:.5rem}.upload-hint{font-size:.85rem;color:var(--dark-gray)}.upload-spinner{display:flex;flex-direction:column;align-items:center;gap:1rem}.spinner{width:40px;height:40px;border:3px solid var(--silver);border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.photo-grid{columns:4;column-gap:1rem;max-width:1400px;margin:0 auto}@media(max-width:1200px){.photo-grid{columns:3}}@media(max-width:768px){.photo-grid{columns:2}}@media(max-width:480px){.photo-grid{columns:1}}.photo-card{break-inside:avoid;margin-bottom:1rem;border-radius:12px;overflow:hidden;background:var(--white);box-shadow:0 4px 20px #00000014;transition:all .3s ease;cursor:pointer;animation:fadeInUp .5s ease forwards;opacity:0}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.photo-card:hover{transform:translateY(-5px);box-shadow:0 12px 40px #00000026}.photo-wrapper{position:relative;overflow:hidden}.photo-wrapper img{width:100%;display:block;transition:transform .5s ease}.photo-card:hover .photo-wrapper img{transform:scale(1.05)}.photo-overlay{position:absolute;bottom:0;left:0;right:0;padding:1rem;background:linear-gradient(transparent,#0009);opacity:0;transition:opacity .3s ease;display:flex;justify-content:flex-end}.photo-card:hover .photo-overlay{opacity:1}.vote-btn{display:flex;align-items:center;gap:.4rem;background:#ffffffe6;border:none;padding:.5rem .8rem;border-radius:20px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.vote-btn:hover{transform:scale(1.1);background:var(--white)}.vote-btn.voted{background:#ff4757;color:#fff}.vote-btn .heart{font-size:1rem;transition:transform .2s ease}.vote-btn:hover .heart{transform:scale(1.2)}.vote-btn.voted .heart{animation:heartPop .3s ease}@keyframes heartPop{0%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}.vote-count{font-weight:600}.photo-caption{padding:.8rem 1rem 0;margin:0;font-size:.9rem;color:var(--charcoal);line-height:1.4}.photo-author{padding:.5rem 1rem .8rem;margin:0;font-size:.75rem;color:var(--dark-gray)}.gallery-empty{text-align:center;padding:4rem 2rem;color:var(--dark-gray)}.empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.gallery-empty h3{font-family:var(--font-display);font-size:1.5rem;color:var(--charcoal);margin-bottom:.5rem}.gallery-loading{display:flex;justify-content:center;padding:4rem}.lightbox{position:fixed;inset:0;background:#000000f2;z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-content{max-width:90vw;max-height:90vh;background:var(--white);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;animation:scaleIn .3s ease}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.lightbox-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;background:var(--white);border:none;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s ease;z-index:10}.lightbox-close:hover{transform:scale(1.1)}.lightbox-content img{max-width:100%;max-height:70vh;object-fit:contain}.lightbox-info{padding:1.5rem;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem}.lightbox-meta{flex:1}.lightbox-caption{font-size:1.1rem;color:var(--charcoal);margin:0 0 .5rem}.lightbox-author{font-size:.9rem;color:var(--dark-gray);margin:0 0 .25rem}.lightbox-date{font-size:.8rem;color:var(--silver);margin:0}.lightbox-actions{display:flex;gap:.8rem;align-items:center}.vote-btn-large{display:flex;align-items:center;gap:.5rem;background:var(--cream);border:2px solid var(--silver);padding:.8rem 1.2rem;border-radius:25px;cursor:pointer;font-size:1rem;transition:all .2s ease}.vote-btn-large:hover{border-color:var(--gold);transform:scale(1.05)}.vote-btn-large.voted{background:#ff4757;border-color:#ff4757;color:#fff}.delete-btn{background:transparent;border:2px solid #ff4757;color:#ff4757;padding:.8rem 1.2rem;border-radius:25px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.delete-btn:hover{background:#ff4757;color:#fff}@media(max-width:768px){.gallery-page{padding:1rem}.gallery-header h1{font-size:2rem}.upload-area{padding:1.5rem}.lightbox{padding:0}.lightbox-content{border-radius:0;max-width:100vw;max-height:100vh}.lightbox-info{flex-direction:column;align-items:flex-start}.lightbox-actions{width:100%;justify-content:space-between}}.admin-page{min-height:100vh;background:#f5f5f5}.admin-loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.2rem;color:var(--gray)}.admin-header{background:var(--charcoal);color:var(--white);padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.admin-header-left h1{font-family:var(--font-display);font-size:1.2rem;letter-spacing:.15em;margin-bottom:.2rem}.admin-header-left span{font-size:.75rem;color:var(--gold)}.admin-header-right{display:flex;align-items:center;gap:1.5rem}.admin-user{font-size:.85rem;color:var(--light-gray)}.admin-header-right button{background:transparent;border:1px solid var(--gray);color:var(--light-gray);padding:.5rem 1rem;font-size:.75rem;cursor:pointer;transition:all .3s ease}.admin-header-right button:hover{border-color:var(--gold);color:var(--gold)}.admin-nav{background:var(--white);padding:0 2rem;border-bottom:1px solid #e0e0e0;display:flex;gap:.5rem}.admin-nav button{background:none;border:none;padding:1rem 1.5rem;font-size:.85rem;color:var(--gray);cursor:pointer;position:relative;transition:all .3s ease}.admin-nav button:hover{color:var(--charcoal)}.admin-nav button.active{color:var(--gold)}.admin-nav button.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--gold)}.admin-content{padding:2rem;max-width:1400px;margin:0 auto}.dashboard h2,.guests-management h2,.responses h2{font-family:var(--font-display);font-size:1.5rem;letter-spacing:.1em;margin-bottom:2rem;color:var(--charcoal)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:2rem}.stat-card{background:var(--white);padding:2rem;border-radius:8px;text-align:center;box-shadow:0 2px 8px #0000000a;border-left:4px solid var(--gray)}.stat-card.primary{border-color:var(--gold)}.stat-card.success{border-color:#22c55e}.stat-card.danger{border-color:#ef4444}.stat-card.warning{border-color:#f59e0b}.stat-number{display:block;font-size:3rem;font-weight:600;color:var(--charcoal);line-height:1;margin-bottom:.5rem}.stat-label{font-size:.85rem;color:var(--gray)}.stats-details{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.stats-section{background:var(--white);padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000000a}.stats-section h3{font-family:var(--font-display);font-size:.85rem;letter-spacing:.1em;color:var(--gold);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #eee}.stats-list{display:flex;flex-direction:column;gap:.5rem}.stats-item{display:flex;justify-content:space-between;padding:.5rem 0;font-size:.9rem}.stats-item.highlight{border-top:1px solid #eee;margin-top:.5rem;padding-top:1rem;font-weight:600}.guests-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.guests-header-actions{display:flex;gap:.8rem;align-items:center}.btn-export{background:var(--charcoal);color:var(--white);border:none;padding:.8rem 1.5rem;font-size:.85rem;cursor:pointer;border-radius:4px;transition:all .3s ease}.btn-export:hover{background:var(--dark-gray)}.btn-add{background:var(--gold);color:var(--white);border:none;padding:.8rem 1.5rem;font-size:.85rem;cursor:pointer;border-radius:4px;transition:all .3s ease}.btn-add:hover{background:var(--gold-dark)}.guests-table{width:100%;background:var(--white);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.guests-table th,.guests-table td{padding:1rem;text-align:left;border-bottom:1px solid #eee}.guests-table th{background:#fafafa;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gray)}.guests-table td{font-size:.9rem}.guests-table code{background:#f0f0f0;padding:.2rem .5rem;border-radius:3px;font-size:.85rem}.badge{display:inline-block;padding:.3rem .8rem;border-radius:20px;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.badge.success{background:#dcfce7;color:#166534}.badge.danger{background:#fee2e2;color:#991b1b}.badge.warning{background:#fef3c7;color:#92400e}.btn-small{background:none;border:1px solid #ddd;padding:.4rem .8rem;font-size:.75rem;cursor:pointer;border-radius:3px;margin-right:.5rem;transition:all .3s ease}.btn-small:hover{border-color:var(--gold);color:var(--gold)}.btn-small.danger:hover{border-color:#ef4444;color:#ef4444;background:#fef2f2}.actions-cell{white-space:nowrap}.response-header-actions{display:flex;align-items:center;gap:.5rem}.response-header-actions .badge{margin-left:.5rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--white);padding:2rem;border-radius:8px;width:100%;max-width:450px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0003}.modal.modal-large{max-width:700px}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.modal-field select{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem;background:var(--white)}.modal-field select:focus{outline:none;border-color:var(--gold)}.modal h3{font-family:var(--font-display);font-size:1.2rem;letter-spacing:.1em;margin-bottom:1.5rem}.modal-field{margin-bottom:1rem}.modal-field label{display:block;font-size:.8rem;color:var(--gray);margin-bottom:.4rem}.modal-field input[type=text],.modal-field input[type=email]{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem}.modal-field input:focus{outline:none;border-color:var(--gold)}.modal-field.checkbox label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.modal-field.checkbox input{width:18px;height:18px;accent-color:var(--gold)}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem}.modal-actions button{padding:.8rem 1.5rem;border:1px solid #ddd;background:none;font-size:.85rem;cursor:pointer;border-radius:4px;transition:all .3s ease}.modal-actions button.primary{background:var(--gold);border-color:var(--gold);color:var(--white)}.modal-actions button.primary:hover{background:var(--gold-dark)}.responses-list{display:grid;gap:1rem}.response-card{background:var(--white);border-radius:8px;padding:1.5rem;box-shadow:0 2px 8px #0000000a;border-left:4px solid var(--gray)}.response-card.yes{border-color:#22c55e}.response-card.no{border-color:#ef4444}.response-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.response-header h3{font-family:var(--font-display);font-size:1.1rem;letter-spacing:.05em}.response-details{display:grid;gap:.5rem}.response-row{display:grid;grid-template-columns:150px 1fr;gap:1rem;font-size:.9rem;padding:.3rem 0}.response-label{color:var(--gray)}.response-row.dietary,.response-row.message{background:#f9f9f9;padding:.8rem;margin:.5rem 0;border-radius:4px}.response-row.message span:last-child{font-style:italic}.response-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid #eee;font-size:.8rem;color:var(--gray)}.no-responses,.no-guests{text-align:center;padding:3rem;color:var(--gray);font-style:italic}.no-guests .btn-add{margin-top:1rem}.response-address{color:var(--gray);font-style:normal;display:block;margin-top:.3rem}.modal-field textarea{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem;font-family:inherit;resize:vertical}.modal-field textarea:focus{outline:none;border-color:var(--gold)}@media(max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}.stats-details{grid-template-columns:1fr}}.budget-page,.todos-page{max-width:1000px}.budget-header,.todos-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.budget-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.budget-summary-card{background:var(--white);padding:1.5rem;border-radius:8px;text-align:center;box-shadow:0 2px 8px #0000000a;border-left:4px solid var(--gold)}.budget-summary-card.paid{border-color:#22c55e}.budget-summary-card.remaining{border-color:#f59e0b}.budget-summary-label{display:block;font-size:.8rem;color:var(--gray);margin-bottom:.5rem}.budget-summary-amount{font-size:1.8rem;font-weight:600;color:var(--charcoal)}.budget-categories{display:flex;flex-direction:column;gap:1.5rem}.budget-category{background:var(--white);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.budget-category-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#fafafa;border-bottom:1px solid #eee}.budget-category-header h3{font-size:.9rem;letter-spacing:.05em;color:var(--charcoal)}.budget-category-total{font-weight:600;color:var(--gold)}.budget-items{padding:.5rem 0}.budget-item{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.5rem;border-bottom:1px solid #f0f0f0}.budget-item:last-child{border-bottom:none}.budget-item.paid{background:#f9fdf9}.budget-item.paid .budget-item-desc{text-decoration:line-through;opacity:.6}.budget-item-main{display:flex;align-items:center;gap:1rem;flex:1}.budget-item-status{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.8rem;background:#f0f0f0;color:var(--gray)}.budget-item.paid .budget-item-status{background:#22c55e;color:#fff}.budget-item-info{flex:1}.budget-item-desc{display:block;font-size:.95rem}.budget-item-notes{display:block;color:var(--gray);font-style:italic}.budget-item-amount{font-weight:600;min-width:100px;text-align:right}.budget-item-actions{display:flex;gap:.5rem;margin-left:1rem}.no-budget,.no-todos{text-align:center;padding:3rem;background:var(--white);border-radius:8px}.no-budget .btn-add,.no-todos .btn-add{margin-top:1rem}.todos-list{display:flex;flex-direction:column;gap:.5rem}.todo-item{display:flex;align-items:flex-start;gap:1rem;background:var(--white);padding:1rem 1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000000a;border-left:4px solid var(--gray)}.todo-item.priority-high{border-color:#ef4444}.todo-item.priority-medium{border-color:#f59e0b}.todo-item.priority-low{border-color:#22c55e}.todo-item.completed{opacity:.6;border-color:#ccc}.todo-item.completed .todo-title{text-decoration:line-through}.todo-checkbox{width:24px;height:24px;border:2px solid #ccc;border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;margin-top:2px;transition:all .2s ease}.todo-checkbox:hover{border-color:var(--gold)}.todo-item.completed .todo-checkbox{background:#22c55e;border-color:#22c55e;color:#fff}.todo-content{flex:1}.todo-title{font-weight:500;display:block;margin-bottom:.3rem}.todo-desc{font-size:.9rem;color:var(--gray);margin:0 0 .5rem}.todo-meta{display:flex;gap:1rem;font-size:.8rem}.todo-date{color:var(--gray)}.todo-priority{font-size:.75rem}.todo-actions{display:flex;gap:.5rem}.timetable-page{max-width:1000px}.timetable-admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.timetable-hint{font-size:.9rem;color:var(--gray);margin-bottom:2rem;padding:1rem;background:#fef9e7;border-radius:8px;border-left:4px solid var(--gold)}.timetable-list{display:flex;flex-direction:column;gap:.5rem}.timetable-item{display:flex;align-items:center;gap:1rem;background:var(--white);padding:1rem 1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000000a;border-left:4px solid var(--gold);transition:all .3s ease}.timetable-item:hover{box-shadow:0 4px 16px #00000014}.timetable-item-icon{font-size:1.8rem;width:50px;text-align:center}.timetable-item-time{font-family:var(--font-display);font-size:1.1rem;font-weight:500;color:var(--gold);min-width:60px}.timetable-item-content{flex:1}.timetable-item-title{font-weight:600;font-size:1rem;display:block;color:var(--charcoal)}.timetable-item-desc{font-size:.85rem;color:var(--gray);margin:.2rem 0 0}.timetable-item-order{font-size:.75rem;color:var(--gray);background:#f0f0f0;padding:.3rem .6rem;border-radius:4px}.timetable-item-actions{display:flex;gap:.5rem}.no-timetable{text-align:center;padding:3rem;background:var(--white);border-radius:8px}.no-timetable .btn-add{margin-top:1rem}.modal-grid-small{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.modal-hint{font-size:.8rem;color:var(--gray);margin:.5rem 0 1rem;padding:.8rem;background:#f9f9f9;border-radius:4px}.modal-field input[type=number],.modal-field input[type=time]{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem}.modal-field input[type=number]:focus,.modal-field input[type=time]:focus{outline:none;border-color:var(--gold)}@media(max-width:768px){.admin-header{flex-direction:column;gap:1rem;text-align:center}.stats-grid{grid-template-columns:1fr}.guests-table{display:block;overflow-x:auto}.response-row{grid-template-columns:1fr;gap:.3rem}.budget-summary{grid-template-columns:1fr}.budget-item{flex-direction:column;align-items:flex-start;gap:.5rem}.budget-item-actions{margin-left:0;margin-top:.5rem}.todo-item{flex-direction:column}.todo-actions{margin-top:.5rem}.timetable-item{flex-wrap:wrap}.timetable-item-actions{width:100%;margin-top:.5rem}.modal-grid-small{grid-template-columns:1fr}}
