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

/* Body */
body{
  font-family:sans-serif;
  color:white;
  background:#0a0f1c;
  overflow-x:hidden;
  transition:opacity .5s;
}

/* Glow background blobs */
.bg-blur, .bg-blur2{
  position:fixed;
  width:400px;
  height:400px;
  border-radius:50%;
  filter:blur(120px);
  z-index:-1;
  animation:float 10s infinite alternate;
}

.bg-blur{
  background:#00f7ff;
  top:10%;
  left:10%;
}

.bg-blur2{
  background:#ff00c8;
  bottom:10%;
  right:10%;
}

/* Floating animation */
@keyframes float{
  to{ transform:translateY(40px);}
}

/* Navbar */
.nav{
  display:flex;
  justify-content:space-between;
  padding:20px;
}

.links a{
  margin-left:20px;
  color:white;
  text-decoration:none;
  transition:.3s;
}

.links a:hover{
  color:#00f7ff;
}

/* Hero */
.hero{
  text-align:center;
  margin-top:120px;
}

.title{
  font-size:48px;
  background:linear-gradient(90deg,#00f7ff,#ff00c8);
  -webkit-background-clip:text;
  color:transparent;
}

.subtitle{
  opacity:.7;
}

/* Section */
.section{
  padding:80px 20px;
  text-align:center;
}

/* Grid */
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:20px;
  margin-top:30px;
}

/* Cards */
.card{
  background:rgba(255,255,255,0.05);
  padding:20px;
  border-radius:15px;
  backdrop-filter:blur(10px);
  transform:translateY(40px);
  opacity:0;
  transition:.5s;
}

/* Reveal */
.show{
  transform:translateY(0);
  opacity:1;
}

/* Hover glow */
.card:hover{
  transform:translateY(-10px) scale(1.03);
  box-shadow:0 0 30px rgba(0,255,255,0.5);
}

/* Links */
.card a{
  display:inline-block;
  margin-top:10px;
  color:#00f7ff;
}

/* Tag */
.tag{
  margin-top:10px;
  display:inline-block;
  opacity:.6;
}

/* Skills */
.chips span{
  display:inline-block;
  padding:10px 15px;
  margin:10px;
  background:rgba(255,255,255,0.05);
  border-radius:20px;
  transform:translateY(40px);
  opacity:0;
  transition:.5s;
}

.chips span:hover{
  background:#00f7ff;
  color:black;
}

/* Footer */
footer{
  text-align:center;
  padding:30px;
  opacity:.5;
}

/* Mobile */
@media(max-width:600px){
  .title{font-size:32px;}
}
