*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--rose: #c47484;--rose-dark: #9a5a6a;--rose-light: #ddaab4;--gold: #d4a574;--gold-light: #e8c8a0;--gold-pale: #f5e8d8;--bg: #efe3db;--bg-warm: #fcf5f0;--text: #2c1410;--text-light: #5a4038;--text-muted: #8a7068;--radius-sm: 16px;--font-deco: "Great Vibes", cursive;--font-serif: "Playfair Display", serif;--font-sans: "Inter", -apple-system, sans-serif;--ease-out: cubic-bezier(.22, 1, .36, 1)}html{scroll-behavior:auto}body{font-family:var(--font-serif);background:var(--bg);color:var(--text);line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}#music-btn{position:fixed;top:20px;right:20px;z-index:1000;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:#0000004d;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s var(--ease-out),transform .3s var(--ease-out);animation:musicFloat 4s ease-in-out infinite}#music-btn:hover{transform:scale(1.08);background:#00000073}#music-btn:active{transform:scale(.92)}#music-btn .icon-on,#music-btn.playing .icon-off{display:none}#music-btn.playing .icon-on{display:block;background:#a0606e80}#music-btn.playing{background:#a0606e80}@keyframes musicFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.hero{position:relative;width:100%;height:100dvh;overflow:hidden;background:#1a0f0d}.hero-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,#a0606e33,#a0606e59 30%,#281412bf 70%,#140a08e6)}.hero-grain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;opacity:.03;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;mix-blend-mode:overlay}.hero-content{position:absolute;bottom:100px;left:50%;transform:translate(-50%);z-index:2;text-align:center;width:100%;padding:0 24px}.hero-label{font-family:var(--font-sans);font-size:10px;letter-spacing:5px;text-transform:uppercase;color:#ffffff59;display:block;margin-bottom:12px}.hero-names{font-family:var(--font-deco);font-weight:400;display:flex;align-items:center;justify-content:center;gap:.15em;flex-wrap:wrap}.hero-names .name-left,.hero-names .name-right{font-size:clamp(48px,13vw,88px);color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.3);line-height:1.1}.hero-names .ampersand{font-size:clamp(28px,6vw,48px);color:var(--gold);opacity:.6;font-family:var(--font-deco)}.hero-date{font-family:var(--font-serif);font-size:clamp(13px,2.5vw,17px);color:#fff6;letter-spacing:4px;font-weight:300;margin-top:8px}.hero-video-toggle{position:absolute;bottom:48px;left:50%;transform:translate(-50%);z-index:3;width:44px;height:44px;border-radius:50%;background:#ffffff14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08);color:#ffffff80;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.hero-video-toggle:hover{background:#ffffff26;color:#fff}.scroll-hint{position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;animation:hintBreathe 3s ease-in-out infinite}.scroll-hint-text{font-family:var(--font-sans);font-size:9px;letter-spacing:3px;text-transform:uppercase;color:#ffffff4d}.scroll-hint-arrow{color:#ffffff40;animation:hintBounce 2s ease-in-out infinite}.scroll-hint-line{display:block;width:1px;height:20px;background:linear-gradient(180deg,rgba(255,255,255,.25),transparent)}@keyframes hintBreathe{0%,to{opacity:.6}50%{opacity:1}}@keyframes hintBounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.scene{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:80px 24px;position:relative}.scene:nth-child(2n){background:#c474840d}.scene+.scene{border-top:1px solid rgba(160,96,110,.04)}.scene-content{max-width:640px;width:100%;text-align:center;position:relative;z-index:1}.scene--gallery{min-height:auto;padding-bottom:100px}.eyebrow{font-family:var(--font-sans);font-size:10px;letter-spacing:4px;text-transform:uppercase;color:var(--text-muted);display:block;margin-bottom:12px}.scene-title{font-family:var(--font-deco);font-size:clamp(48px,12vw,72px);font-weight:400;color:var(--rose-dark);line-height:1.1}.scene-title--sm{font-family:var(--font-deco);font-size:clamp(36px,9vw,52px);font-weight:400;color:var(--rose-dark)}.ornament{text-align:center;color:var(--gold);font-size:14px;opacity:.2;letter-spacing:8px;margin:4px 0 24px}.orn--thin{width:40px;height:1.5px;margin:6px auto 32px;background:linear-gradient(90deg,transparent,var(--gold),transparent);border-radius:2px}.up-image{width:100%;border-radius:var(--radius-sm);margin:32px 0;box-shadow:0 8px 40px #a0606e0f}.verse{margin:40px 0 20px}.verse p{font-size:clamp(18px,3.5vw,21px);line-height:2.1;color:var(--text)}.verse-accent{font-size:clamp(19px,3.5vw,22px)!important;font-style:italic;color:var(--rose-dark)!important;font-weight:600;margin-top:8px}.quote-open,.quote-close{display:block;font-size:36px;color:var(--gold);opacity:.15;font-family:var(--font-serif);line-height:.5}.quote-open{margin-bottom:12px}.quote-close{margin-top:16px;transform:rotate(180deg)}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gi{border-radius:12px;overflow:hidden;cursor:pointer;position:relative}.gi img{width:100%;height:200px;object-fit:cover;transition:transform .5s var(--ease-out)}.gi:hover img{transform:scale(1.04)}.gi--w{grid-column:1 / -1}.gi--w img{height:250px}.gi--t{grid-row:span 2}.gi--t img{height:100%;min-height:410px}.names-intro{font-family:var(--font-serif);font-size:18px;font-style:italic;color:var(--text-light);margin-bottom:20px}.names-name{font-family:var(--font-deco);font-size:clamp(36px,9vw,54px);font-weight:400;color:var(--rose-dark);line-height:1.15}.names-amp{display:block;font-family:var(--font-deco);font-size:clamp(28px,6vw,40px);color:var(--gold);opacity:.4;margin:4px 0}.detail-row{display:flex;align-items:flex-start;gap:20px;padding:20px 0;text-align:left;border-bottom:1px solid rgba(160,96,110,.04)}.detail-row:last-of-type{border:none}.detail-icon{width:42px;height:42px;flex-shrink:0;color:var(--rose);opacity:.5;margin-top:2px}.detail-icon svg{width:100%;height:100%}.detail-label{font-family:var(--font-sans);font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--rose);margin-bottom:4px;font-weight:500}.detail-val{font-size:18px;font-weight:700;color:var(--text)}.detail-sub{font-size:14px;color:var(--text-light);margin-top:2px}.btn-map{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:8px 16px;border:1px solid rgba(160,96,110,.1);border-radius:50px;font-family:var(--font-sans);font-size:12px;font-weight:500;color:var(--rose);cursor:pointer;transition:all .3s var(--ease-out)}.btn-map:hover{background:var(--rose);color:#fff;border-color:var(--rose)}.btn-map svg{width:14px;height:14px}.family-block{margin-top:32px;padding-top:28px;border-top:1px solid rgba(160,96,110,.06);text-align:center}.family-group{margin-bottom:28px;padding:0 12px}.family-group:last-child{margin-bottom:0}.family-group .names-line{font-family:var(--font-deco);font-size:clamp(22px,5vw,30px);color:var(--text);line-height:1.3}.family-group .amp{font-family:var(--font-serif);font-size:clamp(18px,3.5vw,24px);color:var(--gold);opacity:.5;display:inline-block;margin:0 4px}.family-role{font-family:var(--font-sans);font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--rose);font-weight:500;display:block;margin-bottom:8px;opacity:.7}.scene--rsvp{background:linear-gradient(180deg,var(--bg) 0%,#ebd8ce 100%)}.travel-quote{font-family:var(--font-serif);font-size:clamp(19px,4vw,23px);font-style:italic;color:var(--rose-dark);line-height:1.8;font-weight:600;margin-bottom:40px}.rsvp-deadline{font-size:15px;color:var(--text-light);font-style:italic;margin-bottom:28px}.rsvp-deadline strong{color:var(--rose);font-style:normal}.btn-wa{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:18px 40px;background:var(--rose);color:#fff;border-radius:50px;font-family:var(--font-serif);font-size:17px;font-weight:700;border:none;cursor:pointer;transition:all .4s var(--ease-out);box-shadow:0 6px 24px #a0606e33;position:relative;overflow:hidden}.btn-wa:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.08) 100%);pointer-events:none}.btn-wa:hover{transform:translateY(-3px);box-shadow:0 10px 32px #a0606e4d;background:var(--rose-dark)}.btn-wa:active{transform:scale(.97)}.btn-wa svg{width:22px;height:22px;flex-shrink:0}.gift-block{max-width:480px;margin:0 auto}.scene--gift{background:linear-gradient(180deg,#efe3db,#ebd8ce)}.gift-icon{font-size:60px;display:block;margin-bottom:10px}.gift-quote{font-size:18px;font-style:italic;color:var(--text-light);line-height:1.9;margin-bottom:28px}.bank-card{text-align:left;padding:20px 24px;background:#ffffff80;border-radius:var(--radius-sm);border:1px solid rgba(196,116,132,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.bank-row{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;border-bottom:1px solid rgba(160,96,110,.04)}.bank-row:last-child{border:none}.bank-lbl{font-family:var(--font-sans);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);flex-shrink:0;margin-right:16px}.bank-val{font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--text);text-align:right;word-break:break-all}.gift-note{margin-top:18px;font-size:13px;color:var(--text-light);font-family:var(--font-sans)}.footer{padding:60px 24px 36px;text-align:center;background:linear-gradient(0deg,#f5e6de 0%,transparent 100%)}.footer-inner{max-width:640px;margin:0 auto}.footer-hearts{font-size:18px;color:var(--rose);opacity:.12;margin-bottom:10px;letter-spacing:10px}.footer-names{font-family:var(--font-deco);font-size:26px;color:var(--rose-dark);margin-bottom:4px}.footer-date{font-family:var(--font-sans);font-size:12px;color:var(--text-muted);letter-spacing:1.5px}.pswp{z-index:10000}.pswp__bg{background:#000000eb!important}[data-reveal]{opacity:0;transform:translateY(30px)}#scroll-progress{position:fixed;top:0;left:0;height:2px;width:0%;background:linear-gradient(90deg,var(--rose-light),var(--gold),var(--rose));z-index:10001;transition:none}#section-nav{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:999;display:flex;flex-direction:column;gap:14px;opacity:0;transition:opacity .6s var(--ease-out)}#section-nav.visible{opacity:1}.nav-dot{width:8px;height:8px;border-radius:50%;background:#a0606e1f;cursor:pointer;transition:all .4s var(--ease-out);position:relative}.nav-dot:after{content:attr(data-label);position:absolute;right:18px;top:50%;transform:translateY(-50%) translate(4px);font-family:var(--font-sans);font-size:10px;color:var(--text-muted);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}.nav-dot.active:after{opacity:1;transform:translateY(-50%) translate(0)}.nav-dot.active{background:var(--rose);box-shadow:0 0 0 4px #a0606e1a;transform:scale(1.15)}@media(max-width:480px){.scene{min-height:90vh;padding:60px 20px}.gi img{height:150px}.gi--w img{height:190px}.gi--t img{min-height:310px}.detail-row{gap:14px}.bank-row{flex-direction:column;gap:4px}.bank-lbl{margin-right:0}.bank-val{text-align:left}}@media(min-width:769px){.scene-content{max-width:720px}.gi img{height:240px}.gi--w img{height:300px}.gi--t img{min-height:490px}}/*! PhotoSwipe main CSS by Dmytro Semenov | photoswipe.com */.pswp{--pswp-bg: #000;--pswp-placeholder-bg: #222;--pswp-root-z-index: 100000;--pswp-preloader-color: rgba(79, 79, 79, .4);--pswp-preloader-color-secondary: rgba(255, 255, 255, .9);--pswp-icon-color: #fff;--pswp-icon-color-secondary: #4f4f4f;--pswp-icon-stroke-color: #4f4f4f;--pswp-icon-stroke-width: 2px;--pswp-error-text-color: var(--pswp-icon-color)}.pswp{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--pswp-root-z-index);display:none;touch-action:none;outline:0;opacity:.003;contain:layout style size;-webkit-tap-highlight-color:rgba(0,0,0,0)}.pswp:focus{outline:0}.pswp *{box-sizing:border-box}.pswp img{max-width:none}.pswp--open{display:block}.pswp,.pswp__bg{transform:translateZ(0);will-change:opacity}.pswp__bg{opacity:.005;background:var(--pswp-bg)}.pswp,.pswp__scroll-wrap{overflow:hidden}.pswp__scroll-wrap,.pswp__bg,.pswp__container,.pswp__item,.pswp__content,.pswp__img,.pswp__zoom-wrap{position:absolute;top:0;left:0;width:100%;height:100%}.pswp__img,.pswp__zoom-wrap{width:auto;height:auto}.pswp--click-to-zoom.pswp--zoom-allowed .pswp__img{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img,.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img:active,.pswp__img{cursor:-webkit-zoom-out;cursor:-moz-zoom-out;cursor:zoom-out}.pswp__container,.pswp__img,.pswp__button,.pswp__counter{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pswp__item{z-index:1;overflow:hidden}.pswp__hidden{display:none!important}.pswp__content{pointer-events:none}.pswp__content>*{pointer-events:auto}.pswp__error-msg-container{display:grid}.pswp__error-msg{margin:auto;font-size:1em;line-height:1;color:var(--pswp-error-text-color)}.pswp .pswp__hide-on-close{opacity:.005;will-change:opacity;transition:opacity var(--pswp-transition-duration) cubic-bezier(.4,0,.22,1);z-index:10;pointer-events:none}.pswp--ui-visible .pswp__hide-on-close{opacity:1;pointer-events:auto}.pswp__button{position:relative;display:block;width:50px;height:60px;padding:0;margin:0;overflow:hidden;cursor:pointer;background:none;border:0;box-shadow:none;opacity:.85;-webkit-appearance:none;-webkit-touch-callout:none}.pswp__button:hover,.pswp__button:active,.pswp__button:focus{transition:none;padding:0;background:none;border:0;box-shadow:none;opacity:1}.pswp__button:disabled{opacity:.3;cursor:auto}.pswp__icn{fill:var(--pswp-icon-color);color:var(--pswp-icon-color-secondary)}.pswp__icn{position:absolute;top:14px;left:9px;width:32px;height:32px;overflow:hidden;pointer-events:none}.pswp__icn-shadow{stroke:var(--pswp-icon-stroke-color);stroke-width:var(--pswp-icon-stroke-width);fill:none}.pswp__icn:focus{outline:0}div.pswp__img--placeholder,.pswp__img--with-bg{background:var(--pswp-placeholder-bg)}.pswp__top-bar{position:absolute;left:0;top:0;width:100%;height:60px;display:flex;flex-direction:row;justify-content:flex-end;z-index:10;pointer-events:none!important}.pswp__top-bar>*{pointer-events:auto;will-change:opacity}.pswp__button--close{margin-right:6px}.pswp__button--arrow{position:absolute;width:75px;height:100px;top:50%;margin-top:-50px}.pswp__button--arrow:disabled{display:none;cursor:default}.pswp__button--arrow .pswp__icn{top:50%;margin-top:-30px;width:60px;height:60px;background:none;border-radius:0}.pswp--one-slide .pswp__button--arrow{display:none}.pswp--touch .pswp__button--arrow{visibility:hidden}.pswp--has_mouse .pswp__button--arrow{visibility:visible}.pswp__button--arrow--prev{right:auto;left:0}.pswp__button--arrow--next{right:0}.pswp__button--arrow--next .pswp__icn{left:auto;right:14px;transform:scaleX(-1)}.pswp__button--zoom{display:none}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__zoom-icn-bar-v{display:none}.pswp__preloader{position:relative;overflow:hidden;width:50px;height:60px;margin-right:auto}.pswp__preloader .pswp__icn{opacity:0;transition:opacity .2s linear;animation:pswp-clockwise .6s linear infinite}.pswp__preloader--active .pswp__icn{opacity:.85}@keyframes pswp-clockwise{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pswp__counter{height:30px;margin-top:15px;margin-inline-start:20px;font-size:14px;line-height:30px;color:var(--pswp-icon-color);text-shadow:1px 1px 3px var(--pswp-icon-color-secondary);opacity:.85}.pswp--one-slide .pswp__counter{display:none}
