/* Ingresso On · movimento da plataforma: títulos digitados, entrada ao rolar e reações ao passar o mouse.
   Segue o mesmo jeito da página de vendas. Sem este arquivo/JS tudo continua funcionando. */
.logo:hover .logo .on{transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease}
a:hover>.logo .on,.logo:hover .on{transform:rotate(-4deg) scale(1.06);box-shadow:0 6px 16px -8px #25d36699}
/* Logo da plataforma (SVG da marca): "ingresso" verde, "plataforma" embaixo e o quadrado On */
.logo-svg{display:block;height:1.5em;width:auto;overflow:visible}
.lg-on{transform-box:fill-box;transform-origin:center;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
a:hover>.logo .lg-on,.logo:hover .lg-on{transform:rotate(-4deg) scale(1.06)}
.lg-ing{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.logo:hover .lg-ing{transform:translateY(-.4px)}
/* Título digitado */
.io-caret{display:inline-block;width:2px;height:.9em;margin-left:3px;vertical-align:-.08em;background:var(--landing-green,#25D366);animation:ioBlink 1s steps(1) infinite}
.landing-hero-copy h1[data-io-type],.landing h2[data-io-type]{cursor:default}
.io-js .landing h2[data-io-type]:not(.io-typed-start){visibility:hidden}
@keyframes ioBlink{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes ioShine{from{transform:translateX(-120%) skewX(-20deg)}to{transform:translateX(230%) skewX(-20deg)}}
/* Entrada ao rolar */
.io-js .io-rv{opacity:0;transform:translateY(18px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0ms)}
.io-js .io-rv.in{opacity:1;transform:none}
/* Passar o mouse */
.landing .btn,.landing-nav-actions .btn{position:relative;overflow:hidden;isolation:isolate;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}
.landing .btn::after{content:"";position:absolute;inset:0;width:45%;background:linear-gradient(100deg,transparent,#ffffff55,transparent);transform:translateX(-120%) skewX(-20deg);pointer-events:none;z-index:-1}
.landing .btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px -12px #25d366aa}
.landing .btn:hover::after{animation:ioShine .8s ease}
.landing .btn svg,.landing .btn .icon{transition:transform .2s ease}
.landing .btn:hover svg,.landing .btn:hover .icon{transform:translateX(4px)}
.landing-header nav a{position:relative}
.landing-header nav a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--landing-green,#25D366);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.landing-header nav a:hover::after,.landing-header nav a:focus-visible::after{transform:scaleX(1)}
.landing-feature-grid>*,.landing-steps>*,.landing-partner-types>*,.landing-audiences>*,.landing-faq details,.landing-offer,.landing-showcase-details>*{transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s ease,border-color .25s ease}
.landing-feature-grid>*:hover,.landing-steps>*:hover,.landing-partner-types>*:hover,.landing-showcase-details>*:hover{transform:translateY(-4px);box-shadow:0 18px 34px -26px #0a2418aa}
.landing-faq details:hover{border-color:#25d366}
.io-js .io-rv.in:hover{transition-delay:0ms}
.landing-feature-icon,.landing-support-icon,.landing-feature-number{transition:transform .25s cubic-bezier(.34,1.56,.64,1),background-color .2s ease}
.landing-feature-grid>*:hover .landing-feature-icon,.landing-support:hover .landing-support-icon{transform:scale(1.12) rotate(-4deg)}
.landing-hero-visual{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.landing-hero-visual:hover{transform:translateY(-4px) scale(1.01)}
.landing-hero-visual .landing-photo-tag,.landing-hero-visual [class*=landing-hero-note]{transition:transform .3s ease}
/* Título: cada palavra reage ao mouse */
.io-w{display:inline-block;transition:transform .22s cubic-bezier(.34,1.56,.64,1),color .2s ease}
.io-w:hover{transform:translateY(-.08em);color:var(--landing-green,#25D366)}
.dash-heading h1:not([data-io-type]) {}
@media(prefers-reduced-motion:reduce){.landing *,.landing-header *,.logo,.logo *{transition:none!important;animation:none!important}.io-js .io-rv{opacity:1;transform:none}}
/* Faixa de formatos em movimento contínuo (emenda invisível); pausa ao passar o mouse */
.landing-audiences>.container{overflow:hidden}
.io-marquee{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.io-track{display:flex;width:max-content;animation:ioMarq 30s linear infinite}
.io-marquee:hover .io-track{animation-play-state:paused}
.io-grp{display:flex;align-items:center;gap:64px;padding-right:64px;flex:none}
.io-grp b{display:inline-block;transition:transform .25s cubic-bezier(.34,1.56,.64,1),color .2s ease;cursor:default}
.io-grp b:hover{transform:scale(1.14);color:#159947}
.io-grp i{transition:transform .6s ease}
.io-grp:hover i{transform:rotate(180deg)}
@keyframes ioMarq{from{transform:translateX(0)}to{transform:translateX(-25%)}}
@media(max-width:700px){.io-marquee{flex-basis:100%;width:100%}.io-grp{gap:40px;padding-right:40px}.io-track{animation-duration:22s}}
/* Card da capa: o cartão sobe, a foto assenta, os textos entram e, por último, a barra sobe e os três itens aparecem em sequência */
.io-js .landing-hero-visual{animation:ioCardIn .95s cubic-bezier(.2,.7,.2,1) both}
.io-js .landing-hero-visual>img{animation:ioPhoto 1.8s cubic-bezier(.2,.7,.2,1) both}
.io-js .landing-photo-tag{animation:ioUp .7s .45s cubic-bezier(.2,.7,.2,1) both}
.io-js .landing-photo-copy>span{animation:ioUp .7s .6s cubic-bezier(.2,.7,.2,1) both}
.io-js .landing-photo-copy>strong{animation:ioUp .8s .75s cubic-bezier(.2,.7,.2,1) both}
.io-js .landing-flow{animation:ioBar .7s 1.05s cubic-bezier(.2,.7,.2,1) both}
.io-js .landing-flow>span{animation:ioPop .6s cubic-bezier(.34,1.56,.64,1) both}
.io-js .landing-flow>span:nth-child(1){animation-delay:1.55s}
.io-js .landing-flow>span:nth-child(2){animation-delay:1.8s}
.io-js .landing-flow>span:nth-child(3){animation-delay:2.05s}
.io-js .landing-flow>span .icon{animation:ioIcon .7s both}
.io-js .landing-flow>span:nth-child(1) .icon{animation-delay:1.7s}
.io-js .landing-flow>span:nth-child(2) .icon{animation-delay:1.95s}
.io-js .landing-flow>span:nth-child(3) .icon{animation-delay:2.2s}
.landing-flow>span{transition:transform .2s ease,color .2s ease;cursor:default}
.landing-flow>span:hover{transform:translateY(-3px);color:#25d366}
.landing-flow>span:hover .icon{animation:ioIcon .6s both!important}
@keyframes ioCardIn{from{opacity:0;transform:translateY(46px) scale(.97)}to{opacity:1;transform:none}}
@keyframes ioPhoto{from{transform:scale(1.12)}to{transform:scale(1)}}
@keyframes ioUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes ioBar{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
@keyframes ioPop{from{opacity:0;transform:translateY(12px) scale(.9)}to{opacity:1;transform:none}}
@keyframes ioIcon{0%{transform:scale(.4) rotate(-20deg)}60%{transform:scale(1.25) rotate(6deg)}100%{transform:none}}
@media(prefers-reduced-motion:reduce){.io-track{animation:none}.io-js .landing-hero-visual,.io-js .landing-hero-visual *{animation:none!important}}
.landing-footer .logo,.footer .logo,.sidebar .logo{margin-bottom:9px}

/* ===== Lojas e eventos: mesma animação da plataforma ===== */
#main .btn,.ticket-panel .btn{position:relative;overflow:hidden;isolation:isolate;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}
#main .btn::after{content:"";position:absolute;inset:0;width:45%;background:linear-gradient(100deg,transparent,#ffffff55,transparent);transform:translateX(-120%) skewX(-20deg);pointer-events:none;z-index:-1}
#main .btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px -12px var(--accent,#25d366)}
#main .btn:hover::after{animation:ioShine .8s ease}
#main .btn svg{transition:transform .2s ease}
#main .btn:hover svg{transform:translateX(4px)}
.event-card{transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease}
.event-card .card-image img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.event-card:hover .card-image img{transform:scale(1.06)}
.io-js .event-card.io-rv.in:hover,.event-card:hover{transform:translateY(-6px);box-shadow:0 22px 36px -22px rgba(16,43,27,.45)}
.ticket-row{transition:background-color .2s ease,transform .2s ease,border-color .2s ease}
.ticket-row:hover{transform:translateX(3px)}
.event-facts>*,.copy-block{transition:transform .25s ease}
.card-date{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.event-card:hover .card-date{transform:rotate(-4deg) scale(1.06)}
/* Entrada de tela (só nos primeiros instantes depois de trocar de página) */
#app.io-fresh #main .hero,#app.io-fresh #main .event-page>:first-child,#app.io-fresh .catalog-page>:first-child{animation:ioHeroIn .85s cubic-bezier(.2,.8,.2,1) both}
#app.io-fresh .hero-content>*{animation:ioUp .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:.25s}
#app.io-fresh .hero-content>:nth-child(2){animation-delay:.38s}#app.io-fresh .hero-content>:nth-child(3){animation-delay:.5s}#app.io-fresh .hero-content>:nth-child(4){animation-delay:.62s}
#app.io-fresh .ticket-panel{animation:ioHeroIn .8s cubic-bezier(.2,.8,.2,1) .25s both}
#app.io-fresh .ticket-row{animation:ioUp .6s cubic-bezier(.2,.8,.2,1) both}
#app.io-fresh .ticket-row:nth-child(1){animation-delay:.55s}#app.io-fresh .ticket-row:nth-child(2){animation-delay:.68s}#app.io-fresh .ticket-row:nth-child(3){animation-delay:.81s}#app.io-fresh .ticket-row:nth-child(n+4){animation-delay:.94s}
@keyframes ioHeroIn{from{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#app .hero,#app .hero-content>*,#app .ticket-panel,#app .ticket-row,#app .event-page>:first-child{animation:none!important}.event-card,.event-card *{transition:none!important}}
