@font-face{font-family:Bitter;font-style:normal;font-weight:500 800;font-display:swap;src:url('bitter-subset.woff') format('woff')}
:root{color-scheme:light;--paper:#f2e8d4;--light:#fbf6ea;--ink:#304536;--brown:#684936;--gold:#b79560;--sans:'Alegreya Sans',Arial,sans-serif;--serif:'Bitter',Georgia,serif}
*{box-sizing:border-box}html{background:#20291f}body{margin:0;color:var(--ink);font-family:var(--sans);text-align:center;background:#20291f}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #d8ba7d;outline-offset:6px}[hidden]{display:none!important}main:focus{outline:none}
#welcome{position:relative;isolation:isolate;min-height:100svh;padding:clamp(50px,9svh,100px) 24px 48px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;color:#382c1f;background:#bca57f;transform-origin:50% 59%;will-change:transform,opacity}
#welcome:before{content:'';position:absolute;z-index:-2;inset:-3%;background:url('countryside-cinematic.webp') center 58%/cover no-repeat;animation:breathe 18s ease-in-out infinite alternate}
#welcome:after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,#34260e0d,#f6e7be26 30%,#f3ddac18 56%,#17241680)}
.welcome-date{font-size:13px;letter-spacing:3px;font-weight:700;margin-bottom:21px;color:#3c301f;text-shadow:0 1px 14px #fff4d7}
h1{margin:0 0 34px;font-family:var(--serif);font-weight:700}h1 span{display:block;font-size:clamp(34px,8.5vw,68px);line-height:1.1;letter-spacing:-1.8px;text-shadow:0 2px 24px #fff2ca99}h1 strong{display:inline-block;font:500 19px/1.5 var(--serif);margin-top:12px;padding:4px 10px;border-top:1px solid #6e513f70;border-bottom:1px solid #6e513f70}
#envelope{width:min(320px,78vw);aspect-ratio:1.54;height:auto;position:relative;display:block;margin:0 auto;padding:0;border:1px solid #805a36;background:linear-gradient(145deg,#b78853,#936a42);border-radius:3px;box-shadow:0 18px 36px #2c241650,0 2px 3px #25180d4d,inset 0 0 20px #6e47221a;perspective:1000px;transform-style:preserve-3d;isolation:isolate;transition:filter .3s}
#envelope:after{content:'';position:absolute;inset:0;z-index:7;pointer-events:none;border-radius:3px;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%2387663e' filter='url(%23n)' opacity='.17' d='M0 0h180v180H0z'/%3E%3C/svg%3E");opacity:.28}
#envelope:hover{filter:brightness(1.04)}.letter{position:absolute;inset:12px 16px;z-index:1;display:grid;place-content:center;background:var(--light);color:var(--ink);border:1px solid #bba57c;transition:transform .9s .35s;box-shadow:0 0 12px #33251125}.letter b{font:600 22px var(--serif)}.letter small{margin-top:10px;font-size:12px;letter-spacing:2px}
.flap{position:absolute;inset:-1px;z-index:4;background:linear-gradient(175deg,#d4ad7d,#bd9464 70%);clip-path:polygon(0 0,100% 0,50% 62%);transform-origin:top;transition:transform .85s ease,filter .85s;backface-visibility:hidden}.pocket{position:absolute;inset:0;z-index:3;background:conic-gradient(from 0deg at 50% 52%,#b78c5c,#a87d4e 90deg,#bd9464 180deg,#a97c4a 270deg,#b78c5c);clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%)}
.seal{position:absolute;z-index:5;top:44%;left:calc(50% - 31px);width:62px;height:62px;display:grid;place-items:center;border:1px solid #4a2d1c;border-radius:48% 52% 47% 53%;background:radial-gradient(circle at 33% 25%,#997245,#65442b 65%,#4c301e);box-shadow:0 4px 9px #25170d70,inset 0 0 0 4px #ffffff10,inset 0 0 0 6px #4f3424;color:#e7c88b;text-shadow:0 1px 1px #362516;font:700 34px/1 Georgia,serif;transform:rotate(-7deg);transition:opacity .25s,transform .4s}
.opening .seal{opacity:0;transform:rotate(-7deg) scale(1.3)}.opening .flap{transform:rotateX(178deg);filter:brightness(.75)}.opening .letter{transform:translateY(-62px)}
.addressee{width:min(450px,100%);margin-top:30px;color:#fff1d1;text-shadow:0 2px 8px #17200d}.addressee span{font-size:11px;font-weight:600;letter-spacing:2.5px}.addressee p{font:500 clamp(16px,4vw,20px)/1.5 var(--serif);margin:8px 0 0}.hint{margin:22px 0 0;color:#fff2d6;font-size:15px;text-shadow:0 1px 8px #182515}.hint:before{content:'↓';display:block;font-size:20px;margin-bottom:8px;animation:touch 2.6s ease-in-out infinite}
#welcome.travelling{animation:envelope-flight 1.8s cubic-bezier(.55,.05,.35,1) forwards;pointer-events:none}
#journey{position:fixed;inset:0;z-index:10;background:#302616;opacity:0;overflow:hidden;pointer-events:none;visibility:hidden}#journey img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 45%}#journey.enter{visibility:visible;animation:journey 2.6s both}#journey.enter img{animation:barn-flight 2.6s cubic-bezier(.15,.45,.3,1) both}
main{padding:0 24px 65px;background:linear-gradient(#252a20,#20291f)}.card{max-width:650px;margin:auto;background:var(--paper);box-shadow:0 20px 80px #0005;overflow:hidden}.barn-scene{position:relative;isolation:isolate;aspect-ratio:1/1.13;display:flex;align-items:center;justify-content:center;background:#4d3b27 url('barn-cinematic.webp') center 47%/cover;overflow:hidden}.barn-scene:after{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,#22190c08 70%,#281d1370)}.barn-light{position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 20%,#ffeac514 46%,transparent 75%);animation:sunlight 9s ease-in-out infinite alternate}.jose-art{position:relative;width:65%;margin-top:8%;aspect-ratio:1;box-shadow:0 12px 42px #100d0870;padding:6px;background:#c8b289;border:1px solid #d3bd90;transform:rotate(-1deg)}.jose-art picture,.jose-art img{display:block;width:100%;height:100%;object-fit:cover}
.identity{position:relative;padding:26px 100px 27px 28px;background:var(--light);border-bottom:1px solid #bca989;text-align:left}.identity>span{font-size:11px;letter-spacing:2px;color:var(--brown);font-weight:700}.identity h2{font:700 clamp(26px,6.5vw,38px)/1.15 var(--serif);letter-spacing:-1px;margin:9px 0 0}.age{position:absolute;right:25px;top:27px;width:58px;height:58px;display:grid;place-content:center;border:1px solid #bca989;border-radius:50%;color:var(--brown)}.age b{font:600 29px/.95 var(--serif)}.age em{font:600 10px var(--sans);letter-spacing:1px;text-transform:uppercase;margin-top:3px}
.paper{padding:32px 38px 38px;background:radial-gradient(#805d3012 .5px,transparent .8px) 0 0/9px 11px,var(--paper)}.guest-card{padding:0 6px 28px}.guest-card span,.countdown span,.location>span,.rsvp>span{display:block;font-size:11px;font-weight:700;letter-spacing:2px;color:var(--brown)}.guest-card p{font:500 19px/1.55 var(--serif);margin:10px 0 0}.countdown{padding:17px 0;border-top:1px solid #bca989;border-bottom:1px solid #bca989;margin-bottom:26px}.countdown strong{display:block;font:500 23px/1.3 var(--serif);margin-top:7px}
.event-grid{display:grid;grid-template-columns:1fr 1fr;background:#fbf6ea80;padding:21px 0;border:1px solid #bca989}.event-grid>div+div{border-left:1px solid #bca989}.event-grid span,.event-grid small{display:block;font-size:12px;font-weight:700;letter-spacing:1.2px}.event-grid strong{display:block;font:600 43px/1.2 var(--serif);margin:5px 0}.event-grid small{font-size:11px}
.location{padding:32px 0}.location h3{font:600 24px/1.3 var(--serif);margin:10px 0}.location p{font-size:17px;line-height:1.65;color:#655744;margin:0 0 20px}.map,.calendar,.whatsapp{display:inline-flex;align-items:center;justify-content:center;min-height:45px;padding:12px 17px;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:1px;border:1px solid var(--ink);transition:background .2s,transform .2s}.map,.whatsapp{background:var(--ink);color:var(--light)}.calendar{margin:10px 0 0 8px;background:transparent}.map:hover,.whatsapp:hover{background:#415b43}.map:active,.calendar:active,.whatsapp:active{transform:translateY(2px)}
.dresscode{margin:0 -38px 0;padding:20px 30px;background:#694b36;color:#f3e7ce;font-size:16px;line-height:1.6}.dresscode b{font-size:11px;font-weight:600;letter-spacing:2px;color:#e8d0a5}.sizes{padding:29px 10px;border-bottom:1px solid #bca989}.sizes h3{font:600 21px var(--serif);margin:0 0 20px}.sizes p{display:inline-block;vertical-align:top;width:48%;margin:0;font-size:18px;line-height:1.6}.sizes span{display:block;font-size:14px;color:var(--brown)}.sizes strong{font-weight:600}.rsvp{padding:29px 0 0}.rsvp strong{display:block;font:600 25px/1.3 var(--serif);margin-top:9px}.rsvp p{font-size:16px;line-height:1.5;color:#655744;margin:12px auto 18px;max-width:350px}.whatsapp{width:100%;max-width:360px;min-height:50px}.closing{font:500 19px/1.7 var(--serif);margin:35px 0 24px}.closing span{display:block;font-size:16px}.replay{border:0;border-bottom:1px solid #a48e6b;background:none;font-size:13px;color:#6a5c48;padding:7px 0}.revealed .barn-scene{animation:arrive 1.2s ease-out both}
@keyframes breathe{from{transform:scale(1)}to{transform:scale(1.055)}}@keyframes sunlight{from{opacity:.25;transform:translateX(-3%)}to{opacity:.8;transform:translateX(3%)}}@keyframes touch{0%,100%{transform:translateY(0);opacity:.6}50%{transform:translateY(5px);opacity:1}}@keyframes envelope-flight{0%{transform:scale(1);filter:blur(0);opacity:1}65%{opacity:1}100%{transform:scale(5.5);filter:blur(5px);opacity:0}}@keyframes journey{0%{opacity:0;clip-path:inset(42% 36% 42% 36% round 4px)}35%{opacity:1;clip-path:inset(0 round 0)}73%{opacity:1}100%{opacity:0;clip-path:inset(0 round 0)}}@keyframes barn-flight{from{transform:scale(1.38);filter:blur(4px)}55%{filter:blur(0)}to{transform:scale(1)}}@keyframes arrive{from{filter:brightness(.8);transform:scale(1.025)}to{filter:brightness(1);transform:scale(1)}}
@media(min-width:700px){#welcome:before{background-size:cover;background-position:center 62%}#welcome{min-height:100svh}#welcome h1 span{font-size:62px}main{padding-top:35px}.card{border:1px solid #bca98955}#journey img{object-position:center 48%}}
@media(max-width:600px){main{padding:0}.paper{padding:28px 24px 32px}.dresscode{margin-left:-24px;margin-right:-24px}.identity{padding-left:24px;padding-right:92px}.age{right:22px}.calendar{margin-left:0}.location .map,.location .calendar{display:flex;width:100%}.barn-scene{aspect-ratio:1/1.14}.jose-art{width:67%}}
@media(max-width:360px){#welcome{padding-left:17px;padding-right:17px}h1 span{font-size:33px}.paper{padding-left:20px;padding-right:20px}.dresscode{margin-left:-20px;margin-right:-20px}.identity h2{font-size:25px}.sizes p{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}#journey{display:none!important}#welcome.travelling{transform:none;filter:none}}
/* Keep the portrait composition intact on wider screens. */
#welcome{max-width:650px;margin:auto}#journey{max-width:650px;margin:0 auto}main{padding-top:0}

/* José, patinhos e celeiro compõem a mesma animação. */
.barn-scene{aspect-ratio:3/4;background:#493822;display:block}
.barn-scene:after{display:none}
.barn-scene .jose-art{width:100%;height:100%;margin:0;padding:0;border:0;box-shadow:none;transform:none;aspect-ratio:auto;background:none}
.barn-scene .jose-art img{object-fit:cover;object-position:center}
/* Visual aprovado: madeira, papel e fotografia, com conteúdo real em HTML. */
#welcome{max-width:600px;min-height:100svh;min-height:max(100svh,780px);padding:clamp(175px,24svh,240px) 22px 255px;justify-content:flex-start;color:#203e2b;background:#e4bb78}
#welcome:before{inset:0;background:url('welcome-approved.webp') center/100% 100% no-repeat;animation:none}
#welcome:after{background:none}
.welcome-date{margin:0 0 22px;font-family:var(--serif);font-size:14px;font-weight:500;letter-spacing:2px;color:#42301f}
#welcome h1{margin:0 0 35px;width:100%}
#welcome h1 span{font:800 clamp(34px,8.6vw,58px)/1.1 var(--serif);letter-spacing:-1.8px;color:#163a27;text-shadow:0 1px 18px #ffda9e80}
#welcome h1 strong{font:500 20px/1.3 var(--serif);margin-top:13px;border-color:#6b492e80;color:#503520}
#envelope{width:min(365px,81vw);aspect-ratio:1.6;border:0;border-radius:0;background:none;box-shadow:none;transform-style:preserve-3d;flex-shrink:0}
#envelope:after{display:none}
.envelope-photo{position:absolute;inset:0;z-index:6;background:url('envelope-realistic.png') center/100% 100% no-repeat;filter:drop-shadow(0 12px 16px #33210f45);transition:opacity .2s .08s}
#envelope .flap{inset:4% 3% 5%;background:url('envelope-realistic.png') center/100% 100% no-repeat;clip-path:polygon(0 0,100% 0,50% 66%);transform-origin:50% 2%;backface-visibility:visible;transition:transform .85s cubic-bezier(.3,.1,.3,1),filter .85s}
#envelope .pocket{inset:4% 3% 5%;background:url('envelope-realistic.png') center/100% 100% no-repeat;clip-path:polygon(0 0,50% 62%,100% 0,100% 100%,0 100%)}
#envelope .letter{inset:9% 8% 8%;border:1px solid #c7aa7c;background:var(--paper) url('parchment.webp') center/cover;transition:transform 1s .3s}
#envelope.opening .envelope-photo{opacity:0}.opening .flap{transform:rotateX(-174deg)}.opening .letter{transform:translateY(-55%)}
.addressee{margin-top:14px;max-width:390px;color:#48331e;text-shadow:0 1px 9px #ffeab780}.addressee span{font-size:10px;letter-spacing:2px}.addressee p{font-size:15px;line-height:1.4;margin-top:5px}
.hint{margin:18px 0 0;font:500 16px var(--serif);color:#412d1a;text-shadow:0 1px 8px #ffedbf}.hint:before{display:none}
.welcome-sign{position:absolute;bottom:8.3%;left:28%;width:44%;font:500 16px/1.5 var(--serif);color:#f2d5a1;text-transform:uppercase;letter-spacing:1px;text-shadow:0 2px 2px #291b0b}
.welcome-sign span{display:block;font-size:17px;margin-top:2px}
.card{max-width:600px;background:#dfd0aa url('foliage-paper.webp') center bottom/100% auto no-repeat}
.barn-scene{aspect-ratio:3/3.75}.barn-scene .jose-art{height:100%}.barn-scene img{object-position:center 40%}
.identity{z-index:2;margin:-22px 18px 0;padding:33px 12px 20px;text-align:center;border:0;background:var(--paper) url('parchment.webp') center/100% 100%;clip-path:polygon(0 6%,5% 5%,6% 0,24% 2%,35% 0,58% 2%,80% 0,95% 3%,96% 8%,100% 9%,99% 98%,0 100%)}
.identity>span{font-size:11px;letter-spacing:3px}.identity h2{font-size:clamp(26px,7vw,40px);letter-spacing:-1px;margin-top:10px}.identity-rule{width:90px;height:1px;margin:20px auto 0;background:#997548}
.paper{padding:4px 28px 180px;background:linear-gradient(#f2e6cb00,#f2e6cb00),url('foliage-paper.webp') center bottom/100% auto no-repeat}
.guest-card{margin:14px 0 24px;padding:20px 18px;background:#f1dfbb url('parchment.webp') center/100% 100%;border:1px solid #bd9d6940;border-radius:3px;box-shadow:0 3px 7px #55341724;clip-path:polygon(1% 1%,99% 0,100% 95%,98% 100%,0 97%)}
.guest-card span{font-size:10px}.guest-card p{margin-top:9px;font-size:18px}
.countdown{margin:0 0 20px;padding:22px 14px 18px;background:#583a21 url('wood.webp') center/100% auto;color:#f4e4c2;border:0;box-shadow:0 3px 8px #39241033}
.countdown>span{color:#ecd1a0;font-size:11px}.countdown>strong{font-size:25px;margin:8px 0 18px}.countdown-digits{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.countdown-digits>div{padding:12px 3px 10px;border:1px solid #a78552;border-radius:4px;background:#e9cf9f url('parchment.webp') center/cover;color:#3c4a30;box-shadow:0 3px 7px #1b100c70}
.countdown-digits b{font:700 clamp(23px,6vw,31px)/1 var(--serif)}.countdown-digits small{display:block;margin-top:8px;font-size:9px;letter-spacing:.5px;font-weight:700;color:#64482b}
.event-grid{margin:0 0 18px;padding:18px 0;background:#f4e4c7 url('parchment.webp') center/cover;border:1px solid #b6945e50;border-radius:4px;box-shadow:0 2px 4px #593c1715}.event-grid strong{font-size:36px}.event-grid small,.event-grid span{font-size:10px}
.location{position:relative;margin:0 0 22px;padding:25px 14px 0;background:url('parchment.webp') center top/100% calc(100% - 110px) no-repeat}.location>span{text-align:left;padding-left:35px}.location>span:before{content:'';position:absolute;left:16px;top:26px;width:17px;height:23px;border:5px solid var(--brown);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}
.location h3{font-size:20px;text-align:left;padding-left:35px;margin:10px 0 8px;max-width:85%;position:relative;z-index:1}.location p{font-size:14px;text-align:left;padding-left:35px;line-height:1.6;margin-bottom:20px;position:relative;z-index:1}.barn-sketch{position:absolute;right:12px;top:38px;width:65px;height:65px;opacity:.2;color:#745334}
.location .map,.location .calendar{display:flex;width:100%;border-radius:4px;font:600 12px var(--serif);letter-spacing:0;min-height:44px}.location .map{margin-top:20px}.location .calendar{margin:10px 0 0;background:#faf0dbcc}
.dresscode{margin:0 -28px;padding:25px 26px;background:#67452a url('wood.webp') center/100% auto;color:#f4dfba;border-top:2px solid #84613d;border-bottom:2px solid #392512;box-shadow:0 2px 7px #281b1433;font:400 14px/1.6 var(--serif)}.dresscode b{font:600 11px var(--sans);letter-spacing:2px}
.sizes{padding:28px 0 23px;border:0;background:url('parchment.webp') center/cover;box-shadow:0 2px 5px #5b3c1710}.sizes h3{font-size:23px}.sizes span{font-size:14px}.sizes strong{font:600 15px/1.5 var(--serif)}.sizes p+p{border-left:1px solid #b89c70}
.rsvp{padding-top:20px}.rsvp>span,.rsvp>strong{display:none}.rsvp .whatsapp{position:relative;display:flex;flex-direction:column;width:100%;max-width:none;min-height:91px;padding:19px 35px 19px 18px;border-radius:5px;background:linear-gradient(120deg,#405335,#29462e);box-shadow:0 3px 6px #25342225;text-decoration:none;color:#f6e9c9}.whatsapp span{font-size:10px;letter-spacing:2px}.rsvp .whatsapp strong{font:600 clamp(20px,5.2vw,28px)/1.2 var(--serif);color:inherit;display:block;margin:8px 0 0}.whatsapp i{position:absolute;right:16px;top:25%;font:400 40px var(--serif)}.rsvp p{font:400 14px/1.5 var(--serif);margin:14px 9px 0;color:#4d432d}.closing{font:400 16px/1.65 var(--serif);margin-top:35px;color:#3f402b}.closing span{font-size:14px}.replay{font-size:12px}
@media(min-width:700px){#welcome{min-height:1100px;padding-top:265px}#welcome h1 span{font-size:58px}.welcome-sign{font-size:20px}.welcome-sign span{font-size:22px}.paper{padding-left:40px;padding-right:40px}.dresscode{margin-left:-40px;margin-right:-40px}.location h3{font-size:24px}.location p{font-size:17px}.location .map,.location .calendar{display:inline-flex;width:48%;font-size:11px}.location .calendar{margin-left:2%}.location{background-size:100% calc(100% - 65px)}.identity>span{font-size:13px}.guest-card p{font-size:23px}.sizes strong{font-size:18px}}
@media(max-width:380px){#welcome{min-height:800px;padding-top:190px;padding-bottom:230px}#welcome h1 span{font-size:34px}.welcome-sign{font-size:13px}.welcome-sign span{font-size:14px}.paper{padding-left:20px;padding-right:20px}.dresscode{margin-left:-20px;margin-right:-20px}.location h3{font-size:18px}.location p{font-size:13px}.identity h2{font-size:26px}.countdown-digits small{font-size:8px}}
.welcome-sign{bottom:12%}
#farm-wind{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:0}
.ambient-birds{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}.bird{position:absolute;left:-10%;top:43%;width:15px;height:8px;color:#493d2a;opacity:0;animation:bird-flight 25s linear infinite}.bird svg{display:block;width:100%;height:100%;transform-origin:50% 70%;animation:bird-wings .72s ease-in-out infinite}.bird-2{top:46%;width:11px;animation-delay:1.5s;animation-duration:28s}.bird-2 svg{animation-delay:-.3s}.bird-3{top:40%;width:9px;animation-delay:3.6s;animation-duration:27s}.bird-3 svg{animation-delay:-.5s}
#welcome>.welcome-date,#welcome>h1,#welcome>#envelope,#welcome>.addressee,#welcome>.hint,#welcome>.welcome-sign{z-index:1;position:relative}.welcome-sign{position:absolute!important}
@keyframes bird-flight{0%{left:-10%;transform:translateY(18px);opacity:0}5%{opacity:.55}45%{transform:translateY(-12px)}90%{opacity:.45}100%{left:110%;transform:translateY(-45px);opacity:0}}
@keyframes bird-wings{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.15)}}
@media(prefers-reduced-motion:reduce){#farm-wind,.ambient-birds{display:none}}
/* Cenário simples e abertura leve, com uma única carta fotográfica. */
#welcome{min-height:100svh;padding:clamp(80px,17svh,170px) 24px 70px;justify-content:center;background:#c7b18b}
#welcome:before{background-image:url('countryside-cinematic.webp');background-size:cover;background-position:center 58%}
#welcome:after{z-index:-1;background:linear-gradient(180deg,transparent 42%,#16241466 100%)}
#welcome h1{margin-bottom:32px}.welcome-date{margin-bottom:18px}#welcome h1 span{color:#3b2d1e;font-size:clamp(34px,8.2vw,56px)}
#envelope{width:min(330px,80vw)}.envelope-photo{background-image:url('envelope-realistic.webp');filter:drop-shadow(0 8px 10px #33210f30);transition:opacity .35s .22s,transform .45s}
#envelope .letter{opacity:0;inset:10% 8%;border:1px solid #a78e62;transition:transform .55s ease,opacity .18s;background:var(--light) url('parchment.webp') center/cover;pointer-events:none}
#envelope.opening .letter{z-index:7;opacity:1;transform:translateY(-40%) scale(1.025)}
#envelope.opening .envelope-photo{opacity:0;transform:translateY(12px) scale(.97)}
.addressee{margin-top:23px;color:#fff0ce;text-shadow:0 1px 6px #152111}.addressee span{font-size:11px}.addressee p{font-size:17px}.hint{color:#fff1d8;text-shadow:0 1px 6px #152111;font:400 15px var(--sans);margin-top:19px}
#welcome.travelling{animation:envelope-flight .95s ease-in forwards}
#journey.enter{animation:journey 1.1s both}#journey.enter img{animation:barn-flight 1.1s ease-out both}
@keyframes envelope-flight{from{transform:scale(1);opacity:1}70%{opacity:1}to{transform:scale(2.8);opacity:0}}
@keyframes barn-flight{from{transform:scale(1.12)}to{transform:scale(1)}}
@media(min-width:700px){#welcome{min-height:100svh;padding-top:100px;padding-bottom:70px}#welcome h1 span{font-size:56px}}
@media(max-width:380px){#welcome{min-height:100svh;padding:75px 20px 50px}#welcome h1 span{font-size:34px}}

:root{--sans:Arial,sans-serif}
.photo-album{margin:5px 0 30px;padding:26px 14px 18px;background:var(--paper) url('parchment.webp') center/cover;border:1px solid #b89b6c55;border-radius:4px;box-shadow:0 3px 9px #4b321b18}
.photo-album h3{font:600 22px/1.3 var(--serif);margin:0 0 20px;color:var(--ink)}.photo-frame{position:relative;max-width:360px;margin:auto;padding:8px 8px 18px;background:#faf4e8;box-shadow:0 5px 14px #38281730;border:1px solid #c7b591;border-radius:2px;transform:rotate(-.7deg)}
.photo-window{overflow:hidden;aspect-ratio:9/14;max-height:440px;background:#e9dfcf;touch-action:pan-y}.photo-track{display:flex;height:100%;width:100%;transition:transform .55s ease;will-change:transform}.photo-slide{flex:0 0 100%;min-width:0;height:100%;margin:0;background:#e9dfcf}.photo-slide img{display:block;width:100%;height:100%;object-fit:contain;color:#725d40;font:14px var(--sans)}
.photo-arrow{position:absolute;top:45%;display:grid;place-items:center;width:35px;height:40px;padding:0;border:1px solid #f5ebce88;border-radius:3px;background:#2b3c2cd9;color:#fff3d4;font:32px/1 Georgia,serif;box-shadow:0 2px 4px #1c201b35}.photo-prev{left:-6px}.photo-next{right:-6px}.photo-controls{display:flex;align-items:center;justify-content:center;gap:15px;margin:18px 0 0}.photo-dots{display:flex;gap:8px}.photo-dot{position:relative;padding:0;border:0;border-radius:50%;width:8px;height:8px;background:#baa783}.photo-dot:before{content:'';position:absolute;inset:-9px}.photo-dot.active{background:var(--ink)}.photo-pause{padding:5px 0;border:0;border-bottom:1px solid #aa936e;background:transparent;color:#614f38;font-size:11px}.photo-album:focus-visible{outline:2px solid var(--gold)}
@media(max-width:380px){.photo-album{padding:22px 12px 15px}.photo-window{max-height:380px}.photo-dots{gap:7px}}
/* Papel contínuo: as informações fazem parte do mesmo convite. */
.card{background:var(--paper) url('parchment.webp') center/100% 100% no-repeat}
.paper{background:none;padding-bottom:38px}
.identity{margin:0;padding:27px 15px 18px;background:none;clip-path:none}
.identity-rule{margin-top:15px;background:#b19770}
.guest-card{padding:15px 8px 20px;margin:0 0 23px;background:none;border:0;border-bottom:1px solid #a88e6050;border-radius:0;box-shadow:none;clip-path:none}
.event-grid{background:#fffbef35;border-color:#a88e6055;box-shadow:none}
.location{background:none;padding-top:15px}.location>span:before{top:16px}.barn-sketch{top:27px}
.location .calendar{background:transparent}
.sizes{background:none;box-shadow:none;padding-top:25px;border-bottom:1px solid #a88e6050}
.countdown{border-radius:2px;box-shadow:0 2px 4px #39241020}.countdown-digits>div{box-shadow:0 2px 3px #1b100c40}
/* Carrossel compacto, integrado ao papel, com troca a cada 1,8 s. */
.photo-album{padding:16px 0 14px;margin:0 0 22px;background:none;border:0;border-top:1px solid #a88e6040;border-radius:0;box-shadow:none}
.photo-frame{width:150px;max-width:150px;padding:5px 5px 10px;transform:none;border-color:#c9b795;box-shadow:0 3px 7px #38281725}
.photo-window{width:138px;height:190px;max-height:190px;aspect-ratio:auto;background:#efe4d1}
.photo-track{transition:transform .3s ease}.photo-slide{background:#efe4d1}.photo-slide img{object-fit:contain}
.photo-arrow{width:28px;height:32px;font-size:25px;top:43%;background:#304536cf}.photo-prev{left:-11px}.photo-next{right:-11px}
.photo-controls{margin-top:12px;gap:13px}.photo-dot{width:6px;height:6px}.photo-dots{gap:8px}.photo-pause{font-size:10px;padding:4px 0}
@media(max-width:380px){.photo-album{padding:15px 0 13px}.photo-window{height:190px;max-height:190px}}
/* Movimento mais presente, sem aumentar os downloads. */
.bird{width:19px;height:10px;animation-duration:12s;top:35%}.bird-2{width:16px;top:31%;animation-duration:14s;animation-delay:2s}.bird-3{width:13px;top:38%;animation-duration:13s;animation-delay:4s}
.bird svg{animation-duration:.55s}.bird-2 svg{animation-duration:.7s}.bird-3 svg{animation-duration:.6s}
@keyframes bird-flight{0%{left:-10%;transform:translateY(16px);opacity:0}6%{opacity:.72}45%{transform:translateY(-16px)}90%{opacity:.62}100%{left:110%;transform:translateY(-38px);opacity:0}}
#envelope:not(.opening){animation:letter-float 4.5s ease-in-out infinite}
@keyframes letter-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(prefers-reduced-motion:reduce){#envelope:not(.opening){animation:none}}
/* Faixa horizontal: fotos maiores ocupam a largura, com a mesma altura. */
.photo-album{--visible-photos:2;padding-top:16px}
.photo-frame{width:100%;max-width:none;padding:0;border:0;background:none;box-shadow:none}
.photo-window{width:100%;height:190px;max-height:190px;border-radius:3px;background:none}
.photo-track{gap:0}.photo-slide{flex:0 0 calc(100% / var(--visible-photos));padding:0 3px;background:transparent}
.photo-slide img{width:100%;height:190px;object-fit:cover;object-position:center 42%;border:3px solid #faf3e3;border-radius:2px;box-shadow:0 1px 3px #38281720}
.photo-prev{left:1px}.photo-next{right:1px}.photo-arrow{z-index:2}
.rsvp .whatsapp{min-height:96px;padding-left:22px;padding-right:38px}.rsvp .whatsapp strong{font-size:clamp(18px,4.9vw,24px);max-width:410px;line-height:1.3}.rsvp .whatsapp span{font-size:10px}
@media(min-width:480px){.photo-album{--visible-photos:3}}
/* Música de fundo sem bloco, vídeo ou controles no convite. */
