/* ===========================================================
   AwareSTEM — Human Body Lab
   Standalone stylesheet (no dependency on story-style.css)
   =========================================================== */

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

:root{
  --bg:#03050f;
  --text:#e8eaf6;
  --muted:#8790b2;
  --accent:#4cc9f0;
  --glow:#4cc9f066;
  --font-display:Orbitron,system-ui,sans-serif;
  --font-body:"Crimson Pro",Georgia,serif;
}

html{scroll-behavior:smooth}

body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:18px;
  min-height:100vh;
  overflow-x:hidden;
}

/* ---- Background flourishes ---- */
#starfield{position:fixed;inset:0;z-index:0;pointer-events:none}
.nebula{position:fixed;border-radius:50%;filter:blur(120px);z-index:0;pointer-events:none;opacity:.13}
.nebula.one{width:620px;height:620px;background:var(--accent);top:-180px;right:-140px}
.nebula.two{width:480px;height:480px;background:#c77dff;bottom:60px;left:-150px}

/* ---- Top nav ---- */
.top-nav{
  position:relative;z-index:5;padding:18px clamp(18px,4vw,42px);
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  flex-wrap:wrap;border-bottom:1px solid #ffffff0a;
  background:#03050f99;backdrop-filter:blur(12px);
}
.nav-group{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.nav-link,.nav-brand{
  font-family:var(--font-display);font-size:.62rem;letter-spacing:.22em;
  text-transform:uppercase;text-decoration:none;
}
.nav-brand{color:var(--accent)}
.nav-link{color:#ffffff66;border:1px solid #ffffff14;padding:8px 13px;border-radius:3px}
.nav-link:hover{color:var(--accent);border-color:var(--accent)}

/* ---- Hero ---- */
.hero{position:relative;z-index:1;text-align:center;max-width:1060px;margin:0 auto;padding:clamp(64px,10vw,112px) 20px 52px}
.eyebrow{font-family:var(--font-display);font-size:.72rem;letter-spacing:.35em;color:var(--accent);text-transform:uppercase;margin-bottom:18px}
.hero h1{
  font-family:var(--font-display);font-size:clamp(2.2rem,7vw,5.5rem);font-weight:900;
  line-height:1.05;letter-spacing:-.03em;
  background:linear-gradient(135deg,#fff 0%,var(--accent) 52%,#c77dff 100%);
  background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
}
.hero-sub{font-size:clamp(1.06rem,2.5vw,1.35rem);font-style:italic;font-weight:300;color:var(--muted);margin:20px auto 0;max-width:760px;line-height:1.65}
.hero-hook{margin:30px auto 0;max-width:830px;text-align:left;border-left:3px solid var(--accent);background:#0a0f2288;padding:18px 22px;color:#f5f6ff;font-size:1.18rem;line-height:1.6;font-style:italic}

/* ---- Buttons ---- */
.btn{
  font-family:var(--font-display);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;color:var(--accent);border:1px solid var(--glow);padding:10px 16px;
  border-radius:3px;background:#ffffff05;display:inline-block;
}
.btn:hover{background:var(--glow);color:#fff}

/* ---- Layout wrap ---- */
.wrap{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:0 20px 90px}

/* ---- Sections ---- */
.section{margin-bottom:28px}
.section h2{
  font-family:var(--font-display);font-size:clamp(.76rem,2vw,.92rem);font-weight:800;
  letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;
}

/* ---- Body Lab grid & cards ---- */
.body-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:18px}

.body-card{
  display:block;background:linear-gradient(135deg,#0a0f22aa,#0d1535cc);
  border:1px solid #ffffff12;border-radius:6px;overflow:hidden;cursor:pointer;
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
  text-decoration:none;color:var(--text);
}
.body-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 0 30px var(--glow)}

.body-thumb{width:100%;aspect-ratio:3/4;overflow:hidden;background:#03050f;display:flex;align-items:center;justify-content:center}
.body-thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .4s ease;display:block}
.body-card:hover .body-thumb img{transform:scale(1.05)}

.body-card-body{padding:16px 18px}
.body-card-body small{display:block;font-family:var(--font-display);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:7px}
.body-card-body strong{display:block;font-family:var(--font-display);font-size:.96rem;margin-bottom:8px;color:#fff;line-height:1.3}
.body-card-body p{color:var(--muted);line-height:1.5;font-size:.95rem;margin:0}

/* ---- Modal / Lightbox ---- */
.modal-overlay{
  position:fixed;inset:0;background:#03050fcc;backdrop-filter:blur(8px);
  z-index:100;display:none;align-items:center;justify-content:center;padding:24px;
}
.modal-overlay.active{display:flex}
.modal-box{
  position:relative;max-width:min(900px,94vw);max-height:92vh;width:100%;
  background:linear-gradient(135deg,#0a0f22,#0d1535);border:1px solid var(--glow);
  border-radius:8px;overflow-y:auto;box-shadow:0 0 60px var(--glow);
}
.modal-close{
  position:sticky;top:0;float:right;margin:10px 10px 0 0;width:38px;height:38px;
  border-radius:50%;background:#03050fcc;border:1px solid #ffffff22;color:#fff;
  font-family:var(--font-display);font-size:1.1rem;display:flex;align-items:center;
  justify-content:center;cursor:pointer;z-index:5;
}
.modal-close:hover{border-color:var(--accent);color:var(--accent)}
.modal-img-wrap{padding:0 24px;text-align:center;margin-top:-38px}
.modal-img-wrap img{max-width:100%;border-radius:4px;display:inline-block}
.modal-content{padding:8px 28px 32px}
.modal-content h2{font-family:var(--font-display);font-size:clamp(1.2rem,3vw,1.7rem);color:#fff;margin-bottom:14px;letter-spacing:.02em}
.modal-content p{color:#cbd3ed;line-height:1.75;font-size:1.05rem;margin-bottom:18px}
.modal-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
.modal-cat{
  display:inline-block;font-family:var(--font-display);font-size:.62rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent);margin-bottom:8px;
}

/* ---- Responsive ---- */
@media(max-width:760px){
  .body-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
  .body-card-body{padding:12px 14px}
  .body-card-body strong{font-size:.85rem}
  .body-card-body p{font-size:.85rem}
  .modal-img-wrap{padding:0 14px}
  .modal-content{padding:8px 16px 24px}
}

/* ---- Filter bar ---- */
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.filter-btn{
  font-family:var(--font-display);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);border:1px solid #ffffff14;padding:8px 14px;border-radius:3px;
  background:#ffffff05;cursor:pointer;transition:color .15s,border-color .15s,background .15s;
}
.filter-btn:hover{color:var(--text);border-color:#ffffff2a}
.filter-btn.active{color:var(--accent);border-color:var(--accent);background:var(--glow)}

/* ---- Body card as button (reset defaults) ---- */
.body-card{
  font:inherit;text-align:left;width:100%;
}
.body-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---- Footer ---- */
.lab-footer{
  text-align:center;color:var(--muted);font-size:.8rem;line-height:1.6;
  margin-top:40px;padding-top:24px;border-top:1px solid #ffffff0a;
}
