:root{--blue:#a3c1da;--blue-light:#b8d4e8;--blue-sky:#d9e4ec;--blue-deep:#8eb5d4;--cream:#f2e8d5;--grey:#d1d1d1;--white:#fff;--glass:#ffffffeb;--glass-border:#fffffffa;--text:#2a3d4d;--text-muted:#4a6275;--btn:#7a9bb5;--btn-hover:#6b8fa3;--shadow-card:0 16px 48px #375a7824;--shadow-soft:0 20px 50px #34526e2e;--font-serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-sans:"Montserrat", system-ui, sans-serif;--font-script:"Marck Script", "Parisienne", cursive}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;font-family:var(--font-serif);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#c8dff0;margin:0;font-weight:400;overflow-x:hidden}#root{width:100%;min-height:100svh}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-atmosphere{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.page-atmosphere__photo{will-change:transform;background:url(/hero-background.png) top/cover no-repeat;position:absolute;inset:-7%}.page-atmosphere__overlay{pointer-events:none;background:linear-gradient(#ffffff1f 0%,#ffffff14 40%,#f0f8ff2e 100%);position:absolute;inset:0}.page-atmosphere__sky{display:none}.page-atmosphere__warm-glow{pointer-events:none;will-change:transform;background:radial-gradient(75% 45% at 50% 0,#fffaf047 0%,#f5e4c81a 35%,#0000 65%);position:absolute;inset:0}.page-atmosphere__lace{display:none}.page-atmosphere__florals{pointer-events:none;will-change:transform;width:100%;height:100%;position:absolute;inset:0}.page-atmosphere__bokeh{background:radial-gradient(circle,#fff 0%,#ffffff26 55%,#0000 72%);border-radius:50%;position:absolute;box-shadow:0 0 12px #ffffffa6}.page-atmosphere__gold{background:radial-gradient(circle,#fff9e6 0%,#f5d7a080 40%,#0000 70%);border-radius:50%;position:absolute;box-shadow:0 0 14px #ffe6b499}.page-atmosphere__vignette{pointer-events:none;background:radial-gradient(85% 70% at 50% 45%,#0000 50%,#466e8c14 100%);position:absolute;inset:0}.wedding-petals{pointer-events:none;position:absolute;inset:0;overflow:hidden}.wedding-petals__petal{opacity:.6;background:linear-gradient(135deg,#fffffff2,#fff8fcb3);border-radius:50% 0 50% 50%;position:absolute;top:0;box-shadow:0 0 6px #ffffff80}.wedding-page{z-index:1;flex-direction:column;min-height:100svh;display:flex;position:relative}.glass-card{background:var(--glass);-webkit-backdrop-filter:blur(18px);border:1px solid var(--glass-border);box-shadow:var(--shadow-card), inset 0 1px 0 #fff9;border-radius:22px;position:relative}.glass-card>*{z-index:1;position:relative}.glass-card--framed{position:relative}.glass-card--framed:before{content:"";pointer-events:none;border:1px solid #a3c1da73;border-radius:14px;position:absolute;inset:14px}.hero-section{isolation:isolate;text-align:center;width:100%;min-height:100svh;position:relative;overflow:hidden visible}.hero-section__scene{z-index:0;will-change:transform;position:absolute;inset:0}.hero-scene{pointer-events:none;position:absolute;inset:0}.hero-scene__sparkles{z-index:2;pointer-events:none;position:absolute;inset:0}.hero-scene__sparkle{background:#fff;border-radius:50%;position:absolute;box-shadow:0 0 12px #fffc}.hero-scene__sparkle--gold{background:radial-gradient(circle,#fffef5 0%,#f5e0b8 100%);box-shadow:0 0 14px #ffdca0bf}.hero-section__content{z-index:3;box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:100%;min-height:100svh;padding:clamp(108px,15vh,140px) clamp(20px,5vw,28px) clamp(48px,8vh,72px);display:flex;position:relative}.hero-section__content:before{display:none}.hero-section__info-panel{-webkit-backdrop-filter:blur(14px);background:#183044ad;border:1px solid #fff3;border-radius:24px;flex-direction:column;align-items:center;gap:2px;width:min(100%,660px);margin:8px auto 0;padding:clamp(22px,4.5vw,32px) clamp(20px,5vw,36px) clamp(24px,4.5vw,32px);display:flex;position:relative;box-shadow:0 16px 48px #0f23376b,inset 0 1px #ffffff24}.hero-section__info-panel--alive{animation:7s ease-in-out infinite hero-card-breathe}.hero-section__eyebrow{max-width:100%;font-family:var(--font-sans);letter-spacing:clamp(.22em,2.5vw,.5em);text-transform:uppercase;color:var(--white);text-shadow:0 1px 3px #00000073,0 4px 24px #00000059;margin:0 0 16px;font-size:clamp(.52rem,2.8vw,.65rem);font-weight:500}.hero-section__title{width:100%;max-width:min(100%,720px);font-family:var(--font-script);letter-spacing:.02em;text-transform:none;color:var(--white);text-shadow:0 1px 3px #000000a6,0 4px 24px #0000008c,0 0 40px #1e374b73;flex-wrap:wrap;justify-content:center;align-items:center;gap:.1em .28em;margin:0 0 28px;padding:0 4px;font-size:clamp(2.2rem,9vw,5.5rem);font-weight:400;line-height:1.08;display:flex}.hero-section__title-line,.hero-section__title-amp{max-width:100%;display:inline-block}.hero-section__title-amp{color:#fff8e8;filter:drop-shadow(0 0 18px #ffe8b4b3);font-size:.82em;line-height:1}.hero-section__subtitle{max-width:min(620px,100%);font-family:var(--font-serif);letter-spacing:.04em;color:#fffffffa;text-shadow:0 1px 2px #0000008c,0 2px 14px #00000073;margin:0 auto 20px;padding:0 4px;font-size:clamp(1.22rem,3.4vw,1.65rem);font-style:italic;font-weight:500;line-height:1.75}.hero-section__ceremony{max-width:560px;font-family:var(--font-serif);letter-spacing:.04em;color:#fffffffa;text-shadow:0 1px 2px #0000008c,0 2px 12px #0006;margin:14px 0 0;font-size:clamp(1.1rem,3vw,1.38rem);font-style:italic;font-weight:500;line-height:1.65}.hero-section__address{letter-spacing:.1em;color:#fffffff5;text-shadow:0 1px 2px #0000008c,0 2px 10px #0006;margin:8px 0 0;font-size:clamp(.88rem,2.3vw,1.04rem);font-weight:600}.hero-section__typewriter-text{display:inline}.hero-section__typewriter-text.is-active:after{content:"";vertical-align:-.08em;opacity:.82;background:currentColor;width:1px;height:.85em;margin-left:4px;animation:.8s steps(2,end) infinite hero-typewriter-caret;display:inline-block}.hero-section__typewriter-text.is-complete:after{opacity:0;animation:none}.hero-section__word-reveal{flex-wrap:wrap;justify-content:center;gap:0 .28em;display:inline-flex}.hero-section__word-reveal span{will-change:transform, opacity, filter;display:inline-block}.hero-section__qr-link{justify-content:center;align-self:center;margin-top:20px;text-decoration:none;display:flex}.hero-section__qr{object-fit:contain;background:#fffffffa;border-radius:12px;width:clamp(96px,24vw,112px);height:clamp(96px,24vw,112px);padding:8px;display:block;box-shadow:0 8px 24px #00000047}.hero-section__date{max-width:100%;font-family:var(--font-serif);letter-spacing:clamp(.12em,1.5vw,.22em);color:var(--white);text-shadow:0 1px 2px #0000008c,0 3px 16px #00000073,0 0 28px #fff2cd6b;margin:0;font-size:clamp(1.35rem,5vw,2.5rem);font-weight:600;display:inline-block;position:relative;overflow:hidden}.hero-section__date:after{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 28%,#ffffff1f 40%,#fff8dcd1 50%,#ffffff1f 60%,#0000 72%);animation:4.6s ease-in-out infinite hero-date-shimmer;position:absolute;inset:-12% -35%;transform:translate(-120%)skew(-18deg)}.hero-section__time{max-width:100%;font-family:var(--font-serif);letter-spacing:clamp(.16em,1.8vw,.3em);color:#fffffffa;text-shadow:0 1px 2px #0000008c,0 2px 14px #0006;margin:0;font-size:clamp(1.2rem,4vw,1.95rem);font-weight:500}.site-header{z-index:130;pointer-events:none;justify-content:space-between;align-items:center;padding:22px 28px;display:flex;position:fixed;top:0;left:0;right:0}.site-header>*{pointer-events:auto}.menu-btn{z-index:1;-webkit-backdrop-filter:blur(10px);cursor:pointer;background:#2d4b6959;border:1px solid #ffffffd9;border-radius:50%;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;padding:0 12px;display:flex;position:relative;box-shadow:0 6px 22px #0000002e}.menu-btn span{background:#fffffff2;border-radius:1px;height:1.5px;transition:transform .35s,opacity .25s;display:block}.menu-btn--open span:first-child{transform:translateY(6.5px)rotate(45deg)}.menu-btn--open span:nth-child(2){opacity:0}.menu-btn--open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.music-btn{z-index:1;-webkit-backdrop-filter:blur(10px);max-width:calc(100vw - 88px);font-family:var(--font-sans);letter-spacing:.1em;color:#fff;cursor:pointer;text-shadow:0 1px 3px #0000004d;background:#2d4b6959;border:1px solid #ffffffd9;border-radius:999px;align-items:center;gap:8px;padding:11px 20px;font-size:.68rem;font-weight:500;display:inline-flex;position:relative;box-shadow:0 6px 22px #0000002e}.music-btn__text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.music-btn__icon{font-size:.85rem}.music-btn--active{background:#ffffff6b}.music-welcome{z-index:100;background:radial-gradient(70% 55% at 50% 38%,#ffffffb8,#0000 72%),linear-gradient(#eef3f8 0%,#d6e2ec 100%);flex-direction:column;justify-content:flex-start;align-items:center;gap:6px;padding:26vh 24px 28px;display:flex;position:fixed;inset:0;overflow:hidden}.music-welcome__stage{flex-direction:column;align-items:center;gap:6px;display:flex}.music-welcome__heading{font-family:var(--font-script);text-align:center;color:var(--text);text-shadow:0 2px 16px #ffffffb3;will-change:transform, opacity;margin:0;font-size:clamp(1.8rem,5.5vw,2.6rem);line-height:1.1;position:relative}.welcome-envelope{margin-top:0}.music-welcome__hint{font-family:var(--font-sans);letter-spacing:.18em;color:#4a6275d9;margin:14px 0 0;font-size:.78rem;position:relative}.music-welcome__glow{pointer-events:none;background:radial-gradient(circle,#fff9,#0000 64%);border-radius:50%;width:min(80vw,720px);height:min(80vw,720px);animation:7s ease-in-out infinite welcome-glow;position:absolute}.welcome-envelope{cursor:pointer;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 28px 38px #19344a47);will-change:transform;background:0 0;border:none;width:min(82vw,420px);margin:0;padding:0;display:block;position:relative}.welcome-envelope:disabled{cursor:default}.welcome-envelope__svg{width:100%;height:auto;animation:5.5s ease-in-out infinite welcome-envelope-float;display:block;overflow:visible}.welcome-envelope__flap-group,.welcome-envelope__seal-group{transform-box:fill-box}.welcome-envelope--open .welcome-envelope__svg{animation:none}.site-nav__backdrop{z-index:120;-webkit-backdrop-filter:blur(10px);cursor:pointer;background:radial-gradient(80% 60% at 50% 35%,#ffffff1f,#0000 70%),#233c5594;border:none;padding:0;position:fixed;inset:0}.site-nav{z-index:121;pointer-events:none;justify-content:center;align-items:center;padding:88px 20px 24px;display:flex;position:fixed;inset:0}.site-nav__panel{pointer-events:auto;width:min(100%,420px);max-height:calc(100svh - 112px);box-shadow:var(--shadow-card);overscroll-behavior:contain;background:#fffffff0;border:1px solid #ffffffb8;border-radius:22px;padding:28px 24px 24px;overflow-y:auto}.site-nav__eyebrow{font-family:var(--font-sans);letter-spacing:.34em;text-transform:uppercase;text-align:center;color:var(--text-muted);margin:0 0 18px;font-size:.58rem;font-weight:500}.site-nav__list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.site-nav a{font-family:var(--font-serif);letter-spacing:.04em;text-align:center;color:var(--text);border-radius:14px;padding:14px 18px;font-size:clamp(1.05rem,4.2vw,1.35rem);font-style:italic;line-height:1.35;text-decoration:none;transition:background .3s,color .3s,transform .3s;display:block}.site-nav a:hover,.site-nav a:focus-visible,.site-nav__link--active{color:var(--blue-deep);background:#a3c1da38;outline:none}.site-nav__link--active{position:relative;box-shadow:inset 0 0 0 1px #a3c1da57}.site-nav__link--active:before{content:"";background:var(--blue-deep);border-radius:50%;width:6px;height:6px;position:absolute;top:50%;left:12px;transform:translateY(-50%);box-shadow:0 0 14px #7a9bb5cc}.site-nav a:active{transform:scale(.985)}.page-main{z-index:2;width:100%;max-width:1140px;margin:0 auto;padding:20px 24px 100px;position:relative}.section{text-align:center;padding:48px 0 40px}.section-title-wrap{justify-content:center;align-items:center;gap:20px;margin-bottom:28px;display:flex}.section-title{font-family:var(--font-serif);letter-spacing:.24em;text-transform:uppercase;color:var(--text);text-shadow:0 1px 12px #ffffffd9;margin:0;font-size:clamp(1rem,2.8vw,1.35rem);font-weight:500}.ornament-svg{width:64px;height:14px;color:var(--text-muted);flex-shrink:0}.section-title--simple{letter-spacing:.34em;margin-bottom:12px;display:block}.section-kicker{font-family:var(--font-script);color:var(--blue-deep);text-shadow:0 1px 14px #ffffffe6;margin:0 0 8px;font-size:clamp(2rem,6vw,3rem);line-height:1.1}.section-divider{background:linear-gradient(90deg, transparent, var(--text-muted), transparent);width:40px;height:1px;margin:0 auto 36px}.countdown-card{padding:40px 28px 36px}.countdown-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.countdown-digit__value-wrap{perspective:700px;justify-content:center;align-items:center;min-height:3.4rem;display:flex;overflow:hidden}.countdown-digit__value{transform-origin:50% 55%;backface-visibility:hidden;font-family:var(--font-serif);letter-spacing:.04em;color:var(--text);font-size:clamp(2.2rem,6.5vw,3.4rem);font-weight:500;display:inline-block}.countdown-digit__label{letter-spacing:.32em;color:var(--text-muted);margin-top:10px;font-size:.58rem;display:block}.program-timeline{flex-direction:column;gap:22px;max-width:920px;margin:0 auto;padding:4px 0;display:flex;position:relative}.program-timeline:before{content:"";pointer-events:none;background:linear-gradient(#0000 0%,#7a9bb559 8%,#7a9bb5a6 50%,#7a9bb559 92%,#0000 100%);border-radius:1px;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.program-timeline__item{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:28px;display:grid;position:relative}.program-timeline__item--left .program-card{grid-column:1;margin-right:18px}.program-timeline__item--right .program-card{grid-column:2;margin-left:18px}.program-timeline__marker{z-index:2;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.program-timeline__marker span{background:var(--blue-deep);border:3px solid #fff;border-radius:50%;width:12px;height:12px;display:block;box-shadow:0 0 0 1px #7a9bb573,0 2px 10px #7a9bb559}.program-card{text-align:left;grid-template-columns:auto 1fr;align-items:center;gap:18px;padding:24px 26px;display:grid}.program-card__icon{width:58px;height:58px;color:var(--text-muted);margin:0}.program-card__icon svg{width:100%;height:100%}.program-card__time{font-family:var(--font-serif);letter-spacing:.06em;color:var(--text);margin:0 0 8px;font-size:clamp(1.25rem,3vw,1.55rem)}.program-card__title{font-family:var(--font-serif);letter-spacing:.04em;text-transform:none;color:var(--text);margin:0 0 12px;font-size:1.15rem;font-style:italic;font-weight:600}.program-card__description{font-family:var(--font-serif);color:var(--text-muted);letter-spacing:.02em;margin:0;font-size:.82rem;line-height:1.65}.love-story-section{position:relative}.love-story-card{padding:34px}.love-story-layout{grid-template-columns:.9fr 1.1fr;align-items:center;gap:28px;display:grid}.love-story-chapters{text-align:left;gap:14px;display:grid}.love-story-chapter{background:#ffffff9e;border:1px solid #a3c1da47;border-radius:18px;padding:22px 22px 22px 28px;position:relative}.love-story-chapter:before{content:"";background:linear-gradient(180deg, transparent, var(--blue-deep), transparent);opacity:.6;width:1px;position:absolute;top:20px;bottom:20px;left:14px}.love-story-chapter__year{font-family:var(--font-sans);letter-spacing:.28em;color:var(--blue-deep);margin:0 0 4px;font-size:.62rem}.love-story-chapter h3{font-family:var(--font-serif);color:var(--text);margin:0 0 8px;font-size:1.25rem;font-style:italic}.love-story-chapter p:last-child{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.7}.love-story-gallery{min-width:0}.banquet-section{text-align:left}.banquet-card{padding:0;overflow:hidden}.banquet-grid{grid-template-columns:1fr 1fr;align-items:stretch;display:grid}.banquet-grid__left{background:#ffffff8c;border-right:1px solid #a3c1da59;flex-direction:column;justify-content:center;padding:56px 48px;display:flex}.banquet-grid__right{background:linear-gradient(160deg,#ffffffd1,#f0f8ffc7);align-items:stretch;padding:56px 44px;display:flex;position:relative}.banquet-venue{background:#fffffff2;border:1px solid #ffffffe6;border-radius:18px;flex-direction:column;flex:1;width:100%;min-height:100%;padding:32px 28px 28px;display:flex;box-shadow:0 12px 36px #375a781f}.banquet-venue__label{letter-spacing:.28em;text-transform:uppercase;color:var(--text-muted);margin:0 0 12px;font-size:.6rem;font-weight:500}.banquet-venue__name{font-family:var(--font-script);color:var(--blue-deep);margin:0 0 14px;font-size:clamp(2rem,4.5vw,2.8rem);font-weight:400;line-height:1.05}.banquet-venue__desc{color:var(--text-muted);margin:0 0 20px;font-size:.78rem;line-height:1.65}.banquet-venue__address{letter-spacing:.02em;color:var(--text);align-items:flex-start;gap:10px;margin-bottom:22px;font-size:.74rem;line-height:1.5;text-decoration:none;transition:color .35s;display:inline-flex}.banquet-venue__address:hover{color:var(--blue-deep)}.banquet-venue__address svg{width:22px;height:22px;color:var(--blue-deep);flex-shrink:0;margin-top:1px}.banquet-venue__qr-wrap{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;max-width:320px;margin:20px auto 0;display:flex}.banquet-venue__qr-link{width:100%;text-decoration:none;display:block}.banquet-venue__qr.gallery-image-wrap{aspect-ratio:1;transform-origin:50%;background:linear-gradient(165deg,#fffffffa,#e8f4fceb);border:1px solid #a3c1da8c;border-radius:18px;justify-content:center;align-items:center;width:min(100%,260px);height:min(100%,260px);margin:0 auto;padding:16px;display:flex;overflow:hidden;box-shadow:0 14px 36px #375a7824,inset 0 1px #fffffff2}.banquet-venue__qr .gallery-image{object-fit:contain;width:100%;max-width:228px;height:100%;max-height:228px;margin:0 auto;display:block}.banquet-venue__qr-caption{text-align:center;max-width:280px;font-family:var(--font-serif);letter-spacing:.02em;color:var(--text-muted);margin:18px 0 0;font-size:.76rem;font-style:italic;line-height:1.6}.banquet-eyebrow{letter-spacing:.42em;text-transform:uppercase;color:var(--text-muted);margin:0 0 18px;font-size:.62rem;font-weight:500}.banquet-title{font-family:var(--font-script);color:var(--blue-deep);margin:0 0 24px;font-size:clamp(2.8rem,6.5vw,4.2rem);font-weight:400;line-height:1}.banquet-text{max-width:440px;font-family:var(--font-serif);color:var(--text-muted);margin:0 0 32px;font-size:.9rem;font-style:italic;line-height:1.8}.banquet-features{grid-template-columns:1fr 1fr;gap:14px;margin:0;padding:0;list-style:none;display:grid}.banquet-features__item{letter-spacing:.04em;color:var(--text);background:#ffffffeb;border:1px solid #ffffffeb;border-radius:14px;padding:16px 18px;font-size:.74rem;box-shadow:0 8px 24px #375a7814}.banquet-gallery-carousel{margin-top:28px}.gallery-carousel{position:relative}.gallery-carousel__viewport{touch-action:pan-y;border:1px solid #ffffffeb;border-radius:14px;position:relative;overflow:hidden;box-shadow:0 8px 24px #375a781a}.gallery-carousel__track{width:100%;display:flex}.gallery-carousel__slide{flex:0 0 100%;min-width:0}.gallery-carousel__slide-button{cursor:zoom-in;background:0 0;border:none;width:100%;padding:0;display:block}.gallery-carousel__image{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.gallery-carousel__nav{z-index:2;width:42px;height:42px;color:var(--text);cursor:pointer;background:#fffffff0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .3s,transform .3s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 6px 20px #3755732e}.gallery-carousel__nav svg{width:18px;height:18px}.gallery-carousel__nav:hover{background:#fff;transform:translateY(-50%)scale(1.05)}.gallery-carousel__nav--prev{left:10px}.gallery-carousel__nav--next{right:10px}.gallery-carousel__footer{justify-content:space-between;align-items:center;gap:12px;margin-top:14px;display:flex}.gallery-carousel__dots{align-items:center;gap:8px;display:flex}.gallery-carousel__dot{cursor:pointer;background:#7a9bb559;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:transform .3s,background .3s}.gallery-carousel__dot--active{background:var(--btn);transform:scale(1.15)}.gallery-carousel__counter{letter-spacing:.12em;color:var(--text-muted);margin:0;font-size:.68rem}.gallery-lightbox{z-index:130;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:radial-gradient(70% 55% at 50% 40%,#ffffff1a,#0000 70%),#192d41d1;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.gallery-lightbox__close{z-index:3;width:44px;height:44px;color:var(--text);cursor:pointer;box-shadow:var(--shadow-soft);background:#ffffffeb;border:none;border-radius:50%;font-size:1.6rem;line-height:1;position:absolute;top:20px;right:20px}.gallery-lightbox__content{touch-action:pan-y;flex-direction:column;align-items:center;width:min(920px,92vw);display:flex;position:relative}.gallery-lightbox__image{width:100%;max-height:78vh;box-shadow:var(--shadow-card);object-fit:contain;border-radius:12px}.gallery-lightbox__content .gallery-carousel__nav{background:#fffffff5;width:48px;height:48px}.gallery-lightbox__content .gallery-carousel__nav--prev{left:-8px}.gallery-lightbox__content .gallery-carousel__nav--next{right:-8px}.gallery-lightbox__caption{text-align:center;max-width:100%;font-family:var(--font-serif);color:#ffffffeb;margin:16px 0 0;font-size:.82rem;font-style:italic;line-height:1.5}.dress-code-section{width:100vw;margin-left:calc(50% - 50vw);padding:48px max(24px,50vw - 570px) 40px}.dress-code-card{width:100%;padding:48px clamp(28px,5vw,64px) 44px;position:relative;overflow:visible}.dress-code-card__bow{z-index:2;filter:drop-shadow(0 8px 14px #375a782e);pointer-events:none;width:clamp(56px,12vw,78px);height:auto;position:absolute;top:-18px}.dress-code-card__bow--left{left:clamp(18px,4vw,36px)}.dress-code-card__bow--right{right:clamp(18px,4vw,36px)}.dress-code-intro{max-width:640px;font-family:var(--font-serif);letter-spacing:.03em;color:var(--text-muted);margin:0 auto 32px;font-size:clamp(.92rem,2vw,1.02rem);font-style:italic;line-height:1.85}.palette--wide{flex-wrap:wrap;gap:clamp(20px,4vw,48px)}.palette--wide li{flex-direction:column;align-items:center;gap:12px;display:flex}.palette__name{letter-spacing:.08em;color:var(--text-muted);font-size:.62rem}.gift-wishes-section{width:100vw;margin-left:calc(50% - 50vw);padding:24px max(24px,50vw - 570px) 40px}.gift-wishes-card{text-align:center;width:100%;padding:48px clamp(28px,5vw,64px) 44px}.gift-wishes-text{max-width:640px;font-family:var(--font-serif);letter-spacing:.03em;color:var(--text-muted);margin:0 auto 20px;font-size:clamp(.92rem,2vw,1.02rem);font-style:italic;line-height:1.85}.gift-wishes-text:last-of-type{margin-bottom:0}.duo-grid{grid-template-columns:1fr 1fr;align-items:stretch;gap:18px;display:grid}.duo-card{height:100%;padding:36px 28px 32px}.card-title{font-family:var(--font-serif);letter-spacing:.28em;text-transform:uppercase;color:var(--text);margin:0 0 10px;font-size:.78rem;font-weight:600}.card-subtitle{font-family:var(--font-serif);color:var(--text-muted);margin:0 0 28px;font-size:.92rem;font-style:italic}.palette{justify-content:center;gap:18px;margin:0 0 20px;padding:0;list-style:none;display:flex}.palette__swatch{border:2px solid #fffffff2;border-radius:50%;width:48px;height:48px;transition:transform .5s cubic-bezier(.22,1,.36,1);display:block;box-shadow:0 4px 16px #3755731f}.palette li:hover .palette__swatch{transform:scale(1.05)}.palette-summary{letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:.62rem;line-height:1.6}.duo-card--qr{flex-direction:column;align-items:center;display:flex}.qr-wrap{background:#fff;border-radius:10px;margin:8px 0 18px;padding:8px;overflow:hidden;box-shadow:0 6px 20px #3755731a}.gallery-image-wrap{border-radius:6px;display:block;overflow:hidden}.gallery-image{width:200px;height:200px;display:block}.card-caption{max-width:280px;color:var(--text-muted);margin:0;font-size:.72rem;line-height:1.6}.rsvp-section{padding-top:24px}.rsvp-card{max-width:680px;margin:0 auto;padding:36px 40px 40px}.rsvp-card__title{text-align:center;margin-bottom:18px}.rsvp-card__intro{text-align:center;max-width:520px;margin:0 auto 28px}.rsvp-card__intro p{font-family:var(--font-serif);letter-spacing:.03em;color:var(--text-muted);margin:0 0 12px;font-size:clamp(.9rem,2vw,1rem);font-style:italic;line-height:1.75}.rsvp-card__intro p:last-child{margin-bottom:0}.rsvp-card__deadline{letter-spacing:.04em;color:var(--blue-deep);font-size:clamp(1.05rem,2.6vw,1.22rem);font-style:normal;font-weight:700}.rsvp-form{text-align:left;flex-direction:column;gap:14px;display:flex}.rsvp-form__row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.rsvp-form__guest-details{gap:14px;display:grid;overflow:hidden}.rsvp-form label,.rsvp-form__field-label{display:block}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{width:100%;font-family:var(--font-serif);color:var(--text);background:#fffffff2;border:1px solid #a3c1daa6;border-radius:14px;outline:none;padding:15px 18px;font-size:.92rem;font-weight:400;transition:border-color .35s,box-shadow .35s}.rsvp-form input::placeholder,.rsvp-form textarea::placeholder{color:var(--text-muted)}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{border-color:var(--btn);box-shadow:0 0 0 3px #7a9bb52e}.rsvp-form textarea{resize:vertical;min-height:108px}.rsvp-form__field-label{display:block}.rsvp-form__field-title{font-family:var(--font-serif);letter-spacing:.04em;color:var(--text);margin-bottom:10px;font-size:.9rem;font-style:italic;display:block}.rsvp-form__error{font-family:var(--font-serif);color:#9b4d4d;text-align:center;margin:0;font-size:.82rem;line-height:1.5}.btn-primary{background:var(--btn);width:100%;font-family:var(--font-serif);letter-spacing:.24em;text-transform:uppercase;color:#fff;cursor:pointer;box-shadow:var(--shadow-soft);border:none;border-radius:14px;margin-top:6px;padding:17px 24px;font-size:.72rem;font-weight:500;transition:background .4s,box-shadow .4s}.btn-primary:hover{background:var(--btn-hover)}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.rsvp-footer{text-align:center;margin-top:40px}.rsvp-footer__wait{letter-spacing:.38em;color:var(--text-muted);margin:0 0 10px;font-size:.68rem}.rsvp-footer__sign{font-family:var(--font-script);color:var(--text);margin:0;font-size:clamp(2.6rem,7vw,3.6rem);line-height:1.2}.rsvp-footer__sign span{opacity:.75;font-size:.85em}.rsvp-success{z-index:120;-webkit-backdrop-filter:blur(12px);background:radial-gradient(70% 55% at 50% 40%,#ffffff29,#0000 70%),#2d4b697a;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.rsvp-success__burst{z-index:0;pointer-events:none;position:absolute;inset:0}.rsvp-success__burst span{--burst-angle:calc(var(--burst-index) * 30deg);opacity:0;width:10px;height:14px;transform:translate(-50%, -50%) rotate(var(--burst-angle));animation:1.65s ease-out forwards rsvp-petal-burst;animation-delay:calc(var(--burst-index) * 35ms);background:linear-gradient(135deg,#fffffff2,#a3c1dab8);border-radius:50% 0 50% 50%;position:absolute;top:50%;left:50%}.rsvp-success__card{z-index:1;text-align:center;background:#fffffff0;border:1px solid #fffffff2;border-radius:24px;width:min(100%,520px);padding:48px 36px 40px;position:relative;overflow:hidden;box-shadow:0 24px 64px #375a7838}.rsvp-success__petals{pointer-events:none;position:absolute;inset:0}.rsvp-success__petals span{opacity:.72;background:linear-gradient(135deg,#a3c1daa3,#ffffffeb);border-radius:50% 0 50% 50%;width:12px;height:16px;animation:4.5s ease-in-out infinite success-petal-float;position:absolute}.rsvp-success__petals span:first-child{top:18%;left:16%}.rsvp-success__petals span:nth-child(2){animation-delay:.7s;top:16%;right:18%}.rsvp-success__petals span:nth-child(3){animation-delay:1.2s;bottom:18%;left:22%}.rsvp-success__petals span:nth-child(4){animation-delay:1.9s;bottom:16%;right:22%}.rsvp-success__heart{width:64px;height:64px;color:var(--blue-deep);background:linear-gradient(145deg,#fffffffa,#d9e4eceb);border-radius:50%;place-items:center;margin:0 auto 14px;font-size:2rem;animation:2.2s ease-in-out infinite success-heart-beat;display:grid;position:relative;box-shadow:0 12px 28px #7a9bb538}.rsvp-success__title{font-family:var(--font-script);color:var(--blue-deep);margin:0 0 20px;font-size:clamp(2rem,6vw,2.8rem);font-weight:400;line-height:1.2}.rsvp-success__text{font-family:var(--font-serif);color:var(--text-muted);margin:0 0 28px;font-size:clamp(.95rem,2.2vw,1.05rem);font-style:italic;line-height:1.75}.rsvp-success__close{background:var(--btn);min-width:180px;font-family:var(--font-serif);letter-spacing:.18em;text-transform:uppercase;color:#fff;cursor:pointer;box-shadow:var(--shadow-soft);border:none;border-radius:14px;padding:14px 28px;font-size:.72rem;font-weight:500;transition:background .35s}.rsvp-success__close:hover{background:var(--btn-hover)}@media (width<=900px){.program-timeline:before{left:28px;transform:none}.program-timeline__item{grid-template-columns:1fr;padding-left:56px}.program-timeline__item--left .program-card,.program-timeline__item--right .program-card{grid-column:1;margin:0}.program-timeline__marker{left:28px;transform:translate(-50%,-50%)}.duo-grid,.love-story-layout,.banquet-grid{grid-template-columns:1fr}.banquet-grid__left{border-bottom:1px solid #a3c1da59;border-right:none;padding:40px 28px}.banquet-grid__right{padding:36px 28px}.gallery-lightbox__content .gallery-carousel__nav--prev{left:4px}.gallery-lightbox__content .gallery-carousel__nav--next{right:4px}.gallery-carousel__nav{width:38px;height:38px}.countdown-grid{grid-template-columns:repeat(2,1fr);gap:28px 16px}.section-title-wrap{gap:12px}.ornament-svg{width:40px}}@media (width<=520px){.site-header{padding:16px}.program-timeline{gap:16px}.program-timeline:before{left:20px}.program-timeline__item{padding-left:44px}.program-timeline__marker{left:20px}.program-timeline__marker span{border-width:2px;width:10px;height:10px}.program-card{text-align:center;grid-template-columns:1fr;gap:12px;padding:22px 20px}.program-card__icon{margin:0 auto}.love-story-card{padding:24px 18px}.welcome-envelope{width:min(88vw,340px)}.music-welcome{gap:18px}.music-btn{padding:9px 12px;font-size:.6rem}.music-btn__text{display:none}.site-nav{padding:76px 16px 20px}.site-nav__panel{padding:24px 18px 18px}.site-nav a{padding:13px 14px;font-size:1.02rem}.page-main{padding:12px 16px 80px}.rsvp-card{padding:32px 22px 28px}.rsvp-form__row{grid-template-columns:1fr}.hero-section__content{padding:clamp(96px,14vh,120px) clamp(16px,4vw,20px) clamp(40px,7vh,56px)}.hero-section__info-panel{border-radius:20px;width:100%;padding:20px 18px 22px}.hero-section__title{flex-direction:column;gap:.02em;font-size:clamp(2rem,11vw,2.85rem)}.hero-section__title-amp{margin:.02em 0;font-size:.72em}.hero-section__eyebrow{letter-spacing:.24em}.hero-section__address{letter-spacing:.08em;padding:0 8px;line-height:1.55}}@keyframes hero-typewriter-caret{0%,45%{opacity:.82}46%,to{opacity:0}}@keyframes hero-card-breathe{0%,to{transform:translateY(0)scale(1);box-shadow:0 16px 48px #0f23376b,inset 0 1px #ffffff24}50%{transform:translateY(-3px)scale(1.01);box-shadow:0 22px 58px #0f233780,0 0 36px #ffffff24,inset 0 1px #ffffff2e}}@keyframes hero-date-shimmer{0%,48%{opacity:0;transform:translate(-120%)skew(-18deg)}58%{opacity:1}72%,to{opacity:0;transform:translate(120%)skew(-18deg)}}@keyframes card-floral-float{0%,to{transform:translate(0,0)rotate(0)}50%{transform:translate(-6px,6px)rotate(3deg)}}@keyframes welcome-glow{0%,to{opacity:.72;transform:scale(.96)}50%{opacity:1;transform:scale(1.08)}}@keyframes welcome-envelope-float{0%,to{transform:translateY(0)rotate(-.4deg)}50%{transform:translateY(-6px)rotate(.4deg)}}@keyframes welcome-seal-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes success-heart-beat{0%,to{transform:scale(1)}42%{transform:scale(1.08)}}@keyframes success-petal-float{0%,to{transform:translate(0,0)rotate(0)}50%{transform:translate(8px,-12px)rotate(18deg)}}@keyframes rsvp-petal-burst{0%{opacity:0;transform:translate(-50%, -50%) rotate(var(--burst-angle)) translateY(0) scale(.6)}16%{opacity:.9}to{opacity:0;transform:translate(-50%, -50%) rotate(var(--burst-angle)) translateY(-44vh) scale(1.1)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
