:root{
  --felt:#0e5c3f;--felt2:#0a4530;--ouro:#e7b84f;--prata:#c9d1d9;--bronze:#cd8b52;
  --bg:#0a1712;--card:#12241b;--linha:#1f3a2c;--txt:#eaf2ec;--dim:#8fb3a0;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  background:radial-gradient(1200px 600px at 50% -10%,#12402c 0%,#0a1712 60%);
  color:var(--txt);min-height:100vh;line-height:1.45;
}
.wrap{max-width:920px;margin:0 auto;padding:0 16px}
a{color:inherit}
.dim{color:var(--dim)}
.l{text-align:left}

/* topo */
.topo{background:linear-gradient(180deg,#0d3524,#0a2419);border-bottom:1px solid var(--linha);position:sticky;top:0;z-index:20}
.topo-in{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px}
.chip-logo{width:48px;height:48px;border-radius:50%;overflow:hidden;background:#000;
  border:2px solid var(--ouro);box-shadow:0 2px 10px rgba(0,0,0,.4);flex:0 0 auto}
.chip-logo img{width:100%;height:100%;object-fit:cover;display:block}
.brand h1{font-size:19px;letter-spacing:.3px}
.brand p{font-size:12px;color:var(--ouro);font-weight:600;text-transform:uppercase;letter-spacing:1px}
nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
nav a{padding:8px 12px;border-radius:8px;font-size:14px;font-weight:600;color:var(--dim);text-decoration:none}
nav a.on,nav a:hover{background:rgba(231,184,79,.14);color:var(--txt)}
.linkbtn{background:none;border:none;color:var(--dim);font:inherit;font-weight:600;cursor:pointer;padding:8px 12px}
.linkbtn:hover{color:var(--txt)}

main.wrap{padding-top:22px;padding-bottom:60px}
.flash{padding:12px 14px;border-radius:10px;margin-bottom:18px;font-weight:600}
.flash.ok{background:#123d29;border:1px solid #1f7a4d;color:#a9f0c7}
.flash.erro{background:#3d1616;border:1px solid #7a1f1f;color:#f0a9a9}

.secao{font-size:20px;margin-bottom:16px}
.vazio{text-align:center;padding:60px 20px;background:var(--card);border:1px solid var(--linha);border-radius:16px}
.vazio p{font-size:18px;margin-bottom:14px}

/* pódio */
.podio{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:10px;align-items:end;margin-bottom:22px}
.poste{background:var(--card);border:1px solid var(--linha);border-radius:14px;padding:16px 10px;text-align:center;position:relative;overflow:hidden}
.poste .pos{font-size:13px;font-weight:800;opacity:.7}
.poste .nome{font-size:16px;font-weight:800;margin:6px 0 2px;word-break:break-word}
.poste .pts{font-size:26px;font-weight:900;letter-spacing:.5px}
.poste .sub{font-size:11px;color:var(--dim);margin-top:2px}
.poste.p1{padding-top:26px;padding-bottom:26px;transform:translateY(-6px)}
.poste::before{content:"";position:absolute;inset:0 0 auto 0;height:4px}
.ouro{border-color:var(--ouro)}.ouro::before{background:var(--ouro)}.ouro .pts{color:var(--ouro)}
.prata{border-color:var(--prata)}.prata::before{background:var(--prata)}
.bronze{border-color:var(--bronze)}.bronze::before{background:var(--bronze)}

.barra-tabela{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}

/* tabela ranking */
table.rank{width:100%;border-collapse:collapse;background:var(--card);border-radius:12px;overflow:hidden;border:1px solid var(--linha)}
table.rank th,table.rank td{padding:11px 10px;text-align:center;font-size:15px}
table.rank thead th{background:#0f2a1e;color:var(--dim);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
table.rank tbody tr{border-top:1px solid var(--linha)}
table.rank td.l,table.rank th.l{text-align:left;font-weight:700}
.rankn{font-weight:800;color:var(--dim);width:36px}
.tot{font-weight:800;color:var(--ouro)}
tr.lider .rankn{color:var(--ouro)}
tr.lider td.l{color:#fff}

/* grade completa */
.grade-wrap{margin-top:14px;overflow-x:auto;border:1px solid var(--linha);border-radius:12px}
table.grade{border-collapse:collapse;font-size:12px;min-width:100%}
table.grade th,table.grade td{padding:6px 8px;text-align:center;white-space:nowrap;border-bottom:1px solid var(--linha)}
table.grade thead th{background:#0f2a1e;color:var(--dim);position:sticky;top:0}
table.grade td.l,table.grade th.l{text-align:left;font-weight:700;position:sticky;left:0;background:var(--card)}
table.grade td.z{color:#33513f}
table.grade td.g1{color:#062;background:var(--ouro);font-weight:800;border-radius:4px}
table.grade .tot{color:var(--ouro);font-weight:800}

/* etapas */
.etapas-lista{display:flex;flex-direction:column;gap:10px}
.etapa-card{background:var(--card);border:1px solid var(--linha);border-radius:12px;overflow:hidden}
.etapa-card summary{display:flex;align-items:center;gap:12px;padding:14px;cursor:pointer;list-style:none}
.etapa-card summary::-webkit-details-marker{display:none}
.et-num{font-weight:900;color:var(--ouro);font-size:18px;min-width:34px}
.et-info{display:flex;flex-direction:column;flex:1}
.et-info .dim{font-size:12px}
.et-camp{font-size:13px;font-weight:700;white-space:nowrap}
table.et-result{width:100%;border-collapse:collapse;margin:0 0 6px}
table.et-result td{padding:8px 14px;border-top:1px solid var(--linha);font-size:14px}
table.et-result td.p{width:44px;font-weight:800;color:var(--dim)}
table.et-result td.pt{text-align:right;font-weight:700;color:var(--ouro);width:70px}
table.et-result tr.g1 td{background:rgba(231,184,79,.1)}
table.et-result tr.g1 td.p{color:var(--ouro)}
.et-acoes{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--linha)}
.et-acoes form{display:inline}

/* botões */
.btn{display:inline-block;background:var(--ouro);color:#1a1206;border:none;border-radius:10px;padding:11px 18px;font-weight:800;font-size:15px;cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.07)}
.btn.sm{padding:7px 12px;font-size:13px;border-radius:8px}
.btn.grande{padding:14px 26px;font-size:16px}
.btn.ghost{background:transparent;border:1px solid var(--linha);color:var(--txt)}
.btn.danger{background:#7a1f1f;color:#fff}

/* login */
.card-login{max-width:360px;margin:40px auto;background:var(--card);border:1px solid var(--linha);border-radius:16px;padding:26px;text-align:center}
.card-login h2{margin-bottom:6px}
.form-login{display:flex;gap:8px;margin-top:18px}
.form-login input{flex:1;padding:12px;border-radius:10px;border:1px solid var(--linha);background:#0a1912;color:var(--txt);font-size:16px}

/* form etapa */
.form-etapa{background:var(--card);border:1px solid var(--linha);border-radius:16px;padding:18px}
.form-etapa .linha{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.form-etapa label{font-size:13px;color:var(--dim);font-weight:600}
.form-etapa .cresce{flex:1;min-width:200px}
.form-etapa input[type=date],.form-etapa input[type=text]{width:100%;padding:10px;border-radius:9px;border:1px solid var(--linha);background:#0a1912;color:var(--txt);font-size:15px;margin-top:4px}
.ajuda{background:#0f2a1e;border:1px solid var(--linha);border-radius:10px;padding:10px 12px;font-size:13px;color:var(--dim);margin-bottom:16px}
.montar{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.montar h3{font-size:14px;margin-bottom:10px}
.ordem-lista{list-style:none;min-height:80px;display:flex;flex-direction:column;gap:6px}
.ordem-lista li{display:flex;align-items:center;gap:8px;background:#0f2a1e;border:1px solid var(--linha);border-radius:9px;padding:8px 10px}
.ordem-lista .op{font-weight:900;color:var(--ouro);min-width:30px}
.ordem-lista .on{flex:1;font-weight:700}
.ordem-lista .opt{color:var(--dim);font-size:13px;font-weight:700}
.ordem-lista .x{background:none;border:none;color:#f0a9a9;font-size:18px;cursor:pointer;line-height:1;padding:0 4px}
.ordem-lista .mv{background:#12241b;border:1px solid var(--linha);color:var(--dim);border-radius:6px;cursor:pointer;width:24px;height:24px;font-size:13px}
.ordem-vazia{color:var(--dim);font-size:13px;padding:14px;text-align:center;border:1px dashed var(--linha);border-radius:9px}
.add-jogador{display:flex;gap:6px;margin-bottom:10px}
.add-jogador input{flex:1;padding:8px;border-radius:8px;border:1px solid var(--linha);background:#0a1912;color:var(--txt)}
.chips{display:flex;flex-wrap:wrap;gap:6px;max-height:340px;overflow-y:auto}
.chip{background:#12241b;border:1px solid var(--linha);color:var(--txt);border-radius:20px;padding:7px 13px;font-size:13px;font-weight:600;cursor:pointer}
.chip:hover{border-color:var(--ouro)}
.chip.usado{background:var(--ouro);color:#1a1206;border-color:var(--ouro)}
.rodape-form{display:flex;gap:10px;margin-top:18px;align-items:center}

/* ===== UPGRADE VISUAL (hero-inspired) ===== */
/* brilho ambiente "night" atrás de tudo */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(55rem 38rem at 88% -8%, rgba(231,184,79,.07), transparent 60%),
    radial-gradient(48rem 40rem at -5% 8%, rgba(16,92,63,.20), transparent 55%);}

/* nav translúcido (glass) que condensa no scroll */
.topo{background:linear-gradient(180deg,rgba(13,53,36,.72),rgba(10,36,25,.66));
  backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);
  transition:background .3s ease,box-shadow .3s ease,border-color .3s ease}
.topo.scrolled{background:linear-gradient(180deg,rgba(10,23,18,.85),rgba(10,23,18,.72));
  box-shadow:0 8px 28px rgba(0,0,0,.38);border-bottom-color:rgba(231,184,79,.18)}

/* botões modernos: leve elevação e brilho no hover */
.btn{transition:filter .2s ease,transform .15s ease,box-shadow .2s ease;box-shadow:0 2px 10px rgba(231,184,79,.14)}
.btn:hover{filter:brightness(1.07);transform:translateY(-1px);box-shadow:0 8px 20px rgba(231,184,79,.28)}
.btn:active{transform:translateY(0);box-shadow:0 2px 8px rgba(231,184,79,.2)}
.btn.ghost{box-shadow:none}.btn.ghost:hover{box-shadow:0 6px 16px rgba(0,0,0,.25)}

/* revelação com blur/fade ao entrar na tela (só quando o JS liga .js-reveal) */
.js-reveal .brand,
.js-reveal .podio .poste,.js-reveal .secao,.js-reveal .barra-tabela,
.js-reveal table.rank,.js-reveal .grade-wrap,.js-reveal .etapa-card,
.js-reveal .foto-item,.js-reveal .upload-fotos,.js-reveal .bloco,
.js-reveal .sobre-hero,.js-reveal .vazio,.js-reveal .card-login,.js-reveal .form-etapa{
  opacity:0;transform:translateY(16px);filter:blur(10px);
  transition:opacity .8s ease,transform .8s cubic-bezier(.22,.61,.36,1),filter .8s ease;will-change:opacity,transform}
.js-reveal .rv-show{opacity:1!important;transform:none!important;filter:none!important}
@media(prefers-reduced-motion:reduce){
  .js-reveal .brand,.js-reveal .podio .poste,.js-reveal .secao,.js-reveal .barra-tabela,
  .js-reveal table.rank,.js-reveal .grade-wrap,.js-reveal .etapa-card,.js-reveal .foto-item,
  .js-reveal .upload-fotos,.js-reveal .bloco,.js-reveal .sobre-hero,.js-reveal .vazio,
  .js-reveal .card-login,.js-reveal .form-etapa{opacity:1;transform:none;filter:none;transition:none}
}

/* sobre */
.sobre{max-width:720px;margin:0 auto}
.sobre-hero{text-align:center;padding:20px 16px 28px}
.chip-logo.grande{width:128px;height:128px;border-width:3px;margin:0 auto 16px}
.sobre-hero h2{font-size:26px;letter-spacing:.3px}
.sobre-hero p{margin-top:4px}
.bloco{background:var(--card);border:1px solid var(--linha);border-radius:16px;padding:20px 22px;margin-bottom:16px}
.bloco h3{font-size:18px;margin-bottom:12px;color:var(--ouro)}
.bloco p{margin-bottom:10px}
.bloco p:last-child{margin-bottom:0}
.bloco a{color:var(--ouro);font-weight:700}
.lista-check{list-style:none;margin:6px 0 12px;display:flex;flex-direction:column;gap:8px}
.lista-check li{padding-left:26px;position:relative}
.lista-check li::before{content:"♠";position:absolute;left:0;color:var(--ouro)}
.local-card{text-align:center}
.local-card .endereco{font-size:19px;margin-bottom:16px}
.local-card .btn{margin-top:4px}

/* galeria */
.upload-fotos{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--card);border:1px solid var(--linha);border-radius:14px;padding:14px 16px;margin-bottom:18px}
.file-label{cursor:pointer}
.file-label input{display:none}
.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.foto-item{position:relative;margin:0;border-radius:12px;overflow:hidden;border:1px solid var(--linha);background:var(--card);aspect-ratio:1}
.foto-link{display:block;width:100%;height:100%}
.foto-item img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in;transition:transform .25s}
.foto-item:hover img{transform:scale(1.06)}
.foto-del{position:absolute;top:6px;right:6px;margin:0}
.del-btn{width:28px;height:28px;border-radius:50%;border:none;background:rgba(122,31,31,.85);color:#fff;font-size:14px;font-weight:800;cursor:pointer;line-height:1;display:grid;place-items:center;opacity:0;transition:opacity .15s}
.foto-item:hover .del-btn,.del-btn:focus{opacity:1}
.lightbox{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.9);display:grid;place-items:center;padding:20px}
.lightbox[hidden]{display:none}
.lightbox img{max-width:96vw;max-height:90vh;border-radius:8px;box-shadow:0 8px 40px rgba(0,0,0,.6)}
.lb-close{position:absolute;top:16px;right:18px;width:44px;height:44px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:22px;cursor:pointer}
.lb-close:hover{background:rgba(255,255,255,.25)}

/* ===== LANDING (Início) ===== */
:root{--display:"Oswald",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.secao{font-family:var(--display);text-transform:uppercase;letter-spacing:.6px;font-weight:600}
.brand h1{font-family:var(--display);text-transform:uppercase;letter-spacing:.5px}
.sobre-hero h2{font-family:var(--display);text-transform:uppercase;letter-spacing:.5px}

.lp-hero{position:relative;padding:52px 0 28px}
.lp-hero-in{display:grid;grid-template-columns:1.35fr .65fr;gap:32px;align-items:center}
.lp-kicker{font-family:var(--display);text-transform:uppercase;letter-spacing:2px;font-size:12.5px;color:var(--ouro);font-weight:500;margin-bottom:14px}
.lp-title{font-family:var(--display);font-weight:700;text-transform:uppercase;line-height:.9;letter-spacing:.5px;font-size:clamp(3rem,9vw,6rem);margin:0}
.lp-title span{display:block;color:var(--ouro)}
.lp-lede{max-width:46ch;margin:22px 0 26px;font-size:17px;color:#cfe3d7}
.lp-cta{display:flex;gap:12px;flex-wrap:wrap}
.lp-suits{display:flex;gap:14px;margin-top:26px;font-size:22px}
.lp-suits .s-r{color:#d9584f}.lp-suits .s-b{color:#dfe8e2}
.lp-hero-badge{justify-self:center}
.lp-hero-badge img{width:min(300px,72vw);aspect-ratio:1;object-fit:cover;border-radius:50%;border:2px solid rgba(231,184,79,.5);box-shadow:0 12px 50px rgba(0,0,0,.5),0 0 0 10px rgba(231,184,79,.04)}

.lp-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:34px 0;border-top:1px solid var(--linha);border-bottom:1px solid var(--linha)}
.lp-stat{padding:20px 14px;text-align:center;border-left:1px solid var(--linha)}
.lp-stat:first-child{border-left:none}
.lp-stat .n{display:block;font-family:var(--display);font-weight:700;font-size:40px;line-height:1;color:var(--txt);font-variant-numeric:tabular-nums}
.lp-stat .l{display:block;margin-top:8px;font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.5px}

.lp-lead{display:flex;align-items:center;gap:22px;flex-wrap:wrap;background:linear-gradient(100deg,rgba(231,184,79,.10),transparent 62%),var(--card);border:1px solid var(--linha);border-left:4px solid var(--ouro);border-radius:14px;padding:22px 24px;margin-bottom:34px}
.lp-lead-tag{font-family:var(--display);text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--ouro);font-weight:600;writing-mode:vertical-rl;transform:rotate(180deg)}
.lp-lead-main{flex:1;min-width:180px}
.lp-lead-name{font-family:var(--display);text-transform:uppercase;font-weight:700;font-size:clamp(1.8rem,5vw,2.6rem);line-height:1;color:#fff}
.lp-lead-sub{margin-top:6px;color:var(--dim);font-size:14px}
.lp-lead-pts{text-align:right}
.lp-lead-pts .n{display:block;font-family:var(--display);font-weight:700;font-size:38px;color:var(--ouro);line-height:1;font-variant-numeric:tabular-nums}
.lp-lead-pts .l{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:1px}
.lp-lead-link{width:100%;text-align:right;color:var(--ouro);font-weight:700;font-size:14px;text-decoration:none}
.lp-lead-link:hover{text-decoration:underline}
.lp-lead-vazio{border-left-color:var(--linha)}
.lp-lead-vazio p{margin:0;max-width:52ch}

.lp-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.lp-more{color:var(--ouro);font-weight:700;font-size:14px;text-decoration:none;white-space:nowrap}
.lp-more:hover{text-decoration:underline}
.lp-momentos{margin-bottom:38px}
.lp-foto-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.lp-foto{aspect-ratio:1;overflow:hidden;border-radius:10px;border:1px solid var(--linha);display:block}
.lp-foto img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.lp-foto:hover img{transform:scale(1.07)}
.lp-foto:nth-child(n+5){display:none}
@media(min-width:620px){.lp-foto-strip{grid-template-columns:repeat(8,1fr)}.lp-foto:nth-child(n+5){display:block}}

.lp-info{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:20px}
.lp-card{background:var(--card);border:1px solid var(--linha);border-radius:14px;padding:22px 24px}
.lp-card .secao{margin-bottom:12px}
.lp-card p{color:#cfe3d7}
.lp-local{display:flex;flex-direction:column}
.lp-endereco{font-size:20px;margin-bottom:16px!important;color:#fff}
.lp-local .btn{align-self:flex-start;margin-top:auto}

.js-reveal .lp-hero-txt,.js-reveal .lp-hero-badge,.js-reveal .lp-stat,.js-reveal .lp-lead,.js-reveal .lp-foto,.js-reveal .lp-card{opacity:0;transform:translateY(16px);filter:blur(10px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,.61,.36,1),filter .8s ease}
@media(prefers-reduced-motion:reduce){.js-reveal .lp-hero-txt,.js-reveal .lp-hero-badge,.js-reveal .lp-stat,.js-reveal .lp-lead,.js-reveal .lp-foto,.js-reveal .lp-card{opacity:1;transform:none;filter:none;transition:none}}

@media(max-width:760px){
  .lp-hero-in{grid-template-columns:1fr;gap:18px}
  .lp-hero-badge{order:-1;justify-self:start}
  .lp-hero-badge img{width:104px}
  .lp-stats{grid-template-columns:repeat(2,1fr)}
  .lp-stat:nth-child(3){border-left:none}
  .lp-stat:nth-child(-n+2){border-bottom:1px solid var(--linha)}
  .lp-lead-pts{text-align:left}
  .lp-lead-link{text-align:left}
  .lp-lead-tag{writing-mode:horizontal-tb;transform:none}
  .lp-info{grid-template-columns:1fr}
}

.rodape{border-top:1px solid var(--linha);padding:18px 0;margin-top:40px;font-size:12px;text-align:center}

@media(max-width:620px){
  .podio .poste .pts{font-size:22px}
  .montar{grid-template-columns:1fr}
  .brand h1{font-size:16px}
  nav a{padding:7px 9px;font-size:13px}
}
