/* =============================================
   Harish Chandra Das - Shared Stylesheet
   ============================================= */

@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@600;700&display=swap');

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

:root {
   --primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
   --secondary-gradient: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
   --accent-gradient: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
   --text-light: #ffffff;
   --text-dark: #2d3748;
   --glass-bg: rgba(255, 255, 255, 0.1);
   --glass-border: rgba(255, 255, 255, 0.2);
}

body {
   display: flex;
   flex-direction: column;
   min-height: 100vh;
   margin: 0;
   font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
   line-height: 1.6;
   color: var(--text-light);
   overflow-x: hidden;
   background: #000000;
   padding-top: 72px;
}

main {
   flex: 1;
}

footer {
   margin-top: auto;
   text-align: center;
   padding: 20px;
   background-color: #1a1a1a;
   color: white;
   width: 100%;
}

/* ── Page-to-page navigation bar (appears just above footer) ── */
.page-nav-bar {
   display: flex;
   align-items: center;
   justify-content: space-between;
   max-width: 800px;
   margin: 3rem auto 0;
   padding: 1.2rem 2rem;
   border-top: 1px solid rgba(255,255,255,0.1);
   gap: 1rem;
   flex-wrap: wrap;
}
.page-nav-bar .pnav-link {
   display: inline-flex;
   align-items: center;
   gap: 0.5rem;
   padding: 0.65rem 1.4rem;
   border-radius: 50px;
   font-size: 0.9rem;
   font-weight: 600;
   text-decoration: none;
   border: 1px solid rgba(255,255,255,0.2);
   background: rgba(255,255,255,0.06);
   color: rgba(255,255,255,0.82);
   transition: all 0.3s ease;
   backdrop-filter: blur(8px);
}
.page-nav-bar .pnav-link:hover {
   background: rgba(79,172,254,0.15);
   border-color: rgba(79,172,254,0.5);
   color: white;
   transform: translateY(-2px);
   box-shadow: 0 6px 20px rgba(79,172,254,0.2);
}
.page-nav-bar .pnav-link.pnav-next {
   background: linear-gradient(135deg, rgba(79,172,254,0.2), rgba(0,242,254,0.15));
   border-color: rgba(79,172,254,0.45);
   color: #4facfe;
   margin-left: auto;
}
.page-nav-bar .pnav-link.pnav-next:hover {
   background: linear-gradient(135deg, rgba(79,172,254,0.35), rgba(0,242,254,0.28));
   color: white;
}
/* Home stats bar */
.home-stats-bar {
   display: flex;
   justify-content: center;
   flex-wrap: wrap;
   gap: 1.2rem;
   margin: 1.6rem auto 0;
   max-width: 680px;
}
.home-stat {
   background: rgba(255,255,255,0.07);
   border: 1px solid rgba(255,255,255,0.16);
   border-radius: 50px;
   padding: 0.55rem 1.3rem;
   text-align: center;
   min-width: 110px;
}
.home-stat .stat-num {
   display: block;
   font-size: 1.45rem;
   font-weight: 700;
   background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   background-clip: text;
   line-height: 1.2;
}
.home-stat .stat-lbl {
   font-size: 0.72rem;
   color: rgba(255,255,255,0.55);
   letter-spacing: 0.03em;
}
/* Research area mini-cards on home page */
.home-topics {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 0.9rem;
   margin: 1.8rem auto 0;
   max-width: 840px;
}
.home-topic-card {
   background: rgba(255,255,255,0.05);
   border: 1px solid rgba(255,255,255,0.13);
   border-radius: 14px;
   padding: 1.1rem 0.9rem;
   text-align: center;
   transition: all 0.3s ease;
   text-decoration: none;
   color: inherit;
}
.home-topic-card:hover {
   background: rgba(255,255,255,0.1);
   border-color: rgba(79,172,254,0.35);
   transform: translateY(-4px);
   box-shadow: 0 10px 28px rgba(0,0,0,0.25);
}
.home-topic-icon { font-size: 2.4rem; height: 3rem; display: flex; align-items: center; justify-content: center; margin-bottom: 0.6rem; }
.gw-icon-svg {
   display: block;
   margin: 0 auto;
   filter: drop-shadow(0 0 4px rgba(60,180,255,0.55));
   animation: gwIconPulse 3s ease-in-out infinite alternate;
}
@keyframes gwIconPulse {
   from { filter: drop-shadow(0 0 3px rgba(60,180,255,0.35)); }
   to   { filter: drop-shadow(0 0 7px rgba(60,180,255,0.85)); }
}
.home-topic-name {
   font-size: 0.82rem;
   font-weight: 600;
   color: rgba(255,255,255,0.88);
   line-height: 1.4;
}
/* Awards card on home page */
.awards-list {
   list-style: none;
   margin-top: 0.5rem;
}
.awards-list li {
   display: flex;
   align-items: flex-start;
   gap: 0.75rem;
   padding: 0.7rem 0;
   border-bottom: 1px solid rgba(255,255,255,0.08);
}
.awards-list li:last-child { border-bottom: none; }
.award-icon { font-size: 1.2rem; flex-shrink: 0; margin-top: 0.1rem; }
.award-body { flex: 1; }
.award-title {
   font-size: 0.92rem;
   font-weight: 600;
   color: white;
}
.award-sub {
   font-size: 0.8rem;
   color: rgba(255,255,255,0.55);
   margin-top: 0.15rem;
}
@media (max-width: 760px) {
   .home-topics { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
   .home-topics { grid-template-columns: 1fr 1fr; }
   .page-nav-bar { justify-content: center; }
}

/* Cosmic Background with Merging Objects */
.bg-animation {
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   z-index: -1;
   background: radial-gradient(ellipse at center, #0a0a23 0%, #000000 100%);
   overflow: hidden;
}

.container {
   max-width: 1000px;
   width: 100%;
}

/* Neutron Star */
.neutron-star {
   position: absolute;
   width: 30px;
   height: 30px;
   background: radial-gradient(circle, #ff6b6b 0%, #ff8e53 50%, #ff6b6b 100%);
   border-radius: 50%;
   top: 40%;
   left: 30%;
   animation: neutronStar 25s ease-in-out infinite;
   box-shadow: 0 0 30px #ff6b6b, 0 0 60px rgba(255, 107, 107, 0.3);
}

/* Black Hole */
.black-hole {
   position: absolute;
   width: 40px;
   height: 40px;
   background: radial-gradient(circle, transparent 30%, #1a1a1a 35%, #000 100%);
   border-radius: 50%;
   top: 45%;
   right: 35%;
   animation: blackHole 25s ease-in-out infinite;
   box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.1),
      0 0 50px rgba(138, 43, 226, 0.4),
      inset 0 0 20px #000;
}

/* Accretion Disk */
.black-hole::before {
   content: '';
   position: absolute;
   top: 50%;
   left: 50%;
   width: 80px;
   height: 80px;
   border: 2px solid transparent;
   border-top: 2px solid rgba(255, 140, 0, 0.6);
   border-right: 2px solid rgba(255, 69, 0, 0.4);
   border-radius: 50%;
   transform: translate(-50%, -50%);
   animation: accretionDisk 8s linear infinite;
}

/* Gravitational Wave Chirp Waveform */
.gw-waveform {
   position: absolute;
   width: 82%;
   height: 110px;
   top: 36%;
   left: 9%;
   opacity: 0.75;
   filter: drop-shadow(0 0 4px rgba(60,180,255,0.5));
   pointer-events: none;
}

@keyframes gwPulse {
   0%   { opacity: 0.45; filter: drop-shadow(0 0 2px rgba(60,180,255,0.3)); }
   50%  { opacity: 0.85; filter: drop-shadow(0 0 8px rgba(60,180,255,0.7)); }
   100% { opacity: 0.45; filter: drop-shadow(0 0 2px rgba(60,180,255,0.3)); }
}

/* Dark Matter Particles */
.dark-matter {
   position: absolute;
   width: 2px;
   height: 2px;
   background: rgba(138, 43, 226, 0.7);
   border-radius: 50%;
   animation: darkMatter 20s linear infinite;
}

/* Stars */
.star {
   position: absolute;
   width: 1px;
   height: 1px;
   background: white;
   border-radius: 50%;
   animation: twinkle 4s ease-in-out infinite alternate;
}

/* Cosmic Dust */
.cosmic-dust {
   position: absolute;
   width: 1px;
   height: 1px;
   background: rgba(255, 255, 255, 0.3);
   border-radius: 50%;
   animation: drift 30s linear infinite;
}

/* Energy Jets */
.energy-jet {
   position: absolute;
   width: 2px;
   height: 60px;
   background: linear-gradient(0deg, transparent, rgba(0, 255, 255, 0.6), transparent);
   top: 25%;
   right: 35%;
   transform-origin: bottom center;
   animation: energyJet 12s ease-in-out infinite;
}

.energy-jet:nth-child(2) {
   top: 65%;
   transform: rotate(180deg);
   animation-delay: 6s;
}

/* Navigation */
.navbar {
   position: fixed;
   top: 0;
   left: 0;
   right: 0;
   z-index: 1000;
   padding: 1rem 2rem;
   backdrop-filter: blur(20px);
   background: var(--glass-bg);
   border-bottom: 1px solid var(--glass-border);
   transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.nav-container {
   max-width: 1200px;
   margin: 0 auto;
   display: flex;
   justify-content: space-between;
   align-items: center;
}

.logo {
   font-size: 1.25rem;
   font-weight: 700;
   font-family: 'Orbitron', 'Inter', sans-serif;
   letter-spacing: 0.04em;
   background: linear-gradient(135deg, #f6d365 0%, #fda085 60%, #f093fb 100%);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   background-clip: text;
   text-shadow: none;
}

.nav-links {
   display: flex;
   gap: 2rem;
   list-style: none;
   transition: all 0.3s ease;
}

.nav-links a {
   color: var(--text-light);
   text-decoration: none;
   font-weight: 500;
   position: relative;
   transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.nav-links a::before {
   content: '';
   position: absolute;
   bottom: -5px;
   left: 0;
   width: 0;
   height: 2px;
   background: var(--accent-gradient);
   transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.nav-links a:hover::before,
.nav-links a.active::before {
   width: 100%;
}

/* ── Page Hero (inner pages) ─────────────────── */
.page-hero {
   padding: calc(var(--nav-h) + 2.5rem) 1.25rem 2rem;
   text-align: center;
}

.page-hero-title {
   font-size: clamp(1.8rem, 6vw, 3.5rem);
   font-weight: 700;
   background: var(--secondary-gradient);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   background-clip: text;
   animation: fadeInUp 0.9s ease-out 0.2s both;
   line-height: 1.2;
}

.page-hero-subtitle {
   font-size: clamp(0.9rem, 2vw, 1.1rem);
   opacity: 0.75;
   margin-top: 0.6rem;
   animation: fadeInUp 0.9s ease-out 0.4s both;
}


/* Hamburger */
.menu-toggle {
   display: none;
   font-size: 2rem;
   background: none;
   border: none;
   color: white;
   cursor: pointer;
   z-index: 1001;
}

/* Hero Section */
.hero {
   min-height: 100vh;
   display: flex;
   align-items: center;
   justify-content: center;
   text-align: center;
   position: relative;
   overflow: hidden;
   padding: 0 1rem;
}

.hero-content {
   max-width: 800px;
   padding: 2rem;
   animation: fadeInUp 1s ease-out;
}

.hero-title {
   font-size: clamp(2.5rem, 5vw, 4rem);
   font-weight: 700;
   margin-bottom: 1rem;
   background: var(--secondary-gradient);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   background-clip: text;
   opacity: 0;
   animation: fadeInUp 1s ease-out 0.2s both;
}

.hero-subtitle {
   font-size: clamp(1rem, 2.5vw, 1.25rem);
   margin-bottom: 2rem;
   opacity: 0.9;
   animation: fadeInUp 1s ease-out 0.4s both;
}

.hero-description {
   font-size: 1.1rem;
   line-height: 1.8;
   margin-bottom: 2rem;
   opacity: 0.8;
   animation: fadeInUp 1s ease-out 0.6s both;
}

/* Bio Section in Hero */
.hero-bio {
   font-size: clamp(1rem, 1.8vw, 1.15rem);
   color: rgba(255, 255, 255, 0.85);
   line-height: 1.7;
   margin-bottom: 2rem;
   max-width: 700px;
   margin-left: auto;
   margin-right: auto;
   opacity: 0;
   animation: fadeInUp 1s ease-out 0.3s both;
}

.cta-button {
   display: inline-block;
   padding: 1rem 2rem;
   background: var(--accent-gradient);
   color: white;
   text-decoration: none;
   border-radius: 50px;
   font-weight: 600;
   transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
   opacity: 0;
   animation: fadeInUp 1s ease-out 0.8s both;
}

.cta-button:hover {
   transform: translateY(-3px);
   box-shadow: 0 10px 30px rgba(79, 172, 254, 0.3);
}

/* Sections */
.section {
   padding: 6rem 2rem;
   max-width: 1200px;
   margin: 0 auto;
   opacity: 0;
   transform: translateY(50px);
   transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.section.visible {
   opacity: 1;
   transform: translateY(0);
}

.section-title {
   font-size: clamp(2rem, 4vw, 3rem);
   font-weight: 700;
   text-align: center;
   margin-bottom: 30px;
   background: var(--secondary-gradient);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   background-clip: text;
}

/* Glass Cards */
.card-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
   gap: 2rem;
   margin-top: 3rem;
}

.glass-card {
   backdrop-filter: blur(20px);
   -webkit-backdrop-filter: blur(20px);
   background: transparent;
   border: 1px solid rgba(255, 255, 255, 0.2);
   border-radius: 20px;
   padding: 20px;
   transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
   position: relative;
   overflow: hidden;
   color: white;
   box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

.glass-card::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   height: 3px;
   background: var(--accent-gradient);
   opacity: 0;
   transition: opacity 0.3s ease;
}

.glass-card:hover {
   transform: translateY(-10px);
   box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

.glass-card:hover::before {
   opacity: 1;
}

.card-title {
   font-size: 1.5rem;
   font-weight: 600;
   margin-bottom: 1rem;
   color: var(--text-light);
}

.card-description {
   opacity: 0.9;
   line-height: 1.6;
}

.cards-container {
   display: grid;
   /* grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); */
   grid-template-columns: repeat(4, 1fr);
   /* 4 columns on desktop */
   gap: 20px;
   margin-top: 20px;
}

.glass-card ol {
   list-style-position: inside;
   padding-left: 0;
   margin: 0;
}

.glass-card li {
   margin-bottom: 6px;
   color: white;
}

/* Academic Positions within Glass Card */
.academic-positions {
   display: flex;
   flex-direction: column;
   gap: 1.5rem;
   padding: 1.5rem 0;
}

.position-item {
   display: block;
   position: relative;
}

.position-details {
   width: 100%;
   background: rgba(255, 255, 255, 0.05);
   backdrop-filter: blur(5px);
   border-radius: 12px;
   padding: 1.5rem;
   border: 1px solid rgba(255, 255, 255, 0.15);
   position: relative;
   transition: all 0.3s ease;
}

.position-details:hover {
   background: rgba(255, 255, 255, 0.1);
   border-color: rgba(255, 255, 255, 0.25);
   transform: translateY(-3px);
}

.position-icon {
   font-size: 2rem;
   margin-bottom: 0.8rem;
   display: block;
}

.position-title {
   font-size: 1.2rem;
   color: white;
   font-weight: 600;
   margin-bottom: 0.5rem;
}

.institution {
   font-size: 1rem;
   color: rgba(255, 255, 255, 0.85);
   margin-bottom: 0.5rem;
}

.institution a {
   color: white;
   text-decoration: none;
   border-bottom: 1px solid rgba(255, 255, 255, 0.3);
   transition: border-color 0.3s;
}

.institution a:hover {
   border-bottom-color: white;
}

.duration {
   font-size: 0.85rem;
   color: rgba(255, 255, 255, 0.7);
   font-weight: 500;
   display: inline-block;
   background: rgba(255, 255, 255, 0.1);
   padding: 0.25rem 0.6rem;
   border-radius: 12px;
   margin-top: 0.3rem;
}

/* Research Focus Section */
.research-item {
   margin-bottom: 2rem;
   padding: 1.5rem;
   background: var(--glass-bg);
   border-radius: 15px;
   border: 1px solid var(--glass-border);
   backdrop-filter: blur(10px);
   transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.research-item:hover {
   transform: translateX(10px);
   border-color: rgba(79, 172, 254, 0.5);
}

.research-title {
   font-size: 1.25rem;
   font-weight: 600;
   margin-bottom: 0.5rem;
   background: var(--accent-gradient);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   background-clip: text;
}

/* Floating Elements */
.floating-element {
   position: absolute;
   pointer-events: none;
   opacity: 0.1;
}

.floating-1 {
   top: 10%;
   left: 10%;
   width: 100px;
   height: 100px;
   background: var(--primary-gradient);
   border-radius: 50%;
   animation: float 6s ease-in-out infinite;
}

.floating-2 {
   top: 60%;
   right: 15%;
   width: 80px;
   height: 80px;
   background: var(--secondary-gradient);
   border-radius: 30%;
   animation: float 8s ease-in-out infinite reverse;
}

.floating-3 {
   bottom: 20%;
   left: 20%;
   width: 60px;
   height: 60px;
   background: var(--accent-gradient);
   border-radius: 50%;
   animation: float 10s ease-in-out infinite;
}

/* Publications Image Carousel */
.publications-image-holder {
   width: 100%;
   max-width: 800px;
   margin: 2rem auto;
   display: flex;
   justify-content: center;
}

.carousel-container {
   position: relative;
   width: 100%;
   min-height: 300px;
   display: flex;
   justify-content: center;
   align-items: center;
   border: 2px solid rgba(255, 255, 255, 0.3);
   border-radius: 10px;
   transition: height 0.5s ease;
}

.carousel-slide {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   opacity: 0;
   transform: translateX(100%);
   transition: all 0.8s ease-in-out;
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   text-align: center;
   padding: 2rem;
}

.carousel-slide.active {
   opacity: 1;
   transform: translateX(0);
}

.figure-title {
   font-size: 1.2rem;
   font-weight: 600;
   margin-bottom: 1rem;
   background: var(--accent-gradient);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   background-clip: text;
}

.carousel-slide img {
   max-width: 90%;
   max-height: 70vh;
   width: auto;
   height: auto;
   object-fit: contain;
   border-radius: 8px;
}

/* Placeholder for missing images */
.image-placeholder {
   width: 100%;
   max-width: 400px;
   height: 300px;
   background: linear-gradient(135deg, rgba(79, 172, 254, 0.2), rgba(138, 43, 226, 0.2));
   border: 2px dashed rgba(255, 255, 255, 0.5);
   border-radius: 10px;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 0.9rem;
   color: rgba(255, 255, 255, 0.7);
   text-align: center;
}

/* Carousel Indicators */
.carousel-indicators {
   position: absolute;
   bottom: 15px;
   left: 50%;
   transform: translateX(-50%);
   display: flex;
   gap: 8px;
   z-index: 10;
}

.indicator {
   width: 10px;
   height: 10px;
   border-radius: 50%;
   background: rgba(255, 255, 255, 0.3);
   cursor: pointer;
   transition: all 0.3s ease;
}

.indicator.active {
   background: var(--accent-gradient);
   transform: scale(1.2);
}

/* Progress Bar */
.carousel-progress {
   position: absolute;
   bottom: 0;
   left: 0;
   height: 3px;
   background: var(--accent-gradient);
   transition: width 0.1s ease;
   border-radius: 0 0 8px 8px;
   width: 0%;
}

/* Publications Section */
.publications-grid {
   display: grid;
   grid-template-columns: 1fr;
   gap: 1rem;
   margin-top: 2rem;
}

.year-section {
   margin-bottom: 1rem;
}

.year-header {
   background: var(--glass-bg);
   border: 1px solid var(--glass-border);
   border-radius: 15px;
   padding: 1.2rem 1.5rem;
   cursor: pointer;
   transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
   display: flex;
   justify-content: space-between;
   align-items: center;
   backdrop-filter: blur(10px);
}

.year-header:hover {
   border-color: rgba(79, 172, 254, 0.5);
   transform: translateX(5px);
}

.year-title {
   font-size: 1.5rem;
   font-weight: 700;
   background: var(--secondary-gradient);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   background-clip: text;
}

.year-count {
   font-size: 0.9rem;
   color: rgba(255, 255, 255, 0.7);
   margin-left: 1rem;
}

.year-toggle {
   font-size: 1.5rem;
   color: rgba(79, 172, 254, 0.9);
   transition: transform 0.3s ease;
}

.year-header.active .year-toggle {
   transform: rotate(180deg);
}

.year-publications {
   max-height: 0;
   overflow: hidden;
   transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
   padding: 0 0.5rem;
}

.year-publications.active {
   max-height: 5000px;
   padding: 1rem 0.5rem;
}

.publication-link {
   text-decoration: none;
   color: inherit;
   display: block;
   margin-bottom: 1rem;
}

.publication-item {
   -webkit-backdrop-filter: blur(20px);
   background: transparent;
   border: 1px solid rgba(255, 255, 255, 0.2);
   border-radius: 15px;
   padding: 1.5rem;
   backdrop-filter: blur(10px);
   transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
   position: relative;
}

.publication-item:hover {
   transform: translateY(-5px);
   border-color: rgba(79, 172, 254, 0.5);
}

.publication-title {
   font-size: 1.1rem;
   font-weight: 600;
   margin-bottom: 0.5rem;
   color: var(--text-light);
   line-height: 1.4;
}

.publication-authors {
   font-size: 0.9rem;
   color: rgba(255, 255, 255, 0.8);
   margin-bottom: 0.5rem;
   font-style: italic;
}

.publication-journal {
   font-size: 0.85rem;
   color: rgba(79, 172, 254, 0.9);
   margin-bottom: 0.5rem;
   font-weight: 500;
   display: inline-block;
   width: 100%;
}

.publication-journal a {
   color: rgba(79, 172, 254, 0.9);
   text-decoration: none;
   display: inline;
}

.publication-journal a:hover {
   color: rgba(79, 172, 254, 1);
   filter: brightness(1.2);
}

.contact-info {
   font-size: 1rem;
   line-height: 1.6;
   margin-bottom: 2rem;
}

.contact-info a {
   color: inherit;
   text-decoration: none;
}

.contact-info a:hover {
   text-decoration: underline;
}

.social-icons {
   margin-top: 0.5rem;
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 1rem;
   flex-wrap: wrap;
}

.social-icons a {
   margin: 0 10px;
   font-size: 1.8rem;
   color: #fff;
   transition: color 0.3s ease;
}

.social-icons a:hover {
   color: #1DA1F2;
}

.passport-photo {
   width: 170px;
   height: 170px;
   object-fit: cover;
   border-radius: 50%;
   box-shadow: 0 0 0 4px rgba(79,172,254,0.35), 0 4px 18px rgba(0,0,0,0.45);
   display: block;
   margin: 1rem auto;
}

.photo-wrapper {
   text-align: center;
}

/* Research Stats responsive grid */
.research-stats {
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 1rem;
   flex-wrap: wrap;
   padding: 1rem 0;
}

.research-stats a {
   transition: transform 0.3s ease;
}

.research-stats a:hover {
   transform: scale(1.1);
}

.publication-toggle summary {
cursor: pointer;
text-align: center;
list-style: none;
}

.publication-toggle summary::-webkit-details-marker {
display: none;
}

.publication-toggle summary::after {
content: " ▼";
font-size: 14px;
}

.publication-toggle[open] summary::after {
content: " ▲";
}

/* Mobile Navigation */
@media (max-width: 768px) {
   .navbar {
      padding: 1rem;
   }

   .logo {
      font-size: 1.2rem;
   }

   .menu-toggle {
      display: block;
   }

   .nav-links {
      position: fixed;
      top: 0;
      left: -100%;
      width: 100%;
      height: 100vh;
      background: rgba(0, 0, 0, 0.95);
      backdrop-filter: blur(20px);
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 2rem;
      transition: left 0.3s ease;
      z-index: 999;
   }

   .nav-links.active {
      left: 0;
   }

   .nav-links a {
      font-size: 1.5rem;
      padding: 1rem;
   }

   .section {
      padding: 4rem 1rem;
   }

   .card-grid {
      grid-template-columns: 1fr;
      gap: 1rem;
   }

   .cards-container {
      grid-template-columns: 1fr;
   }

   .hero-content {
      padding: 1rem;
   }

   .carousel-slide {
      padding: 1rem;
   }

   .carousel-slide img {
      max-width: 95%;
      max-height: 50vh;
   }

   .image-placeholder {
      width: 100%;
      height: 200px;
   }

   .figure-title {
      font-size: 1rem;
      line-height: 1.3;
   }

   .passport-photo {
      width: 150px;
      height: 150px;
   }

   .social-icons {
      gap: 0.5rem;
   }

   .social-icons a {
      font-size: 1.5rem;
      margin: 0 5px;
   }

   /* Adjust cosmic elements for mobile */
   .neutron-star,
   .black-hole {
      width: 20px;
      height: 20px;
   }

   .black-hole::before {
      width: 50px;
      height: 50px;
   }

   .floating-1,
   .floating-2,
   .floating-3 {
      width: 40px;
      height: 40px;
   }

   .energy-jet {
      height: 40px;
   }
}

/* Tablet styles */
@media (max-width: 1024px) and (min-width: 769px) {
   .cards-container {
      grid-template-columns: repeat(2, 1fr);
   }

   .section {
      padding: 5rem 1.5rem;
   }

   .nav-links {
      gap: 1.5rem;
   }
}

/* Small mobile devices */
@media (max-width: 480px) {
   .navbar {
      padding: 0.5rem 1rem;
   }

   .hero {
      min-height: 100vh;
      padding: 0 0.5rem;
   }

   .hero-content {
      padding: 1rem 0.5rem;
   }

   .section {
      padding: 3rem 0.5rem;
   }

   .glass-card {
      padding: 15px;
   }

   .cta-button {
      padding: 0.8rem 1.5rem;
      font-size: 0.9rem;
   }

   .publication-year {
      position: static;
      display: inline-block;
      margin-bottom: 0.5rem;
      margin-top: 0.5rem;
   }

   .carousel-slide {
      padding: 0.5rem;
   }

   .passport-photo {
      width: 130px;
      height: 130px;
   }

   .contact-info {
      font-size: 0.9rem;
   }
}

/* Extra small devices */
@media (max-width: 320px) {
   .hero-title {
      font-size: 2rem;
   }

   .section-title {
      font-size: 1.5rem;
   }

   .card-title {
      font-size: 1.2rem;
   }

   .glass-card {
      padding: 12px;
   }

   .passport-photo {
      width: 110px;
      height: 110px;
   }
}

/* Landscape orientation fixes for mobile */
@media (max-height: 500px) and (orientation: landscape) {
   .hero {
      min-height: 100vh;
      padding: 1rem 0.5rem;
   }

   .hero-content {
      padding: 1rem;
   }

   .passport-photo {
      width: 120px;
      height: 120px;
   }
}

/* High DPI displays */
@media (-webkit-min-device-pixel-ratio: 2),
(min-resolution: 192dpi) {
   .carousel-slide img {
      image-rendering: -webkit-optimize-contrast;
      image-rendering: crisp-edges;
   }
}

/* ══════════════════════════════════════════════════
   PULSAR – neutron star with rotating polar jets
   ══════════════════════════════════════════════════ */

.pulsar {
    position: absolute;
    pointer-events: none;
}

/* Starting positions + time-varying drift */
.pulsar-1 {
    top: 11%;
    left: 57%;
    animation: pulsarDrift1 42s ease-in-out infinite;
}
.pulsar-2 {
    top: 70%;
    left: 20%;
    animation: pulsarDrift2 60s ease-in-out infinite;
}

/* Star core */
.pulsar-core {
    position: absolute;
    width: 10px;
    height: 10px;
    background: radial-gradient(circle, #ffffff 0%, #bbecff 40%, #55aaff 100%);
    border-radius: 50%;
    top: 50%;
    left: 50%;
    z-index: 2;
    animation: pulsarPulse 0.85s ease-in-out infinite;
}

/* Rotating beam container */
.pulsar-beams {
    position: absolute;
    width: 160px;
    height: 160px;
    top: 50%;
    left: 50%;
    pointer-events: none;
    animation: pulsarSpin 0.85s linear infinite;
}

/* Polar beams as pseudo-elements */
.pulsar-beams::before,
.pulsar-beams::after {
    content: '';
    position: absolute;
    width: 5px;
    height: 80px;
    left: 50%;
    transform: translateX(-50%);
    filter: blur(2px);
}

/* Top beam – bright near the core, fades outward */
.pulsar-beams::before {
    top: 0;
    background: linear-gradient(to bottom,
        rgba(80, 210, 255, 0)   0%,
        rgba(80, 210, 255, 0.9) 100%
    );
    box-shadow: 0 0 6px 3px rgba(80, 210, 255, 0.2);
    border-radius: 3px 3px 0 0;
}

/* Bottom beam */
.pulsar-beams::after {
    bottom: 0;
    background: linear-gradient(to top,
        rgba(80, 210, 255, 0)   0%,
        rgba(80, 210, 255, 0.9) 100%
    );
    box-shadow: 0 0 6px 3px rgba(80, 210, 255, 0.2);
    border-radius: 0 0 3px 3px;
}

/* Pulsar 2 – slower spin (millisecond vs normal pulsar feel) */
.pulsar-2 .pulsar-core  { animation-duration: 1.5s; }
.pulsar-2 .pulsar-beams { animation-duration: 1.5s; }


/* ══════════════════════════════════════════════════
   BINARY MERGER – inspiral + flash + GW rings
   ══════════════════════════════════════════════════ */

.binary-merger {
    position: absolute;
    top: 60%;
    right: 8%;
    width: 110px;
    height: 110px;
    pointer-events: none;
}

/* Object A – black hole */
.binary-obj-a {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 14px;
    height: 14px;
    margin: -7px 0 0 -7px;
    background: radial-gradient(circle, transparent 25%, #111 42%, #000 100%);
    border-radius: 50%;
    box-shadow:
        0 0 0 2px rgba(255, 255, 255, 0.12),
        0 0 24px rgba(138, 43, 226, 0.7);
    animation: binaryOrbitA 22s ease-in-out infinite;
}

/* Accretion disk on black hole */
.binary-obj-a::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 30px;
    height: 30px;
    border: 1.5px solid transparent;
    border-top-color:  rgba(255, 140,  0, 0.55);
    border-right-color: rgba(255,  80,  0, 0.30);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    animation: accretionDisk 2.5s linear infinite;
}

/* Object B – neutron star */
.binary-obj-b {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 9px;
    height: 9px;
    margin: -4.5px 0 0 -4.5px;
    background: radial-gradient(circle, #ffffff 0%, #ffbbaa 50%, #ff5555 100%);
    border-radius: 50%;
    box-shadow: 0 0 9px #ff9999, 0 0 22px rgba(255, 80, 80, 0.5);
    animation: binaryOrbitB 22s ease-in-out infinite;
}

/* Merger flash (white-gold burst) */
.merger-flash {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: radial-gradient(circle,
        #ffffff 0%,
        #ffee99 42%,
        rgba(255, 200, 0, 0) 70%
    );
    opacity: 0;
    animation: mergerFlash 22s ease-out infinite;
}

/* Post-merger GW rings */
.merger-wave {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 22px;
    height: 22px;
    border: 1.5px solid rgba(0, 230, 255, 0.9);
    border-radius: 50%;
    opacity: 0;
    animation: mergerRing 22s ease-out infinite;
}

.merger-wave:nth-child(4) { animation-delay: 0s;   }
.merger-wave:nth-child(5) { animation-delay: 0.85s; }
.merger-wave:nth-child(6) { animation-delay: 1.7s;  }

/* Post-merger remnant black hole */
.merger-remnant {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 13px;
    height: 13px;
    background: radial-gradient(circle, transparent 20%, #000 58%);
    border-radius: 50%;
    opacity: 0;
    box-shadow: 0 0 18px rgba(138, 43, 226, 1), 0 0 40px rgba(138, 43, 226, 0.5);
    animation: remnantAppear 22s ease-out infinite;
}

/* ── Mobile: keep only pulsar-1, simplify beams ── */
@media (max-width: 480px) {
    .pulsar-2,
    .binary-merger { display: none; }

    .pulsar-1 .pulsar-beams {
        width: 100px;
        height: 100px;
    }
    .pulsar-1 .pulsar-beams::before,
    .pulsar-1 .pulsar-beams::after {
        height: 50px;
    }
}

/* Print styles */
@media print {

   .bg-animation,
   .floating-element,
   .navbar,
   .carousel-progress,
   .carousel-indicators,
   .pulsar,
   .binary-merger {
      display: none !important;
   }

   body {
      background: white;
      color: black;
   }

   .section {
      page-break-inside: avoid;
   }
}
