:root{
  --radius:12px;
}

body{
  background:var(--bg);
}

::selection{
  background:var(--accent);
  color:var(--on-accent);
}

h1,h2,h3,.hero-title,.offer-amount{
  color:var(--text);
  font-weight:700;
  letter-spacing:0.02em;
}

h2{
  position:relative;
  padding-bottom:0.5em;
  letter-spacing:0.03em;
}

h2::after{
  content:"";
  display:block;
  width:64px;
  height:1px;
  margin-top:0.6em;
  background:var(--accent);
}

.hero-sub,.muted,.prose,p{
  color:var(--prose);
}

.badge{
  background:transparent;
  border:1px solid var(--line);
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-weight:600;
  border-radius:2px;
}

.btn{
  border-radius:2px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-weight:600;
  transition:border-color .4s ease, color .4s ease, background-color .4s ease;
}

.btn-primary{
  background:var(--accent);
  color:var(--on-accent);
  border:1px solid var(--accent);
}

.btn-primary:hover{
  background:transparent;
  color:var(--accent);
}

.btn-ghost{
  background:transparent;
  color:var(--text);
  border:1px solid var(--line);
}

.btn-ghost:hover{
  border-color:var(--accent);
  color:var(--accent);
}

.card,.feature,.access,.offer,.faq-item{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:border-color .5s ease, transform .5s ease;
  animation:onyxReveal 0.9s ease both;
}

.card:hover,.feature:hover,.tile:hover,.access:hover{
  border-color:var(--accent);
  transform:translateY(-3px);
}

.cards .card:nth-child(2),.grid .feature:nth-child(2),.tiles .tile:nth-child(2){animation-delay:.08s;}
.cards .card:nth-child(3),.grid .feature:nth-child(3),.tiles .tile:nth-child(3){animation-delay:.16s;}
.cards .card:nth-child(4),.grid .feature:nth-child(4),.tiles .tile:nth-child(4){animation-delay:.24s;}
.cards .card:nth-child(5),.tiles .tile:nth-child(5){animation-delay:.32s;}
.cards .card:nth-child(6),.tiles .tile:nth-child(6){animation-delay:.4s;}

.feature .icon{
  color:var(--accent);
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--panel-2);
}

.tile{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  animation:onyxReveal 0.9s ease both;
}

.tile.noimg{
  background:var(--panel-2);
}

.tile .gp{
  color:var(--accent);
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.tile .nm{
  color:var(--text);
}

.tab{
  background:transparent;
  border:1px solid var(--line);
  color:var(--text-2);
  border-radius:2px;
  letter-spacing:0.06em;
}

.tab.active{
  border-color:var(--accent);
  color:var(--accent);
}

.faq-q{
  color:var(--text);
  border-bottom:1px solid var(--line);
  font-weight:600;
}

.faq-item.open .faq-q,.faq-q:hover{
  color:var(--accent);
}

.offer{
  border-color:var(--accent);
}

.offer-badge{
  color:var(--accent);
  border:1px solid var(--accent);
  letter-spacing:0.1em;
  text-transform:uppercase;
  border-radius:2px;
}

.offer-amount{
  color:var(--accent);
}

.chips .chip{
  background:var(--panel-2);
  border:1px solid var(--line);
  color:var(--text-2);
  border-radius:2px;
  transition:border-color .4s ease, color .4s ease;
}

.chips .chip:hover{
  border-color:var(--accent);
  color:var(--accent);
}

.access .icon{
  color:var(--accent);
  border:1px solid var(--line);
  border-radius:50%;
}

.trust{
  border-top:1px solid var(--line);
  color:var(--text-2);
}

.trust .t18{
  border:1px solid var(--accent);
  color:var(--accent);
  border-radius:50%;
}

.fact b{
  color:var(--accent);
  font-weight:700;
}

.table{
  border:1px solid var(--line);
}

.table th{
  color:var(--accent);
  letter-spacing:0.05em;
  text-transform:uppercase;
  border-bottom:1px solid var(--line);
}

.table td{
  border-bottom:1px solid var(--line);
  color:var(--prose);
}

@keyframes onyxReveal{
  from{opacity:0; transform:translateY(14px);}
  to{opacity:1; transform:translateY(0);}
}