 
  :root{
    --ink:#0e2621;
    --paper:#EDF2EE;
    --paper-raise:#E2E9E3;
    --teal:#146B5D;
    --teal-dark:#0B4A40;
    --amber:#FFD700;
    --line:#B9C4BC;
    --muted:#4C5F58;
    --saffron:#f44336;
  }

  *{box-sizing:border-box;}

  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    font-size:1rem;
    line-height:1.65;
  }

  h1,h2,h3,h4,.display-serif{
    font-family:'Fraunces', serif;
    color:var(--ink);
    letter-spacing:-0.01em;
  }

  .mono{
    font-family:'IBM Plex Mono', monospace;
    letter-spacing:0.02em;
  }

  a{ color:var(--teal-dark); }
  a:hover{ color:var(--amber); }

  /* ---------- Gel-ladder divider (signature element) ---------- */
  .gel-divider{
    display:flex;
    align-items:center;
    gap:6px;
    margin:0 0 2.75rem 0;
    height:14px;
  }
  .gel-divider .band{
    height:3px;
    background:var(--ink);
    opacity:.16;
    border-radius:2px;
  }
  .gel-divider.accent .band{ background:var(--teal); opacity:.55;}

  /* ---------- Navbar ---------- */
  .navbar-lab{
    background: #FAFAFF;
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
    transition:background .3s ease;
  }
  .navbar-lab .navbar-brand{
    font-family:'Fraunces', serif;
    font-weight:600;
    font-size:1.15rem;
    color:var(--ink);
    line-height:1.1;
  }
  .navbar-lab .navbar-brand small{
    display:block;
    font-family:'IBM Plex Mono', monospace;
    font-size:.62rem;
    letter-spacing:.14em;
    color:var(--teal-dark);
    text-transform:uppercase;
  }
  .navbar-lab .nav-link{
    /* font-family:'IBM Plex Mono', monospace; */
    font-size:.98rem;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink);
    padding:.5rem 1rem !important;
    position:relative;
  }
  .navbar-lab .nav-link::after{
    content:"";
    position:absolute;
    left:1rem; right:1rem; bottom:.25rem;
    height:1px;
    background:var(--amber);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .25s ease;
  }
  .navbar-lab .nav-link:hover::after,
  .navbar-lab .nav-link.active::after{ transform:scaleX(1);}
  .navbar-lab .nav-link.active{ color:var(--teal-dark); }
  .navbar-lab .btn-abstract{
    font-family:'IBM Plex Mono', monospace;
    font-size:.78rem;
    letter-spacing:.06em;
    text-transform:uppercase;
    background:var(--ink);
    color:var(--paper);
    border-radius:2px;
    padding:.5rem 1.1rem;
    border:1px solid var(--ink);
  }
  .navbar-lab .btn-abstract:hover{ background:var(--amber); border-color:var(--amber); color:#fff; }

  /* ---------- Cinematic Full Page Background Hero ---------- */
.logo-tint-wrapper {
  display: inline-block;
  background-color: var(--ink); /* Flat brand color backdrop */
  mix-blend-mode: screen;       /* Knocks out dark areas, lets image textures through lights */
  padding: 2px;
}
.flash-entry {
    animation: cameraFlash 1.2s ease forwards;
}

.welcome-title {
    text-align: center;
    font-size: 2.5rem;
    font-weight: 700;
    color: #0d6efd;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 30px 0;
    position: relative;
}

.welcome-title::after {
    content: "";
    display: block;
    width: 100px;
    height: 4px;
    background: #ffc107;
    margin: 12px auto 0;
    border-radius: 5px;
}

.page-banner {
    background: linear-gradient(rgb(14 38 33), rgb(10 54 34 / 42%)), url(srtip_banner.png) center center / cover no-repeat;
    height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
}

.page-banner h1 {
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: 10px;
}

.page-banner p {
    font-size: 1.2rem;
    margin: 0;
}

@media (max-width:768px) {
    .page-banner {
        height: 220px;
    }

    .page-banner h1 {
        font-size: 2rem;
    }
}

@keyframes cameraFlash {
    0% {
        opacity: 0;
        filter: brightness(5);
        transform: scale(0.8);
    }

    30% {
        opacity: 1;
        filter: brightness(2.5);
        transform: scale(1.12);
    }

    100% {
        filter: brightness(1);
        transform: scale(1);
    }
}
  .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: var(--ink);
    color: var(--paper);
    padding: 8rem 0 6rem 0;
  }
  .hero canvas{ position:absolute; inset:0; width:100%; height:100%; opacity:.3; z-index: 1; }
  .hero .hero-inner{ position:relative; z-index:3; }
  
  /* The Background Canvas Image Wrapper */
  .hero-photo-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
  }
  .hero-photo-bg .frame {
    width: 100%;
    height: 100%;
    /* Beautiful smooth radial fade on all 4 sides */
    -webkit-mask-image: radial-gradient(circle at center, rgba(0,0,0,1) 40%, rgba(0,0,0,0) 100%);
    mask-image: radial-gradient(circle at center, rgba(0,0,0,1) 40%, rgba(0,0,0,0) 100%);
  }
  .hero-photo-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.85) contrast(1.1) brightness(0.75);
  }
  .hero-photo-bg .tint {
    position: absolute;
    inset: 0;
    background: 
      linear-gradient(0deg, var(--ink) 0%, rgba(14,38,33,0) 60%),
      linear-gradient(135deg, rgba(20,107,93,0.35), rgba(14,38,33,0.2) 70%);
    mix-blend-mode: multiply;
  }
  .hero-photo-bg .grain {
    position: absolute; 
    inset: 0;
    background: radial-gradient(rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 4px 4px;
    opacity: 0.6;
  }

  .hero .eyebrow{
     font-family:'IBM Plex Mono', monospace;
    font-size:1.3rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--amber);
    margin-bottom:1.1rem;
  }
  .hero h1{
    color:#fff;
    font-size:clamp(2.4rem, 5vw, 4.1rem);
    font-weight:600;
    line-height:1.05;
    max-width:16ch;
    text-shadow: 0 2px 10px rgba(0,0,0,0.3);
  }
  .hero p.lede{
    color:#CFE0D9;
    max-width:52ch;
    font-size:1.08rem;
    margin-top:1.4rem;
    text-shadow: 0 1px 5px rgba(0,0,0,0.2);
  }
  .hero .meta-strip{
    margin-top:2.6rem;
    display:flex;
    flex-wrap:wrap;
    gap:2.2rem 2.8rem;
    font-family:'IBM Plex Mono', monospace;
    font-size:.82rem;
  }
  .hero .meta-strip .label{
    display:block;
    color:#8FB3A6;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.68rem;
    margin-bottom:.25rem;
  }
  .hero .meta-strip .value{ color:#fff; font-size:1.1rem; }

  /* ---------- Countdown ---------- */
  .countdown{
    margin-top:3rem;
    padding-top:2.2rem;
    border-top:1px solid #244640;
    max-width:520px;
  }
  .countdown .cd-eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:.7rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:#8FB3A6;
    margin-bottom:.9rem;
  }
  .countdown .cd-grid{
    display:flex;
    align-items:center;
    gap:.6rem;
  }
  .countdown .cd-cell{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    min-width:64px;
  }
  .countdown .cd-num{
    font-family:'Fraunces', serif;
    font-weight:600;
    font-size:clamp(2rem, 4vw, 2.6rem);
    line-height:1;
    color:#fff;
    font-variant-numeric:tabular-nums;
  }
  .countdown .cd-unit{
    font-family:'IBM Plex Mono', monospace;
    font-size:.68rem;
    text-transform:uppercase;
    letter-spacing:.1em;
    color:#8FB3A6;
    margin-top:.4rem;
  }
  .countdown .cd-sep{
    font-family:'Fraunces', serif;
    font-size:1.8rem;
    color:var(--amber);
    padding-bottom:1.2rem;
  }
  @media (max-width: 420px){
    .countdown .cd-grid{ gap:.35rem; }
    .countdown .cd-cell{ min-width:52px; }
  }
  .btn-amber{
    background:var(--amber); border-color:var(--amber); color:#1a1005;
    font-family:'IBM Plex Mono', monospace; font-size:.82rem; letter-spacing:.05em; text-transform:uppercase;
    padding:.7rem 1.5rem; border-radius:2px;
  }
  .btn-amber:hover{ background:#E08B39; border-color:#E08B39; color:#1a1005; }

  /* ---------- Section framing ---------- */
  section.fig{ padding:5.5rem 0; }
  section.fig.raised{ background:var(--paper-raise); }
  .fig-label{
    font-family:'IBM Plex Mono', monospace;
    font-size:.78rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--teal-dark);
    margin-bottom:.6rem;
  }
  .fig-label::before{ content:"— "; color:var(--amber); }
  .fig-title{ font-size:clamp(1.6rem,3vw,2.2rem); font-weight:300; margin-bottom:1rem;margin-top: 2rem;}
  .fig-intro{ color:var(--muted); max-width:62ch; margin-bottom:2.6rem; }

  /* ---------- Key dates ---------- */
  .dates-strip{
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    background:#fff;
    position: relative;
    z-index: 10;
  }
  .date-item{
    padding:1.6rem 1.2rem;
    border-right:1px solid var(--line);
  }
  .date-item:last-child{ border-right:none; }
  .date-item .num{
    font-family:'IBM Plex Mono', monospace;
    font-size:.72rem;
    color:var(--teal);
    letter-spacing:.08em;
  }
  .date-item .d{
    font-family:'Fraunces', serif;
    font-size:1.5rem;
    font-weight:600;
    margin:.25rem 0;
  }
  .date-item .l{
    font-size:.85rem;
    color:var(--muted);
  }

  /* ---------- Schedule accordion ---------- */
  .accordion-lab .accordion-item{
    background:transparent;
    border:none;
    border-bottom:1px solid var(--line);
    border-radius:0;
  }
  .accordion-lab .accordion-button{
    background:transparent;
    font-family:'Fraunces', serif;
    font-size:1.2rem;
    font-weight:600;
    color:var(--ink);
    padding:1.4rem 0;
    box-shadow:none;
  }
  .accordion-lab .accordion-button::after{ filter:hue-rotate(60deg) saturate(2); }
  .accordion-lab .accordion-button:not(.collapsed){ background:transparent; color:var(--teal-dark); box-shadow:none; }
  .accordion-lab .accordion-body{ padding:0 0 1.8rem 0; }
  .sched-row{
    display:flex; gap:1.2rem; padding:.7rem 0; border-top:1px dashed var(--line);
  }
  .sched-row:first-child{ border-top:none; }
  .sched-time{ font-family:'IBM Plex Mono', monospace; font-size:.82rem; color:var(--teal-dark); width:120px; flex-shrink:0; }
  .sched-what strong{ display:block; font-size:.98rem; }
  .sched-what span{ color:var(--muted); font-size:.88rem; }

  /* ---------- Speakers ---------- */
  .speaker-card{
    background:#fff;
    border:1px solid var(--line);
    padding:1.4rem;
    height:100%;
    transition:transform .2s ease, box-shadow .2s ease;
    text-align: center; 
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.25);
  }
  .speaker-card:hover{ transform:translateY(-4px); box-shadow:0 12px 28px rgba(14,38,33,.1);  }
  .speaker-photo{
    width:100%; aspect-ratio:1/1; border-radius:2px; margin-bottom:1rem;
    /*background:linear-gradient(135deg,var(--teal) 0%, var(--ink) 100%);*/
    display:flex; align-items:center; justify-content:center;
    font-family:'Fraunces', serif; font-size:2rem; color:#fff;
  /*box-shadow: 0 2px 2px rgba(0, 0, 0, 0.25);*/
  }
  .speaker-card h5{ font-family:'Fraunces', serif; font-size:1.05rem; margin-bottom:.15rem; }
  .speaker-card .role{ font-size:.82rem; color:var(--muted); margin-bottom:.5rem; }
  .speaker-card .tag{
    display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:.68rem;
    color:var(--teal-dark); border:1px solid var(--teal); border-radius:2px; padding:.15rem .5rem;
    text-transform:uppercase; letter-spacing:.05em;
  }
  
  .speaker-card h5 a {
  color: inherit;
  text-decoration: none;
}

.speaker-card h5 a:hover,
.speaker-card h5 a:visited,
.speaker-card h5 a:active {
  text-decoration: none;
}

  /* ---------- Committee ---------- */
  .committee-list .committee-row{
    display:flex; justify-content:space-between; align-items:baseline;
    padding:.85rem 0; border-top:1px solid var(--line);
    font-size:.98rem;
  }
  .committee-list .committee-row:last-child{ border-bottom:1px solid var(--line); }
  .committee-role{ font-family:'IBM Plex Mono', monospace; font-size:.92rem; color:var(--muted); text-transform:uppercase; letter-spacing:.06em;}

  /* ---------- Abstract CTA ---------- */
  .abstract-band{
    background:var(--teal-dark);
    color:#fff;
    padding:4rem 0;
  }
  .abstract-band h2{ color:#fff; }
  .abstract-band p{ color:#CFE0D9; max-width:56ch; }
  .abstract-band .code{
    font-family:'IBM Plex Mono', monospace;
    font-size:.78rem;
    color:#8FB3A6;
    letter-spacing:.08em;
    margin-bottom:.75rem;
    display:block;
  }

  /* ---------- Past conferences ---------- */
  .archive-row{
    display:flex; align-items:center; gap:1.5rem;
    padding:1.5rem 0; border-top:1px solid var(--line);
    text-decoration:none; color:var(--ink);
  }
  .archive-row:last-child{ border-bottom:1px solid var(--line); }
  .archive-row:hover{ background:var(--paper-raise); color:var(--ink); }
  .archive-row .yr{
    font-family:'Fraunces', serif; font-size:2.1rem; font-weight:600; color:var(--teal-dark);
    width:90px; flex-shrink:0;
  }
  .archive-row .band-set{ display:flex; gap:4px; align-items:center; flex-grow:1; }
  .archive-row .band-set .b{ height:3px; background:var(--ink); opacity:.18; border-radius:2px; }
  .archive-row .go{ font-family:'IBM Plex Mono', monospace; font-size:1.5rem; text-transform:uppercase; color:var(--saffron); flex-shrink:0; }

  /* ---------- Footer ---------- */
  footer{
    background:var(--ink); color:#B9CCC4; padding:3.5rem 0 2rem; font-size:.9rem;
  }
  footer h6{ font-family:'IBM Plex Mono', monospace; text-transform:uppercase; letter-spacing:.1em; font-size:.72rem; color:#8FB3A6; margin-bottom:1rem;}
  footer a{ color:#DCE8E2; text-decoration:none; }
  footer a:hover{ color:var(--amber); }
  footer .bottom-line{ border-top:1px solid #1E4038; margin-top:2.5rem; padding-top:1.4rem; font-size:.78rem; color:#729186; font-family:'IBM Plex Mono', monospace; }

  @media (max-width: 767px){
    .date-item{ border-right:none; border-bottom:1px solid var(--line); }
    .date-item:last-child{ border-bottom:none; }
  }

  @media (prefers-reduced-motion: reduce){
    .speaker-card, .navbar-lab .nav-link::after{ transition:none !important; }
  }
 