/* ========================= */
/* RESET */
/* ========================= */

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

html{
  scroll-behavior:smooth;
}

body{
  font-family:'Rajdhani',sans-serif;
  overflow-x:hidden;
  background:
  radial-gradient(circle at top,#14213d 0%,#090b13 45%,#000000 100%);
  color:white;
  min-height:100vh;
  position:relative;
}

/* ========================= */
/* TECH GRID BACKGROUND */
/* ========================= */

body::before{
  content:"";
  position:fixed;
  inset:0;

  background-image:
  linear-gradient(rgba(0,255,255,.05) 1px, transparent 1px),
  linear-gradient(90deg, rgba(0,255,255,.05) 1px, transparent 1px);

  background-size:40px 40px;

  z-index:-5;

  animation:gridMove 12s linear infinite;
}

@keyframes gridMove{
  from{
    transform:translateY(0px);
  }

  to{
    transform:translateY(40px);
  }
}

/* ========================= */
/* BACKGROUND GLOW */
/* ========================= */

.bg-glow{
  position:fixed;
  width:800px;
  height:800px;
  background:radial-gradient(circle, rgba(0,255,255,.18), transparent 70%);
  top:-200px;
  left:-200px;
  filter:blur(80px);
  z-index:-4;
  animation:pulse 5s infinite alternate;
}

@keyframes pulse{
  from{
    transform:scale(1);
  }

  to{
    transform:scale(1.3);
  }
}

/* ========================= */
/* PARTICLES */
/* ========================= */

.particles{
  position:fixed;
  inset:0;
  z-index:-3;
  overflow:hidden;
}

.particle{
  position:absolute;
  width:4px;
  height:4px;
  border-radius:50%;
  background:cyan;
  box-shadow:0 0 15px cyan;
  animation:float linear infinite;
}

@keyframes float{

  from{
    transform:translateY(100vh) scale(0);
    opacity:0;
  }

  to{
    transform:translateY(-20vh) scale(1.5);
    opacity:1;
  }
}

/* ========================= */
/* LOADING SCREEN */
/* ========================= */

.loader{
  position:fixed;
  inset:0;
  background:black;
  z-index:99999;

  display:flex;
  justify-content:center;
  align-items:center;
  flex-direction:column;

  transition:1s;
}

.loader h1{
  font-family:'Orbitron',sans-serif;
  font-size:4rem;

  background:linear-gradient(90deg,#00f0ff,#ffffff,#ff00ff);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;

  animation:loaderGlow 2s infinite;
}

.loader p{
  margin-top:20px;
  letter-spacing:5px;
  color:#8de9ff;
}

@keyframes loaderGlow{
  0%,100%{
    filter:drop-shadow(0 0 10px cyan);
  }

  50%{
    filter:drop-shadow(0 0 30px magenta);
  }
}

/* ========================= */
/* MAIN */
/* ========================= */

.container{
  width:100%;
  min-height:100vh;

  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;

  padding:50px 20px;

  text-align:center;
}

/* ========================= */
/* TITLE */
/* ========================= */

.title{
  font-family:'Orbitron',sans-serif;
  font-size:clamp(3rem,8vw,7rem);
  font-weight:900;

  text-transform:uppercase;
  letter-spacing:7px;

  background:linear-gradient(90deg,#00eaff,#ffffff,#ff00ff);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;

  animation:titleGlow 3s infinite;
}

@keyframes titleGlow{

  0%,100%{
    filter:drop-shadow(0 0 12px cyan);
  }

  50%{
    filter:drop-shadow(0 0 28px magenta);
  }
}

.subtitle{
  margin-top:15px;
  color:#9edcff;
  letter-spacing:4px;
  margin-bottom:45px;
  font-size:1.1rem;
}

/* ========================= */
/* POSTER */
/* ========================= */

.poster-container{
  position:relative;
  width:min(90vw,700px);

  border-radius:25px;
  overflow:hidden;

  border:2px solid rgba(0,255,255,.4);

  box-shadow:
  0 0 30px rgba(0,255,255,.4),
  0 0 100px rgba(255,0,255,.25);

  transition:.4s;

  transform-style:preserve-3d;
}

.poster-container:hover{
  transform:rotateY(6deg) rotateX(4deg) scale(1.02);
}

.poster-container::before{
  content:"";
  position:absolute;
  inset:0;

  background:linear-gradient(
  120deg,
  transparent 20%,
  rgba(255,255,255,.25) 50%,
  transparent 80%
  );

  transform:translateX(-100%);
  animation:shine 4s infinite;

  z-index:5;
}

@keyframes shine{
  to{
    transform:translateX(100%);
  }
}

.poster{
  width:100%;
  display:block;
}

/* ========================= */
/* AVENGERS PORTAL */
/* ========================= */

.portal{
  position:absolute;
  inset:-20px;
  border-radius:30px;

  border:2px solid rgba(0,255,255,.5);

  animation:portalSpin 12s linear infinite;

  pointer-events:none;
}

@keyframes portalSpin{
  from{
    transform:rotate(0deg);
  }

  to{
    transform:rotate(360deg);
  }
}

/* ========================= */
/* BUTTONS */
/* ========================= */

.controls{
  margin-top:30px;

  display:flex;
  gap:20px;
  flex-wrap:wrap;
  justify-content:center;
}

.btn{
  border:none;
  outline:none;

  padding:15px 28px;
  border-radius:999px;

  cursor:pointer;

  font-family:'Orbitron',sans-serif;
  font-size:1rem;

  transition:.3s;

  color:white;

  background:linear-gradient(90deg,#00d9ff,#8b00ff);

  box-shadow:0 0 18px rgba(0,255,255,.4);
}

.btn:hover{
  transform:scale(1.08);
}

/* ========================= */
/* INFO CARDS */
/* ========================= */

.cards{

  width:min(1000px,95vw);

  display:grid;

  grid-template-columns:
  repeat(auto-fit,minmax(220px,1fr));

  gap:20px;

  margin-top:50px;
}

.card{

  background:rgba(255,255,255,.05);

  border:1px solid rgba(0,255,255,.2);

  border-radius:20px;

  padding:25px;

  backdrop-filter:blur(10px);

  transition:.4s;
}

.card:hover{
  transform:translateY(-8px);

  border-color:#ff00ff;

  box-shadow:0 0 25px rgba(255,0,255,.3);
}

.card h3{
  font-family:'Orbitron',sans-serif;
  color:cyan;
  margin-bottom:15px;
}

.card p{
  color:#d8e8ff;
  line-height:1.6;
}

/* ========================= */
/* TEAM SECTION */
/* ========================= */

.team{
  margin-top:70px;
}

.team h2{
  font-family:'Orbitron',sans-serif;
  margin-bottom:25px;
  color:#00eaff;
  letter-spacing:4px;
}

.team-grid{
  display:grid;
  grid-template-columns:
  repeat(auto-fit,minmax(180px,1fr));
  gap:20px;

  width:min(1000px,95vw);
}

.member{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(0,255,255,.15);

  padding:25px;
  border-radius:20px;

  transition:.3s;
}

.member:hover{
  transform:translateY(-8px) scale(1.03);

  border-color:#ff00ff;

  box-shadow:0 0 25px rgba(255,0,255,.3);
}

.member h4{
  font-family:'Orbitron',sans-serif;
  color:#00eaff;
  margin-bottom:10px;
}

.member p{
  color:#d6e8ff;
}

/* ========================= */
/* FOOTER */
/* ========================= */

footer{
  margin-top:70px;
  color:#7b8ca7;
  letter-spacing:3px;
  text-align:center;
  padding-bottom:30px;
}

/* ========================= */
/* MOBILE */
/* ========================= */

@media(max-width:700px){

  .subtitle{
    font-size:1rem;
  }

  .btn{
    width:100%;
  }

}
/* ========================= */
/* CHARACTER HOTSPOTS */
/* ========================= */

.poster-container{
  position:relative;
}

.person-btn{
  position:absolute;

  padding:10px 16px;

  border-radius:999px;

  text-decoration:none;

  font-family:'Orbitron',sans-serif;
  font-size:.8rem;
  letter-spacing:1px;

  color:white;

  background:rgba(0,0,0,.65);

  border:1px solid rgba(0,255,255,.5);

  backdrop-filter:blur(8px);

  transition:.3s ease;

  box-shadow:
  0 0 10px rgba(0,255,255,.35);

  opacity:0;

  transform:translateY(10px);
}

/* SHOW ON HOVER */

.poster-container:hover .person-btn{
  opacity:1;
  transform:translateY(0);
}

.person-btn:hover{
  transform:scale(1.08);

  border-color:#ff00ff;

  box-shadow:
  0 0 20px rgba(255,0,255,.5);

  background:
  linear-gradient(90deg,#00d9ff,#8b00ff);
}

/* ========================= */
/* POSITION EACH PERSON */
/* ========================= */

/* TOP CENTER */
.zanahorio{
  top:25%;
  left:10%;
}

.strategist{
  top:10%;
  left:43%;
}

/* TOP RIGHT */

.meme{
  top:15%;
  right:10%;
}

/* CENTER LEFT */

.chaos{
  top:40%;
  left:8%;
}

/* CENTER */

.mvp{
  top:38%;
  left:40%;
}

/* BOTTOM LEFT */

.tennis{
  bottom:24%;
  left:4%;
}

/* MOBILE */

@media(max-width:700px){

  .person-btn{
    font-size:.6rem;
    padding:8px 12px;
  }

}