/* ---------- COLORS & FONTS ---------- */
:root{
  --primary:#6a5acd;
  --secondary:#8e44ad;
  --accent:#06d6a0;
  --bg-1:#0b0f1a;
  --bg-2:#0d1020;
  --glass: rgba(255,255,255,0.04);
  --text:#eaeef6;
  --muted:#c5c9d6;
  --glow: 0 12px 40px rgba(106,90,205,0.18);
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family: 'Poppins', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  color:var(--text);
  background: radial-gradient(circle at 10% 10%, rgba(106,90,205,0.12), transparent 10%),
              radial-gradient(circle at 90% 90%, rgba(138,43,226,0.08), transparent 10%),
              linear-gradient(180deg,var(--bg-1),var(--bg-2));
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

/* ---------- LAYOUT ---------- */
.container{
  max-width:1200px;
  margin:0 auto;
  padding:0 2rem;
}

/* ---------- HEADER ---------- */
header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1200;
  background: linear-gradient(180deg, rgba(7,9,16,0.65), rgba(7,9,16,0.35));
  backdrop-filter: blur(8px) saturate(120%);
  border-bottom: 1px solid rgba(255,255,255,0.03);
}
header .container{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem}
.logo{
  font-family: 'Orbitron', sans-serif;
  font-weight:700;
  font-size:1.6rem;
  background: linear-gradient(45deg,var(--primary),var(--accent));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
}

/* nav */
nav ul{display:flex;gap:1.6rem;align-items:center;list-style:none}
nav a{color:var(--text);text-decoration:none;font-weight:600;opacity:0.95;transition:color .25s, transform .18s}
nav a:hover{color:var(--accent);transform:translateY(-2px)}
.dropdown{position:relative}
.dropdown-menu{
  position:absolute;left:0;top:calc(100% + 10px);
  background: linear-gradient(180deg, rgba(10,12,20,0.98), rgba(12,14,22,0.95));
  padding:0.4rem;border-radius:10px;box-shadow:0 10px 30px rgba(2,6,23,0.6);
  display:none;min-width:220px;backdrop-filter: blur(6px);
}
.dropdown-menu a{display:block;padding:.6rem 1rem;color:var(--muted);font-weight:500}
.dropdown:hover .dropdown-menu{display:block}

/* mobile */
.mobile-menu-toggle{display:none;background:none;border:none;color:var(--text);font-size:1.25rem}

/* ---------- HERO ---------- */
#bg-canvas{position:fixed;inset:0;z-index:-1;display:block}
.hero{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:6rem 2rem 4rem; /* leave space for sticky header */
}
.hero .typing-text{
  font-family:'Orbitron', sans-serif;
  font-size: clamp(2rem, 4.5vw, 3.6rem);
  line-height:1.02;
  background: linear-gradient(90deg,var(--primary),var(--secondary),var(--accent));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  margin-bottom: .6rem;
}
.subtitle{color:var(--accent);font-weight:700;margin-bottom:.6rem}
.intro{color:var(--muted)}

/* ---------- CARDS ---------- */
.cards-section{padding:4rem 2rem 6rem}
.cards-container{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:1.6rem;
  align-items:start;
}

/* card */
.card{
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  border-radius:16px;
  overflow:hidden;
  box-shadow: var(--glow);
  border: 1px solid rgba(255,255,255,0.04);
  transform: translateY(40px);
  opacity:0;
  transition: transform .6s cubic-bezier(.2,.9,.2,1), opacity .6s ease, box-shadow .25s ease;
  will-change: transform, opacity;
}
.card.visible{transform: translateY(0);opacity:1}
.card:hover{box-shadow:0 30px 80px rgba(106,90,205,0.22); transform:translateY(-8px)}
.card-media{height:200px;overflow:hidden;background:linear-gradient(135deg, rgba(106,90,205,0.06), rgba(142,68,173,0.04))}
.card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.card:hover .card-media img{transform:scale(1.08) rotate(-0.5deg)}

/* body */
.card-body{padding:1.2rem 1.2rem 1.6rem;text-align:left}
.card h3{color:var(--accent);margin-bottom:.35rem;font-size:1.15rem}
.card p{color:var(--muted);line-height:1.5;font-size:.95rem}

/* ---------- SECTIONS & FORM ---------- */
section{padding:3.2rem 0}
h2{font-size:2rem;text-align:center;margin-bottom:1rem;background:linear-gradient(90deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.container form{max-width:640px;margin:0 auto;display:grid;gap:1rem}
input,textarea{
  width:100%;padding:1rem;border-radius:12px;border:none;background:rgba(255,255,255,0.03);color:var(--text)
}
button{
  display:inline-flex;gap:.6rem;align-items:center;justify-content:center;padding:0.9rem 1.2rem;border-radius:12px;border:none;
  background:linear-gradient(90deg,var(--primary),var(--secondary));color:#fff;font-weight:700;cursor:pointer;box-shadow:0 10px 30px rgba(106,90,205,0.16)
}
button:hover{transform:translateY(-3px);}

/* ---------- SMALLER SCREENS ---------- */
@media (max-width:1000px){
  .cards-container{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:700px){
  nav ul{display:none}
  .mobile-menu-toggle{display:inline-block}
  .cards-container{grid-template-columns:1fr;gap:1rem}
  .hero{padding-top:5.5rem}
}

/* ---------- FADE-UP helper (fallback + class) ---------- */
.fade-up{will-change:transform,opacity}
