/* Royal blue, pastel blue, and a living floral setting for every chapter. */
:root{--royal:#214db5;--royal-bright:#3868d8;--royal-deep:#142e78;--pastel:#c5dcf7;--ice:#eef5ff;--navy:#193c97;--navy-deep:#102765;--ink:#17377c;--ivory:#f2f7ff;--paper:#fbfdff;--blue:#abcdf4;--muted:#576f93;--line:#b9cdea;--gold:#9d814c;--gold-light:#e9d7ae}
body{background:var(--ivory)}::selection{background:#accbfd;color:#102a70}
.site-header{background:#f2f7fff2;border-bottom:1px solid #adc8eb}.site-header .brand{color:#224bab}.site-header nav{gap:28px}.site-header nav a{font-weight:600;color:#294781}.site-header nav .nav-rsvp{background:linear-gradient(135deg,#2e5ec5,#17378b);border:1px solid #6e98e6;color:white;box-shadow:0 4px 12px #1d4cb52b;min-width:108px;justify-content:space-between;border-radius:6px}.reading-progress span{background:linear-gradient(90deg,#729ee9,#234baf,#bad6ff)}
.section-title em{color:#3861bb}.chapter-label{color:#244993}.chapter-label>span{color:#4776ca}.chapter-label>i{background:#749ada}.section-heading>p{color:#5d7196}

/* A darker entrance and a full floral arch for the first reveal. */
.gate-screen{overflow:clip;background:radial-gradient(ellipse at 50% 44%,#112a5c,#050e24 65%,#020715)}
.gate-grain{border-color:#5174ab66}.portal-surround{background:#030a19;border-color:#88a8da;box-shadow:0 0 0 8px #040c20,0 0 0 9px #6a86bb70,0 0 0 18px #0a1834,0 0 0 20px #3c5d9766,inset 0 0 35px #000}
.door-leaf{background-image:linear-gradient(#0004,#0006),url('/assets/church-doors.png')}.portal-light{background:radial-gradient(ellipse,#fffef6,#e8efff 50%,#89b8ff)}
.gate-floral-arch{position:absolute;top:3%;left:50%;width:min(99vh,830px);height:auto;max-width:none;transform:translateX(-50%);pointer-events:none;z-index:4;filter:brightness(.8) drop-shadow(0 8px 20px #0006);animation:arch-breathe 10s ease-in-out infinite alternate}
.gate-flowers{filter:brightness(.9) saturate(1.1) drop-shadow(0 10px 24px #0006);width:clamp(285px,37vw,550px)}.gate-copy{top:24%}.gate-copy h1{color:#f1f5ff;text-shadow:0 4px 20px #000,0 0 36px #07122c}.gate-copy .eyebrow,.gate-location{color:#d9e6ff}.gate-screen .enter-button{z-index:12}
.gate-screen.opening .gate-floral-arch{opacity:0;transition:opacity 1.5s .5s}.gate-screen.opening .enter-button{opacity:0}.gate-bottom{z-index:13;background:linear-gradient(transparent,#030b1b9e);border-radius:4px}.gate-bottom button{font-size:11px;text-shadow:0 1px 8px #000}.gate-top{color:#d8e5ff}
.hero{min-height:1020px;padding:215px 25px 135px;background:radial-gradient(ellipse at 50% 40%,#e3efff,#bad4f1 65%,#8aade0);color:#f4f8ff}
.hero:after{border-color:#6f91c66b;inset:14px}.hero-arch{inset:30px max(calc((100% - 835px)/2),4%);border-radius:50% 50% 0 0/38% 38% 0 0;border:3px solid #769ce1;background:radial-gradient(ellipse at 50% 28%,#244ba5 0%,#142f77 58%,#0b1d4d 100%);box-shadow:inset 0 0 0 8px #192f6c,inset 0 0 0 9px #91b5ef60,0 0 0 8px #2c508d28,0 22px 50px #142c634a;z-index:0;overflow:hidden}
.hero-arch:before{inset:15px;border:1px solid #97bbf466;box-shadow:inset 0 0 70px #03153440}.hero-arch:after{inset:30px;border-color:#bcd7ff28}
.hero-arch span{position:absolute;inset:-30%;background:conic-gradient(from 10deg at 50% 0%,transparent 17%,#8daffc1a 22%,transparent 28%,#e7f1ff0f 35%,transparent 42%);animation:arch-light-sweep 15s ease-in-out infinite alternate}
.royal-arch-frame{position:absolute;top:6px;left:50%;width:min(1035px,105vw);max-width:none;transform:translateX(-50%);z-index:2;pointer-events:none;filter:drop-shadow(0 8px 13px #0b24513a);animation:arch-breathe 12s ease-in-out infinite alternate}
.hero-content{z-index:4;max-width:720px}.hero-content .eyebrow{color:#dfebff;text-shadow:0 2px 8px #071d4a}.hero-prelude{color:#bbd7ff}.couple-names{font-size:clamp(100px,11.2vw,149px);color:#fffdf6;text-shadow:0 4px 22px #061c4a}.couple-names span{color:#a9caff}.full-names{color:#f4f7ff;text-shadow:0 2px 10px #142f77}.full-names i{color:#c1d9ff}.hero-invitation{color:#c8dcf8}.date-lockup{margin-top:32px}.date-lockup strong{color:#fffdf4;border-color:#8faee2}.date-side{color:#d7e7ff}.hero-year{color:#c1d8ff}.hero-town{color:#b4d1fa}.hero-floral{z-index:3;width:clamp(280px,32vw,460px);bottom:-4%}.floral-left{left:-8%}.floral-right{right:-8%}.hero-light{opacity:.45}
.hero .scroll-cue{bottom:55px;z-index:5;flex-direction:row;gap:20px;min-height:53px;padding:12px 24px;border-radius:6px;background:linear-gradient(135deg,#d9eaff,#b5d2fd);color:#19377d;border:1px solid #f0f6ff;box-shadow:0 5px 0 #264e9b,0 15px 28px #071f514a}.scroll-cue span{font-size:12px;letter-spacing:.04em;font-weight:700}.scroll-cue .icon{width:24px;height:24px;transform:rotate(90deg);animation:discover-bob 2.6s ease-in-out infinite}

/* Floral scenery is separate from the text and tap targets. */
.story-scene{position:relative;isolation:isolate;overflow:hidden}.scene-decor{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.scene-decor *{pointer-events:none}.scene-decor svg{width:100%;height:100%;overflow:visible}
.chapter-florals{position:absolute;width:clamp(235px,27vw,385px);max-width:none;bottom:-80px;filter:drop-shadow(0 10px 10px #183b7315);animation:chapter-sway 9s ease-in-out infinite alternate;transform-origin:50% 100%;opacity:.94}.chapter-florals-left{left:-120px;--chapter-flip:1}.chapter-florals-right{right:-120px;--chapter-flip:-1;animation-delay:-4s}
.bird-flight{position:absolute;left:0;top:36px;width:105px;height:82px;filter:drop-shadow(0 5px 5px #284e9140);animation:dove-across 26s linear infinite;animation-delay:var(--flight-delay);will-change:transform}.bird-flight-2{top:auto;bottom:40px;width:81px;height:65px;animation-name:dove-return;animation-duration:32s;opacity:.9}.flying-dove{width:100%;height:100%;animation:dove-glide 3s ease-in-out infinite alternate}.bird-wing-main,.bird-wing-far{transform-box:view-box;transform-origin:90px 83px}.bird-wing-main{animation:wing-beat 1.25s ease-in-out infinite alternate}.bird-wing-far{animation:wing-beat-far 1.25s ease-in-out infinite alternate;animation-delay:-.3s}
.flutter-path{position:absolute;top:43%;left:3%;width:44px;height:36px;filter:drop-shadow(0 4px 3px #456da130);animation:butterfly-wander 12s ease-in-out infinite alternate;animation-delay:var(--flutter-delay)}.flutter-path-2{top:68%;left:auto;right:4%;width:35px;height:28px;animation-direction:alternate-reverse}.butterfly-wing-left,.butterfly-wing-right{transform-box:view-box;transform-origin:50px 45px}.butterfly-wing-left{animation:butterfly-wing .6s ease-in-out infinite alternate}.butterfly-wing-right{animation:butterfly-wing .6s ease-in-out infinite alternate-reverse}
.floating-blossom{position:absolute;width:32px;height:32px;filter:drop-shadow(0 4px 4px #466ca725);animation:blossom-drift 11s ease-in-out infinite alternate;animation-delay:var(--blossom-delay);opacity:.75}.blossom-1{left:8%;top:25%;width:23px}.blossom-2{right:8%;top:19%;width:38px}.blossom-3{left:17%;bottom:10%;width:20px}.blossom-4{right:15%;bottom:19%;width:25px}
.scene-decor *, .scene-decor *:before, .scene-decor *:after{animation-play-state:paused}.scene-active .scene-decor *, .scene-active .scene-decor *:before, .scene-active .scene-decor *:after{animation-play-state:running}
.hero .bird-flight{top:100px;width:110px;z-index:2}.hero .bird-flight-2{top:auto;bottom:110px}.hero .flutter-path{left:7%;top:64%}.hero .flutter-path-2{left:auto;right:7%;top:38%}.hero .floating-blossom{opacity:.75}

/* Chapter 01: an airy blue garden with doves, floating blossoms and a keepsake countdown. */
.welcome{padding-top:120px;padding-bottom:120px;background:radial-gradient(ellipse at 50% 35%,#fff 5%,#eaf3ff 53%,#c9dff7)}
.welcome:before{content:'';position:absolute;inset:35px 7%;border:1px solid #80a3d25c;border-radius:48% 48% 0 0/28% 28% 0 0;box-shadow:inset 0 0 0 9px #ebf4ff, inset 0 0 0 10px #91b5e444;pointer-events:none}
.welcome>:not(.scene-decor){position:relative;z-index:2}.welcome .welcome-flower{color:#3e6dbb;width:56px;height:56px;animation:flower-turn 24s linear infinite}.welcome .section-title{color:#1b3d91}.welcome .section-title em{color:#4779c8}.welcome .salutation{color:#607eb1}.welcome-copy{font-size:14px;max-width:590px;color:#52698b}.countdown{gap:18px;margin-top:45px}.countdown>div{width:96px;min-height:110px;background:linear-gradient(150deg,#fff,#cbdff8);border:1px solid #a1bfe7;border-radius:38px 38px 8px 8px;padding:15px 9px;box-shadow:0 8px 20px #2756a30c,inset 0 0 0 4px #f6faff}.countdown strong{color:#21499d;font-size:45px}.countdown span{color:#385a92;font-weight:600}.countdown>i{color:#648ccd;margin-top:23px}.countdown-note{color:#4168aa;font-size:23px}.welcome .bird-flight{top:36px}.welcome .bird-flight-2{bottom:35px}.welcome .chapter-florals{width:340px;bottom:-55px}

/* Chapter 02: bright actions against a royal blue celebration. */
.day-section{background:radial-gradient(ellipse at 50% 10%,#3d6bc8,#244eaa 50%,#142e76);padding-top:105px;padding-bottom:110px}.day-section .section-title,.rsvp-section .section-title{color:#fff}.day-section .section-title em,.rsvp-section .section-title em{color:#bad7ff}.day-section .chapter-label,.rsvp-section .chapter-label{color:#cbdfff}.day-section .chapter-label>span,.rsvp-section .chapter-label>span{color:#c8dfff}.day-section .section-heading>p{color:#d1e2fb}.day-section .section-heading,.venues,.calendar-button{position:relative;z-index:3}.day-arches{opacity:.65}.day-arches i{border-color:#a8c8f645;box-shadow:0 0 0 10px #1b409055,0 0 0 11px #a6c5ee30}.venues{gap:0;max-width:1010px}.venue{padding:34px 20px 40px;background:linear-gradient(140deg,#16378850,#83b0f017);border:1px solid #adcdf259;border-radius:120px 120px 10px 10px;box-shadow:inset 0 0 0 7px #9cbdf60a,0 20px 35px #0b21651f}.venue-icon{color:#d5e7ff;width:77px;height:77px;padding:11px;border:1px solid #adcff090;border-radius:50%;background:#accfff15;animation:medallion-breathe 6s ease-in-out infinite alternate}.venue .eyebrow{color:#c8ddff}.venue h3{font-size:35px}.venue-time{color:#c6ddff;font-size:24px}.venue-name{color:#fff}.venue-address{color:#c4d9f6}.venue-divider{color:#bdd6fa}.venue-divider i{background:#c3dcff6e}.day-section .chapter-florals{width:390px;bottom:-70px;opacity:.95}.day-section .flutter-path{left:4%;top:40%}.day-section .flutter-path-2{left:auto;right:5%;top:70%}.day-section .bird-flight-2{bottom:40px}.day-section .floating-blossom{opacity:.7}

/* Chapter 03: every name is always open, with a clear ceremony order. */
.people-section{max-width:none;margin:0;padding-left:max(calc((100% - 1020px)/2),6vw);padding-right:max(calc((100% - 1020px)/2),6vw);background:linear-gradient(155deg,#edf5ff,#d6e6fb 50%,#eff6ff)}
.people-section>:not(.scene-decor){position:relative;z-index:2}.parents{background:#f8fbfff5;border:1px solid #b8cdec;border-radius:160px 160px 10px 10px;padding:45px 24px 35px;margin:55px 0 30px;box-shadow:0 10px 30px #244f9e08}.parents small{color:#476eac}.parents p{color:#1e438a}.honor-pair{border:1px solid #a6c3ed;border-radius:10px;background:linear-gradient(120deg,#20469a,#3663bb);color:white;padding:35px 12px;box-shadow:0 12px 24px #254d9815}.honor-pair>div+div{border-color:#c0daff66}.honor-pair .eyebrow{color:#d4e5ff}.honor-pair h3{color:#fff;font-size:30px}
.entourage-groups{display:grid;gap:28px;margin-top:35px}.entourage-group{padding:38px 38px 25px;background:#fbfdfff2;border:1px solid #abc6ed;border-radius:12px;box-shadow:0 12px 35px #1a438b09}.entourage-heading{text-align:center;margin-bottom:26px}.entourage-heading .icon{width:30px;height:30px;margin:auto;color:#4b7ac7;animation:flower-turn 30s linear infinite}.entourage-heading .eyebrow{font-size:8px;color:#5574a3;margin:15px 0 7px;letter-spacing:.2em}.entourage-heading h3{font:italic 38px/1.15 var(--serif);color:#244d9d;margin:0}.sponsor-list>div{padding:17px 15px;color:#24467e;border-bottom:1px solid #c9dbf4;font-size:23px;align-items:center}.sponsor-list>div:nth-child(odd){background:#edf4ff}.sponsor-list .pending{color:#677e9d}.sponsor-list>.party-pair{grid-template-columns:32px 1fr 1fr;gap:18px}.pair-number{font:500 16px var(--serif);color:#6287c2;border-right:1px solid #b8ceeb;min-height:26px;display:flex;align-items:center}.pairing-labels{padding-left:65px;padding-right:15px;gap:18px;color:#5474a4;font-size:9px;margin-top:8px}.ceremony-people{gap:30px;padding:0 15px 10px}.ceremony-people small{color:#4770b7;font-size:24px}.ceremony-people p{color:#24467e;font-size:22px}.people-section .chapter-florals-left{top:44%;bottom:auto;left:-150px;opacity:.8;width:340px}.people-section .chapter-florals-right{top:7%;bottom:auto;right:-150px;width:350px}.people-section .bird-flight-2{bottom:auto;top:48%;animation-duration:35s}.people-section .flutter-path{top:28%}.people-section .flutter-path-2{top:77%}.people-section .blossom-3{bottom:38%}.people-section .blossom-4{bottom:11%}

/* Attire, RSVP and the closing carry the same blue floral atmosphere. */
.attire-section{background:linear-gradient(120deg,#bed6f5,#eaf4ff 56%,#dceafd);gap:65px}.attire-intro,.attire-stage{position:relative;z-index:3}.attire-intro>p{color:#506b94}.role-label{color:#254b99}.select-wrap select{background:#f9fcff;border:2px solid #739bd6;box-shadow:0 5px 12px #3463a411;border-radius:7px;font-size:21px;min-height:58px}.select-wrap>span{color:#2454ae;top:12px}.attire-note{font-size:12px!important}.attire-note strong{color:#1d4393}.attire-stage:before{border:2px solid #789ed6;border-radius:120px 120px 13px 13px;inset:-15px 15px 15px -15px}.attire-panel{border:1px solid #a6c5ef;background:#f8fbff;border-radius:115px 115px 12px 12px;padding-top:50px;box-shadow:0 20px 45px #214b9921;min-height:520px}.attire-panel h3{color:#234a99}.attire-panel.with-photo{padding-top:42px}.attire-panel .panel-role{color:#4770a7;font-weight:600}.attire-art{position:relative}.attire-art:after{content:'↗';position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#2858b7;color:white;font-size:19px;box-shadow:0 4px 12px #12337e33}.swatch{height:42px;width:42px;border-width:4px;box-shadow:0 0 0 1px #91acd766;min-height:42px}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px #4069b2}.swatch-label{color:#4868a2}.attire-section .chapter-florals{width:300px;opacity:.8}.attire-section .bird-flight{top:30px}.attire-section .bird-flight-2{bottom:24px}
.rsvp-section{background:radial-gradient(ellipse at 24% 30%,#3c66bc,#234ba5 50%,#163278)}.rsvp-intro,.rsvp-paper{z-index:3}.rsvp-section:before{border-color:#9cbcec88}.rsvp-intro>p{color:#d7e6ff}.rsvp-deadline{border-color:#b5d1ff}.rsvp-deadline>span{color:#cee1ff}.rsvp-deadline strong{color:#fff}.rsvp-heart{color:#c9dfff;animation:heart-float 5s ease-in-out infinite alternate}.rsvp-floral{opacity:.38;z-index:0}.rsvp-paper{background:linear-gradient(150deg,#fff,#eef5ff);border:1px solid #b0caee;outline-color:#bed8ff88;border-radius:10px;box-shadow:0 20px 45px #0c276d44}.rsvp-paper h3{color:#214695}.sample-badge{color:#5676a6}.rsvp-choices label{border:1px solid #b1c9ec;background:#fff;border-radius:8px;min-height:72px;padding:15px}.rsvp-choices label:has(input:checked){border:2px solid #315eb9;padding:14px;background:#e0edff;box-shadow:0 4px 12px #2758b115}.rsvp-choices label>span:nth-of-type(2){font-size:13px;color:#214789}.rsvp-choices small{font-size:10px;color:#6680a5}.choice-icon{color:#3869c2;background:#e8f1ff;border-radius:50%;height:35px;min-width:35px;line-height:35px;font-size:26px}.rsvp-choices label>i{height:17px;width:17px;border-color:#8da9d4}.rsvp-choices label:has(input:checked)>i{border:5px solid #315cba}.local-note{color:#6d81a2}.rsvp-section .chapter-florals{opacity:.55;bottom:-120px}.rsvp-section .bird-flight{top:28px}.rsvp-section .bird-flight-2{bottom:24px}.rsvp-section .floating-blossom{opacity:.5}
.closing{background:radial-gradient(ellipse at 50% 25%,#fff,#e3efff 58%,#c2d9f7);padding-top:120px;padding-bottom:115px}.closing>:not(.scene-decor){position:relative;z-index:2}.closing .closing-flower{color:#527ec5;animation:flower-turn 26s linear infinite}.closing-signature>span{color:#23499b}.closing .chapter-florals{width:380px;bottom:-85px}.closing .bird-flight{top:33px}.closing .bird-flight-2{bottom:25px}footer{background:#163882;color:#d1e2fc;border-color:#b1c9eb}footer button{color:#d1e2fc}

/* Buttons have a consistent, unmistakable tactile treatment. */
.enter-button,.confirm-button,#view-guide,.replay-button{overflow:hidden;position:relative;background:linear-gradient(135deg,#3f73dd 0%,#2857bb 45%,#153583 100%);border:1px solid #8eb5f4;color:white;border-radius:7px;box-shadow:0 5px 0 #142c6b,0 13px 25px #173b8c2e,inset 0 1px 0 #e4f0ff55;font-weight:600;min-height:54px;font-size:12px;letter-spacing:.035em;padding:14px 23px;transition:filter .25s,box-shadow .25s}
.enter-button{position:absolute;min-width:275px;font-size:13px;box-shadow:0 5px 0 #0c1e50,0 0 35px #7daaff40,inset 0 1px 0 #edf5ff66;bottom:18%}
.enter-button:before,.confirm-button:before,#view-guide:before,.calendar-button:before{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#fff3 48%,transparent 67%);transform:translateX(-130%);animation:button-sheen 7.5s ease-in-out infinite;pointer-events:none}
.enter-button:hover,.confirm-button:hover,#view-guide:hover,.replay-button:hover{background:linear-gradient(135deg,#4d82e9,#254da4);color:white;filter:brightness(1.08);box-shadow:0 5px 0 #132d70,0 16px 28px #173b8c45}.enter-button .icon,.confirm-button .icon{width:24px;height:24px;padding:3px;border:1px solid #d4e5ff88;border-radius:50%;flex-shrink:0}
.outline-link,.calendar-button{border:1px solid #eaf3ff;background:linear-gradient(135deg,#f4f8ff,#bed8ff);color:#133b8d;border-radius:7px;box-shadow:0 5px 0 #112e76,0 13px 24px #0a22622e;min-height:57px;padding:13px 22px;font-size:13px;font-weight:700;letter-spacing:.015em;position:relative;overflow:hidden;transition:filter .25s,box-shadow .25s}
.outline-link{min-width:235px;justify-content:center;gap:12px}.outline-link .icon{width:22px;height:22px;stroke-width:1.6}.outline-link>span{display:grid;place-items:center;background:#2354b6;color:white;width:29px;height:29px;border-radius:50%;font-size:19px;margin-left:7px;flex-shrink:0}.outline-link:hover,.calendar-button:hover{background:#edf5ff;border-color:white;filter:brightness(1.04);box-shadow:0 5px 0 #10275d,0 15px 28px #0a22625e}.calendar-button{margin-top:55px;min-width:345px;max-width:100%;gap:14px}.calendar-button .icon{width:24px;height:24px;stroke-width:1.6}.calendar-button>span{font-size:22px;margin-left:15px}#view-guide{display:inline-flex;margin-top:10px;gap:15px;font-size:11px;text-align:left}#view-guide>span{font-size:21px}.replay-button{display:inline-flex;align-items:center;justify-content:center;font-size:11px;gap:10px;margin-top:8px}
.contact-links{gap:20px}.contact-links>a,.contact-links>button{padding:13px 18px;border:1px solid #8eafe0;background:#f8fbff;border-radius:7px;box-shadow:0 4px 0 #aac4e9;min-height:65px;grid-template-rows:20px 20px;font-size:12px;color:#234d9e}.contact-links .icon,.messenger-icon{color:#315fae}.contact-links>a>span,.contact-links>button>span:last-child{font-size:10px;color:#536f9a}.experience-controls{background:#eef5fff5;border-color:#7e9ed2;box-shadow:0 5px 18px #173d8833;color:#254d9e}.experience-controls button{min-height:42px;font-size:11px}.experience-controls button+button{border-color:#aac3e9}.equalizer i{background:#2c5ebf}.dialog-close{background:#254fac;color:#fff;border:1px solid #8fafe5;width:44px;height:44px;box-shadow:0 4px 15px #173b8c40}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #7da6ec;outline-offset:5px}

@keyframes arch-breathe{from{transform:translateX(-50%) scale(1)}to{transform:translateX(-50%) scale(1.012)}}
@keyframes arch-light-sweep{from{transform:rotate(-9deg);opacity:.4}to{transform:rotate(12deg);opacity:1}}
@keyframes chapter-sway{from{transform:scaleX(var(--chapter-flip)) rotate(-2deg) translateY(0)}to{transform:scaleX(var(--chapter-flip)) rotate(2deg) translateY(-12px)}}
@keyframes dove-across{0%{transform:translate(-140px,20px) rotate(5deg)}24%{transform:translate(24vw,-10px) rotate(-4deg)}53%{transform:translate(55vw,30px) rotate(4deg)}80%{transform:translate(85vw,-5px) rotate(-3deg)}100%{transform:translate(112vw,18px) rotate(3deg)}}
@keyframes dove-return{0%{transform:translate(112vw,0) scaleX(-1) rotate(5deg)}35%{transform:translate(69vw,-35px) scaleX(-1) rotate(-4deg)}65%{transform:translate(28vw,5px) scaleX(-1) rotate(3deg)}100%{transform:translate(-140px,-15px) scaleX(-1) rotate(-4deg)}}
@keyframes dove-glide{from{transform:translateY(-4px) rotate(-3deg)}to{transform:translateY(5px) rotate(3deg)}}
@keyframes wing-beat{from{transform:rotate(-20deg) scaleY(1)}to{transform:rotate(29deg) scaleY(.46)}}
@keyframes wing-beat-far{from{transform:rotate(16deg) scaleY(.8)}to{transform:rotate(-20deg) scaleY(.45)}}
@keyframes butterfly-wing{from{transform:scaleX(.35)}to{transform:scaleX(1)}}
@keyframes butterfly-wander{0%{transform:translate(0,0) rotate(-15deg)}35%{transform:translate(50px,-55px) rotate(17deg)}70%{transform:translate(18px,24px) rotate(-7deg)}100%{transform:translate(70px,-20px) rotate(12deg)}}
@keyframes blossom-drift{from{transform:translate(0,-7px) rotate(-20deg)}to{transform:translate(22px,25px) rotate(45deg)}}
@keyframes flower-turn{to{transform:rotate(360deg)}}
@keyframes medallion-breathe{from{box-shadow:0 0 0 5px #98bdff05,0 0 20px #80aaff08}to{box-shadow:0 0 0 12px #98bdff12,0 0 30px #80aaff33}}
@keyframes button-sheen{0%,65%{transform:translateX(-130%)}88%,100%{transform:translateX(130%)}}
@keyframes heart-float{from{transform:translateY(0) scale(1)}to{transform:translateY(-8px) scale(1.08)}}
@keyframes discover-bob{0%,100%{transform:rotate(90deg) translateX(0)}50%{transform:rotate(90deg) translateX(5px)}}

@media(max-width:1000px){.hero{min-height:990px;padding-top:225px}.royal-arch-frame{width:980px;max-width:none;top:12px}.hero-arch{inset:35px 4%}.hero-content{max-width:660px}.couple-names{font-size:130px}.attire-section{gap:40px}.entourage-group{padding:32px 25px 25px}.venue{padding:30px 14px 35px}.outline-link{min-width:215px;font-size:12px}.venue-name{font-size:22px}.day-section .chapter-florals{width:330px}.hero .flutter-path{left:3%}.hero .flutter-path-2{right:3%}}
@media(max-width:650px){
  .site-header{padding:0 17px}.site-header nav{gap:15px}.site-header nav a{font-size:10px}.site-header nav .nav-rsvp{min-width:80px;padding:7px 12px;min-height:43px}
  .gate-floral-arch{width:570px;top:4%;max-width:none;filter:brightness(.85) drop-shadow(0 5px 10px #0006)}.gate-flowers{width:260px;bottom:-1%}.gate-flowers-left{left:-31%}.gate-flowers-right{right:-31%}.gate-copy{top:27%}.gate-copy h1{font-size:clamp(53px,17.2vw,85px)}.gate-copy .eyebrow{font-size:8px}.gate-location{font-size:7px}.door-crest{top:55%;width:66px;height:66px}.enter-button{min-width:225px;font-size:11px;min-height:55px;bottom:20%;padding:13px 17px;gap:12px}.door-whisper{bottom:14%;font-size:7px}.gate-bottom button{font-size:10px}.gate-top{font-size:7px}
  .hero{min-height:980px;padding:230px 18px 145px}.hero-arch{inset:25px 16px;border-radius:50% 50% 0 0/24% 24% 0 0;border-width:2px;box-shadow:inset 0 0 0 6px #192f6c,inset 0 0 0 7px #91b5ef60,0 12px 35px #152d6750}.hero-arch:before{inset:10px}.hero-arch:after{inset:20px}.royal-arch-frame{width:620px;top:-23px}.hero-content{width:100%;max-width:350px}.hero-content .eyebrow{font-size:8px;letter-spacing:.13em}.hero-prelude{font-size:24px;margin-top:20px}.couple-names{font-size:clamp(69px,21vw,108px);line-height:1.5}.full-names{font-size:22px;gap:5px}.hero-invitation{font-size:20px;max-width:250px;margin:23px auto 25px}.date-lockup{margin-top:30px;gap:10px}.date-lockup strong{font-size:70px;padding:0 10px}.date-side{font-size:8px;letter-spacing:.05em;min-width:77px}.hero-year{font-size:8px;letter-spacing:.09em}.hero-town{font-size:23px;margin-top:13px}.hero-floral{width:280px;bottom:-3%}.floral-left{left:-39%}.floral-right{right:-39%}.hero .scroll-cue{bottom:53px;min-height:52px;padding:11px 20px;white-space:nowrap}.scroll-cue span{font-size:11px}.hero .bird-flight{top:155px;width:81px;height:64px}.hero .bird-flight-2{top:auto;bottom:130px;width:70px}.hero .flutter-path{top:73%;left:1%}.hero .flutter-path-2{left:auto;right:1%;top:55%}
  .chapter-florals{width:250px;bottom:-65px}.chapter-florals-left{left:-135px}.chapter-florals-right{right:-135px}.bird-flight{width:76px;height:62px;top:24px;animation-duration:24s}.bird-flight-2{width:65px;height:52px;top:auto;bottom:25px;animation-duration:31s}.flutter-path{width:32px;height:27px;left:-1%;opacity:.85}.flutter-path-2{width:29px;height:24px;left:auto;right:1%}.floating-blossom{width:21px;height:21px;opacity:.55}.blossom-1{left:3%;top:29%;width:17px}.blossom-2{right:3%;top:22%;width:23px}.blossom-3{left:10%;bottom:10%;width:15px}.blossom-4{right:7%;bottom:21%;width:18px}
  .welcome{padding:95px 25px 105px}.welcome:before{inset:22px 12px;border-radius:48% 48% 0 0/21% 21% 0 0;box-shadow:inset 0 0 0 5px #ebf4ff,inset 0 0 0 6px #91b5e444}.welcome .chapter-label{font-size:8px}.welcome .welcome-flower{margin-top:27px;width:43px;height:43px}.welcome .section-title{font-size:43px;line-height:1.08}.welcome-copy{font-size:12px;max-width:320px}.countdown{gap:6px;margin-top:33px}.countdown>div{width:65px;min-width:51px;min-height:91px;padding:13px 3px;border-radius:27px 27px 6px 6px}.countdown strong{font-size:34px}.countdown span{font-size:7px;letter-spacing:.06em}.countdown>i{font-size:17px;margin-top:20px}.countdown-note{font-size:21px}.welcome .chapter-florals{width:240px;bottom:-55px}.welcome .bird-flight{top:26px}.welcome .bird-flight-2{bottom:20px}
  .day-section{padding:95px 27px 105px}.venues{gap:24px;margin-top:40px}.venue{border-radius:100px 100px 9px 9px;padding:32px 15px 36px}.venue-icon{width:72px;height:72px;padding:10px;margin-bottom:22px}.venue h3{font-size:32px}.venue-name{font-size:23px}.venue-name span{font-size:20px}.venue-time{font-size:24px}.venue-address{font-size:12px}.venue-divider{margin:0;gap:16px}.venue-divider i{width:80px}.outline-link{min-width:230px;min-height:56px;font-size:12px;margin-top:22px;padding:12px 18px}.outline-link>span{width:29px;height:29px}.calendar-button{min-width:0;width:100%;font-size:11px;padding:13px 16px;gap:10px;margin-top:34px;min-height:58px}.calendar-button>span{font-size:20px;margin-left:0}.calendar-button .icon{width:22px;flex-shrink:0}.day-section .chapter-florals{width:280px;bottom:-55px}.day-section .bird-flight-2{bottom:20px}.day-section .flutter-path{left:-2%;top:38%}.day-section .flutter-path-2{right:-1%;top:68%}
  .people-section{padding:95px 20px}.people-section .section-title{font-size:47px}.parents{border-radius:100px 100px 9px 9px;padding:40px 16px 30px;margin-top:35px;gap:25px}.parents p{font-size:22px}.parents small{font-size:21px}.honor-pair{padding:25px 10px;gap:8px}.honor-pair h3{font-size:23px;line-height:1.25}.honor-pair .eyebrow{font-size:7px;letter-spacing:.05em}.entourage-groups{gap:22px;margin-top:25px}.entourage-group{padding:28px 14px 20px;border-radius:10px}.entourage-heading{margin-bottom:24px}.entourage-heading h3{font-size:31px}.entourage-heading .eyebrow{font-size:7px;letter-spacing:.15em}.entourage-heading .icon{width:27px;height:27px}.sponsor-list>div{gap:12px;font-size:19px;padding:14px 10px;line-height:1.4}.sponsor-list>.party-pair{grid-template-columns:22px 1fr 1fr;gap:9px;padding:14px 6px}.pair-number{font-size:14px;align-self:start;margin-top:3px}.pairing-labels{padding-left:37px;padding-right:6px;gap:9px;font-size:7px;letter-spacing:.08em}.sponsor-list .pending{font-size:16px}.ceremony-people{padding:0 4px;gap:27px 14px}.ceremony-people small{font-size:22px}.ceremony-people p{font-size:19px}.people-section .chapter-florals-left{left:-190px;opacity:.5}.people-section .chapter-florals-right{right:-190px;opacity:.65}.people-section .bird-flight-2{top:46%;bottom:auto}.people-section .flutter-path{left:-2%}.people-section .flutter-path-2{right:-2%}
  .attire-section{padding:95px 25px 105px;gap:42px}.attire-intro .section-title{font-size:48px}.select-wrap{width:100%;max-width:290px}.select-wrap select{min-height:58px;font-size:21px}.attire-note{font-size:12px!important}.attire-stage{max-width:345px}.attire-stage:before{inset:-10px 10px 10px -10px;border-radius:105px 105px 10px 10px}.attire-panel{min-height:475px;border-radius:100px 100px 10px 10px;padding-top:45px}.attire-panel.with-photo{min-height:500px;padding-top:42px}.attire-panel .panel-role{font-size:9px}.attire-panel .swatch-row{gap:10px}.swatch{width:39px;height:39px;min-height:39px}.attire-panel .panel-description{font-size:12px}.attire-panel h3{font-size:37px}#view-guide{font-size:11px;min-height:51px;padding:12px 18px;gap:15px}.attire-section .chapter-florals{width:260px;opacity:.6}
  .rsvp-section{padding:95px 26px 105px;gap:38px}.rsvp-section:before{inset:13px}.rsvp-paper{padding:30px 20px;outline-offset:5px}.rsvp-choices label{gap:10px;padding:12px;min-height:74px}.rsvp-choices label:has(input:checked){padding:11px}.rsvp-choices label>span:nth-of-type(2){font-size:12px}.rsvp-choices small{font-size:9px}.choice-icon{min-width:29px;height:29px;line-height:29px;font-size:24px}.rsvp-choices label>i{width:15px;height:15px}.confirm-button{font-size:12px;min-height:54px;padding:13px 18px}.rsvp-section .chapter-florals{opacity:.5}.rsvp-section .bird-flight{top:27px}.rsvp-section .bird-flight-2{bottom:24px}
  .closing{padding:95px 24px 110px}.closing .section-title{font-size:44px}.contact-links{gap:11px;margin-top:30px}.contact-links>a,.contact-links>button{padding:10px 11px;column-gap:5px;font-size:11px;min-height:64px;grid-template-rows:20px 18px;grid-template-columns:18px 1fr}.contact-links>a>span,.contact-links>button>span:last-child{font-size:9px}.contact-links .icon,.messenger-icon{width:17px}.closing .chapter-florals{width:270px;bottom:-55px}.replay-button{font-size:10px;padding:12px 16px;gap:5px}.replay-button>span{margin-left:8px;font-size:17px}.experience-controls{bottom:15px;right:15px}.experience-controls button{font-size:10px;min-height:41px}.closing-signature>span{font-size:60px}
}
@media(max-width:360px){.site-header nav{gap:10px}.site-header nav a{font-size:9px}.site-header nav .nav-rsvp{min-width:69px;padding:7px 10px}.gate-floral-arch{width:510px}.gate-copy h1{font-size:53px}.enter-button{min-width:214px;font-size:10px}.hero{min-height:980px;padding-top:240px}.royal-arch-frame{width:570px}.couple-names{font-size:70px}.full-names{font-size:20px}.date-side{font-size:7px;min-width:69px}.date-lockup strong{font-size:62px;min-width:69px}.welcome .section-title{font-size:39px}.countdown{gap:4px}.countdown>div{min-width:49px;width:55px}.countdown strong{font-size:31px}.outline-link{min-width:208px;font-size:11px}.venue h3{font-size:29px}.calendar-button{font-size:10px;gap:6px}.sponsor-list>div{font-size:18px;padding:12px 7px;gap:10px}.sponsor-list>.party-pair{font-size:17px;gap:6px;padding:12px 3px}.entourage-group{padding-left:10px;padding-right:10px}.entourage-heading h3{font-size:28px}.ceremony-people p{font-size:18px}.contact-links{gap:8px}.contact-links>a,.contact-links>button{padding:10px 8px;font-size:10px}.contact-links>a>span,.contact-links>button>span:last-child{font-size:8px}}
@media(prefers-reduced-motion:reduce){.scene-decor *,.royal-arch-frame,.gate-floral-arch,.hero-arch span,.enter-button:before,.confirm-button:before,#view-guide:before,.calendar-button:before{animation:none!important}.bird-flight{left:8%;transform:none}.bird-flight-2{left:auto;right:7%;transform:scaleX(-1)}}
