/* portas do herói: papel primeiro, faixa depois */
.porta{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.16)}
.porta[hidden]{display:none}
.porta-q{margin:0 0 10px;font-size:.9rem;font-weight:600;opacity:.85}
.ebtn-f{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.28)}
.ebtn-f:hover{background:rgba(255,255,255,.18)}
button.ebtn{font:inherit;cursor:pointer}

/* herói: duas portas no lugar da ilustração */
.hd{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%}
.hd-c{display:flex;flex-direction:column;gap:7px;padding:20px 18px;border-radius:var(--r-lg);
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16)}
.hd-c b{font-family:Poppins;font-weight:700;font-size:1.06rem;color:var(--on-stage)}
.hd-n{font-size:0.82rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--on-stage-2)}
.hd-c p{margin:2px 0 0;font-size:0.89rem;line-height:1.55;color:var(--on-stage-2);flex:1}
.hd-c a{font-family:Poppins;font-weight:600;font-size:0.86rem;color:var(--on-stage);
  text-decoration:none;display:inline-flex;align-items:center;gap:6px;margin-top:6px}
.hd-c a span{transition:transform var(--t-fast) var(--ease);display:inline-block}
.hd-c a:hover span{transform:translateX(4px)}
.hd-ico{width:40px;height:40px;display:block}
.hd-ico svg{width:100%;height:100%;display:block}
.hd-1{border-color:rgba(126,231,214,.34)}
.hd-1 .hd-ico{color:#7EE7D6}
.hd-2{border-color:rgba(255,177,105,.34)}
.hd-2 .hd-ico{color:#FFB169}
@media(max-width:520px){.hd{grid-template-columns:1fr}}

/* pilares: ícone no lugar da foto */
.tri-svg{width:104px;height:104px;display:block;position:relative;z-index:1;
  transition:transform .45s cubic-bezier(.22,1,.36,1)}
.tri-svg svg{width:100%;height:100%;display:block}
.tri-c:hover .tri-svg{transform:translateY(-6px) scale(1.04)}
.tri-svg.i1{color:#7EE7D6}
.tri-svg.i2{color:#FFB169}
.tri-svg.i3{color:#C4BAFF}

/* a mesa, na seção de 13+ */
.mesa{max-width:520px;margin:clamp(24px,3vw,34px) auto 0;border-radius:var(--r-lg);
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);overflow:hidden}
.mesa-top{display:flex;justify-content:space-between;align-items:baseline;
  padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.14)}
.mesa-top b{font-family:Poppins;font-weight:700;font-size:1rem;color:var(--on-stage)}
.mesa-top span{font-size:0.82rem;color:var(--on-stage-2)}
.mesa-l{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:13px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.mesa-l i{font-style:normal;font-size:.9rem;color:var(--on-stage);flex:1;text-align:left}
.mesa-bar{width:104px;height:7px;border-radius:99px;background:rgba(255,255,255,.14);overflow:hidden}
.mesa-bar em{display:block;height:100%;border-radius:99px;background:currentColor}
.mesa-l u{text-decoration:none;font-size:0.86rem;color:var(--on-stage-2);width:44px;text-align:right}
.mesa-l.c1{color:#7EE7D6}.mesa-l.c2{color:#8B7BF0}.mesa-l.c3{color:#FFB169}
.mesa-pe{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;
  font-size:0.9rem;color:var(--on-stage-2)}
.mesa-pe b{font-family:Poppins;color:#7EE7D6;font-size:1.02rem}
.mesa-nota{margin:12px auto 0;max-width:520px;font-size:0.82rem;color:var(--on-stage-2);text-align:center}

/* sem o quadro em volta, o contorno do botão vazado precisa aparecer */
.cta-nu .btn-ghost{border-color:var(--ink-2)}
.cta-nu .btn-ghost:hover{border-color:var(--orange);color:var(--orange)}


/* ═══════ RODADA 10 · a demonstração se mexe ═══════ */
html.js .modal.open .modal-card{animation:mdCartao .45s cubic-bezier(.22,1,.36,1)}
@keyframes mdCartao{from{opacity:0;transform:translateY(24px) scale(.97)}}

.modal-stage{position:relative;overflow:hidden}
.modal-stage::after{
  content:"";position:absolute;left:50%;top:50%;width:62%;aspect-ratio:16/10;
  transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(126,231,214,.22),transparent 68%)
}
html.js .modal-stage::after{animation:mdAura 6.5s ease-in-out infinite}
@keyframes mdAura{
  0%,100%{opacity:.7;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:1;transform:translate(-50%,-50%) scale(1.13)}
}
.modal-stage img{position:relative;z-index:2}
html.js .modal-stage img{animation:mdBoia 7s ease-in-out infinite}
@keyframes mdBoia{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
html.js .modal-stage img.entra-dir{
  animation:mdEntraDir .5s cubic-bezier(.22,1,.36,1),mdBoia 7s ease-in-out .5s infinite}
html.js .modal-stage img.entra-esq{
  animation:mdEntraEsq .5s cubic-bezier(.22,1,.36,1),mdBoia 7s ease-in-out .5s infinite}
@keyframes mdEntraDir{from{opacity:0;transform:translateX(48px) scale(.96)}}
@keyframes mdEntraEsq{from{opacity:0;transform:translateX(-48px) scale(.96)}}

.md-cubos{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.md-cubo{position:absolute;display:block;opacity:.45}
.md-cubo svg{width:100%;height:100%;display:block}
.md-cubo.c1{top:12%;left:5%;width:26px;color:#8B7BF0}
.md-cubo.c2{top:64%;left:10%;width:19px;color:#7EE7D6;animation-delay:-2.4s}
.md-cubo.c3{top:9%;right:8%;width:23px;color:#8B7BF0;animation-delay:-4.2s}
.md-cubo.c4{bottom:14%;right:6%;width:17px;color:#F97316;animation-delay:-1.1s}
.md-cubo.c5{top:44%;right:3%;width:14px;color:#C4BAFF;animation-delay:-6s}
.md-cubo.c6{bottom:24%;left:3%;width:15px;color:#7EE7D6;animation-delay:-3.3s}
html.js .md-cubo{animation:mdCubo 9s ease-in-out infinite;will-change:transform}
@keyframes mdCubo{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  33%{transform:translate3d(9px,-16px,0) rotate(120deg)}
  66%{transform:translate3d(-7px,-8px,0) rotate(240deg)}
}

.md-prog{height:3px;background:var(--line);position:relative;z-index:3}
.md-prog i{display:block;height:100%;width:20%;background:var(--orange);border-radius:0 3px 3px 0;
  transition:width .5s cubic-bezier(.22,1,.36,1)}

html.js .modal-body.entra-txt .modal-step,
html.js .modal-body.entra-txt h3,
html.js .modal-body.entra-txt > p{animation:mdTexto .5s cubic-bezier(.22,1,.36,1) both}
html.js .modal-body.entra-txt h3{animation-delay:.07s}
html.js .modal-body.entra-txt > p{animation-delay:.14s}
@keyframes mdTexto{from{opacity:0;transform:translateY(11px)}}

.dot{transition:width var(--t-base) var(--ease),background var(--t-base) var(--ease)}

@media (prefers-reduced-motion:reduce){
  html.js .modal.open .modal-card,
  html.js .modal-stage::after,
  html.js .modal-stage img,
  html.js .modal-stage img.entra-dir,
  html.js .modal-stage img.entra-esq,
  html.js .md-cubo,
  html.js .modal-body.entra-txt .modal-step,
  html.js .modal-body.entra-txt h3,
  html.js .modal-body.entra-txt > p{animation:none}
  .md-prog i{transition:none}
}

/* O BOTAO NAO PROMETE MAIS UM VIDEO QUE NAO EXISTE.
   Ele abria um carrossel de cinco imagens paradas atras de um triangulo de
   play. Enquanto o filme nao existir, o icone e uma seta de avancar e o rotulo
   diz o que a pessoa vai receber. Quando o filme entrar, volta a ser play. */
.demo-play.demo-avanca svg{margin-left:0}
