:root { --lab-navy:#123f5a; --lab-blue:#245f80; --lab-sky:#7eafc6; --lab-ink:#24343c; --lab-muted:#66757d; --lab-paper:#fff; --lab-soft:#f4f6f6; --lab-line:#d9dfe1; --lab-gold:#b06a1c; }
html { scroll-behavior:smooth; }
body { overflow-x:hidden; color:var(--lab-ink); background:var(--lab-paper); font-family:Arial,"Helvetica Neue",sans-serif; font-size:1rem; line-height:1.65; }
a { color:var(--lab-blue); text-decoration-thickness:1px; text-underline-offset:.2em; }
a:hover { color:var(--lab-navy); }

/* Shared site shell injected into every Quarto-rendered page. */
.site-header { position:relative; left:50%; width:100vw; max-width:none; margin-left:-50vw; padding:2.4rem max(1.25rem,6vw) 0; background:#fff; text-align:center; }
.site-wordmark a { display:inline-flex; align-items:center; justify-content:center; gap:.85rem; color:var(--lab-navy); font-size:clamp(1.65rem,3.5vw,2.35rem); font-weight:600; letter-spacing:.11em; line-height:1.2; text-decoration:none; }
.site-wordmark img { width:clamp(2.7rem,5vw,3.7rem); height:clamp(2.7rem,5vw,3.7rem); object-fit:contain; flex:0 0 auto; }
.site-nav { display:flex; flex-wrap:wrap; justify-content:center; gap:0; max-width:1040px; margin:1.6rem auto 0; padding:.7rem 2rem; border-top:1px solid var(--lab-line); border-bottom:1px solid var(--lab-line); }
.site-nav a { padding:.35rem .82rem; color:#6e767a; font-size:.75rem; font-weight:500; letter-spacing:.06em; text-decoration:none; text-transform:uppercase; }
.site-nav a:hover,.site-nav a.active { color:var(--lab-navy); background:#f5f6f6; }

#quarto-header { display:none !important; }
body { padding-top:0 !important; }

.navbar { min-height:7.2rem; padding:1.5rem max(2rem,7vw) 1.15rem; background:#fff !important; border:0; border-bottom:1px solid var(--lab-line); box-shadow:none; }
.navbar .container-fluid { align-items:center; flex-wrap:wrap; justify-content:center; gap:.7rem 2.5rem; }
.navbar-brand { width:100%; margin:0; color:var(--lab-navy) !important; font-size:clamp(1.45rem,3vw,2rem); font-weight:400; letter-spacing:.14em; line-height:1.2; text-align:center; }
.navbar-collapse { flex-grow:0; }
.navbar-nav { gap:.35rem; align-items:center; }
.navbar-nav .nav-link { padding:.4rem .68rem !important; color:#6e767a !important; font-size:.78rem; font-weight:500; letter-spacing:.07em; text-transform:uppercase; }
.navbar-nav .nav-link.active,.navbar-nav .nav-link:hover { color:var(--lab-navy) !important; }
.navbar-toggler { border:0; box-shadow:none !important; }

main.content,#quarto-content>.page-columns,.page-columns .content { max-width:1080px; }
@media (min-width:992px) {
  #quarto-content.page-columns:not(.page-layout-full) {
    grid-template-columns:[screen-start] minmax(2rem,1fr) [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0,1080px) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] minmax(2rem,1fr) [screen-end];
  }
  #quarto-content.page-columns:not(.page-layout-full) #quarto-margin-sidebar { display:none; }
  #quarto-content.page-columns:not(.page-layout-full) main.content { width:100%; max-width:1080px; }
}
h1,h2,h3 { color:var(--lab-navy); font-weight:500; letter-spacing:0; }
h1 { padding-bottom:.55rem; border-bottom:1px solid var(--lab-line); font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.1rem,5vw,3.4rem); line-height:1.15; }
h2 { margin-top:3.2rem; margin-bottom:1rem; font-size:1.48rem; }
h3 { font-size:1.08rem; }
p,li { max-width:74ch; }

.hero { position:relative; margin:0 0 4.5rem; padding:clamp(4.5rem,11vw,8.5rem) max(1.5rem,8vw); overflow:hidden; color:var(--lab-ink); background:linear-gradient(180deg,#eef1f1 0%,#f7f8f8 100%); border:0; border-radius:0; text-align:center; }
.hero::before,.hero::after { display:none; }
.hero h1 { max-width:17ch; margin:0 auto 1.25rem; padding:0; color:var(--lab-navy); border:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.8rem,6.5vw,5.4rem); font-weight:400; line-height:1.08; }
.hero .lead { max-width:48rem; margin:0 auto; color:#4e6069; font-size:clamp(1.03rem,2vw,1.2rem); line-height:1.65; }
.eyebrow { margin-bottom:1.1rem; color:var(--lab-gold); font-size:.75rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.hero-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:1.5rem; margin-top:1.7rem; }
.button,.button.secondary { display:inline-block; padding:.25rem 0; color:var(--lab-blue); background:transparent; border:0; border-bottom:1px solid currentColor; border-radius:0; font-size:.83rem; font-weight:700; letter-spacing:.06em; text-decoration:none; text-transform:uppercase; }
.button:hover,.button.secondary:hover { color:var(--lab-navy); background:transparent; }

.stats,.card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.2rem; margin:2rem 0; }
.stat,.card { padding:1.15rem 0 0; background:transparent; border:0; border-top:1px solid var(--lab-line); border-radius:0; box-shadow:none; }
.stat strong { display:block; margin-bottom:.45rem; color:var(--lab-navy); font-size:1.05rem; font-weight:600; }
.card h3 { margin-top:0; }
.card p:last-child { margin-bottom:0; }
.tag { display:inline-block; margin:0 0 .55rem; padding:0; color:var(--lab-muted); background:transparent; border-radius:0; font-size:.73rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; }

.statement { max-width:850px; margin:3rem 0; padding:1.1rem 0 1.1rem 1.4rem; background:transparent; border-left:2px solid var(--lab-gold); font-family:Georgia,"Times New Roman",serif; font-size:1.18rem; }
.positioning-schematic { display:block; width:min(100%,900px); height:auto; margin:2.5rem auto 4rem; }
.pathway { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin:2rem 0 3rem; border-top:1px solid var(--lab-line); border-bottom:1px solid var(--lab-line); }
.pathway>div { padding:1.05rem .8rem; color:var(--lab-ink); background:transparent; border-right:1px solid var(--lab-line); text-align:center; }
.pathway>div:last-child { border-right:0; }
.pathway>div::after { display:none !important; }

.research-stack { display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin:2.2rem 0 3rem; border-top:1px solid var(--lab-line); border-bottom:1px solid var(--lab-line); }
.stack-stage { display:block; padding:1.25rem 1rem 1.4rem; background:transparent; border:0; border-right:1px solid var(--lab-line); box-shadow:none; }
.stack-stage:last-child { border-right:0; }
.stack-stage>span { display:block; width:auto; height:auto; margin-bottom:.7rem; color:var(--lab-gold); background:transparent; border-radius:0; font-size:.72rem; font-weight:700; letter-spacing:.08em; }
.stack-stage strong { color:var(--lab-navy); font-size:.98rem; font-weight:600; }
.stack-stage p { margin:.35rem 0 0; color:var(--lab-muted); font-size:.9rem; line-height:1.5; }

.person { display:grid; grid-template-columns:3.2rem 1fr; gap:1rem; align-items:start; }
.monogram { display:grid; place-items:center; width:3.1rem; height:3.1rem; color:var(--lab-navy); background:transparent; border:1px solid var(--lab-line); border-radius:50%; font-size:.85rem; font-weight:700; }
.member-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem; margin:2rem 0 3rem; }
.member { min-width:0; }
.member-photo-link { display:block; width:100%; aspect-ratio:4/3; overflow:hidden; background:var(--lab-soft); }
.member-photo { display:block; width:100%; height:100%; object-fit:cover; object-position:center top; }
.member h2 { margin:1rem 0 .25rem; font-family:Georgia,"Times New Roman",serif; font-size:1.45rem; }
.member h2 a { color:var(--lab-navy); text-decoration:none; }
.member-projects { margin:.9rem 0 0; padding-left:1.15rem; font-size:.92rem; }
.project-listing { padding:1.6rem 0; border-top:1px solid var(--lab-line); }
.project-listing:last-child { border-bottom:1px solid var(--lab-line); }
.project-listing h2 { margin:.25rem 0 .55rem; font-family:Georgia,"Times New Roman",serif; font-size:1.5rem; }
.project-listing h2 a { color:var(--lab-navy); text-decoration:none; }
.project-owner { color:var(--lab-gold); font-size:.75rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.project-back { display:inline-block; margin-bottom:1.5rem; font-size:.8rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.project-hero { display:block; width:100%; max-height:680px; margin:0 0 2.25rem; object-fit:contain; object-position:center; background:var(--lab-soft); }
.project-lead { max-width:78ch; color:#42545d; font-family:Georgia,"Times New Roman",serif; font-size:1.15rem; line-height:1.7; }
.collaboration-prompt { margin:3rem 0 1rem; padding:1.25rem 0 1.25rem 1.4rem; border-left:2px solid var(--lab-gold); }
.meta { color:var(--lab-muted); font-size:.9rem; }
.publication,.download { padding:1.25rem 0; border-bottom:1px solid var(--lab-line); }
.publication .year { color:var(--lab-gold); font-size:.8rem; font-weight:700; }
.download { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.download a { font-weight:600; }

.quarto-title-banner { padding-top:3.5rem; padding-bottom:1.5rem; color:var(--lab-ink); background:#fff; }
.quarto-title-banner h1 { color:var(--lab-navy); border-color:var(--lab-line); }
.callout { border-radius:0; box-shadow:none; }
footer.footer { margin-top:5rem; padding-top:1.5rem; background:#fff; border-top:1px solid var(--lab-line); color:var(--lab-muted); }

/* Home page */
.panorama-hero { position:relative; isolation:isolate; left:50%; display:grid; place-items:center; width:100vw; max-width:none; min-height:clamp(310px,48vw,580px); margin:1.15rem 0 0 -50vw; padding:3rem 1.5rem; overflow:hidden; background:#637b87 url("assets/panorama-poster.jpg") center/cover no-repeat; color:#fff; text-align:center; }
.panorama-video { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.panorama-shade { position:absolute; z-index:-1; inset:0; background:linear-gradient(rgba(12,39,54,.22),rgba(12,39,54,.38)); }
.panorama-title { position:relative; z-index:1; width:min(920px,92%); padding:1.2rem 1rem; border-top:1px solid rgba(255,255,255,.75); border-bottom:1px solid rgba(255,255,255,.75); font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.2rem,5.5vw,4.6rem); font-weight:400; letter-spacing:.02em; line-height:1.16; text-shadow:0 1px 10px rgba(0,0,0,.28); }
.home-section { width:min(1080px,calc(100% - 3rem)); margin:5rem auto; }
.home-section>h2 { margin-bottom:2rem; text-align:center; }
.approach-intro { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); gap:clamp(2.5rem,7vw,6rem); align-items:stretch; }
.approach-copy,.approach-figure { min-width:0; width:100%; }
.approach-figure { display:block; align-self:start; overflow:hidden; }
.approach-figure > p { display:block; width:100%; margin:0; }
.approach-copy h2 { margin-top:0; color:var(--lab-gold); font-size:.86rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.approach-copy>a { display:inline-block; margin-top:.7rem; font-size:.84rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.approach-schematic { display:block; width:100%; height:auto; max-height:none; margin:0; }
.schematic-placeholder { display:grid; place-items:center; min-height:380px; padding:2rem; border:1px solid var(--lab-line); border-radius:50%; color:var(--lab-navy); background:#f7f8f8; text-align:center; }
.schematic-placeholder span { display:block; font-family:Georgia,"Times New Roman",serif; font-size:1.45rem; }
.schematic-placeholder small { display:block; max-width:26ch; margin-top:.65rem; color:var(--lab-muted); line-height:1.5; }

.news-updates-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.78fr); gap:clamp(2.5rem,6vw,5rem); align-items:start; }
.news-pane,.updates-pane { min-width:0; }
.news-pane>h3,.updates-pane>h3 { margin:0 0 1.2rem; padding-bottom:.7rem; border-bottom:1px solid var(--lab-line); font-family:Georgia,"Times New Roman",serif; font-size:1.55rem; }
.news-item { display:grid; grid-template-columns:150px minmax(0,1fr); gap:1.2rem; padding:1.35rem 0; border-bottom:1px solid var(--lab-line); }
.news-thumb { display:block; aspect-ratio:3/2; overflow:hidden; background:#e8edef; }
.news-thumb img { width:100%; height:100%; object-fit:cover; }
.news-image-placeholder { display:grid; place-items:center; width:100%; height:100%; color:#fff; background:var(--lab-blue); font-family:Georgia,"Times New Roman",serif; font-size:1.25rem; letter-spacing:.12em; }
.news-source { margin:0 0 .3rem !important; color:var(--lab-gold) !important; font-size:.7rem !important; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.news-copy h4 { margin:0 0 .4rem; color:var(--lab-navy); font-size:1rem; line-height:1.4; }
.news-copy h4 a { color:var(--lab-navy); font-size:inherit; font-weight:600; letter-spacing:0; text-decoration:none; text-transform:none; }
.news-copy p { margin:0 0 .5rem; color:var(--lab-muted); font-size:.9rem; line-height:1.5; }
.news-copy .news-read-more { font-size:.76rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.news-archive-item { display:grid; grid-template-columns:minmax(190px,260px) minmax(0,1fr); gap:2rem; align-items:start; padding:2rem 0; border-top:1px solid var(--lab-line); scroll-margin-top:2rem; }
.news-archive-item:last-child { border-bottom:1px solid var(--lab-line); }
.news-archive-image { aspect-ratio:3/2; overflow:hidden; background:var(--lab-soft); }
.news-archive-image img { display:block; width:100%; height:100%; object-fit:cover; }
.news-archive-copy h2 { margin:.15rem 0 .7rem; font-family:Georgia,"Times New Roman",serif; font-size:1.55rem; }
.news-archive-copy p { margin:.4rem 0 .8rem; }
.updates-pane { max-height:930px; overflow-y:auto; padding-right:.7rem; scrollbar-color:var(--lab-line) transparent; }
.update-embed { margin:0 0 1.4rem; overflow:hidden; border-bottom:1px solid var(--lab-line); }
.update-embed iframe { display:block; width:100% !important; max-width:504px; height:720px !important; min-height:720px !important; max-height:720px !important; margin:0 auto 1.4rem; border:0; }

@media (max-width:990px) {
  .navbar { min-height:auto; padding:1rem 1.25rem; }
  .navbar .container-fluid { justify-content:space-between; }
  .navbar-brand { width:auto; text-align:left; font-size:1.2rem; }
  .navbar-collapse { width:100%; }
  .navbar-nav { align-items:flex-start; padding-top:.75rem; }
  .research-stack { grid-template-columns:1fr; border-bottom:0; }
  .stack-stage { border-right:0; border-bottom:1px solid var(--lab-line); }
  .approach-intro,.news-updates-grid { grid-template-columns:1fr; }
  .approach-schematic { width:100%; height:auto; }
  .approach-figure > p { height:auto; }
  .schematic-placeholder { width:min(520px,90vw); margin:0 auto; }
  .schematic-placeholder { min-height:auto; aspect-ratio:1; }
  .updates-pane { max-height:none; overflow:visible; padding-right:0; }
}
@media (max-width:760px) {
  .stats,.card-grid,.member-grid { grid-template-columns:1fr; gap:1.2rem; }
  .pathway { grid-template-columns:1fr 1fr; }
  .pathway>div:nth-child(2) { border-right:0; }
  .pathway>div:nth-child(-n+2) { border-bottom:1px solid var(--lab-line); }
  .hero { margin-left:-1rem; margin-right:-1rem; padding:4.5rem 1.4rem; }
  .site-header { padding-top:1.5rem; }
  .site-wordmark a { gap:.55rem; font-size:1.35rem; letter-spacing:.07em; }
  .site-wordmark img { width:2.35rem; height:2.35rem; }
  .site-nav { padding:.65rem .25rem; }
  .site-nav a { padding:.35rem .5rem; font-size:.69rem; }
  .home-section { width:min(100% - 2rem,1080px); margin:3.5rem auto; }
  .news-item { grid-template-columns:110px minmax(0,1fr); }
  .news-archive-item { grid-template-columns:1fr; gap:1rem; }
  .news-archive-image { width:100%; }
}
@media (max-width:480px) {
  .pathway { grid-template-columns:1fr; }
  .pathway>div { border-right:0; border-bottom:1px solid var(--lab-line); }
  .pathway>div:last-child { border-bottom:0; }
  .download { align-items:flex-start; flex-direction:column; }
  .news-item { grid-template-columns:1fr; }
  .news-thumb { width:100%; }
}

@media (prefers-reduced-motion:reduce) {
  .panorama-video { display:none; }
}
