:root {
  --bg:#030407;
  --text:#f1f2f8;
  --muted:#bec4d3;
  --accent:#b5baff;
  --line:#ffffff26;
  --max-width:1160px
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'Source Sans 3','Segoe UI',sans-serif;
  line-height:1.75
}

a {
  color:var(--accent);
  text-underline-offset:4px
}

a:hover {
  color:#e0e2ff
}

a:focus-visible,button:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px
}

h1,h2,h3 {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:600;
  line-height:1.08;
  margin:0 0 1rem
}

h1 {
  font-size:clamp(3.4rem,7vw,6.2rem);
  letter-spacing:-.035em
}

h2 {
  font-size:clamp(2rem,4vw,3rem)
}

h3 {
  font-size:1.7rem
}

p {
  margin:0 0 1.2rem
}

.site-header {
  border-top:4px solid var(--text);
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:10
}

.site-header-inner {
  max-width:var(--max-width);
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  padding:1.3rem 24px
}

.site-title {
  font-family:Georgia,serif;
  font-size:1.15rem;
  color:var(--text);
  text-decoration:none;
  white-space:nowrap
}

.site-nav {
  display:flex;
  gap:1.5rem
}

.site-nav a {
  color:var(--muted);
  text-decoration:none;
  font-size:.95rem;
  padding:.4rem 0;
  border-bottom:2px solid transparent
}

.site-nav a:hover,.site-nav a[aria-current=page] {
  color:var(--text);
  border-bottom-color:var(--accent)
}

.menu-toggle {
  display:none;
  font:inherit;
  background:var(--accent);
  color:#090b18;
  border:0;
  padding:.55rem 1rem;
  border-radius:4px;
  cursor:pointer
}

.page-shell {
  max-width:var(--max-width);
  margin:auto;
  padding:0 24px
}

.hero {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:4rem;
  align-items:center;
  padding:5.5rem 0 4rem
}

.eyebrow {
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:600;
  color:var(--accent);
  margin-bottom:1.4rem
}

.lead {
  font-size:1.25rem;
  color:var(--muted);
  margin-bottom:1.8rem
}

.hero-box {
  max-width:620px;
  color:var(--muted);
  font-size:1.05rem
}

.hero-art {
  background:#173f3f;
  border-radius:48% 48% 8px 8px;
  aspect-ratio:4/5;
  position:relative;
  overflow:hidden
}

.hero-art svg {
  width:100%;
  height:100%;
  position:absolute;
  inset:0
}

.art-caption {
  position:absolute;
  bottom:28px;
  left:28px;
  right:28px;
  color:#d8e7da;
  font-size:.8rem;
  letter-spacing:.1em;
  text-transform:uppercase
}

.hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  margin-top:2rem
}

.button {
  display:inline-flex;
  background:var(--accent);
  color:#090b18;
  padding:.7rem 1.3rem;
  text-decoration:none;
  border:1px solid var(--text);
  border-radius:4px;
  font-weight:600
}

.button:hover {
  background:#d5d7ff;
  color:#090b18
}

.button-secondary {
  background:transparent;
  color:var(--text)
}

.home-section {
  padding:3rem 0;
  border-top:1px solid var(--line)
}

.section-heading {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:baseline;
  margin-bottom:1.5rem
}

.section-heading h2 {
  margin:0
}

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

.research-grid article {
  border-top:2px solid var(--accent);
  padding-top:1.2rem
}

.research-grid p {
  color:var(--muted)
}

.feature-news {
  display: grid;
  grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
  gap: 2rem;
  align-items: center;
}

.feature-news img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 6px;
}

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

.content-page {
  padding:4rem 0 5rem;
  min-height:70vh
}

.content-copy {
  max-width:1000px;
  margin:auto
}

.content-copy>h1 {
  padding-bottom:1.5rem;
  border-bottom:1px solid var(--line);
  margin-bottom:2rem
}

.content-box {
  max-width:760px;
  font-size:1.13rem;
  color:var(--muted)
}

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

.news-stack {
  display:grid;
  gap:2.5rem
}

.news-card {
  display:grid;
  grid-template-columns:minmax(240px,.8fr) 1.2fr;
  gap:2rem;
  padding:2rem;
  background:rgba(8,11,20,.88);
  border:1px solid var(--line);
  border-radius:6px
}

.news-item-alt .news-card {
  grid-template-columns:1.2fr minmax(240px,.8fr)
}

.news-body {
  min-width:0
}

.news-body h2 {
  font-size:2.35rem
}

.news-body p,.news-list {
  color:var(--muted)
}

.news-date {
  font-size:.78rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--accent)!important
}

.news-media {
  display:grid;
  gap:1rem;
  align-content:start
}

.achievement-figure {
  margin:0
}

.achievement-figure img {
  display:block;
  width:100%;
  height:auto;
  border-radius:3px
}

.achievement-gallery {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.75rem
}

.achievement-gallery img {
  width:100%;
  height:auto;
  border-radius:3px
}

.news-list {
  padding-left:1.2rem
}

.news-list li {
  margin-bottom:.65rem
}

.site-footer {
  max-width:var(--max-width);
  margin:auto;
  padding:1.6rem 24px 2rem;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:1rem;
  color:var(--muted);
  font-size:.85rem
}

.site-footer p {
  margin:0
}

.skip-link {
  position:absolute;
  left:16px;
  top:-100px;
  padding:.75rem;
  background:#101422;
  z-index:20
}

.skip-link:focus {
  top:16px
}


@media(max-width:900px) {
  .site-header-inner {
  flex-wrap:wrap;
  gap:1rem
}

.menu-toggle {
  display:inline-flex
}

.site-nav {
  flex-wrap:wrap;
  width:100%;
  gap:1rem
}

.js .site-nav {
  display:none
}

.js .site-nav.is-open {
  display:flex
}

.hero {
  gap:2rem;
  padding:3.5rem 0
}

.hero-art {
  aspect-ratio:3/4
}

.news-card,.news-item-alt .news-card {
  grid-template-columns:1fr
}

.news-item-alt .news-media {
  grid-row:1
}

.news-media {
  max-width:600px
}


}


@media(max-width:600px) {
  .hero {
  grid-template-columns:1fr
}

.hero-art {
  aspect-ratio:5/3;
  border-radius:80px 80px 4px 4px
}

.hero h1 {
  font-size:3.7rem
}

.research-grid,.feature-news {
  grid-template-columns:1fr
}

.section-heading {
  align-items:start;
  flex-direction:column;
  gap:.7rem
}

.news-card {
  padding:1.2rem;
  gap:1.4rem
}

.content-page {
  padding-top:2.5rem
}

.site-footer {
  flex-direction:column
}

.page-shell {
  padding:0 20px
}


}


@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto
}


}

.research-feature {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: start;
  margin-bottom: 3rem;
}
.research-figure { margin: 0; }
.research-figure img { display: block; width: 100%; height: auto; border-radius: 6px; }
.research-figure figcaption { margin-top: .8rem; color: var(--muted); font-size: .85rem; line-height: 1.6; }
.research-context { color: var(--muted); }
.research-context h2 { color: var(--text); }
.research-context p { max-width: 760px; }
@media (max-width: 900px) {
  .research-feature { grid-template-columns: 1fr; gap: 2rem; }
}

.current-research-summary { max-width: 760px; }
.current-research-summary p { color: var(--muted); }
.previous-work-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }
.previous-work-grid article { border-top: 2px solid var(--accent); padding-top: 1.2rem; }
.previous-work-grid p { color: var(--muted); }
.previous-project { padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.previous-project h3 { color: var(--text); }
.project-source { margin-top: 1.5rem; font-size: .9rem; }
@media (max-width: 600px) { .previous-work-grid { grid-template-columns: 1fr; gap: 1.5rem; } }

/* A static galactic backdrop keeps motion and page weight low. */
body {
  background-color: var(--bg);
  background-image: url("images/galactic-background.svg");
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
  color-scheme: dark;
}
.site-header { background: rgba(3,4,7,.9); border-top-color: #858bc9; }
.home-section { background: linear-gradient(90deg, rgba(3,4,7,.5), transparent); }
.hero-portrait {
  margin: 0;
  border-radius: 12px;
  aspect-ratio: 4 / 5;
  border: 1px solid var(--line);
  box-shadow: 0 16px 60px #0009;
  background: #080b13;
}
.hero-portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
}
.hero-portrait::after {
  content: "";
  position: absolute;
  inset: 55% 0 0;
  background: linear-gradient(transparent, #000d);
  pointer-events: none;
}
.hero-portrait .art-caption { color: #fff; z-index: 1; bottom: 20px; left: 20px; right: 20px; }
.button-secondary { background: #090c1680; color: var(--text); border-color: #ffffff50; }
@media (max-width: 600px) {
  .hero-portrait { aspect-ratio: 4 / 5; border-radius: 10px; max-width: 420px; width: 100%; }
  body { background-attachment: scroll; background-size: auto 1100px; }
}

.cv-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; }
.cv-viewer { display: block; width: 100%; height: 80vh; min-height: 500px; border: 1px solid var(--line); border-radius: 6px; background: #111; }
@media (max-width: 600px) { .cv-viewer { min-height: 400px; height: 65vh; } }

.thesis-preview summary { cursor: pointer; color: var(--accent); padding: .75rem 0; }
.thesis-preview summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.thesis-preview .cv-viewer { margin-top: 1rem; }

.photo-slider-frame {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--bg);
}
.photo-slide { display: block; }
.photo-slide img { display: block; width: 100%; height: auto; }
.photo-slider:has(.photo-slider-controls:not([hidden])) .photo-slide img {
  aspect-ratio: 4 / 3;
  object-fit: contain;
}
.photo-slider-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.photo-slider-controls button {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--bg);
  color: var(--accent);
  cursor: pointer;
  font: inherit;
}
.photo-slider-controls button:hover { border-color: var(--accent); }
.photo-slide:focus-visible { outline-offset: -4px; }
.photo-slide[hidden], .photo-slider-controls[hidden] { display: none; }

@media (min-width: 901px) {
  #aavso-2026 .news-card,
  #seibt-memorial-scholarship .news-card {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  }

  #quantum-summit-2025 .news-card {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  }
}

#bucy-scholarship .photo-slider {
  width: 80%;
  justify-self: center;
}

#bucy-scholarship .photo-slider:has(.photo-slider-controls:not([hidden])) .photo-slide img {
  aspect-ratio: 1 / 1;
}

@media (min-width: 901px) {
  #bucy-scholarship .news-card {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  }
}

#outside-research { margin-top: 2.5rem; }
#outside-research h3 { margin-top: 2rem; }
.about-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}
.about-gallery figure { margin: 0; }
.about-gallery a { display: block; }
.about-gallery img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.about-gallery img[src$="about-sunset.jpg"] { object-position: center 64%; }
.about-gallery figcaption { margin-top: .4rem; color: var(--muted); font-size: .9rem; }
@media (max-width: 600px) {
  .about-gallery { grid-template-columns: 1fr; }
}

.photography-gallery { margin-top: 2rem; }
.photography-gallery img {
  aspect-ratio: 1;
  object-fit: contain;
  background: var(--bg);
}
@media (min-width: 901px) {
  .photography-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .site-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .25rem .75rem;
  }
  .js .site-nav.is-open { display: grid; }
  .site-nav a, .menu-toggle {
    display: flex;
    align-items: center;
    min-height: 44px;
  }
  .site-nav a { padding: .5rem .65rem; }
  .content-box, .research-context, .news-body { overflow-wrap: anywhere; }
}

@media (max-width: 700px) {
  .page-shell { padding-inline: clamp(16px, 5vw, 24px); }
  .hero, .news-card, .news-item-alt .news-card, .research-feature {
    grid-template-columns: minmax(0, 1fr);
  }
  .hero { padding-block: 2.25rem; gap: 1.75rem; }
  .content-page { padding-block: 2.25rem 3rem; }
  h1, .hero h1 { font-size: clamp(2.35rem, 10.5vw, 3.7rem); }
  .news-body h2 { font-size: clamp(1.7rem, 7vw, 2.35rem); }
  .home-section { padding-block: 2rem; }
  .hero-actions, .cv-actions { gap: .75rem; }
  .hero-actions .button, .cv-actions .button {
    flex: 1 1 12rem;
    justify-content: center;
    text-align: center;
    min-height: 44px;
  }
  .research-grid, .previous-work-grid, .feature-news {
    grid-template-columns: minmax(0, 1fr);
  }
  .feature-news { gap: 1rem; }
  .news-card { gap: 1.25rem; padding: clamp(.875rem, 4vw, 1.5rem); }
  .news-item-alt .news-media { grid-row: auto; }
  .news-media { min-width: 0; width: 100%; }
  .photo-slider-controls button { min-width: 48px; min-height: 48px; }
  .cv-viewer { min-height: 0; height: 60svh; }
}
