/* Novelaflix — micro-animações de ícones/botões (hover + clique).
   Todo ícone sai de ic() com classe .ic .ic-<nome>; aqui animamos por tipo.
   Filosofia: nada de loop piscando — a animação dispara na interação (profissional). */

/* base: transição suave + centro de transformação */
.ic { transition: transform .28s cubic-bezier(.2, .7, .3, 1.35), opacity .2s ease, stroke .2s ease, fill .2s ease; transform-origin: center; will-change: transform; }

/* fallback universal: qualquer ícone dentro de algo clicável dá um "pop" no hover */
:is(a, button, summary, label, [role="button"], .nvx-fchip, .nvx-fopt, .rail-btn, .tt-ic, .nvx-pg):hover > .ic,
:is(a, button, summary, label, [role="button"], .nvx-fchip, .nvx-fopt, .rail-btn, .tt-ic, .nvx-pg):hover .ic {
  transform: scale(1.14);
}
/* feedback de clique */
:is(a, button, summary, label, [role="button"], .rail-btn, .tt-ic):active .ic { transform: scale(.86); transition-duration: .08s; }

/* ===== animações específicas (sobrescrevem o pop — vêm depois) ===== */
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-search   { animation: icWiggle .55s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-heart    { animation: icBeat .7s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-message  { animation: icPop .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-bell     { animation: icRing .8s ease; transform-origin: 50% 15%; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-download { animation: icBounce .6s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-share    { animation: icPop .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-copy     { animation: icPop .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-bookmark { animation: icPop .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-play     { animation: icPulse .6s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-repeat   { animation: icSpin .6s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-settings { animation: icSpin .7s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-languages{ animation: icFlip .7s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-globe    { animation: icFlip .8s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-chevron-left { animation: icNudgeL .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-chevron-down { animation: icBounce .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-chevron-up   { animation: icNudgeU .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-log-in   { animation: icNudgeR .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-log-out  { animation: icNudgeR .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-plus,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-plus-circle { animation: icSpin90 .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-check     { animation: icPop .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-trash,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-ban      { animation: icShake .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-bar-chart,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-chart-line,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-activity  { animation: icRise .5s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-list,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-list-filter,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-filter    { animation: icPop .45s ease; }
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-home,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-grid,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-film,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-image,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-tag,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-wallet,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-user,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-users,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-map-pin,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-clock,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-calendar,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-send      { animation: icPop .5s ease; }

/* "conquista"/premium: brilho + leve giro (crown, trophy, award, star, shield) */
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-crown,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-trophy,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-award,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-star,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-zap,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-shield,
:is(a, button, .tt-ic, .rail-btn, [role="button"]):hover .ic-shield-check { animation: icShine .8s ease; }

/* ícones "sempre vivos" com muita sutileza (chamam atenção sem irritar) */
.nvx-acc__crown .ic-crown, .nvx-acc__pill .ic-crown { animation: icShineLoop 3.4s ease-in-out infinite; }

/* botões: leve elevação/afundamento */
.btn { transition: transform .18s ease, box-shadow .2s ease, filter .2s ease; }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0) scale(.98); }
.tt-ic, .rail-btn { transition: transform .18s ease, background .2s ease, color .2s ease; }
.tt-ic:hover { transform: scale(1.08); }

/* ===== keyframes ===== */
@keyframes icWiggle { 0%,100%{transform:rotate(0)} 25%{transform:rotate(-13deg) scale(1.1)} 55%{transform:rotate(11deg) scale(1.1)} 80%{transform:rotate(-5deg)} }
@keyframes icBeat   { 0%,100%{transform:scale(1)} 25%{transform:scale(1.28)} 45%{transform:scale(.95)} 65%{transform:scale(1.18)} }
@keyframes icPop    { 0%{transform:scale(1)} 45%{transform:scale(1.32)} 100%{transform:scale(1)} }
@keyframes icPulse  { 0%,100%{transform:scale(1)} 50%{transform:scale(1.26)} }
@keyframes icRing   { 0%,100%{transform:rotate(0)} 20%{transform:rotate(16deg)} 40%{transform:rotate(-13deg)} 60%{transform:rotate(8deg)} 80%{transform:rotate(-4deg)} }
@keyframes icBounce { 0%,100%{transform:translateY(0)} 35%{transform:translateY(4px)} 70%{transform:translateY(-2px)} }
@keyframes icSpin   { from{transform:rotate(0)} to{transform:rotate(360deg)} }
@keyframes icSpin90 { from{transform:rotate(0)} to{transform:rotate(90deg) scale(1.1)} }
@keyframes icFlip   { 0%{transform:perspective(120px) rotateY(0)} 50%{transform:perspective(120px) rotateY(180deg)} 100%{transform:perspective(120px) rotateY(360deg)} }
@keyframes icNudgeL { 0%,100%{transform:translateX(0)} 45%{transform:translateX(-4px)} }
@keyframes icNudgeR { 0%,100%{transform:translateX(0)} 45%{transform:translateX(4px)} }
@keyframes icNudgeU { 0%,100%{transform:translateY(0)} 45%{transform:translateY(-4px)} }
@keyframes icShake  { 0%,100%{transform:rotate(0)} 20%{transform:rotate(-11deg)} 40%{transform:rotate(9deg)} 60%{transform:rotate(-6deg)} 80%{transform:rotate(3deg)} }
@keyframes icRise   { 0%{transform:translateY(0) scale(1)} 45%{transform:translateY(-4px) scale(1.08)} 100%{transform:translateY(0) scale(1)} }
@keyframes icShine  { 0%{transform:scale(1) rotate(0);filter:drop-shadow(0 0 0 transparent)} 40%{transform:scale(1.22) rotate(-8deg);filter:drop-shadow(0 0 7px rgba(255,209,102,.85))} 70%{transform:scale(1.1) rotate(6deg)} 100%{transform:scale(1) rotate(0);filter:drop-shadow(0 0 0 transparent)} }
@keyframes icShineLoop { 0%,100%{filter:drop-shadow(0 0 0 transparent);transform:scale(1)} 50%{filter:drop-shadow(0 0 6px rgba(255,209,102,.8));transform:scale(1.06)} }

/* acessibilidade: respeita quem pediu menos movimento */
@media (prefers-reduced-motion: reduce) {
  .ic, .btn, .tt-ic, .rail-btn { transition: none !important; }
  .ic { animation: none !important; }
}

/* ===== ícones da Comunidade ===== */
.cm-item:hover .cm-ico .ic{animation:icPop .55s ease}
.cm-watch:hover .cm-ico .ic{animation:icPulse .6s ease}
.cm-like:hover .cm-ico .ic{animation:icBeat .7s ease}
.cm-complete:hover .cm-ico .ic{animation:icShine .8s ease}
.rk-row:hover .rk-pos{animation:icPop .5s ease;display:inline-block}
/* headers de card: chama/troféu com brilho sutil contínuo */
.cm-card h3 .ic-c-flame{animation:icShineLoop 3.2s ease-in-out infinite;color:#ff7a1a}
.cm-card h3 .ic-c-trophy,.mb-sec .ic-c-trophy{animation:icShineLoop 3.6s ease-in-out infinite}
.cm-card h3 .ic-c-join{color:#34d399}

/* ===== ícones-destaque profissionais ===== */
/* coroa do botão "Seja Premium": brilho dourado sutil contínuo + shine forte no hover */
.nvx-prem .ic-crown{animation:icShineLoop 3.2s ease-in-out infinite}
.nvx-prem:hover .ic-crown{animation:icShine .8s ease}
/* header da caixa de reviews: pulso discreto de vez em quando */
.nvx-rev__title .ic-message{animation:icRevPulse 3.8s ease-in-out infinite;transform-origin:60% 65%}
@keyframes icRevPulse{0%,90%,100%{transform:scale(1)}95%{transform:scale(1.16)}}
/* info (hero "Mais informações") sobe levemente; menu/burguer dá pop */
:is(a,button,.nvx-ic,[role="button"]):hover .ic-info{animation:icInfoBob .6s ease}
@keyframes icInfoBob{0%,100%{transform:translateY(0)}30%{transform:translateY(-3px) scale(1.12)}62%{transform:translateY(0) scale(1.05)}}
:is(a,button,.nvx-ic,[role="button"]):hover .ic-menu{animation:icPop .4s ease}
/* garante que os botões redondos do header (.nvx-ic) também animem o ícone no hover */
.nvx-ic:hover .ic{transform:scale(1.14)}
.nvx-ic:active .ic{transform:scale(.88)}
