/* ===== Efeitos de rolagem (estilo Apple) ===== */
.fx-on .banner--pinned{background:none!important;display:block;padding:0;min-height:260vh}
.fx-on .banner--pinned::before{display:none}
.banner__stick{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:0 var(--pad)}
.banner__stick::after{content:"";position:absolute;inset:0;background:var(--shade,rgba(0,0,0,.3));z-index:1;pointer-events:none}
.banner__bg{position:absolute;inset:-6%;background-size:cover;background-position:center;transform:scale(var(--bs,1.2));z-index:0;will-change:transform}
.banner--forest .banner__bg{background-image:url("assets/bg-b.webp")}
.banner--frost .banner__bg{background-image:url("assets/bg-a.webp")}
.banner--forest{--shade:rgba(4,16,13,.28)}
.banner--frost{--shade:rgba(0,0,0,.3)}
.banner--pinned .banner__inner{position:relative;z-index:2;will-change:transform,opacity}
.banner--pinned .w{display:inline-block;white-space:pre;will-change:opacity,filter}
.banner--pinned .tagline,.banner--pinned .actions{will-change:opacity,transform}

/* revelação de títulos em máscara */
.mw{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.mi{display:inline-block;transform:translateY(112%) rotate(4deg);transform-origin:0 100%;transition:transform .9s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i,0)*70ms)}
.fx-title.in .mi{transform:none}

/* cartões e imagens */
.fx-card,.fx-img{will-change:transform,opacity}
.fx-on .world:hover img,.fx-on .hero-card:hover img,.fx-on .post:hover img{transform:translate3d(0,var(--py,0px),0) scale(var(--sc,1.12))}
.fx-on .world__img img,.fx-on .together__img img,.fx-on .community-img img{transform:translate3d(0,var(--py,0px),0) scale(var(--sc,1.12))}
.fx-on .world__img,.fx-on .together__img,.fx-on .community-img{will-change:transform,clip-path}
.fx-on .final{overflow:hidden}
.fx-on .final__bg{background-attachment:scroll!important;inset:-6%;transform:scale(var(--bs,1.2));will-change:transform}
.fx-on .ph img{transition:none!important}
.fx-on .fx-card{transition:box-shadow .3s,border-color .3s!important;transform-origin:50% 100%}
.fx-on .hero__content{will-change:transform,opacity,filter}

/* nav que some ao descer e volta ao subir */
.nav{transition:transform .45s cubic-bezier(.16,1,.3,1),background .3s}
.nav.nav--hide{transform:translateY(-100%)}

/* brilho que segue o mouse */
.glow{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;z-index:40;background:radial-gradient(circle,rgba(246,214,114,.16),rgba(23,212,158,.06) 40%,transparent 68%);mix-blend-mode:screen;opacity:0;transition:opacity .4s;will-change:transform}
.glow.on{opacity:1}
.btn{will-change:transform}
@media (hover:none),(max-width:991px){.glow{display:none}.fx-on .banner--pinned{min-height:200vh}}
html,body{overflow-x:clip}
