:root{--blush-pink: #E6B7C1;--rose-smoke: #D9A6A9;--warm-ivory: #FAF7F5;--champagne-gold: #C9A27E;--soft-sage: #D4E4D8;--deep-charcoal: #3A3A3A;--font-display: "Playfair Display", serif;--font-body: "Lora", serif}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow-x:hidden;scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--deep-charcoal);background:var(--warm-ivory);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;min-height:100vh}*:focus-visible{outline:2px solid var(--champagne-gold);outline-offset:4px}@media(min-width:768px){::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--warm-ivory)}::-webkit-scrollbar-thumb{background:var(--rose-smoke);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--blush-pink)}}@media(max-width:768px){input,textarea,select{font-size:max(16px,1em)}}.wedding-nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .4s ease,box-shadow .4s ease}.wedding-nav--scrolled{background:#faf7f5ed;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 24px #d9a6a91f}.nav-inner{max-width:1100px;margin:0 auto;padding:1.2rem 2rem;display:flex;align-items:center;justify-content:space-between}.nav-monogram{font-family:var(--font-display);font-size:1.1rem;font-style:italic;color:var(--champagne-gold);letter-spacing:.2em;background:none;border:none;cursor:pointer;padding:0;transition:opacity .25s ease;flex-shrink:0;opacity:1}.nav-monogram:hover{opacity:.75}.nav-links{display:flex;list-style:none;gap:.1rem;align-items:center}.nav-link{font-family:var(--font-body);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-charcoal);background:none;border:none;cursor:pointer;padding:.45rem .8rem;border-radius:20px;transition:color .2s ease,background .2s ease,opacity .2s ease;opacity:.85;white-space:nowrap}.nav-link:hover{opacity:1;color:var(--champagne-gold)}.nav-link--active{opacity:1;color:var(--champagne-gold);background:#c9a27e1a}.nav-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.nav-qr-wrapper{position:relative}.nav-qr-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:none;border:1px solid rgba(201,162,126,.25);cursor:pointer;color:var(--champagne-gold);transition:background .2s ease,border-color .2s ease,color .2s ease}.nav-qr-btn:hover,.nav-qr-btn--active{background:#c9a27e1a;border-color:#c9a27e80}.nav-qr-popup{position:absolute;top:calc(100% + 12px);right:0;background:#faf7f5f7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(201,162,126,.25);border-radius:20px;padding:1.4rem;box-shadow:0 12px 40px #d9a6a933,0 2px 10px #00000014;z-index:200;width:196px;text-align:center}.nav-qr-popup:before{content:"";position:absolute;top:-6px;right:12px;width:12px;height:12px;background:#faf7f5f7;border-left:1px solid rgba(201,162,126,.25);border-top:1px solid rgba(201,162,126,.25);transform:rotate(45deg);border-radius:2px}.nav-qr-label{font-family:var(--font-body);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rose-smoke);margin-bottom:1rem}.nav-qr-code-area{display:flex;justify-content:center;align-items:center;background:#fff;border-radius:12px;padding:.5rem;box-shadow:inset 0 2px 6px #0000000a;margin-bottom:.9rem}.nav-qr-timer-bar{height:2px;background:#c9a27e26;border-radius:2px;overflow:hidden;margin-bottom:.9rem}.nav-qr-timer-fill{height:100%;background:linear-gradient(to right,var(--blush-pink),var(--champagne-gold));transform-origin:left;border-radius:2px}.nav-qr-actions{display:flex;justify-content:center}.nav-qr-download{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-body);font-size:.75rem;letter-spacing:.08em;color:var(--deep-charcoal);background:linear-gradient(135deg,#ffffffe6,#faf7f5f2);border:1px solid rgba(201,162,126,.3);border-radius:20px;padding:.5rem 1rem;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #c9a27e1a}.nav-qr-download:hover{border-color:#c9a27e8c;box-shadow:0 4px 14px #c9a27e2e}.nav-qr-download svg{color:var(--champagne-gold);flex-shrink:0}@media(max-width:480px){.nav-qr-popup{right:auto;left:50%;transform:translate(-50%);width:180px}.nav-qr-popup:before{display:none}}.nav-hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:10px;flex-shrink:0;min-width:44px;min-height:44px;align-items:center;justify-content:center}.nav-hamburger span{display:block;width:24px;height:2px;background:var(--deep-charcoal);border-radius:2px;transition:transform .3s ease,opacity .3s ease;transform-origin:center}.nav-hamburger--open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.nav-hamburger--open span:nth-child(2){opacity:0;transform:scaleX(0)}.nav-hamburger--open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.nav-mobile-menu{background:#faf7f5f7;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);overflow:hidden;border-top:1px solid rgba(201,162,126,.12);border-bottom:1px solid rgba(201,162,126,.12)}.nav-mobile-link{display:block;width:100%;font-family:var(--font-body);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--deep-charcoal);background:none;border:none;cursor:pointer;padding:1rem 2rem;text-align:left;transition:color .2s ease,background .2s ease;opacity:.9}.nav-mobile-link:hover,.nav-mobile-link--active{color:var(--champagne-gold);background:#c9a27e0f;opacity:1}@media(max-width:768px){.nav-links{display:none}.nav-hamburger{display:flex}.nav-inner{padding:1rem 1.5rem}}@media(max-width:480px){.nav-inner{padding:.9rem 1.2rem}}@media(max-width:360px){.nav-inner{padding:.8rem 1rem}.nav-monogram{font-size:.95rem;letter-spacing:.12em}.nav-mobile-link{padding:.9rem 1.2rem;font-size:.8rem}}@media(prefers-reduced-motion:reduce){.nav-hamburger span,.nav-link,.nav-monogram{transition:none!important}}.loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--warm-ivory);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:9999}.loading-flower{margin-bottom:1.5rem}.loading-text{font-family:var(--font-body);font-size:1rem;color:var(--rose-smoke);letter-spacing:.1em}.countdown{margin:.5rem 0 1.5rem;text-align:center}.countdown-label{font-family:var(--font-body);font-size:clamp(.72rem,2vw,.88rem);letter-spacing:.14em;text-transform:uppercase;color:var(--rose-smoke);margin-bottom:1.5rem;opacity:.85}.countdown-units{display:flex;gap:.4rem;justify-content:center;align-items:center;flex-wrap:nowrap}.countdown-unit-group{display:flex;align-items:center;gap:.4rem}.countdown-unit{display:flex;flex-direction:column;align-items:center;gap:.4rem;background:linear-gradient(135deg,#ffffffe0,#faf7f5eb);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(201,162,126,.22);border-radius:14px;padding:1rem 1.1rem;min-width:68px;box-shadow:0 4px 18px #d9a6a91a,0 1px 4px #0000000a}.countdown-number{font-family:var(--font-display);font-size:clamp(1.7rem,4.5vw,2.6rem);font-weight:400;color:var(--deep-charcoal);line-height:1;letter-spacing:.02em}.countdown-unit-label{font-family:var(--font-body);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--champagne-gold);font-weight:500}.countdown-separator{font-family:var(--font-display);font-size:clamp(1.4rem,3.5vw,2.1rem);color:var(--champagne-gold);opacity:.45;line-height:1;margin-bottom:1rem;flex-shrink:0}.countdown-date{font-family:var(--font-display);font-size:clamp(.85rem,2.5vw,1.05rem);font-style:italic;color:var(--champagne-gold);margin-top:1.3rem;opacity:.7;letter-spacing:.06em}.countdown--married .countdown-married-text{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,2.5rem);font-style:italic;color:var(--champagne-gold);letter-spacing:.05em}@media(max-width:520px){.countdown-units,.countdown-unit-group{gap:.25rem}.countdown-unit{padding:.8rem .7rem;min-width:56px;border-radius:11px}.countdown-separator{font-size:1.2rem}}@media(max-width:400px){.countdown-separator{display:none}.countdown-units{gap:.4rem}.countdown-unit-group{gap:0}.countdown-unit{min-width:0;padding:.9rem .5rem;border-radius:12px;flex:1}.countdown-label{font-size:.68rem;letter-spacing:.1em}.countdown-date{font-size:.85rem}}@media(max-width:320px){.countdown-unit{min-width:0;padding:.75rem .4rem}.countdown-number{font-size:1.5rem}}@media(prefers-reduced-motion:reduce){.countdown-unit{transition:none!important}}.teaser-container{position:relative;min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;padding:2rem;overflow:hidden;background:linear-gradient(135deg,var(--warm-ivory) 0%,#FFF5F0 30%,#FFEEF0 50%,#FFF5F0 70%,var(--warm-ivory) 100%);transition:opacity .5s ease-in-out;transform:translateZ(0);backface-visibility:hidden}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.content-wrapper{position:relative;z-index:2;max-width:800px;width:100%;text-align:center;padding:1.5rem 1.5rem 3rem}.logo-container{margin-bottom:.5rem;display:flex;justify-content:center;align-items:center}.wedding-logo{max-width:450px;width:90%;height:auto;opacity:1;filter:drop-shadow(0 4px 12px rgba(230,183,193,.25));transition:transform .3s cubic-bezier(.4,0,.2,1);transform:translateZ(0);backface-visibility:hidden}.wedding-logo:hover{transform:scale(1.02) translateZ(0)}.hero-title{font-family:var(--font-display);font-size:clamp(2.5rem,8vw,5rem);font-weight:400;line-height:1.2;letter-spacing:.02em;color:var(--deep-charcoal);margin-bottom:1.5rem;margin-top:0;font-style:italic}.hero-subtitle{font-family:var(--font-body);font-size:clamp(1rem,2.5vw,1.3rem);font-weight:400;line-height:1.8;letter-spacing:.05em;color:var(--rose-smoke);margin-bottom:3rem}.divider-container{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin:3rem 0;padding:0 2rem}.divider-line{flex:1;height:1px;background:linear-gradient(to right,transparent,var(--champagne-gold),transparent);opacity:.5;transform-origin:center}.divider-ornament{font-size:1.5rem;color:var(--champagne-gold);opacity:.7}.message-section{margin:3rem 0;padding:2rem}.message-text{font-family:var(--font-body);font-size:clamp(1.1rem,3vw,1.4rem);font-weight:400;line-height:2;letter-spacing:.03em;color:var(--deep-charcoal);font-style:italic;opacity:1}.message-text+.message-text{margin-top:.5rem}.hashtag-section{margin:2.5rem 0;padding:1.5rem;display:flex;justify-content:center;align-items:center}.hashtag{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.5rem);font-weight:500;letter-spacing:.15em;background:linear-gradient(135deg,var(--rose-smoke) 0%,var(--blush-pink) 50%,var(--champagne-gold) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;cursor:pointer;transition:transform .3s cubic-bezier(.4,0,.2,1);position:relative;display:inline-block;transform:translateZ(0);backface-visibility:hidden}.hashtag:before{content:"";position:absolute;bottom:-8px;left:10%;right:10%;height:2px;background:linear-gradient(to right,transparent,var(--champagne-gold),transparent);opacity:.5}.qr-section{margin:4rem 0 2rem;display:flex;justify-content:center}.qr-card{background:linear-gradient(135deg,#fffc,#faf7f5e6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(201,162,126,.2);border-radius:20px;padding:2.5rem 2rem;box-shadow:0 10px 40px #d9a6a926,0 2px 8px #0000000d;transition:transform .3s cubic-bezier(.4,0,.2,1);transform:translateZ(0);backface-visibility:hidden}.qr-label{font-family:var(--font-body);font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rose-smoke);margin-bottom:1.5rem;font-weight:500}.qr-code-wrapper{display:flex;justify-content:center;align-items:center;padding:1rem;background:#fff;border-radius:12px;box-shadow:inset 0 2px 8px #0000000d}.qr-download-btn{margin-top:1.5rem;background:linear-gradient(135deg,var(--rose-smoke),var(--blush-pink));border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 10px #e6b7c166;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;color:#fff;transform:translateZ(0);backface-visibility:hidden}.qr-download-btn:hover{transform:scale(1.1) translateZ(0);box-shadow:0 5px 16px #e6b7c199}.qr-download-btn:active{transform:scale(.95) translateZ(0);box-shadow:0 2px 6px #e6b7c166}.qr-download-btn svg{width:16px;height:16px}.signature{font-family:var(--font-display);font-size:1.2rem;font-style:italic;color:var(--champagne-gold);margin-top:3rem;letter-spacing:.05em}.grain-overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:3;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}.vignette{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2;box-shadow:inset 0 0 200px #3a3a3a1a}@media(max-width:768px){.teaser-container{padding:1.5rem}.content-wrapper{padding:1rem 1rem 2rem}.divider-container{gap:1rem;padding:0 1rem}.message-section{padding:1.5rem .5rem}.hashtag-section{margin:2rem 0;padding:1rem}.qr-card{padding:2rem 1.5rem}.qr-code-wrapper svg{width:150px!important;height:150px!important}.wedding-logo{max-width:320px;width:85%}.logo-container{margin-bottom:.5rem}.qr-download-btn{width:32px;height:32px}.qr-download-btn svg{width:14px;height:14px}}@media(max-width:480px){.wedding-logo{max-width:240px;width:78%}.logo-container{margin-bottom:.25rem}.divider-container{gap:.75rem;padding:0 .5rem;margin:2rem 0}.message-section{padding:1rem .25rem;margin:1.5rem 0}.hashtag-section{margin:1.5rem 0;padding:.75rem}.qr-section{margin:2.5rem 0 1.5rem}.qr-card{padding:1.2rem .9rem}.qr-code-wrapper svg{width:120px!important;height:120px!important}}@media(max-width:360px){.teaser-container{padding:1rem}.content-wrapper{padding:.75rem .75rem 2rem}.wedding-logo{max-width:210px;width:75%}.divider-container{gap:.5rem;padding:0;margin:1.5rem 0}.qr-card{padding:1rem .75rem}.qr-code-wrapper svg{width:110px!important;height:110px!important}.message-text{font-size:1rem}}.scroll-indicator{display:flex;flex-direction:column;align-items:center;gap:.4rem;margin-top:2.5rem;cursor:pointer;color:var(--champagne-gold);opacity:.6;transition:opacity .25s ease;-webkit-user-select:none;user-select:none}.scroll-indicator:hover{opacity:.9}.scroll-indicator-label{font-family:var(--font-body);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}@media(prefers-reduced-motion:reduce){.teaser-container,.divider-ornament,.signature{animation:none!important}*{transition:none!important}}.story-section{padding:6rem 2rem 5rem;background:var(--warm-ivory);scroll-margin-top:72px}.story-container{max-width:700px;margin:0 auto}.section-header{text-align:center;margin-bottom:4rem}.section-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.2rem);font-weight:400;font-style:italic;color:var(--deep-charcoal);letter-spacing:.02em;margin-bottom:1.5rem}.section-ornament{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin:0 auto 1.5rem;max-width:260px}.section-ornament-line{flex:1;height:1px;background:linear-gradient(to right,transparent,var(--champagne-gold),transparent);opacity:.5}.section-ornament-symbol{font-size:1.2rem;color:var(--champagne-gold);opacity:.7}.section-subtitle{font-family:var(--font-body);font-size:clamp(.9rem,2.5vw,1.1rem);color:var(--deep-charcoal);letter-spacing:.04em;line-height:1.8;font-style:italic;opacity:.75}.story-prose{background:linear-gradient(135deg,#ffffffd9,#faf7f5eb);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(201,162,126,.2);border-radius:24px;padding:3rem 2.5rem;box-shadow:0 8px 32px #d9a6a91a,0 1px 5px #0000000a;text-align:center}.story-prose p{font-family:var(--font-body);font-size:clamp(.95rem,2.4vw,1.05rem);line-height:1.9;color:var(--deep-charcoal);opacity:.92;font-style:italic;margin-bottom:1.2rem;letter-spacing:.02em}.story-prose p:first-child{font-family:var(--font-display);font-size:clamp(1.1rem,2.8vw,1.25rem);color:var(--champagne-gold);opacity:1;margin-bottom:1.5rem}.story-prose p:last-child{margin-bottom:0;font-family:var(--font-display);font-size:clamp(1.05rem,2.6vw,1.15rem);color:var(--champagne-gold);opacity:1}@media(max-width:768px){.story-section{padding:5rem 1.5rem 4rem}.story-prose{padding:2.5rem 2rem}}@media(max-width:480px){.story-section{padding:4rem 1rem 3.5rem}.story-prose{padding:2rem 1.4rem;border-radius:18px}}@media(max-width:360px){.story-section{padding:4rem .75rem 3rem}.story-prose{padding:1.8rem 1.2rem}.section-header{margin-bottom:2.5rem}}.goodwill-section{padding:6rem 2rem 5rem;background:linear-gradient(135deg,#FFF5F0 0%,var(--warm-ivory) 50%,#FFEEF0 100%);scroll-margin-top:72px}.goodwill-container{max-width:700px;margin:0 auto}.goodwill-card{background:linear-gradient(135deg,#ffffffd9,#faf7f5eb);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(201,162,126,.2);border-radius:24px;padding:3rem 2.5rem;box-shadow:0 8px 32px #d9a6a91a,0 1px 5px #0000000a;text-align:center}.goodwill-text{font-family:var(--font-body);font-size:clamp(.95rem,2.4vw,1.05rem);line-height:1.9;color:var(--deep-charcoal);opacity:.92;font-style:italic;margin-bottom:1.2rem;letter-spacing:.02em}.goodwill-text:first-child{font-family:var(--font-display);font-size:clamp(1.1rem,2.8vw,1.25rem);color:var(--champagne-gold);opacity:1;margin-bottom:1.5rem}.goodwill-text:last-of-type{margin-bottom:2rem}.goodwill-signature{font-family:var(--font-display);font-size:clamp(1rem,2.5vw,1.1rem);font-style:italic;color:var(--deep-charcoal);opacity:.85;margin-bottom:.3rem;letter-spacing:.03em}.goodwill-names{font-family:var(--font-display);font-size:clamp(1.3rem,3.2vw,1.6rem);font-style:italic;background:linear-gradient(135deg,var(--rose-smoke),var(--blush-pink) 50%,var(--champagne-gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:.08em}@media(max-width:768px){.goodwill-section{padding:5rem 1.5rem 4rem}.goodwill-card{padding:2.5rem 2rem}}@media(max-width:480px){.goodwill-section{padding:4rem 1rem 3.5rem}.goodwill-card{padding:2rem 1.4rem;border-radius:18px}}@media(max-width:360px){.goodwill-section{padding:4rem .75rem 3rem}.goodwill-card{padding:1.8rem 1.2rem}}.gallery-section{padding:6rem 2rem 5rem;background:var(--warm-ivory);scroll-margin-top:72px}.gallery-container{max-width:960px;margin:0 auto}.gallery-tabs{display:flex;justify-content:center;gap:.75rem;margin-bottom:2.5rem;flex-wrap:wrap}.gallery-tab{font-family:var(--font-body);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-charcoal);background:#ffffffb3;border:1px solid rgba(201,162,126,.2);border-radius:30px;padding:.6rem 1.4rem;cursor:pointer;transition:all .25s ease;opacity:.9}.gallery-tab:hover{opacity:1;border-color:#c9a27e73;background:#c9a27e0f}.gallery-tab--active{opacity:1;color:var(--champagne-gold);border-color:#c9a27e80;background:linear-gradient(135deg,#ffffffe6,#fff5f0d9);box-shadow:0 2px 12px #c9a27e24}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.gallery-cell{position:relative;aspect-ratio:3/4;border-radius:16px;overflow:hidden;cursor:pointer;background:none;border:none;padding:0;display:block}.gallery-image{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;transition:transform .5s cubic-bezier(.4,0,.2,1)}.gallery-cell:hover .gallery-image{transform:scale(1.05)}.gallery-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#e6b7c126,#c9a27e1a,#d4e4d81f);border:1.5px dashed rgba(201,162,126,.28);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1rem;transition:background .3s ease}.gallery-cell:hover .gallery-placeholder{background:linear-gradient(135deg,#e6b7c138,#c9a27e26,#d4e4d82e)}.gallery-placeholder-icon{color:var(--champagne-gold)}.gallery-placeholder-text{font-family:var(--font-display);font-size:clamp(.7rem,1.5vw,.85rem);font-style:italic;color:var(--deep-charcoal);opacity:.6;text-align:center}.gallery-placeholder-hint{font-family:var(--font-body);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--champagne-gold);opacity:.55}.gallery-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(58,58,58,.45) 0%,transparent 50%);display:flex;align-items:flex-end;padding:.75rem;opacity:0;transition:opacity .3s ease;border-radius:16px}.gallery-cell:hover .gallery-overlay{opacity:1}.gallery-overlay-text{font-family:var(--font-display);font-size:.8rem;font-style:italic;color:#ffffffe6;letter-spacing:.04em}.gallery-hint{text-align:center;margin-top:2rem;font-family:var(--font-body);font-size:.8rem;letter-spacing:.06em;color:var(--champagne-gold);opacity:.6;font-style:italic}.guest-upload-area{margin-bottom:2.5rem}.guest-upload-card{background:linear-gradient(135deg,#ffffffd9,#faf7f5eb);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1.5px dashed rgba(201,162,126,.3);border-radius:24px;padding:2.5rem 2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.6rem}.guest-upload-icon{color:var(--champagne-gold);opacity:.7;margin-bottom:.4rem}.guest-upload-title{font-family:var(--font-display);font-size:clamp(1.1rem,2.8vw,1.3rem);font-style:italic;color:var(--deep-charcoal);letter-spacing:.02em}.guest-upload-desc{font-family:var(--font-body);font-size:.88rem;color:var(--deep-charcoal);opacity:.7;font-style:italic;max-width:360px;line-height:1.6}.guest-upload-form{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-top:1rem;width:100%;max-width:300px}@media(max-width:360px){.guest-upload-form{max-width:100%}.guest-upload-card{padding:1.5rem 1rem}.guest-upload-desc{max-width:100%}}.guest-upload-name{font-family:var(--font-body);font-size:.9rem;color:var(--deep-charcoal);background:#ffffffb3;border:1px solid rgba(201,162,126,.22);border-radius:12px;padding:.7rem 1rem;outline:none;width:100%;text-align:center;letter-spacing:.02em;transition:border-color .2s ease,box-shadow .2s ease}.guest-upload-name::placeholder{color:var(--rose-smoke);opacity:.6;font-style:italic}.guest-upload-name:focus{border-color:#c9a27e80;box-shadow:0 0 0 3px #c9a27e1a}.guest-upload-btn{font-family:var(--font-display);font-size:.9rem;font-style:italic;letter-spacing:.06em;color:#fff;background:linear-gradient(135deg,var(--rose-smoke),var(--blush-pink) 50%,var(--champagne-gold));border:none;border-radius:30px;padding:.75rem 1.8rem;cursor:pointer;box-shadow:0 4px 16px #e6b7c14d;transition:box-shadow .2s ease;width:100%}.guest-upload-btn:hover{box-shadow:0 6px 22px #e6b7c173}.guest-upload-btn:disabled{opacity:.6;cursor:not-allowed}.guest-upload-input{display:none}.gallery-guest-count{font-family:var(--font-body);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--champagne-gold);opacity:.9;margin-bottom:1.5rem;text-align:center}.gallery-empty{text-align:center;font-family:var(--font-display);font-size:1rem;font-style:italic;color:var(--champagne-gold);opacity:.55;margin-top:1rem;letter-spacing:.04em}.gallery-tab-count{display:inline-flex;align-items:center;justify-content:center;font-size:.65rem;min-width:18px;height:18px;border-radius:10px;background:#c9a27e33;color:var(--champagne-gold);margin-left:.4rem;padding:0 .35rem;font-family:var(--font-body);letter-spacing:.04em}.guest-upload-error{font-family:var(--font-body);font-size:.82rem;color:var(--rose-smoke);font-style:italic;margin-top:.5rem}.lightbox-backdrop{position:fixed;inset:0;background:#1e191ce0;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:200;display:flex;align-items:center;justify-content:center;padding:1.5rem}.lightbox-content{position:relative;max-width:860px;width:100%;display:flex;flex-direction:column;align-items:center;gap:1.2rem}.lightbox-close{position:absolute;top:-50px;right:0;background:#faf7f526;border:1px solid rgba(250,247,245,.2);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#faf7f5d9;transition:background .2s ease}.lightbox-close:hover{background:#faf7f540}.lightbox-image-area{width:100%;max-height:70vh;border-radius:16px;overflow:hidden;background:#faf7f50f;display:flex;align-items:center;justify-content:center;min-height:300px}.lightbox-image{width:100%;height:100%;object-fit:contain;max-height:70vh}.lightbox-image-area .gallery-placeholder{width:100%;height:100%;min-height:300px;background:#c9a27e14;border-color:#c9a27e33}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#faf7f526;border:1px solid rgba(250,247,245,.2);border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#faf7f5e6;transition:background .2s ease;z-index:10}.lightbox-nav:hover{background:#faf7f540}.lightbox-nav--prev{left:-56px}.lightbox-nav--next{right:-56px}@media(max-width:768px){.lightbox-nav--prev{left:8px}.lightbox-nav--next{right:8px}.lightbox-nav{width:40px;height:40px;background:#1e191c73;border-color:#faf7f526}}.lightbox-footer{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}.lightbox-caption{font-family:var(--font-display);font-size:1rem;font-style:italic;color:#faf7f5cc;letter-spacing:.04em}.lightbox-counter{font-family:var(--font-body);font-size:.75rem;letter-spacing:.1em;color:#c9a27eb3;text-transform:uppercase;flex-shrink:0}@media(max-width:768px){.gallery-section{padding:5rem 1.5rem 4rem}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.lightbox-close{top:-44px}}@media(max-width:480px){.gallery-section{padding:4rem 1rem 3.5rem}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:.6rem}.gallery-cell{border-radius:12px}.lightbox-backdrop{padding:.75rem .5rem}.lightbox-close{top:-40px;right:4px}.lightbox-footer{flex-direction:column;align-items:flex-start;gap:.3rem}.lightbox-image-area{min-height:220px}}@media(max-width:360px){.gallery-section{padding:4rem .75rem 3rem}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:.4rem}.gallery-tabs{gap:.4rem}.gallery-tab{padding:.5rem .9rem;font-size:.72rem}}@media(prefers-reduced-motion:reduce){.gallery-tab,.gallery-image,.gallery-overlay,.gallery-placeholder{transition:none!important}}.events-section{padding:6rem 2rem 5rem;background:linear-gradient(135deg,#FFF5F0 0%,var(--warm-ivory) 60%,#FFEEF0 100%);scroll-margin-top:72px}.events-container{max-width:820px;margin:0 auto}.events-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:3rem}@media(max-width:600px){.events-grid{grid-template-columns:1fr}}.event-card{background:linear-gradient(135deg,#ffffffd1,#faf7f5e6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(201,162,126,.2);border-radius:22px;padding:2rem;box-shadow:0 6px 28px #d9a6a91a,0 1px 5px #0000000a;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s ease}.event-card:hover{transform:translateY(-4px);box-shadow:0 12px 36px #d9a6a926,0 2px 8px #0000000d}.event-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(201,162,126,.15)}.event-icon{font-size:1.1rem;color:var(--champagne-gold)}.event-card-title{font-family:var(--font-display);font-size:clamp(1.2rem,3vw,1.5rem);font-weight:400;font-style:italic;color:var(--deep-charcoal);letter-spacing:.01em}.event-detail-row{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem}.event-detail-icon{color:var(--champagne-gold);opacity:1;flex-shrink:0;margin-top:2px}.event-detail-text{font-family:var(--font-body);font-size:clamp(.95rem,2.2vw,1.05rem);color:var(--deep-charcoal);opacity:1;letter-spacing:.02em}.event-venue{display:block;font-family:var(--font-body);font-size:clamp(.95rem,2.2vw,1.05rem);color:var(--deep-charcoal);opacity:1;font-weight:500;margin-bottom:.2rem}.event-address{display:block;font-family:var(--font-body);font-size:.85rem;color:var(--rose-smoke);letter-spacing:.02em;font-style:italic}.event-notes{margin-top:1rem;font-family:var(--font-body);font-size:.82rem;color:var(--champagne-gold);letter-spacing:.06em;font-style:italic;opacity:1;padding-top:.8rem;border-top:1px solid rgba(201,162,126,.15)}.event-card--single{max-width:500px;margin:0 auto 3rem}.event-invitation-note{margin-top:1.2rem;font-family:var(--font-body);font-size:.85rem;color:var(--champagne-gold);letter-spacing:.06em;font-style:italic;text-align:center;padding-top:1rem;border-top:1px solid rgba(201,162,126,.15);font-weight:500}.dress-code-section{background:linear-gradient(135deg,#ffffffbf,#faf7f5d9);border:1px solid rgba(201,162,126,.18);border-radius:22px;padding:2rem;margin-bottom:2rem;text-align:center;box-shadow:0 4px 20px #d9a6a914}.dress-code-title{font-family:var(--font-display);font-size:clamp(1.2rem,3vw,1.5rem);font-weight:400;font-style:italic;color:var(--deep-charcoal);margin-bottom:1.5rem}.dress-code-swatches{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.swatch-item{display:flex;flex-direction:column;align-items:center;gap:.5rem}.swatch-circle{width:48px;height:48px;border-radius:50%;box-shadow:0 3px 12px #0000001a;transition:transform .2s ease}.swatch-circle:hover{transform:scale(1.1)}.swatch-label{font-family:var(--font-body);font-size:.78rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--champagne-gold)}.swatch-name{font-family:var(--font-body);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-charcoal);opacity:.85}.events-hashtag{text-align:center;margin-bottom:2.5rem}.events-hashtag-text{display:block;font-family:var(--font-display);font-size:clamp(1.4rem,3.5vw,2rem);font-weight:500;letter-spacing:.15em;background:linear-gradient(135deg,var(--rose-smoke) 0%,var(--blush-pink) 50%,var(--champagne-gold) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem}.events-hashtag-desc{font-family:var(--font-body);font-size:.85rem;color:var(--deep-charcoal);font-style:italic;opacity:.75;letter-spacing:.04em}.calendar-section{text-align:center}.calendar-label{font-family:var(--font-body);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--deep-charcoal);margin-bottom:1.2rem;opacity:.8}.calendar-buttons{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.calendar-btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-body);font-size:.82rem;letter-spacing:.08em;text-decoration:none;border-radius:30px;padding:.7rem 1.5rem;transition:all .25s ease}.calendar-btn--google{background:linear-gradient(135deg,#ffffffe6,#faf7f5f2);border:1px solid rgba(201,162,126,.3);color:var(--deep-charcoal);box-shadow:0 3px 12px #c9a27e1f}.calendar-btn--ical{background:linear-gradient(135deg,#e6b7c126,#c9a27e1f);border:1px solid rgba(201,162,126,.28);color:var(--deep-charcoal)}.calendar-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px #c9a27e2e;border-color:#c9a27e80}.calendar-btn svg{color:var(--champagne-gold);flex-shrink:0}@media(max-width:640px){.events-section{padding:5rem 1.5rem 4rem}.events-grid{grid-template-columns:1fr}.event-card{padding:1.5rem}.dress-code-swatches{gap:1.2rem}}@media(max-width:480px){.events-section{padding:4rem 1rem 3.5rem}.event-card{padding:1.3rem 1rem}.dress-code-section{padding:1.5rem 1rem}.dress-code-swatches{gap:1rem}.swatch-circle{width:40px;height:40px}.calendar-buttons{flex-direction:column;align-items:center}.calendar-btn{width:100%;max-width:280px;justify-content:center}}@media(max-width:360px){.events-section{padding:4rem .75rem 3rem}.event-card{padding:1.1rem .9rem}.event-card-title{font-size:1.1rem}.dress-code-swatches{gap:.75rem}.swatch-circle{width:36px;height:36px}}@media(prefers-reduced-motion:reduce){.event-card,.swatch-circle,.calendar-btn{transition:none!important}}.location-section{padding:6rem 2rem 5rem;background:var(--warm-ivory);scroll-margin-top:72px}.location-container{max-width:820px;margin:0 auto}.venue-info{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:linear-gradient(135deg,#ffffffd1,#faf7f5e6);border:1px solid rgba(201,162,126,.2);border-radius:18px;padding:1.5rem 2rem;margin-bottom:1.5rem;box-shadow:0 4px 20px #d9a6a914;flex-wrap:wrap}.venue-detail{display:flex;align-items:flex-start;gap:.85rem}.venue-detail-icon{color:var(--champagne-gold);flex-shrink:0;margin-top:2px}.venue-name{display:block;font-family:var(--font-display);font-size:clamp(1rem,2.5vw,1.2rem);font-style:italic;color:var(--deep-charcoal);margin-bottom:.25rem;letter-spacing:.01em}.venue-address{display:block;font-family:var(--font-body);font-size:.85rem;color:var(--rose-smoke);font-style:italic;letter-spacing:.02em}.directions-btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-body);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--champagne-gold);border:1px solid rgba(201,162,126,.35);border-radius:30px;padding:.65rem 1.3rem;background:#c9a27e0f;transition:all .25s ease;white-space:nowrap;flex-shrink:0}.directions-btn:hover{background:#c9a27e24;border-color:#c9a27e8c;transform:translate(2px)}.map-wrapper{border-radius:22px;overflow:hidden;box-shadow:0 8px 32px #d9a6a91f,0 2px 8px #0000000f;position:relative}.map-frame{width:100%;height:420px;background:linear-gradient(135deg,#e6b7c11f,#c9a27e14);position:relative}.map-frame iframe{display:block;border-radius:22px}.map-update-note{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);background:#faf7f5eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(201,162,126,.3);border-radius:20px;padding:.5rem 1.2rem;white-space:nowrap;pointer-events:none}.map-update-note span{font-family:var(--font-body);font-size:.72rem;letter-spacing:.06em;color:var(--champagne-gold);font-style:italic}.location-note{text-align:center;margin-top:1.5rem;font-family:var(--font-body);font-size:.82rem;letter-spacing:.05em;color:var(--deep-charcoal);opacity:.7;font-style:italic}@media(max-width:640px){.location-section{padding:5rem 1.5rem 4rem}.venue-info{flex-direction:column;align-items:flex-start;gap:1.2rem;padding:1.2rem 1.5rem}.map-frame{height:320px}.map-update-note{white-space:normal;text-align:center;max-width:80%}}@media(max-width:480px){.location-section{padding:4rem 1rem 3.5rem}.venue-info{padding:1rem}.map-frame{height:240px}.directions-btn{width:100%;justify-content:center}}@media(max-width:360px){.location-section{padding:4rem .75rem 3rem}.map-frame{height:260px}.venue-name{font-size:1rem}.map-wrapper,.map-frame iframe{border-radius:16px}}@media(prefers-reduced-motion:reduce){.directions-btn{transition:none!important}}.wishes-section{padding:6rem 2rem 5rem;background:linear-gradient(135deg,#FFF5F0 0%,var(--warm-ivory) 50%,#FFEEF0 100%);scroll-margin-top:72px}.wishes-container{max-width:700px;margin:0 auto}.wish-form-wrapper{background:linear-gradient(135deg,#ffffffd9,#faf7f5eb);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(201,162,126,.2);border-radius:24px;padding:2.5rem;margin-bottom:3rem;box-shadow:0 8px 32px #d9a6a91a,0 1px 5px #0000000a;position:relative}.wish-success{display:flex;align-items:center;gap:.6rem;background:linear-gradient(135deg,#d4e4d880,#c9a27e26);border:1px solid rgba(201,162,126,.3);border-radius:14px;padding:.9rem 1.2rem;margin-bottom:1.5rem;font-family:var(--font-body);font-size:.9rem;color:var(--deep-charcoal);font-style:italic}.wish-success-icon{color:var(--champagne-gold);font-size:1rem;flex-shrink:0}.wish-form{display:flex;flex-direction:column;gap:1.5rem}.wish-field{display:flex;flex-direction:column;gap:.5rem}.wish-label{font-family:var(--font-body);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-charcoal);opacity:.9}.wish-input,.wish-textarea{font-family:var(--font-body);font-size:.95rem;color:var(--deep-charcoal);background:#ffffffb3;border:1px solid rgba(201,162,126,.22);border-radius:12px;padding:.9rem 1.1rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease;resize:none;width:100%;letter-spacing:.02em}.wish-input::placeholder,.wish-textarea::placeholder{color:var(--rose-smoke);opacity:.6;font-style:italic}.wish-input:focus,.wish-textarea:focus{border-color:#c9a27e80;box-shadow:0 0 0 3px #c9a27e1a}.wish-field--error .wish-input,.wish-field--error .wish-textarea{border-color:#d9a6a999}.wish-error{font-family:var(--font-body);font-size:.78rem;color:var(--rose-smoke);font-style:italic;letter-spacing:.02em}.wish-file-area{display:flex;align-items:center;gap:.75rem}.wish-file-input{display:none}.wish-file-btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-body);font-size:.82rem;letter-spacing:.06em;color:var(--deep-charcoal);background:#ffffffb3;border:1px solid rgba(201,162,126,.25);border-radius:10px;padding:.65rem 1rem;cursor:pointer;transition:all .2s ease;opacity:1;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.wish-file-btn:hover{opacity:1;border-color:#c9a27e73;background:#c9a27e0f}.wish-file-btn svg{color:var(--champagne-gold);flex-shrink:0}.wish-field-hint{font-family:var(--font-body);font-size:.72rem;color:var(--rose-smoke);font-style:italic;opacity:.7;letter-spacing:.04em}.wish-submit-btn{font-family:var(--font-display);font-size:1rem;font-style:italic;letter-spacing:.08em;color:#fff;background:linear-gradient(135deg,var(--rose-smoke),var(--blush-pink) 50%,var(--champagne-gold));border:none;border-radius:40px;padding:1rem 2rem;cursor:pointer;box-shadow:0 6px 20px #e6b7c159;transition:box-shadow .2s ease;align-self:flex-start;min-width:180px}.wish-submit-btn:hover{box-shadow:0 8px 28px #e6b7c180}.wishes-list{margin-top:1rem}.wishes-list-label{font-family:var(--font-body);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--champagne-gold);opacity:.9;margin-bottom:1.5rem;text-align:center}.wishes-grid{display:flex;flex-direction:column;gap:1rem}.wish-card{display:flex;gap:1rem;background:linear-gradient(135deg,#ffffffc7,#faf7f5e0);border:1px solid rgba(201,162,126,.15);border-radius:18px;padding:1.4rem;box-shadow:0 3px 14px #d9a6a914;transition:transform .25s ease,box-shadow .25s ease}.wish-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #d9a6a91f}.wish-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--blush-pink),var(--champagne-gold));display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.1rem;font-style:italic;color:#fff;flex-shrink:0}.wish-body{flex:1;min-width:0}.wish-message{font-family:var(--font-body);font-size:clamp(.9rem,2.2vw,1rem);line-height:1.75;color:var(--deep-charcoal);opacity:.95;font-style:italic;margin-bottom:.6rem}.wish-photo-wrapper{margin:.8rem 0;border-radius:12px;overflow:hidden;border:1px solid rgba(201,162,126,.15)}.wish-photo{display:block;width:100%;max-height:300px;object-fit:cover;border-radius:12px}.wish-meta{display:flex;align-items:center;gap:.4rem}.wish-name{font-family:var(--font-body);font-size:.78rem;font-weight:500;letter-spacing:.06em;color:var(--champagne-gold)}.wish-dot{color:var(--rose-smoke);opacity:.5}.wish-date{font-family:var(--font-body);font-size:.72rem;color:var(--deep-charcoal);opacity:.65;letter-spacing:.04em}.wishes-cta{text-align:center;margin-top:2.5rem}.wishes-cta-btn{display:inline-block;font-family:var(--font-display);font-size:1rem;font-style:italic;letter-spacing:.06em;color:#fff;background:linear-gradient(135deg,var(--rose-smoke),var(--blush-pink) 50%,var(--champagne-gold));border:none;border-radius:40px;padding:1rem 2.5rem;text-decoration:none;box-shadow:0 6px 20px #e6b7c159;transition:box-shadow .2s ease,transform .2s ease;min-width:220px}.wishes-cta-btn:hover{box-shadow:0 8px 28px #e6b7c180;transform:translateY(-2px)}.wishes-cta-arrow{display:inline-block;transition:transform .2s ease}.wishes-cta-btn:hover .wishes-cta-arrow{transform:translate(4px)}.wishes-empty{text-align:center;font-family:var(--font-display);font-size:1rem;font-style:italic;color:var(--champagne-gold);opacity:.55;margin-top:1rem;letter-spacing:.04em}@media(max-width:640px){.wishes-section{padding:5rem 1.5rem 4rem}.wish-form-wrapper{padding:1.8rem 1.5rem}.wish-submit-btn{align-self:stretch;text-align:center}}@media(max-width:480px){.wishes-section{padding:4rem 1rem 3.5rem}.wish-form-wrapper{padding:1.4rem 1rem;border-radius:18px}.wish-file-btn{max-width:100%;width:100%}.wish-submit-btn{width:100%;text-align:center;align-self:stretch}.wish-card{padding:1rem}.wish-avatar{width:36px;height:36px;font-size:1rem;flex-shrink:0}}@media(max-width:360px){.wishes-section{padding:4rem .75rem 3rem}.wish-form-wrapper{padding:1.2rem .9rem}.wish-input,.wish-textarea{font-size:.9rem;padding:.8rem .9rem}.wish-card{flex-direction:column;gap:.75rem}.wish-avatar{width:34px;height:34px}}@media(prefers-reduced-motion:reduce){.wish-card,.wish-submit-btn,.wish-file-btn,.wish-input,.wish-textarea{transition:none!important}}.wedding-footer{background:linear-gradient(160deg,var(--deep-charcoal) 0%,#2A2525 100%);padding:4rem 2rem 3rem;text-align:center}.footer-inner{max-width:500px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1rem}.footer-divider{display:flex;align-items:center;gap:1rem;width:100%;margin-bottom:.5rem}.footer-divider-line{flex:1;height:1px;background:linear-gradient(to right,transparent,rgba(201,162,126,.3),transparent)}.footer-divider-ornament{font-size:1rem;color:var(--champagne-gold);opacity:.5}.footer-monogram{font-family:var(--font-display);font-size:clamp(1.8rem,5vw,2.5rem);font-style:italic;color:var(--champagne-gold);letter-spacing:.2em;opacity:.9}.footer-hashtag{font-family:var(--font-display);font-size:clamp(.9rem,2.5vw,1.1rem);letter-spacing:.2em;background:linear-gradient(135deg,var(--rose-smoke),var(--blush-pink),var(--champagne-gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.footer-date{font-family:var(--font-body);font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:#faf7f559}.footer-tagline{font-family:var(--font-body);font-size:.88rem;font-style:italic;color:#faf7f54d;letter-spacing:.04em;margin-top:.5rem}.footer-scroll-top{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;font-family:var(--font-body);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:#c9a27e8c;background:none;border:1px solid rgba(201,162,126,.18);border-radius:20px;padding:.5rem 1.1rem;cursor:pointer;transition:color .2s ease,border-color .2s ease}.footer-scroll-top:hover{color:var(--champagne-gold);border-color:#c9a27e66}@media(max-width:480px){.wedding-footer{padding:3rem 1.5rem 2.5rem}}@media(max-width:360px){.wedding-footer{padding:2.5rem 1.2rem 2rem}.footer-inner{gap:.8rem}.footer-scroll-top{padding:.45rem .9rem;font-size:.7rem}}@media(prefers-reduced-motion:reduce){.footer-scroll-top{transition:none!important}}.main-page{width:100%;min-height:100vh;overflow-x:hidden}#home,#our-story,#timeline,#gallery,#events,#location,#wishes{scroll-margin-top:72px}.section-separator{display:flex;align-items:center;justify-content:center;padding:.5rem 2rem;gap:1.5rem;background:var(--warm-ivory)}.section-separator-line{flex:1;max-width:200px;height:1px;background:linear-gradient(to right,transparent,rgba(201,162,126,.2),transparent)}.section-separator-dot{width:5px;height:5px;border-radius:50%;background:#c9a27e40}.admin-page{min-height:100vh;background:linear-gradient(135deg,#fff5f0,#faf7f5,#ffeef0);padding:2rem}.admin-container{max-width:900px;margin:0 auto}.admin-header{text-align:center;margin-bottom:3rem}.admin-title{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.5rem);font-weight:400;font-style:italic;color:var(--deep-charcoal);margin-bottom:.5rem}.admin-subtitle{font-family:var(--font-body);font-size:.95rem;color:var(--deep-charcoal);opacity:.7;font-style:italic;margin-bottom:1rem}.admin-back{font-family:var(--font-body);font-size:.85rem;color:var(--champagne-gold);text-decoration:none;letter-spacing:.04em;transition:opacity .2s ease}.admin-back:hover{opacity:.7}.admin-upload-section{margin-bottom:3rem}.admin-upload-card{background:#ffffffd9;border:1.5px dashed rgba(201,162,126,.35);border-radius:20px;padding:2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.admin-input{font-family:var(--font-body);font-size:.95rem;color:var(--deep-charcoal);background:#fffc;border:1px solid rgba(201,162,126,.25);border-radius:12px;padding:.75rem 1.2rem;outline:none;width:100%;max-width:400px;text-align:center;transition:border-color .2s ease}.admin-input:focus{border-color:#c9a27e80}.admin-input::placeholder{color:var(--rose-smoke);opacity:.6;font-style:italic}.admin-upload-btn{font-family:var(--font-display);font-size:1rem;font-style:italic;letter-spacing:.06em;color:#fff;background:linear-gradient(135deg,var(--rose-smoke),var(--blush-pink) 50%,var(--champagne-gold));border:none;border-radius:30px;padding:.85rem 2.5rem;cursor:pointer;box-shadow:0 4px 16px #e6b7c14d;transition:box-shadow .2s ease}.admin-upload-btn:hover{box-shadow:0 6px 22px #e6b7c173}.admin-upload-btn:disabled{opacity:.6;cursor:not-allowed}.admin-hint{font-family:var(--font-body);font-size:.78rem;color:var(--rose-smoke);opacity:.6;font-style:italic}.admin-message{text-align:center;margin-top:1rem;font-family:var(--font-body);font-size:.9rem;color:var(--champagne-gold);font-style:italic}.admin-loading,.admin-empty{text-align:center;font-family:var(--font-body);font-size:.95rem;color:var(--deep-charcoal);opacity:.6;font-style:italic}.admin-count{font-family:var(--font-body);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--champagne-gold);text-align:center;margin-bottom:1.5rem}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.admin-photo-card{background:#ffffffd9;border:1px solid rgba(201,162,126,.18);border-radius:16px;overflow:hidden;box-shadow:0 4px 16px #d9a6a914}.admin-photo-img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.admin-photo-info{padding:.75rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.admin-photo-caption{font-family:var(--font-body);font-size:.78rem;color:var(--deep-charcoal);opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.admin-photo-actions{display:flex;gap:.3rem;flex-shrink:0}.admin-action-btn{width:40px;height:40px;border-radius:10px;border:1px solid rgba(201,162,126,.25);background:#fffc;color:var(--deep-charcoal);font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.admin-action-btn:hover{border-color:#c9a27e80;background:#c9a27e14}.admin-action-btn:disabled{opacity:.3;cursor:not-allowed}.admin-action-btn--delete{color:var(--rose-smoke);border-color:#d9a6a94d}.admin-action-btn--delete:hover{background:#d9a6a91a;border-color:#d9a6a980}@media(max-width:640px){.admin-grid{grid-template-columns:repeat(2,1fr)}.admin-upload-card{padding:1.5rem 1rem}}@media(max-width:400px){.admin-page{padding:1rem}.admin-grid{grid-template-columns:1fr 1fr;gap:.6rem}.admin-photo-info{padding:.5rem;flex-direction:column;align-items:flex-start;gap:.4rem}}.messages-page{min-height:100vh;background:linear-gradient(135deg,#FFF5F0 0%,var(--warm-ivory) 50%,#FFEEF0 100%);padding:2rem}.messages-page-container{max-width:700px;margin:0 auto}.messages-page-header{text-align:center;margin-bottom:3rem}.messages-back{display:inline-block;font-family:var(--font-body);font-size:.85rem;color:var(--champagne-gold);text-decoration:none;letter-spacing:.04em;margin-bottom:2rem;transition:opacity .2s ease}.messages-back:hover{opacity:.7}.messages-page-title{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.5rem);font-weight:400;font-style:italic;color:var(--deep-charcoal);letter-spacing:.02em;margin-bottom:1.5rem}.messages-page-subtitle{font-family:var(--font-body);font-size:clamp(.9rem,2.5vw,1.05rem);color:var(--deep-charcoal);font-style:italic;opacity:.75;letter-spacing:.04em}@media(max-width:640px){.messages-page{padding:1.5rem 1rem}}@media(max-width:360px){.messages-page{padding:1rem .75rem}}
