/* ============================================================
   Desafio de Titans — Design System
   Night Speed base + Titans gold premium layer
   ============================================================ */

:root {
  --tt-bg:        #06070D;
  --tt-surface:   #0F1220;
  --tt-elevated:  #151B2E;
  --tt-fire:      #FF4500;
  --tt-fire-dim:  rgba(255,69,0,.15);
  --tt-fire-glow: rgba(255,69,0,.35);
  --tt-gold:      #FFB800;
  --tt-gold-dim:  rgba(255,184,0,.12);
  --tt-gold-glow: rgba(255,184,0,.35);
  --tt-tx:        #EEF1FF;
  --tt-tx-2:      #8A92B0;
  --tt-tx-m:      #4A5268;
  --tt-border:    rgba(255,255,255,.07);
  --tt-r:         8px;
  --tt-r-xl:      14px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: 'DM Sans', sans-serif;
  background: var(--tt-bg);
  color: var(--tt-tx);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  padding-bottom: 68px;
}

/* ── Navbar override (titans — igual às outras páginas, --fire: #EE00EE) ── */
.navbar { background: rgba(6,7,13,.97) !important; border-bottom: 1px solid rgba(255,255,255,.06) !important; backdrop-filter: blur(14px); position: relative; z-index: 1030; }
.navbar .nav-link { color: rgba(255,255,255,.85) !important; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: #EE00EE !important; }
.navbar .dropdown-menu { background: rgba(9,11,20,.98) !important; border-color: rgba(255,255,255,.08) !important; color: rgba(255,255,255,.85) !important; --bs-dropdown-color: rgba(255,255,255,.85); }
.navbar .dropdown-item { color: rgba(255,255,255,.6) !important; }
.navbar .dropdown-item:hover { color: #EE00EE !important; background: rgba(238,0,238,.08) !important; }
/* Scoped ao botão "Entrar" apenas — evita afetar dropdown do usuário */
.navbar .btn.btn-outline-primary { color: #EE00EE !important; border-color: #EE00EE !important; background: transparent !important; box-shadow: none !important; }
.navbar .btn.btn-outline-primary:hover { background: #EE00EE !important; color: #fff !important; }
/* Remove foco/borda indesejada no dropdown do usuário */
.navbar .nav-link.dropdown-toggle,
.navbar .nav-link.dropdown-toggle:focus,
.navbar .nav-link.dropdown-toggle:focus-visible,
#navbarUser { outline: none !important; box-shadow: none !important; border: none !important; }
.navbar-toggler { border-color: rgba(255,255,255,.25) !important; }
.navbar-toggler-icon { filter: invert(1); }

/* ── HERO ── */
.titans-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--tt-bg);
}

.titans-hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 60% 50%, rgba(255,69,0,.08) 0%, transparent 70%),
    radial-gradient(ellipse 50% 50% at 20% 80%, rgba(255,184,0,.05) 0%, transparent 60%),
    var(--tt-bg);
  z-index: 0;
}

.titans-hero-speedlines {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    -62deg,
    transparent 60px,
    rgba(255,69,0,.018) 61px
  );
  z-index: 0;
}

.titans-hero-content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 120px 0 80px;
}

.titans-tag {
  display: inline-block;
  font-family: 'DM Sans', sans-serif;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--tt-gold);
  border: 1px solid rgba(255,184,0,.25);
  background: rgba(255,184,0,.08);
  padding: .35rem .9rem;
  border-radius: 100px;
  margin-bottom: 1.5rem;
}

.titans-hero-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
  font-size: clamp(3.5rem, 10vw, 8rem);
  line-height: .92;
  text-transform: uppercase;
  color: var(--tt-tx);
  letter-spacing: -.01em;
  margin-bottom: 1rem;
}

.titans-hero-title .highlight-fire {
  color: var(--tt-fire);
  text-shadow: 0 0 60px rgba(255,69,0,.4);
}

.titans-hero-title .highlight-gold {
  color: var(--tt-gold);
  text-shadow: 0 0 60px rgba(255,184,0,.4);
}

.titans-hero-sub {
  font-size: 1.1rem;
  color: var(--tt-tx-2);
  max-width: 520px;
  line-height: 1.65;
  margin-bottom: 2.5rem;
}

.titans-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

.titans-meta-item {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .875rem;
  color: var(--tt-tx-2);
}

.titans-meta-item i { color: var(--tt-gold); font-size: .95rem; }

/* ── Botões ── */
.btn-titans-fire {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .85rem 2rem;
  background: var(--tt-fire);
  color: #fff;
  border: none;
  border-radius: 2px;
  font-family: 'DM Sans', sans-serif;
  font-size: .95rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s ease, box-shadow .15s ease;
}
.btn-titans-fire:hover {
  background: #e03c00;
  box-shadow: 0 6px 24px var(--tt-fire-glow);
  color: #fff;
  text-decoration: none;
}

.btn-titans-gold {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .85rem 2rem;
  background: var(--tt-gold);
  color: #000;
  border: none;
  border-radius: 2px;
  font-family: 'DM Sans', sans-serif;
  font-size: .95rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s ease, box-shadow .15s ease;
}
.btn-titans-gold:hover {
  background: #e6a600;
  box-shadow: 0 6px 24px var(--tt-gold-glow);
  color: #000;
  text-decoration: none;
}

.btn-titans-outline {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .8rem 1.75rem;
  background: transparent;
  color: var(--tt-tx);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 2px;
  font-family: 'DM Sans', sans-serif;
  font-size: .92rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.btn-titans-outline:hover {
  border-color: var(--tt-fire);
  background: var(--tt-fire-dim);
  color: var(--tt-tx);
  text-decoration: none;
}

/* ── Hero shield decoration ── */
.titans-shield {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.titans-shield-ring {
  width: 320px;
  height: 320px;
  border-radius: 50%;
  border: 1px solid rgba(255,184,0,.15);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.titans-shield-ring::before {
  content: '';
  position: absolute;
  inset: 16px;
  border-radius: 50%;
  border: 1px solid rgba(255,69,0,.12);
}
.titans-shield-inner {
  width: 200px;
  height: 200px;
  background: var(--tt-elevated);
  border: 1px solid rgba(255,184,0,.2);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 60px rgba(255,184,0,.08), inset 0 0 40px rgba(255,69,0,.04);
}
.titans-shield-icon {
  font-size: 3.5rem;
  color: var(--tt-gold);
  line-height: 1;
  margin-bottom: .25rem;
  text-shadow: 0 0 30px var(--tt-gold-glow);
}
.titans-shield-label {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--tt-gold);
}

/* ── Info strips ── */
.titans-strips {
  background: var(--tt-elevated);
  border-top: 1px solid rgba(255,184,0,.1);
  border-bottom: 1px solid rgba(255,184,0,.1);
  padding: 1.25rem 0;
}

.titans-strip-item {
  display: flex;
  align-items: center;
  gap: .65rem;
  font-size: .85rem;
  font-weight: 600;
  color: var(--tt-tx);
  padding: .35rem 0;
  border-right: 1px solid rgba(255,255,255,.06);
}
.titans-strip-item:last-child { border-right: none; }
.titans-strip-item i { color: var(--tt-gold); font-size: 1.1rem; }
.titans-strip-item span { color: var(--tt-tx-2); font-weight: 400; margin-left: .15rem; }

/* ── Regras section ── */
.titans-section {
  padding: 5rem 0;
}

.titans-section-label {
  font-family: 'DM Sans', sans-serif;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--tt-gold);
  margin-bottom: .75rem;
}

.titans-section-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: clamp(2rem, 5vw, 3.25rem);
  text-transform: uppercase;
  color: var(--tt-tx);
  line-height: 1;
  margin-bottom: 1rem;
}

.titans-rule-card {
  background: var(--tt-surface);
  border: 1px solid var(--tt-border);
  border-left: 3px solid var(--tt-gold);
  border-radius: var(--tt-r);
  padding: 1.5rem;
  height: 100%;
  transition: border-color .2s, box-shadow .2s;
}
.titans-rule-card:hover {
  border-left-color: var(--tt-fire);
  box-shadow: 0 0 20px rgba(255,69,0,.1);
}
.titans-rule-icon {
  font-size: 1.75rem;
  color: var(--tt-gold);
  margin-bottom: .75rem;
}
.titans-rule-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--tt-tx);
  margin-bottom: .5rem;
}
.titans-rule-text { font-size: .875rem; color: var(--tt-tx-2); line-height: 1.6; }

/* ── CTA section ── */
.titans-cta-section {
  padding: 4rem 0;
  border-top: 1px solid var(--tt-border);
}

.titans-cta-box {
  background: var(--tt-surface);
  border: 1px solid rgba(255,184,0,.15);
  border-radius: var(--tt-r-xl);
  padding: 3rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.titans-cta-box::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 60% at 50% 0%, rgba(255,184,0,.05) 0%, transparent 70%);
  pointer-events: none;
}

/* ── Form inscricao ── */
.titans-form-label {
  display: block;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--tt-tx-2);
  margin-bottom: .4rem;
}
.titans-form-input {
  width: 100%;
  background: var(--tt-bg);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--tt-r);
  padding: .75rem 1rem;
  color: var(--tt-tx);
  font-family: 'DM Sans', sans-serif;
  font-size: .95rem;
  transition: border-color .15s;
  outline: none;
}
.titans-form-input:focus { border-color: var(--tt-gold); box-shadow: 0 0 0 3px rgba(255,184,0,.1); }
.titans-form-input::placeholder { color: var(--tt-tx-m); }

/* ── DASHBOARD ── */
.titans-dash-header {
  background: var(--tt-elevated);
  border-bottom: 1px solid rgba(255,184,0,.1);
  padding: 1.5rem 0;
}
.titans-dash-team-name {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  text-transform: uppercase;
  color: var(--tt-tx);
  line-height: 1;
}
.titans-dash-team-name span { color: var(--tt-gold); }
.titans-dash-status {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .3rem .8rem;
  border-radius: 100px;
}
.titans-dash-status.aprovado { background: rgba(34,197,94,.12); color: #22c55e; border: 1px solid rgba(34,197,94,.2); }
.titans-dash-status.pendente { background: rgba(245,158,11,.12); color: #f59e0b; border: 1px solid rgba(245,158,11,.2); }

/* ── Stat cards ── */
.titans-stat-card {
  background: var(--tt-surface);
  border: 1px solid var(--tt-border);
  border-top: 3px solid var(--tt-gold);
  border-radius: var(--tt-r);
  padding: 1.25rem 1.5rem;
  position: relative;
  overflow: hidden;
}
.titans-stat-card.fire-accent { border-top-color: var(--tt-fire); }
.titans-stat-card.green-accent { border-top-color: #22c55e; }
.titans-stat-card .ghost-icon {
  position: absolute;
  right: 1rem;
  bottom: .5rem;
  font-size: 3rem;
  opacity: .04;
  color: var(--tt-gold);
}
.titans-stat-label {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--tt-tx-m);
  margin-bottom: .4rem;
}
.titans-stat-value {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 2.25rem;
  color: var(--tt-tx);
  line-height: 1;
}
.titans-stat-sub { font-size: .8rem; color: var(--tt-tx-2); margin-top: .25rem; }

/* ── Progress bar ── */
.titans-progress-wrap {
  background: var(--tt-surface);
  border: 1px solid var(--tt-border);
  border-radius: var(--tt-r);
  padding: 1.5rem;
}
.titans-progress-label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: .75rem;
}
.titans-progress-label .left { font-size: .8rem; font-weight: 600; color: var(--tt-tx-2); text-transform: uppercase; letter-spacing: .06em; }
.titans-progress-label .right { font-family: 'Barlow Condensed', sans-serif; font-size: 1.1rem; font-weight: 700; color: var(--tt-gold); }
.titans-progress-track {
  height: 8px;
  background: rgba(255,255,255,.06);
  border-radius: 100px;
  overflow: hidden;
}
.titans-progress-fill {
  height: 100%;
  background: var(--tt-gold);
  border-radius: 100px;
  transition: width .6s cubic-bezier(.4,0,.2,1);
}
.titans-progress-fill.critical { background: var(--tt-fire); box-shadow: 0 0 12px var(--tt-fire-glow); }

/* ── Athletes table ── */
.titans-table-wrap {
  background: var(--tt-surface);
  border: 1px solid var(--tt-border);
  border-radius: var(--tt-r-xl);
  overflow: hidden;
}
.titans-table-header {
  background: var(--tt-elevated);
  border-bottom: 1px solid var(--tt-border);
  padding: 1rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.titans-table-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--tt-tx);
}
.titans-table { width: 100%; border-collapse: collapse; }
.titans-table thead th {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--tt-tx-m);
  padding: .75rem 1.5rem;
  background: rgba(255,255,255,.02);
  border-bottom: 1px solid var(--tt-border);
  text-align: left;
}
.titans-table tbody tr {
  border-bottom: 1px solid rgba(255,255,255,.04);
  transition: background .15s;
}
.titans-table tbody tr:last-child { border-bottom: none; }
.titans-table tbody tr:hover { background: rgba(255,255,255,.03); }
.titans-table tbody td {
  padding: .9rem 1.5rem;
  font-size: .875rem;
  color: var(--tt-tx);
  vertical-align: middle;
}
.titans-table .athlete-num {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: var(--tt-gold);
  width: 48px;
}
.titans-table .athlete-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--tt-elevated);
  border: 1px solid rgba(255,184,0,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: var(--tt-gold);
  flex-shrink: 0;
}
.titans-table .athlete-name { font-weight: 600; }
.titans-table .athlete-email { font-size: .8rem; color: var(--tt-tx-2); }

.btn-remove {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .35rem .7rem;
  background: rgba(239,68,68,.1);
  color: #ef4444;
  border: 1px solid rgba(239,68,68,.2);
  border-radius: var(--tt-r);
  font-size: .78rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background .15s, box-shadow .15s;
  font-family: 'DM Sans', sans-serif;
}
.btn-remove:hover {
  background: rgba(239,68,68,.2);
  box-shadow: 0 0 12px rgba(239,68,68,.2);
  color: #ef4444;
}

/* ── Modal ── */
.titans-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(6,7,13,.9);
  z-index: 1050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
}
.titans-modal-overlay.active { opacity: 1; pointer-events: all; }
.titans-modal {
  background: var(--tt-surface);
  border: 1px solid rgba(255,184,0,.15);
  border-radius: var(--tt-r-xl);
  width: 100%;
  max-width: 520px;
  max-height: 90vh;
  overflow-y: auto;
  transform: translateY(12px);
  transition: transform .2s;
}
.titans-modal-overlay.active .titans-modal { transform: translateY(0); }
.titans-modal-top {
  background: var(--tt-elevated);
  border-bottom: 1px solid var(--tt-border);
  padding: 1.25rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.titans-modal-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--tt-tx);
}
.titans-modal-close {
  background: none;
  border: none;
  color: var(--tt-tx-2);
  font-size: 1.25rem;
  cursor: pointer;
  padding: .2rem;
  line-height: 1;
  transition: color .15s;
}
.titans-modal-close:hover { color: var(--tt-tx); }
.titans-modal-body { padding: 1.5rem; }

.titans-search-input-wrap { position: relative; margin-bottom: 1rem; }
.titans-search-input-wrap i {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--tt-tx-m);
  font-size: .9rem;
}
.titans-search-input {
  width: 100%;
  background: var(--tt-bg);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--tt-r);
  padding: .75rem 1rem .75rem 2.5rem;
  color: var(--tt-tx);
  font-family: 'DM Sans', sans-serif;
  font-size: .9rem;
  outline: none;
  transition: border-color .15s;
}
.titans-search-input:focus { border-color: var(--tt-gold); }
.titans-search-input::placeholder { color: var(--tt-tx-m); }

.titans-search-results { list-style: none; }
.titans-search-results li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .75rem;
  border-radius: var(--tt-r);
  cursor: pointer;
  transition: background .15s;
  border: 1px solid transparent;
}
.titans-search-results li:hover { background: rgba(255,184,0,.06); border-color: rgba(255,184,0,.12); }
.titans-search-results .result-info .result-name { font-size: .9rem; font-weight: 600; color: var(--tt-tx); }
.titans-search-results .result-info .result-sub { font-size: .78rem; color: var(--tt-tx-2); margin-top: .1rem; }
.titans-search-results .btn-add-athlete {
  flex-shrink: 0;
  padding: .35rem .75rem;
  background: var(--tt-gold-dim);
  color: var(--tt-gold);
  border: 1px solid rgba(255,184,0,.2);
  border-radius: var(--tt-r);
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  transition: background .15s;
}
.titans-search-results .btn-add-athlete:hover { background: var(--tt-gold); color: #000; }

.titans-search-empty { text-align: center; padding: 2rem 0; color: var(--tt-tx-2); font-size: .9rem; }
.titans-search-loading { text-align: center; padding: 1.5rem 0; color: var(--tt-tx-m); font-size: .875rem; }

/* ── Alert boxes ── */
.titans-alert {
  padding: 1rem 1.25rem;
  border-radius: var(--tt-r);
  font-size: .875rem;
  font-weight: 500;
  margin-bottom: 1.25rem;
  display: flex;
  align-items: flex-start;
  gap: .75rem;
}
.titans-alert i { flex-shrink: 0; margin-top: .1rem; }
.titans-alert.warning { background: rgba(245,158,11,.1); border: 1px solid rgba(245,158,11,.2); color: #f59e0b; }
.titans-alert.success { background: rgba(34,197,94,.1); border: 1px solid rgba(34,197,94,.2); color: #22c55e; }
.titans-alert.error { background: rgba(239,68,68,.1); border: 1px solid rgba(239,68,68,.2); color: #ef4444; }
.titans-alert.info { background: var(--tt-gold-dim); border: 1px solid rgba(255,184,0,.2); color: var(--tt-gold); }

/* ── Vagas extras grid ── */
.vagas-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: .75rem; }
.vaga-pack {
  background: var(--tt-surface);
  border: 1px solid var(--tt-border);
  border-radius: var(--tt-r);
  padding: 1.25rem .75rem;
  text-align: center;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s, background .15s;
  position: relative;
}
.vaga-pack input[type="radio"] { position: absolute; opacity: 0; }
.vaga-pack:has(input:checked),
.vaga-pack.selected {
  border-color: var(--tt-gold);
  background: var(--tt-gold-dim);
  box-shadow: 0 0 16px var(--tt-gold-glow);
}
.vaga-pack-num {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 2rem;
  color: var(--tt-gold);
  line-height: 1;
}
.vaga-pack-label { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--tt-tx-2); margin-top: .25rem; }
.vaga-pack-price { font-size: .85rem; font-weight: 700; color: var(--tt-tx); margin-top: .5rem; }

/* ── Sucesso page ── */
.titans-success-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 2rem 1rem; }
.titans-success-card {
  background: var(--tt-surface);
  border: 1px solid rgba(34,197,94,.2);
  border-radius: var(--tt-r-xl);
  max-width: 480px;
  width: 100%;
  overflow: hidden;
  text-align: center;
}
.titans-success-top {
  background: rgba(34,197,94,.06);
  border-bottom: 1px solid rgba(34,197,94,.12);
  padding: 2.5rem 2rem;
}
.titans-success-icon { font-size: 3rem; color: #22c55e; margin-bottom: .75rem; }
.titans-success-body { padding: 2rem; }

/* ── Responsive ── */
@media (max-width: 768px) {
  .titans-hero-content { padding: 100px 0 60px; }
  .titans-cta-box { padding: 2rem 1.5rem; }
  .titans-stat-card { padding: 1rem 1.25rem; }
  .titans-table-header { flex-direction: column; align-items: flex-start; }
  .titans-table thead th { display: none; }
  .titans-table tbody td { display: block; padding: .5rem 1rem; }
  .titans-table tbody td:first-child { padding-top: .9rem; }
  .titans-table tbody td:last-child { padding-bottom: .9rem; }
  .titans-table tbody tr { position: relative; }
  .vagas-grid { grid-template-columns: repeat(2, 1fr); }
  .titans-shield-ring { width: 220px; height: 220px; }
  .titans-shield-inner { width: 140px; height: 140px; }
  .titans-shield-icon { font-size: 2.5rem; }
}

@media (max-width: 480px) {
  .titans-hero-title { font-size: clamp(2.75rem, 14vw, 4rem); }
  .titans-strip-item { justify-content: center; border-right: none; border-bottom: 1px solid rgba(255,255,255,.06); }
}

/* ══════════════════════════════════════════════════════════════
   TITANS v3 — "GLADIATOR DARK"
   Accent: #C8FF00 (neon yellow-green, inspired by spartan image)
   Classes: ttv3-*  |  titans-* (above) preserved for dashboard/payment
══════════════════════════════════════════════════════════════ */

:root {
  --ttv3-bg:   #000000;
  --ttv3-s:    #0A0A0A;
  --ttv3-e:    #121212;
  --ttv3-card: #161616;
  --ttv3-neon: #C8FF00;
  --ttv3-gold: #FFB800;
  --ttv3-tx:   #FFFFFF;
  --ttv3-tx2:  #999999;
  --ttv3-tx3:  #444444;
  --ttv3-b:    rgba(255,255,255,.07);
  --ttv3-nb:   rgba(200,255,0,.18);
  --ttv3-ng:   rgba(200,255,0,.30);
  --ttv3-nd:   rgba(200,255,0,.07);
  --ttv3-r:    3px;
  --ttv3-rx:   6px;
}

/* ── HERO ── */
.ttv3-hero {
  position: relative;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background: var(--ttv3-bg);
  overflow: hidden;
  isolation: isolate;
}

.ttv3-hero-bg {
  position: absolute;
  inset: 0;
  background-image: var(--ttv3-hero-img);
  background-size: cover;
  background-position: center top;
  z-index: 0;
  filter: saturate(.12) brightness(.18);
  transform: scale(1.04);
}

.ttv3-hero-ov {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.55) 40%, rgba(0,0,0,.97) 75%, #000 100%),
    linear-gradient(90deg, rgba(0,0,0,.88) 0%, transparent 70%);
  z-index: 1;
}

.ttv3-scanlines {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    0deg, transparent, transparent 3px,
    rgba(200,255,0,.013) 3px, rgba(200,255,0,.013) 4px
  );
  z-index: 2;
  pointer-events: none;
}

.ttv3-hero::before {
  content: '';
  position: absolute;
  right: -8%;
  top: -15%;
  width: 55%;
  height: 140%;
  background: linear-gradient(135deg, transparent 45%, rgba(200,255,0,.022) 100%);
  transform: skewX(-14deg);
  z-index: 2;
  pointer-events: none;
}

/* Breadcrumb */
.ttv3-bc {
  position: relative;
  z-index: 10;
  padding: 1rem 0 0.5rem;  /* Ajustado: reduzi o padding-top e adicionei padding-bottom */
  margin-top: 0;  /* Removido o margin-top fixo */
}
.ttv3-bc .container {
  display: flex;
  align-items: center;
  gap: .35rem;
  flex-wrap: wrap;
  font-size: .72rem;
  color: rgba(255,255,255,.35);
}
.ttv3-bc a { color: rgba(255,255,255,.4); text-decoration: none; transition: color .15s; }
.ttv3-bc a:hover { color: var(--ttv3-neon); }
.ttv3-bc-sep { opacity: .3; }
.ttv3-bc-active { color: rgba(255,255,255,.7); font-weight: 600; }

/* Hero body */
.ttv3-hero-body {
  position: relative;
  z-index: 10;
  flex: 1;
  display: flex;
  align-items: center;
  padding: 2.5rem 0 2rem;
}

.ttv3-hero-layout {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3rem;
  align-items: center;
}

/* Eyebrow */
.ttv3-eyebrow { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.5rem; }
.ttv3-ey-line { flex: 0 0 42px; height: 1px; background: linear-gradient(90deg, transparent, var(--ttv3-neon)); }
.ttv3-ey-line-r { background: linear-gradient(90deg, var(--ttv3-neon), transparent); }
.ttv3-ey-txt {
  font-size: .6rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--ttv3-neon); white-space: nowrap;
}

/* Main title */
.ttv3-main-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  line-height: .87;
  margin-bottom: 2rem;
}
.ttv3-t1 {
  display: block;
  font-size: clamp(5rem, 16vw, 13rem);
  color: var(--ttv3-tx);
  letter-spacing: -.025em;
}
.ttv3-t2 {
  display: block;
  font-size: clamp(4rem, 12vw, 9.5rem);
  letter-spacing: -.015em;
}
.ttv3-t2 em {
  color: var(--ttv3-neon);
  font-style: normal;
  text-shadow: 0 0 60px rgba(200,255,0,.55);
}
.ttv3-t2 strong { color: var(--ttv3-tx); font-weight: 900; }

/* Chips */
.ttv3-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.ttv3-chip {
  display: inline-flex; align-items: center; gap: .4rem;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 2px;
  padding: .35rem .85rem;
  font-size: .74rem; color: var(--ttv3-tx2);
  backdrop-filter: blur(8px);
}
.ttv3-chip i { font-size: .65rem; }
.ttv3-chip-neon { border-color: var(--ttv3-nb); color: var(--ttv3-neon); background: var(--ttv3-nd); }
.ttv3-chip-gold { border-color: rgba(255,184,0,.25); color: var(--ttv3-gold); background: rgba(255,184,0,.07); }

/* Hero right decoration */
.ttv3-helm-wrap {
  position: relative; width: 290px; height: 290px;
  display: flex; align-items: center; justify-content: center;
}
.ttv3-helm-ring {
  position: absolute; border-radius: 50%;
  border: 1px solid rgba(200,255,0,.1);
}
.ttv3-helm-ring-1 { inset: 0; }
.ttv3-helm-ring-2 { inset: 22px; border-color: rgba(200,255,0,.05); }
.ttv3-helm-inner {
  position: relative; z-index: 2;
  width: 155px; height: 155px;
  background: var(--ttv3-e);
  border: 1px solid var(--ttv3-nb);
  border-radius: 50%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: .3rem;
  box-shadow: 0 0 55px rgba(200,255,0,.1), inset 0 0 40px rgba(200,255,0,.03);
}
.ttv3-helm-icon {
  font-size: 2.85rem; color: var(--ttv3-neon);
  text-shadow: 0 0 28px rgba(200,255,0,.6); line-height: 1;
}
.ttv3-helm-label {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800; font-size: .78rem; letter-spacing: .22em;
  color: var(--ttv3-neon); text-transform: uppercase;
}

/* Hero bottom bar — fixo no rodapé, aparece no scroll */
.ttv3-hero-bar {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 500;
  background: rgba(0,0,0,.97);
  border-top: 1px solid var(--ttv3-nb);
  backdrop-filter: blur(20px);
  padding: .85rem 0;
  transform: translateY(100%);
  transition: transform .4s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 -4px 24px rgba(0,0,0,.6);
}
.ttv3-hero-bar.ttv3-bar-visible {
  transform: translateY(0);
}
.ttv3-bar-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.ttv3-bar-price-wrap { display: flex; flex-direction: column; gap: .08rem; }
.ttv3-bar-price-main {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800; font-size: 2rem; color: var(--ttv3-neon); line-height: 1;
  text-shadow: 0 0 20px rgba(200,255,0,.3);
}
.ttv3-bar-price-sub { font-size: .7rem; color: var(--ttv3-tx3); }

/* ── Buttons v3 ── */
.ttv3-btn-main,
.ttv3-btn-outline,
.ttv3-btn-gold,
.ttv3-btn-fire {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700; font-size: .95rem; letter-spacing: .12em; text-transform: uppercase;
  text-decoration: none; border: none; border-radius: var(--ttv3-r);
  cursor: pointer; padding: .78rem 1.75rem;
  transition: all .18s ease; white-space: nowrap;
}
.ttv3-btn-main { background: var(--ttv3-neon); color: #000; }
.ttv3-btn-main:hover {
  background: #d6ff1a; box-shadow: 0 0 32px rgba(200,255,0,.5);
  color: #000; transform: translateY(-1px); text-decoration: none;
}
.ttv3-btn-outline { background: transparent; border: 1.5px solid rgba(255,255,255,.14); color: var(--ttv3-tx2); }
.ttv3-btn-outline:hover {
  border-color: var(--ttv3-neon); color: var(--ttv3-neon);
  background: var(--ttv3-nd); text-decoration: none;
}
.ttv3-btn-gold { background: var(--ttv3-gold); color: #000; }
.ttv3-btn-gold:hover {
  background: #e6a800; box-shadow: 0 0 28px rgba(255,184,0,.4);
  color: #000; transform: translateY(-1px); text-decoration: none;
}
.ttv3-btn-fire { background: var(--ttv3-neon); color: #000; width: 100%; }
.ttv3-btn-fire:hover {
  background: #d6ff1a; box-shadow: 0 0 32px rgba(200,255,0,.5);
  color: #000; transform: translateY(-1px); text-decoration: none;
}

/* ── Manifesto strip ── */
.ttv3-manifesto { background: var(--ttv3-neon); padding: .85rem 0; overflow: hidden; }
.ttv3-manifesto-inner {
  display: flex; align-items: center; justify-content: center;
  gap: 1.5rem; flex-wrap: wrap;
}
.ttv3-mf-item {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600; font-size: .9rem;
  letter-spacing: .12em; text-transform: uppercase; color: #000;
}
.ttv3-mf-item strong { font-weight: 900; }
.ttv3-mf-sep { font-weight: 900; color: rgba(0,0,0,.28); font-size: .85rem; }

/* ── Enroll section ── */
.ttv3-enroll {
  background: var(--ttv3-bg);
  padding: 5.5rem 0;
  position: relative; overflow: hidden;
}
.ttv3-enroll::before {
  content: '';
  position: absolute; inset: 0;
  background: repeating-linear-gradient(
    -62deg, transparent 0px, transparent 80px,
    rgba(200,255,0,.011) 81px, transparent 82px
  );
  pointer-events: none;
}
.ttv3-enroll-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem; align-items: start; position: relative;
}

/* Tags + section titles */
.ttv3-tag {
  display: inline-block; font-size: .63rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--ttv3-neon); margin-bottom: .65rem;
}
.ttv3-section-h {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 900;
  font-size: clamp(2.75rem, 6vw, 4.5rem); text-transform: uppercase;
  line-height: .9; color: var(--ttv3-tx); margin-bottom: 1.1rem;
}
.ttv3-section-h span { color: var(--ttv3-neon); }
.ttv3-section-p { font-size: .9rem; color: var(--ttv3-tx2); line-height: 1.75; margin-bottom: 1.75rem; }

/* Price card */
.ttv3-price-card {
  background: var(--ttv3-e); border: 1px solid var(--ttv3-nb);
  border-left: 3px solid var(--ttv3-neon);
  border-radius: var(--ttv3-r); padding: 1.25rem 1.5rem; margin-bottom: 1.5rem;
}
.ttv3-price-big {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 800;
  font-size: 2.75rem; color: var(--ttv3-neon); line-height: 1;
  margin-bottom: .4rem; text-shadow: 0 0 20px rgba(200,255,0,.28);
}
.ttv3-price-meta { display: flex; flex-direction: column; gap: .2rem; font-size: .78rem; color: var(--ttv3-tx3); }
.ttv3-price-meta i { margin-right: .3rem; color: rgba(200,255,0,.45); }

/* Features list */
.ttv3-feats { list-style: none; display: flex; flex-direction: column; gap: .5rem; }
.ttv3-feats li { font-size: .875rem; color: var(--ttv3-tx2); display: flex; align-items: flex-start; gap: .5rem; line-height: 1.5; }
.ttv3-feats li i { color: var(--ttv3-neon); font-size: .68rem; width: 14px; flex-shrink: 0; margin-top: .28rem; }

/* ── Form card ── */
.ttv3-form-card {
  background: var(--ttv3-e);
  border: 1px solid var(--ttv3-b);
  border-top: 2px solid var(--ttv3-neon);
  border-radius: var(--ttv3-rx);
  padding: 2.5rem;
  display: flex; flex-direction: column; align-items: center; gap: 1rem;
  text-align: center;
  position: sticky; top: 82px;
}

/* States */
.ttv3-state-ico {
  width: 72px; height: 72px; border-radius: 50%;
  background: var(--ttv3-nd); border: 1.5px solid var(--ttv3-nb);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.75rem; color: var(--ttv3-neon);
}
.ttv3-ico-warn { background: rgba(245,158,11,.1); border-color: rgba(245,158,11,.25); color: #f59e0b; }
.ttv3-ico-ok   { background: rgba(34,197,94,.1);  border-color: rgba(34,197,94,.25);  color: #22c55e; }
.ttv3-state-h {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 700;
  font-size: 1.4rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--ttv3-tx); margin: 0;
}
.ttv3-state-p   { font-size: .875rem; color: var(--ttv3-tx2); line-height: 1.65; margin: 0; }
.ttv3-state-foot { font-size: .78rem; color: var(--ttv3-tx3); margin: 0; }
.ttv3-neon-link { color: var(--ttv3-neon); text-decoration: none; }
.ttv3-neon-link:hover { text-decoration: underline; color: var(--ttv3-neon); }

/* Team pill */
.ttv3-team-pill {
  width: 100%; background: var(--ttv3-nd);
  border: 1px solid var(--ttv3-nb); border-radius: var(--ttv3-r);
  padding: .875rem 1.25rem; text-align: center;
}
.ttv3-team-n {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 700;
  font-size: 1.2rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--ttv3-neon); display: block; margin-bottom: .15rem;
}
.ttv3-team-s { font-size: .78rem; color: var(--ttv3-tx3); }

/* Leader badge */
.ttv3-leader-badge {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--ttv3-neon); background: var(--ttv3-nd);
  border: 1px solid var(--ttv3-nb); border-radius: 2px;
  padding: .3rem .875rem; align-self: flex-start;
}

/* Form inputs */
.ttv3-fgroup { display: flex; flex-direction: column; gap: .35rem; width: 100%; margin-bottom: .75rem; text-align: left; }
.ttv3-flabel { font-size: .67rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ttv3-tx3); }
.ttv3-finput {
  width: 100%; background: var(--ttv3-s);
  border: 1.5px solid rgba(255,255,255,.08);
  border-radius: var(--ttv3-r);
  padding: .8rem 1rem;
  font-family: 'DM Sans', sans-serif; font-size: .95rem; color: var(--ttv3-tx);
  transition: border-color .15s, box-shadow .15s;
}
.ttv3-finput::placeholder { color: var(--ttv3-tx3); }
.ttv3-finput:focus { outline: none; border-color: var(--ttv3-neon); box-shadow: 0 0 0 3px rgba(200,255,0,.08); }
.ttv3-form-note { font-size: .7rem; color: var(--ttv3-tx3); text-align: center; margin: 0; }
.ttv3-err-box {
  background: rgba(255,69,0,.1); border: 1px solid rgba(255,69,0,.25);
  border-radius: var(--ttv3-r); padding: .65rem .875rem;
  font-size: .84rem; color: #ff7050;
  display: flex; gap: .5rem; align-items: center;
  text-align: left; width: 100%;
}

/* Modalidade options */
.ttv3-mod-row { display: flex; gap: .6rem; width: 100%; }
.ttv3-mod-opt {
  flex: 1; cursor: pointer;
  border: 1.5px solid rgba(255,255,255,.08);
  border-radius: var(--ttv3-r); padding: .7rem .8rem;
  display: flex; align-items: flex-start;
  background: var(--ttv3-s); transition: all .15s;
}
.ttv3-mod-opt input[type=radio] { display: none; }
.ttv3-mod-opt.selected {
  border-color: var(--ttv3-neon); background: var(--ttv3-nd);
  box-shadow: 0 0 12px rgba(200,255,0,.12);
}
.ttv3-mod-label { display: flex; flex-direction: column; gap: .12rem; width: 100%; }
.ttv3-mod-label i { color: var(--ttv3-neon); font-size: .68rem; margin-bottom: .1rem; }
.ttv3-mod-label strong { font-size: .82rem; color: var(--ttv3-tx); line-height: 1; }
.ttv3-mod-unit { font-size: .78rem; color: var(--ttv3-neon); font-weight: 700; }
.ttv3-mod-total { font-size: .66rem; color: var(--ttv3-tx3); }

/* ── Rules section ── */
.ttv3-rules {
  background: var(--ttv3-s); padding: 5.5rem 0;
  border-top: 1px solid rgba(255,255,255,.04);
}
.ttv3-rules-head { margin-bottom: 3rem; }
.ttv3-rules-h {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 900;
  font-size: clamp(2.25rem, 5.5vw, 3.75rem); text-transform: uppercase;
  color: var(--ttv3-tx); line-height: .92; margin-top: .35rem;
}
.ttv3-rules-track {
  display: grid; grid-template-columns: repeat(5, 1fr);
  gap: 1px; background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.04);
  border-radius: var(--ttv3-rx); overflow: hidden;
}
.ttv3-rule-card {
  background: var(--ttv3-e); padding: 2rem 1.5rem;
  display: flex; flex-direction: column; gap: .75rem;
  transition: background .2s; position: relative; overflow: hidden;
}
.ttv3-rule-card:hover { background: #1a1a1a; }
.ttv3-rule-ghost {
  position: absolute; right: -.25rem; bottom: -1rem;
  font-family: 'Barlow Condensed', sans-serif; font-weight: 900;
  font-size: 6rem; color: rgba(200,255,0,.05);
  line-height: 1; pointer-events: none; user-select: none;
}
.ttv3-rule-ic {
  width: 42px; height: 42px; border-radius: var(--ttv3-r);
  background: var(--ttv3-nd); border: 1px solid var(--ttv3-nb);
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem; color: var(--ttv3-neon);
}
.ttv3-rule-tit {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 700;
  font-size: 1rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ttv3-tx);
}
.ttv3-rule-txt { font-size: .8rem; color: var(--ttv3-tx2); line-height: 1.65; }

/* ── About section ── */
.ttv3-about {
  background: var(--ttv3-bg); padding: 4.5rem 0;
  border-top: 1px solid rgba(255,255,255,.04);
}
.ttv3-about-inner { max-width: 720px; margin: 0 auto; text-align: center; }
.ttv3-about-txt { margin-top: 1.25rem; font-size: .9rem; color: var(--ttv3-tx2); line-height: 1.85; }

/* ── Responsive ttv3 ── */
@media (max-width: 1100px) {
  .ttv3-helm-wrap { width: 230px; height: 230px; }
  .ttv3-helm-inner { width: 125px; height: 125px; }
  .ttv3-helm-icon { font-size: 2.4rem; }
}
@media (max-width: 991px) {
  .ttv3-hero-layout { grid-template-columns: 1fr; }
  .ttv3-hero-right { display: none; }
  .ttv3-enroll-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .ttv3-rules-track { grid-template-columns: repeat(2, 1fr); }
  .ttv3-rules-track .ttv3-rule-card:last-child { grid-column: span 2; }
  .ttv3-form-card { position: static; }
}
@media (max-width: 767px) {
  .ttv3-t1 { font-size: clamp(3.5rem, 20vw, 6rem); }
  .ttv3-t2 { font-size: clamp(3rem, 16vw, 5rem); }
  .ttv3-eyebrow { justify-content: center; }
  .ttv3-ey-txt { font-size: .55rem; letter-spacing: .12em; }
  .ttv3-chips { justify-content: center; }
  .ttv3-bar-inner { flex-direction: column; text-align: center; gap: .75rem; }
  .ttv3-bar-price-wrap { align-items: center; }
  .ttv3-btn-main { width: 100%; }
  .ttv3-enroll { padding: 3rem 0; }
  .ttv3-rules { padding: 3rem 0; }
  .ttv3-rules-track { grid-template-columns: 1fr; }
  .ttv3-rules-track .ttv3-rule-card:last-child { grid-column: span 1; }
  .ttv3-form-card { padding: 1.75rem 1.25rem; }
  .ttv3-manifesto-inner { gap: 1rem; }
}
@media (max-width: 480px) {
  .ttv3-form-card { padding: 1.5rem 1rem; }
  .ttv3-bc .container { font-size: .68rem; }
}

/* ══════════════════════════════════════════════════════════════
   TITANS v3 — EFFECTS & ANIMATIONS  (GSAP-powered)
══════════════════════════════════════════════════════════════ */

/* ── Scroll progress bar ── */
.ttv3-scroll-bar {
  position: fixed; top: 0; left: 0;
  height: 2px; width: 0%;
  background: var(--ttv3-neon);
  z-index: 9999;
  box-shadow: 0 0 10px rgba(200,255,0,.65), 0 0 24px rgba(200,255,0,.3);
  pointer-events: none;
}

/* ── Title elements — display only, GSAP controls opacity/transform ── */
.ttv3-t1, .ttv3-t2 { display: block; }
.ttv3-t2 strong    { display: inline-block; }

/* ── Neon pulse on CTA ── */
@keyframes tt-neon-pulse {
  0%,100% { box-shadow: 0 0 18px rgba(200,255,0,.3), 0 4px 20px rgba(0,0,0,.4); }
  50%     { box-shadow: 0 0 42px rgba(200,255,0,.65), 0 0 80px rgba(200,255,0,.18), 0 4px 20px rgba(0,0,0,.4); }
}
.ttv3-btn-main { animation: tt-neon-pulse 3s ease-in-out infinite; }
.ttv3-btn-main:hover { animation: none; transform: translateY(-2px); }

/* ── Helm rings & glow ── */
.ttv3-helm-ring-1 { animation: tt-spin-cw  20s linear infinite; }
.ttv3-helm-ring-2 { animation: tt-spin-ccw 13s linear infinite; }
@keyframes tt-spin-cw  { to { transform: rotate(360deg); } }
@keyframes tt-spin-ccw { to { transform: rotate(-360deg); } }
@keyframes tt-helm-glow {
  0%,100% { box-shadow: 0 0 55px rgba(200,255,0,.1),  inset 0 0 40px rgba(200,255,0,.03); }
  50%     { box-shadow: 0 0 90px rgba(200,255,0,.22), inset 0 0 65px rgba(200,255,0,.07); }
}
.ttv3-helm-inner { animation: tt-helm-glow 3.5s ease-in-out infinite; }

/* ── Marquee (manifesto strip) ── */
.ttv3-manifesto { overflow: hidden; }
.ttv3-marquee-track {
  display: flex; align-items: center; width: max-content;
  will-change: transform;
}
.ttv3-marquee-track .ttv3-mf-item { padding: 0 1.75rem; white-space: nowrap; }
.ttv3-marquee-track .ttv3-mf-sep  { padding: 0 .25rem; flex-shrink: 0; }

/* ── Particles ── */
.ttv3-particles {
  position: absolute; inset: 0; z-index: 3;
  overflow: hidden; pointer-events: none;
}
.ttv3-pt {
  position: absolute; bottom: -4px;
  width: 2px; height: 2px; border-radius: 50%;
  background: var(--ttv3-neon);
  box-shadow: 0 0 5px var(--ttv3-neon);
  opacity: 0;
  animation: tt-particle var(--pdur,9s) var(--pdel,0s) ease-in infinite;
}
@keyframes tt-particle {
  0%   { opacity:0;  transform: translateY(0) translateX(0) scale(1.2); }
  8%   { opacity:.9; }
  85%  { opacity:.25; }
  100% { opacity:0;  transform: translateY(-95vh) translateX(var(--pdr,30px)) scale(.4); }
}

/* ── 3D tilt form card ── */
.ttv3-form-card {
  transform-style: preserve-3d;
  will-change: transform;
  transition: box-shadow .4s ease;
}
.ttv3-form-card:hover {
  box-shadow: 0 24px 60px rgba(0,0,0,.55), 0 0 35px rgba(200,255,0,.14) !important;
}

/* ── Rule cards — GSAP sets initial state, keep only background transition ── */
.ttv3-rule-card { transition: background .2s; }

/* ── Diagonal accent line ── */
.ttv3-hero::after {
  content: ''; position: absolute; right:0; top:0; bottom:0; width:1px;
  background: linear-gradient(180deg, transparent 0%, var(--ttv3-neon) 40%, transparent 100%);
  opacity: .15; z-index: 3; pointer-events: none;
  animation: tt-line-fade 4s ease-in-out infinite alternate;
}
@keyframes tt-line-fade {
  from { opacity:.06; }
  to   { opacity:.22; }
}

/* ── Section tag underline (triggered by .gsap-visible) ── */
.ttv3-tag { position: relative; }
.ttv3-tag::after {
  content: ''; position: absolute; bottom:-2px; left:0;
  height:1px; width:0; background: var(--ttv3-neon);
  transition: width .45s ease .15s;
}
.gsap-visible .ttv3-tag::after { width: 100%; }

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  .ttv3-btn-main, .ttv3-helm-ring-1, .ttv3-helm-ring-2,
  .ttv3-helm-inner, .ttv3-marquee-track, .ttv3-hero::after {
    animation: none !important;
  }
  .ttv3-pt { display: none !important; }
}

/* ══════════════════════════════════════════════════════════════
   TITANS v3 — DASHBOARD & PAYMENT SHARED COMPONENTS
   Classes: ttv3-dash-*, ttv3-pay-*, ttv3-suc-*
══════════════════════════════════════════════════════════════ */

/* ── Page wrapper ── */
.ttv3-page {
  background: var(--ttv3-bg);
  min-height: 100vh;
  color: var(--ttv3-tx);
  font-family: 'DM Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* ── Dashboard header ── */
.ttv3-dash-hd {
  background: var(--ttv3-s);
  border-bottom: 1px solid var(--ttv3-nb);
  padding: 1.25rem 0;
}
.ttv3-dash-hd-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.ttv3-dash-eyebrow {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ttv3-neon);
  margin-bottom: .3rem;
}
.ttv3-dash-team-name {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: clamp(1.6rem, 4vw, 2.5rem);
  text-transform: uppercase;
  color: var(--ttv3-tx);
  line-height: 1;
  letter-spacing: -.01em;
}
.ttv3-dash-badge {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .28rem .75rem;
  border-radius: 100px;
}
.ttv3-dash-badge.ok   { background: rgba(34,197,94,.1);  color: #22c55e; border: 1px solid rgba(34,197,94,.25); }
.ttv3-dash-badge.pend { background: rgba(245,158,11,.1); color: #f59e0b; border: 1px solid rgba(245,158,11,.25); }

/* ── Alerts ── */
.ttv3-alert {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .9rem 1.1rem;
  border-radius: var(--ttv3-rx);
  font-size: .875rem;
  font-weight: 500;
  line-height: 1.55;
  margin-bottom: 1rem;
}
.ttv3-alert i { flex-shrink: 0; margin-top: .1rem; font-size: 1rem; }
.ttv3-alert.ok   { background: rgba(34,197,94,.08);  border: 1px solid rgba(34,197,94,.2);  color: #22c55e; }
.ttv3-alert.warn { background: rgba(245,158,11,.08); border: 1px solid rgba(245,158,11,.2); color: #f59e0b; }
.ttv3-alert.err  { background: rgba(239,68,68,.08);  border: 1px solid rgba(239,68,68,.2);  color: #ef4444; }
.ttv3-alert.info { background: var(--ttv3-nd);       border: 1px solid var(--ttv3-nb);       color: var(--ttv3-neon); }

/* ── Stat cards ── */
.ttv3-dash-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--ttv3-rx);
  overflow: hidden;
  margin: 1.5rem 0;
}
.ttv3-dsc {
  background: var(--ttv3-e);
  padding: 1.25rem 1.5rem;
  position: relative;
  overflow: hidden;
  transition: background .15s;
}
.ttv3-dsc:hover { background: #1a1a1a; }
.ttv3-dsc-ghost {
  position: absolute;
  right: -.5rem;
  bottom: -.75rem;
  font-size: 4.5rem;
  opacity: .04;
  color: var(--ttv3-neon);
  pointer-events: none;
}
.ttv3-dsc-lbl {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ttv3-tx3);
  margin-bottom: .35rem;
}
.ttv3-dsc-val {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 2.25rem;
  color: var(--ttv3-tx);
  line-height: 1;
}
.ttv3-dsc-val.neon { color: var(--ttv3-neon); text-shadow: 0 0 16px rgba(200,255,0,.25); }
.ttv3-dsc-val.green { color: #22c55e; }
.ttv3-dsc-val.amber { color: #f59e0b; }
.ttv3-dsc-sub { font-size: .75rem; color: var(--ttv3-tx3); margin-top: .25rem; }

/* ── Progress bar ── */
.ttv3-prog-wrap {
  background: var(--ttv3-e);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--ttv3-rx);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
}
.ttv3-prog-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: .65rem;
  font-size: .8rem;
}
.ttv3-prog-label { color: var(--ttv3-tx2); font-weight: 600; }
.ttv3-prog-count {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: var(--ttv3-neon);
}
.ttv3-prog-track {
  height: 6px;
  background: rgba(255,255,255,.07);
  border-radius: 100px;
  overflow: hidden;
}
.ttv3-prog-fill {
  height: 100%;
  background: var(--ttv3-neon);
  border-radius: 100px;
  transition: width .6s cubic-bezier(.4,0,.2,1);
}
.ttv3-prog-fill.full { background: #22c55e; box-shadow: 0 0 10px rgba(34,197,94,.4); }
.ttv3-prog-meta {
  display: flex;
  justify-content: space-between;
  margin-top: .5rem;
  font-size: .72rem;
  color: var(--ttv3-tx3);
}

/* ── Action buttons row ── */
.ttv3-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.5rem; }

/* ── Athletes table ── */
.ttv3-tbl-wrap {
  background: var(--ttv3-e);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--ttv3-rx);
  overflow: hidden;
}
.ttv3-tbl-hd {
  background: var(--ttv3-s);
  border-bottom: 1px solid rgba(255,255,255,.06);
  padding: .9rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.ttv3-tbl-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ttv3-tx);
}
.ttv3-tbl-count { font-size: .75rem; color: var(--ttv3-tx3); }
.ttv3-tbl {
  width: 100%;
  border-collapse: collapse;
  font-size: .85rem;
}
.ttv3-tbl thead th {
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--ttv3-tx3);
  padding: .65rem 1.25rem;
  border-bottom: 1px solid rgba(255,255,255,.05);
  background: rgba(255,255,255,.02);
  text-align: left;
}
.ttv3-tbl tbody tr {
  border-bottom: 1px solid rgba(255,255,255,.04);
  transition: background .12s;
}
.ttv3-tbl tbody tr:last-child { border-bottom: none; }
.ttv3-tbl tbody tr:hover { background: rgba(255,255,255,.025); }
.ttv3-tbl tbody td {
  padding: .85rem 1.25rem;
  color: var(--ttv3-tx);
  vertical-align: middle;
}
.ttv3-tbl-num {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: var(--ttv3-neon);
  width: 44px;
}
.ttv3-tbl-avatar {
  width: 34px; height: 34px;
  border-radius: 50%;
  background: var(--ttv3-nd);
  border: 1px solid var(--ttv3-nb);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .9rem;
  color: var(--ttv3-neon);
  flex-shrink: 0;
}
.ttv3-tbl-name { font-weight: 600; color: var(--ttv3-tx); }
.ttv3-tbl-sub  { font-size: .75rem; color: var(--ttv3-tx3); margin-top: .1rem; }
.ttv3-tbl-date { font-size: .78rem; color: var(--ttv3-tx3); white-space: nowrap; }

/* Remove athlete button */
.ttv3-btn-remove {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .3rem .65rem;
  background: rgba(239,68,68,.1);
  color: #ef4444;
  border: 1px solid rgba(239,68,68,.2);
  border-radius: var(--ttv3-r);
  font-size: .75rem;
  font-weight: 600;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  transition: background .15s;
  text-decoration: none;
}
.ttv3-btn-remove:hover { background: rgba(239,68,68,.2); color: #ef4444; }

/* ── Modal overlay ── */
.ttv3-modal-ov {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.85);
  z-index: 1050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
  backdrop-filter: blur(4px);
}
.ttv3-modal-ov.active { opacity: 1; pointer-events: all; }
.ttv3-modal {
  background: var(--ttv3-e);
  border: 1px solid var(--ttv3-nb);
  border-top: 2px solid var(--ttv3-neon);
  border-radius: var(--ttv3-rx);
  width: 100%;
  max-width: 500px;
  max-height: 88vh;
  overflow-y: auto;
  transform: translateY(10px);
  transition: transform .2s;
}
.ttv3-modal-ov.active .ttv3-modal { transform: translateY(0); }
.ttv3-modal-top {
  background: var(--ttv3-s);
  border-bottom: 1px solid rgba(255,255,255,.06);
  padding: 1rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ttv3-modal-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ttv3-tx);
}
.ttv3-modal-close {
  background: none;
  border: none;
  color: var(--ttv3-tx3);
  font-size: 1.1rem;
  cursor: pointer;
  padding: .2rem;
  transition: color .15s;
  line-height: 1;
}
.ttv3-modal-close:hover { color: var(--ttv3-tx); }
.ttv3-modal-body { padding: 1.25rem; }

/* ── Search input ── */
.ttv3-search-wrap { position: relative; margin-bottom: .85rem; }
.ttv3-search-wrap i.si {
  position: absolute;
  left: .85rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ttv3-tx3);
  font-size: .82rem;
  pointer-events: none;
}
.ttv3-search-input {
  width: 100%;
  background: var(--ttv3-s);
  border: 1.5px solid rgba(255,255,255,.08);
  border-radius: var(--ttv3-r);
  padding: .75rem 1rem .75rem 2.4rem;
  color: var(--ttv3-tx);
  font-family: 'DM Sans', sans-serif;
  font-size: .9rem;
  outline: none;
  transition: border-color .15s;
}
.ttv3-search-input::placeholder { color: var(--ttv3-tx3); }
.ttv3-search-input:focus { border-color: var(--ttv3-neon); box-shadow: 0 0 0 3px rgba(200,255,0,.07); }
.ttv3-search-results { list-style: none; }
.ttv3-search-results li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .65rem .75rem;
  border-radius: var(--ttv3-r);
  border: 1px solid transparent;
  transition: all .12s;
  cursor: default;
}
.ttv3-search-results li:hover { background: var(--ttv3-nd); border-color: var(--ttv3-nb); }
.ttv3-search-result-name { font-size: .875rem; font-weight: 600; color: var(--ttv3-tx); }
.ttv3-search-result-sub  { font-size: .72rem; color: var(--ttv3-tx3); margin-top: .05rem; }
.ttv3-btn-add {
  flex-shrink: 0;
  padding: .3rem .7rem;
  background: var(--ttv3-nd);
  color: var(--ttv3-neon);
  border: 1px solid var(--ttv3-nb);
  border-radius: var(--ttv3-r);
  font-size: .75rem;
  font-weight: 700;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  transition: all .15s;
}
.ttv3-btn-add:hover { background: var(--ttv3-neon); color: #000; }
.ttv3-search-empty, .ttv3-search-loading {
  text-align: center;
  padding: 1.5rem 0;
  font-size: .85rem;
  color: var(--ttv3-tx3);
}

/* ── Vaga pack grid ── */
.ttv3-pack-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .65rem;
}
.ttv3-pack {
  background: var(--ttv3-s);
  border: 1.5px solid rgba(255,255,255,.08);
  border-radius: var(--ttv3-r);
  padding: 1rem .75rem;
  text-align: center;
  cursor: pointer;
  transition: all .15s;
  position: relative;
}
.ttv3-pack input[type=radio] { position: absolute; opacity: 0; }
.ttv3-pack.selected,
.ttv3-pack:has(input:checked) {
  border-color: var(--ttv3-neon);
  background: var(--ttv3-nd);
  box-shadow: 0 0 14px rgba(200,255,0,.1);
}
.ttv3-pack-num {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 2.25rem;
  color: var(--ttv3-neon);
  line-height: 1;
}
.ttv3-pack-label { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ttv3-tx3); margin-top: .2rem; }
.ttv3-pack-price { font-size: .875rem; font-weight: 700; color: var(--ttv3-tx); margin-top: .45rem; }

/* ── Modalidade selector ── */
.ttv3-mod-row { display: flex; gap: .5rem; margin-bottom: 1rem; }
.ttv3-vaga-mod {
  flex: 1; cursor: pointer;
  border: 1.5px solid rgba(255,255,255,.08);
  border-radius: var(--ttv3-r);
  padding: .6rem .75rem;
  display: flex; flex-direction: column; gap: .12rem;
  background: var(--ttv3-s); transition: all .15s;
}
.ttv3-vaga-mod input[type=radio] { display: none; }
.ttv3-vaga-mod.selected { border-color: var(--ttv3-neon); background: var(--ttv3-nd); }
.ttv3-vaga-mod strong { font-size: .82rem; color: var(--ttv3-tx); }
.ttv3-vaga-mod small  { font-size: .72rem; color: var(--ttv3-neon); font-weight: 700; }

/* ── Payment card (pagar_titans) ── */
.ttv3-pay-wrap { max-width: 500px; margin: 2.5rem auto; padding: 0 1rem 3rem; }
.ttv3-pay-card {
  background: var(--ttv3-e);
  border: 1px solid rgba(255,255,255,.06);
  border-top: 2px solid var(--ttv3-neon);
  border-radius: var(--ttv3-rx);
  overflow: hidden;
}
.ttv3-pay-hd {
  background: var(--ttv3-s);
  border-bottom: 1px solid rgba(255,255,255,.05);
  padding: 1.1rem 1.5rem;
  display: flex;
  align-items: center;
  gap: .75rem;
}
.ttv3-pay-hd-icon {
  width: 38px; height: 38px;
  border-radius: var(--ttv3-r);
  background: var(--ttv3-nd);
  border: 1px solid var(--ttv3-nb);
  display: flex; align-items: center; justify-content: center;
  color: var(--ttv3-neon);
  font-size: 1rem;
  flex-shrink: 0;
}
.ttv3-pay-hd-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--ttv3-tx);
  line-height: 1.1;
}
.ttv3-pay-hd-sub { font-size: .72rem; color: var(--ttv3-tx3); margin-top: .1rem; }
.ttv3-pay-body { padding: 1.5rem; }
.ttv3-pay-summary {
  background: var(--ttv3-s);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--ttv3-r);
  padding: 1.1rem 1.25rem;
  margin-bottom: 1.25rem;
}
.ttv3-pay-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .85rem;
  color: var(--ttv3-tx2);
  margin-bottom: .45rem;
}
.ttv3-pay-row:last-child { margin-bottom: 0; }
.ttv3-pay-row strong { color: var(--ttv3-tx); font-weight: 600; }
.ttv3-pay-divider { border: none; border-top: 1px solid rgba(255,255,255,.06); margin: .85rem 0; }
.ttv3-pay-total-label { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--ttv3-tx3); }
.ttv3-pay-total-amount {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 2rem;
  color: var(--ttv3-neon);
  line-height: 1;
  text-shadow: 0 0 16px rgba(200,255,0,.25);
}
.ttv3-pay-methods-label {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--ttv3-tx3);
  margin-bottom: .65rem;
}
.ttv3-btn-pix {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  width: 100%; padding: .8rem 1rem; margin-bottom: .5rem;
  background: rgba(34,197,94,.1); color: #22c55e;
  border: 1px solid rgba(34,197,94,.25); border-radius: var(--ttv3-r);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .95rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  cursor: pointer; transition: all .18s;
}
.ttv3-btn-pix:hover { background: #22c55e; color: #000; box-shadow: 0 4px 16px rgba(34,197,94,.3); }
.ttv3-btn-card {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  width: 100%; padding: .8rem 1rem;
  background: var(--ttv3-nd); color: var(--ttv3-neon);
  border: 1px solid var(--ttv3-nb); border-radius: var(--ttv3-r);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .95rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  cursor: pointer; transition: all .18s;
}
.ttv3-btn-card:hover { background: var(--ttv3-neon); color: #000; box-shadow: 0 4px 16px rgba(200,255,0,.3); }
.ttv3-btn-back {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .45rem .9rem;
  background: transparent;
  color: var(--ttv3-tx3);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--ttv3-r);
  font-size: .8rem; font-weight: 500; font-family: 'DM Sans', sans-serif;
  text-decoration: none; transition: all .15s;
}
.ttv3-btn-back:hover { border-color: rgba(255,255,255,.2); color: var(--ttv3-tx2); }

/* ── tipo badge ── */
.ttv3-tipo-badge {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  padding: .22rem .65rem; border-radius: 100px;
}
.ttv3-tipo-badge.inicial { background: rgba(200,255,0,.08); color: var(--ttv3-neon); border: 1px solid var(--ttv3-nb); }
.ttv3-tipo-badge.extra   { background: rgba(255,184,0,.08); color: var(--ttv3-gold); border: 1px solid rgba(255,184,0,.2); }

/* ── Success page ── */
.ttv3-suc-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
  background: var(--ttv3-bg);
}
.ttv3-suc-card {
  background: var(--ttv3-e);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--ttv3-rx);
  max-width: 500px;
  width: 100%;
  overflow: hidden;
}
.ttv3-suc-top {
  padding: 2.5rem 2rem;
  text-align: center;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.ttv3-suc-top.ok   { background: rgba(34,197,94,.05);  border-top: 3px solid #22c55e; }
.ttv3-suc-top.pend { background: rgba(245,158,11,.05); border-top: 3px solid #f59e0b; }
.ttv3-suc-icon { font-size: 2.75rem; margin-bottom: .75rem; }
.ttv3-suc-icon.ok   { color: #22c55e; }
.ttv3-suc-icon.pend { color: #f59e0b; }
.ttv3-suc-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 1.75rem;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: var(--ttv3-tx);
  margin-bottom: .4rem;
}
.ttv3-suc-sub { font-size: .875rem; color: var(--ttv3-tx2); }
.ttv3-suc-body { padding: 1.75rem; }
.ttv3-suc-summary {
  background: var(--ttv3-s);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--ttv3-r);
  padding: 1.1rem 1.25rem;
  margin-bottom: 1.25rem;
}
.ttv3-suc-row {
  display: flex;
  justify-content: space-between;
  font-size: .875rem;
  margin-bottom: .4rem;
}
.ttv3-suc-row:last-child { margin-bottom: 0; }
.ttv3-suc-row span:first-child { color: var(--ttv3-tx2); }
.ttv3-suc-row span:last-child  { font-weight: 600; color: var(--ttv3-tx); }
.ttv3-suc-row.total span:last-child { color: var(--ttv3-neon); font-size: 1.05rem; }

/* ── Responsive dashboard ── */
@media (max-width: 991px) {
  .ttv3-dash-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
  .ttv3-dash-stats { grid-template-columns: repeat(2, 1fr); }
  .ttv3-tbl thead th { display: none; }
  .ttv3-tbl tbody td { display: block; padding: .4rem 1.25rem; }
  .ttv3-tbl tbody td:first-child { padding-top: .85rem; }
  .ttv3-tbl tbody td:last-child  { padding-bottom: .85rem; }
  .ttv3-actions { flex-direction: column; }
  .ttv3-actions .ttv3-btn-main,
  .ttv3-actions .ttv3-btn-gold { width: 100%; justify-content: center; }
}

/* ── Hero ── */
.tt-hero {
  position: relative;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--tt-bg);
}
.tt-hero-img {
  position: absolute;
  inset: 0;
  background-image: var(--tt-hero-bg);
  background-size: cover;
  background-position: center;
  z-index: 0;
}
.tt-hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(170deg, rgba(6,7,13,.3) 0%, rgba(6,7,13,.72) 50%, rgba(6,7,13,.97) 100%),
    linear-gradient(90deg, rgba(6,7,13,.65) 0%, transparent 65%);
  z-index: 1;
}
.tt-hero-lines {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    -58deg,
    transparent 0px,
    transparent 56px,
    rgba(255,69,0,.022) 57px,
    transparent 58px
  );
  z-index: 1;
  pointer-events: none;
}

/* Breadcrumb no hero */
.tt-bc {
  position: relative;
  z-index: 10;
  padding: .8rem 0;
  font-size: .75rem;
  color: rgba(255,255,255,.4);
  margin-top: 58px;
}
.tt-bc .container { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.tt-bc a { color: rgba(255,255,255,.5); text-decoration: none; transition: color .15s; }
.tt-bc a:hover { color: var(--tt-gold); }
.tt-bc span:not(.tt-bc-active) { opacity: .4; }
.tt-bc-active { color: rgba(255,255,255,.8); font-weight: 600; }

/* Corpo do hero */
.tt-hero-body {
  position: relative;
  z-index: 10;
  flex: 1;
  display: flex;
  align-items: center;
  padding: 2rem 0 2rem;
}

/* Eyebrow */
.tt-eyebrow-row { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.5rem; }
.tt-ey-line { height: 1px; width: 44px; background: linear-gradient(90deg, transparent, var(--tt-gold)); flex-shrink: 0; }
.tt-ey-line-r { background: linear-gradient(90deg, var(--tt-gold), transparent); }
.tt-ey-txt {
  font-size: .63rem;
  font-weight: 700;
  letter-spacing: .18em;
  color: var(--tt-gold);
  text-transform: uppercase;
  white-space: nowrap;
}

/* Título principal */
.tt-htitle {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  line-height: .9;
  margin-bottom: 2rem;
}
.tt-h-desafio {
  display: block;
  font-size: clamp(5rem, 15vw, 12rem);
  color: var(--tt-tx);
  letter-spacing: -.02em;
}
.tt-h-subtitulo {
  display: block;
  font-size: clamp(4rem, 12vw, 9.5rem);
  letter-spacing: -.01em;
}
.tt-de { color: var(--tt-gold); font-style: normal; }
.tt-titans { color: var(--tt-fire); text-shadow: 0 0 80px rgba(255,69,0,.4); font-weight: 900; }

/* Chips de info */
.tt-hero-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.tt-chip {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 100px;
  padding: .35rem .9rem;
  font-size: .78rem;
  color: var(--tt-tx-2);
  backdrop-filter: blur(6px);
}
.tt-chip i { font-size: .72rem; }
.tt-chip-gold { border-color: rgba(255,184,0,.3); color: var(--tt-gold); background: rgba(255,184,0,.07); }

/* Barra inferior do hero */
.tt-hero-foot {
  position: relative;
  z-index: 10;
  padding: 1rem 0;
  background: rgba(6,7,13,.88);
  border-top: 1px solid rgba(255,184,0,.14);
  backdrop-filter: blur(12px);
}
.tt-hero-foot-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.tt-hero-price-wrap { display: flex; align-items: baseline; gap: .5rem; }
.tt-hero-price {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 1.85rem;
  color: var(--tt-gold);
  line-height: 1;
}
.tt-hero-price-sub { font-size: .75rem; color: var(--tt-tx-m); }

/* ── Botões novos ── */
.tt-btn-cta,
.tt-btn-fire,
.tt-btn-gold,
.tt-btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .95rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  transition: background .18s, box-shadow .18s, transform .12s;
  padding: .72rem 1.75rem;
}
.tt-btn-cta, .tt-btn-fire { background: var(--tt-fire); color: #fff; }
.tt-btn-cta:hover, .tt-btn-fire:hover {
  background: #d63800;
  box-shadow: 0 0 28px rgba(255,69,0,.45);
  color: #fff;
  transform: translateY(-1px);
  text-decoration: none;
}
.tt-btn-gold { background: var(--tt-gold); color: #06070D; }
.tt-btn-gold:hover {
  background: #e6a500;
  box-shadow: 0 0 28px rgba(255,184,0,.4);
  color: #06070D;
  transform: translateY(-1px);
  text-decoration: none;
}
.tt-btn-outline {
  background: transparent;
  border: 1.5px solid rgba(255,255,255,.18);
  color: var(--tt-tx-2);
}
.tt-btn-outline:hover {
  border-color: var(--tt-gold);
  color: var(--tt-gold);
  background: var(--tt-gold-dim);
  text-decoration: none;
}

/* ── Seção de Registro ── */
.tt-register {
  padding: 5rem 0 4.5rem;
  background: var(--tt-surface);
  border-top: 2px solid rgba(255,184,0,.1);
}
.tt-register-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: start;
}

/* Tag de seção */
.tt-section-tag {
  display: inline-block;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--tt-gold);
  margin-bottom: .65rem;
}

/* Info esquerda */
.tt-reg-h {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
  font-size: clamp(2.75rem, 5.5vw, 4.25rem);
  text-transform: uppercase;
  line-height: .92;
  margin-bottom: 1rem;
  color: var(--tt-tx);
}
.tt-reg-h span { color: var(--tt-fire); }
.tt-reg-p { font-size: .925rem; color: var(--tt-tx-2); line-height: 1.75; margin-bottom: 1.75rem; }

.tt-price-card {
  background: var(--tt-bg);
  border: 1px solid rgba(255,184,0,.18);
  border-left: 3px solid var(--tt-gold);
  border-radius: var(--tt-r);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
}
.tt-price-big {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 2.75rem;
  color: var(--tt-gold);
  line-height: 1;
  margin-bottom: .5rem;
}
.tt-price-meta { display: flex; flex-direction: column; gap: .2rem; font-size: .8rem; color: var(--tt-tx-m); }
.tt-price-meta i { margin-right: .35rem; color: rgba(255,184,0,.6); }

.tt-feats { list-style: none; display: flex; flex-direction: column; gap: .45rem; }
.tt-feats li { font-size: .875rem; color: var(--tt-tx-2); display: flex; align-items: center; gap: .5rem; }
.tt-feats li i { color: var(--tt-gold); font-size: .75rem; width: 14px; flex-shrink: 0; }

/* Caixa do formulário */
.tt-form-box {
  background: var(--tt-elevated);
  border: 1px solid rgba(255,184,0,.12);
  border-radius: var(--tt-r-xl);
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  text-align: center;
}

/* Estados */
.tt-state-ico {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: rgba(255,184,0,.1);
  border: 1.5px solid rgba(255,184,0,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  color: var(--tt-gold);
}
.tt-ico-warn { background: rgba(245,158,11,.1); border-color: rgba(245,158,11,.25); color: #f59e0b; }
.tt-ico-ok   { background: rgba(34,197,94,.1);  border-color: rgba(34,197,94,.25);  color: #22c55e; }
.tt-state-h {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1.35rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--tt-tx);
  margin: 0;
}
.tt-state-p   { font-size: .875rem; color: var(--tt-tx-2); line-height: 1.65; margin: 0; }
.tt-state-foot { font-size: .78rem; color: var(--tt-tx-m); margin: 0; }
.tt-gold-link  { color: var(--tt-gold); text-decoration: none; }
.tt-gold-link:hover { text-decoration: underline; color: var(--tt-gold); }

/* Pill do nome da equipe */
.tt-team-pill {
  width: 100%;
  background: rgba(255,184,0,.07);
  border: 1px solid rgba(255,184,0,.18);
  border-radius: var(--tt-r);
  padding: .875rem 1.25rem;
  text-align: center;
}
.tt-team-n {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--tt-gold);
  display: block;
  margin-bottom: .15rem;
}
.tt-team-s { font-size: .78rem; color: var(--tt-tx-m); }

/* Badge líder */
.tt-leader-badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tt-gold);
  background: rgba(255,184,0,.08);
  border: 1px solid rgba(255,184,0,.2);
  border-radius: 100px;
  padding: .3rem .875rem;
  align-self: flex-start;
}

/* Inputs */
.tt-fgroup { display: flex; flex-direction: column; gap: .35rem; width: 100%; margin-bottom: .75rem; text-align: left; }
.tt-flabel {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tt-tx-m);
}
.tt-finput {
  width: 100%;
  background: var(--tt-surface);
  border: 1.5px solid rgba(255,255,255,.1);
  border-radius: var(--tt-r);
  padding: .75rem 1rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .95rem;
  color: var(--tt-tx);
  transition: border-color .15s;
}
.tt-finput::placeholder { color: var(--tt-tx-m); }
.tt-finput:focus { outline: none; border-color: rgba(255,184,0,.5); box-shadow: 0 0 0 3px rgba(255,184,0,.08); }
.tt-form-note { font-size: .72rem; color: var(--tt-tx-m); text-align: center; margin: 0; }
.tt-err-box {
  background: rgba(255,69,0,.1);
  border: 1px solid rgba(255,69,0,.25);
  border-radius: var(--tt-r);
  padding: .65rem .875rem;
  font-size: .85rem;
  color: #ff7050;
  display: flex;
  gap: .5rem;
  align-items: center;
  text-align: left;
}

/* ── Seção Regras ── */
.tt-rules-sec {
  padding: 5rem 0;
  background: var(--tt-bg);
  position: relative;
  overflow: hidden;
}
.tt-rules-sec::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    -58deg,
    transparent 0px,
    transparent 56px,
    rgba(255,184,0,.012) 57px,
    transparent 58px
  );
  pointer-events: none;
}
.tt-rules-hd { margin-bottom: 2.75rem; }
.tt-rules-h {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
  font-size: clamp(2.25rem, 5vw, 3.5rem);
  text-transform: uppercase;
  color: var(--tt-tx);
  line-height: .95;
  margin-top: .35rem;
}
.tt-rules-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  background: rgba(255,255,255,.05);
  border-radius: var(--tt-r-xl);
  overflow: hidden;
}
.tt-rule {
  background: var(--tt-surface);
  padding: 2rem 1.5rem 2.25rem;
  display: flex;
  flex-direction: column;
  gap: .7rem;
  transition: background .2s;
}
.tt-rule:hover { background: var(--tt-elevated); }
.tt-rule-n {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
  font-size: 3rem;
  color: rgba(255,184,0,.15);
  line-height: 1;
}
.tt-rule-ic {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  background: rgba(255,184,0,.08);
  border: 1px solid rgba(255,184,0,.15);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: var(--tt-gold);
}
.tt-rule-tit {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--tt-tx);
}
.tt-rule-txt { font-size: .82rem; color: var(--tt-tx-2); line-height: 1.65; }

/* ── Sobre o evento ── */
.tt-about-sec {
  padding: 4rem 0;
  background: var(--tt-surface);
  border-top: 1px solid rgba(255,255,255,.04);
}
.tt-about-inner { max-width: 740px; margin: 0 auto; text-align: center; }
.tt-about-txt { margin-top: 1.25rem; font-size: .925rem; color: var(--tt-tx-2); line-height: 1.85; }

/* ── Responsivo tt-* ── */
@media (max-width: 991px) {
  .tt-register-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .tt-rules-row { grid-template-columns: repeat(2, 1fr); }
  .tt-rules-row .tt-rule:last-child { grid-column: span 2; }
}

@media (max-width: 767px) {
  .tt-h-desafio   { font-size: clamp(3.5rem, 18vw, 6rem); }
  .tt-h-subtitulo { font-size: clamp(3rem, 15vw, 5rem); }
  .tt-eyebrow-row { justify-content: center; }
  .tt-ey-txt { font-size: .58rem; letter-spacing: .1em; }
  .tt-hero-chips  { justify-content: center; }
  .tt-hero-foot-inner { flex-direction: column; text-align: center; gap: .75rem; }
  .tt-hero-price-wrap { justify-content: center; }
  .tt-register { padding: 3rem 0; }
  .tt-form-box { padding: 1.75rem 1.25rem; }
  .tt-rules-sec { padding: 3rem 0; }
  .tt-rules-row { grid-template-columns: 1fr; }
  .tt-rules-row .tt-rule:last-child { grid-column: span 1; }
}

@media (max-width: 480px) {
  .tt-form-box { padding: 1.5rem 1rem; }
  .tt-bc { font-size: .7rem; }
  .tt-hero-foot .tt-btn-cta { width: 100%; }
}
