/* Animações: entradas curtas e faixa editorial contínua, com preferência de movimento reduzido. */
.ticker-ready .ticker-track { animation: ticker-loop 48s linear infinite; }
@keyframes ticker-loop { to { transform: translateX(-50%); } }
.reading-progress {
  position:fixed;
  inset:0 auto auto 0;
  width:100%;
  height:2px;
  background:var(--brand);
  z-index:20;
  pointer-events:none;
  transform:scaleX(0);
  transform-origin:left
}
@supports(animation-timeline:scroll()) {
  .reading-progress {
    animation:reading linear both;
    animation-timeline:scroll()
  }
  @keyframes reading {
    from {
      transform:scaleX(0)
    }
    to {
      transform:scaleX(1)
    }
  }
}
.rule {
  transform-origin:left
}
.problem-card,.giro-card,.giro-demo,.product-card,.quote,.poster,.offer-card {
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s
}
.button {
  position:relative;
  overflow:hidden;
  transition:transform .25s,background .25s,box-shadow .25s
}
.button:active {
  transform:translateY(0) scale(.985)
}
.button:after {
  content:'';
  position:absolute;
  inset:0;
  transform:translateX(-125%) skewX(-18deg);
  background:linear-gradient(90deg,transparent,#ffffff45,transparent);
  pointer-events:none;
  transition:transform .6s
}
summary {
  transition:color .2s
}
summary:hover,details[open] summary {
  color:var(--brand)
}
.media-glyph {
  transition:transform .35s,border-color .35s
}
@media(hover:hover) and (pointer:fine) {
  .problem-card:hover,.giro-card:hover,.quote:hover {
    transform:translateY(-3px);
    border-color:#93834b
  }
  .product-card:hover {
    transform:translateY(-4px);
    border-color:#696047;
    box-shadow:0 12px 30px #0002
  }
  .product-card:hover {
    border-color:#ffd60088;
    box-shadow:0 4px 0 #ffd60040,0 12px 30px #0002
  }
  .poster:hover {
    transform:translateY(-6px);
    border-color:#696047;
    box-shadow:0 16px 32px #0005
  }
  .button:hover {
    box-shadow:0 6px 26px #ffd60020
  }
  .button:hover:after {
    transform:translateX(125%) skewX(-18deg)
  }
}
dialog[open] {
  animation:dialog-in .24s ease-out
}
.vsl-dialog[open] { animation:none }
@keyframes dialog-in {
  from {
    opacity:0;
    transform:translateY(10px) scale(.98)
  }
  to {
    opacity:1;
    transform:translateY(0) scale(1)
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
  .reading-progress {
    display:none
  }
  .button:hover,.button:active,.problem-card:hover,.giro-card:hover,.product-card:hover,.quote:hover,.poster:hover {
    transform:none
  }
}

/* Pulso discreto ao redor do play do Giro; desligado pelo movimento reduzido. */
@media (prefers-reduced-motion: no-preference) {
  .giro-demo-play::before { animation: giro-signal 3.2s ease-out infinite; }
  @keyframes giro-signal { 0%, 20% { transform: scale(1); opacity: .7; } 85%, 100% { transform: scale(1.35); opacity: 0; } }
}
.giro-demo-arrow, .giro-demo-play { transition: box-shadow .25s, background .25s; }
@media (hover: hover) {
  .giro-demo-screen:hover .giro-demo-play { background: #ffe34d; box-shadow: 0 0 0 2px #ffd60080, 0 0 28px #ffd60038; }
  .giro-demo-cta:hover .giro-demo-arrow { box-shadow: 0 4px 14px #80720c33; }
}
