/* Pro Team: efeitos das páginas de atleta (contagem, linha do tempo e galeria).
   Adaptado de componentes 21st.dev (Count Up, Scroll animated timeline, Masonry Lightbox)
   para HTML/JS puro. Só entra em ação quando pro-team-fx.js marca <html class="ptfx">. */

/* ---------- Linha do tempo: linha que se desenha com a rolagem ---------- */
.ptfx .tl-progress{position:absolute;left:13px;top:6px;width:2px;height:0;background:var(--brand-orange);
  box-shadow:0 0 12px rgba(222,42,1,.55);border-radius:2px;z-index:0;transition:height .12s linear;}
.ptfx .tl-item{transition:opacity .7s var(--ease-out,ease-out),transform .7s var(--ease-out,ease-out);}
.ptfx .tl-item.tl-pending{opacity:.3;transform:translateY(18px);}
.ptfx .tl-dot{z-index:1;transition:transform .5s var(--ease-out,ease-out),background-color .5s,box-shadow .5s;}
.ptfx .tl-item.tl-pending .tl-dot{background:#3a3a3a;box-shadow:0 0 0 4px rgba(255,255,255,.06);transform:scale(.8);}
.ptfx .tl-item.tl-active .tl-dot{transform:scale(1.15);box-shadow:0 0 0 5px rgba(222,42,1,.22),0 0 18px rgba(222,42,1,.5);}

/* ---------- Galeria: mosaico + foto ampliada ---------- */
.ptfx .gal-grid.gal-masonry{display:block;columns:2;column-gap:12px;}
@media (min-width:760px){.ptfx .gal-grid.gal-masonry{columns:3;column-gap:16px;}}
.gal-tile{position:relative;display:block;width:100%;margin:0 0 12px;padding:0;border:0;background:#111;border-radius:16px;
  overflow:hidden;cursor:zoom-in;break-inside:avoid;transition:transform .45s var(--ease-out,ease-out);}
@media (min-width:760px){.gal-tile{margin-bottom:16px;}}
.gal-tile:hover{transform:translateY(-3px);}
.gal-tile:focus-visible{outline:2px solid var(--brand-orange);outline-offset:3px;}
.ptfx .gal-tile .gal-img{border-radius:16px;transition:transform .7s var(--ease-out,ease-out);}
.ptfx .gal-tile:hover .gal-img{transform:scale(1.06);}
.ptfx .gal-tile:nth-child(3n+1) .gal-img{aspect-ratio:3/4;}
.ptfx .gal-tile:nth-child(3n+2) .gal-img{aspect-ratio:1/1;}
.ptfx .gal-tile:nth-child(3n) .gal-img{aspect-ratio:4/5;}
.gal-tile::after{content:"";position:absolute;inset:0;border-radius:16px;pointer-events:none;
  background:linear-gradient(to top,rgba(0,0,0,.75),rgba(0,0,0,.1) 45%,transparent);opacity:0;transition:opacity .3s;}
.gal-tile:hover::after,.gal-tile:focus-visible::after{opacity:1;}
.gal-cap{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:14px 16px;text-align:left;color:#fff;font-size:13px;
  font-weight:600;line-height:1.35;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s;pointer-events:none;}
.gal-tile:hover .gal-cap,.gal-tile:focus-visible .gal-cap{opacity:1;transform:none;}

.gal-lightbox{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;
  background:rgba(0,0,0,.78);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:0;transition:opacity .25s;}
.gal-lightbox.is-open{opacity:1;}
.gal-lightbox figure{position:relative;margin:0;max-width:min(92vw,620px);border-radius:20px;overflow:hidden;background:#111;
  box-shadow:0 30px 80px rgba(0,0,0,.6);transform:scale(.94);transition:transform .35s var(--ease-out,ease-out);}
.gal-lightbox.is-open figure{transform:none;}
.gal-lightbox img{display:block;max-width:100%;max-height:80vh;width:auto;height:auto;object-fit:contain;}
.gal-lightbox figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 20px 16px;color:#fff;font-weight:600;font-size:15px;
  background:linear-gradient(to top,rgba(0,0,0,.8),transparent);}
.gal-lb-btn{position:absolute;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;border:0;
  background:rgba(0,0,0,.45);color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s;}
.gal-lb-btn:hover{background:var(--brand-orange);}
.gal-lb-btn:focus-visible{outline:2px solid #fff;outline-offset:2px;}
.gal-lb-close{top:12px;right:12px;width:34px;height:34px;}
.gal-lb-prev{left:12px;top:50%;transform:translateY(-50%);}
.gal-lb-next{right:12px;top:50%;transform:translateY(-50%);}

/* ---------- Provas recentes: tabela com medalhas ---------- */
.rs-table{background:#fff;border:1.5px solid var(--brand-fog);border-radius:20px;overflow:hidden;}
.rs-row{display:grid;grid-template-columns:56px minmax(0,2.4fr) minmax(0,1.2fr) 90px minmax(0,1.1fr) 150px;align-items:center;gap:14px;
  padding:14px 20px;border-top:1px solid var(--brand-fog);transition:background-color .2s;}
.rs-row:first-child{border-top:0;}
.rs-row:not(.rs-head):hover{background:var(--brand-paper,#faf8f5);}
.rs-head{padding-top:12px;padding-bottom:12px;background:var(--brand-paper,#faf8f5);font-size:11px;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;color:var(--brand-stone);}
.rs-rank{display:flex;justify-content:center;}
.rs-medal{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;font-family:'Anton',sans-serif;
  font-size:16px;color:var(--brand-graphite);background:var(--brand-paper,#f3f0eb);border:1px solid var(--brand-fog);}
.rs-medal--gold{color:#5a3d00;background:linear-gradient(145deg,#ffe7a0,#e8b33a 60%,#c8921c);border-color:#d9a22b;box-shadow:0 4px 12px -4px rgba(200,146,28,.7);}
.rs-medal--silver{color:#3c4148;background:linear-gradient(145deg,#f4f6f8,#c5ccd3 60%,#9aa3ad);border-color:#aeb6bf;box-shadow:0 4px 12px -4px rgba(120,130,140,.6);}
.rs-medal--bronze{color:#4a2410;background:linear-gradient(145deg,#f6c9a2,#cd8146 60%,#a85f2c);border-color:#b96d36;box-shadow:0 4px 12px -4px rgba(168,95,44,.6);}
.rs-race{display:flex;align-items:center;gap:14px;min-width:0;}
.rs-logo{flex:0 0 auto;height:30px;width:64px;object-fit:contain;filter:brightness(0) opacity(.55);}
.rs-logo.logo-chip{filter:none;background:#fff;border:1px solid var(--brand-fog);border-radius:7px;padding:3px 6px;box-sizing:border-box;}
.rs-logo--empty{display:inline-block;height:30px;width:64px;}
.rs-name{display:flex;flex-direction:column;min-width:0;}
.rs-name strong{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;font-size:17px;line-height:1.1;color:var(--brand-ink);}
.rs-name small{margin-top:3px;font-size:12.5px;color:var(--brand-stone);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rs-place,.rs-dist,.rs-time{font-size:13.5px;font-weight:600;color:var(--brand-graphite);}
.rs-dist{font-variant-numeric:tabular-nums;}
.rs-time{font-weight:700;color:var(--brand-ink);font-variant-numeric:tabular-nums;white-space:nowrap;}
.rs-pos{font-size:13.5px;font-weight:700;color:var(--brand-graphite);}
.rs-podium .rs-pos{color:var(--brand-orange-deep,#b32200);}
.rs-anim .rs-row:not(.rs-head){opacity:0;transform:translateY(10px);
  transition:opacity .5s var(--ease-out,ease-out),transform .5s var(--ease-out,ease-out),background-color .2s;transition-delay:calc(var(--i,0) * 60ms);}
.rs-anim.rs-in .rs-row:not(.rs-head){opacity:1;transform:none;}
.rs-meta{display:none;}
@media (max-width:860px){
  .rs-head,.rs-place,.rs-dist,.rs-pos,.rs-time{display:none;}
  .rs-row{grid-template-columns:40px minmax(0,1fr);column-gap:12px;row-gap:6px;padding:14px 16px;}
  .rs-rank{grid-row:span 2;align-self:start;}
  .rs-medal{width:32px;height:32px;font-size:15px;}
  .rs-race{gap:10px;}
  .rs-logo,.rs-logo--empty{width:46px;height:24px;}
  .rs-logo--empty{display:none;}
  .rs-name strong{font-size:15px;}
  .rs-name small{white-space:normal;}
  .rs-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;grid-column:2;font-size:12.5px;font-weight:600;color:var(--brand-graphite);}
  .rs-meta b{font-weight:800;color:var(--brand-ink);}
  .rs-podium .rs-meta b{color:var(--brand-orange-deep,#b32200);}
  .rs-meta i{font-style:normal;color:var(--brand-stone);}
}

@media (prefers-reduced-motion:reduce){
  .ptfx .tl-item,.ptfx .tl-dot,.gal-tile,.ptfx .gal-tile .gal-img,.gal-lightbox,.gal-lightbox figure{transition:none;}
  .ptfx .tl-item.tl-pending{opacity:1;transform:none;}
}
