/* Aquarelas em movimento, com amplitude pequena para preservar a leitura. */
.logo,.oval img{mix-blend-mode:normal}
.branch{transform-origin:75% 95%;animation:leaf-breeze 7s ease-in-out infinite alternate}
.cover-branch{animation-duration:8s}
.closing-branch{animation-duration:6.8s;animation-delay:-2s}
.count-branch{animation-name:leaf-breeze-angled;animation-duration:9s;animation-delay:-3s}
.emboss-right{transform-origin:75% 95%;animation:leaf-breeze 10s ease-in-out infinite alternate}
.emboss-left{transform-origin:75% 95%;animation:emboss-breeze 11s ease-in-out infinite alternate}
.guests-stage{position:relative;width:100%;max-width:500px;aspect-ratio:1536/1024;margin:30px auto 0}
.guests-stage .guests{position:absolute;inset:0;width:100%;max-width:none;margin:0;mix-blend-mode:normal;animation:guest-sway 5s ease-in-out infinite alternate;pointer-events:none}
.guest-1{clip-path:inset(0 83.7% 0 0);transform-origin:8% 92%;animation-delay:-1.2s!important}
.guest-2{clip-path:inset(0 67.3% 0 16.3%);transform-origin:25% 92%;animation-delay:-3.4s!important;animation-duration:6s!important}
.guest-3{clip-path:inset(0 46.5% 0 32.7%);transform-origin:43% 92%;animation-delay:-2.3s!important;animation-duration:5.8s!important}
.guest-4{clip-path:inset(0 34.5% 0 53.5%);transform-origin:59% 92%;animation-delay:-4.3s!important;animation-duration:6.3s!important}
.guest-5{clip-path:inset(0 12.4% 0 65.5%);transform-origin:77% 92%;animation-delay:-.8s!important;animation-duration:5.5s!important}
.guest-6{clip-path:inset(0 0 0 87.6%);transform-origin:94% 92%;animation-delay:-2.8s!important;animation-duration:6.8s!important}
@keyframes leaf-breeze{from{transform:rotate(-2.5deg) translateY(0)}to{transform:rotate(3.5deg) translateY(-5px)}}
@keyframes leaf-breeze-angled{from{transform:rotate(37deg) translateY(0)}to{transform:rotate(43deg) translateY(-4px)}}
@keyframes emboss-breeze{from{transform:rotate(177deg)}to{transform:rotate(183deg)}}
@keyframes guest-sway{from{transform:rotate(-.5deg) translateY(0)}to{transform:rotate(.5deg) translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.branch,.emboss,.guests-stage .guests{animation:none!important}}

.count-branch{left:-95px;bottom:-20px;width:120px;animation-name:leaf-breeze;opacity:.45}
.guests-stage .guests{transform-origin:50% 95%;animation:guest-sway 6s ease-in-out infinite alternate}

.cloth-scene{display:block;width:100%;height:auto;overflow:visible}.cloth-fallback{display:none;width:100%;height:auto}.guests-stage .guests{animation:none!important;transform:none!important}@media(prefers-reduced-motion:reduce){.cloth-scene{display:none}.cloth-fallback{display:block}}

.guests-static{display:block;width:100%;height:auto;animation:none;transform:none}

.cover{background:var(--paper) url('assets/papel-original.jpg') center/cover no-repeat;isolation:isolate}.living-branch{position:absolute;width:clamp(180px,48vw,280px);height:auto;right:-45px;bottom:-12px;overflow:visible;pointer-events:none;z-index:0}.cover-content{z-index:1}.cover .hero-logo{margin-bottom:55px}.individual-leaf{will-change:transform}@media(min-width:700px){.living-branch{width:280px;right:-35px}}@media(prefers-reduced-motion:reduce){.individual-leaf{will-change:auto}}

main{background:var(--paper)}main>section,main>footer{background:var(--paper) url('assets/papel-original.jpg') center/cover no-repeat;isolation:isolate}main>.details{padding-bottom:200px}main>.count-section{padding-bottom:200px}main>.dress{padding-bottom:170px}main>.actions{padding-bottom:190px}main>.closing{padding-bottom:200px}.section-foliage{width:clamp(170px,46vw,250px);right:-65px;bottom:-12px;z-index:-1}.section-foliage.individual-leaf{pointer-events:none}@media(min-width:700px){.section-foliage{width:250px;right:-55px}}

/* One shared paper surface across the entire scrolling invitation. */
main{position:relative;isolation:isolate;background:none}main::before{content:'';position:fixed;top:0;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,600px);z-index:-2;background:var(--paper) url('assets/papel-original.jpg') center/cover no-repeat;pointer-events:none}main>section,main>footer,.cover{background:none}

.portrait-section{padding:80px 0 130px}.portrait-frame{position:relative;width:82%;margin:0 auto;padding:6px;background:var(--paper);border:1px solid var(--fendi);z-index:1}.portrait-frame img{display:block;width:100%;height:auto;object-fit:contain}.portrait-section .portrait-branch{width:clamp(110px,32vw,170px);right:0;bottom:35px;z-index:0}.js-reveal .portrait-section{transform:none;transition:opacity 1.1s}.js-reveal .portrait-section.visible{transform:none}@media(min-width:700px){.portrait-section{padding-top:90px;padding-bottom:160px}.portrait-section .portrait-branch{width:170px;right:12px;bottom:45px}}

.portrait-section{padding:45px 0 55px}.portrait-stage{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--paper)}.portrait-backdrop{position:absolute;inset:-16px;background:url('assets/casal-modelo.jpg') center/cover no-repeat;filter:blur(12px);opacity:.75}.portrait-stage img{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;object-fit:contain}.portrait-section .portrait-branch{width:clamp(95px,25vw,140px);right:-2px;bottom:0}@media(min-width:700px){.portrait-section{padding:60px 0 65px}.portrait-section .portrait-branch{width:140px;right:5px;bottom:0}}

.portrait-frame{width:100%;padding:0;border:0;background:none}.portrait-backdrop{display:none}.portrait-stage img{object-fit:cover;object-position:50% 42%}.portrait-section .portrait-branch{bottom:-15px;z-index:-1}




.portrait-stage{aspect-ratio:1/1}.portrait-stage img{object-position:50% 75%}

/* Cover composition follows the supplied portrait reference. */
.cover{min-height:100svh;padding:0 18px;overflow:hidden}
.cover .cover-content{transform:translateY(-1.5%)}
.cover .hero-logo{width:45%;max-width:210px;height:auto;margin:0 auto 26px}
.cover h1{font-family:'EB Garamond',Georgia,serif;font-size:clamp(16px,5.2vw,27px);font-weight:400;letter-spacing:.23em;color:var(--olive);white-space:nowrap}
.cover .names-amp{color:var(--orange)}
.cover-rule{display:block;width:19%;max-width:95px;height:1px;background:var(--gold);margin:16px auto 0;opacity:.7}
.cover>.living-branch{width:64%;right:-13%;bottom:0;transform:translateY(23%);z-index:0}
.cover>.cover-foliage-top{top:0;bottom:auto;transform:translateY(-67%)}
@media(min-width:700px){.cover{min-height:900px}.cover .hero-logo{margin-bottom:32px}.cover h1{font-size:27px}}

/* Information block follows the supplied reference without changing the paper. */
main>.details{padding:24px 18px 28px;color:var(--olive)}
.details>.fine-rule{width:42px;background:var(--gold);opacity:.65}
.invitation-overline{font:400 12px 'EB Garamond',Georgia,serif;letter-spacing:.25em;margin:26px 0 7px}
.invitation-heading{font:400 clamp(26px,8.1vw,43px) 'EB Garamond',Georgia,serif;color:#9c793d;line-height:1.1;white-space:nowrap}
.invitation-date{font:italic 400 clamp(16px,4.5vw,23px) 'EB Garamond',Georgia,serif;margin-top:29px;line-height:1.4}
.details>.middle-rule{margin:22px auto 20px}
.invitation-venue{font:italic 400 clamp(26px,7vw,36px) 'EB Garamond',Georgia,serif;line-height:1.2}
.invitation-address{font:400 clamp(11px,3.1vw,15px) 'EB Garamond',Georgia,serif;letter-spacing:.13em;margin-top:7px;line-height:1.5}
.invitation-city{font:400 clamp(10px,2.9vw,14px) 'EB Garamond',Georgia,serif;letter-spacing:.17em;margin-top:8px}
.details>.bottom-rule{margin:24px auto 0}
.details>.section-foliage{display:none}

/* Keep the supplied attire palette and clear the cover-to-details boundary. */
.cover>.living-branch:not(.cover-foliage-top){display:block}
.cover>.living-branch:not(.cover-foliage-top) .individual-leaf[data-leaf="10"]{display:none}
.guests-static{mix-blend-mode:multiply;animation:none;transform:none}
.guests-stage{aspect-ratio:456/295}

/* Crop only the excess above and below; retain both heads and all fingers. */
.portrait-stage{aspect-ratio:1/1}
.portrait-stage img{object-fit:cover;object-position:50% 50%}

.portrait-section>.portrait-branch{display:none}

/* A shared spacing rhythm without changing the continuous paper. */
.invitation-address,.invitation-city{font-size:14px;line-height:1.5;letter-spacing:.08em;overflow-wrap:break-word}
main>.details{padding-bottom:32px}
main>.count-section{padding-top:32px;padding-bottom:64px}
main>.dress{padding-top:0;padding-bottom:64px}
main>.actions{padding:0 16px 64px}
main>.closing{padding-top:0;padding-bottom:64px}

@media(max-width:360px){main>.actions{padding-left:12px;padding-right:12px}}

.count-section>.section-foliage,.dress>.section-foliage,.actions>.section-foliage{display:none}
