/* B.A.S.C. · Em atualização — folha de estilos editável */

/* ===== CORES E VARIÁVEIS (editar aqui) ===== */
:root {
  --bg:#05060a;
  --ouro:#e0ae3a;
  --texto:#f2f3f7;
  --suave:#9aa0b4;
  --vidro:rgba(255,255,255,.05);
  --borda:rgba(255,255,255,.12);
}

/* ===== BASE ===== */
* {
  box-sizing:border-box;
  margin:0;
}
body {
  min-height:100vh;
  background:var(--bg);
  color:var(--texto);
  font-family:"Sora",system-ui,-apple-system,"Segoe UI",sans-serif;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px 20px;
  overflow-x:hidden;
  position:relative;
}

/* ===== LUZES DE FUNDO ===== */
.orb {
  position:fixed;
  border-radius:50%;
  filter:blur(90px);
  z-index:0;
  pointer-events:none;
}
.o1 {
  width:46vmax;
  height:46vmax;
  background:var(--azul2);
  opacity:.4;
  top:-18vmax;
  left:-14vmax;
  animation:flutua 18s ease-in-out infinite alternate;
}
.o2 {
  width:38vmax;
  height:38vmax;
  background:var(--ouro);
  opacity:.24;
  bottom:-20vmax;
  right:-12vmax;
  animation:flutua 22s ease-in-out infinite alternate-reverse;
}

/* ===== CONTEÚDO ===== */
main {
  position:relative;
  z-index:1;
  width:100%;
  max-width:980px;
  text-align:center;
}

/* ===== LOGÓTIPO ===== */
.logo {
  width:min(340px,80vw);
  height:auto;
  display:block;
  margin:0 auto 26px;
  mix-blend-mode:screen;
  filter:drop-shadow(0 0 40px rgba(74,99,232,.35));
  animation:entra 1s ease-out both;
}

/* Loading */
.loading {
  margin:0 auto 26px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
}

/* ===== ANIMAÇÃO DE LOADING ===== */
.eq {
  display:flex;
  align-items:flex-end;
  gap:5px;
  height:34px;
}
.eq i {
  width:5px;
  height:100%;
  border-radius:3px;
  background:linear-gradient(to top,#2e3192,var(--azul2));
  transform-origin:bottom;
  animation:eq 1.1s ease-in-out infinite;
}
.eq i:nth-child(2) {
  animation-delay:-.9s;
  background:linear-gradient(to top,#a77f22,var(--ouro));
}
.eq i:nth-child(3) {
  animation-delay:-.6s;
}
.eq i:nth-child(4) {
  animation-delay:-.3s;
  background:linear-gradient(to top,#a77f22,var(--ouro));
}
.eq i:nth-child(5) {
  animation-delay:-.75s;
}
.barra {
  width:min(220px,60vw);
  height:3px;
  border-radius:3px;
  background:var(--borda);
  overflow:hidden;
}
.barra::before {
  content:"";
  display:block;
  height:100%;
  width:40%;
  border-radius:3px;
  background:linear-gradient(90deg,var(--azul2),var(--ouro));
  animation:corre 1.6s ease-in-out infinite;
}
.estado {
  font-size:.85rem;
  color:var(--suave);
}
.estado .pts::after {
  content:"";
  animation:pts 1.5s steps(4,end) infinite;
}


/* ===== TEXTOS ===== */
h1 {
  margin:0 0 14px;
  background:linear-gradient(100deg,#fff 35%,var(--ouro));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-size:clamp(2.2rem,8vw,3.8rem);
  font-weight:700;
  line-height:1.05;
  letter-spacing:-.03em;
}
.sub {
  max-width:46ch;
  margin:0 auto;
  font-weight:300;
  font-size:1.05rem;
  line-height:1.7;
  color:var(--suave);
}

/* ===== CONTACTOS (4 na mesma linha) ===== */
.contactos {
  display:grid;
  grid-template-columns:1fr 1fr 1fr 1.7fr;
  gap:11px;
  margin:38px auto 0;
  max-width:1000px;
  text-align:left;
}
.cartao {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:10px;
  min-height:140px;
  padding:14px;
  border:1px solid var(--borda);
  background:var(--vidro);
  border-radius:25px;
  color:inherit;
  text-decoration:none;
  backdrop-filter:blur(10px);
  transition:border-color .2s,background .2s,transform .2s;
}
.cartao:hover,
.cartao:focus-visible {
  border-color:var(--ouro);
  background:rgba(224,174,58,.08);
  transform:translateY(-2px);
  outline:none;
}
.cartao svg {
  flex:none;
  width:42px;
  height:42px;
  padding:10px;
  border-radius:12px;
  background:rgba(224,174,58,.12);
  stroke:var(--ouro);
  fill:none;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.cartao span {
  display:block;
  min-width:0;
  width:100%;
}
.cartao b {
  display:block;
  font-size:.72rem;
  font-weight:400;
  color:var(--suave);
  margin-bottom:3px;
}
.cartao em {
  font-style:normal;
  font-size:.92rem;
  font-weight:600;
  overflow-wrap:anywhere;
}
.email em {
  font-size:.95rem;
}
/* Ecrãs médios e telemóvel: 2 a 2 (4 numa linha não cabem) */
@media (max-width:760px){
  .contactos { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:560px; }
}
/* Telemóvel: cartões mais compactos */
@media (max-width:480px){
  .contactos { gap:10px; }
  .cartao { min-height:120px; padding:16px; }
  .cartao em { font-size:.82rem; }
  .email em { font-size:.7rem; }
}

/* ===== RODAPÉ ===== */
footer {
  margin-top:42px;
  font-size:.8rem;
  color:var(--suave);
  font-weight:300;
}


/* ===== ANIMAÇÕES ===== */
@keyframes eq{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
@keyframes corre{0%{transform:translateX(-110%)}100%{transform:translateX(260%)}}
@keyframes pts{0%{content:""}25%{content:"."}50%{content:".."}75%,100%{content:"..."}}
@keyframes flutua{to{transform:translate(8vmax,6vmax) scale(1.1)}}
@keyframes entra{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}

/* ===== ACESSIBILIDADE ===== */
@media (prefers-reduced-motion:reduce){.orb,.logo,.cartao{animation:none;transition:none}.eq i{animation:none;transform:scaleY(.6)}.barra::before{animation:none;width:60%}}
