@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--ink:#25362e;--blue:#dcecf5;--paper:#fafaf6;--olive:#44503c;--line:#cbd1c8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #20658a;outline-offset:5px}.skip{position:absolute;left:20px;top:-100px;z-index:5;background:white;padding:14px}.skip:focus{top:20px}.review{padding:8px 5%;background:var(--ink);color:white;font-size:12px;letter-spacing:.12em;display:flex;justify-content:space-between;gap:12px}.review span{letter-spacing:0}header{height:96px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:var(--blue)}.monogram{font-family:'Playfair Display',serif;font-size:35px;letter-spacing:-3px}.monogram span{font-size:23px;margin:0 6px}nav{display:flex;gap:36px;font-size:14px}.date-top{font-size:14px;letter-spacing:.14em}.hero{position:relative;display:grid;grid-template-columns:1.05fr 1fr;min-height:780px;background:var(--blue);overflow:hidden;padding:32px 5% 0}.hero-copy{position:relative;z-index:1;padding-top:40px}.eyebrow{font-size:12px;letter-spacing:.17em;font-weight:600;margin:0 0 28px}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:400;line-height:1.09;letter-spacing:-.05em;margin:0}h1{font-size:clamp(56px,6.8vw,102px)}em{font-weight:400}h1 em,h2 em{color:#456148}.intro{margin:28px 0 30px;font-size:17px;line-height:1.8}.button{display:inline-flex;align-items:center;gap:40px;background:var(--ink);color:#fff;padding:17px 24px;border-radius:3px;font-size:14px;transition:background .2s}.button:hover{background:#40573f}.wedding-date{display:flex;align-items:center;gap:15px;margin:50px 0 70px}.wedding-date>span{font-family:'Playfair Display',serif;font-size:61px;line-height:1}.wedding-date>div{font-size:12px;letter-spacing:.15em;line-height:1.5}.wedding-date p{font-size:13px;line-height:1.4;padding-left:24px;margin-left:10px;border-left:1px solid #81958b}.hero-art{position:relative;align-self:end;padding-left:4%;isolation:isolate}.hero-art img{display:block;width:100%;height:auto;max-height:750px;object-fit:contain;mix-blend-mode:multiply;filter:contrast(1.025);transform-origin:bottom center;animation:arrive 1.2s ease-out}.art-caption{text-align:center;position:relative;font-size:10px;letter-spacing:.12em;margin:14px 0 32px}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid #afc3c7;padding:21px 0;font-size:12px}.hero-bottom a{letter-spacing:.12em}.journey{display:grid;grid-template-columns:1fr 1.15fr;gap:9%;padding:130px 8%}.section-heading h2,.little-things h2{font-size:clamp(42px,4.5vw,66px)}.section-heading>p:last-child{margin-top:28px;font-size:16px;max-width:280px}.stops{display:flex;border-bottom:1px solid var(--line);gap:8px;justify-content:space-between}.stops button{border:0;border-bottom:3px solid transparent;background:transparent;padding:10px 7px 20px;color:#617062;font-size:13px}.stops button span{margin-left:10px}.stops [aria-selected=true]{border-color:var(--olive);color:var(--ink)}#story-panel{padding:36px 0;min-height:350px}.chapter{font-size:11px;letter-spacing:.13em}#story-panel h3{font-size:36px;margin:20px 0}.story-text,.story-note{font-size:16px;max-width:460px}.story-note{color:#566455}.story-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px}.story-footer>span{font-size:12px;letter-spacing:.1em}.story-footer button,.text-button{border:0;background:none;padding:12px 0;font-size:14px}.story-footer button span{margin-left:25px}.little-things{background:#e9ece3;padding:85px 8% 95px}.little-things>div{display:grid;grid-template-columns:1fr 1fr;gap:12%}.little-copy{max-width:470px}.little-copy p{margin-top:0;margin-bottom:25px}.text-button{border-bottom:1px solid #7c8d77;min-height:44px;text-align:left}.text-button span{margin-left:22px}#personalities{padding-top:25px}#personalities strong{font-family:'Playfair Display';font-size:24px}.memories{padding:110px 8%}.collections{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:50px}.collections article{border-top:1px solid #80907c;padding-top:24px}.collections article>span{font-size:12px}.collections h3{font-size:35px;margin:30px 0 18px}.collections p{font-size:15px}.collections .status{display:inline-block;margin:25px 0 0;border-bottom:1px solid var(--line);padding-bottom:8px;font-size:13px;color:#586551}.closing{text-align:center;background:var(--blue);padding:90px 20px 100px}.closing p,.closing>span{font-size:12px;letter-spacing:.2em}.closing h2{font-size:clamp(66px,8vw,108px);margin:32px 0 38px}footer{display:flex;align-items:center;gap:35px;background:var(--ink);color:white;padding:35px 8%}footer img{width:155px;height:auto}footer p{font-size:13px}footer a{margin-left:auto;font-size:13px}.review-details{padding:20px 8%;background:#edf0e9;font-size:13px}.review-details summary{cursor:pointer;min-height:30px}.review-details p{max-width:900px}@keyframes arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@media(min-width:1600px){.hero{padding-left:10%;padding-right:10%}}@media(max-width:800px){header{height:78px}.date-top{display:none}nav{gap:20px}.hero{grid-template-columns:1fr;padding:18px 7% 0;min-height:0}.hero-copy{padding-top:20px}.hero h1{font-size:clamp(54px,10vw,76px)}.intro{font-size:16px}.wedding-date{margin:30px 0}.hero-art{padding:0 10%;max-width:530px;justify-self:center;margin-top:0}.hero-art img{max-height:none}.hero-bottom{gap:20px}.hero-bottom>span{max-width:140px}.hero-bottom>a{text-align:right;max-width:150px}.journey{grid-template-columns:1fr;gap:38px;padding:75px 7%}.section-heading h2,.little-things h2{font-size:46px}.section-heading>p:last-child{max-width:none}#story-panel{min-height:340px}#story-panel h3{font-size:34px}.little-things{padding:65px 7%}.little-things>div{grid-template-columns:1fr;gap:34px}.memories{padding:75px 7%}.collections{grid-template-columns:1fr;gap:32px}.collections article{position:relative;padding-left:42px}.collections article>span{position:absolute;left:0;top:26px}.collections h3{margin:0 0 15px}.collections .status{margin-top:10px}.closing{padding:70px 20px}footer{flex-wrap:wrap;gap:12px 25px;padding:28px 7%}footer img{width:130px}footer p{max-width:150px}footer a{margin:10px 0 0;width:100%}.review{font-size:10px}.review span{max-width:180px;text-align:right}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}@media(max-width:380px){nav{font-size:12px;gap:12px}.wedding-date{gap:10px}.wedding-date p{padding-left:12px;margin-left:0}.hero h1{font-size:49px}.stops button{padding-left:0;padding-right:0}.stops button span{margin-left:4px}}
/* Original ImageGen artwork: full garments and transparent alpha edges. */
.hero{grid-template-columns:.85fr 1.15fr;min-height:740px}
.hero-art{isolation:isolate;align-self:center;padding:0;width:calc(100% + 100px);margin-left:-100px}
.hero-art img{mix-blend-mode:normal;filter:none;max-height:none;object-fit:contain}
.art-caption{margin-top:25px}
.portrait-scroll{height:170vh;position:relative;background:#dcecf5;--reveal:1;--drift:0px;scroll-margin-top:0}
.portrait-stage{height:100svh;min-height:600px;position:sticky;top:0;overflow:hidden;isolation:isolate;display:grid;place-items:center;background:radial-gradient(ellipse at center,#fafaf6 0%,#e3eef2 55%,#dcecf5 100%)}
.portrait-copy{position:relative;z-index:2;text-align:center;width:44%;padding:20px 0 70px}
.portrait-copy h2{font-size:clamp(44px,5.6vw,82px);letter-spacing:-.035em}
.portrait-copy>p:not(.eyebrow){font-size:16px;line-height:1.8;margin-top:26px}
.portrait-copy .eyebrow{font-size:11px;letter-spacing:.13em}
.scroll-hint{font-size:9px;letter-spacing:.14em;display:block;margin-top:34px}
.portrait-edge{position:absolute;top:12%;bottom:0;width:43%;pointer-events:none;z-index:1;overflow:hidden}
.portrait-edge img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center top;max-width:none}
.edge-left{left:0;transform:translateX(calc(-110% + var(--reveal) * 60%))}
.edge-right{right:0;transform:translateX(calc(110% - var(--reveal) * 60%))}
.portrait-cloud{position:absolute;bottom:-12%;width:80%;height:48%;object-fit:contain;z-index:3;pointer-events:none}
.cloud-left{left:-23%;transform:translateX(calc(var(--reveal) * -12%))}
.cloud-right{right:-23%;transform:translateX(calc(var(--reveal) * 12%)) scaleX(-1)}
.second-duo .portrait-stage{background:radial-gradient(ellipse at center,#fafaf6,#e9ece3)}
.scene-transition{height:180px;position:relative;overflow:hidden;background:var(--paper);--drift:0px;pointer-events:none;margin-top:-1px}
.transition-cloud{position:absolute;width:100%;height:330px;object-fit:cover;left:0;top:-160px;transform:translateY(calc(var(--drift) * .3))}
.transition-leaves{position:absolute;width:360px;height:240px;object-fit:contain;right:10%;top:-40px;transform:translateY(var(--drift)) rotate(-14deg)}
.transition-kunai{position:absolute;width:190px;height:130px;object-fit:contain;left:12%;top:12px;transform:translateY(calc(var(--drift) * .5)) rotate(-12deg)}
.journey{padding-top:75px}.memories{padding-top:70px}
.motion-toggle{position:fixed;right:16px;bottom:16px;z-index:8;border:1px solid #8c9f91;background:#fafaf6f5;color:#25362e;border-radius:30px;padding:11px 17px;min-height:44px;font-size:12px;box-shadow:0 3px 18px #25362e12}
.effects-paused{scroll-behavior:auto}
@media(min-width:1600px){.hero-art{width:calc(100% + 120px);margin-left:-120px}}
@media(max-width:800px){.hero{grid-template-columns:1fr;min-height:0}.hero-art{width:116%;max-width:700px;margin:0 -8%;padding:0}.art-caption{font-size:8px;letter-spacing:.07em;margin:12px 0 28px}.portrait-scroll{height:155vh}.portrait-stage{min-height:610px}.portrait-copy{width:66%;align-self:start;padding:54px 0 0}.portrait-copy h2{font-size:clamp(36px,9.8vw,54px)}.portrait-copy .eyebrow{font-size:9px;margin-bottom:20px}.portrait-copy>p:not(.eyebrow){font-size:14px;margin-top:20px}.scroll-hint{font-size:8px;margin-top:22px}.portrait-edge{width:72%;top:43%;bottom:0}.edge-left{transform:translateX(calc(-115% + var(--reveal) * 65%))}.edge-right{transform:translateX(calc(115% - var(--reveal) * 65%))}.portrait-cloud{bottom:-12%;width:130%;height:38%}.cloud-left{left:-55%}.cloud-right{right:-55%}.scene-transition{height:110px}.transition-cloud{height:200px;top:-105px}.transition-leaves{width:220px;height:145px;right:-8%;top:-10px}.transition-kunai{width:130px;height:90px;left:5%;top:4px}.motion-toggle{font-size:10px;padding:9px 13px;bottom:10px;right:10px}.second-duo .portrait-copy{padding-top:70px}}
@media(prefers-reduced-motion:reduce){.portrait-scroll{height:auto}.portrait-stage{position:relative}.edge-left{transform:translateX(-50%)}.edge-right{transform:translateX(50%)}.transition-cloud,.transition-leaves,.transition-kunai{transform:none}}
/* Fade section edges so overlapping smoke never forms a rectangular band. */
.portrait-stage{mask-image:linear-gradient(to bottom,#000 88%,transparent)}
.scene-transition{background:transparent}
.transition-cloud{mask-image:linear-gradient(to bottom,#000 60%,transparent 95%)}
.transition-leaves{mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 85%,transparent)}
.portrait-scroll{background:linear-gradient(var(--blue) 75%,var(--paper))}
.second-duo{background:linear-gradient(#e9ece3 75%,var(--paper))}
.scene-transition{mask-image:linear-gradient(to bottom,transparent,#000 25%,#000 70%,transparent)}


/* Illustrated memories respond directly to touch, keyboard and pointer. */
.story-cinema{padding:80px 6% 55px;background:#203b35;color:#f6f0dc;position:relative}
.cinema-heading{text-align:center;margin:0 auto 48px;max-width:760px}.cinema-heading .eyebrow{color:#d5bd83;font-size:10px;margin-bottom:22px}.cinema-heading h2{font-size:clamp(45px,5.8vw,78px);letter-spacing:-.025em}.cinema-heading h2 br{display:none}.cinema-heading h2 em{color:#d5bd83}.cinema-heading>p:last-child{font-size:14px;color:#d4dfd4;margin-top:23px}
.cinema-projector{max-width:1100px;margin:auto;background:#142a25;border:1px solid #6b7968;box-shadow:0 25px 60px #0b201c55}
.cinema-topline{display:flex;justify-content:space-between;align-items:center;padding:16px 26px;font-size:10px;letter-spacing:.15em;border-bottom:1px solid #526455;color:#dcc895}
.cinema-screen{display:flex;flex-direction:column;align-items:center;overflow:hidden;background:#10241f}.cinema-art{position:relative;margin:24px auto;width:min(100% - 48px,480px)}.stop-scene{aspect-ratio:1;overflow:hidden;background:#34483b}.stop-scene[hidden]{display:none}.stop-scene img{display:block;width:200%;height:200%;max-width:none;animation:none;will-change:transform}.frame-stamp{position:absolute;bottom:12px;left:14px;font-size:10px;letter-spacing:.12em;background:#142a25dd;color:#f6f0dc;padding:5px 9px}
.story-cinema #story-panel{padding:22px 36px 28px;min-height:0;text-align:center;max-width:780px;margin:auto}.story-cinema .chapter{color:#d5bd83;font-size:10px}.story-cinema #story-panel h3{font-size:clamp(25px,2.8vw,38px);letter-spacing:-.02em;margin:20px 0 24px}.story-cinema .story-text{max-width:none;font-size:14px;line-height:1.85;color:#f1f0e7}.story-cinema .story-note{max-width:none;font-size:13px;line-height:1.7;color:#bacbbd;font-style:italic;margin-top:16px}
.story-cinema :focus-visible{outline:3px solid #eed693;outline-offset:4px}
.film-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:24px;background:repeating-linear-gradient(90deg,#142a25 0 14px,#71806a 14px 22px,#142a25 22px 36px) top/100% 4px no-repeat}.film-strip button{display:flex;gap:16px;align-items:center;text-align:left;padding:10px;border:1px solid #526455;background:transparent;opacity:.7;transition:opacity .2s,background .2s;color:#f6f0dc;font-family:'Playfair Display',serif;font-size:21px}.film-strip button:hover,.film-strip button[aria-pressed=true]{opacity:1;background:#314a3d;border-color:#d5bd83}.film-strip button small{display:block;font-family:'DM Sans',sans-serif;font-size:8px;letter-spacing:.09em;margin-bottom:5px;color:#dcc895}.film-thumb{width:68px;aspect-ratio:1;flex-shrink:0;background-size:200% 200%;background-position:0 0}.thumb-encontro{background-image:url('assets/historia-encontro.png')}.thumb-pedido{background-image:url('assets/historia-pedido.png')}.thumb-caminho{background-image:url('assets/historia-caminho.png')}.cinema-footnote{text-align:center;color:#b9cbbb;font-size:11px;margin:25px auto 0;max-width:550px}
@media(max-width:800px){.story-cinema{padding:55px 5% 40px}.cinema-heading{margin-bottom:32px}.cinema-heading h2 br{display:block}.cinema-screen{grid-template-columns:1fr}.cinema-art{margin:12px;width:calc(100% - 24px)}.story-cinema #story-panel{padding:20px 22px;min-height:310px}.story-cinema #story-panel h3{font-size:30px;margin:14px 0}.story-cinema .story-text{line-height:1.65}.story-cinema .story-note{margin-top:18px}.cinema-topline{padding:13px;font-size:8px;letter-spacing:.08em}.film-strip{gap:8px;padding:15px 12px}.film-strip button{display:block;text-align:center;padding:6px;font-size:14px}.film-thumb{display:block;width:100%;margin-bottom:9px}.film-strip button small{font-size:7px;letter-spacing:0}.cinema-footnote{font-size:10px;padding:0 12px}}

.cinema-heading h2 br{display:block}.cinema-heading h2{font-size:clamp(42px,5vw,68px)}
.cinema-projector{border:0;box-shadow:none;background:transparent}.cinema-topline{border:0;padding:0 0 22px;max-width:540px;margin:auto}.cinema-screen{background:transparent;overflow:visible}
.cinema-art{background:#f5f0e1;padding:12px 12px 28px;box-shadow:0 15px 35px #0b201c55;cursor:pointer;touch-action:pan-y;transform:rotate(-1deg);margin:8px auto 15px}.cinema-art img{pointer-events:none;user-select:none}.gesture-hint{text-align:center;font-size:12px;line-height:1.8;color:#f1e6c9;margin:14px 0 30px}.gesture-hint span{font-size:11px;color:#b9cbbb}
.film-strip{background:none;max-width:850px;margin:auto;padding-top:10px}.film-strip button{border:0;border-bottom:2px solid transparent}.film-strip button[aria-pressed=true]{background:transparent;border-color:#d5bd83}.film-strip button:hover{background:#314a3d}
@media(max-width:800px){.cinema-art{padding:8px 8px 20px;width:calc(100% - 26px)}.cinema-topline{font-size:8px;padding:0 8px 14px}.gesture-hint{font-size:11px;margin:12px 0 16px}.gesture-hint span{font-size:10px}.cinema-heading h2{font-size:41px}}

/* Personal photographs retain their original proportions. */
.couple-gallery{padding:70px 8vw 100px;scroll-margin-top:30px}.gallery-heading{margin-bottom:40px}.gallery-heading h2{font-size:clamp(42px,5vw,72px);line-height:1.08;margin:20px 0}.photo-grid{columns:4;column-gap:20px}.photo-tile{display:block;width:100%;border:0;background:transparent;padding:0;margin:0 0 20px;break-inside:avoid;cursor:zoom-in}.photo-tile img{display:block;width:100%;height:auto}.collections a.status{display:inline-block;color:inherit;text-decoration:none}#photo-viewer{border:0;background:#142b26;color:#fff;padding:60px 20px 20px;width:min(96vw,1200px);max-width:96vw;max-height:96dvh;overflow:auto}#photo-viewer::backdrop{background:#081812eb}#photo-viewer>img{display:block;max-width:100%;height:calc(85dvh - 130px);object-fit:contain;margin:auto}.photo-close{position:absolute;right:20px;top:12px}.photo-navigation{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:15px}#photo-viewer button{background:transparent;color:#fff;border:1px solid #aabcb2;padding:10px 18px;cursor:pointer;min-height:44px}html:has(#photo-viewer[open]){overflow:hidden}@media(max-width:800px){.couple-gallery{padding:50px 6vw 70px}.photo-grid{columns:2;column-gap:12px}.photo-tile{margin-bottom:12px}.gallery-heading{margin-bottom:25px}}

/* Boundary artwork straddles both sections; no independent decorative strips. */
.scene-transition{height:0!important;margin:0;position:relative;z-index:4;isolation:isolate;overflow:visible;mask-image:none;background:none;--drift:0px;pointer-events:none}
.scene-transition::before{content:"";position:absolute;left:0;right:0;top:-30px;height:30px;background:linear-gradient(transparent,var(--to))}
.scene-transition::after{content:none}
.seam-cloud{position:absolute;max-width:none;object-fit:fill;pointer-events:none;width:75%;height:220px;top:-130px;opacity:1;mask-image:linear-gradient(180deg,#000 65%,transparent 100%)}
.seam-cloud-left{left:-10%;transform:translateY(var(--cloud-rise,0px)) rotate(-5deg)}
.seam-cloud-right{right:-10%;top:-110px;transform:translateY(var(--cloud-rise,0px)) scaleX(-1) rotate(5deg)}
.seam-detail{position:absolute;left:67%;top:-80px;width:180px;height:140px;object-fit:contain;z-index:1;transform:rotate(-18deg) translateY(calc(var(--drift) * .2));mask-image:linear-gradient(#000 70%,transparent)}

.seam-2 .seam-detail,.seam-5 .seam-detail{left:18%;transform:rotate(15deg) translateY(calc(var(--drift) * .2))}
.seam-1 .seam-cloud,.seam-4 .seam-cloud,.seam-6 .seam-cloud{height:160px;top:-90px;opacity:1}
.seam-1 .seam-detail,.seam-4 .seam-detail,.seam-8 .seam-detail{display:none}
.seam-3 .seam-detail,.seam-6 .seam-detail{width:100px;left:76%;top:-65px;height:110px;opacity:.7}

main{overflow-x:clip;overflow-y:visible}.hero-bottom{position:relative;z-index:5}.portrait-scroll{z-index:0}
.story-cinema{padding-top:150px;padding-bottom:180px}.little-things{padding-top:120px;padding-bottom:120px}.memories{padding-top:120px;padding-bottom:110px}.couple-gallery{padding-top:120px;padding-bottom:120px}.closing{padding-top:120px;padding-bottom:110px}footer{padding-top:65px}
@media(max-width:800px){.seam-cloud{width:85%;height:130px;top:-80px}.seam-cloud-left{left:-18%}.seam-cloud-right{right:-18%;top:-62px}.scene-transition::before{top:-20px;height:20px}.seam-detail{width:120px;height:95px;left:62%;top:-55px}.seam-3 .seam-detail,.seam-6 .seam-detail{width:75px;height:75px;top:-45px;left:72%}.story-cinema,.little-things,.memories,.couple-gallery,.closing{padding-top:85px;padding-bottom:85px}footer{padding-top:55px}.story-cinema{padding-bottom:120px}.seam-1 .seam-cloud,.seam-4 .seam-cloud,.seam-6 .seam-cloud{height:110px;top:-60px}}
@media(prefers-reduced-motion:reduce){.seam-cloud,.seam-detail{transform:none}}

/* A scroll of memories, framed by the couple's shinobi-inspired artwork. */
.couple-gallery{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#e8e6d6 0,transparent 70%),#fafaf6}
.gallery-heading{text-align:center;max-width:700px;margin:0 auto 25px}.gallery-heading .eyebrow{color:#586548}.gallery-heading h2{font-size:clamp(50px,6vw,86px)}
.gallery-instruction{text-align:center;font-size:14px;color:#54614f;margin:0 0 65px}.gallery-instruction span{display:inline-block;margin-left:10px;font-size:24px}
.gallery-scroll-art{position:absolute;inset:0;pointer-events:none;z-index:-1}.gallery-scroll-art img{position:absolute;width:260px;opacity:.75}.gallery-scroll-art img:first-child{left:-80px;top:150px;transform:rotate(25deg)}.gallery-scroll-art img:last-child{right:-70px;top:80px;transform:rotate(-30deg)}
.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:45px 25px;columns:auto;align-items:start;position:relative;padding:20px 0 60px}
.photo-grid::before{content:"";position:absolute;inset:12% 3%;border:1px solid #79876440;border-radius:50%;transform:rotate(-12deg);pointer-events:none;z-index:-1}
.photo-tile{padding:9px;background:#fffef6;box-shadow:0 8px 20px #23372d15;margin:0;transform:rotate(-3deg);transition:transform .4s,box-shadow .4s;position:relative;border:1px solid #d6d8c8}
.photo-tile:nth-child(even){transform:translateY(55px) rotate(3deg)}.photo-tile:nth-child(3n){transform:translateY(18px) rotate(-1deg)}
.photo-tile:hover,.photo-tile:focus-visible{transform:translateY(-10px) rotate(0) scale(1.035);box-shadow:0 22px 40px #23372d30;z-index:2;outline:2px solid #536448;outline-offset:5px}
.photo-caption{display:flex;align-items:center;gap:10px;text-align:left;padding:17px 3px 8px;font-family:Georgia,serif;font-size:clamp(13px,1.25vw,18px);color:#25362e}.photo-caption small{font:10px Arial,sans-serif;color:#657152}.photo-caption b{margin-left:auto;font-family:Arial;font-size:20px;font-weight:400}
#photo-viewer{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:70px 24px 20px;overflow:hidden;background:#122b25f7;box-sizing:border-box}
#photo-viewer[open]{display:flex;flex-direction:column;align-items:center;justify-content:center}#photo-viewer::backdrop{background:#10241f}
#photo-viewer>.viewer-image{position:relative;width:auto;max-width:90vw;height:auto;max-height:calc(100dvh - 210px);object-fit:contain;transform-origin:top left;box-shadow:0 20px 80px #0005;z-index:1;touch-action:pan-y pinch-zoom}
.viewer-aura{position:absolute;width:min(75vw,700px);aspect-ratio:1;border:1px solid #b9c68b40;border-radius:50%;box-shadow:0 0 0 35px #c9cc9209,0 0 0 36px #c9cc9220;pointer-events:none}
.viewer-aura::after{content:"";position:absolute;inset:-80px;background:url('assets/folhas.png') center/contain no-repeat;opacity:.23}
.viewer-caption{margin:18px 0 0;font:italic 22px Georgia,serif;z-index:1}.photo-navigation{position:relative;z-index:1;margin-top:12px}.photo-navigation span{font-size:12px;letter-spacing:3px}#photo-viewer button{border-color:#8e9e83;border-radius:30px;min-width:48px}.photo-close{z-index:3}#photo-viewer button:hover{background:#ffffff18}
@media(max-width:800px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 16px;padding-bottom:40px}.photo-tile{padding:6px}.photo-tile:nth-child(even){transform:translateY(35px) rotate(3deg)}.photo-caption{font-size:13px;gap:5px;padding:12px 0 5px}.photo-caption small{font-size:9px}.gallery-instruction{max-width:250px;margin:0 auto 35px;line-height:1.6}.gallery-scroll-art img{width:160px;opacity:.4}.gallery-scroll-art img:first-child{left:-65px;top:180px}.gallery-scroll-art img:last-child{right:-60px;top:100px}.viewer-caption{font-size:20px}#photo-viewer{padding:65px 15px 20px}}
@media(prefers-reduced-motion:reduce){.photo-tile{transition:none}.photo-tile:hover,.photo-tile:focus-visible{transform:none}}
.effects-paused .photo-tile{transition:none}

/* Blend cropped portrait shoulders into the surrounding mist. */
.edge-left img{mask-image:linear-gradient(to right,#000 76%,transparent 100%),linear-gradient(to bottom,#000 70%,transparent 100%);mask-composite:intersect}
.edge-right img{mask-image:linear-gradient(to left,#000 76%,transparent 100%),linear-gradient(to bottom,#000 70%,transparent 100%);mask-composite:intersect}

/* Album navigation: a photographic link, with upcoming chapters clearly separate. */
.album-intro{max-width:430px;margin:24px 0 0;font-size:17px;color:#586551}
.album-shelf{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:clamp(30px,5vw,80px);align-items:center;margin-top:48px;position:relative;z-index:5}
.album-open{display:block;background:#fff;border:1px solid #c4ccbf;padding:12px;box-shadow:0 12px 32px #25362e0c;transition:transform .3s,box-shadow .3s,border-color .3s;border-radius:3px}
.album-cover{position:relative;overflow:hidden;aspect-ratio:16/10;background:#e9ece3}
.album-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.album-count{position:absolute;left:16px;top:16px;padding:7px 12px;background:#fafaf6;color:#25362e;font-size:12px;font-weight:600;border-radius:2px}
.album-corner{position:absolute;right:16px;bottom:16px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#fafaf6;color:#25362e;font-size:25px}
.album-caption{padding:24px 14px 14px;display:flex;gap:20px;align-items:center;justify-content:space-between}
.album-index{font-size:10px;font-weight:600;letter-spacing:.14em;color:#586551}
.album-caption h3{font-size:36px;margin:8px 0 10px}.album-caption p{font-size:14px;margin:0}
.album-action{display:inline-flex;align-items:center;justify-content:center;gap:22px;flex-shrink:0;background:#253e34;color:#fff;padding:14px 19px;min-height:48px;font-size:14px;font-weight:600;border-radius:2px}
.upcoming-label{font-size:11px;letter-spacing:.15em;font-weight:600;color:#586551;margin:0 0 28px}
.album-future{padding:26px 0;border-top:1px solid #cbd1c8}.album-future:last-child{padding-bottom:0}.album-future h3{font-size:clamp(27px,3vw,39px);margin:12px 0}.album-future p{font-size:14px;margin:0 0 18px;color:#586551}
.album-availability{display:inline-block;font-size:12px;color:#586551;background:#e9ece3;padding:6px 10px;border-radius:3px}
@media(hover:hover){.album-open:hover{transform:translateY(-5px);box-shadow:0 18px 38px #25362e19;border-color:#617357}.album-open:hover .album-cover img{transform:scale(1.035)}.album-open:hover .album-action{background:#395745}}
.album-open:focus-visible{outline:3px solid #20658a;outline-offset:6px}
@media(max-width:1000px){.album-caption{align-items:flex-start;flex-direction:column}.album-action{width:100%}}
@media(max-width:700px){.album-shelf{grid-template-columns:1fr;gap:38px;margin-top:32px}.album-cover{aspect-ratio:4/3}.album-caption{padding:20px 8px 8px}.album-caption h3{font-size:34px}.album-count{left:12px;top:12px}.album-intro{font-size:16px}.albums-upcoming{padding:0 8px}.upcoming-label{margin-bottom:20px}.album-future h3{font-size:30px}}
@media(prefers-reduced-motion:reduce){.album-open,.album-cover img{transition:none}.album-open:hover{transform:none}.album-open:hover .album-cover img{transform:none}}

/* Repeat clouds at their native aspect ratio instead of stretching a panoramic band. */
.scene-transition .seam-cloud{width:40%;height:auto;aspect-ratio:1916/821;object-fit:contain;top:0;transform:translateY(calc(-55% + var(--cloud-rise,0px)));mask-image:linear-gradient(180deg,#000 65%,transparent 100%)}
.scene-transition .seam-cloud-left{left:-10%;right:auto;transform:translateY(calc(-55% + var(--cloud-rise,0px))) rotate(-5deg)}
.scene-transition .seam-cloud-middle-left{left:16%;transform:translateY(calc(-48% + var(--cloud-rise,0px))) scaleX(-1)}
.scene-transition .seam-cloud-middle-right{left:42%;transform:translateY(calc(-60% + var(--cloud-rise,0px)))}
.scene-transition .seam-cloud-right{left:68%;right:auto;transform:translateY(calc(-50% + var(--cloud-rise,0px))) scaleX(-1) rotate(5deg)}
@media(max-width:800px){.scene-transition .seam-cloud{width:70%}.scene-transition .seam-cloud-left{left:-35%}.scene-transition .seam-cloud-middle-left{left:0}.scene-transition .seam-cloud-middle-right{left:35%}.scene-transition .seam-cloud-right{left:70%}}
/* Keep the pre-wedding album action readable in the narrower shelf column. */
.albums-upcoming .album-caption{flex-direction:column;align-items:flex-start}
.albums-upcoming .album-action{width:100%}
.albums-upcoming .album-future{margin-top:28px}
