/* Olive stationery: original layout, inspired by the reference's airy cards. */
.invitation-flow{box-shadow:0 20px 80px #26371e18}.invitation .section-inner:before{border-radius:48% 48% 4px 4px}.gold-rule{transform-origin:center;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
#fecha .section-inner{padding:80px 28px 90px}#fecha .script-heading{font-size:3.8rem}#fecha .date-feature{margin-bottom:42px}#fecha .calendar-caption{font:.7rem var(--sans);letter-spacing:.22em;background:#fffdf5;color:#556547;margin:0;width:min(100%,360px);padding:30px 10px 14px;border-radius:22px 22px 0 0}#fecha .calendar{max-width:360px;background:#fffdf5;color:#465a36;padding:10px 18px 28px;border-radius:0 0 22px 22px;gap:7px 0;box-shadow:0 22px 40px #14271025}#fecha .weekday{color:#859073}#fecha .chosen{background:#536b40;color:#fffdf5;border-color:#bba878;box-shadow:0 3px 12px #536b4040;position:relative}#fecha .chosen:after{content:'';position:absolute;inset:-4px;border:1px solid #b7a36c;border-radius:50%}
.details{background:#edf0e5}.details:before{opacity:.09}.details .section-inner{padding:85px 24px 70px;gap:0}.details h2{margin-bottom:46px}.event,.event+.event{border:1px solid #b8bf9c66;border-radius:22px;padding:32px 28px 30px;background:#fffdf7;box-shadow:0 12px 32px #3445290d;grid-template-columns:1fr;gap:0;margin-bottom:26px;overflow:hidden}.event:before{content:'';width:38px;height:1px;background:#b49c62;position:absolute;top:25px;right:28px}.event-index{grid-column:1;grid-row:1;font:.6rem var(--sans);letter-spacing:.14em;margin-bottom:24px}.event h3{grid-column:1;grid-row:2;font-size:2.15rem;margin-bottom:20px;max-width:230px}.event .time{grid-column:1;grid-row:3;font-size:3.3rem;color:#586c40;margin-bottom:17px}.event .time span{font-size:1.2rem}.event .pending{grid-column:1;grid-row:4;line-height:1.7;min-height:40px;margin-bottom:22px}.event .directions{grid-row:5;border-radius:30px;padding:12px 25px;gap:25px;min-height:48px;box-shadow:0 5px 16px #34452912}.directions span{display:inline-block;transition:transform .3s}.directions:hover span{transform:translate(2px,-2px)}.directions:active{transform:scale(.97)}.dress{width:100%;padding:32px 12px 0;margin-top:12px}.closing .section-inner{min-height:820px}.closing h2{font-size:3.1rem}
.site-header{box-shadow:0 2px 18px #24371b1a}.reading-progress{position:absolute;bottom:0;left:0;height:2px;width:100%;transform:scaleX(var(--read-progress,0));transform-origin:left;background:#d8c287;pointer-events:none}.site-header .sound-toggle{border:1px solid #c1cbb24d;border-radius:25px;min-width:70px}.site-header .sound-toggle[aria-pressed=true]{background:#e4ebd312}.site-header .sound-toggle:before{content:'♪';margin-right:6px;color:#d8c287}#site-menu{border-radius:16px;box-shadow:0 20px 65px #1e301d30}#site-menu nav a{font-size:1.9rem;transition:color .2s,padding-left .3s}#site-menu nav a:hover,#site-menu nav a[aria-current=true]{color:#9a8043;padding-left:9px}#site-menu[open]{animation:menu-in .3s ease-out}@keyframes menu-in{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
#open-invitation{border-radius:32px;padding-left:32px;padding-right:32px;transition:background .25s,box-shadow .25s}#open-invitation:hover{background:#344929;box-shadow:0 6px 22px #23361938}#open-invitation:active{background:#263d20}.address-panel{border-radius:22px}.address-panel .directions{border-radius:30px}
.reveal-ready [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}.reveal-ready [data-reveal].revealed{opacity:1;transform:none}.reveal-ready .gold-rule[data-reveal]{transform:scaleX(.25)}.reveal-ready .gold-rule.revealed{transform:scaleX(1)}
@media(min-width:800px){.details .section-inner{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;max-width:860px;padding-left:35px;padding-right:35px}.details .eyebrow,.details h2,.details .dress{grid-column:1/-1}.event,.event+.event{height:100%;min-height:420px;margin:0}.dress{margin-top:38px}.closing .section-inner{min-height:900px}}
@media(max-width:350px){.event,.event+.event{padding:29px 23px}.event h3{font-size:1.9rem}.site-header .sound-toggle{min-width:64px;font-size:.6rem}#fecha .section-inner{padding-left:22px;padding-right:22px}}
@media(prefers-reduced-motion:reduce){.reveal-ready [data-reveal]{opacity:1;transform:none;transition:none}#site-menu[open]{animation:none}.directions,.directions span,#open-invitation{transition:none}.reveal-ready .gold-rule[data-reveal]{transform:none}}
.invitation .blessing{max-width:290px;text-transform:none;font-size:.8rem;line-height:1.9;letter-spacing:.12em;margin-bottom:38px}.invitation .names{margin-top:10px;margin-bottom:12px}.invitation .invitation-message{max-width:285px;font-size:1.35rem;line-height:1.65;margin:12px 0 0;color:#536346}.wedding-countdown{width:100%;max-width:380px;margin:0 0 44px;padding:24px 0 0;border-top:1px solid #d8c28766;color:#fffdf3}.wedding-countdown>p:first-child{font:1.5rem var(--serif);font-style:italic;color:#e6d6aa;margin:0 0 23px}.countdown-units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.countdown-units>div{display:flex;flex-direction:column;gap:9px;align-items:center}.countdown-units>div+div{border-left:1px solid #d8c28744}.countdown-units span{font:2.6rem/1 var(--serif);font-variant-numeric:tabular-nums}.countdown-units small{font:.63rem var(--sans);letter-spacing:.05em;color:#eef1df}.countdown-note{font:.65rem/1.6 var(--sans);letter-spacing:.04em;margin:23px 0 0;color:#e5e9d8}#countdown-complete{font-size:1.7rem;color:#e6d6aa;margin:20px 0 0}@media(max-width:350px){.countdown-units span{font-size:2.25rem}.countdown-units small{font-size:.58rem}.invitation .blessing{max-width:245px;font-size:.74rem}.invitation .invitation-message{font-size:1.2rem}}

#fecha .wedding-countdown{margin:38px 0 0;padding-top:30px}
.attire{background:#faf8ef}.attire:before{opacity:.2}.attire .section-inner{padding:85px 28px 95px;min-height:760px}.attire h2{font-size:2rem;line-height:1.2;margin:0 0 30px}.attire h2 em{display:block;font:3.9rem/1.2 'Invitation Calligraphy',cursive;color:#52673c;margin-top:13px}.attire-art{display:flex;align-items:center;justify-content:center;gap:30px;width:100%;max-width:320px}.attire-art svg{width:95px;height:157px;overflow:visible;transform-origin:50% 12%}.attire-divider{height:85px;width:1px;background:linear-gradient(transparent,#c1ac74,transparent)}.attire-art.revealed .tux-icon{animation:attire-sway 3.4s ease-in-out 2}.attire-art.revealed .gown-icon{animation:attire-sway 3.4s ease-in-out .3s 2 reverse}@keyframes attire-sway{0%,100%{transform:rotate(0)}35%{transform:rotate(1.7deg)}70%{transform:rotate(-1.2deg)}}.attire .gold-rule{margin:36px 0}.prohibited-colors{width:100%;max-width:430px}.prohibited-colors h3{font-size:1.9rem;margin:0 0 28px;color:#435733}.swatch-list{display:flex;flex-wrap:wrap;justify-content:center;gap:20px 16px;padding:0;margin:0;list-style:none}.swatch-list li{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:48px;font:.75rem var(--sans);color:#435239}.swatch{display:block;width:44px;height:44px;border:1px solid #b7b6a6;border-radius:50%;box-shadow:0 3px 8px #3743240d}.swatch-white{background:#fff}.swatch-silver{background:linear-gradient(160deg,#888d91 0%,#d8dcdf 30%,#f6f7f8 43%,#a3a9ae 63%,#747a80 100%);border-color:#a2a8ab}.swatch-beige{background:#c6a97d;border-color:#b39871}.swatch-cream{background:#f4e7ba;border-color:#d6c994}.swatch-red{background:#bd302d;border-color:#a92b28}@media(max-width:350px){.attire .section-inner{padding-left:20px;padding-right:20px}.swatch-list{gap:20px 12px}.swatch-list li{min-width:44px;font-size:.7rem}.swatch{width:40px;height:40px}.attire h2{font-size:1.8rem}}@media(prefers-reduced-motion:reduce){.attire-art.revealed .tux-icon,.attire-art.revealed .gown-icon{animation:none}}
#animate-opening,#skip-opening{position:absolute;z-index:13;bottom:max(4px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);font:.75rem var(--sans);background:#fffdf5;color:#435633;border:1px solid #bba878;border-radius:20px;padding:10px 18px;min-height:44px;white-space:nowrap}.welcome:has(#animate-opening:not([hidden])) #open-invitation,.welcome:has(#skip-opening:not([hidden])) #open-invitation{bottom:62px}
@media(prefers-reduced-motion:reduce){.welcome .explicit-opening .exact-poster{opacity:0!important}.welcome .explicit-opening[data-progress="0.000"] .exact-poster{opacity:1!important}.welcome .explicit-opening .moving-flap,.welcome .explicit-opening .moving-seal,.welcome .explicit-opening .emerging-letter,.welcome .explicit-opening .envelope-body,.welcome .explicit-opening .envelope-lining{visibility:visible}}
#opening-note{position:absolute;z-index:10;bottom:115px;left:0;right:0;margin:0;text-align:center;font:.65rem var(--sans);color:#3d5030;background:#faf7efeb;padding:7px}.welcome #open-invitation{bottom:62px}.welcome .is-opening #opening-note{visibility:hidden}#skip-opening{bottom:max(7px,env(safe-area-inset-bottom));background:#fffdf5ed}
#motion-toggle{margin-top:20px;padding:11px 16px;min-height:44px;border:1px solid #9caa85;border-radius:24px;background:#eef1e5;color:#435733;font:.78rem var(--sans)}html[data-ui-motion=off] .attire-art svg{animation:none!important}html[data-ui-motion=on] .attire-art.revealed .tux-icon{animation:attire-sway 3.4s ease-in-out 2}html[data-ui-motion=on] .attire-art.revealed .gown-icon{animation:attire-sway 3.4s ease-in-out .3s 2 reverse}.directions:active,#menu-open:active,#motion-toggle:active{filter:brightness(.88)}

/* Requested invitation details and soft photo backgrounds. */
.opening-story.opening-dissolve{position:fixed;inset:0;z-index:100;height:100vh;height:100svh;padding:0;pointer-events:none}
.opening-dissolve .sticky-scene{position:relative;top:0;height:100vh;height:100svh;padding:0}
.opening-dissolve .envelope-scene{margin-top:0;width:min(100vw,calc((100svh - 110px)*.5625))}
.opening-dissolve .hero-intro,.opening-dissolve #open-invitation,.opening-dissolve #skip-opening,.opening-dissolve #opening-note{visibility:hidden}
.invitation .blessing{font:italic 1.4rem/1.55 var(--serif);letter-spacing:.015em;max-width:300px;color:#596a45}
.details h2{font-size:clamp(2.15rem,8vw,2.8rem);line-height:1.15}
.event{position:relative;isolation:isolate;overflow:hidden}.details .event,.details .event+.event{padding:180px 24px 28px;min-height:420px;align-content:end}.event>:not(.venue-watermark){position:relative;z-index:2}
.event .venue-watermark{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:1;filter:blur(2px) saturate(.55);z-index:0;pointer-events:none}
.event-ceremony .venue-watermark{object-position:50% 42%}
.event:after{content:'';position:absolute;inset:0;background:rgba(255,253,247,.62);z-index:1;pointer-events:none}
.prohibited-colors h3{font-size:1.6rem;line-height:1.3;max-width:340px;margin:0 auto 28px}
.swatch-list li{max-width:65px;text-align:center;line-height:1.45}
.guest-details{background:#f1f1e6}.guest-details:before{opacity:.12}
.guest-details .section-inner{min-height:690px;padding:85px 30px}
.guest-details h2{font-size:2.8rem}.guest-details h3{font-size:1.8rem;color:#435733}
.gift-note,.adults-note{max-width:350px}.gift-note p,.adults-note p{font:1.17rem/1.7 var(--serif);margin:15px 0 0;color:#536346}
.gift-note svg{width:52px;height:40px;fill:none;stroke:#9b8051;stroke-width:1.2;margin:3px 0 15px}
.guest-details .gold-rule{margin:35px 0}.adults-note h3{font-size:1.6rem}
.closing .couple{top:115px;height:clamp(280px,62vw,430px);object-fit:cover;object-position:35% 50%;opacity:.36;filter:saturate(.3) sepia(.08);mask-image:linear-gradient(transparent,#000 14%,#000 82%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 14%,#000 82%,transparent)}
.closing .photo-veil{background:linear-gradient(#e9eddf55,#e9eddf11 40%,#e9eddfaa 66%,#e9eddf)}
.closing .section-inner{min-height:870px;padding-top:450px;padding-bottom:85px}
.photo-credits{padding:18px 24px;background:#e9eddf;color:#657050;font:.65rem/1.6 var(--sans)}.photo-credits summary{cursor:pointer}.photo-credits a{color:inherit}.photo-credits p{max-width:540px}
@media(min-width:800px){.closing .section-inner{min-height:980px;padding-top:560px}.closing .couple{top:130px}}
@media(max-width:350px){.invitation .blessing{font-size:1.25rem;max-width:265px}.swatch-list{gap:18px 10px}.swatch-list li{max-width:57px}.prohibited-colors h3{font-size:1.45rem}}

.rsvp{background:#fcfaf2}.rsvp:before{opacity:.14}.rsvp .section-inner{padding:85px 24px;min-height:850px}.rsvp h2{font-size:2.7rem;margin:0 0 22px}.rsvp h2 em{display:block;font:3.8rem/1.2 'Invitation Calligraphy',cursive;margin-top:7px}.rsvp-intro{font-size:1.2rem;line-height:1.6;margin:0 0 30px}#rsvp-form{width:100%;max-width:400px;text-align:left}#rsvp-form fieldset{border:0;margin:0;padding:0;min-width:0}#rsvp-form label,#rsvp-form legend{font:14px/1.6 var(--sans);color:#435733}#rsvp-form>fieldset>label,#adult-count>label{display:block;margin:0 0 8px}#rsvp-form input:not([type=radio]),#rsvp-form textarea{display:block;width:100%;border:1px solid #aeb69d;border-radius:9px;background:#fffefb;color:#35452c;padding:13px 14px;font:16px/1.5 var(--sans);margin:0 0 22px}#rsvp-form textarea{resize:vertical}#rsvp-form .attendance-options{margin:0 0 23px}#rsvp-form .attendance-options label{display:flex;align-items:center;gap:10px;min-height:46px;cursor:pointer}#rsvp-form input[type=radio]{width:19px;height:19px;accent-color:#435b33;margin:0}#rsvp-form label span{color:#6b765d}#rsvp-form .field-note{font:13px/1.6 var(--sans);color:#5c6b4d;margin:-12px 0 23px}#rsvp-form .privacy-note{margin:0 0 20px}#rsvp-form button{width:100%;background:#435b33;color:white;min-height:50px}#rsvp-form button:disabled{opacity:.7;cursor:default}#rsvp-status{font:15px/1.6 var(--sans);color:#854331;margin:20px 0 0}#rsvp-status.rsvp-success{color:#435733;border-left:3px solid #819363;padding-left:14px}.rsvp-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#rsvp-form input:focus-visible,#rsvp-form textarea:focus-visible{outline:2px solid #9b8051;outline-offset:3px}

.attire-art .tux-icon{height:118px;align-self:flex-start;margin-top:10px}

/* Explicit rounded clipping also contains filtered photo layers during mobile compositing. */
.details .event,.details .event+.event{border-radius:22px;overflow:hidden;clip-path:inset(0 round 22px);-webkit-clip-path:inset(0 round 22px)}
.event .venue-watermark,.event:after{border-radius:inherit}
