/* LIGHT MODE THEME (Default) */
:root, [data-theme="light"]{
  --bg0:#f5f5f5;
  --bg1:#e0e0e0;
  --bg:#f5f5f5;
  --card:rgba(0,0,0,.03);
  --border:rgba(0,0,0,.10);
  --text:#222222;
  --muted:rgba(34,34,34,.72);
  --shadow:0 10px 24px rgba(0,0,0,.08);
  --radius:18px;
  --nav-bg:rgba(255,255,255,.85);
  --nav-border:rgba(0,0,0,.08);
  --btn-bg:#0ea5a4;
  --btn-text:#ffffff;
}

/* DARK MODE THEME */
[data-theme="dark"]{
  --bg0:#070A12;
  --bg1:#0a0f1a;
  --bg:#070A12;
  --card:rgba(255,255,255,.06);
  --border:rgba(255,255,255,.12);
  --text:rgba(255,255,255,.92);
  --muted:rgba(255,255,255,.68);
  --shadow:0 20px 60px rgba(0,0,0,.45);
  --radius:18px;
  --nav-bg:rgba(7,10,18,.85);
  --nav-border:rgba(255,255,255,.08);
  --btn-bg:rgba(255,255,255,.9);
  --btn-text:#070A12;
}

*{box-sizing:border-box}
html,body{height:100%}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  background: var(--bg);
  color: var(--text);
}

.bg{
  position:fixed; inset:-20%;
  background:
    radial-gradient(600px 400px at 15% 25%, rgba(99,102,241,.35), transparent 55%),
    radial-gradient(700px 450px at 85% 20%, rgba(16,185,129,.25), transparent 55%),
    radial-gradient(700px 500px at 60% 90%, rgba(236,72,153,.22), transparent 55%),
    linear-gradient(180deg, var(--bg0), var(--bg1), transparent 35%);
  filter: blur(10px);
  pointer-events:none;
  z-index:-1;
}

.container{
  width:min(1100px, 92vw);
  margin:0 auto;
}

.nav{
  position:sticky; top:0;
  backdrop-filter: blur(10px);
  background: var(--nav-bg);
  border-bottom:1px solid var(--nav-border);
  z-index:10;
}
.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 0;
}
.logo{
  font-weight:800;
  letter-spacing:.2px;
  text-decoration:none;
  color:var(--text);
  font-size:18px;
}
.logo span{opacity:.7}

.links{
  display:flex; gap:12px; align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.links a:not(.btn):not(.nav-btn-transparent){
  color:var(--muted);
  text-decoration:none;
  font-weight:700;
  font-size:15px;
}
.links a:not(.btn):not(.nav-btn-transparent):hover{color:var(--text)}

.nav-btn-transparent{
  padding: 8px 16px;
  background: rgba(14, 165, 164, 0.08);
  border: 1.5px solid rgba(14, 165, 164, 0.3);
  border-radius: 8px;
  color: var(--text);
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
  transition: all 0.2s ease;
  backdrop-filter: blur(4px);
  position: relative;
}
.nav-btn-transparent:hover{
  background: var(--btn-bg);
  color: var(--btn-text);
  transform: translateY(-1px);
  border-color: var(--btn-bg);
  box-shadow: 0 2px 8px rgba(14, 165, 164, 0.2);
}

.theme-toggle{
  display:flex;
  gap:6px;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:10px;
  padding:4px;
}
.theme-btn{
  padding:6px 12px;
  border-radius:8px;
  background:transparent;
  border:none;
  color:var(--muted);
  font-weight:700;
  font-size:12px;
  cursor:pointer;
  transition:all 0.2s;
}
.theme-btn:hover{
  color:var(--text);
}
.theme-btn.active{
  background:var(--btn-bg);
  color:var(--btn-text);
}

.hero{padding:64px 0 18px}
.section{padding:48px 0}
.section-head{
  text-align:center;
  margin-bottom:36px;
}
.section-head h2{margin:0 0 8px; font-size:2.4rem}
.section-head p{margin:0; color:var(--muted)}

.card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 22px;
}

.hero-card h1{
  margin:10px 0 10px;
  font-size:44px;
  line-height:1.05;
  letter-spacing:-.8px;
}
.subtitle{
  color:var(--text); 
  font-size:18px; 
  font-weight:700;
  margin:8px 0 16px;
  letter-spacing:0.5px;
}
.sub{color:var(--muted); font-size:16px; line-height:1.6; margin:0 0 16px}

.grad{
  background: linear-gradient(120deg, #3B82F6, #0ea5a4);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.badge{
  display:inline-flex;
  padding:7px 10px;
  border-radius:999px;
  background: var(--card);
  border: 1px solid var(--border);
  color: var(--muted);
  font-weight:800;
  font-size:12px;
  width:fit-content;
}

.cta{display:flex; gap:10px; flex-wrap:wrap; margin:14px 0 6px}
.btn, .ghost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:12px;
  font-weight:800;
  text-decoration:none;
  font-size:18px;
  line-height:1;
}

.btn{
  background:var(--btn-bg);
  color:var(--btn-text);
  border:2px solid var(--btn-bg);
  transition:all 0.2s;
  box-shadow: 0 2px 8px rgba(14, 165, 164, 0.2);
}
.btn:hover{
  background:var(--btn-bg);
  color:var(--btn-text);
  opacity:0.9;
  transform:translateY(-2px);
  box-shadow: 0 4px 12px rgba(14, 165, 164, 0.3);
}
.btn:focus:not(:focus-visible) {
  outline: none;
}
.btn:focus {
  box-shadow: 0 2px 8px rgba(14, 165, 164, 0.2);
}
.btn:active {
  transform: translateY(0);
}
.ghost{
  color: var(--text);
  background: rgba(14, 165, 164, 0.08);
  border: 1.5px solid rgba(14, 165, 164, 0.3);
  cursor:pointer;
  transition:all 0.2s;
  position: relative;
}
.ghost::after{
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 12px;
  border: 2px solid transparent;
  transition: border-color 0.2s;
}
.ghost:hover::after{
  border-color: var(--btn-bg);
}
.ghost:hover{
  background: var(--btn-bg);
  color: var(--btn-text);
  transform:translateY(-2px);
  box-shadow: 0 4px 12px rgba(14, 165, 164, 0.2);
}

.mini{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}
.pill{
  padding:8px 10px;
  border-radius:999px;
  background: var(--card);
  border: 1px solid var(--border);
  color: var(--muted);
  font-weight:800;
  font-size:12px;
}

.pub-link{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 8px;
  padding: 2px 8px;
  background: rgba(14, 165, 164, 0.08);
  border: 1px solid rgba(14, 165, 164, 0.3);
  border-radius: 6px;
  color: var(--text);
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
  transition: all 0.2s;
}

.pub-link:hover{
  background: var(--btn-bg);
  color: var(--btn-text);
  transform: translateY(-1px);
}

.hero-meta{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:12px;
  margin-top:18px;
}
.meta-card{
  border-radius:14px;
  padding:14px;
  background: var(--card);
  border: 1px solid var(--border);
}
.meta-k{margin:0; color:var(--muted); font-weight:800; font-size:12px}
.meta-v{margin:6px 0 2px; font-weight:900}
.meta-s{margin:0; color:var(--muted); font-weight:700; font-size:12px}

.muted{color:var(--muted)}

.note{
  margin-top:14px;
  background: var(--card);
}

.grid2{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
}
.grid3{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:14px;
}

.stack{display:flex; flex-direction:column; gap:12px}

/* timeline */
.timeline{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
}
.tl-item{position:relative}
.tl-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.tl-top h3{margin:0; font-size:17px}
.tl-date{
  color: var(--muted);
  font-weight:800;
  font-size:12px;
  padding:6px 10px;
  border:1px solid var(--border);
  background: var(--card);
  border-radius:999px;
  white-space:nowrap;
}

/* lists */
.clean-list{
  margin: 10px 0 0;
  padding-left: 18px;
  line-height: 1.7;
}
.clean-list li{margin:6px 0}

.link{
  color: var(--text);
  font-weight:800;
  text-decoration:none;
  font-size:13px;
}
.link:hover{text-decoration:underline}

/* accordion */
.acc summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.acc summary::-webkit-details-marker{display:none}
.acc-title{
  font-weight:950;
  letter-spacing:-.2px;
}
.acc-tag{
  color: var(--muted);
  font-weight:800;
  font-size:12px;
  padding:6px 10px;
  border:1px solid var(--border);
  background: var(--card);
  border-radius:999px;
  white-space:nowrap;
}
.acc[open] summary{
  margin-bottom: 10px;
}
.acc-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
  margin-top:10px;
}
.acc h4{
  margin: 10px 0 6px;
  font-size: 13px;
  letter-spacing:.2px;
  text-transform: uppercase;
  color: var(--muted);
}

/* publications */
.pub-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
  margin-top:10px;
}
.pub-col h4{
  margin: 10px 0 6px;
  font-size: 13px;
  letter-spacing:.2px;
  text-transform: uppercase;
  color: var(--muted);
}

/* multi-column list for reviewer */
.cols{
  columns: 2;
  column-gap: 24px;
}
.cols li{break-inside: avoid}

/* contact */
.contact{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:flex-start;
}
.more{
  display:inline-block;
}
.more summary{
  list-style:none;
}
.more summary::-webkit-details-marker{display:none}
.more-box{
  margin-top:10px;
  padding:14px;
  border-radius:14px;
  background: var(--card);
  border: 1px solid var(--border);
  min-width: min(520px, 86vw);
}

.footer{
  padding:26px 0 60px;
  color: var(--muted);
  font-weight:700;
  font-size:13px;
}

/* responsive */
@media (max-width: 980px){
  .grid3{grid-template-columns: 1fr}
  .grid2{grid-template-columns: 1fr}
  .timeline{grid-template-columns: 1fr}
  .acc-grid{grid-template-columns: 1fr}
  .pub-grid{grid-template-columns: 1fr}
  .hero-meta{grid-template-columns: 1fr}
  .cols{columns: 1}
  .hero-card h1{font-size:36px}
  .links{gap:10px}
}


/* Project gallery (anomaly maps, results, etc.) */
.gallery{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-top:12px;
}
.shot{
  margin:0;
  padding:12px;
  border-radius:16px;
  border:1px solid var(--border);
  background: var(--card);
}
.shot img{
  width:100%;
  height:260px;
  object-fit:cover;
  border-radius:14px;
  border:1px solid var(--border);
  display:block;
}
.shot figcaption{
  margin-top:10px;
  font-weight:700;
  font-size:12px;
}
@media (max-width: 900px){
  .gallery{grid-template-columns: 1fr;}
  .shot img{height:auto;}
}

.acc-actions{
  margin-top:14px;
  display:flex;
  justify-content:flex-end;
}

.btn-sm{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:12px;
  font-weight:800;
  text-decoration:none;
  font-size:13px;
  background:var(--btn-bg);
  color:var(--btn-text);
  border: 1px solid var(--border);
}
.btn-sm:hover{opacity:0.9}


.vid{
  width:100%;
  margin-top:12px;
  border-radius:16px;
  border:1px solid var(--border);
  background: rgba(0,0,0,.25);
  box-shadow: 0 12px 30px rgba(0,0,0,.25);
}
.chat-link{
  color: inherit;
  text-decoration: underline;
  font-weight: 700;
}
