:root{
  --bg:#050505;
  --bg-soft:#0d0d0f;
  --panel:rgba(255,255,255,0.05);
  --panel-strong:rgba(255,255,255,0.08);
  --border:rgba(255,255,255,0.10);
  --text:#f7f7f7;
  --muted:#b8b8bd;
  --muted-2:#8e8e95;
  --accent:#ff2b2b;
  --accent-2:#ff6a6a;
  --glow:rgba(255,43,43,0.24);
  --shadow:0 24px 80px rgba(0,0,0,0.42);
  --radius:28px;
  --container:1200px;
  --spot-x:50%;
  --spot-y:50%;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  font-family:"Inter",sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 20% 10%, rgba(255,43,43,0.10), transparent 24%),
    radial-gradient(circle at 80% 20%, rgba(255,106,106,0.08), transparent 22%),
    linear-gradient(180deg, #020202 0%, #070707 36%, #0b0b0d 100%);
  line-height:1.6;
  overflow-x:hidden;
}

body:not(.loaded){
  overflow:hidden;
}

a{
  color:var(--text);
  text-decoration:none;
}

.container{
  width:min(var(--container), calc(100% - 2rem));
  margin:0 auto;
}

.loading-screen{
  position:fixed;
  inset:0;
  z-index:9999;
  overflow:hidden;
  background:
    radial-gradient(circle at 30% 20%, rgba(255,43,43,0.12), transparent 22%),
    radial-gradient(circle at 75% 30%, rgba(255,106,106,0.08), transparent 20%),
    linear-gradient(180deg, #020202 0%, #070707 45%, #0b0b0d 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:opacity .9s ease, visibility .9s ease, transform .9s ease;
}

.loading-screen.is-hidden{
  opacity:0;
  visibility:hidden;
  transform:scale(1.02);
}

.loading-bg-grid{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size:40px 40px;
  opacity:.15;
  mask-image:radial-gradient(circle at center, black 28%, transparent 90%);
}

.loading-energy{
  position:absolute;
  width:60vw;
  height:2px;
  background:linear-gradient(90deg, transparent, rgba(255,43,43,0.8), transparent);
  filter:blur(.4px);
  opacity:.6;
}
.loading-energy-1{ top:28%; left:-10%; transform:rotate(-12deg); animation:energySweep 2.8s linear infinite; }
.loading-energy-2{ top:52%; right:-10%; transform:rotate(8deg); animation:energySweep 3.2s linear infinite reverse; }
.loading-energy-3{ bottom:24%; left:-15%; transform:rotate(-6deg); animation:energySweep 2.4s linear infinite; }

@keyframes energySweep{
  0%{ transform:translateX(-20%) rotate(-12deg); opacity:.15; }
  50%{ opacity:.75; }
  100%{ transform:translateX(20%) rotate(-12deg); opacity:.15; }
}

.loading-vignette{
  position:absolute;
  inset:0;
  background:radial-gradient(circle, transparent 35%, rgba(0,0,0,0.48) 100%);
}

.loading-content{
  position:relative;
  z-index:2;
  width:min(680px, calc(100% - 2rem));
  text-align:center;
}

.loading-kicker{
  margin:0 0 1rem;
  font-size:.78rem;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:#ff8c8c;
  opacity:.92;
}

.loading-title{
  margin:0;
  display:flex;
  flex-direction:column;
  gap:.15rem;
  font-size:clamp(2.6rem, 9vw, 6.2rem);
  line-height:.92;
  letter-spacing:-0.05em;
  font-weight:900;
  color:#fff;
  text-shadow:0 0 20px rgba(255,43,43,0.20), 0 0 40px rgba(255,43,43,0.14);
  animation:titlePulse 2.2s ease-in-out infinite alternate;
}

@keyframes titlePulse{
  0%{ transform:scale(1); }
  100%{ transform:scale(1.015); }
}

.loading-subtitle{
  margin:1rem 0 1.6rem;
  color:var(--muted);
  font-size:1rem;
}

.loading-bar-shell{
  display:grid;
  grid-template-columns:1fr auto;
  gap:.8rem;
  align-items:center;
  margin:0 auto;
  max-width:560px;
}

.loading-bar{
  position:relative;
  height:12px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.08);
  box-shadow:inset 0 0 12px rgba(0,0,0,0.28);
}

.loading-bar span{
  display:block;
  width:0%;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, #ff2b2b, #ff6a6a, #ffd0d0);
  box-shadow:0 0 20px rgba(255,43,43,0.32), 0 0 40px rgba(255,43,43,0.18);
  transition:width .18s ease;
}

.loading-percent{
  min-width:48px;
  text-align:right;
  font-weight:800;
  color:#fff;
}

.loading-status{
  margin-top:1rem;
  color:#ffd7d7;
  font-size:.95rem;
  opacity:.92;
}

.bg-shell{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}

.bg-gradient{
  position:absolute;
  border-radius:50%;
  filter:blur(90px);
  opacity:.6;
  animation:drift 16s ease-in-out infinite alternate;
}

.bg-gradient-1{
  width:28rem;
  height:28rem;
  top:-8rem;
  left:-6rem;
  background:rgba(255,43,43,0.14);
}
.bg-gradient-2{
  width:24rem;
  height:24rem;
  top:18%;
  right:-6rem;
  background:rgba(255,106,106,0.10);
  animation-delay:2s;
}
.bg-gradient-3{
  width:22rem;
  height:22rem;
  bottom:-6rem;
  left:34%;
  background:rgba(255,255,255,0.03);
  animation-delay:4s;
}

@keyframes drift{
  0%{ transform:translate3d(0,0,0) scale(1); }
  100%{ transform:translate3d(28px,-24px,0) scale(1.08); }
}

.bg-grid{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(circle at center, black 26%, transparent 88%);
  opacity:.18;
}

.bg-noise{
  position:absolute;
  inset:0;
  opacity:.03;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,0.18) 0 1px, transparent 1px),
    radial-gradient(circle at 70% 60%, rgba(255,255,255,0.14) 0 1px, transparent 1px);
  background-size:180px 180px, 240px 240px;
}

.bg-lines{
  position:absolute;
  inset:0;
  background:
    linear-gradient(115deg, transparent 0%, rgba(255,43,43,0.05) 45%, transparent 65%),
    linear-gradient(65deg, transparent 0%, rgba(255,255,255,0.03) 50%, transparent 75%);
  opacity:.55;
  animation:slideLines 14s linear infinite;
}

@keyframes slideLines{
  0%{ transform:translateX(-8%); }
  100%{ transform:translateX(8%); }
}

.progress-bar{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:4px;
  z-index:200;
  background:rgba(255,255,255,0.04);
}
.progress-bar span{
  display:block;
  width:0%;
  height:100%;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
  box-shadow:0 0 16px var(--glow);
  transition:width .08s linear;
}

.site-header,
main{
  position:relative;
  z-index:2;
}

.site-header{
  position:sticky;
  top:0;
  z-index:100;
  backdrop-filter:blur(18px);
  background:rgba(8,8,10,0.62);
  border-bottom:1px solid rgba(255,255,255,0.06);
}

.nav-shell{
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}

.brand{
  font-weight:800;
  font-size:1rem;
  letter-spacing:-0.02em;
  color:#ffffff;
}

.site-nav{
  display:flex;
  align-items:center;
  gap:1rem;
}

.site-nav a{
  color:var(--muted);
  font-size:.95rem;
  transition:color .2s ease, opacity .2s ease;
  position:relative;
}

.site-nav a:hover{
  color:#ffffff;
}

.site-nav a.active{
  color:#ffffff;
}

.site-nav a.active::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-10px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
}

.nav-resume{
  color:var(--text) !important;
  border:1px solid rgba(255,255,255,0.12);
  background:rgba(255,255,255,0.04);
  padding:.7rem 1rem;
  border-radius:999px;
}

.menu-toggle{
  display:none;
  background:none;
  border:0;
  padding:.2rem;
}
.menu-toggle span{
  display:block;
  width:24px;
  height:2px;
  margin:5px 0;
  background:#fff;
}

.hero{
  padding:7rem 0 4.5rem;
  position:relative;
  overflow:hidden;
}

.hero-layout{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:1.5rem;
  align-items:start;
  position:relative;
  z-index:2;
}

.hero-spotlight{
  position:absolute;
  width:380px;
  height:380px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,43,43,0.18), transparent 65%);
  filter:blur(20px);
  transform:translate(-50%, -50%);
  pointer-events:none;
  z-index:1;
}

.eyebrow,
.section-kicker{
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.78rem;
  font-weight:700;
  color:var(--accent-2);
}

.hero h1{
  margin:.7rem 0 1rem;
  max-width:10ch;
  font-size:clamp(3rem, 7vw, 6rem);
  line-height:.98;
  letter-spacing:-0.05em;
  font-weight:900;
}

.hero-lead{
  max-width:60ch;
  font-size:1.18rem;
  color:#ffffff;
  line-height:1.5;
  margin:0 0 1rem;
}

.hero-sub{
  max-width:62ch;
  color:var(--muted);
  font-size:1.02rem;
  margin:0;
}

.hero-role-target{
  margin:1.25rem 0 0;
  color:#ffd7d7;
  font-weight:600;
}

.hero-actions,
.hero-links,
.tag-row{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
}

.hero-actions{
  margin:1.8rem 0 1rem;
}

.hero-links a{
  color:var(--muted);
}
.hero-links a:hover{
  color:var(--text);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:1rem 1.25rem;
  font-weight:700;
  transition:transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.btn:hover{
  transform:translateY(-1px);
}

.btn-primary{
  color:#ffffff;
  background:linear-gradient(135deg, #ff2b2b, #b30000);
  box-shadow:0 10px 30px rgba(255,43,43,0.24);
}

.btn-secondary{
  color:var(--text);
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.12);
}

.magnetic{
  will-change:transform;
}

.glass{
  background:
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(255,255,255,0.10), transparent 35%),
    linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.04));
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  backdrop-filter:blur(20px);
}

.hero-panel{
  padding:1.2rem;
}

.panel-row{
  padding:1rem 0;
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.panel-row:last-child{
  border-bottom:0;
}
.panel-label{
  display:block;
  margin-bottom:.35rem;
  color:var(--muted-2);
  font-size:.82rem;
}

.section{
  padding:3rem 0;
}
.section-alt{
  background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.00));
}
.section-heading{
  margin-bottom:1.5rem;
}
.section-heading h2{
  margin:.35rem 0 .4rem;
  font-size:clamp(2rem, 4vw, 3.4rem);
  line-height:1.02;
  letter-spacing:-0.04em;
  font-weight:800;
}
.section-subtext{
  max-width:64ch;
  color:var(--muted);
}

.tech-strip{ padding-top:.25rem; }
.tech-row{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  padding:1rem;
}
.tech-row span{
  padding:.55rem .75rem;
  border-radius:999px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  color:var(--muted);
  font-size:.86rem;
  transition:transform .2s ease, border-color .2s ease, color .2s ease;
}
.tech-row span:hover{
  transform:translateY(-2px);
  color:#fff;
  border-color:rgba(255,43,43,0.28);
}

.metrics{ padding-top:.8rem; }
.metrics-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1rem;
}
.metric-card{ padding:1.25rem; }
.metric-number{
  display:block;
  font-size:2.3rem;
  line-height:1;
  font-weight:800;
  letter-spacing:-0.04em;
  margin-bottom:.5rem;
}
.metric-card p{ color:var(--muted); margin:0; }

.explore-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
.explore-card{ padding:1.2rem; }
.explore-card h3{ margin:.1rem 0 .6rem; }
.explore-card p{ margin:0; color:var(--muted); }

.three-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:1rem;
}

.info-card,
.project-card,
.skill-card,
.research-card,
.contact-card{
  padding:1.25rem;
}

.info-card h3,
.project-card h3,
.skill-card h3,
.research-card h3,
.contact-card h3,
.timeline-copy h3,
.feature-copy h3{
  margin:.1rem 0 .6rem;
  font-size:1.08rem;
  font-weight:700;
}

.bullet-list{
  margin:0;
  padding-left:1.1rem;
}
.bullet-list li{ margin:.55rem 0; }

.stacked-meta > div + div{
  margin-top:1rem;
  padding-top:1rem;
  border-top:1px solid rgba(255,255,255,0.08);
}

.featured-layout{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:1rem;
}
.feature-side{
  display:grid;
  gap:1rem;
}
.feature-block{ padding:1.25rem; }
.feature-meta{
  margin-bottom:.8rem;
  color:var(--accent-2);
  font-size:.82rem;
  font-weight:700;
}
.feature-content{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:1rem;
  align-items:center;
}
.side-content{ grid-template-columns:1fr; }

.feature-copy p{ color:var(--muted); }

.feature-visual{
  min-height:220px;
  height:220px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(255,255,255,0.03);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08), 0 0 40px rgba(255,43,43,0.08);
  position:relative;
  overflow:hidden;
}
.feature-visual::after{
  content:"";
  position:absolute;
  inset:-20%;
  background:linear-gradient(120deg, transparent 25%, rgba(255,255,255,0.08) 50%, transparent 75%);
  transform:translateX(-60%);
  animation:shimmer 5s linear infinite;
  pointer-events:none;
}
@keyframes shimmer{
  0%{ transform:translateX(-60%); }
  100%{ transform:translateX(60%); }
}
.animated-visual{
  animation:floatVisual 7s ease-in-out infinite alternate;
}
@keyframes floatVisual{
  0%{ transform:translateY(0px) scale(1); }
  100%{ transform:translateY(-8px) scale(1.02); }
}

.case-meta{
  display:grid;
  gap:.75rem;
  margin:1rem 0;
}
.case-meta div{
  padding:.8rem .9rem;
  border-radius:18px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.06);
  transition:border-color .2s ease, transform .2s ease;
}
.case-meta div:hover{
  border-color:rgba(255,43,43,0.18);
  transform:translateY(-1px);
}
.case-meta span{
  display:block;
  color:var(--muted-2);
  font-size:.78rem;
  margin-bottom:.22rem;
}
.case-meta strong{
  font-size:.94rem;
  line-height:1.45;
}
.case-meta.compact strong{
  font-size:.9rem;
}

.tag-row span{
  padding:.5rem .75rem;
  border-radius:999px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  color:var(--muted);
  font-size:.84rem;
  transition:transform .2s ease, border-color .2s ease, color .2s ease;
}
.tag-row span:hover{
  transform:translateY(-2px);
  color:#fff;
  border-color:rgba(255,43,43,0.24);
}

.text-link{
  display:inline-block;
  margin-top:1rem;
  color:#ffffff;
}

.timeline{
  display:grid;
  gap:1rem;
}
.timeline-item{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:1rem;
  padding:1.15rem 1.2rem;
}
.timeline-date{
  color:var(--accent-2);
  font-weight:700;
}
.timeline-copy p{
  color:var(--muted);
  margin:0;
}

.project-grid,
.contact-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}

.project-card p,
.research-card p,
.contact-card p{
  color:var(--muted);
}

.project-card-content{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:1rem;
  align-items:center;
}

.project-visual{
  min-height:180px;
  height:180px;
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(255,255,255,0.03);
  position:relative;
}

.project-image{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  border-radius:inherit;
}

.skills-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1rem;
}
.skills-grid-three{
  grid-template-columns:repeat(3,1fr);
}

.skill-bar{
  width:100%;
  height:10px;
  border-radius:999px;
  background:rgba(255,255,255,0.06);
  overflow:hidden;
  margin:.7rem 0 1rem;
}
.skill-bar span{
  display:block;
  width:var(--fill);
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, #ff2b2b, #ff6a6a);
  box-shadow:0 0 16px var(--glow);
  animation:growBar 1.8s ease;
}
@keyframes growBar{
  from{ width:0; }
  to{ width:var(--fill); }
}

.research-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1rem;
}

.contact-shell{ padding-bottom:5rem; }
.contact-payoff{ color:#ffd7d7; }

.tilt-card{
  transform-style:preserve-3d;
  will-change:transform;
  transition:transform .18s ease, border-color .2s ease, box-shadow .2s ease;
}
.tilt-card:hover{
  border-color:rgba(255,43,43,0.18);
  box-shadow:0 28px 90px rgba(0,0,0,0.48), 0 0 0 1px rgba(255,43,43,0.06) inset;
}
.spotlight-card{
  position:relative;
  overflow:hidden;
}

.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .8s ease, transform .8s ease;
}
.reveal.revealed{
  opacity:1;
  transform:translateY(0);
}

.sanskrit-quote{
  font-family:"Noto Serif Devanagari", serif;
}

@media (max-width: 1100px){
  .hero-layout,
  .three-grid,
  .metrics-grid,
  .project-grid,
  .skills-grid,
  .contact-grid,
  .research-grid,
  .timeline-item,
  .featured-layout,
  .explore-grid{
    grid-template-columns:1fr;
  }

  .feature-content{
    grid-template-columns:1fr;
  }

  .hero h1{
    max-width:12ch;
  }

  .skills-grid-three{
    grid-template-columns:1fr;
  }
}

@media (max-width: 900px){
  .project-card-content{
    grid-template-columns:1fr;
  }

  .project-visual{
    min-height:220px;
    height:220px;
  }

  .feature-visual{
    min-height:240px;
    height:240px;
  }
}

@media (max-width: 820px){
  .menu-toggle{
    display:block;
  }

  .site-nav{
    position:absolute;
    top:76px;
    left:1rem;
    right:1rem;
    display:none;
    flex-direction:column;
    align-items:flex-start;
    padding:1rem;
    border-radius:20px;
    background:rgba(10,10,12,0.94);
    border:1px solid rgba(255,255,255,0.08);
    backdrop-filter:blur(18px);
  }

  .site-nav.open{
    display:flex;
  }

  .loading-title{
    font-size:2.8rem;
  }
}

@media (max-width: 640px){
  .container{
    width:min(var(--container), calc(100% - 1.2rem));
  }

  .hero{
    padding-top:5rem;
  }

  .hero h1{
    font-size:2.6rem;
  }

  .btn{
    width:100%;
  }

  .hero-actions{
    flex-direction:column;
  }

  .hero-spotlight{
    width:260px;
    height:260px;
  }

  .loading-bar-shell{
    grid-template-columns:1fr;
  }

  .loading-percent{
    text-align:left;
  }
}