/* /desafios + /desafio/{slug} */

.challenges-page,
.challenge-page{background:var(--cream)}

.challenges-hero-floaters img{animation:challenges-float 9s ease-in-out infinite}
.challenges-hero-floaters img:nth-child(1){right:5%;bottom:-8%;left:auto;transform:rotate(-10deg)}
.challenges-hero-floaters img:nth-child(2){right:22%;top:10%;left:auto;width:clamp(85px,10vw,140px);opacity:.34;transform:rotate(12deg);animation-delay:-2.4s}
.challenges-hero-floaters img:nth-child(3){right:38%;bottom:10%;left:auto;width:clamp(70px,8vw,110px);opacity:.2;transform:rotate(-16deg);animation-delay:-4.2s}
@keyframes challenges-float{0%,100%{translate:0 0}50%{translate:0 -10px}}

.challenges-content,
.challenge-content{padding:28px clamp(18px,4vw,48px) 56px}

/* Featured live challenge */
.challenge-feature{
  display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(20px,4vw,40px);
  align-items:center;
  padding:28px clamp(20px,3vw,36px);
  border-radius:20px;
  background:
    radial-gradient(80% 90% at 100% 0%,rgba(177,238,120,.18),transparent 55%),
    linear-gradient(125deg,#05291e 0%,#0a3a2a 48%,#103e30 100%);
  color:#e8f0ea;
  overflow:hidden;position:relative;
}
.challenge-feature-copy{position:relative;z-index:1;min-width:0}
.challenge-live{
  display:inline-flex;align-items:center;gap:6px;
  margin:0 0 10px;padding:4px 10px;border-radius:999px;
  background:rgba(177,238,120,.18);border:1px solid rgba(177,238,120,.35);
  color:var(--lime);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
}
.challenge-live::before{
  content:"";width:6px;height:6px;border-radius:50%;background:var(--lime);
  box-shadow:0 0 0 3px rgba(177,238,120,.25);animation:challenge-pulse 1.6s ease-in-out infinite;
}
@keyframes challenge-pulse{0%,100%{opacity:1}50%{opacity:.45}}
.challenge-chip{
  display:inline-block;margin:0 0 12px;padding:5px 11px;border-radius:999px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  font-size:11px;font-weight:700;letter-spacing:.04em;color:#c5d6c9;
}
.challenge-feature h2{
  margin:0 0 10px;font-size:clamp(1.6rem,3vw,2.35rem);
  letter-spacing:-.03em;line-height:1.05;
}
.challenge-feature h2 a{color:#fff;text-decoration:none}
.challenge-feature h2 a:hover{color:var(--lime)}
.challenge-feature-copy > p{
  margin:0 0 16px;font-size:14px;line-height:1.5;color:#c8d8cd;max-width:46ch;
}
.challenge-feature-meta{
  display:flex;flex-wrap:wrap;gap:10px 18px;margin:0 0 18px;padding:0;list-style:none;
}
.challenge-feature-meta li{font-size:12px;color:#a8bbae}
.challenge-feature-meta strong{
  display:block;font-family:var(--serif);font-size:22px;font-weight:800;color:#fff;letter-spacing:-.02em;
}
.challenge-feature-actions{display:flex;flex-wrap:wrap;gap:8px}

/* Mini pitch of sample shirts */
.challenge-feature-visual{position:relative;min-height:220px}
.challenge-pitch{
  position:relative;height:240px;border-radius:16px;
  background:
    linear-gradient(180deg,rgba(177,238,120,.08),transparent 40%),
    repeating-linear-gradient(0deg,transparent,transparent 23px,rgba(255,255,255,.04) 23px,rgba(255,255,255,.04) 24px),
    #06281e;
  border:1px solid rgba(255,255,255,.1);overflow:hidden;
}
.challenge-pitch-mark{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-family:var(--serif);font-size:72px;font-weight:800;color:rgba(255,255,255,.06);
  letter-spacing:-.04em;pointer-events:none;
}
.challenge-pitch-shirt{
  position:absolute;width:clamp(72px,9vw,110px);height:auto;
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.35));
  transition:transform .35s ease;
}
.challenge-pitch-shirt--gk{left:42%;top:8%;transform:rotate(-4deg)}
.challenge-pitch-shirt--def{left:12%;top:38%;transform:rotate(8deg)}
.challenge-pitch-shirt--mid{right:10%;top:28%;transform:rotate(-11deg)}
.challenge-pitch-shirt--fwd{left:34%;bottom:6%;transform:rotate(5deg)}
.challenge-pitch-shirt--wide{right:28%;bottom:14%;width:clamp(58px,7vw,88px);opacity:.7;transform:rotate(-18deg)}
.challenge-feature:hover .challenge-pitch-shirt--gk{translate:0 -6px}
.challenge-feature:hover .challenge-pitch-shirt--def{translate:-4px -4px}
.challenge-feature:hover .challenge-pitch-shirt--mid{translate:4px -8px}

/* How it works */
.challenges-how{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;
  margin:32px 0 8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.challenges-how-item{
  padding:22px 18px 20px;border-right:1px solid var(--line);
  background:radial-gradient(120% 80% at 0% 0%,rgba(177,238,120,.1),transparent 55%);
}
.challenges-how-item:last-child{border-right:0}
.challenges-how-item .n{
  display:block;font-family:var(--serif);font-size:28px;font-weight:800;
  color:var(--forest);letter-spacing:-.03em;line-height:1;margin-bottom:8px;
}
.challenges-how-item h3{margin:0 0 6px;font-size:15px;letter-spacing:-.01em}
.challenges-how-item p{margin:0;font-size:13px;color:var(--muted);line-height:1.45;max-width:32ch}

/* Challenge cards grid */
.challenges-list{margin-top:36px}
.challenges-list-head{margin:0 0 16px;max-width:48ch}
.challenges-list-head h2{margin:0 0 6px;font-size:clamp(1.3rem,2vw,1.7rem);letter-spacing:-.02em}
.challenges-list-head p{margin:0;font-size:14px;color:var(--muted)}

.challenges-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;
}
.challenge-card{
  display:flex;flex-direction:column;gap:8px;
  padding:16px 16px 18px;border-radius:16px;text-decoration:none;color:inherit;
  background:#fff;border:1px solid #e5e1d6;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.challenge-card:hover{
  transform:translateY(-3px);border-color:#b8c9b4;
  box-shadow:0 14px 32px rgba(7,27,21,.08);color:inherit;
}
.challenge-card-shirts{
  display:flex;align-items:flex-end;justify-content:center;gap:0;
  height:96px;margin:0 -4px 4px;padding:8px 0 0;
  background:
    linear-gradient(180deg,#eef3ee,transparent 70%),
    repeating-linear-gradient(90deg,transparent,transparent 11px,rgba(5,41,30,.04) 11px,rgba(5,41,30,.04) 12px);
  border-radius:10px;overflow:hidden;
}
.challenge-card-shirts img{
  width:72px;height:auto;margin:0 -10px;
  filter:drop-shadow(0 8px 12px rgba(0,0,0,.18));
  transform:rotate(-4deg);
}
.challenge-card-shirts img:nth-child(2){transform:rotate(3deg);z-index:1}
.challenge-card-shirts img:nth-child(3){transform:rotate(-8deg)}
.challenge-card .challenge-chip{
  margin:0;align-self:flex-start;
  background:rgba(5,41,30,.05);border-color:rgba(5,41,30,.1);color:var(--forest);
}
.challenge-card-title{
  font-family:var(--serif);font-size:1.25rem;font-weight:700;
  letter-spacing:-.02em;line-height:1.15;color:var(--ink);
}
.challenge-card-blurb{
  font-size:13px;color:var(--muted);line-height:1.4;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
}
.challenge-card-meta{
  display:flex;gap:14px;margin-top:auto;padding-top:8px;
  font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);
  border-top:1px solid var(--line);
}

.challenges-empty{
  text-align:center;padding:48px 20px;max-width:42ch;margin:0 auto;
}
.challenges-empty h2{margin:0 0 8px;font-size:1.6rem}
.challenges-empty p{margin:0 0 18px;color:var(--muted);font-size:14px}
.challenges-empty-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}

/* Challenge detail */
.challenge-page .entity-back,
.challenges-page .entity-back{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:8px;
  color:#dfece2;font-size:12px;font-weight:700;
}
.challenge-page .entity-back:hover{color:#fff}
.challenge-detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}

.challenge-mission{
  display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.7fr);gap:18px;
  margin:0 0 8px;padding:24px clamp(18px,3vw,28px);
  border-radius:20px;background:#fff;border:1px solid #e5e1d6;
  box-shadow:0 12px 28px rgba(7,27,21,.05);
}
.challenge-mission-main{min-width:0}
.challenge-mission-main h2{
  margin:10px 0 8px;font-size:clamp(1.35rem,2.4vw,1.75rem);letter-spacing:-.03em;color:var(--forest);
}
.challenge-mission-main > p{margin:0 0 10px;font-size:14px;line-height:1.5;color:var(--ink);max-width:52ch}
.challenge-mission-goal{color:var(--muted)!important}
.challenge-mission-meta{
  display:flex;flex-wrap:wrap;gap:10px 18px;margin:14px 0 0;padding:0;list-style:none;
}
.challenge-mission-meta li{font-size:12px;color:var(--muted)}
.challenge-mission-meta strong{
  display:block;font-family:var(--serif);font-size:18px;color:var(--forest);letter-spacing:-.02em;
}
.challenge-mission-side{
  display:flex;flex-direction:column;gap:10px;
  padding:18px;border-radius:16px;
  background:linear-gradient(160deg,#052419,#0a3328);color:#e8f0ea;
}
.challenge-mission-stat{
  padding:10px 0;border-bottom:1px solid rgba(255,255,255,.1);
}
.challenge-mission-stat:last-of-type{border-bottom:0;margin-bottom:4px}
.challenge-mission-stat strong{
  display:block;font-family:var(--serif);font-size:1.7rem;line-height:1;letter-spacing:-.03em;color:#fff;
}
.challenge-mission-stat span{font-size:12px;color:#9fb5a6;font-weight:650}
.challenge-mission-side .button{justify-content:center}

.challenge-how{margin-top:28px}

.challenge-pool{margin-top:36px}
.challenge-pool-layout{
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:14px;align-items:stretch;
}
.challenge-pool .challenge-pitch{height:260px}
.challenge-pool-rail{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;
  padding:14px;border-radius:16px;background:#fff;border:1px solid #e5e1d6;
  align-content:center;
}
.challenge-pool-rail img{
  width:100%;height:auto;aspect-ratio:.78;object-fit:contain;
  background:linear-gradient(180deg,#eef3ee,#e4ebe4);border-radius:10px;padding:6px;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.1));
}
.challenge-pool-actions{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px;
}

.challenge-lb{
  margin:0;padding:0;list-style:none;
  border:1px solid #e5e1d6;border-radius:16px;overflow:hidden;background:#fff;
}
.challenge-lb-row{
  display:grid;grid-template-columns:2.8em 1fr auto;gap:12px;align-items:center;
  padding:14px 16px;border-bottom:1px solid rgba(8,49,35,.08);
}
.challenge-lb-row:last-child{border-bottom:0}
.challenge-lb-row.is-lead{background:linear-gradient(90deg,rgba(177,238,120,.14),transparent 55%)}
.challenge-lb-rank{
  font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--muted);
}
.challenge-lb-row.is-lead .challenge-lb-rank{color:var(--forest)}
.challenge-lb-main{
  display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;
  text-decoration:none;color:inherit;min-width:0;
}
.challenge-lb-main strong{
  font-family:var(--serif);font-size:1.1rem;font-weight:700;letter-spacing:-.02em;
}
.challenge-lb-main:hover strong{color:var(--forest)}
.challenge-lb-main .muted{font-size:12px}
.challenge-lb-harmony{
  font-family:var(--serif);font-size:1.35rem;font-weight:800;color:var(--forest);
}
.challenge-lb-harmony small{font-size:.55em;font-weight:650;opacity:.55}
.challenge-empty{text-align:center;padding:36px 16px;color:var(--muted);font-size:14px}
.challenge-empty a{display:inline-block;margin-top:10px}
.challenge-empty--rich{
  padding:40px 20px;border:1px dashed #c9d4c6;border-radius:16px;background:#fbfaf6;
}
.challenge-empty--rich h3{
  margin:8px 0 10px;font-size:clamp(1.25rem,2.4vw,1.55rem);color:var(--forest);
}
.challenge-empty--rich p{margin:0 auto 18px;max-width:44ch;line-height:1.45}

@media (max-width:900px){
  .challenge-feature{grid-template-columns:1fr}
  .challenge-feature-visual{order:-1}
  .challenge-pitch{height:180px}
  .challenges-how{grid-template-columns:1fr}
  .challenges-how-item{border-right:0;border-bottom:1px solid var(--line)}
  .challenges-how-item:last-child{border-bottom:0}
  .challenge-mission{grid-template-columns:1fr}
  .challenge-pool-layout{grid-template-columns:1fr}
  .challenge-pool-rail{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:560px){
  .challenge-pool-rail{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){
  .challenges-hero-floaters img,
  .challenge-live::before{animation:none}
  .challenge-card,
  .challenge-pitch-shirt{transition:none}
}
