/* ===== v5: envelope com os ativos originais (Genially) ===== */
.env{container-type:inline-size;background:#8a8b68 url(img/v5/verde.webp) top/100% auto repeat-y}
.env-back{background:url(img/v5/fundo.webp) bottom/100% auto no-repeat}
.env-back:before{content:none}
.sheet{left:4.9%;right:4.9%;top:calc(env(safe-area-inset-top) + 2.2%);height:auto;bottom:0;border-radius:2px;
 background:#fdfcf9 url(img/v5/papel.webp) top/100% auto repeat-y;box-shadow:0 2px 10px rgba(30,30,10,.28),0 0 1px rgba(0,0,0,.2)}
.sheet.down{transform:translateY(102%)}
.sheet-in{padding:20px 18px calc(68cqw + 30px)}
.sheet[data-page="rsvp"]{background:#fff url(img/v5/papel.webp) top/100% auto repeat-y}
.sheet[data-page="fotos"],.sheet[data-page="enviar"]{background:#c9d5b2}
/* frente: aba em V + fita + selo (imagem original) */
.front{position:absolute;z-index:2;left:0;bottom:0;width:100%;height:auto;pointer-events:none;transition:opacity .3s ease-in-out;filter:drop-shadow(0 -2px 5px rgba(30,30,10,.22))}
.env[data-front="menu"] .front-sub{opacity:0}.env[data-front="sub"] .front-menu{opacity:0}
.env-front,.ribbon{display:none}
/* selo = botão voltar (sobre o selo da imagem) */
.seal{z-index:4;left:50%;top:auto;width:20cqw;transform:translate(-50%,50%);bottom:24.9cqw;background:none;border-radius:50%}
.env[data-front="menu"] .seal{bottom:36.2cqw;width:19cqw}
.seal.is-back:after{inset:-4px;border-color:rgba(255,248,225,.95);box-shadow:0 0 12px rgba(255,240,200,.6)}
.seal.is-back:before{content:"";position:absolute;inset:0;border-radius:50%;animation:glow 2.4s ease-in-out infinite}
@keyframes glow{0%,100%{box-shadow:0 0 0 rgba(255,236,180,0)}50%{box-shadow:0 0 18px 4px rgba(255,236,180,.55)}}
/* rodapé */
.env-foot{height:auto;bottom:calc(env(safe-area-inset-bottom) + 1.2cqw);justify-content:flex-end;z-index:5}
.env-foot .countdown{font:400 clamp(18px,5.4cqw,24px) "Josefin Sans",sans-serif;color:#fff8df;text-shadow:0 1px 3px rgba(40,40,20,.45);gap:6px}
.env-foot .countdown span{min-width:13cqw}
.env-foot .countdown i{font-size:clamp(11px,3.1cqw,13px);letter-spacing:.06em;color:#fbf5e3;margin-top:1px}
.env-foot .icon-btn{bottom:0;width:44px;height:44px}
.env-foot .camera{right:4cqw;background:rgba(255,255,255,.16);color:#fff8df}
.env-foot .mute,body.inside .env-foot .mute{left:4cqw;bottom:0;width:44px;height:44px;background:rgba(239,232,216,.85)}
/* capa */
.cover{background:none}
.cover .topflap,.cover-names,.cover-date{display:none}
.cover-img{position:absolute;left:0;bottom:0;width:100%;height:auto;-webkit-mask:linear-gradient(transparent,#000 4%);mask:linear-gradient(transparent,#000 4%)}
.cover .enter{font-family:"Pinyon Script",cursive;bottom:calc(env(safe-area-inset-bottom) + 21cqw);font-size:clamp(34px,10cqw,46px);color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.35)}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* tipografia */
.script,.scroll h2,.pg h2,.badge,.person-card span,.vendor strong,.menu .bubble,.timeline span{font-family:"Pinyon Script","Great Vibes",cursive}
.pg h2{font-weight:400;font-size:clamp(30px,8.6cqw,38px);line-height:1.15;color:#3a3a2a}
.pg p{font-size:18px;line-height:1.45}
/* menu (como o original: botões à esquerda, aguarela à direita) */
.sheet.is-menu .sheet-in{padding:0;overflow:hidden}
.menu .couple{position:absolute;right:0;top:0;left:auto;width:50%;height:auto;max-height:none;margin:0;object-fit:initial;-webkit-mask:none;mask:none}
.menu .bubbles{position:absolute;left:2%;top:2.5%;width:66%;display:grid;grid-template-columns:1fr 1fr;gap:0 4%;margin:0}
.menu .bubble,.menu .bubble:nth-child(odd),.menu .bubble:nth-child(even){width:100%;max-width:none;aspect-ratio:1;border-radius:50%;padding:10%;
 background:url(img/v5/bolha.webp) center/100% 100% no-repeat;box-shadow:none;color:#36352a;font-size:clamp(17px,5.4cqw,24px);line-height:1.02;position:relative;margin:0}
.menu .bubble:nth-child(even){margin-top:46%}
.menu .bubble:nth-child(odd):not(:first-child){margin-top:-8%}
.menu .bubble:nth-child(even):not(:nth-child(2)){margin-top:38%}
.menu .bubble[data-go="rsvp"]{background:url(img/v5/bolha.webp) center/100% 100% no-repeat;color:#36352a;font-size:clamp(16px,5cqw,22px);border-radius:50%}
.menu .bubble[data-go="rsvp"] small{font:600 clamp(10px,3cqw,13px) "Cormorant Garamond",serif;font-style:italic;letter-spacing:0;text-transform:none;display:block;margin-bottom:2px}
.menu .bubble:nth-child(1):after,.menu .bubble:nth-child(2):after,.menu .bubble:nth-child(6):after{content:"";position:absolute;width:42%;height:42%;bottom:2%;left:50%;transform:translateX(-50%) rotate(-30deg);background:url(img/v5/ramo.webp) center/contain no-repeat;opacity:.9;pointer-events:none}
.menu .bubble:hover,.menu .bubble:focus-visible{filter:brightness(1.04) drop-shadow(0 2px 6px rgba(60,70,40,.3));outline:0}
/* cavalheiros/damas: grelha 2x2 quadrada com bordas em aguarela */
.pg .badge{width:clamp(96px,30cqw,130px);height:clamp(96px,30cqw,130px);background:url(img/v5/bolha.webp) center/100% 100%;font-size:clamp(24px,7.4cqw,32px);margin:0 auto 6px;color:#36352a}
.people{grid-template-columns:1fr 1fr;gap:6px 14px;max-width:340px;margin:0 auto}
.person-card img{aspect-ratio:1;border-radius:0;box-shadow:none;width:100%;object-fit:cover}
.person-card span{font-size:clamp(24px,7.2cqw,30px);margin-top:-4px;line-height:1.1;letter-spacing:.01em}
.pg-cavalheiros .sheet-in,.pg-damas{padding-top:0}
/* páginas de detalhe */
.detail{background:#fdfcf9 url(img/v5/papel.webp) top/100% auto repeat-y}
.detail .pg h2{font-size:clamp(34px,10cqw,44px)}
.portrait{-webkit-mask:radial-gradient(ellipse at 55% 50%,#000 52%,transparent 72%);mask:radial-gradient(ellipse at 55% 50%,#000 52%,transparent 72%)}
/* capa: o selo é o botão Entrar */
.cover .enter.seal-enter{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom) + 50.1cqw);width:24cqw;aspect-ratio:1;transform:translate(-50%,50%);padding:0;border-radius:50%;background:none;font-size:0;cursor:pointer}
.cover .enter.seal-enter:hover,.cover .enter.seal-enter:focus-visible{transform:translate(-50%,50%) scale(1.04);outline:3px solid rgba(255,255,255,.85);outline-offset:4px}
.cover .enter.seal-enter:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(255,248,225,.95);animation:hint 2.4s ease-out infinite}
.cover .enter.seal-enter:before{content:"";position:absolute;inset:0;border-radius:50%;animation:glow 2.4s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.cover .enter.seal-enter:after,.cover .enter.seal-enter:before,.seal.is-back:before{animation:none!important}}
.menu .bubbles{width:60%;left:1.5%;top:2%;gap:0 3%}
.menu .bubble,.menu .bubble:nth-child(odd),.menu .bubble:nth-child(even),.menu .bubble[data-go="rsvp"]{font-size:clamp(16px,5.1cqw,22px);padding:9%}
.menu .bubble:nth-child(even){margin-top:50%}
.menu .bubble:nth-child(odd):not(:first-child){margin-top:-12%}
.menu .bubble:nth-child(even):not(:nth-child(2)){margin-top:36%}
.menu .couple{width:56%;top:4%}
.pg.rsvp h2{font:300 clamp(24px,7cqw,30px) "Josefin Sans",sans-serif;letter-spacing:.04em;text-transform:uppercase}
#ytHost{position:fixed!important;left:0!important;bottom:0;top:auto!important;width:2px!important;height:2px!important;opacity:.01;pointer-events:none;z-index:-1}
.env-foot .mute[data-state="off"]{background:#fff8df;box-shadow:0 0 0 0 rgba(255,248,223,.8);animation:mpulse 1.8s ease-out infinite}
.env-foot .mute[data-state="off"] #waves{display:none}
.env-foot .mute[data-state="off"]:after{content:"Tocar";position:absolute;left:100%;margin-left:6px;font:400 13px "Josefin Sans",sans-serif;color:#fff8df;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.4)}
@keyframes mpulse{0%{box-shadow:0 0 0 0 rgba(255,248,223,.75)}80%,100%{box-shadow:0 0 0 12px rgba(255,248,223,0)}}
@media(prefers-reduced-motion:reduce){.env-foot .mute{animation:none!important}}
/* menu: bolhas dispersas como no original */
.menu .bubbles{position:absolute;inset:0;width:auto;display:block;gap:0}
.menu .bubbles .bubble{position:absolute;margin:0!important;padding:calc(var(--u)*3);width:var(--s);left:var(--l);top:var(--t);font-size:calc(var(--s)*.2)!important;line-height:1.05;filter:drop-shadow(0 2px 4px rgba(60,70,40,.18))}
.menu .bubble:nth-child(1){--l:calc(var(--u)*40.5);--t:calc(var(--u)*7.4);--s:calc(var(--u)*24.1)}
.menu .bubble:nth-child(2){--l:calc(var(--u)*6.8);--t:calc(var(--u)*6.1);--s:calc(var(--u)*33.3)}
.menu .bubble:nth-child(3){--l:calc(var(--u)*24.3);--t:calc(var(--u)*35.8);--s:calc(var(--u)*33.3)}
.menu .bubble:nth-child(4){--l:calc(var(--u)*3.1);--t:calc(var(--u)*56.0);--s:calc(var(--u)*33.3)}
.menu .bubble:nth-child(5){--l:calc(var(--u)*27.9);--t:calc(var(--u)*77.6);--s:calc(var(--u)*26.4)}
.menu .bubble:nth-child(6){--l:calc(var(--u)*3.1);--t:calc(var(--u)*91.1);--s:calc(var(--u)*33.3)}
.menu .bubble:nth-child(7){--l:calc(var(--u)*29.7);--t:calc(var(--u)*115.4);--s:calc(var(--u)*31.0)}
.menu .bubble:nth-child(1){font-size:calc(var(--s)*.22)!important}
.menu .bubble[data-go="rsvp"]{font-size:calc(var(--s)*.18)!important}
.menu .couple{width:calc(var(--u)*56);top:calc(var(--u)*8);right:0}
.menu .bubbles .bubble:after{bottom:-6%!important;width:36%!important;height:36%!important}

/* ---- menu: escala para caber acima da aba; faz scroll se o ecrã for muito baixo ---- */
.env{--envh:100dvh}@media(min-width:700px){.env{--envh:min(94vh,900px)}}
.sheet.is-menu .sheet-in{overflow-y:auto;overflow-x:hidden;padding:0}
.menu{--u:clamp(.66cqw,calc((var(--envh)*.978 - 64cqw - 14px - env(safe-area-inset-top))/146),1cqw);height:calc(var(--u)*146 + 64cqw);min-height:100%}
/* ---- páginas: espaço para a aba + selo ---- */
.sheet-in{padding-bottom:calc(66cqw + 36px + env(safe-area-inset-bottom))}
.detail-in{padding-bottom:calc(env(safe-area-inset-bottom) + 132px)}
.detail .pg .pager{position:static;margin:26px 0 0;padding:0;background:none}
.pg .map{margin-bottom:8px}
/* O Pedido: texto maior */
.sheet[data-page="pedido"] p{font-size:19.5px;line-height:1.62;margin-bottom:14px}
/* Sequência: lista consistente sobre a aguarela (texto sempre por cima) */
.seq-wrap{position:relative;min-height:calc(100cqw*1.1);isolation:isolate}
.seq-img{position:absolute;z-index:0;right:-18px;bottom:0;width:62%;margin:0;border-radius:0;pointer-events:none;-webkit-mask:linear-gradient(90deg,transparent,#000 30%),linear-gradient(#000 82%,transparent);-webkit-mask-composite:source-in;mask:linear-gradient(90deg,transparent,#000 30%) intersect,linear-gradient(#000 82%,transparent)}
.timeline{position:relative;z-index:1;margin:6px 0 0}
.timeline:before{left:38%}
.timeline li{grid-template-columns:38% 1fr;gap:0;padding:12px 0}
.timeline li:after{left:calc(38% - 4px)}
.timeline svg{justify-self:end;margin-right:22px}
.timeline span{font-size:25px;text-align:left;margin-left:22px;text-shadow:0 0 6px #fffdf6,0 0 3px #fffdf6}
.timeline b{font:600 21px "Josefin Sans",sans-serif;letter-spacing:.08em;color:#2f4a22;margin-bottom:2px}
@media(prefers-reduced-motion:reduce){.sheet{transition:opacity .25s ease-in-out!important}.sheet.down{transform:none;opacity:0}.detail{transition:opacity .25s!important}}
/* ---- Partilha de fotos: cartão creme, tipografia do site ---- */
.sheet[data-page="fotos"],.sheet[data-page="enviar"]{background:#fdfcf9 url(img/v5/papel.webp) top/100% auto repeat-y}
.pg.fotos,.paper.fotos{background:transparent;text-align:center}
.fotos h2.caps{font:400 clamp(34px,10cqw,44px)/1.1 "Pinyon Script","Great Vibes",cursive;letter-spacing:0;text-transform:none;color:#3a3a2a;margin:4px 0 8px}
.fotos .intro{font:400 19px/1.45 "Cormorant Garamond",serif;color:#3b3a2c;margin:0 auto 12px;max-width:30ch}
.fotos .fenv{display:none}
.fotos .qr{width:min(200px,52cqw);height:auto;border-radius:6px;box-shadow:0 2px 8px rgba(40,40,20,.2);margin:10px auto 16px}
.fotos .cta,.up .cta{display:block;width:100%;max-width:320px;margin:10px auto;padding:15px 18px;border:0;border-radius:30px;background:#6f7a52;color:#fffbe8;font:400 17px "Josefin Sans",sans-serif;letter-spacing:.04em;box-shadow:0 3px 8px rgba(40,50,20,.28);cursor:pointer}
.up .cta:disabled{opacity:.45;box-shadow:none}
.up{max-width:340px;margin:6px auto 0;text-align:left}
.up label{font:400 13px "Josefin Sans",sans-serif;letter-spacing:.12em;color:#4a5a33}
.up input[type=text]{border:1px solid #9aa58a;border-radius:10px;background:#fffefa}
.up .pick{display:flex;align-items:center;justify-content:center;gap:10px;min-height:120px;margin:16px 0 4px;padding:18px;border:0;border-radius:50% / 50%;background:url(img/v5/bolha.webp) center/100% 100% no-repeat;font:400 clamp(26px,8cqw,32px)/1.05 "Pinyon Script","Great Vibes",cursive;letter-spacing:0;color:#2f3a22;text-align:center;filter:drop-shadow(0 2px 5px rgba(60,70,40,.25))}
.up .pick:active{filter:brightness(.97)}
.up .sel{font:400 16px "Cormorant Garamond",serif;color:#3b3a2c}
.up .bar{height:12px;margin:14px 0 6px;background:#e4e6d6}
.up .note{text-align:center;font:400 18px/1.35 "Cormorant Garamond",serif;margin:8px 0 0;min-height:1.4em}
.qrlink{text-align:center;margin:22px 0 0}
.linkbtn{background:none;border:0;border-bottom:1px solid #8a8b68;padding:2px 0;color:#5b6042;font:400 15px "Cormorant Garamond",serif;font-style:italic;cursor:pointer}
.sheet[data-page="fotos"] h2.caps{font:300 clamp(22px,6.6cqw,28px)/1.25 "Josefin Sans",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#3a3a2a;margin:8px 0 12px}
.up .pick{width:84%;margin-left:auto;margin-right:auto;min-height:104px}
.up .pick{width:92%;font-size:clamp(24px,7cqw,28px)}
.seq-wrap{min-height:0;padding-bottom:calc(100cqw*.62)}
.seq-img{width:66%;right:-10px;-webkit-mask:linear-gradient(90deg,transparent,#000 40%),linear-gradient(#000 80%,transparent);mask:linear-gradient(90deg,transparent,#000 40%) intersect,linear-gradient(#000 80%,transparent)}
.timeline li{padding:17px 0}
.timeline span{font-size:27px;color:#2b3a20}
/* ---- galeria pública ---- */
.pg.galeria{text-align:center}
.galeria h2{font:400 clamp(34px,10cqw,44px)/1.1 "Pinyon Script","Great Vibes",cursive;color:#3a3a2a;margin:4px 0 8px}
.galeria .intro{font:400 18px/1.4 "Cormorant Garamond",serif;max-width:32ch;margin:0 auto 10px}
.gtools{display:flex;flex-direction:column;align-items:center;gap:6px;margin:8px 0}
.ggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:12px 0}
.gph{aspect-ratio:1;border:0;padding:0;background:#e7e5d6;border-radius:3px;overflow:hidden;cursor:pointer;display:block}
.gph img{width:100%;height:100%;object-fit:cover;display:block}
.gmore{margin:10px 0}
.gdlg{border:0;padding:0;background:#161610;color:#fff;max-width:min(96vw,900px);width:96vw;max-height:94dvh;border-radius:10px;overflow:hidden}
.gdlg::backdrop{background:rgba(10,10,6,.78)}
.gdlg img{display:block;width:100%;max-height:74dvh;object-fit:contain;background:#000;transition:opacity .2s}
.gdlg img.loading{opacity:.55}
.grow{display:flex;gap:10px;align-items:center;justify-content:center;padding:12px}
.grow button{width:48px;height:48px;border-radius:50%;border:0;background:#fff3;color:#fff;font-size:28px;cursor:pointer}
.grow button:disabled{opacity:.3}
.grow .cta{margin:0;text-decoration:none;display:inline-block;width:auto;padding:13px 26px;background:#6f7a52;color:#fffbe8;border-radius:28px;font:400 16px "Josefin Sans",sans-serif}
.gclose{display:block;margin:0 auto 14px;background:none;border:0;color:#ddd;font:400 15px "Josefin Sans",sans-serif;cursor:pointer;text-decoration:underline}
.gdlg{margin:auto;inset:0;position:fixed}.qrlink .linkbtn{margin:4px 0}
/* ---- barra inferior: pino "Como chegar" ao lado da câmara ---- */
.env-foot .pin{right:calc(4cqw + 54px);background:rgba(255,255,255,.16);color:#fff8df}
.env-foot .countdown span{min-width:11.5cqw}
/* ---- página Como chegar ---- */
.pg.chegar{text-align:center}
.chegar h2{font:400 clamp(34px,10cqw,44px)/1.1 "Pinyon Script","Great Vibes",cursive;color:#3a3a2a;margin:4px 0 14px}
.venue{margin:8px auto 18px}
.vname{font:400 clamp(30px,9cqw,38px)/1.1 "Pinyon Script","Great Vibes",cursive;color:#2b3a20;margin:0 0 8px}
.vaddr{font:400 20px/1.4 "Cormorant Garamond",serif;color:#3b3a2c;margin:0 0 14px}
.vwhen{font:400 19px/1.5 "Cormorant Garamond",serif;color:#3b3a2c;margin:0}
.vwhen b{font:400 15px "Josefin Sans",sans-serif;letter-spacing:.2em;color:#4a5a33}
.vbtns{display:flex;flex-direction:column;gap:12px;align-items:center;margin:20px 0 6px}
.vbtns .cta{display:block;width:100%;max-width:300px;text-decoration:none;text-align:center;margin:0;padding:15px 18px;border-radius:30px;background:#6f7a52;color:#fffbe8;font:400 17px "Josefin Sans",sans-serif;letter-spacing:.04em;box-shadow:0 3px 8px rgba(40,50,20,.28)}
.seqlink{text-align:center;margin:10px 0 0;position:relative;z-index:2}
.vname{font-size:clamp(36px,11cqw,46px)}
