/* ===== VARIABLES ===== */
:root {
  --navy: #0b1829;
  --navy2: #132237;
  --teal: #0d9488;
  --teal-light: #14b8a6;
  --teal-dim: rgba(13,148,136,0.12);
  --gold: #d4a017;
  --gold-light: #f0c040;
  --cream: #f8f4ef;
  --white: #ffffff;
  --gray: #64748b;
  --gray-light: #94a3b8;
  --border: rgba(255,255,255,0.07);
  --border-light: #e2e8f0;
  --card-bg: rgba(255,255,255,0.03);
  --transition: 0.35s cubic-bezier(0.4,0,0.2,1);
}

/* ===== RESET ===== */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family:'Outfit', sans-serif;
  background:var(--navy);
  color:var(--cream);
  overflow-x:hidden;
  line-height:1.6;
}
img { max-width:100%; display:block; }
a { text-decoration:none; color:inherit; }

/* ===== PAGE TRANSITION ===== */
.page-transition {
  position:fixed; inset:0; z-index:9999;
  background:var(--teal);
  transform:translateY(100%);
  transition:transform 0.5s cubic-bezier(0.76,0,0.24,1);
  pointer-events:none;
}
.page-transition.enter { transform:translateY(0); }
.page-transition.exit { transform:translateY(-100%); }

/* ===== PROGRESS BAR ===== */
#progress-bar {
  position:fixed; top:0; left:0; height:2px;
  background:linear-gradient(90deg, var(--teal), var(--gold));
  z-index:9998; width:0%; transition:width 0.1s;
}

/* ===== CURSOR ===== */
.cursor {
  position:fixed; width:10px; height:10px;
  background:var(--teal); border-radius:50%;
  pointer-events:none; z-index:9997;
  transition:transform 0.15s, opacity 0.3s;
  transform:translate(-50%,-50%);
}
.cursor-ring {
  position:fixed; width:36px; height:36px;
  border:1.5px solid rgba(13,148,136,0.4);
  border-radius:50%; pointer-events:none;
  z-index:9996; transition:transform 0.3s, width 0.3s, height 0.3s, border-color 0.3s;
  transform:translate(-50%,-50%);
}
.cursor.active { transform:translate(-50%,-50%) scale(0.5); }
.cursor-ring.active { width:54px; height:54px; border-color:var(--gold); }

/* ===== NAV ===== */
nav {
  position:fixed; top:0; width:100%; z-index:1000;
  padding:0 3rem;
  height:70px;
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(11,24,41,0.85);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  transition:all var(--transition);
}
nav.scrolled { height:60px; background:rgba(11,24,41,0.97); }
.nav-logo {
  font-family:'Cormorant Garamond', serif;
  font-size:1.5rem; font-weight:600;
  letter-spacing:0.02em; color:var(--cream);
}
.nav-logo span { color:var(--teal); }
.nav-links { display:flex; gap:0.3rem; list-style:none; align-items:center; }
.nav-links a {
  padding:0.45rem 0.9rem; border-radius:6px;
  font-size:0.82rem; font-weight:500;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--gray-light);
  transition:all var(--transition);
  position:relative;
}
.nav-links a:hover, .nav-links a.active { color:var(--cream); background:var(--teal-dim); }
.nav-links a.active::after {
  content:''; position:absolute; bottom:4px; left:50%; transform:translateX(-50%);
  width:4px; height:4px; background:var(--teal); border-radius:50%;
}
.nav-cta {
  background:var(--teal) !important; color:var(--white) !important;
  padding:0.45rem 1.1rem !important; border-radius:6px;
}
.nav-cta:hover { background:var(--teal-light) !important; transform:translateY(-1px); }

/* HAMBURGER */
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; }
.hamburger span { display:block; width:24px; height:2px; background:var(--cream); border-radius:2px; transition:all 0.3s; }
.hamburger.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* MOBILE MENU */
.mobile-menu {
  display:none; position:fixed; inset:0; z-index:999;
  background:var(--navy2);
  flex-direction:column; align-items:center; justify-content:center;
  gap:2rem; opacity:0; transition:opacity 0.3s;
}
.mobile-menu.open { display:flex; opacity:1; }
.mobile-menu a { font-size:2rem; font-family:'Cormorant Garamond',serif; color:var(--cream); transition:color 0.2s; }
.mobile-menu a:hover { color:var(--teal); }

/* ===== BACK TO TOP ===== */
#back-top {
  position:fixed; bottom:2rem; right:2rem; z-index:500;
  width:44px; height:44px; border-radius:50%;
  background:var(--teal); color:var(--white);
  border:none; cursor:pointer; font-size:1.1rem;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:translateY(10px);
  transition:all var(--transition);
  box-shadow:0 4px 20px rgba(13,148,136,0.4);
}
#back-top.visible { opacity:1; transform:translateY(0); }
#back-top:hover { background:var(--teal-light); transform:translateY(-3px); }

/* ===== HERO ===== */
.hero {
  min-height:100vh;
  display:flex; flex-direction:column; justify-content:center;
  padding:8rem 3rem 4rem;
  position:relative; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(ellipse 60% 50% at 70% 40%, rgba(13,148,136,0.12) 0%, transparent 60%),
    radial-gradient(ellipse 40% 40% at 20% 80%, rgba(212,160,23,0.07) 0%, transparent 60%);
}
.hero-grid-lines {
  position:absolute; inset:0; z-index:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size:60px 60px;
}
.hero-content { position:relative; z-index:1; max-width:900px; }
.hero-tag {
  display:inline-flex; align-items:center; gap:0.6rem;
  background:var(--teal-dim); border:1px solid rgba(13,148,136,0.3);
  color:var(--teal-light); padding:0.4rem 1rem; border-radius:2rem;
  font-size:0.75rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase;
  margin-bottom:1.8rem;
  animation:fadeUp 0.7s ease both;
}
.dot-pulse { width:7px; height:7px; background:var(--teal-light); border-radius:50%; animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.4;transform:scale(0.8)} }

.hero h1 {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(3rem,6vw,5.5rem);
  font-weight:600; line-height:1.05;
  margin-bottom:1.5rem;
  animation:fadeUp 0.7s 0.1s ease both;
}
.hero h1 .line { display:block; overflow:hidden; }
.hero h1 em { color:var(--teal); font-style:italic; }
.hero h1 .gold { color:var(--gold); }

.hero-sub {
  font-size:1.05rem; color:var(--gray-light);
  max-width:560px; line-height:1.8; margin-bottom:1rem;
  animation:fadeUp 0.7s 0.2s ease both;
}
.scholar {
  display:inline-flex; align-items:center; gap:0.5rem;
  background:rgba(212,160,23,0.1); border:1px solid rgba(212,160,23,0.25);
  color:var(--gold-light); padding:0.4rem 1rem; border-radius:4px;
  font-size:0.8rem; font-weight:600; margin-bottom:2rem;
  animation:fadeUp 0.7s 0.25s ease both;
}
.hero-btns {
  display:flex; gap:1rem; flex-wrap:wrap;
  animation:fadeUp 0.7s 0.3s ease both;
}
.btn {
  display:inline-flex; align-items:center; gap:0.5rem;
  padding:0.85rem 1.8rem; border-radius:6px;
  font-size:0.88rem; font-weight:600; letter-spacing:0.04em;
  transition:all var(--transition); cursor:pointer; border:none;
}
.btn-primary { background:var(--teal); color:var(--white); }
.btn-primary:hover { background:var(--teal-light); transform:translateY(-2px); box-shadow:0 8px 24px rgba(13,148,136,0.35); }
.btn-ghost { background:transparent; color:var(--cream); border:1.5px solid var(--border); }
.btn-ghost:hover { border-color:var(--teal); color:var(--teal-light); transform:translateY(-2px); }
.btn-gold { background:var(--gold); color:var(--navy); }
.btn-gold:hover { background:var(--gold-light); transform:translateY(-2px); box-shadow:0 8px 24px rgba(212,160,23,0.3); }

/* STATS ROW */
.stats-row {
  display:flex; gap:3rem; margin-top:4rem; flex-wrap:wrap;
  animation:fadeUp 0.7s 0.4s ease both;
  padding-top:3rem; border-top:1px solid var(--border);
}
.stat { }
.stat-num {
  font-family:'Cormorant Garamond', serif;
  font-size:2.8rem; font-weight:700; color:var(--gold);
  line-height:1;
}
.stat-label { font-size:0.8rem; color:var(--gray-light); margin-top:0.3rem; }

/* ===== SECTIONS ===== */
.section { padding:7rem 3rem; }
.section-inner { max-width:1100px; margin:0 auto; }
.section-label {
  font-size:0.72rem; font-weight:700; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--teal); margin-bottom:0.5rem;
}
.section-title {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(2rem,3.5vw,3rem); font-weight:600;
  line-height:1.15; margin-bottom:0.8rem; color:var(--cream);
}
.section-title em { color:var(--teal); font-style:italic; }
.divider { width:48px; height:2px; background:var(--gold); margin-bottom:3.5rem; }

/* ===== CARDS ===== */
.card {
  background:var(--card-bg);
  border:1px solid var(--border);
  border-radius:12px; overflow:hidden;
  transition:all var(--transition);
}
.card:hover {
  border-color:rgba(13,148,136,0.4);
  transform:translateY(-4px);
  box-shadow:0 20px 60px rgba(0,0,0,0.3);
}

/* PROJECT CARD */
.project-card-header {
  background:var(--navy2); padding:2rem;
  position:relative; overflow:hidden;
}
.project-card-header::before {
  content:''; position:absolute;
  top:-60px; right:-60px; width:180px; height:180px;
  background:radial-gradient(circle, rgba(13,148,136,0.15) 0%, transparent 70%);
  border-radius:50%;
}
.project-icon { font-size:2rem; margin-bottom:0.7rem; position:relative; z-index:1; }
.project-title {
  font-family:'Cormorant Garamond', serif;
  font-size:1.3rem; color:var(--cream);
  position:relative; z-index:1; line-height:1.3;
}
.badge {
  display:inline-block; font-size:0.68rem; font-weight:700;
  letter-spacing:0.1em; text-transform:uppercase;
  padding:0.18rem 0.6rem; border-radius:3px;
  margin-bottom:0.5rem; position:relative; z-index:1;
}
.badge-gold { background:var(--gold); color:var(--navy); }
.badge-teal { background:rgba(13,148,136,0.8); color:var(--white); }
.project-body { padding:1.6rem; }
.project-desc { color:var(--gray-light); font-size:0.9rem; line-height:1.75; margin-bottom:1.2rem; }
.tags { display:flex; flex-wrap:wrap; gap:0.4rem; margin-bottom:1.3rem; }
.tag {
  background:rgba(13,148,136,0.08); color:var(--teal-light);
  border:1px solid rgba(13,148,136,0.2); border-radius:3px;
  padding:0.2rem 0.55rem; font-size:0.72rem; font-weight:600;
}
.project-link {
  color:var(--teal-light); font-weight:600; font-size:0.85rem;
  display:inline-flex; align-items:center; gap:0.4rem;
  transition:all 0.2s;
}
.project-link:hover { color:var(--gold); gap:0.7rem; }
.metric-row { display:flex; gap:1.5rem; margin-bottom:1.2rem; }
.metric-num { font-family:'Cormorant Garamond',serif; font-size:1.8rem; color:var(--gold); line-height:1; }
.metric-label { font-size:0.72rem; color:var(--gray-light); }

/* ===== TIMELINE ===== */
.timeline { position:relative; }
.timeline::before { content:''; position:absolute; left:0; top:6px; bottom:0; width:1px; background:var(--border); }
.tl-item { padding-left:2rem; margin-bottom:2.5rem; position:relative; }
.tl-dot { position:absolute; left:-5px; top:6px; width:11px; height:11px; background:var(--teal); border-radius:50%; border:2px solid var(--navy); box-shadow:0 0 0 2px var(--teal); }
.tl-date { font-size:0.73rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--teal); margin-bottom:0.3rem; }
.tl-role { font-family:'Cormorant Garamond',serif; font-size:1.1rem; color:var(--cream); margin-bottom:0.15rem; }
.tl-org { color:var(--gray-light); font-size:0.85rem; margin-bottom:0.5rem; }
.tl-desc { color:var(--gray); font-size:0.87rem; line-height:1.7; }

/* ===== SKILLS ===== */
.skill-pill {
  background:var(--card-bg); border:1px solid var(--border);
  border-radius:6px; padding:0.6rem 0.9rem;
  font-size:0.82rem; font-weight:500; color:var(--cream);
  display:flex; align-items:center; gap:0.5rem;
  transition:all var(--transition);
}
.skill-pill:hover { border-color:var(--teal); color:var(--teal-light); transform:translateY(-2px); }
.skill-pill::before { content:''; width:6px; height:6px; background:var(--teal); border-radius:50%; flex-shrink:0; }

/* ===== CONTACT ===== */
.contact-link {
  display:flex; align-items:center; gap:1rem;
  padding:1rem 1.2rem; border-radius:8px;
  border:1px solid var(--border); background:var(--card-bg);
  transition:all var(--transition); font-size:0.9rem; color:var(--cream);
}
.contact-link:hover { border-color:var(--teal); transform:translateX(5px); color:var(--teal-light); }
.contact-icon { font-size:1.1rem; flex-shrink:0; }
.contact-label { font-size:0.7rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--gray); display:block; }
.contact-val { font-weight:500; font-size:0.88rem; }

/* ===== FOOTER ===== */
footer {
  background:var(--navy2); border-top:1px solid var(--border);
  padding:2rem 3rem; text-align:center;
  color:var(--gray); font-size:0.8rem;
}
footer span { color:var(--gold); }

/* ===== ANIMATIONS ===== */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(22px); }
  to { opacity:1; transform:translateY(0); }
}
.reveal {
  opacity:0; transform:translateY(24px);
  transition:opacity 0.65s ease, transform 0.65s ease;
}
.reveal.delay-1 { transition-delay:0.1s; }
.reveal.delay-2 { transition-delay:0.2s; }
.reveal.delay-3 { transition-delay:0.3s; }
.reveal.delay-4 { transition-delay:0.4s; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ===== GRIDS ===== */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.skills-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:0.8rem; }

/* ===== RESPONSIVE ===== */
@media(max-width:1024px) {
  .grid-3 { grid-template-columns:1fr 1fr; }
  .grid-4 { grid-template-columns:1fr 1fr; }
}
@media(max-width:768px) {
  nav { padding:0 1.5rem; }
  .nav-links { display:none; }
  .hamburger { display:flex; }
  .hero { padding:7rem 1.5rem 3rem; }
  .section { padding:5rem 1.5rem; }
  .grid-2,.grid-3,.grid-4 { grid-template-columns:1fr; }
  .stats-row { gap:2rem; }
  footer { padding:1.5rem; }
}
@media(max-width:480px) {
  .hero h1 { font-size:2.5rem; }
  .hero-btns { flex-direction:column; }
  .btn { justify-content:center; }
}
