/* Camada de experiência da área de membros: jornada do aluno, animações das capas e navegação.
   Mantém as cores de m.css. Tudo aqui respeita quem prefere menos movimento. */

/* Anel de progresso */
.anel{position:relative;flex:none;width:64px;height:64px;display:grid;place-items:center}
.anel.g{width:92px;height:92px}
.anel svg{position:absolute;inset:0;width:100%;height:100%}
.anel circle{fill:none;stroke-width:6}
.anel .a0{stroke:rgba(255,255,255,.1)}
.anel .a1{stroke:var(--gold);stroke-linecap:round;stroke-dashoffset:var(--o);animation:anel 1.1s .15s cubic-bezier(.2,.7,.2,1) backwards}
.anel b{position:relative;font-size:14px;color:#fff;font-weight:800}
.anel.g b{font-size:19px}
@keyframes anel{from{stroke-dashoffset:var(--c)}}

/* Painel da jornada */
.jor{margin-top:20px;border:1px solid var(--line);border-radius:20px;padding:22px clamp(16px,3vw,28px) 8px;background:radial-gradient(520px 220px at 0% 0%,rgba(212,173,85,.12),transparent 70%),var(--card)}
.jor-top{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.jor-txt{flex:1;min-width:220px}
.jor-txt h2{margin:0 0 4px;font-family:var(--serif);font-weight:600;font-size:clamp(20px,2.6vw,26px);line-height:1.2;color:#fff}
.jor-txt p{margin:0;color:var(--ink-2);line-height:1.5}
.jor-txt p b{color:#fff}
.rota-w{overflow-x:auto;margin:22px -8px 0;padding:6px 8px 14px}
.rota{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n),minmax(104px,1fr));min-width:calc(var(--n)*104px)}
.rota::before,.rota::after{content:"";position:absolute;top:19px;left:calc(50%/var(--n));height:2px;border-radius:2px}
.rota::before{right:calc(50%/var(--n));background:var(--line)}
.rota::after{width:calc((100% - 100%/var(--n))*var(--p));background:var(--gold);transform-origin:left;animation:tracar 1.2s .25s cubic-bezier(.3,.7,.2,1) backwards}
@keyframes tracar{from{transform:scaleX(0)}}
.rota li{position:relative;z-index:1;animation:brotar .45s calc(.25s + var(--k)*90ms) cubic-bezier(.2,.9,.3,1.3) backwards}
@keyframes brotar{from{opacity:0;transform:translateY(6px) scale(.9)}}
.rota a{display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 6px;text-align:center;border-radius:12px}
.rota .pt{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;background:var(--bg);border:2px solid var(--line);color:var(--ink-3);transition:transform .18s,border-color .18s}
.rota .rt{font-size:12.5px;line-height:1.3;font-weight:700;color:var(--ink-3);max-width:128px}
.rota a:hover .pt{transform:scale(1.08);border-color:var(--gold-2)}
.rota a:hover .rt{color:#fff}
.rota .ok .pt{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.rota .ok .rt{color:var(--ink-2)}
.rota .agora .pt{border-color:var(--gold);color:var(--gold-2);box-shadow:0 0 0 0 rgba(212,173,85,.5);animation:pulso 2.4s 1.6s ease-out infinite}
.rota .agora .rt{color:#fff}
@keyframes pulso{0%{box-shadow:0 0 0 0 rgba(212,173,85,.45)}70%,100%{box-shadow:0 0 0 12px rgba(212,173,85,0)}}

/* Fileira de capas com setas */
.fila{position:relative}
.seta{position:absolute;top:calc(50% - 30px);z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(8,16,28,.88);color:#fff;font-size:20px;cursor:pointer;display:grid;place-items:center;transition:border-color .15s,transform .15s}
.seta:hover{border-color:var(--gold);transform:scale(1.06)}
.seta.e{left:-14px}.seta.d{right:-14px}
.row{scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding-top:10px}
.pw>.poster{flex:1 0 auto}

/* Capa: brilho que atravessa e botão de entrar */
a.poster{transition:transform .22s cubic-bezier(.2,.7,.2,1),border-color .22s,box-shadow .22s}
a.poster:hover,a.poster:focus-visible{transform:translateY(-6px);border-color:var(--gold);box-shadow:0 18px 34px -18px rgba(0,0,0,.8),0 0 0 1px rgba(212,173,85,.25)}
a.poster::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.14) 50%,transparent 65%);transform:translateX(-120%);pointer-events:none}
a.poster:hover::after{transform:translateX(120%);transition:transform .7s ease}
.p-go{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:7px;padding:6px 11px 6px 7px;border-radius:999px;background:var(--gold);color:var(--navy);font-size:12px;font-weight:800;opacity:0;transform:translateY(-6px);transition:opacity .2s,transform .2s}
.p-go i{width:20px;height:20px;border-radius:50%;background:var(--navy);color:var(--gold);display:grid;place-items:center;font-style:normal;font-size:9px;padding-left:2px}
a.poster:hover .p-go,a.poster:focus-visible .p-go{opacity:1;transform:none}
.poster.lock .p-go{display:none}

/* A capa clicada cresce e vira o topo da trilha */
.t-hero{view-transition-name:capa}
::view-transition-group(capa){animation-duration:.48s;animation-timing-function:cubic-bezier(.3,.7,.2,1)}
::view-transition-old(capa),::view-transition-new(capa){height:100%;width:100%;object-fit:cover;border-radius:18px}
::view-transition-old(root),::view-transition-new(root){animation-duration:.3s}

/* Topo da trilha */
.t-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;border:1px solid var(--line);border-radius:20px;padding:clamp(22px,4vw,40px);margin-bottom:22px;background:radial-gradient(520px 300px at 92% 10%,rgba(212,173,85,.3),transparent 62%),linear-gradient(120deg,#0a1322 25%,#1b2f55);background-size:cover;background-position:center}
.t-txt{display:flex;flex-direction:column;gap:12px;flex:1;min-width:240px}
.t-hero h1{margin:0;font-family:var(--serif);font-weight:600;font-size:clamp(26px,4vw,40px);line-height:1.1;color:#fff}
.t-hero p{margin:0;color:var(--ink-2);max-width:60ch;line-height:1.55}
.t-hero .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.t-prog{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ink-2);font-size:13px;font-weight:700;text-align:center}

/* Aulas ligadas por um caminho */
.trail .les{position:relative;transition:border-color .15s,transform .15s;animation:chegar .4s calc(var(--k)*45ms) ease-out backwards}
@keyframes chegar{from{opacity:0;transform:translateX(-10px)}}
.trail a.les:hover{transform:translateX(4px)}
.trail .les:not(:last-of-type)::after{content:"";position:absolute;left:32px;top:100%;width:2px;height:10px;background:var(--line)}
.trail .les.done:not(:last-of-type)::after{background:var(--gold)}
.trail .les.next{border-color:rgba(212,173,85,.6);background:linear-gradient(90deg,rgba(212,173,85,.1),transparent 55%),var(--card)}
.trail .les.next .n{border-color:var(--gold);color:var(--gold-2)}
.aqui{flex:none;font-size:12px;font-weight:800;color:var(--navy);background:var(--gold);padding:4px 10px;border-radius:999px}

/* Página da aula: vídeo com a lista da trilha ao lado */
.aula{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
.pl{position:sticky;top:84px;max-height:calc(100vh - 110px);display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line-2);border-radius:16px;overflow:hidden}
.pl-h{display:grid;gap:6px;padding:16px;border-bottom:1px solid var(--line-2)}
.pl-h b{color:#fff;font-size:15px}
.pl-h span{font-size:12.5px;color:var(--ink-3)}
.pl ol{list-style:none;margin:0;padding:8px;overflow:auto}
.pl a{display:flex;gap:12px;align-items:center;padding:10px;border-radius:10px;color:var(--ink-2)}
.pl a:hover{background:var(--card-2);color:#fff}
.pl a.cur{background:var(--gold-soft);color:#fff;box-shadow:inset 3px 0 0 var(--gold)}
.pl .n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;background:var(--field);border:1px solid var(--line);color:var(--ink-3)}
.pl a.done .n{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.pl .t{font-size:14px;font-weight:700;line-height:1.3;min-width:0}
.pl .t small{display:block;font-weight:500;font-size:12px;color:var(--ink-3);margin-top:2px}
.marca.feita{border-color:var(--gold);color:var(--gold-2);animation:feito .45s cubic-bezier(.2,.9,.3,1.4)}
@keyframes feito{0%{transform:scale(.94)}60%{transform:scale(1.04)}}

/* Banner: o ponto ativo enche enquanto o tempo passa */
.dots button.on{position:relative;overflow:hidden;background:rgba(255,255,255,.25)}
.dots button.on::after{content:"";position:absolute;inset:0;background:var(--gold);transform-origin:left;animation:encher 7s linear both}
@keyframes encher{from{transform:scaleX(0)}}
.slide.on h2,.slide.on p,.slide.on .tag,.slide.on .acts{animation:subir .6s cubic-bezier(.2,.7,.2,1) backwards}
.slide.on h2{animation-delay:.06s}.slide.on p{animation-delay:.12s}.slide.on .acts{animation-delay:.18s}
@keyframes subir{from{opacity:0;transform:translateY(12px)}}

@media (max-width:980px){
  .aula{grid-template-columns:1fr}
  .pl{position:static;max-height:none}
}
@media (max-width:820px){
  /* No celular o menu desce para o pé da tela, ao alcance do polegar */
  .bar{backdrop-filter:none;background:var(--navy)}
  .bar .wrap{justify-content:space-between}
  .nav{position:fixed;left:0;right:0;bottom:0;z-index:30;flex:none;justify-content:space-around;gap:2px;background:rgba(8,16,28,.97);border-top:1px solid var(--line-2);padding:8px 8px calc(8px + env(safe-area-inset-bottom))}
  .nav a{flex:1;text-align:center;padding:11px 6px;font-size:13px}
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .seta{display:none}
  .p-go{opacity:1;transform:none;padding:5px 9px 5px 6px;font-size:11px}
  .t-prog{flex-direction:row}
  .anel.g{width:64px;height:64px}.anel.g b{font-size:14px}
  .aqui{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}
