:root {
  /* Improved higher-contrast light palette */
  --bg: #ffffff;
  --bg-alt: #f2f5f9; /* slightly darker than pure white for separation */
  --text: #1f2d3a; /* darker for better contrast */
  --text-alt: #43505c; /* improved contrast over #555 */
  --accent: #0b57d0; /* more saturated / WCAG-friendly */
  --accent-accent: #084093;
  --border: #ced6e0; /* stronger than previous #e2e8f0 */
  --radius-s: 6px;
  --radius-m: 12px;
  --radius-l: 20px;
  --shadow-s: 0 2px 4px rgba(0,0,0,.08);
  --shadow-m: 0 6px 20px rgba(0,0,0,.12);
  --gradient-accent: linear-gradient(135deg,#0b57d0,#084093);
  --global-theme-color: #5a189a; /* publications */
  color-scheme: light dark;
}

:root[data-theme='dark'] {
  --bg: #1e2228;
  --bg-alt: #262c34;
  --text: #e6e8ea;
  --text-alt: #b2b9c3;
  --accent: #5aa9ff;
  --accent-accent: #2d7ed5;
  --border: #323a43;
  --shadow-s: 0 2px 4px rgba(0,0,0,.6);
  --shadow-m: 0 6px 18px rgba(0,0,0,.5);
  --gradient-accent: linear-gradient(135deg,#2d7ed5,#163d72);
}

/* === Deep Purple Theme Override === */
:root:not([data-theme='dark']) {
  --accent: #6a00d9;
  --accent-accent: #4a00a8;
  --gradient-accent: linear-gradient(135deg,#7b2ff7,#4a00a8);
  --global-theme-color: #5a189a; /* publications */
}
:root[data-theme='dark'] {
  --accent: #b48cff;
  --accent-accent: #d9c2ff;
  --gradient-accent: linear-gradient(135deg,#5a189a,#240046);
  --global-theme-color: #b48cff;
}

/* Page base */
body {
  background: var(--bg);
  color: var(--text);
  transition: background .4s ease, color .4s ease;
}

section {
  background: var(--bg);
}

/* Cards refinement */
.enhanced-pub-card,
.research-card,
.exp-item,
.news-item,
.contact-section {
  background: var(--bg-alt) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow-s) !important;
}

.enhanced-pub-card:hover,
.research-card:hover,
.exp-item:hover,
.news-item:hover {
  box-shadow: var(--shadow-m) !important;
}

/* Accent elements */
a { color: var(--accent); font-weight: 500; }
a:hover { color: var(--accent-accent); }

h1,h2,h3,h4,h5,h6 { color: var(--text); letter-spacing: .5px; }

/* Research Interest tags */
.topic-tag { background: var(--gradient-accent); color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.3); }

/* Theme toggle adaptive */
#theme-toggle { 
  --toggle-border: var(--border); 
  background: var(--bg-alt); 
  color: var(--text); 
  box-shadow: var(--shadow-s);
  backdrop-filter: saturate(140%) blur(6px);
}
#theme-toggle:hover { 
  background: var(--accent); 
  color:#fff; 
}

/* Subtle animated underline for links */
a:not(.no-underline) { position: relative; }
a:not(.no-underline)::after { content:""; position:absolute; left:0; bottom:-2px; height:3px; width:0; background: var(--accent); transition: width .3s ease; opacity:.85; }
a:not(.no-underline):hover::after { width:100%; }

/* Smooth fade for images */
img { opacity: 0; transform: scale(.98); transition: opacity .6s ease, transform .6s ease; }
img[loading], img[data-loaded='true'] { opacity:1; transform: scale(1); }

/* Refined list in research interests */
.research-interests-list { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.research-interests-list li { background: #e7edf3; /* more contrast */ padding:10px 14px; border:1px solid var(--border); border-radius: var(--radius-s); font-size:.9rem; }
:root[data-theme='dark'] .research-interests-list li { background:#2a3037; }

/* News timeline accent left bar */
.news-item { position:relative; }
.news-item::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background: var(--gradient-accent); border-top-left-radius:4px; border-bottom-left-radius:4px; }

/* Scrollbar styling (Webkit) */
* { scrollbar-width: thin; scrollbar-color: var(--accent) var(--bg-alt); }
::-webkit-scrollbar { width:10px; }
::-webkit-scrollbar-track { background: var(--bg-alt); }
::-webkit-scrollbar-thumb { background: var(--accent); border-radius:6px; border:2px solid var(--bg-alt); }
::-webkit-scrollbar-thumb:hover { background: var(--accent-accent); }

/* Global font stack using Inter as closest open-source to Google Sans */
body, button, input, select, textarea, h1, h2, h3, h4, h5, h6, .research-card, .news-item, .exp-item, .publications, position, papertitle, education {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Responsive improvements */
@media (max-width: 860px){
  header { position: static; width: 100%; }
  .wrapper { width:100%; }
  section { width:100%; padding-top:1rem; }
  #theme-toggle { position: relative; margin-top: 10px; }
}

/* Skip link accessibility */
.skip-link { position:absolute; left:8px; top:-40px; background:#000; color:#fff; padding:8px 14px; border-radius:6px; z-index:1000; font-weight:600; transition:top .25s ease; }
.skip-link:focus { top:8px; outline:2px solid var(--accent); }

/* Focus-visible outline */
:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }

/* Reveal animation classes */
.reveal { opacity:0; transform:translateY(18px); transition:opacity .6s cubic-bezier(.4,.2,.2,1), transform .6s cubic-bezier(.4,.2,.2,1); }
.reveal.in { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal { opacity:1 !important; transform:none !important; transition:none !important; } }

/* Prose area max width */
.prose-area { max-width: 72ch; }
.prose-area p { line-height:1.65; }

/* Theme toggle refinement */
.theme-toggle-btn { background:var(--bg-alt); border:1px solid var(--border); padding:6px 14px; border-radius:999px; cursor:pointer; font-weight:500; }
.theme-toggle-btn:hover { background:var(--accent); color:#fff; }

/* Force higher contrast (replace greys with black on LIGHT theme) */
:root:not([data-theme='dark']) {
  --text: #000000;
  --text-alt: #222222;
}

/* Ensure headings and body pick up new variables (legacy specificity backup) */
:root:not([data-theme='dark']) body { color: var(--text); }
:root:not([data-theme='dark']) h1,
:root:not([data-theme='dark']) h2,
:root:not([data-theme='dark']) h3,
:root:not([data-theme='dark']) h4,
:root:not([data-theme='dark']) h5,
:root:not([data-theme='dark']) h6 { color: var(--text); }

/* Strengthen contrast on secondary descriptive text */
:root:not([data-theme='dark']) .pub-authors,
:root:not([data-theme='dark']) .pub-venue,
:root:not([data-theme='dark']) .news-date,
:root:not([data-theme='dark']) .exp-content p { color: var(--text-alt); }

/* Comprehensive light theme overrides: force all textual content to pure black for maximum contrast */
:root:not([data-theme='dark']) body,
:root:not([data-theme='dark']) p,
:root:not([data-theme='dark']) li,
:root:not([data-theme='dark']) h1,
:root:not([data-theme='dark']) h2,
:root:not([data-theme='dark']) h3,
:root:not([data-theme='dark']) h4,
:root:not([data-theme='dark']) h5,
:root:not([data-theme='dark']) h6,
:root:not([data-theme='dark']) strong,
:root:not([data-theme='dark']) b,
:root:not([data-theme='dark']) .research-card,
:root:not([data-theme='dark']) .research-card li,
:root:not([data-theme='dark']) .news-item,
:root:not([data-theme='dark']) .news-item .news-content,
:root:not([data-theme='dark']) .news-item .news-date,
:root:not([data-theme='dark']) .exp-item,
:root:not([data-theme='dark']) .exp-content p,
:root:not([data-theme='dark']) .pub-authors,
:root:not([data-theme='dark']) .pub-venue,
:root:not([data-theme='dark']) position,
:root:not([data-theme='dark']) papertitle,
:root:not([data-theme='dark']) education {
  color: #000 !important;
}

/* Publication link buttons: force black text in light theme */
:root:not([data-theme='dark']) .publications ol.bibliography li .links a.btn {
  color:#000 !important;
  border-color:#000 !important;
  background: linear-gradient(180deg,#ffffff,#e9eef3);
  font-weight:600;
}
:root:not([data-theme='dark']) .publications ol.bibliography li .links a.btn:hover {
  background: var(--accent); border-color: var(--accent);
  color:#fff !important;
  border-color:#000 !important;
}
:root[data-theme='dark'] .publications ol.bibliography li .links a.btn:hover { background: var(--accent); border-color: var(--accent); color:#000; }

/* Social / header icons updated to deep purple theme */
.social-icons a, .social-icons a:visited {
  color: var(--accent) !important;
  background: transparent;
  border-radius: 50%;
  width: 2.4rem; height: 2.4rem;
  display:inline-flex; align-items:center; justify-content:center;
  transition: background .35s ease, color .35s ease, transform .35s ease, box-shadow .35s ease;
  border:1px solid transparent;
}
.social-icons a:hover {
  background: var(--gradient-accent);
  color:#ffffff !important;
  transform: translateY(-3px) scale(1.12);
  box-shadow: 0 6px 18px -4px rgba(90,24,154,.45);
}
:root[data-theme='dark'] .social-icons a {
  color: var(--accent) !important;
}
:root[data-theme='dark'] .social-icons a:hover {
  background: var(--gradient-accent);
  color:#fff !important;
  box-shadow: 0 6px 18px -4px rgba(180,140,255,.55);
}

/* Enhanced social icon aesthetics with glass + gradient ring */
.social-icons { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.social-icon { position:relative; width:44px; height:44px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:var(--accent) !important; background:linear-gradient(135deg,rgba(255,255,255,.85),rgba(245,245,255,.6)); backdrop-filter:blur(8px) saturate(160%); -webkit-backdrop-filter:blur(8px) saturate(160%); box-shadow:0 4px 10px -2px rgba(0,0,0,.15), 0 2px 4px rgba(0,0,0,.08); overflow:hidden; border:1px solid rgba(255,255,255,.55); transition:transform .5s cubic-bezier(.19,1,.22,1), box-shadow .4s ease, background .4s ease; }
:root[data-theme='dark'] .social-icon { background:linear-gradient(135deg,rgba(40,40,55,.85),rgba(60,60,80,.55)); border:1px solid rgba(255,255,255,.08); }
/* Replace previous .social-icon:before rule with cross-browser version */
.social-icon:before {
  content:""; position:absolute; inset:0; padding:2px; border-radius:50%;
  background:conic-gradient(from 0deg,var(--accent),transparent 140deg,var(--accent-accent));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; opacity:.65; transition:opacity .5s ease;
}
.social-icon:after { content:attr(data-label); position:absolute; bottom:-6px; left:50%; transform:translate(-50%,100%); background:#000; color:#fff; font-size:.62rem; letter-spacing:.5px; padding:4px 6px; border-radius:6px; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .35s ease, transform .35s ease; font-weight:600; }
:root[data-theme='dark'] .social-icon:after { background:#111; }
.social-icon:hover { transform:translateY(-6px) scale(1.1); box-shadow:0 10px 28px -6px rgba(90,24,154,.45),0 4px 12px rgba(0,0,0,.25); }
.social-icon:hover:before { opacity:1; }
.social-icon:hover:after { opacity:1; transform:translate(-50%, 60%); }
.social-icon i { font-size:1.05rem; z-index:2; }

/* Platform-specific accent glows */
.social-icon.github i { text-shadow:0 0 4px rgba(255,255,255,.4); }
.social-icon.linkedin:before { background:conic-gradient(from 0deg,#0a66c2,#0a66c2 120deg,transparent 220deg,#0a66c2); }
.social-icon.twitter:before { background:conic-gradient(from 0deg,#6a00d9,#6a00d9 140deg,transparent 230deg,#4a00a8); }
.social-icon.scholar:before { background:conic-gradient(from 0deg,#4285f4,#34a853,#fbbc05,#ea4335,#4285f4); }
.social-icon.cv:before { background:conic-gradient(from 0deg,var(--accent), var(--accent-accent) 160deg,transparent 250deg,var(--accent)); }
.social-icon.email:before { background:conic-gradient(from 0deg,#ff9f1c,#ff6a3d 120deg,transparent 210deg,#ff9f1c); }

/* High contrast focus */
.social-icon:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
/* Favicon / theme toggle icon color alignment */
.theme-toggle-btn .theme-icon { filter: drop-shadow(0 1px 2px rgba(0,0,0,.25)); }

/* Institution name black in light theme */
:root:not([data-theme='dark']) header a autocolor { color:#000 !important; }
