/* desempenho: as variáveis do parallax são lidas só pelo próprio elemento → não herdadas
   (evita recalcular o estilo de todos os descendentes a cada frame de scroll) */
@property --px{syntax:"<length>";inherits:false;initial-value:0px}
@property --py{syntax:"<length>";inherits:false;initial-value:0px}
/* ═══════════════════════════════════════════════════════════════════
   MAJONG — secções abaixo do hero (base: mockup "Majong Lisbon").
   O hero (vídeo em scrub) vive no index.html e não é tocado aqui.
   Tokens vêm do :root do index (--neon, --crimson, --serif, --sans…).
   Animação: só transform / opacity / filter. Reveals por IntersectionObserver
   (sections.js), parallax por --py.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Banda de secção: foto real a toda a largura, texto à esquerda ── */
.sec{position:relative;isolation:isolate;overflow:hidden;
  min-height:min(88vh,820px);display:flex;align-items:center;
  padding:clamp(5rem,12vh,8rem) 0;
}
/* Desktop: a foto (recorte 5:4 feito à mão, sem ampliar) ocupa a direita
   e funde-se no escuro à esquerda, onde vive o texto. Telemóvel: 4:5 em
   ecrã inteiro. Parallax curto (±40px) — nunca escala a foto. */
.sec__bg{position:absolute;top:-40px;bottom:-40px;left:27%;right:0;z-index:-2;
  -webkit-mask:linear-gradient(90deg,transparent 0,#000 30%);mask:linear-gradient(90deg,transparent 0,#000 30%);
  transform:translate3d(0,var(--py,0px),0);will-change:transform}
.sec__bg img{width:100%;height:100%;object-fit:cover;display:block}
.sec--flip .sec__bg{left:0;right:27%;
  -webkit-mask:linear-gradient(270deg,transparent 0,#000 30%);mask:linear-gradient(270deg,transparent 0,#000 30%)}
@media (max-width:760px){
  .sec__bg,.sec--flip .sec__bg{left:0;right:0;-webkit-mask:none;mask:none}
}
.sec__shade{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(8,6,7,.9) 0%,rgba(8,6,7,.6) 30%,rgba(8,6,7,.18) 52%,rgba(8,6,7,0) 70%),
    linear-gradient(180deg,rgba(8,6,7,.75) 0%,rgba(8,6,7,0) 22%,rgba(8,6,7,0) 74%,rgba(8,6,7,.85) 100%)}
.sec__in{position:relative;width:100%;max-width:1320px;margin:0 auto;padding:0 var(--gut);
  display:grid;gap:clamp(2rem,5vw,4.5rem);align-items:center}
@media (min-width:980px){.sec__in--split{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}
.sec__copy{max-width:33rem}
.kick{font:400 .64rem/1 var(--sans);letter-spacing:.36em;text-transform:uppercase;color:var(--neon);
  text-shadow:0 0 12px rgba(255,48,72,.45)}
.sec__h{font:300 clamp(2.5rem,5.4vw,4.7rem)/.97 var(--serif);text-transform:uppercase;
  letter-spacing:.005em;margin:1.1rem 0 0;color:#fff;text-wrap:balance}
.sec__h span{display:block}
.sec__p{margin:1.3rem 0 0;font:300 clamp(.95rem,1.2vw,1.05rem)/1.75 var(--sans);
  color:var(--sc-ink-soft);max-width:40ch}
.sec__cta{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.8rem}

/* ── Reveal: sobe, desfoque → nítido. Escalonado por --rd ─────── */
[data-rv]{opacity:0;transform:translate3d(0,26px,0);filter:blur(8px);
  transition:opacity .9s cubic-bezier(.2,.7,.3,1),transform 1.1s cubic-bezier(.2,.7,.3,1),
    filter .9s cubic-bezier(.2,.7,.3,1);transition-delay:var(--rd,0ms)}
.in [data-rv],[data-rv].in{opacity:1;transform:none;filter:none}
[data-rv="left"]{transform:translate3d(-34px,0,0)}
[data-rv="right"]{transform:translate3d(34px,0,0)}
[data-rv="zoom"]{transform:scale(.94)}
/* títulos: linha a linha, cada linha sobe por trás de uma máscara */
.sec__h span{overflow:hidden;padding-bottom:.06em}
.sec__h span>i{display:block;font-style:normal;transform:translate3d(0,105%,0);
  transition:transform 1.1s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--rd,0ms) + var(--li,0) * 110ms)}
.in .sec__h span>i{transform:none}

/* ═══ COCKTAIL — parallax mais forte e um brilho que segue o rato ═══ */
.sec--cocktail .sec__shade{background:
  linear-gradient(270deg,rgba(8,6,7,.92) 0%,rgba(8,6,7,.62) 30%,rgba(8,6,7,.15) 52%,rgba(8,6,7,0) 70%),
  linear-gradient(180deg,rgba(8,6,7,.7) 0%,rgba(8,6,7,0) 25%,rgba(8,6,7,0) 70%,rgba(8,6,7,.85) 100%)}
.sec--flip .sec__copy{margin-left:auto}
.glint{position:absolute;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:screen;opacity:0;
  background:radial-gradient(circle 260px at var(--gx,70%) var(--gy,45%),rgba(255,120,90,.22),transparent 70%);
  transition:opacity .5s}
.sec--cocktail:hover .glint{opacity:1}

/* ═══ INSIDE — galeria em rail horizontal (arrastar / scroll) ═══════ */
.rail2{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:1.2rem .4rem 1.6rem;margin:-1.2rem -.4rem -1.6rem;cursor:grab;
  scrollbar-width:none;-webkit-mask:linear-gradient(90deg,transparent,#000 3%,#000 92%,transparent)}
.rail2::-webkit-scrollbar{display:none}
.rail2.drag{cursor:grabbing;scroll-snap-type:none}
.rail2 figure{margin:0;flex:0 0 clamp(210px,24vw,300px);scroll-snap-align:start;perspective:700px}
.rail2 button{all:unset;display:block;cursor:pointer;border-radius:14px;position:relative;
  transform:rotateY(calc(var(--tx,0) * 9deg)) rotateX(calc(var(--ty,0) * -7deg));
  transition:transform .5s cubic-bezier(.2,.7,.3,1),box-shadow .35s}
.rail2 button.tilt{transition-duration:.12s,.35s}
.rail2 img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;border-radius:14px;
  border:1px solid rgba(255,48,72,.28);filter:brightness(.82) saturate(.95);transition:filter .4s}
.rail2 button:hover img,.rail2 button:focus-visible img{filter:none}
.rail2 button:hover,.rail2 button:focus-visible{box-shadow:0 0 0 1px rgba(255,48,72,.8),0 0 26px rgba(255,48,72,.3),0 24px 50px rgba(0,0,0,.6)}
.rail2 button:focus-visible{outline:2px solid var(--neon);outline-offset:3px}
.rail2 figcaption{margin-top:.75rem;font:400 .6rem/1.5 var(--sans);letter-spacing:.24em;
  text-transform:uppercase;color:var(--sc-ink-soft)}
.sec--inside{background:radial-gradient(ellipse 70% 60% at 80% 50%,rgba(181,18,39,.14),transparent 70%),var(--sc-canvas)}

/* lightbox */
.lb{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100vw;height:100dvh;color:#fff}
.lb::backdrop{background:rgba(8,6,7,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.lb__stage{position:absolute;inset:clamp(4rem,9vh,6rem) clamp(1rem,7vw,7rem);display:grid;place-items:center}
.lb__stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;
  border:1px solid rgba(255,48,72,.35);box-shadow:0 0 40px rgba(181,18,39,.25)}
.lb__cap{position:absolute;left:0;right:0;bottom:1.6rem;text-align:center;font:400 .62rem/1 var(--sans);
  letter-spacing:.3em;text-transform:uppercase;color:var(--sc-ink-soft)}
.lb .orb{position:absolute}
.lb__x{top:1.2rem;right:1.2rem}
.lb__prev{left:1rem;top:50%;translate:0 -50%}
.lb__next{right:1rem;top:50%;translate:0 -50%}

/* ═══ MEMBERSHIP — cartão 3D: inclina, reflexo, vira ao clicar ══════ */
.sec--member .sec__bg img{filter:brightness(.62)}
.sec--find .sec__bg img{filter:brightness(.5) saturate(.9)}
.card3d{perspective:1100px;justify-self:center;width:min(440px,86vw);aspect-ratio:1.586}
.card3d__btn{all:unset;display:block;width:100%;height:100%;cursor:pointer;position:relative;
  transform-style:preserve-3d;
  transform:rotateX(calc(var(--ty,0) * -14deg + 8deg)) rotateY(calc(var(--tx,0) * 18deg - 10deg + var(--flip,0deg)));
  transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.card3d__btn.tilt{transition-duration:.15s}
.card3d__btn:focus-visible{outline:2px solid var(--neon);outline-offset:6px;border-radius:20px}
.card3d.idle .card3d__btn{animation:cardFloat 8s ease-in-out infinite}
@keyframes cardFloat{0%,100%{translate:0 0}50%{translate:0 -10px}}
.card3d__face{position:absolute;inset:0;border-radius:20px;backface-visibility:hidden;overflow:hidden;
  border:1.5px solid rgba(255,48,72,.85);
  background:
    radial-gradient(ellipse 90% 70% at 30% 0%,rgba(181,18,39,.35),transparent 60%),
    repeating-linear-gradient(135deg,rgba(255,255,255,.018) 0 2px,transparent 2px 6px),
    linear-gradient(150deg,#1a0a0d,#0b0708 60%,#140809);
  box-shadow:0 0 14px rgba(255,48,72,.45),0 0 44px rgba(181,18,39,.3),0 40px 80px rgba(0,0,0,.65),
    inset 0 0 26px rgba(255,48,72,.15),inset 0 1px 0 rgba(255,255,255,.12)}
.card3d__face::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.16) 46%,rgba(255,170,150,.08) 52%,transparent 64%)
    calc(var(--sx,50%)) 0/250% 100% no-repeat;mix-blend-mode:screen}
.card3d__front{display:grid;grid-template-rows:auto 1fr auto;padding:clamp(1.1rem,3.4vw,1.7rem)}
.card3d__back{transform:rotateY(180deg);display:grid;place-items:center;text-align:center;gap:.6rem;
  padding:1.6rem}
.card3d__top{display:flex;justify-content:space-between;align-items:flex-start}
.card3d__emb{width:clamp(38px,10%,50px);height:auto;filter:drop-shadow(0 0 8px rgba(255,48,72,.4))}
.card3d__tag{font:400 .55rem/1 var(--sans);letter-spacing:.34em;text-transform:uppercase;color:var(--neon);
  text-shadow:0 0 10px rgba(255,48,72,.6)}
.card3d__mark{align-self:center;justify-self:center;width:58%;height:auto;
  filter:drop-shadow(0 0 12px rgba(255,48,72,.3)) drop-shadow(0 2px 2px rgba(0,0,0,.6))}
.card3d__bot{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}
.card3d__name{font:300 clamp(1rem,2.6vw,1.3rem)/1.1 var(--serif);letter-spacing:.06em;text-transform:uppercase;
  color:#fff;min-height:1.1em;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card3d__lbl{display:block;font:400 .5rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;
  color:var(--sc-ink-soft);margin-bottom:.45rem}
.card3d__city{font:400 .55rem/1.6 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--sc-ink-soft);text-align:right}
.card3d__back img{width:34%;height:auto;opacity:.95}
.card3d__back p{margin:0;font:400 .58rem/1.7 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--sc-ink-soft)}
.card3d__hint{display:block;margin-top:1.1rem;text-align:center;font:400 .56rem/1 var(--sans);
  letter-spacing:.3em;text-transform:uppercase;color:rgba(201,184,181,.6)}

/* ═══ FORMULÁRIOS — vidro, néon no foco ════════════════════════════ */
.glassform{position:relative;border-radius:22px;padding:clamp(1.3rem,3vw,2rem);
  background:linear-gradient(160deg,rgba(30,10,14,.72),rgba(8,6,7,.82));
  -webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);
  border:1px solid rgba(255,48,72,.5);
  box-shadow:0 0 16px rgba(255,48,72,.18),0 0 50px rgba(181,18,39,.14),0 30px 70px rgba(0,0,0,.55),
    inset 0 1px 0 rgba(255,255,255,.08)}
.glassform h3{margin:0 0 1.1rem;font:400 .66rem/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.1rem;padding:0;border:0}
.chips legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.chips span{display:inline-block;padding:.62em 1.15em;border-radius:999px;font:400 .6rem/1 var(--sans);
  letter-spacing:.2em;text-transform:uppercase;color:var(--sc-ink-soft);
  border:1px solid rgba(255,48,72,.3);background:rgba(8,6,7,.5);transition:all .25s}
.chips input:checked+span{color:#fff;border-color:var(--neon);background:rgba(181,18,39,.35);
  box-shadow:0 0 12px rgba(255,48,72,.45),inset 0 0 8px rgba(255,48,72,.25)}
.chips input:focus-visible+span{outline:2px solid var(--neon);outline-offset:2px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.fgrid .full{grid-column:1/-1}
@media (max-width:560px){.fgrid{grid-template-columns:1fr}}
.fld{position:relative}
.fld input,.fld textarea{width:100%;box-sizing:border-box;padding:1.35rem .95rem .55rem;border-radius:12px;
  font:300 .92rem/1.3 var(--sans);color:#fff;background:rgba(8,6,7,.55);
  border:1px solid rgba(255,255,255,.12);outline:0;transition:border-color .25s,box-shadow .25s;
  color-scheme:dark}
.fld textarea{min-height:5.6rem;resize:vertical}
.fld label{position:absolute;left:.95rem;top:.55rem;font:400 .55rem/1 var(--sans);letter-spacing:.22em;
  text-transform:uppercase;color:var(--sc-ink-soft);pointer-events:none}
.fld input:focus,.fld textarea:focus{border-color:var(--neon);
  box-shadow:0 0 0 3px rgba(255,48,72,.14),0 0 16px rgba(255,48,72,.25)}
.fld input:user-invalid{border-color:#ff7a88}
.formfoot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.2rem}
.formnote{font:300 .74rem/1.5 var(--sans);color:var(--sc-ink-soft);max-width:30ch}
.formok{display:none;margin-top:1rem;padding:.9rem 1rem;border-radius:12px;font:300 .86rem/1.5 var(--sans);
  border:1px solid rgba(255,48,72,.45);background:rgba(181,18,39,.16)}
.sent .formok{display:block}
.btn--neon{border-color:var(--neon);box-shadow:0 0 10px rgba(255,48,72,.45),0 0 30px rgba(181,18,39,.3),
  inset 0 0 12px rgba(255,48,72,.22)}
.btn--neon:hover{box-shadow:0 0 16px rgba(255,48,72,.75),0 0 46px rgba(255,48,72,.4),inset 0 0 16px rgba(255,48,72,.35)}
.btn--wa svg{width:16px;height:16px}

/* modal da membership */
.modal{border:0;padding:0;background:transparent;color:#fff;width:min(560px,94vw);max-height:92dvh;overflow:visible}
.modal::backdrop{background:rgba(8,6,7,.8);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.modal[open] .glassform{animation:pop .5s cubic-bezier(.2,.8,.2,1)}
@keyframes pop{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
.modal .orb{position:absolute;top:.9rem;right:.9rem;width:38px;height:38px}
.modal .sec__h{font-size:clamp(1.8rem,4vw,2.4rem);margin:.7rem 0 1.2rem}

/* ═══ EVENTS ═══════════════════════════════════════════════════════ */
.sec--events .sec__bg img{object-position:50% 40%}
.sec--events .sec__shade{background:
  linear-gradient(90deg,rgba(8,6,7,.95) 0%,rgba(8,6,7,.7) 34%,rgba(8,6,7,.55) 60%,rgba(8,6,7,.8) 100%),
  linear-gradient(180deg,rgba(8,6,7,.7) 0%,rgba(8,6,7,0) 22%,rgba(8,6,7,0) 74%,rgba(8,6,7,.85) 100%)}

/* ═══ FAQ ══════════════════════════════════════════════════════════ */
.sec--faq{min-height:0;background:var(--sc-canvas)}
.faq2{display:grid;max-width:64ch}
.faq2 details{border-bottom:1px solid rgba(255,48,72,.18)}
.faq2 summary{cursor:pointer;list-style:none;padding:1.3rem 2.4rem 1.3rem 0;position:relative;
  font:300 clamp(1.15rem,2vw,1.45rem)/1.3 var(--serif);color:#fff;transition:color .25s}
.faq2 summary::-webkit-details-marker{display:none}
.faq2 summary::after{content:"";position:absolute;right:.4rem;top:50%;width:10px;height:10px;
  border-right:1.5px solid var(--neon);border-bottom:1.5px solid var(--neon);
  transform:translateY(-70%) rotate(45deg);transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.faq2 details[open] summary{color:var(--neon)}
.faq2 details[open] summary::after{transform:translateY(-20%) rotate(225deg)}
.faq2 summary:focus-visible{outline:2px solid var(--neon);outline-offset:3px}
.faq2 p{margin:0 0 1.4rem;font:300 .95rem/1.7 var(--sans);color:var(--sc-ink-soft);max-width:56ch}

/* ═══ FIND — mapa 3D real do Bairro Alto ═══════════════════════════ */
.sec--find{background:radial-gradient(ellipse 60% 70% at 72% 55%,rgba(181,18,39,.18),transparent 70%),var(--sc-canvas)}
.info{list-style:none;margin:1.8rem 0 0;padding:0;display:grid;gap:1rem}
.info li{display:flex;gap:.9rem;align-items:flex-start}
.info .orb{width:40px;height:40px;flex:none;cursor:default}
.info .orb svg{width:16px;height:16px}
.info b{display:block;font:400 .6rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:#fff;margin:.25rem 0 .45rem}
.info span{font:300 .86rem/1.55 var(--sans);color:var(--sc-ink-soft)}
.info a{color:var(--sc-ink-soft);text-decoration:none;border-bottom:1px solid rgba(255,48,72,.4)}
.info a:hover{color:#fff;border-color:var(--neon)}
.map3d{position:relative;justify-self:center;width:min(640px,92vw);aspect-ratio:1;perspective:1300px;
  touch-action:pan-y;cursor:grab;user-select:none}
.map3d.drag{cursor:grabbing}
.map3d__disc{position:absolute;inset:4%;transform-style:preserve-3d;
  transform:rotateX(var(--mtilt,56deg)) rotateZ(var(--mrot,0deg));transition:transform .2s linear}
.map3d.drag .map3d__disc{transition:none}
.map3d__disc>img{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;display:block;
  box-shadow:0 0 30px rgba(255,48,72,.35),0 0 90px rgba(181,18,39,.25)}
/* o anel de luz debaixo do disco */
.map3d__disc::before{content:"";position:absolute;inset:-3%;border-radius:50%;
  border:1px solid rgba(255,48,72,.35);box-shadow:0 0 40px rgba(255,48,72,.25),inset 0 0 40px rgba(255,48,72,.15);
  transform:translateZ(-14px)}
/* elementos de pé sobre o mapa: contrarodam para olhar a câmara */
.mk{position:absolute;left:var(--x);top:var(--y);width:0;height:0;transform-style:preserve-3d}
.mk__up{position:absolute;left:0;bottom:0;transform-origin:50% 100%;
  transform:translateX(-50%) rotateZ(calc(var(--mrot,0deg) * -1)) rotateX(calc(var(--mtilt,56deg) * -1))}
.mk--pin .mk__up{display:grid;justify-items:center;gap:.35rem}
.mk--pin svg{width:42px;height:56px;filter:drop-shadow(0 0 6px #FF3048) drop-shadow(0 0 16px rgba(255,48,72,.7));
  animation:pinBob 2.6s ease-in-out infinite}
@keyframes pinBob{0%,100%{translate:0 0}50%{translate:0 -7px}}
.mk--pin b{font:400 .62rem/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:#fff;
  text-shadow:0 0 10px rgba(255,48,72,.9),0 0 2px #000;white-space:nowrap;order:-1}
.mk__pulse{position:absolute;left:0;top:0;width:90px;height:90px;margin:-45px 0 0 -45px;border-radius:50%;
  border:2px solid #FF3048;animation:pulse 2.4s cubic-bezier(.2,.7,.3,1) infinite}
.mk__pulse:nth-child(2){animation-delay:1.2s}
@keyframes pulse{0%{transform:scale(.15);opacity:1}100%{transform:scale(1.3);opacity:0}}
.mk--lbl span{display:block;font:400 .58rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;
  color:rgba(247,243,240,.85);white-space:nowrap;text-shadow:0 1px 3px #000,0 0 8px rgba(8,6,7,.9)}
.map3d__hint{position:absolute;left:0;right:0;bottom:-.4rem;text-align:center;font:400 .55rem/1 var(--sans);
  letter-spacing:.3em;text-transform:uppercase;color:rgba(201,184,181,.6)}
.map3d__credit{position:absolute;right:0;bottom:-1.8rem;font:300 .6rem/1 var(--sans);color:rgba(201,184,181,.45)}
.map3d__credit a{color:inherit}

/* ═══ FOOTER ═══════════════════════════════════════════════════════ */
.foot{position:relative;padding:clamp(4rem,10vh,6rem) var(--gut) 2rem;text-align:center;
  background:#060405}
.foot__logo{display:block;width:clamp(150px,16vw,200px);aspect-ratio:560/330;margin:0 auto;position:relative;
  perspective:620px}
.foot__logo .logo3d__spin{animation:none;transition:transform 1.1s cubic-bezier(.2,.7,.3,1)}
.foot__logo:hover .logo3d__spin,.foot__logo:focus-visible .logo3d__spin{transform:rotateY(360deg)}
.foot__nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 2rem;margin:2.2rem 0 0}
.foot__nav a{font:400 .62rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--sc-ink-soft);
  text-decoration:none;transition:color .25s}
.foot__nav a:hover{color:var(--neon)}
.foot__row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.4rem 2.4rem;margin-top:2.2rem}
.foot__legal{margin-top:2.6rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem;
  font:300 .7rem/1.5 var(--sans);color:rgba(201,184,181,.55);max-width:1320px;margin-inline:auto;
  padding-top:1.4rem}

/* ═══ CHATBOT — concierge em néon ══════════════════════════════════ */
.bot{position:fixed;right:clamp(.9rem,2.4vw,1.6rem);bottom:clamp(.9rem,2.4vw,1.6rem);z-index:120;
  font-family:var(--sans)}
.bot__fab{all:unset;position:relative;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;
  cursor:pointer;color:#fff;
  background:radial-gradient(circle at 50% 35%,rgba(214,26,50,.5),rgba(22,9,12,.9) 64%);
  border:1.5px solid rgba(255,48,72,.9);
  box-shadow:0 0 10px rgba(255,48,72,.6),0 0 30px rgba(255,48,72,.35),0 0 60px rgba(181,18,39,.25),
    inset 0 0 14px rgba(255,48,72,.4);
  transform:perspective(360px) rotateX(calc(var(--ty,0) * -20deg)) rotateY(calc(var(--tx,0) * 20deg));
  transition:transform .5s cubic-bezier(.2,.7,.3,1),box-shadow .3s,scale .3s}
.bot__fab.tilt{transition-duration:.12s,.3s,.3s}
.bot__fab:hover{scale:1.06;box-shadow:0 0 14px rgba(255,48,72,.85),0 0 40px rgba(255,48,72,.5),0 0 80px rgba(181,18,39,.35),
  inset 0 0 18px rgba(255,48,72,.55)}
.bot__fab:focus-visible{outline:2px solid var(--neon);outline-offset:4px}
.bot__fab svg{width:40px;height:40px;filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 6px rgba(255,48,72,.9));
  animation:botFloat 3.4s ease-in-out infinite}
@keyframes botFloat{0%,100%{translate:0 0}50%{translate:0 -3px}}
.bot__eye{animation:blink 4.6s infinite;transform-origin:center;transform-box:fill-box}
@keyframes blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
.bot__badge{position:absolute;top:-2px;right:-2px;min-width:20px;height:20px;border-radius:10px;
  background:var(--neon);color:#fff;font:500 .66rem/20px var(--sans);text-align:center;
  box-shadow:0 0 10px rgba(255,48,72,.9);transition:scale .3s}
.bot--seen .bot__badge{scale:0}
.bot__bubble{position:absolute;right:76px;bottom:12px;width:max-content;max-width:min(230px,62vw);
  padding:.8rem 2.1rem .8rem 1rem;border-radius:16px 16px 4px 16px;
  font:300 .82rem/1.4 var(--sans);color:#fff;
  background:linear-gradient(160deg,rgba(40,12,17,.92),rgba(12,7,9,.94));
  border:1px solid rgba(255,48,72,.65);box-shadow:0 0 16px rgba(255,48,72,.35),0 14px 30px rgba(0,0,0,.5);
  opacity:0;translate:10px 6px;scale:.92;transform-origin:100% 100%;pointer-events:none;
  transition:opacity .45s,translate .55s cubic-bezier(.2,.8,.2,1),scale .55s cubic-bezier(.2,.8,.2,1)}
.bot__bubble b{font-weight:500}
.bot--hello .bot__bubble{opacity:1;translate:0 0;scale:1;pointer-events:auto}
.bot__bubble button{all:unset;position:absolute;top:.35rem;right:.45rem;width:22px;height:22px;display:grid;
  place-items:center;cursor:pointer;color:var(--sc-ink-soft);border-radius:50%}
.bot__bubble button:hover{color:#fff}
.bot__bubble button:focus-visible{outline:2px solid var(--neon)}
.bot--open .bot__bubble{opacity:0;pointer-events:none}

.bot__panel{position:absolute;right:0;bottom:80px;width:min(380px,calc(100vw - 1.8rem));
  height:min(560px,calc(100dvh - 120px));display:flex;flex-direction:column;border-radius:22px;overflow:hidden;
  background:linear-gradient(170deg,rgba(26,9,13,.94),rgba(8,6,7,.97));
  -webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);
  border:1px solid rgba(255,48,72,.6);
  box-shadow:0 0 18px rgba(255,48,72,.3),0 0 60px rgba(181,18,39,.2),0 40px 80px rgba(0,0,0,.6);
  opacity:0;visibility:hidden;translate:0 16px;scale:.96;transform-origin:100% 100%;
  transition:opacity .35s,translate .45s cubic-bezier(.2,.8,.2,1),scale .45s cubic-bezier(.2,.8,.2,1),visibility 0s .45s}
.bot--open .bot__panel{opacity:1;visibility:visible;translate:0 0;scale:1;transition-delay:0s}
.bot__head{display:flex;align-items:center;gap:.8rem;padding:1rem 1rem .9rem;
  border-bottom:1px solid rgba(255,48,72,.2)}
.bot__av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;flex:none;
  border:1px solid rgba(255,48,72,.8);box-shadow:0 0 10px rgba(255,48,72,.45);background:rgba(181,18,39,.25)}
.bot__av svg{width:26px;height:26px;filter:drop-shadow(0 0 4px rgba(255,48,72,.9))}
.bot__who{flex:1;min-width:0}
.bot__who b{display:block;font:400 .68rem/1.2 var(--sans);letter-spacing:.24em;text-transform:uppercase}
.bot__who span{font:300 .74rem/1.4 var(--sans);color:var(--sc-ink-soft)}
.bot__who span::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:.4rem;
  background:#3ddc84;box-shadow:0 0 8px #3ddc84;vertical-align:1px}
.bot__head .orb{width:36px;height:36px}
.bot__head .orb svg{width:16px;height:16px}
.bot__log{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.6rem;scroll-behavior:smooth}
.msg{max-width:86%;padding:.7rem .9rem;border-radius:16px;font:300 .86rem/1.5 var(--sans);
  animation:msgIn .45s cubic-bezier(.2,.8,.2,1)}
@keyframes msgIn{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
.msg--bot{align-self:flex-start;background:rgba(255,255,255,.05);border:1px solid rgba(255,48,72,.25);
  border-bottom-left-radius:4px}
.msg--me{align-self:flex-end;background:linear-gradient(150deg,rgba(214,26,50,.55),rgba(120,12,28,.55));
  border:1px solid rgba(255,48,72,.55);border-bottom-right-radius:4px}
.msg a{color:#fff}
.msg__acts{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.msg__acts a,.msg__acts button{all:unset;cursor:pointer;padding:.5em .9em;border-radius:999px;
  font:400 .58rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#fff;
  border:1px solid rgba(255,48,72,.7);background:rgba(181,18,39,.25);transition:box-shadow .25s,background .25s}
.msg__acts a:hover,.msg__acts button:hover{background:rgba(214,26,50,.45);box-shadow:0 0 12px rgba(255,48,72,.5)}
.msg__acts a:focus-visible,.msg__acts button:focus-visible{outline:2px solid var(--neon)}
.typing{display:flex;gap:4px;padding:.8rem .9rem}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--neon);box-shadow:0 0 6px var(--neon);
  animation:dot 1s ease-in-out infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,100%{opacity:.3;translate:0 0}50%{opacity:1;translate:0 -3px}}
.bot__quick{display:flex;gap:.4rem;overflow-x:auto;padding:.2rem 1rem .7rem;scrollbar-width:none}
.bot__quick::-webkit-scrollbar{display:none}
.bot__quick button{all:unset;flex:none;cursor:pointer;padding:.55em 1em;border-radius:999px;
  font:400 .58rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--sc-ink-soft);
  border:1px solid rgba(255,48,72,.35);transition:all .25s}
.bot__quick button:hover{color:#fff;border-color:var(--neon);box-shadow:0 0 10px rgba(255,48,72,.4)}
.bot__quick button:focus-visible{outline:2px solid var(--neon)}
.bot__form{display:flex;gap:.5rem;padding:.8rem 1rem 1rem;border-top:1px solid rgba(255,48,72,.2)}
.bot__form input{flex:1;min-width:0;padding:.8rem 1rem;border-radius:999px;font:300 .86rem/1 var(--sans);color:#fff;
  background:rgba(8,6,7,.6);border:1px solid rgba(255,255,255,.12);outline:0}
.bot__form input:focus{border-color:var(--neon);box-shadow:0 0 12px rgba(255,48,72,.3)}
.bot__form .orb{width:44px;height:44px}
.bot__form .orb svg{width:17px;height:17px}

@media (max-width:760px){
  .sec{min-height:0;padding:clamp(4.5rem,11vh,6rem) 0}
  .sec__shade{background:linear-gradient(180deg,rgba(8,6,7,.82) 0%,rgba(8,6,7,.55) 38%,rgba(8,6,7,.22) 62%,rgba(8,6,7,.85) 100%) !important}
  .map3d__credit{left:0;right:0;text-align:center}
  .map3d{width:min(520px,96vw)}
  .bot__fab{width:56px;height:56px}
  .bot__fab svg{width:34px;height:34px}
  .bot__panel{bottom:70px}
}

@media (prefers-reduced-motion:reduce){
  [data-rv],.sec__h span>i{opacity:1 !important;transform:none !important;filter:none !important;transition:none !important}
  .sec__bg{transform:none !important}
  .card3d__btn,.bot__fab,.rail2 button{transform:none !important;animation:none !important}
  .bot__fab svg,.bot__eye,.mk--pin svg,.mk__pulse{animation:none !important}
  .map3d__disc{transition:none}
}

/* ═══ ÍCONES FUTURISTAS — anel holográfico a rodar, varrimento de
   holograma, ícone com espessura 3D que segue a inclinação, e
   flutuação em repouso. Aplica-se a redes, contactos e concierge. ═══ */
.social .orb,.info .orb,.bot__head .orb{position:relative;isolation:isolate;
  animation:orbBob 5s ease-in-out var(--bob,0s) infinite}
@keyframes orbBob{0%,100%{translate:0 0}50%{translate:0 -3px}}
.orb__ring{position:absolute;inset:-5px;border-radius:50%;pointer-events:none;z-index:-1;
  background:conic-gradient(from var(--ang,0deg),transparent 0 52%,rgba(255,48,72,.15) 62%,#FF3048 78%,#fff 82%,rgba(255,48,72,.6) 86%,transparent 92%);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1.5px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1.5px));
  filter:drop-shadow(0 0 4px #FF3048);opacity:.85;
  animation:ringSpin 3.6s linear infinite}
@property --ang{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes ringSpin{to{--ang:360deg}}
.orb:hover .orb__ring,.orb:focus-visible .orb__ring{animation-duration:1.1s;opacity:1;inset:-7px}
.orb__scan{position:absolute;inset:1px;border-radius:50%;pointer-events:none;z-index:1;overflow:hidden;opacity:.55;
  background:repeating-linear-gradient(180deg,rgba(255,255,255,.07) 0 1px,transparent 1px 4px);
  -webkit-mask:linear-gradient(180deg,transparent,#000 40%,#000 60%,transparent);
          mask:linear-gradient(180deg,transparent,#000 40%,#000 60%,transparent);
  -webkit-mask-size:100% 220%;mask-size:100% 220%;animation:scan 2.8s linear infinite}
@keyframes scan{from{-webkit-mask-position:0 120%;mask-position:0 120%}to{-webkit-mask-position:0 -120%;mask-position:0 -120%}}
/* espessura: cópias do traço empurradas para trás, na direção oposta à inclinação */
.social .orb svg,.info .orb svg,.bot__head .orb svg{
  filter:drop-shadow(calc(var(--tx,0) * -1.6px) calc(var(--ty,0) * -1.6px + 1px) 0 rgba(181,18,39,.95))
         drop-shadow(calc(var(--tx,0) * -1.6px) calc(var(--ty,0) * -1.6px + 1px) 0 rgba(110,8,20,.9))
         drop-shadow(0 0 2px #fff) drop-shadow(0 0 6px rgba(255,48,72,.95)) drop-shadow(0 0 14px rgba(255,48,72,.55))}
.info .orb,.bot__head .orb{border:1.5px solid rgba(255,48,72,.9);
  background:radial-gradient(circle at 50% 38%,rgba(181,18,39,.42),rgba(22,9,12,.78) 62%,rgba(8,6,7,.9));
  box-shadow:0 0 6px rgba(255,48,72,.55),0 0 18px rgba(255,48,72,.3),inset 0 0 10px rgba(255,48,72,.35);
  transform:perspective(300px) rotateX(calc(var(--ty,0) * -22deg)) rotateY(calc(var(--tx,0) * 22deg));
  transition:transform .5s cubic-bezier(.2,.7,.3,1),box-shadow .3s}
.info .orb.tilt,.bot__head .orb.tilt{transition-duration:.12s,.3s}
@media (prefers-reduced-motion:reduce){
  .orb__ring,.orb__scan,.social .orb,.info .orb,.bot__head .orb{animation:none !important}
}
.sec--inside .sec__bg img{filter:brightness(.42) saturate(.85)}
.foot a,.foot__nav a{border-bottom:0}

/* ═══ FIND — o mapa 3D é o fundo inteiro da secção, texto por cima ═══ */
.sec--find{min-height:min(100vh,960px)}
.sec--find .map3d{position:absolute;inset:0;z-index:-2;width:auto;aspect-ratio:auto;justify-self:auto;
  perspective:1500px;perspective-origin:62% 20%;overflow:hidden;touch-action:pan-y}
.sec--find .map3d__disc{inset:auto;left:62%;top:60%;width:max(118vw,1500px);aspect-ratio:1;translate:-50% -50%}
.sec--find .map3d__disc>img{box-shadow:0 0 60px rgba(255,48,72,.35),0 0 160px rgba(181,18,39,.3)}
.sec--find .mk--lbl span{font-size:.78rem}
.sec--find .mk--pin svg{width:58px;height:78px}
.sec--find .mk--pin b{font-size:.78rem}
.sec--find .mk__pulse{width:150px;height:150px;margin:-75px 0 0 -75px}
.sec--find .sec__shade{background:
  linear-gradient(90deg,rgba(8,6,7,.96) 0%,rgba(8,6,7,.85) 24%,rgba(8,6,7,.4) 46%,rgba(8,6,7,0) 66%),
  linear-gradient(180deg,rgba(8,6,7,.92) 0%,rgba(8,6,7,0) 26%,rgba(8,6,7,0) 76%,rgba(8,6,7,.9) 100%)}
/* o texto fica por cima mas não bloqueia o arrasto do mapa */
.sec--find .sec__in{pointer-events:none}
.sec--find .sec__copy{pointer-events:auto}
.sec--find .map3d__hint{left:auto;right:var(--gut);bottom:1.6rem;text-align:right;z-index:2}
.sec--find .map3d__credit{right:var(--gut);bottom:.6rem;z-index:2}
@media (max-width:760px){
  .sec--find{min-height:100svh;align-items:flex-start;padding-bottom:56svh}
  .sec--find .map3d__disc{left:50%;top:calc(100% - 27svh);width:max(230vw,900px)}
  .sec--find .sec__shade{background:linear-gradient(180deg,rgba(8,6,7,.96) 0%,rgba(8,6,7,.9) 48%,rgba(8,6,7,.1) 62%,rgba(8,6,7,0) 85%,rgba(8,6,7,.5) 100%) !important}
  .sec--find .map3d__hint{right:0;left:0;text-align:center}
}

/* ═══ MAIS ESCURO — para o vermelho sobressair ══════════════════════ */
.sec__bg img{filter:brightness(.7) contrast(1.06) saturate(.95)}
.sec--member .sec__bg img{filter:brightness(.5) contrast(1.05)}
.sec--inside .sec__bg img{filter:brightness(.34) saturate(.8)}
.sec__shade::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 120% 90% at 60% 50%,transparent 55%,rgba(40,2,8,.45) 100%)}
.hero-scrim::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(rgba(8,6,7,.2),rgba(8,6,7,.2)),
    radial-gradient(ellipse 110% 90% at 55% 45%,transparent 50%,rgba(40,2,8,.5) 100%)}

/* ═══ BOTÕES — borda em gradiente a rodar (efeito "GradientButton"),
   recriado em CSS puro: o próprio botão é um conic-gradient que gira
   (@property --r), e o ::after pinta o interior escuro por cima,
   deixando só um anel visível. ::before é o halo desfocado. ═══════ */
@property --r{syntax:"<angle>";inherits:false;initial-value:0deg}
.btn{position:relative;isolation:isolate;border:0;padding:1.1em 2em;
  background:conic-gradient(from var(--r),#B51227,#FF3048 22%,#ffb3bb 30%,#FF3048 38%,#3a0710 55%,#B51227 78%,#FF3048 92%,#B51227);
  box-shadow:0 0 14px rgba(255,48,72,.22);
  -webkit-backdrop-filter:none;backdrop-filter:none;
  animation:btnSpin 4.5s linear infinite}
@keyframes btnSpin{to{--r:360deg}}
.btn::after{content:"";position:absolute;inset:1.6px;border-radius:inherit;z-index:1;
  background:linear-gradient(135deg,#2a0a10 0%,#120709 55%,#0b0607 100%);
  transition:opacity .3s linear}
.btn::before{content:"";position:absolute;inset:-1px;border-radius:inherit;z-index:-1;pointer-events:none;
  background:inherit;filter:blur(12px);opacity:.35;transition:opacity .3s}
.btn>*{position:relative;z-index:2}
.btn:hover,.btn:focus-visible{background:conic-gradient(from var(--r),#B51227,#FF3048 22%,#ffb3bb 30%,#FF3048 38%,#3a0710 55%,#B51227 78%,#FF3048 92%,#B51227);
  animation-duration:1.6s;box-shadow:0 0 22px rgba(255,48,72,.45)}
.btn:hover::before,.btn:focus-visible::before{opacity:.7}
.btn:hover::after{opacity:.88}
.btn--neon{box-shadow:0 0 18px rgba(255,48,72,.35)}
.btn--neon::after{background:linear-gradient(135deg,#3a0c14 0%,#170809 55%,#0d0607 100%)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;animation:none}
@media (prefers-reduced-motion:reduce){.btn{animation:none}}

/* ═══ LETRAS COM BRILHO — efeito "ShiningText" em CSS puro.
   Uma faixa de luz diagonal atravessa o texto em loop. Ao contrário
   do original (cinzento #404040), o texto mantém a sua cor: branco
   fica branco, vermelho fica vermelho — só o brilho passa por cima.
   --sb = cor base, --sh = cor do brilho. Só anima o que está no ecrã
   (.vis, posto pelo sections.js). ═════════════════════════════════ */
:where(.sec__h-x,.d,.hero-sub,.sec__p,.lede,.quiet,.caps,.hero-r nav a,.hero-place,
  .drawer nav a,.foot__nav a,.foot__legal,.btn>span,.card3d__name,.card3d__city,.card3d__lbl,
  .card3d__hint,.card3d__back p,.glassform h3,.fld label,.formnote,.formok,.rail2 figcaption,
  .faq2 summary,.faq2 p,.info b,.info div>span,.map3d__hint,.mk--lbl span,.mk--pin b,.bot__who b,.bot__who span,
  .bot__bubble>span,.msg>div,.lb__cap,
  .kick,.kicker,.red,.card3d__tag){
  --sb:#F7F3F0;--sh:#ffffff;
  background:linear-gradient(110deg,var(--sb) 0%,var(--sb) 40%,var(--sh) 50%,var(--sb) 60%,var(--sb) 100%) 0 0/250% 100% repeat-x;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  animation:shine 4.2s linear infinite;animation-play-state:paused}
/* texto secundário: base suave, brilho branco */
:where(.sec__p,.lede,.quiet,.hero-place,.foot__legal,.formnote,.rail2 figcaption,.faq2 p,.info div>span,
  .map3d__hint,.card3d__city,.card3d__lbl,.card3d__hint,.card3d__back p,.fld label,.lb__cap,
  .bot__who span ){--sb:#C9B8B5;--sh:#ffffff}
/* vermelho: base néon, brilho rosa-claro */
:where(.kick,.kicker,.red,.card3d__tag){--sb:#FF3048;--sh:#ffd3d9}
/* a sombra de texto pintaria por cima do gradiente: passa a drop-shadow */
.kick,.card3d__tag{text-shadow:none;filter:drop-shadow(0 0 8px rgba(255,48,72,.45))}
.mk--lbl span,.mk--pin b{text-shadow:none;filter:drop-shadow(0 1px 2px #000) drop-shadow(0 0 6px rgba(255,48,72,.6))}
@keyframes shine{from{background-position:150% 0}to{background-position:-50% 0}}
/* só corre no que está à vista */
.vis :where(.hero-h,.sec__h i,.d,.hero-sub,.sec__p,.lede,.quiet,.caps,.hero-r nav a,.hero-place,.foot__nav a,
  .foot__legal,.btn>span,.card3d__name,.card3d__city,.card3d__lbl,.card3d__hint,.card3d__back p,
  .glassform h3,.fld label,.formnote,.formok,.rail2 figcaption,.faq2 summary,.faq2 p,.info b,.info div>span,
  .map3d__hint,.mk--lbl span,.mk--pin b,.kick,.kicker,.red,.card3d__tag),
.chrome .nav-open .drawer :where(nav a,.caps),.bot--open :where(.bot__who b,.bot__who span,.msg>div,.msg__acts a,.msg__acts button),
.bot--hello .bot__bubble>span,.lb[open] .lb__cap,.modal[open] :where(.kick,.sec__h,.fld label,.formnote,.btn>span,.formok){
  animation-play-state:running}
/* estados de hover passam a mudar o gradiente (a cor de texto já não se vê) */
.drawer nav a:hover,.drawer nav a:focus-visible,.hero-r nav a:hover,.hero-r nav a:focus-visible,
.foot__nav a:hover,.faq2 details[open] summary,.lang button:hover{--sb:#FF3048;--sh:#ffd3d9}
.lang button[aria-pressed="true"]{--sb:#F7F3F0}
.chips input:checked+span,.bot__quick button:hover{--sb:#ffffff;--sh:#ffd3d9}
/* o título do modal é um h2 sem <i>: brilho no próprio h2 */
.modal .sec__h{--sb:#F7F3F0;--sh:#fff;background:linear-gradient(110deg,var(--sb) 0%,var(--sb) 40%,var(--sh) 50%,var(--sb) 60%,var(--sb) 100%) 0 0/250% 100% repeat-x;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shine 4.2s linear infinite}
@media (prefers-reduced-motion:reduce){
  :where(.hero-h,.sec__h i,.d,.hero-sub,.sec__p,.caps,.kick,.red,.btn>span,.faq2 summary,.faq2 p,.info b,.info div>span){animation:none !important}
}

/* ═════════════════════════════════════════════════════════════════════
   V2 — REFINAMENTO EDITORIAL (sem divisórias, uma viagem contínua)
   ═════════════════════════════════════════════════════════════════════ */

/* ── Secções que se fundem: sem linhas; as fotos dissolvem-se em cima e
   em baixo e as secções sobrepõem-se ligeiramente ──────────────────── */
.sec{border:0;padding:clamp(7rem,17vh,11rem) 0;margin-top:-9vh}
#soul{margin-top:0}
.sec__bg{
  -webkit-mask:linear-gradient(90deg,transparent 0,#000 30%),linear-gradient(180deg,transparent 0,#000 20%,#000 80%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask:linear-gradient(90deg,transparent 0,#000 30%),linear-gradient(180deg,transparent 0,#000 20%,#000 80%,transparent 100%);
  mask-composite:intersect;
  clip-path:inset(0 0 0 24%);transition:clip-path 1.4s cubic-bezier(.2,.7,.3,1) .1s}
.sec--flip .sec__bg{
  -webkit-mask:linear-gradient(270deg,transparent 0,#000 30%),linear-gradient(180deg,transparent 0,#000 20%,#000 80%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask:linear-gradient(270deg,transparent 0,#000 30%),linear-gradient(180deg,transparent 0,#000 20%,#000 80%,transparent 100%);
  mask-composite:intersect;clip-path:inset(0 24% 0 0)}
.sec.in .sec__bg{clip-path:inset(0 0 0 0)}
.sec__bg img{transform:scale(1.08);transition:transform 1.8s cubic-bezier(.2,.7,.3,1)}
.sec.in .sec__bg img{transform:scale(1)}
.sec__shade{background:
  linear-gradient(90deg,rgba(8,6,7,.9) 0%,rgba(8,6,7,.55) 30%,rgba(8,6,7,.12) 54%,rgba(8,6,7,0) 70%)}
.sec--flip .sec__shade{background:linear-gradient(270deg,rgba(8,6,7,.9) 0%,rgba(8,6,7,.55) 30%,rgba(8,6,7,.12) 54%,rgba(8,6,7,0) 70%)}
/* variação de composição: a Soul assenta em baixo, o texto não começa sempre no mesmo sítio */
.sec--soul{align-items:flex-end;min-height:min(96vh,900px)}
.sec__p{transition-duration:1s}
@media (max-width:760px){
  .sec{margin-top:-6vh;padding:clamp(5.5rem,13vh,7rem) 0}
  .sec__bg,.sec--flip .sec__bg{-webkit-mask:linear-gradient(180deg,transparent 0,#000 16%,#000 84%,transparent 100%);
    mask:linear-gradient(180deg,transparent 0,#000 16%,#000 84%,transparent 100%);clip-path:inset(8% 0 0 0)}
  .sec.in .sec__bg,.sec--flip.in .sec__bg{clip-path:inset(0)}
}

/* ═══ INSIDE MAJONG — composição editorial com scroll ═══════════════ */
.sec--inside{padding:0;margin-top:-6vh;overflow:visible;min-height:0;display:block;background:none}
.ins{position:relative;height:calc(100vh + 6 * 72vh)}
.ins__stage{position:sticky;top:0;height:100vh;overflow:hidden}
.ins__dom{position:absolute;top:8vh;bottom:8vh;right:0;width:64%;
  -webkit-mask:linear-gradient(90deg,transparent 0,#000 18%),linear-gradient(180deg,transparent 0,#000 12%,#000 88%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask:linear-gradient(90deg,transparent 0,#000 18%),linear-gradient(180deg,transparent 0,#000 12%,#000 88%,transparent 100%);
  mask-composite:intersect}
.ins__d,.ins__s{position:absolute;margin:0;overflow:hidden}
.ins__d{inset:0;clip-path:inset(0 0 0 100%);transition:clip-path 1.25s cubic-bezier(.65,.05,.25,1)}
.ins__d[data-k="0"]{clip-path:inset(0)}
.ins__d.shown{clip-path:inset(0)}
.ins__d img,.ins__s img{width:100%;height:100%;object-fit:cover;display:block}
.ins__d img{filter:brightness(.82) contrast(1.05);
  transform:scale(calc(1.14 - var(--lp,0) * .1)) translate3d(calc(var(--lp,0) * -1.2%),0,0);will-change:transform}
.ins__d:nth-child(1){z-index:1}.ins__d:nth-child(2){z-index:2}.ins__d:nth-child(3){z-index:3}
.ins__d:nth-child(4){z-index:4}.ins__d:nth-child(5){z-index:5}.ins__d:nth-child(6){z-index:6}
/* o pormenor: uma segunda camada, mais pequena, sobre o canto da foto principal */
.ins__sec{position:absolute;right:clamp(1rem,4vw,4rem);bottom:5vh;width:clamp(170px,15vw,250px);aspect-ratio:3/4;z-index:8;
  transform:translate3d(0,calc(var(--lp,0) * -36px),0)}
.ins__s{inset:0;clip-path:inset(100% 0 0 0);transition:clip-path 1.1s cubic-bezier(.65,.05,.25,1) .18s;
  box-shadow:0 30px 70px rgba(0,0,0,.7)}
.ins__s.shown{clip-path:inset(0)}
.ins__s:nth-child(1){z-index:1}.ins__s:nth-child(2){z-index:2}.ins__s:nth-child(3){z-index:3}
.ins__s:nth-child(4){z-index:4}.ins__s:nth-child(5){z-index:5}.ins__s:nth-child(6){z-index:6}
.ins__s img{filter:brightness(.9)}
.ins__copy{position:absolute;z-index:9;left:max(var(--gut),calc((100vw - 1320px) / 2 + var(--gut)));top:50%;
  translate:0 -50%;width:min(31rem,34vw)}
.ins__caps{position:relative;min-height:6.4rem;margin-top:1.6rem}
.ins__cap{position:absolute;inset:0 0 auto 0;opacity:0;transform:translate3d(0,14px,0);
  transition:opacity .6s ease,transform .8s cubic-bezier(.2,.7,.3,1)}
.ins__cap.on{opacity:1;transform:none;transition-delay:.25s}
.ins__line{margin:.7rem 0 0;font:300 clamp(1.15rem,1.7vw,1.45rem)/1.4 var(--serif);color:#F7F3F0;max-width:26ch}
.sec--inside .sec__cta{margin-top:1.2rem}
@media (max-width:760px){
  .ins{height:calc(100svh + 6 * 62svh)}
  .ins__stage{height:100svh}
  .ins__dom{top:0;bottom:auto;height:58svh;width:100%;
    -webkit-mask:linear-gradient(180deg,#000 70%,transparent);mask:linear-gradient(180deg,#000 70%,transparent)}
  .ins__sec{width:30vw;right:var(--gut);bottom:auto;top:40svh}
  .ins__copy{left:var(--gut);right:var(--gut);width:auto;top:auto;bottom:4svh;translate:none}
  .ins__copy .sec__h{font-size:clamp(2.1rem,9vw,2.8rem)}
  .ins__caps{min-height:5.6rem;margin-top:1rem}
}

/* ═══ MEMBERSHIP — a casa em ecrã inteiro, o cartão como objeto ═══════ */
.sec--member{min-height:min(100vh,940px)}
.sec--member .sec__bg{left:0;right:0;clip-path:inset(0 0 0 0);
  -webkit-mask:linear-gradient(180deg,transparent 0,#000 18%,#000 82%,transparent 100%);
  mask:linear-gradient(180deg,transparent 0,#000 18%,#000 82%,transparent 100%)}
.sec--member .sec__bg img{filter:brightness(.42) saturate(.9) contrast(1.08)}
.sec--member .sec__shade{background:
  radial-gradient(ellipse 60% 70% at 25% 55%,rgba(8,6,7,.82),rgba(8,6,7,.2) 70%),
  radial-gradient(ellipse 40% 45% at 74% 52%,rgba(181,18,39,.16),transparent 70%)}
.mb__ghost{position:absolute;left:50%;top:50%;translate:-50% -50%;margin:0;z-index:-1;pointer-events:none;white-space:nowrap;
  font:300 clamp(5rem,17vw,16rem)/1 var(--serif);text-transform:uppercase;letter-spacing:.04em;
  color:transparent;-webkit-text-stroke:1px rgba(247,243,240,.07)}
.mb__in{display:grid;gap:3rem;align-items:center}
@media (min-width:980px){.mb__in{grid-template-columns:1.1fr .9fr}}
.mb__obj{justify-self:center;perspective:1000px}
.mb__obj .card3d{width:min(330px,74vw)}
.mb__obj .card3d__face{border:1px solid rgba(255,48,72,.32);
  box-shadow:0 0 0 1px rgba(255,255,255,.03),0 50px 90px rgba(0,0,0,.75),0 0 60px rgba(181,18,39,.14),inset 0 1px 0 rgba(255,255,255,.1)}
.mb__obj .card3d__tag{filter:none}
.mb__obj .card3d__mark{filter:drop-shadow(0 2px 2px rgba(0,0,0,.6))}

/* ═══ PRIVATE EVENTS — conversa ═══════════════════════════════════════ */
.evc{display:flex;flex-direction:column;height:min(560px,72vh);border-radius:26px;overflow:hidden;
  background:linear-gradient(165deg,rgba(46,12,19,.62),rgba(12,7,9,.78) 55%,rgba(8,6,7,.84));
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.07);box-shadow:0 40px 90px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.06)}
.evc__log{flex:1;overflow-y:auto;padding:1.4rem 1.3rem .6rem;display:flex;flex-direction:column;gap:.75rem;scroll-behavior:smooth}
.evm{display:flex;gap:.6rem;align-items:flex-end;max-width:88%;animation:msgIn .5s cubic-bezier(.2,.8,.2,1)}
.evm--a{align-self:flex-start}
.evm--u{align-self:flex-end;flex-direction:row-reverse}
.evm__av{width:26px;height:30px;flex:none;opacity:.9}
.evm__b{padding:.75rem 1rem;border-radius:18px;font:300 .92rem/1.5 var(--sans);color:#F7F3F0}
.evm--a .evm__b{background:rgba(255,255,255,.045);border-bottom-left-radius:6px}
.evm--u .evm__b{background:linear-gradient(150deg,rgba(150,20,38,.55),rgba(90,12,24,.55));border-bottom-right-radius:6px}
.evm__b b{font-weight:500}
.evc__ctl{display:flex;flex-wrap:wrap;gap:.45rem;padding:.3rem 1.3rem .8rem}
.evc__ctl:empty{display:none}
.evc__ctl button{all:unset;cursor:pointer;padding:.62em 1.1em;border-radius:999px;font:400 .62rem/1 var(--sans);
  letter-spacing:.18em;text-transform:uppercase;color:#F7F3F0;background:rgba(255,255,255,.05);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);transition:background .25s,box-shadow .25s}
.evc__ctl button:hover{background:rgba(181,18,39,.3);box-shadow:inset 0 0 0 1px rgba(255,48,72,.45)}
.evc__ctl button:focus-visible{outline:2px solid #ff7a88;outline-offset:2px}
.evc__ctl .ghost{background:none;box-shadow:none;color:var(--sc-ink-soft)}
.evc__ctl .main{background:linear-gradient(150deg,rgba(181,18,39,.6),rgba(110,14,28,.6));box-shadow:inset 0 0 0 1px rgba(255,48,72,.5)}
.evc__form{display:flex;gap:.55rem;padding:.8rem 1rem 1rem;align-items:center}
.evc__form input{flex:1;min-width:0;padding:.95rem 1.15rem;border-radius:999px;font:300 .92rem/1 var(--sans);color:#fff;
  background:rgba(8,6,7,.55);border:1px solid rgba(255,255,255,.1);outline:0;color-scheme:dark;transition:border-color .25s,box-shadow .25s}
.evc__form input:focus{border-color:rgba(255,48,72,.65);box-shadow:0 0 0 3px rgba(255,48,72,.12)}
.evc__form input:disabled{opacity:.45}
.evc__send{all:unset;flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#fff;
  background:linear-gradient(150deg,#B51227,#6e0d1c);box-shadow:0 6px 18px rgba(0,0,0,.4);transition:transform .25s,filter .25s}
.evc__send:hover{transform:translateX(2px);filter:brightness(1.12)}
.evc__send:focus-visible{outline:2px solid #ff7a88;outline-offset:3px}
.evc__send:disabled{opacity:.4;cursor:default;transform:none}
.evc__send svg{width:18px;height:18px}
.evc__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.evc__sum{margin:.4rem 0 0;display:grid;gap:.15rem}
.evc__sum div{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.32rem 0}
.evc__sum dt{font:400 .56rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--sc-ink-soft)}
.evc__sum dd{margin:0;text-align:right;font:300 .88rem/1.35 var(--sans)}
.evc__sum button{all:unset;cursor:pointer;margin-left:.6rem;font:400 .55rem/1 var(--sans);letter-spacing:.2em;
  text-transform:uppercase;color:#ff8b98}
.evc__sum button:hover{color:#fff}
.evc__sum button:focus-visible{outline:2px solid #ff7a88}
.evc__err{color:#ffb3bb}
@media (max-width:760px){.evc{height:min(540px,78svh)}}

/* ═══ GOOD TO KNOW — FAQ editorial em bordô ═════════════════════════════ */
.sec--faq{position:relative;min-height:0;margin-top:-6vh;
  background:
    linear-gradient(180deg,var(--sc-canvas) 0%,transparent 16%,transparent 84%,var(--sc-canvas) 100%),
    radial-gradient(ellipse 55% 60% at 18% 30%,rgba(120,12,28,.42),transparent 70%),
    radial-gradient(ellipse 50% 55% at 88% 75%,rgba(181,18,39,.18),transparent 70%),
    #13070a}
.sec--faq::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.08;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>")}
.faq__in{display:grid;gap:clamp(2.5rem,6vw,5rem);align-items:start}
@media (min-width:980px){.faq__in{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
  .faq__in>.sec__copy{position:sticky;top:14vh}}
.human{margin-top:2rem;padding:1.2rem;border-radius:20px;background:rgba(255,255,255,.035);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);display:grid;gap:.9rem;max-width:23rem}
.human__top{display:flex;gap:.8rem;align-items:center}
.human__ic{width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center;background:#F7F3F0;color:#13070a}
.human__ic svg{width:18px;height:18px}
.human__t{margin:0;font:400 .9rem/1.3 var(--sans);color:#F7F3F0}
.human__s{margin:.2rem 0 0;font:300 .76rem/1.4 var(--sans);color:var(--sc-ink-soft)}
.human__btn{justify-content:center;width:100%;box-sizing:border-box}
.human__or{margin:0;text-align:center;font:300 .74rem/1.4 var(--sans);color:var(--sc-ink-soft);display:flex;gap:.35rem;
  justify-content:center;align-items:center}
.human__or svg{width:13px;height:13px}
.human__or a{color:#F7F3F0;text-decoration:none;border-bottom:1px solid rgba(255,48,72,.4)}
.acc{display:grid;gap:.35rem}
.acc__i{border-radius:18px;transition:background .35s}
.acc__i:hover,.acc__i.open{background:rgba(255,255,255,.035)}
.acc__i h3{margin:0}
.acc__q{all:unset;box-sizing:border-box;width:100%;display:flex;justify-content:space-between;align-items:center;gap:1.4rem;
  padding:1.3rem 1.4rem;cursor:pointer;font:300 clamp(1.15rem,1.8vw,1.45rem)/1.3 var(--serif);color:#F7F3F0;border-radius:18px}
.acc__q:focus-visible{outline:2px solid #ff7a88;outline-offset:2px}
.acc__pm{flex:none;width:9px;height:9px;margin-top:-4px;border-right:1.5px solid #ff6b7a;border-bottom:1.5px solid #ff6b7a;
  transform:rotate(45deg);transition:transform .45s cubic-bezier(.2,.7,.3,1)}
.acc__i.open .acc__pm{transform:rotate(225deg);margin-top:4px}
.acc__a{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .5s cubic-bezier(.2,.7,.3,1),opacity .4s ease}
.acc__a>div{overflow:hidden}
.acc__i.open .acc__a{grid-template-rows:1fr;opacity:1}
.acc__a p{margin:0;padding:0 1.4rem 1.4rem;font:300 .95rem/1.75 var(--sans);color:var(--sc-ink-soft);max-width:58ch}

/* ═══ BOTÕES — vidro escuro, borda bordô discreta a rodar, sem néon forte ═══ */
.btn{background:conic-gradient(from var(--r),rgba(110,14,28,.95),rgba(255,48,72,.5) 16%,rgba(255,200,206,.7) 22%,
    rgba(255,48,72,.45) 28%,rgba(56,8,15,.95) 46%,rgba(110,14,28,.95) 100%);
  box-shadow:0 10px 26px rgba(0,0,0,.38);animation-duration:7s}
.btn::before{display:none}
.btn::after{inset:1px;background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,0) 46%),
  linear-gradient(135deg,#26090f 0%,#13080a 60%,#0d0708 100%)}
.btn:hover,.btn:focus-visible{background:conic-gradient(from var(--r),rgba(110,14,28,.95),rgba(255,48,72,.6) 16%,rgba(255,210,215,.85) 22%,
    rgba(255,48,72,.55) 28%,rgba(56,8,15,.95) 46%,rgba(110,14,28,.95) 100%);
  animation-duration:3s;transform:translateY(-1px);box-shadow:0 14px 32px rgba(0,0,0,.45),0 0 22px rgba(181,18,39,.22)}
.btn:hover::after{opacity:1}
.btn:focus-visible{outline:2px solid #ff8b98;outline-offset:3px}
.btn--neon{box-shadow:0 10px 26px rgba(0,0,0,.38)}
.btn--neon::after{background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 46%),linear-gradient(135deg,#320b13,#14080a 60%,#0d0708)}

/* ═══ RODAPÉ — sem linha, um brilho bordô e o logo ao centro ═══════════ */
.foot{margin-top:-8vh;padding-top:clamp(9rem,20vh,13rem);
  background:radial-gradient(ellipse 55% 60% at 50% 34%,rgba(120,12,28,.3),transparent 70%),
    linear-gradient(180deg,transparent 0,#060405 22%)}
.foot__logo{width:clamp(180px,20vw,260px)}
.foot__logo .logo3d__spin{animation:logoFloat 12s ease-in-out infinite;transition:none}
.foot__logo:hover .logo3d__spin,.foot__logo:focus-visible .logo3d__spin{transform:none}
.foot__legal{border:0}

/* ── brilho das letras também nos elementos novos ── */
:where(.ins__line,.acc__q>span,.human__t){
  --sb:#F7F3F0;--sh:#fff;
  background:linear-gradient(110deg,var(--sb) 0%,var(--sb) 40%,var(--sh) 50%,var(--sb) 60%,var(--sb) 100%) 0 0/250% 100% repeat-x;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  animation:shine 4.2s linear infinite;animation-play-state:paused}
:where(.acc__a p,.human__s){--sb:#C9B8B5;--sh:#fff;
  background:linear-gradient(110deg,var(--sb) 0%,var(--sb) 40%,var(--sh) 50%,var(--sb) 60%,var(--sb) 100%) 0 0/250% 100% repeat-x;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  animation:shine 4.2s linear infinite;animation-play-state:paused}
.vis :where(.ins__line,.acc__q>span,.human__t,.acc__a p,.human__s){animation-play-state:running}

@media (prefers-reduced-motion:reduce){
  .sec__bg,.sec__bg img,.ins__d,.ins__s,.ins__cap,.acc__a,.acc__pm{transition:none !important}
  .sec__bg{clip-path:none !important}.sec__bg img,.ins__d img{transform:none !important}
  .ins__sec{transform:none}.foot__logo .logo3d__spin,.btn{animation:none}
}

/* ═══ MENU QUE SE TRANSFORMA (efeito "liquid morph floating menu") ═══
   Fechado: pílula "Menu ☰" carmim. Aberto: cresce para um cartão e um
   círculo escuro sobe e enche-o; as ligações entram uma a uma e, sob o
   rato, as letras rolam (cada letra tem uma cópia por baixo). ═══════ */
.lmenu{position:relative;justify-self:end;width:132px;height:48px;z-index:96}
.lmenu__box{position:absolute;top:0;right:0;width:132px;height:48px;border-radius:72px;overflow:hidden;
  display:flex;flex-direction:column;
  box-shadow:0 12px 30px rgba(0,0,0,.45);
  transition:width .8s cubic-bezier(.22,1,.36,1),height .15s cubic-bezier(.22,1,.36,1),border-radius .8s cubic-bezier(.22,1,.36,1),scale .25s}
.lmenu__box:hover{scale:1.04}
.nav-open .lmenu__box{width:min(300px,calc(100vw - 2 * var(--gut)));height:440px;border-radius:30px;scale:1;
  transition:width .8s cubic-bezier(.22,1,.36,1),height .8s cubic-bezier(.22,1,.36,1),border-radius .8s cubic-bezier(.22,1,.36,1)}
.lmenu__bg{position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(150deg,#C2192F,#7a0d1d);box-shadow:inset 0 0 0 1px rgba(255,140,150,.35),inset 0 1px 0 rgba(255,255,255,.2)}
.lmenu__ink{position:absolute;left:50%;width:220%;height:220%;border-radius:50%;translate:-50% 0;top:-220%;
  background:radial-gradient(circle at 50% 70%,#1a0a0e,#0b0607 60%);
  transition:top .8s cubic-bezier(.22,1,.36,1)}
.nav-open .lmenu__ink{top:-60%;transition-delay:.1s}
.lmenu__bar{all:unset;position:relative;z-index:2;box-sizing:border-box;flex:none;height:48px;width:100%;
  display:flex;align-items:center;justify-content:space-between;padding:0 18px 0 22px;cursor:pointer;
  transition:padding .8s cubic-bezier(.22,1,.36,1)}
.nav-open .lmenu__bar{padding:0 22px 0 26px}
.lmenu__bar:focus-visible{outline:2px solid #ffd3d9;outline-offset:-4px;border-radius:72px}
.lmenu__lbl{font:400 .78rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#F7F3F0}
.lmenu__ham{position:relative;width:20px;height:20px;display:grid;place-items:center}
.lmenu__ham i{position:absolute;width:18px;height:1.6px;border-radius:2px;background:#F7F3F0;
  transition:transform .4s cubic-bezier(.22,1,.36,1)}
.lmenu__ham i:first-child{transform:translateY(-3px)}
.lmenu__ham i:last-child{transform:translateY(3px)}
.nav-open .lmenu__ham i:first-child{transform:rotate(45deg)}
.nav-open .lmenu__ham i:last-child{transform:rotate(-45deg)}
.lmenu__list{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1.1rem;padding:0 0 1.6rem;pointer-events:none;opacity:0}
.nav-open .lmenu__list{pointer-events:auto;opacity:1}
.lmenu__list a{color:#F7F3F0;text-decoration:none;font:300 1.65rem/1 var(--serif);text-transform:uppercase;letter-spacing:.03em;
  opacity:0;transition:opacity .4s cubic-bezier(.22,1,.36,1);transition-delay:0s;border-radius:6px}
.nav-open .lmenu__list a{opacity:1;transition-delay:calc(.4s + var(--n,0) * .08s)}
.lmenu__list a:focus-visible{outline:2px solid #ff8b98;outline-offset:6px}
/* letras que rolam */
.lr{display:flex;justify-content:center}
.lr__c{display:inline-block;overflow:hidden;height:1em}
.lr__c>span{display:flex;flex-direction:column;transition:transform 0s}
.lr__c>span>span{display:block;height:1em;line-height:1em}
.lr__c>span>span:last-child{color:#ff8b98}
.lmenu__list a.roll .lr__c>span{transform:translateY(-50%);
  transition:transform .8s cubic-bezier(.22,1,.36,1) calc(var(--i) * 30ms)}
@media (prefers-reduced-motion:reduce){
  .lmenu__box,.lmenu__ink,.lmenu__list a,.lr__c>span{transition:none !important}
}

/* ═══ PRIVATE EVENTS sem foto + campo de escrita "advanced chat input" ═══ */
.sec--events{background:
  radial-gradient(ellipse 50% 60% at 75% 50%,rgba(120,12,28,.22),transparent 70%),
  radial-gradient(ellipse 40% 50% at 15% 40%,rgba(181,18,39,.1),transparent 70%)}
.evc{height:min(520px,70vh)}
.aci{flex-direction:column;align-items:stretch;gap:.35rem;margin:0 .8rem .8rem;padding:.55rem .55rem .5rem;border-radius:20px;
  background:rgba(8,6,7,.55);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);transition:box-shadow .25s}
.aci:focus-within{box-shadow:inset 0 0 0 1px rgba(255,48,72,.5),0 0 0 3px rgba(255,48,72,.1)}
.aci__field{display:flex}
.aci__field input,.aci__field textarea{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#fff;box-shadow:none;
  padding:.55rem .6rem;border-radius:12px;font:300 .95rem/1.45 var(--sans);color-scheme:dark;resize:none}
.aci__field textarea{min-height:2.4rem;max-height:140px;overflow-y:auto}
.aci__field input:focus,.aci__field textarea:focus{box-shadow:none;border:0}
.aci__field input::placeholder,.aci__field textarea::placeholder{color:rgba(201,184,181,.6)}
.aci__row{display:flex;justify-content:space-between;align-items:center}
.aci__acts{display:flex;gap:.15rem}
.aci__ic{all:unset;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;cursor:pointer;color:var(--sc-ink-soft);
  transition:background .2s,color .2s}
.aci__ic:hover{background:rgba(255,255,255,.06);color:#fff}
.aci__ic:focus-visible{outline:2px solid #ff7a88}
.aci__ic[hidden]{display:none}
.aci__ic svg{width:17px;height:17px}
.aci__send{width:38px;height:38px}
.aci__send svg{width:16px;height:16px}
/* o FAQ não sobe por cima do chat de eventos (taparia o campo de escrita) */
.sec--faq{margin-top:0;background:
    radial-gradient(ellipse 55% 60% at 18% 30%,rgba(120,12,28,.42),transparent 70%),
    radial-gradient(ellipse 50% 55% at 88% 75%,rgba(181,18,39,.18),transparent 70%),
    linear-gradient(180deg,var(--sc-canvas) 0%,#13070a 16%,#13070a 84%,var(--sc-canvas) 100%)}

/* ═══ DE TODO O MUNDO — régua de países ════════════════════════════════ */
.sec--world{display:block;min-height:0;padding:clamp(6rem,15vh,9rem) 0 clamp(5rem,12vh,8rem);
  background:radial-gradient(ellipse 60% 55% at 50% 60%,rgba(120,12,28,.2),transparent 70%)}
.world__copy{max-width:40rem;margin:0 auto;text-align:center}
.world__copy .sec__p{margin-inline:auto}
.ruler{position:relative;margin-top:clamp(2.5rem,6vh,4rem);outline:0;user-select:none;touch-action:pan-y}
.ruler:focus-visible .ruler__view{box-shadow:inset 0 0 0 2px rgba(255,120,135,.6);border-radius:12px}
.ruler__lines{position:relative;height:30px;margin:0 var(--gut)}
.ruler__lines i{position:absolute;top:0;width:1.5px;height:10px;background:rgba(201,184,181,.35);border-radius:1px}
.ruler__lines[data-pos="bottom"] i{top:auto;bottom:0}
.ruler__lines i.f{height:16px;background:rgba(247,243,240,.7)}
.ruler__lines i.c{height:30px;width:2px;background:#FF3048;box-shadow:0 0 10px rgba(255,48,72,.8)}
.ruler__view{position:relative;overflow:hidden;height:clamp(110px,16vw,190px);cursor:grab;
  -webkit-mask:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent)}
.ruler.drag .ruler__view{cursor:grabbing}
.ruler__track{position:absolute;left:0;top:0;height:100%;display:flex;align-items:center;will-change:transform;
  transition:transform .75s cubic-bezier(.34,1.45,.64,1)}
.ruler__track.jump,.ruler.drag .ruler__track{transition:none}
.ruler__it{all:unset;flex:none;width:clamp(230px,30vw,440px);text-align:center;cursor:pointer;white-space:nowrap;
  font:300 clamp(2.2rem,5.6vw,4.8rem)/1 var(--serif);text-transform:uppercase;letter-spacing:.02em;color:rgba(247,243,240,.9);
  opacity:.28;transform:scale(.72);transition:transform .6s cubic-bezier(.34,1.45,.64,1),opacity .45s,color .45s}
.ruler__track.jump .ruler__it{transition:none}
.ruler__it:hover{opacity:.55}
.ruler__it.on{opacity:1;transform:scale(1);color:#fff;text-shadow:0 0 30px rgba(255,48,72,.25)}
.ruler__it:focus-visible{outline:2px solid #ff7a88;outline-offset:4px;border-radius:8px}
.ruler__ctl{display:flex;justify-content:center;align-items:center;gap:1.4rem;margin-top:2rem}
.ruler__btn{all:unset;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#ff6b7a;
  background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);transition:background .25s,color .25s}
.ruler__btn:hover{background:rgba(181,18,39,.3);color:#fff}
.ruler__btn:focus-visible{outline:2px solid #ff7a88;outline-offset:3px}
.ruler__btn svg{width:18px;height:18px}
.ruler__count{font:400 .78rem/1 var(--sans);letter-spacing:.2em;color:var(--sc-ink-soft);min-width:4.5rem;text-align:center}
.ruler__count b{color:#F7F3F0;font-weight:400}
.ruler__count i{font-style:normal;margin:0 .4em;opacity:.5}
@media (prefers-reduced-motion:reduce){.ruler__track,.ruler__it{transition:none}}
.bot__bubble button{width:32px;height:32px;top:.1rem;right:.15rem}

/* ═══ O QUE DIZEM — avaliações reais em marquee (duas filas, sentidos opostos) ═══ */
.sec--reviews{display:block;min-height:0;padding:clamp(6rem,14vh,9rem) 0 clamp(5rem,12vh,7rem)}
.mqs{position:relative;display:grid;gap:1rem;margin-top:clamp(2.2rem,5vh,3.4rem);
  -webkit-mask:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent)}
.mq{overflow:hidden}
.mq__t{list-style:none;margin:0;padding:0;display:flex;gap:1rem;width:max-content;animation:mq 46s linear infinite}
.mq--rev .mq__t{animation-direction:reverse;animation-duration:52s}
.mqs:hover .mq__t,.mqs:focus-within .mq__t{animation-play-state:paused}
@keyframes mq{from{transform:translate3d(0,0,0)}to{transform:translate3d(-33.3333%,0,0)}}
.rv a{display:grid;grid-template-columns:auto 1fr;gap:.35rem .8rem;align-items:center;width:clamp(250px,24vw,320px);
  box-sizing:border-box;padding:1.15rem 1.25rem;border-radius:18px;text-decoration:none;color:#F7F3F0;
  background:linear-gradient(160deg,rgba(46,12,19,.5),rgba(12,7,9,.7));box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);
  transition:box-shadow .3s,transform .3s}
.rv a:hover,.rv a:focus-visible{box-shadow:inset 0 0 0 1px rgba(255,48,72,.45),0 14px 34px rgba(0,0,0,.45);transform:translateY(-3px)}
.rv a:focus-visible{outline:2px solid #ff7a88;outline-offset:3px}
.rv__av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font:400 1rem/1 var(--serif);
  background:linear-gradient(150deg,#B51227,#5a0a17);color:#fff}
.rv__who b{display:block;font:400 .78rem/1.2 var(--sans)}
.rv__who i{font:300 .68rem/1.3 var(--sans);font-style:normal;color:var(--sc-ink-soft)}
.rv__q{grid-column:1/-1;margin-top:.5rem;font:300 1.25rem/1.3 var(--serif);color:#F7F3F0;min-height:3.3rem}
.rv__src{grid-column:1/-1;font:400 .56rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#ff8b98}
.rv__more{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin:2.4rem var(--gut) 0}
.rv__more .btn svg{width:14px;height:14px;fill:currentColor;stroke:none}
@media (prefers-reduced-motion:reduce){.mq{overflow-x:auto}.mq__t{animation:none}}

/* ═══ FAIXA DOS PAÍSES — fina, contínua, sem título ═════════════════ */
.sec--world,.ruler{display:none}
.wband{position:relative;z-index:2;overflow:hidden;padding:clamp(1.6rem,4vh,2.6rem) 0;margin:0;
  -webkit-mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.wband__t{display:flex;width:max-content;animation:wband 70s linear infinite}
.wband__t>div{display:flex;align-items:center;flex:none}

.wband span{font:300 clamp(1.5rem,2.6vw,2.3rem)/1 var(--serif);text-transform:uppercase;letter-spacing:.08em;
  color:rgba(247,243,240,.78);white-space:nowrap;transition:color .3s}
.wband span:hover{color:#fff}
.wband i{flex:none;width:6px;height:6px;margin:0 clamp(1.6rem,3vw,2.8rem);transform:rotate(45deg);
  background:#FF3048;box-shadow:0 0 10px rgba(255,48,72,.8)}
@keyframes wband{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media (prefers-reduced-motion:reduce){.wband__t{animation-duration:240s}}
.wband{-webkit-mask:none;mask:none;margin-top:-90px;padding-top:calc(clamp(1.6rem,4vh,2.6rem) + 90px);
  background:linear-gradient(180deg,rgba(8,6,7,0) 0,var(--sc-canvas) 90px)}
.wband__clip{-webkit-mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);overflow:hidden}

/* ═══ INSIDE — foto em fundo inteiro, texto e botão ao centro ═══════════ */
.ins__dom{inset:0;width:auto;top:0;bottom:0;
  -webkit-mask:linear-gradient(180deg,transparent 0,#000 14%,#000 86%,transparent 100%);
          mask:linear-gradient(180deg,transparent 0,#000 14%,#000 86%,transparent 100%)}
.ins__d img{filter:brightness(.6) contrast(1.06)}
.ins__stage::after{content:"";position:absolute;inset:0;z-index:7;pointer-events:none;
  background:radial-gradient(ellipse 52% 58% at 50% 50%,rgba(8,6,7,.72),rgba(8,6,7,.35) 60%,rgba(8,6,7,.1) 100%)}
.ins__copy{left:50%;top:50%;translate:-50% -50%;width:min(44rem,88vw);text-align:center}
.ins__copy .sec__h{font-size:clamp(2.6rem,5.6vw,5rem)}
.ins__caps{margin-left:auto;margin-right:auto;max-width:30rem}
.ins__line{margin-left:auto;margin-right:auto}
.ins__copy .sec__cta{justify-content:center;margin-top:1.4rem}
.ins__sec{bottom:6vh}
/* botão em néon com a borda a rodar */
.btn--glow{background:conic-gradient(from var(--r),#B51227,#FF3048 16%,#ffd3d9 22%,#FF3048 28%,#5a0a17 46%,#B51227 100%);
  animation-duration:3.2s;
  box-shadow:0 0 14px rgba(255,48,72,.55),0 0 38px rgba(255,48,72,.32),0 0 70px rgba(181,18,39,.25)}
.btn--glow::after{inset:1.5px;background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,0) 50%),
  linear-gradient(135deg,#3a0c14,#160809 60%,#0e0708)}
.btn--glow:hover,.btn--glow:focus-visible{background:conic-gradient(from var(--r),#B51227,#FF3048 16%,#fff 22%,#FF3048 28%,#5a0a17 46%,#B51227 100%);
  animation-duration:1.4s;box-shadow:0 0 18px rgba(255,48,72,.8),0 0 50px rgba(255,48,72,.45),0 0 90px rgba(181,18,39,.35)}
.btn--glow>span{text-shadow:0 0 10px rgba(255,48,72,.6)}
@media (max-width:760px){
  .ins__dom{height:auto}
  .ins__copy{left:50%;right:auto;bottom:auto;top:46%;translate:-50% -50%}
  .ins__sec{top:auto;bottom:4svh;width:26vw}
}

/* ═══ TÍTULOS GRANDES — foto real a passar por dentro das letras
   (efeito "text animation") + o brilho que já existia, juntos.
   Camadas: brilho · véu claro (legibilidade) · textura da casa.
   Um só keyframe de 16.8s = 4 passagens do brilho + ida e volta da foto.
   Linhas pares usam a textura das cortinas e andam ao contrário. ═══ */
.hero-h span,.sec__h i{
  --tex:url("assets/photos/tex/text-a.webp");
  background:
    linear-gradient(110deg,transparent 0 40%,rgba(255,255,255,.95) 50%,transparent 60% 100%) 150% 0/250% 100% repeat-x,
    linear-gradient(rgba(247,243,240,.42),rgba(247,243,240,.42)),
    var(--tex) 0 50%/600px auto repeat;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  animation:texShine 16.8s linear infinite;animation-play-state:paused}
.hero-h span:nth-child(even),.sec__h span:nth-child(even) i{--tex:url("assets/photos/tex/text-b.webp");animation-name:texShineRev}
.hero-h span{display:block}
@keyframes texShine{
  0%{background-position:150% 0,0 0,0 50%}24.99%{background-position:-50% 0,0 0,100px 50%}
  25%{background-position:150% 0,0 0,100px 50%}49.99%{background-position:-50% 0,0 0,200px 50%}
  50%{background-position:150% 0,0 0,200px 50%}74.99%{background-position:-50% 0,0 0,100px 50%}
  75%{background-position:150% 0,0 0,100px 50%}100%{background-position:-50% 0,0 0,0 50%}}
@keyframes texShineRev{
  0%{background-position:150% 0,0 0,0 50%}24.99%{background-position:-50% 0,0 0,-100px 50%}
  25%{background-position:150% 0,0 0,-100px 50%}49.99%{background-position:-50% 0,0 0,-200px 50%}
  50%{background-position:150% 0,0 0,-200px 50%}74.99%{background-position:-50% 0,0 0,-100px 50%}
  75%{background-position:150% 0,0 0,-100px 50%}100%{background-position:-50% 0,0 0,0 50%}}
.vis :where(.hero-h span,.sec__h i),.modal[open] .sec__h i{animation-play-state:running}
@media (prefers-reduced-motion:reduce){.hero-h span,.sec__h i{animation:none}}
/* subtítulo do hero em vermelho néon (com o brilho rosa-claro por cima) */
.hero-sub{--sb:#FF3048 !important;--sh:#ffd3d9 !important;filter:drop-shadow(0 0 10px rgba(255,48,72,.45))}

/* ═══ FAIXA DOS PAÍSES na junção Soul → Cocktail: pequena, sobreposta,
   letras com a textura da casa + brilho (como os títulos) ═══════════ */
.wband{margin:-3.2rem 0 -3.2rem;padding:0;height:6.4rem;display:flex;align-items:center;z-index:5;
  background:linear-gradient(180deg,rgba(8,6,7,0),rgba(8,6,7,.82) 38%,rgba(8,6,7,.82) 62%,rgba(8,6,7,0))}
.wband__clip{width:100%}
.wband span{font:400 clamp(1.05rem,1.7vw,1.5rem)/1 var(--serif);letter-spacing:.16em;
  background:
    linear-gradient(110deg,transparent 0 40%,rgba(255,255,255,.95) 50%,transparent 60% 100%) 150% 0/250% 100% repeat-x,
    linear-gradient(rgba(247,243,240,.38),rgba(247,243,240,.38)),
    url("assets/photos/tex/text-b.webp") 0 50%/420px auto repeat;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  animation:texShine 16.8s linear infinite}
.wband span:nth-of-type(even){background-image:
    linear-gradient(110deg,transparent 0 40%,rgba(255,255,255,.95) 50%,transparent 60% 100%),
    linear-gradient(rgba(247,243,240,.38),rgba(247,243,240,.38)),url("assets/photos/tex/text-a.webp");
  animation-name:texShineRev}
.wband i{width:5px;height:5px;margin:0 clamp(1.2rem,2.4vw,2rem)}
.wband__t{animation-duration:60s}
#soul{padding-bottom:clamp(7rem,15vh,9rem)}
@media (prefers-reduced-motion:reduce){.wband span{animation:none}}

/* ═══ INSIDE — scroll a fluir: fundido contínuo, zona presa mais curta ═══ */
.ins{height:calc(100vh + 5 * 50vh)}
.ins__d{clip-path:none !important;transition:none;opacity:0}
.ins__d[data-k="0"]{opacity:1}
.ins__d img{filter:brightness(.74) contrast(1.05) saturate(1.05);
  transform:scale(var(--z,1)) translate3d(0,calc(var(--lp,0) * -3%),0) scale(1.08)}
.ins__stage::after{background:radial-gradient(ellipse 48% 52% at 50% 50%,rgba(8,6,7,.62),rgba(8,6,7,.22) 62%,rgba(8,6,7,0) 100%),
  linear-gradient(180deg,rgba(8,6,7,.55),transparent 22%,transparent 78%,rgba(8,6,7,.6))}
.ins__cap{opacity:0}.ins__cap.on{opacity:1}
@media (max-width:760px){.ins{height:calc(100svh + 5 * 42svh)}}
.ins__caps{min-height:7.6rem}
@media (max-width:760px){.ins__caps{min-height:8.4rem}}

/* faixa dos países na junção Hero → Soul, tamanho maior */
.wband{margin:-5.5rem 0 -4rem;height:9.5rem;
  background:linear-gradient(180deg,rgba(8,6,7,0),rgba(8,6,7,.9) 40%,rgba(8,6,7,.9) 60%,rgba(8,6,7,0))}
.wband span{font-size:clamp(1.7rem,3vw,2.7rem);letter-spacing:.1em;font-weight:300;
  background-size:250% 100%,auto,620px auto}
.wband i{width:7px;height:7px;margin:0 clamp(1.6rem,3vw,2.8rem)}
@media (max-width:760px){.wband{height:7.5rem;margin:-4rem 0 -3rem}}

/* ═══ DESEMPENHO DO SCROLL ═══════════════════════════════════════════ */
/* Inside: sem filtro nem máscara nas fotos (escurecimento vai na camada por cima) */
.ins__dom{-webkit-mask:none;mask:none}
.ins__d{will-change:opacity}
.ins__d img{filter:none;will-change:transform}
.ins__stage::before{content:"";position:absolute;inset:0;z-index:6;pointer-events:none;
  background:linear-gradient(180deg,var(--sc-canvas) 0,rgba(8,6,7,.25) 14%,rgba(8,6,7,.25) 86%,var(--sc-canvas) 100%)}
.ins{height:calc(100vh + 5 * 40vh)}
@media (max-width:760px){.ins{height:calc(100svh + 5 * 34svh)}}
/* enquanto se faz scroll, os brilhos das letras param (não repinta texto a cada frame) */
/* grão: rasterizado uma vez numa camada própria */
.grain{will-change:transform;transform:translateZ(0)}

/* ═══ PRIVATE EVENTS — caixa ao centro, pouco texto ═══════════════════ */
.ev__in{display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(1.6rem,4vh,2.4rem)}
.ev__in .sec__copy{max-width:36rem}
.ev__in .sec__h{font-size:clamp(2.2rem,4.4vw,3.6rem)}
.ev__in .sec__h span{display:inline}
.ev__in .sec__h span+span::before{content:" "}
.ev__in .sec__p{margin-left:auto;margin-right:auto}
.ev__in .evc{width:min(560px,100%);height:min(500px,64vh);text-align:left}
@media (max-width:760px){.ev__in .evc{height:min(500px,70svh)}}

/* ═══ PRIVATE EVENTS — versão premium, centrada e limpa ═══════════════ */
.sec--events{min-height:min(100vh,980px);display:flex;align-items:center;
  background:radial-gradient(ellipse 46% 40% at 50% 72%,rgba(150,16,34,.22),transparent 70%)}
.ev__in{gap:clamp(1.8rem,4.5vh,2.8rem)}
.ev__in .kick{display:inline-flex;align-items:center;gap:1rem}
.ev__in .kick::before,.ev__in .kick::after{content:"";width:2.4rem;height:1px;background:linear-gradient(90deg,transparent,#FF3048)}
.ev__in .kick::after{transform:scaleX(-1)}
.ev__in .sec__h{font-size:clamp(2rem,3.7vw,3.2rem);letter-spacing:.05em;line-height:1.08;margin-top:.9rem}
.ev__in .sec__p{margin-top:.9rem;font-size:.95rem;letter-spacing:.02em;color:rgba(201,184,181,.85)}
.ev__in .evc{width:min(600px,100%);height:min(460px,60vh);border-radius:28px;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012) 40%,rgba(255,255,255,.02)),
    linear-gradient(170deg,rgba(38,10,16,.7),rgba(10,6,8,.85));
  -webkit-backdrop-filter:blur(14px) saturate(130%);backdrop-filter:blur(14px) saturate(130%);
  border:1px solid rgba(255,255,255,.075);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 1px 0 rgba(255,48,72,.12),
    0 40px 100px -20px rgba(0,0,0,.75),0 0 80px -10px rgba(181,18,39,.22)}
.ev__in .evc__log{padding:1.6rem 1.6rem .8rem}
.ev__in .evm__b{font-size:.95rem}
.ev__in .evc__ctl{justify-content:center;padding:.2rem 1.4rem 1rem}
.ev__in .evc__ctl button{padding:.72em 1.2em;background:rgba(255,255,255,.035);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.ev__in .aci{margin:0 1rem 1rem;background:rgba(0,0,0,.28);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
@media (max-width:760px){.ev__in .evc{height:min(480px,66svh)}.ev__in .kick::before,.ev__in .kick::after{width:1.4rem}}

/* ═══ INSIDE — sem scroll preso: secção normal, fotos em fundido automático ═══ */
.ins{height:auto}
.ins__stage{position:relative;top:auto;height:100vh;min-height:620px}
@media (max-width:760px){.ins{height:auto}.ins__stage{height:100svh;min-height:560px}}
.ins__d{opacity:0 !important;visibility:visible !important;transition:opacity 1.4s ease}
.ins__d.cur{opacity:1 !important}
.ins__d img{transform:scale(1.04);transition:transform 6s ease-out}
.ins__d.cur img{transform:scale(1.12)}
.ins__s{clip-path:inset(100% 0 0 0)}
.ins__s.shown{clip-path:inset(0)}
.ins__sec{transform:none}
@media (prefers-reduced-motion:reduce){.ins__d img,.ins__d.cur img{transform:none}}
/* faixa dos países também no fundo da secção Inside, por cima da foto */
.wband--ins{position:absolute;left:0;right:0;bottom:0;z-index:8;margin:0;height:7.5rem;
  background:linear-gradient(180deg,rgba(8,6,7,0),rgba(8,6,7,.85) 55%,rgba(8,6,7,.95))}
.wband--ins .wband__t{animation-duration:70s;animation-direction:reverse}
.ins__sec{bottom:calc(7.5rem + 2vh)}
@media (max-width:760px){.wband--ins{height:6rem}.ins__sec{bottom:calc(6rem + 1vh)}}

/* ═══ GALERIA — cartões ao estilo Apple ═══════════════════════════════ */
.ac{inset:0;margin:0;padding:0;overflow:hidden;background:transparent}
.ac::backdrop{background:radial-gradient(ellipse 70% 60% at 50% 40%,rgba(60,8,18,.6),rgba(8,6,7,.96) 70%),#080607;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.ac[open]{display:flex;flex-direction:column;justify-content:center;animation:pop .5s cubic-bezier(.2,.8,.2,1)}
.ac__head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;padding:0 var(--gut);max-width:1320px;width:100%;
  margin:0 auto 1.6rem;box-sizing:border-box}
.ac__h{margin:.6rem 0 0;font:300 clamp(1.8rem,3.4vw,2.8rem)/1.05 var(--serif);text-transform:uppercase;color:#F7F3F0}
.ac__rail{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--gut);
  padding:.5rem var(--gut) 1.2rem;scrollbar-width:none;overscroll-behavior-x:contain}
.ac__rail::-webkit-scrollbar{display:none}
.ac__rail::after{content:"";flex:0 0 1px}
.acard{all:unset;position:relative;flex:none;width:clamp(230px,22vw,320px);aspect-ratio:3/4.6;border-radius:26px;overflow:hidden;
  cursor:pointer;scroll-snap-align:start;background:#16090C;box-shadow:0 20px 50px rgba(0,0,0,.5);
  transition:transform .45s cubic-bezier(.2,.7,.3,1),box-shadow .45s}
.acard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.acard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,6,7,.75) 0%,rgba(8,6,7,0) 38%,rgba(8,6,7,0) 70%,rgba(8,6,7,.55))}
.acard:hover{transform:translateY(-6px);box-shadow:0 30px 70px rgba(0,0,0,.6),0 0 0 1px rgba(255,48,72,.35)}
.acard:hover img{transform:scale(1.05)}
.acard:focus-visible{outline:2px solid #ff7a88;outline-offset:4px}
.acard__k,.acard__t{position:absolute;left:1.3rem;right:1.3rem;z-index:2}
.acard__k{top:1.3rem;font:500 .62rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#ff8b98}
.acard__t{top:2.6rem;font:400 clamp(1.25rem,1.6vw,1.55rem)/1.15 var(--serif);color:#fff;text-wrap:balance}
.ac__nav{display:flex;justify-content:flex-end;gap:.6rem;max-width:1320px;width:100%;margin:0 auto;padding:0 var(--gut);box-sizing:border-box}
.ac__nav .orb,.ac__head .orb{width:42px;height:42px}
.ac__open{position:fixed;inset:0;z-index:5;display:grid;place-items:center;padding:clamp(.8rem,3vw,2.5rem);
  background:rgba(8,6,7,.7);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);overflow-y:auto}
.ac__open[hidden]{display:none}
.ac__sheet{position:relative;width:min(900px,100%);border-radius:28px;padding:clamp(1.4rem,4vw,3rem);
  background:linear-gradient(170deg,#1c0a0f,#0d0708);box-shadow:0 40px 120px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.06)}
.ac__x{position:absolute;top:1rem;right:1rem;width:40px;height:40px}
.ac__t{margin:.7rem 0 1.4rem;font:300 clamp(1.8rem,4vw,3rem)/1.05 var(--serif);color:#F7F3F0;max-width:20ch}
.ac__img{border-radius:20px;overflow:hidden;aspect-ratio:16/10;background:#16090C}
.ac__img img{width:100%;height:100%;object-fit:cover;display:block}
.ac__d{margin:1.4rem 0 0;font:300 clamp(.98rem,1.4vw,1.15rem)/1.7 var(--sans);color:var(--sc-ink-soft);max-width:60ch}
.ac__step{display:flex;align-items:center;justify-content:flex-end;gap:.8rem;margin-top:1.4rem;
  font:400 .72rem/1 var(--sans);letter-spacing:.2em;color:var(--sc-ink-soft)}
.ac__step .orb{width:40px;height:40px}
@media (max-width:760px){.acard{width:72vw}.ac__img{aspect-ratio:4/3}}
.ac .orb{position:relative;top:auto;left:auto;right:auto;translate:none;flex:none}
.ac .ac__x{position:absolute;top:1rem;right:1rem}

/* ═══ MENU — mais néon + "interactive hover button" ════════════════════ */
.lmenu__box{box-shadow:0 0 0 1px rgba(255,90,110,.75),0 0 14px rgba(255,48,72,.7),0 0 34px rgba(255,48,72,.45),
  0 0 70px rgba(181,18,39,.35),0 12px 30px rgba(0,0,0,.45);animation:menuHum 4s ease-in-out infinite}
@keyframes menuHum{0%,100%{box-shadow:0 0 0 1px rgba(255,90,110,.75),0 0 14px rgba(255,48,72,.7),0 0 34px rgba(255,48,72,.45),0 0 70px rgba(181,18,39,.35),0 12px 30px rgba(0,0,0,.45)}
  50%{box-shadow:0 0 0 1px rgba(255,120,135,.9),0 0 18px rgba(255,48,72,.85),0 0 44px rgba(255,48,72,.55),0 0 90px rgba(181,18,39,.45),0 12px 30px rgba(0,0,0,.45)}}
.lmenu__bg{background:linear-gradient(150deg,#e0263f,#9b1024 60%,#6e0b1a)}
.lmenu__lbl{text-shadow:0 0 10px rgba(255,255,255,.55)}
.lmenu__bar{overflow:hidden}
/* o ponto que cresce e enche o botão */
.lmenu__dot{position:absolute;left:20px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;z-index:-1;
  background:#fff;box-shadow:0 0 8px #fff,0 0 16px #FF3048;transition:transform .5s cubic-bezier(.2,.8,.2,1),background .3s,box-shadow .3s}
.lmenu__lbl{display:inline-block;padding-left:12px;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s}
.lmenu__lbl2{position:absolute;left:0;right:46px;top:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:.5rem;
  font:400 .78rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#6e0b1a;
  transform:translateX(30px);opacity:0;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s}
.lmenu__lbl2 svg{width:15px;height:15px}
.lmenu__ham{position:relative;z-index:1}
body:not(.nav-open) .lmenu__bar:hover .lmenu__dot,body:not(.nav-open) .lmenu__bar:focus-visible .lmenu__dot{transform:scale(40);background:#ffe9ec;box-shadow:none}
body:not(.nav-open) .lmenu__bar:hover .lmenu__lbl,body:not(.nav-open) .lmenu__bar:focus-visible .lmenu__lbl{transform:translateX(48px);opacity:0}
body:not(.nav-open) .lmenu__bar:hover .lmenu__lbl2,body:not(.nav-open) .lmenu__bar:focus-visible .lmenu__lbl2{transform:none;opacity:1}
body:not(.nav-open) .lmenu__bar:hover .lmenu__ham i,body:not(.nav-open) .lmenu__bar:focus-visible .lmenu__ham i{background:#6e0b1a}
.lmenu__bar{isolation:isolate}
.nav-open .lmenu__dot,.nav-open .lmenu__lbl2{opacity:0}
.nav-open .lmenu__box{animation:none}
@media (prefers-reduced-motion:reduce){.lmenu__box{animation:none}}

/* ═══ CONCIERGE — salta e pergunta ══════════════════════════════════════ */
.bot__fab.jump{animation:botJump .9s cubic-bezier(.3,.7,.4,1)}
@keyframes botJump{0%{translate:0 0;scale:1}22%{translate:0 -18px;scale:1.04 .96}40%{translate:0 0;scale:1.08 .92}
  55%{translate:0 -8px;scale:.98 1.02}70%{translate:0 0;scale:1.03 .97}100%{translate:0 0;scale:1}}
.bot__bubble{cursor:pointer;transition:opacity .35s,translate .5s cubic-bezier(.2,.8,.2,1),scale .5s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.bot__bubble:hover{box-shadow:0 0 22px rgba(255,48,72,.55),0 14px 30px rgba(0,0,0,.5)}
.bot__bubble::after{content:"";position:absolute;right:-7px;bottom:16px;width:12px;height:12px;rotate:45deg;
  background:#1d0a0e;border-right:1px solid rgba(255,48,72,.65);border-top:1px solid rgba(255,48,72,.65)}
.bot__badge{animation:badgePop 2.4s ease-in-out infinite}
@keyframes badgePop{0%,100%{scale:1}50%{scale:1.15}}
@media (prefers-reduced-motion:reduce){.bot__fab.jump,.bot__badge{animation:none}}

/* ═══ "MAJONG" DO TOPO — dourado 3D (camadas com a forma do wordmark) ═══ */
.chrome__mark{display:block;line-height:0;margin-top:.55rem}
.g3d{display:block;width:clamp(96px,8.4vw,128px);aspect-ratio:900/137;perspective:400px;
  opacity:0;transition:opacity .5s}
.scrolled .g3d{opacity:1}
.g3d__tilt{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;
  transform:rotateX(calc(var(--ly,0) * -14deg)) rotateY(calc(var(--lx,0) * 18deg));transition:transform .8s cubic-bezier(.2,.7,.3,1);
  animation:g3dFloat 7s ease-in-out infinite}
@keyframes g3dFloat{0%,100%{rotate:y -6deg}50%{rotate:y 6deg}}
.g3d__l,.g3d__face,.g3d__sheen{position:absolute;inset:0;
  -webkit-mask:url(assets/brand/wordmark.webp) center/100% 100% no-repeat;mask:url(assets/brand/wordmark.webp) center/100% 100% no-repeat}
.g3d__l{transform:translateZ(calc(var(--z) * .6px)) translateY(calc(var(--z) * -.25px));
  background:color-mix(in srgb,#9a6b26 calc((var(--z) + 8) * 12%),#2a1606)}
.g3d__face{transform:translateZ(.6px);
  background:linear-gradient(180deg,#fff4cf 0%,#f1d48a 28%,#c99a45 52%,#8f6222 70%,#e9c97a 88%,#fbe6a8 100%);
  filter:drop-shadow(0 0 6px rgba(240,200,120,.35))}
.g3d__sheen{transform:translateZ(.9px);
  background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.95) 49%,rgba(255,236,190,.6) 53%,transparent 60%) 0 0/300% 100% no-repeat;
  animation:sheen 5.5s cubic-bezier(.4,0,.2,1) 1s infinite}
@media (max-width:760px){.g3d{width:92px}}
@media (prefers-reduced-motion:reduce){.g3d__tilt,.g3d__sheen{animation:none}}
@media (max-width:760px){
  .lmenu,.lmenu__box{width:108px;height:44px}
  .lmenu__bar{height:44px;padding:0 14px 0 14px}
  .lmenu__lbl{letter-spacing:.18em;font-size:.7rem;padding-left:8px}
  .lmenu__dot{left:13px}
  .g3d{width:84px}
}
@media (max-width:360px){.g3d{width:68px}.lmenu,.lmenu__box{width:98px}.lmenu__lbl{letter-spacing:.12em}.chrome .lang{font-size:.6rem}}

/* ═══ PRIVATE EVENTS — "border beam": luz que percorre a borda da caixa ═══ */
@property --beam{syntax:"<angle>";inherits:false;initial-value:0deg}
.ev__in .evc{position:relative;overflow:visible;height:min(420px,56vh);
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02) 45%,rgba(255,255,255,.03)),
    linear-gradient(170deg,rgba(58,14,24,.78),rgba(18,8,11,.9));
  border:1px solid rgba(255,190,150,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.4),
    0 40px 100px -20px rgba(0,0,0,.8),0 0 120px -20px rgba(214,40,60,.35)}
.ev__in .evc::before,.ev__in .evc::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;
  padding:2px;
  background:conic-gradient(from var(--beam),transparent 0 72%,#ffcf7a 82%,#FF3048 90%,transparent 96%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:beam 7s linear infinite}
.ev__in .evc::after{filter:blur(10px);opacity:.75;padding:3px}
@keyframes beam{to{--beam:360deg}}
.ev__in .evc>*{position:relative;z-index:1}
.ev__in .evc__log{border-radius:28px 28px 0 0;overflow-y:auto}
.ev__in .evm--a .evm__b{background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.ev__in .evc__ctl button{background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,200,170,.22)}
.ev__in .evc__ctl button:hover{background:rgba(181,18,39,.45);box-shadow:inset 0 0 0 1px rgba(255,48,72,.7),0 0 14px rgba(255,48,72,.35)}
.ev__in .aci{background:rgba(0,0,0,.35);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.ev__in .aci__send:not(:disabled){box-shadow:0 0 14px rgba(255,48,72,.6)}
@media (prefers-reduced-motion:reduce){.ev__in .evc::before,.ev__in .evc::after{animation:none}}

/* ═════════════════════════════════════════════════════════════════════
   INSIDE MAJONG — GALERIA EDITORIAL (tudo limitado a #inside / .edg)
   Fundo preto limpo, composição assimétrica, sequência ao scroll.
   ═════════════════════════════════════════════════════════════════════ */
#inside.edg{position:relative;height:340vh;margin:0;padding:0;background:#080607;isolation:isolate}
#inside.edg::before,#inside.edg::after{content:"";position:absolute;left:0;right:0;height:30vh;z-index:3;pointer-events:none}
#inside.edg::before{top:-30vh;background:linear-gradient(180deg,rgba(8,6,7,0),#080607)}
#inside .edg__stage{position:sticky;top:0;height:100vh;overflow:hidden}
#inside .edg__stage::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22vh;z-index:6;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,6,7,0),#080607)}
#inside .edg__f{all:unset;position:absolute;display:block;overflow:hidden;cursor:zoom-in;border-radius:6px;
  box-shadow:0 30px 80px rgba(0,0,0,.65);will-change:transform,opacity,clip-path}
#inside .edg__f img{width:100%;height:100%;object-fit:cover;display:block;transition:scale .9s cubic-bezier(.2,.7,.3,1)}
#inside .edg__f:hover img{scale:1.04}
#inside .edg__f:focus-visible{outline:2px solid #ff6b7a;outline-offset:4px}
#inside .edg--a{right:3vw;top:11vh;width:60vw;height:72vh;z-index:3}
#inside .edg--b{left:31vw;top:50vh;width:14vw;aspect-ratio:3/4;z-index:4}
#inside .edg--c{left:8vw;top:14vh;width:52vw;height:66vh;z-index:2;clip-path:inset(0 100% 0 0)}
#inside .edg--d{right:9vw;top:12vh;width:32vw;height:74vh;z-index:4;clip-path:circle(0% at 50% 45%)}
#inside .edg--d img{object-position:50% 20%}
#inside .edg--f{left:9vw;bottom:9vh;width:12vw;aspect-ratio:3/4;z-index:5;opacity:0}
#inside .edg--e{inset:0;border-radius:0;z-index:5;opacity:0;box-shadow:none}
#inside .edg--e img{filter:brightness(.78)}
#inside .edg__head{position:absolute;z-index:7;left:6vw;top:50%;margin-top:-6.5rem;width:27vw}
#inside .edg__k{margin:0;font:400 .64rem/1 var(--sans);letter-spacing:.36em;text-transform:uppercase;color:#C9B8B5}
#inside .edg__h{margin:1.2rem 0 0;font:300 clamp(2.6rem,4.6vw,4.4rem)/1 var(--serif);text-transform:uppercase;color:#F7F3F0;letter-spacing:.01em}
#inside .edg__h span{display:inline-block;opacity:0}
#inside .edg__caps{position:absolute;z-index:7;left:6vw;bottom:7vh;margin:0;padding:0;list-style:none}
#inside .edg__caps li{position:absolute;left:0;bottom:0;white-space:nowrap;font:400 .62rem/1 var(--sans);letter-spacing:.32em;
  text-transform:uppercase;color:#C9B8B5;opacity:0;transform:translateY(8px);transition:opacity .5s,transform .6s}
#inside .edg__caps li.on{opacity:1;transform:none}
#inside .edg__end{position:absolute;z-index:8;left:50%;bottom:16vh;translate:-50% 0;text-align:center;opacity:0;pointer-events:none}
#inside .edg__line{margin:0 0 1.4rem;font:300 clamp(1.6rem,3vw,2.6rem)/1.1 var(--serif);color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.7)}
#inside .edg__ctl{position:absolute;z-index:8;right:3vw;bottom:6vh;display:flex;align-items:center;gap:.8rem}
#inside .edg__nav{all:unset;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#F7F3F0;
  background:linear-gradient(150deg,rgba(255,255,255,.1),rgba(255,255,255,.02));
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);
  transition:box-shadow .3s,color .3s}
#inside .edg__nav:hover,#inside .edg__nav:focus-visible{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,48,72,.8),0 0 16px rgba(255,48,72,.5)}
#inside .edg__nav:focus-visible{outline:2px solid #ff6b7a;outline-offset:3px}
#inside .edg__nav svg{width:16px;height:16px}
#inside .edg__bar{width:90px;height:1px;background:rgba(255,255,255,.14);overflow:hidden}
#inside .edg__bar i{display:block;height:100%;background:#FF3048;box-shadow:0 0 8px #FF3048;transform-origin:left;transform:scaleX(0)}

/* ── telemóvel / movimento reduzido: sequência vertical, sem pin ── */
#inside.edg--flat{height:auto;padding:clamp(5rem,12vh,7rem) var(--gut) 4rem}
#inside.edg--flat .edg__stage{position:static;height:auto;overflow:visible;display:flex;flex-direction:column;gap:1.2rem}
#inside.edg--flat .edg__stage::after{display:none}
#inside.edg--flat .edg__f,#inside.edg--flat .edg__head,#inside.edg--flat .edg__end{position:relative;inset:auto;left:auto;right:auto;top:auto;bottom:auto;
  width:auto;height:auto;margin:0;translate:none;opacity:0;transform:translateY(30px);clip-path:none !important;
  transition:opacity .9s ease,transform 1s cubic-bezier(.2,.7,.3,1)}
#inside.edg--flat .in{opacity:1 !important;transform:none !important}
#inside.edg--flat .edg__head{order:0;margin-bottom:1rem}
#inside.edg--flat .edg__h span{opacity:1}
#inside.edg--flat .edg--a{order:1;aspect-ratio:4/3}
#inside.edg--flat .edg--b{order:2;width:58%;align-self:flex-end;aspect-ratio:3/4;margin-top:-18%}
#inside.edg--flat .edg--c{order:3;aspect-ratio:16/11}
#inside.edg--flat .edg--d{order:4;width:72%;aspect-ratio:4/5}
#inside.edg--flat .edg--f{order:5;width:46%;align-self:flex-end;aspect-ratio:3/4;margin-top:-30%}
#inside.edg--flat .edg--e{order:6;aspect-ratio:4/5}
#inside.edg--flat .edg__end{order:7;text-align:center;pointer-events:auto;margin-top:1rem}
#inside.edg--flat .edg__caps,#inside.edg--flat .edg__ctl{display:none}
#inside.edg--flat .edg__f img{transform:none !important}
/* desempenho: sombra fixa numa camada própria, sem repintar a cada frame */
#inside .edg__f{box-shadow:none;will-change:transform,opacity}
#inside .edg--a,#inside .edg--b,#inside .edg--f{box-shadow:0 30px 80px rgba(0,0,0,.6)}
#inside .edg__f img{will-change:transform;backface-visibility:hidden}
#inside .edg--e img{filter:none}
#inside .edg--e::after{content:"";position:absolute;inset:0;background:rgba(8,6,7,.22);pointer-events:none}

/* ═══ INSIDE MAJONG — foto dos convidados ═════════════════════════════ */
.gsec{position:relative;isolation:isolate;overflow:hidden;min-height:min(100vh,920px);display:flex;align-items:center;
  background:#080607}
.gsec__bg{position:absolute;inset:-5%;z-index:-3}
.gsec__bg img{width:100%;height:100%;object-fit:cover;display:block;opacity:.55}
.gsec::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:linear-gradient(90deg,rgba(8,6,7,.92) 0%,rgba(8,6,7,.7) 40%,rgba(8,6,7,.35) 70%,rgba(8,6,7,.55) 100%),
    linear-gradient(180deg,#080607 0%,rgba(8,6,7,0) 18%,rgba(8,6,7,0) 82%,#080607 100%)}
.gsec__ph{position:absolute;z-index:-1;margin:0;right:7vw;top:50%;translate:0 -50%;height:min(84vh,780px);aspect-ratio:620/816;
  -webkit-mask:radial-gradient(ellipse 72% 70% at 50% 46%,#000 55%,transparent 100%);mask:radial-gradient(ellipse 72% 70% at 50% 46%,#000 55%,transparent 100%)}
.gsec__ph img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.82) contrast(1.05)}
.gsec__copy{position:relative;margin-left:max(var(--gut),calc((100vw - 1320px) / 2 + var(--gut)));max-width:30rem}
@media (max-width:760px){
  .gsec{min-height:100svh;align-items:flex-end;padding-bottom:12svh}
  .gsec__bg{display:none}
  .gsec__ph{inset:0;translate:none;height:auto;right:auto;top:auto;-webkit-mask:none;mask:none}
  .gsec__ph img{filter:brightness(.6)}
  .gsec::before{background:linear-gradient(180deg,#080607 0%,rgba(8,6,7,.1) 22%,rgba(8,6,7,.25) 50%,rgba(8,6,7,.95) 82%,#080607 100%)}
  .gsec__copy{margin:0 var(--gut)}
}

/* ═══ BOTÕES — mais luminosos sobre o fundo escuro ═════════════════════ */
.btn{background:conic-gradient(from var(--r),#d11a33,#FF3048 16%,#ffd3d9 22%,#FF3048 28%,#8e1024 46%,#d11a33 100%);
  box-shadow:0 0 0 1px rgba(255,80,100,.25),0 0 18px rgba(255,48,72,.35),0 0 40px rgba(181,18,39,.25),0 10px 26px rgba(0,0,0,.4)}
.btn::after{inset:1.5px;background:
  linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.03) 50%,rgba(255,255,255,0)),
  linear-gradient(135deg,#6a1424 0%,#3d0c16 55%,#2a0910 100%)}
.btn>span{color:#fff;text-shadow:0 0 12px rgba(255,120,140,.5)}
.btn svg{color:#fff;filter:drop-shadow(0 0 4px rgba(255,120,140,.6))}
.btn:hover,.btn:focus-visible{box-shadow:0 0 0 1px rgba(255,120,140,.5),0 0 26px rgba(255,48,72,.6),0 0 60px rgba(181,18,39,.4),0 14px 32px rgba(0,0,0,.45)}
.btn:hover::after{background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.04) 50%,rgba(255,255,255,0)),
  linear-gradient(135deg,#7d1a2c,#4a0f1b 55%,#300a13)}
.btn>span{--sb:#ffffff !important;--sh:#ffd3d9 !important}
.sec.gsec{padding:0;margin-top:0}
@media (max-width:760px){.sec.gsec{padding-bottom:12svh}}
.gsec__ph{-webkit-mask:linear-gradient(90deg,transparent 0,#000 22%,#000 82%,transparent 100%),linear-gradient(180deg,transparent 0,#000 14%,#000 84%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask:linear-gradient(90deg,transparent 0,#000 22%,#000 82%,transparent 100%),linear-gradient(180deg,transparent 0,#000 14%,#000 84%,transparent 100%);
  mask-composite:intersect}
.gsec__bg img{opacity:.85}
@media (max-width:760px){
  .gsec__ph{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;
    -webkit-mask:linear-gradient(180deg,transparent 0,#000 12%,#000 100%);mask:linear-gradient(180deg,transparent 0,#000 12%,#000 100%)}
  .gsec__ph img{object-position:50% 30%}
}
@media (max-width:760px){
  .gsec::before{background:linear-gradient(180deg,#080607 0%,rgba(8,6,7,.05) 16%,rgba(8,6,7,.15) 38%,rgba(8,6,7,.82) 56%,rgba(8,6,7,.96) 78%,#080607 100%)}
}

/* ═══ MEMBERSHIP — foto do cartão como fundo ═══════════════════════════ */
.sec--member .mb__obj,.sec--member .mb__ghost{display:none}
.sec--member{min-height:min(100vh,960px)}
.sec--member .sec__bg img{filter:brightness(.92) contrast(1.04);object-position:60% 50%}
.sec--member .sec__shade{background:
  linear-gradient(90deg,rgba(8,6,7,.94) 0%,rgba(8,6,7,.78) 26%,rgba(8,6,7,.25) 46%,rgba(8,6,7,0) 62%),
  linear-gradient(180deg,#080607 0%,rgba(8,6,7,0) 16%,rgba(8,6,7,0) 84%,#080607 100%)}
.mb__in{grid-template-columns:1fr !important}
.mb__copy{max-width:30rem}
@media (max-width:760px){
  .sec--member{align-items:flex-end}
  .sec--member .sec__bg img{object-position:50% 40%}
  .sec--member .sec__shade{background:linear-gradient(180deg,#080607 0%,rgba(8,6,7,0) 14%,rgba(8,6,7,.1) 45%,rgba(8,6,7,.85) 66%,#080607 100%) !important}
}
.sec--member .sec__bg{left:26%;right:0;clip-path:none;
  -webkit-mask:linear-gradient(90deg,transparent 0,#000 28%),linear-gradient(180deg,transparent 0,#000 14%,#000 86%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask:linear-gradient(90deg,transparent 0,#000 28%),linear-gradient(180deg,transparent 0,#000 14%,#000 86%,transparent 100%);mask-composite:intersect}
.sec--member .sec__bg img{object-position:50% 50%}
.sec--member .sec__shade{background:linear-gradient(90deg,rgba(8,6,7,.6) 0%,rgba(8,6,7,0) 40%),
  linear-gradient(180deg,#080607 0%,rgba(8,6,7,0) 14%,rgba(8,6,7,0) 86%,#080607 100%)}
@media (max-width:760px){
  .sec--member{min-height:0;display:block;padding:0 0 10svh}
  .sec--member .sec__bg{position:relative;inset:auto;left:0;height:62svh;transform:none !important;
    -webkit-mask:linear-gradient(180deg,transparent 0,#000 10%,#000 70%,transparent 100%);mask:linear-gradient(180deg,transparent 0,#000 10%,#000 70%,transparent 100%)}
  .sec--member .sec__bg img{object-position:50% 72%}
  .sec--member .sec__shade{display:none}
  .sec--member .mb__in{margin-top:-6svh}
}

/* ═══ CURSOR MAGNÉTICO (só rato; nunca no toque nem com movimento reduzido) ═══ */
.mc,.mc__ring{position:fixed;left:0;top:0;z-index:10000;pointer-events:none;border-radius:50%;
  will-change:transform;opacity:0;transition:opacity .3s}
.mc-on .mc,.mc-on .mc__ring{opacity:1}
.mc{width:6px;height:6px;margin:-3px 0 0 -3px;background:#fff;box-shadow:0 0 8px #fff,0 0 14px rgba(255,48,72,.8)}
.mc__ring{width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(247,243,240,.55);
  transition:opacity .3s,width .35s cubic-bezier(.2,.8,.2,1),height .35s cubic-bezier(.2,.8,.2,1),margin .35s cubic-bezier(.2,.8,.2,1),
    border-color .3s,background .3s,box-shadow .3s}
.mc-hot .mc__ring{width:64px;height:64px;margin:-32px 0 0 -32px;border-color:#FF3048;background:rgba(255,48,72,.08);
  box-shadow:0 0 18px rgba(255,48,72,.55),inset 0 0 12px rgba(255,48,72,.3)}
.mc-hot .mc{background:#FF3048}
.mc-down .mc__ring{width:30px;height:30px;margin:-15px 0 0 -15px}
.mc-text .mc,.mc-text .mc__ring{opacity:0}
@media (hover:hover) and (pointer:fine){
  .mc-on,.mc-on a,.mc-on button,.mc-on [role=button],.mc-on summary{cursor:none}
  .mc-on input,.mc-on textarea,.mc-on [contenteditable]{cursor:text}
}
/* deslocamento magnético: usa a propriedade translate, não mexe nos transforms existentes */
[data-mag]{transition:translate .45s cubic-bezier(.2,.8,.2,1)}
[data-mag].mag-live{transition:translate .12s linear}

/* ═══ PARALLAX EM CAMADAS (fora do hero) ═══════════════════════════════ */
.sec__bg{top:-90px;bottom:-90px}
.gsec__bg,.sec__copy,.gsec__copy,.mqs .mq,.map3d,.ev__in .evc,.acc,.wband__clip{translate:0 var(--px,0px)}
.gsec__ph{translate:0 calc(-50% + var(--px,0px))}
@media (max-width:760px){.gsec__ph{translate:0 var(--px,0px)}.sec__bg{top:-50px;bottom:-50px}}
@media (prefers-reduced-motion:reduce){.gsec__bg,.sec__copy,.gsec__copy,.mqs .mq,.map3d,.ev__in .evc,.acc,.wband__clip,.gsec__ph{translate:none}}

/* ═══ FIND MAJONG — caminhada 3D em ecrã inteiro ═══════════════════════ */
.sec--find{display:block;min-height:0;height:280vh;padding:0;margin-top:0;background:#080607}
.walk{position:relative;height:100%}
.walk__stage{position:sticky;top:0;height:100vh;overflow:hidden}
.sec--find .map3d{position:absolute;inset:0;width:auto;height:auto;aspect-ratio:auto;z-index:0;
  perspective:900px;perspective-origin:50% 38%;overflow:hidden;cursor:default;translate:none !important}
.sec--find .map3d__disc{position:absolute;inset:auto;left:50%;top:64%;width:240vmax;height:240vmax;aspect-ratio:1;
  translate:none;transform-origin:0 0;transition:none;will-change:transform}
.sec--find .map3d__disc>img{border-radius:50%}
.sec--find .map3d__disc::before{display:none}
.walk__route{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible;pointer-events:none}
.walk__route path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.walk__glow{stroke:rgba(255,48,72,.35);stroke-width:.9;filter:blur(.25px)}
.walk__line{stroke:#fff;stroke-width:.22}
.sec--find .mk{z-index:2}
.sec--find .mk--pin svg{width:64px;height:86px}
.walk.arrived .mk--pin svg{animation:pinBob 1.2s ease-in-out infinite;filter:drop-shadow(0 0 10px #FF3048) drop-shadow(0 0 30px rgba(255,48,72,.9))}
/* céu/névoa: horizonte escuro para dar profundidade */
.walk__stage::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,#080607 0%,rgba(8,6,7,.85) 18%,rgba(8,6,7,0) 46%,rgba(8,6,7,0) 80%,rgba(8,6,7,.7) 100%)}
.sec--find .sec__shade{z-index:2;background:linear-gradient(90deg,rgba(8,6,7,.88) 0%,rgba(8,6,7,.55) 32%,rgba(8,6,7,0) 58%) !important}
.walk__copy{position:absolute;inset:0;z-index:3;display:flex;align-items:center;pointer-events:none;translate:none !important}
.walk__copy .sec__copy{pointer-events:auto;translate:none !important}
.walk__hud{position:absolute;z-index:4;left:50%;bottom:9vh;translate:-50% 0;text-align:center;opacity:0;pointer-events:none}
.walk__m{display:inline;font:300 clamp(3rem,7vw,5.6rem)/1 var(--serif);color:#fff;text-shadow:0 0 30px rgba(255,48,72,.45)}
.walk__u{margin-left:.6rem;font:400 .7rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#C9B8B5}
.walk__st{display:block;margin-top:.8rem;font:400 .62rem/1 var(--sans);letter-spacing:.36em;text-transform:uppercase;color:#FF3048}
.sec--find .map3d__credit{position:absolute;z-index:4;right:var(--gut);bottom:.8rem}
@media (max-width:760px){
  .sec--find{height:240vh}
  .sec--find .sec__shade{background:linear-gradient(180deg,rgba(8,6,7,.9) 0%,rgba(8,6,7,.75) 45%,rgba(8,6,7,0) 70%) !important}
  .walk__copy{align-items:flex-start;padding-top:12svh}
  .walk__hud{bottom:7svh}
}
@media (prefers-reduced-motion:reduce){.sec--find{height:auto}.walk__stage{position:relative}}
.sec--find .map3d{perspective:2400px;perspective-origin:50% 30%}
.sec--find .map3d__disc{width:200vmax;height:200vmax;top:62%}
@media (max-width:760px){.sec--find .map3d__disc{width:240vmax;height:240vmax}}
.sec.sec--find{overflow:clip}
@media (max-width:760px){.walk__hud{bottom:19svh}}

/* ═══ POEIRA DOURADA (Three.js) — fundo de Private Events ═══════════════ */
.sec--events{position:relative;isolation:isolate}
.gdust{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:0;transition:opacity 1.6s ease;
  -webkit-mask:linear-gradient(180deg,transparent 0,#000 18%,#000 82%,transparent 100%);mask:linear-gradient(180deg,transparent 0,#000 18%,#000 82%,transparent 100%)}
.gdust.on{opacity:1}

/* ═══ TÍTULOS GRANDES — "animated shiny text": gradiente que vai e volta ═══ */
.hero-h span,.sec__h i,.walk__copy .sec__h i{
  background:linear-gradient(90deg,#F7F3F0 0%,#f1d48a 22%,#FF3048 40%,#ffd3d9 50%,#FF3048 60%,#f1d48a 78%,#F7F3F0 100%) 0 0/200% auto;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  animation:shinyTx 3.2s ease-in-out infinite alternate;animation-play-state:paused;
  transition:filter .35s ease}
.hero-h span:nth-child(even),.sec__h span:nth-child(even) i{animation-delay:-1.6s}
@keyframes shinyTx{from{background-position:0 0}to{background-position:100% 0}}
.vis .hero-h span,.vis .sec__h i,.modal[open] .sec__h i{animation-play-state:running}
.hero-h:hover span,.sec__h:hover i{filter:drop-shadow(0 0 8px rgba(255,255,255,.3)) drop-shadow(0 0 18px rgba(255,48,72,.35))}
@media (prefers-reduced-motion:reduce){.hero-h span,.sec__h i{animation:none}}

/* ═══ RODAPÉ — multidão a andar no fundo, bordô sobre bordô ═════════════ */
.foot{position:relative;isolation:isolate;overflow:hidden}
.crowd{position:absolute;left:0;right:0;bottom:0;width:100%;height:78%;z-index:-1;pointer-events:none;opacity:0;transition:opacity 1.4s ease;
  -webkit-mask:linear-gradient(180deg,transparent 0,#000 40%,#000 100%);mask:linear-gradient(180deg,transparent 0,#000 40%,#000 100%)}
.crowd.on{opacity:.85}
.foot__logo,.foot__nav,.foot__row,.foot__legal{position:relative;z-index:1}
.foot__legal{background:linear-gradient(180deg,rgba(6,4,5,0),rgba(6,4,5,.7));padding-bottom:.4rem}
.crowd.on{opacity:.42}
.crowd{filter:brightness(.7) saturate(.9);height:70%}
/* faixa entre Soul e Inside: cobre a passagem entre as duas secções */
#world.wband{margin:-4.8rem 0 -4.8rem;height:9.6rem;z-index:5;
  background:linear-gradient(180deg,rgba(8,6,7,0),rgba(8,6,7,.92) 38%,rgba(8,6,7,.92) 62%,rgba(8,6,7,0))}

/* faixa dos países: maior e sempre a rodar (não pára ao passar o rato nem ao tocar) */
.wband span{font-size:clamp(2.1rem,4vw,3.6rem) !important;letter-spacing:.09em}
.wband i{width:8px;height:8px;margin:0 clamp(1.8rem,3.4vw,3.2rem)}
#world.wband{height:12rem;margin:-6rem 0 -6rem}
.wband__t,.wband:hover .wband__t,.wband:active .wband__t{animation-play-state:running !important}
@media (max-width:760px){.wband span{font-size:clamp(1.7rem,8vw,2.4rem) !important}#world.wband{height:9rem;margin:-4.5rem 0 -4.5rem}}
/* passagem hero → "More than a bar": fundo do hero desaparece no escuro */
#top [data-sc-stage]::after{content:"";position:absolute;left:0;right:0;bottom:0;height:26vh;z-index:7;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,6,7,0),#080607 92%)}
/* topo de "More than a bar" esbatido no escuro (continua o fundo do hero) */
#soul::after{content:"";position:absolute;left:0;right:0;top:0;height:34vh;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,#080607 0%,rgba(8,6,7,.85) 30%,rgba(8,6,7,0) 100%)}

/* ═══ RODAPÉ — logo-joia dourado mais pequeno a rodar; ícones a saltar ═══ */
.foot__logo--jewel{width:clamp(110px,10vw,150px)!important;perspective:700px}
.foot__logo--jewel .logo3d__spin{animation:jewelSpin 9s cubic-bezier(.45,.05,.55,.95) infinite!important}
@keyframes jewelSpin{0%{transform:rotateY(-28deg) rotateX(4deg)}50%{transform:rotateY(28deg) rotateX(-4deg)}100%{transform:rotateY(-28deg) rotateX(4deg)}}
.foot__logo--jewel .logo3d__l{background:color-mix(in srgb,#a87428 calc((var(--z) + 13) * 7%),#2a1606)!important}
.foot__logo--jewel .logo3d__front{filter:sepia(.55) saturate(1.6) hue-rotate(-8deg) brightness(1.12) drop-shadow(0 0 10px rgba(240,190,100,.45)) drop-shadow(0 8px 18px rgba(0,0,0,.6))!important}
.foot__logo--jewel .logo3d__sheen{background:linear-gradient(105deg,transparent 40%,rgba(255,250,230,1) 50%,rgba(255,215,150,.6) 54%,transparent 62%) 0 0/300% 100% no-repeat!important;
  animation:sheen 3.6s cubic-bezier(.4,0,.2,1) .5s infinite!important}
.foot__logo--jewel::after{content:"";position:absolute;inset:18% 10% 0;z-index:-1;border-radius:50%;
  background:radial-gradient(closest-side,rgba(240,190,100,.22),transparent);filter:blur(10px);animation:jewelGlow 4.5s ease-in-out infinite}
@keyframes jewelGlow{0%,100%{opacity:.5}50%{opacity:1}}
.foot__row{margin-top:2.4rem}
/* ícones do rodapé: saltinho em sequência */
.foot .social .orb{animation:footHop 3.6s cubic-bezier(.3,.7,.4,1) infinite!important;animation-delay:calc(var(--h,0) * .18s)!important}
.foot .social .orb:nth-child(1){--h:0}.foot .social .orb:nth-child(2){--h:1}.foot .social .orb:nth-child(3){--h:2}
.foot .social .orb:nth-child(4){--h:3}.foot .social .orb:nth-child(5){--h:4}
@keyframes footHop{0%,22%,100%{translate:0 0}8%{translate:0 -12px}14%{translate:0 0}18%{translate:0 -4px}}
.foot .social .orb:hover{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){.foot__logo--jewel .logo3d__spin,.foot .social .orb,.foot__logo--jewel::after{animation:none!important}}

/* ═══ BOTÃO FLUTUANTE — WhatsApp no mesmo néon vermelho (sem verde) ═══ */
.bot__fab .bot__wa{width:30px;height:30px;color:#fff;
  filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 6px rgba(255,48,72,.95)) drop-shadow(0 0 14px rgba(255,48,72,.6));
  animation:botFloat 3.4s ease-in-out infinite}
.bot__fab::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:1.5px solid rgba(255,48,72,.7);
  animation:waRing 2.4s cubic-bezier(.2,.7,.3,1) infinite;pointer-events:none}
@keyframes waRing{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.5);opacity:0}}
@media (max-width:760px){.bot__fab .bot__wa{width:26px;height:26px}}
@media (prefers-reduced-motion:reduce){.bot__fab::before,.bot__fab .bot__wa{animation:none}}

/* ═══ EFEITO "ELECTRIC GAZE" (dither) na foto dos convidados ═══ */
.gsec__ph{position:absolute}
.gsec__ph .dither{position:absolute;inset:0;width:100%;height:100%;display:block;image-rendering:pixelated;pointer-events:none;opacity:0;transition:opacity 1s ease}
.gsec__ph.dither-on .dither{opacity:1}
.gsec__ph.dither-on img{opacity:0;transition:opacity 1s ease}
@media (max-width:760px){
  .gsec__ph .dither{filter:brightness(.8);
    -webkit-mask:linear-gradient(180deg,#000 0,#000 40%,rgba(0,0,0,.25) 60%,transparent 78%);mask:linear-gradient(180deg,#000 0,#000 40%,rgba(0,0,0,.25) 60%,transparent 78%)}
}

/* ═══ BARRA FIXA NO TELEMÓVEL — reservar + ligar (vermelho, mesmo efeito dos botões) ═══ */
.mbar{display:none}
@media (max-width:760px){
  .mbar{position:fixed;left:0;right:0;bottom:0;z-index:110;display:flex;gap:.6rem;align-items:center;
    padding:.75rem .9rem calc(.75rem + env(safe-area-inset-bottom));
    background:linear-gradient(180deg,rgba(8,6,7,.55),rgba(8,6,7,.94) 40%);
    -webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);
    box-shadow:0 -1px 0 rgba(255,48,72,.18);
    transform:translateY(110%);transition:transform .6s cubic-bezier(.2,.8,.2,1)}
  .entered .mbar,.mbar.on{transform:none}
  .mbar .btn{justify-content:center;padding:1.05em 1.2em;font-size:.72rem;letter-spacing:.2em;min-height:52px;box-sizing:border-box}
  .mbar__main{flex:1}
  .mbar__call{flex:none}
  .mbar svg{width:17px;height:17px}
  /* o botão do WhatsApp e o balão sobem acima da barra */
  .bot{bottom:calc(5.6rem + env(safe-area-inset-bottom))}
  .foot{padding-bottom:calc(6.5rem + env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){.mbar{transition:none}}
@media (max-width:760px){.scrollind{bottom:calc(6.2rem + env(safe-area-inset-bottom))}}

/* ═══ MODO LEVE (aparelhos fracos): sem desfoques de vidro nem brilhos animados no texto ═══ */
.lite *{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.lite .grain{display:none}
.lite .mbar{background:rgba(8,6,7,.96)}


/* ═══ LOGO DO RODAPÉ — um pouco maior ═══ */
.foot__logo--jewel{width:clamp(150px,13vw,190px)!important}

/* ═══ ANIMAÇÕES LEVES PARA TODOS OS APARELHOS ════════════════════════════
   As animações contínuas foram reescritas para usar só transform/opacity
   (o GPU anima-as sem o browser recalcular estilos a cada frame). ═══ */
/* menu: o brilho pulsa numa camada própria (opacidade), não em box-shadow */
.lmenu__box{animation:none!important}
.lmenu::after{content:"";position:absolute;inset:-6px;border-radius:80px;z-index:-1;pointer-events:none;
  box-shadow:0 0 22px rgba(255,48,72,.85),0 0 50px rgba(255,48,72,.5),0 0 90px rgba(181,18,39,.4);
  opacity:.45;animation:glowPulse 4s ease-in-out infinite;will-change:opacity}
.nav-open .lmenu::after{opacity:0;animation:none}
@keyframes glowPulse{0%,100%{opacity:.35}50%{opacity:.9}}
/* anel dos ícones: o gradiente fica parado, o anel roda (transform) */
.orb__ring{background:conic-gradient(from 0deg,transparent 0 52%,rgba(255,48,72,.15) 62%,#FF3048 78%,#fff 82%,rgba(255,48,72,.6) 86%,transparent 92%)!important;
  animation:ringRot 3.6s linear infinite!important;will-change:transform}
.orb:hover .orb__ring,.orb:focus-visible .orb__ring{animation-duration:1.1s!important}
@keyframes ringRot{to{transform:rotate(360deg)}}
/* varrimento de holograma: banda que desliza (transform) */
.orb__scan{-webkit-mask:none!important;mask:none!important;animation:none!important;background:none!important;opacity:1!important}
.orb__scan::before{content:"";position:absolute;left:0;right:0;top:-60%;height:60%;
  background:linear-gradient(180deg,transparent,rgba(255,255,255,.14),transparent);animation:scanMove 2.8s linear infinite;will-change:transform}
@keyframes scanMove{to{transform:translateY(270%)}}
/* botões: a borda que roda é uma camada que gira (transform), não um gradiente animado */
.btn{animation:none!important;overflow:hidden;
  background:#8e1024!important}
.btn::before{content:""!important;display:block!important;position:absolute;left:50%;top:50%;width:300%;aspect-ratio:1;z-index:0;
  margin:0;translate:-50% -50%;filter:none!important;opacity:1!important;border-radius:0;pointer-events:none;
  background:conic-gradient(from 0deg,#d11a33,#FF3048 16%,#ffd3d9 22%,#FF3048 28%,#8e1024 46%,#d11a33 100%)!important;
  animation:btnRot 6s linear infinite;will-change:transform}
.btn:hover::before,.btn:focus-visible::before{animation-duration:2.4s}
.btn--glow::before{animation-duration:3.2s}
@keyframes btnRot{to{transform:rotate(360deg)}}
.btn::after{z-index:1}
.btn>*{z-index:2}
@media (prefers-reduced-motion:reduce){.btn::before,.orb__ring,.orb__scan::before,.lmenu::after{animation:none!important}}
/* faixa dos países: o gradiente+textura vive no contentor (2 elementos a animar em vez de 30) */
.wband span{background:none!important;animation:none!important;-webkit-text-fill-color:transparent;color:transparent}
.wband__t>div{
  background:
    linear-gradient(110deg,transparent 0 40%,rgba(255,255,255,.95) 50%,transparent 60% 100%) 150% 0/60% 100% repeat-x,
    linear-gradient(rgba(247,243,240,.4),rgba(247,243,240,.4)),
    url("assets/photos/tex/text-b.webp") 0 50%/620px auto repeat;
  -webkit-background-clip:text;background-clip:text;
  animation:bandShine 5s linear infinite}
@keyframes bandShine{from{background-position:150% 0,0 0,0 50%}to{background-position:-50% 0,0 0,300px 50%}}
@media (prefers-reduced-motion:reduce){.wband__t>div{animation:none}}

/* ═══ AVALIAÇÕES → FAQ: preto contínuo com a galeria; no fim clareia para o bordô do FAQ ═══ */
.sec--reviews{background:linear-gradient(180deg,rgba(8,6,7,0) 0,#080607 9vh,#080607 62%,#0f0608 80%,#13070a 100%)!important}
.sec--faq{background:
    radial-gradient(ellipse 55% 60% at 18% 30%,rgba(120,12,28,.42),transparent 70%),
    radial-gradient(ellipse 50% 55% at 88% 75%,rgba(181,18,39,.18),transparent 70%),
    linear-gradient(180deg,#13070a 0%,#13070a 84%,var(--sc-canvas) 100%)!important}
.sec--faq::after,.sec--reviews::after{display:none!important}
.sec.gsec{background:#080607}
.sec--faq::before{-webkit-mask:linear-gradient(180deg,transparent 0,#000 22%);mask:linear-gradient(180deg,transparent 0,#000 22%)}
.sec--faq{background:
    radial-gradient(ellipse 55% 60% at 18% 42%,rgba(120,12,28,.42),transparent 70%),
    radial-gradient(ellipse 50% 55% at 88% 75%,rgba(181,18,39,.18),transparent 70%),
    linear-gradient(180deg,#13070a 0%,#13070a 84%,var(--sc-canvas) 100%)!important}

/* ═══ FAQ com o mesmo fundo preto das avaliações (sem linha de divisão) ═══ */
.sec--reviews{background:linear-gradient(180deg,rgba(8,6,7,0) 0,#080607 9vh,#080607 100%)!important}
.sec--faq{background:#080607!important}
.sec--faq::before{display:none!important}
/* hero: canvas da sequência ocupa o palco como o vídeo ocupava */
#top [data-sc-stage]>canvas[data-sc-sequence]{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1}

/* ═══ TELEMÓVEL — botões sem sobreposição ═══════════════════════════════
   ícones sociais: coluna na lateral direita, a meio do ecrã
   indicador de scroll: centro, acima da barra
   botão WhatsApp flutuante: canto direito, acima da barra ═══ */
@media (max-width:760px){
  .hero-r{top:38%!important;bottom:auto!important;right:calc(var(--gut) - 2px)!important;left:auto!important;
    translate:0 -50%;padding:0!important;border:0!important;gap:0!important}
  .hero-r .social{flex-direction:column!important;gap:.7rem!important}
  .hero-r .orb{width:42px!important;height:42px!important}
  .hero-l{max-width:calc(100vw - 2 * var(--gut) - 56px)!important}
  .scrollind{left:50%!important;right:auto!important;bottom:calc(6.4rem + env(safe-area-inset-bottom))!important;width:44px;height:44px}
  .bot{right:calc(var(--gut) - 4px)!important;bottom:calc(6.4rem + env(safe-area-inset-bottom))!important}
  .bot__fab{width:52px!important;height:52px!important}
  .bot__bubble{right:64px;bottom:2px;max-width:min(210px,56vw)}
  .mbar{padding:.6rem var(--gut) calc(.6rem + env(safe-area-inset-bottom))}
}
/* mapa: ícones de contacto clicáveis */
.info a.orb{cursor:pointer}
.info a.orb:hover{transform:scale(1.07)}
/* iPhone SE: logo do hero mais pequeno para não tocar no menu */
@media (max-width:360px){.hero-logo{width:84px!important}}
@media (max-width:760px){
  .sec--find .map3d__disc{top:calc(100% - 14svh)!important}
  .walk__copy{padding-top:9svh}
  .sec--find .sec__shade{background:linear-gradient(180deg,rgba(8,6,7,.94) 0%,rgba(8,6,7,.86) 52%,rgba(8,6,7,.2) 70%,rgba(8,6,7,0) 85%)!important}
}

/* ═══ ANFITRIÃO — cartão do WhatsApp dentro da conversa ═══ */
.msg--wa{max-width:92%;display:grid;gap:.7rem;padding:.9rem}
.wa__pre{white-space:pre-wrap;font:300 .8rem/1.5 var(--sans);color:#F7F3F0;background:rgba(0,0,0,.3);border-radius:12px;padding:.7rem .8rem;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.wa__go{justify-content:center;width:100%;box-sizing:border-box;padding:.95em 1.2em}
.wa__go svg{width:16px;height:16px}
.wa__note{margin:0;font:300 .7rem/1.4 var(--sans);color:var(--sc-ink-soft);text-align:center}
.bot__form input{font-size:16px}  /* iOS: não faz zoom ao escrever */
@media (max-width:760px){.bot__panel{width:calc(100vw - 1.2rem);right:-.2rem;height:min(560px,calc(100dvh - 190px))}}

/* ═══ TABLET (iPad em pé, 761–900px): mesma estrutura do PC — navegação + ícones em coluna à direita ═══ */
@media (min-width:761px) and (max-width:900px){
  .hero-r{top:clamp(5.8rem,14vh,8rem)!important;bottom:auto!important;right:var(--gut)!important;left:auto!important;translate:none!important;
    flex-direction:column!important;align-items:flex-start!important;gap:1.4rem!important;padding-left:1.15rem!important}
  .hero-r nav,.hero-r hr,.hero-place{display:grid!important}
  .hero-r hr{display:block!important}
  .hero-r .social{flex-direction:column!important;gap:.6rem!important}
  .hero-l{max-width:min(30rem,60vw)!important}
}
.hero-place{white-space:nowrap}
/* cartão do WhatsApp: texto sempre legível (fora do efeito de brilho) */
.msg .wa__pre,.msg .wa__note{background:rgba(0,0,0,.3)!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;
  -webkit-text-fill-color:#F7F3F0!important;color:#F7F3F0!important;animation:none!important}
.msg .wa__note{background:none!important;-webkit-text-fill-color:#C9B8B5!important;color:#C9B8B5!important}
.msg--wa{background:rgba(255,255,255,.04)}
