/* ==========================================================================
   RAIL — Robust & Adaptive Intelligence Laboratory
   Ayan Mukhopadhyay · College of William & Mary
   Minimal white + light pastel design system
   ========================================================================== */

:root{
  /* Neutrals */
  --ink:            #16191d;
  --ink-2:          #3c434c;
  --muted:          #6b7480;
  --muted-2:        #8d95a1;
  --line:           #e7e9ec;
  --line-soft:      #f0f2f4;
  --bg:             #ffffff;
  --bg-tint:        #fbfcfb;

  /* Pastels (W&M green + gold, softened) */
  --sage:           #eef3f0;
  --sage-deep:      #dfe9e3;
  --mint:           #edf4f2;
  --blush:          #fbf3ec;
  --lilac:          #f1f0f8;
  --sky:            #eef2f8;
  --gold-soft:      #f7f1e4;

  /* Accents */
  --accent:         #1f5c48;   /* deep sage green */
  --accent-2:       #2d7a60;
  --gold:           #a8874c;

  /* Type */
  --serif: "Newsreader", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Metrics */
  --wrap: 1120px;
  --wrap-narrow: 760px;
  --radius: 14px;
  --radius-sm: 9px;
  --shadow: 0 1px 2px rgba(22,25,29,.04), 0 8px 24px -12px rgba(22,25,29,.10);
  --shadow-lift: 0 2px 4px rgba(22,25,29,.05), 0 18px 40px -18px rgba(22,25,29,.18);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:90px; }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16.5px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:var(--accent); text-decoration:none; }
a:hover{ color:var(--accent-2); text-decoration:underline; text-underline-offset:3px; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; color:var(--ink); margin:0 0 .5em; letter-spacing:-.012em; }
h1{ font-size:clamp(2.1rem,4.6vw,3.3rem); line-height:1.1; }
h2{ font-size:clamp(1.5rem,2.6vw,2.05rem); line-height:1.2; }
h3{ font-size:1.18rem; line-height:1.3; }
h4{ font-size:1.02rem; font-family:var(--sans); font-weight:600; letter-spacing:0; }
p{ margin:0 0 1.05em; }
ul,ol{ margin:0 0 1.1em; padding-left:1.15em; }
li{ margin-bottom:.4em; }
hr{ border:0; border-top:1px solid var(--line); margin:3rem 0; }
::selection{ background:var(--sage-deep); }

/* ---------- Layout ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(20px,5vw,40px); }
.wrap-narrow{ max-width:var(--wrap-narrow); }
section{ padding-block:clamp(3rem,6vw,5rem); }
.section-tint{ background:var(--bg-tint); border-block:1px solid var(--line-soft); }
.section-sage{ background:var(--sage); }

.eyebrow{
  font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--accent); margin:0 0 .9rem;
}
.lede{ font-size:1.12rem; color:var(--ink-2); max-width:64ch; }
.muted{ color:var(--muted); }
.small{ font-size:.88rem; }
.center{ text-align:center; }

/* ---------- Header / nav ---------- */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.88);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line-soft);
}
.nav{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:66px; }
.brand{ display:flex; align-items:center; gap:.7rem; color:var(--ink); text-decoration:none; }
.brand:hover{ text-decoration:none; }
.brand-mark{
  width:32px; height:32px; border-radius:9px; flex:none;
  background:linear-gradient(140deg,var(--accent) 0%, #3f8a6e 55%, var(--gold) 140%);
  display:grid; place-items:center;
  color:#fff; font-family:var(--serif); font-size:.86rem; letter-spacing:.02em;
}
.brand-text{ display:flex; flex-direction:column; line-height:1.15; }
.brand-name{ font-family:var(--serif); font-size:1.02rem; }
.brand-sub{ font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-2); }

.nav-links{ display:flex; align-items:center; gap:.15rem; list-style:none; margin:0; padding:0; }
.nav-links a{
  display:block; padding:.5rem .72rem; border-radius:8px;
  font-size:.905rem; color:var(--ink-2); font-weight:450;
}
.nav-links a:hover{ background:var(--sage); color:var(--accent); text-decoration:none; }
.nav-links a.active{ color:var(--accent); background:var(--sage); font-weight:550; }

.nav-toggle{
  display:none; border:1px solid var(--line); background:#fff; border-radius:9px;
  width:40px; height:38px; cursor:pointer; padding:0; align-items:center; justify-content:center;
}
.nav-toggle span{ display:block; width:17px; height:1.5px; background:var(--ink-2); position:relative; }
.nav-toggle span::before,.nav-toggle span::after{
  content:""; position:absolute; left:0; width:17px; height:1.5px; background:var(--ink-2);
}
.nav-toggle span::before{ top:-5.5px; } .nav-toggle span::after{ top:5.5px; }

@media (max-width:860px){
  .nav-toggle{ display:flex; }
  .nav-links{
    position:absolute; left:0; right:0; top:100%;
    flex-direction:column; align-items:stretch; gap:0;
    background:#fff; border-bottom:1px solid var(--line);
    padding:.5rem clamp(20px,5vw,40px) 1rem;
    box-shadow:var(--shadow); display:none;
  }
  .nav-links.open{ display:flex; }
  .nav-links a{ padding:.7rem .5rem; border-radius:8px; }
}

/* ---------- Hero ---------- */
.hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(760px 400px at 88% -8%, var(--mint) 0%, transparent 62%),
    radial-gradient(620px 380px at 4% 104%, var(--gold-soft) 0%, transparent 60%),
    linear-gradient(180deg,#fff 0%, var(--bg-tint) 100%);
  border-bottom:1px solid var(--line-soft);
  padding-block:clamp(3.5rem,8vw,6.5rem);
}
.hero-grid{ display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:clamp(2rem,5vw,4rem); align-items:center; }
.hero h1 .accent{ color:var(--accent); }
.hero-lab{
  display:inline-flex; align-items:center; gap:.55rem;
  background:#fff; border:1px solid var(--sage-deep); color:var(--accent);
  padding:.34rem .8rem; border-radius:999px;
  font-size:.76rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase;
  margin-bottom:1.4rem;
}
.hero-lab .dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); }
.hero p{ font-size:1.1rem; color:var(--ink-2); max-width:58ch; }

.portrait{
  aspect-ratio:4/5; border-radius:var(--radius); overflow:hidden;
  background:linear-gradient(160deg,var(--sage) 0%, var(--sky) 55%, var(--lilac) 100%);
  border:1px solid var(--line); box-shadow:var(--shadow);
  display:grid; place-items:center; text-align:center; padding:1.5rem;
  color:var(--muted-2); font-size:.82rem;
}
.portrait img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:820px){ .hero-grid{ grid-template-columns:1fr; } .portrait{ max-width:280px; aspect-ratio:1/1; border-radius:50%; } }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.62rem 1.15rem; border-radius:999px;
  font-size:.92rem; font-weight:550; border:1px solid transparent; cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:hover{ text-decoration:none; transform:translateY(-1px); }
.btn-primary{ background:var(--accent); color:#fff; box-shadow:0 6px 16px -8px rgba(31,92,72,.7); }
.btn-primary:hover{ background:var(--accent-2); color:#fff; }
.btn-ghost{ background:#fff; color:var(--ink-2); border-color:var(--line); }
.btn-ghost:hover{ border-color:var(--sage-deep); background:var(--sage); color:var(--accent); }
.btn-row{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.8rem; }

/* ---------- Section headings ---------- */
.section-head{ margin-bottom:2.4rem; max-width:70ch; }
.section-head p{ color:var(--muted); margin-bottom:0; }
.head-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; margin-bottom:2.2rem; }
.head-row h2{ margin-bottom:.2rem; }

/* ---------- Cards & grids ---------- */
.grid{ display:grid; gap:1.35rem; }
.grid-2{ grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }
.grid-3{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.grid-4{ grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }

.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.5rem 1.55rem; transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.card:hover{ border-color:var(--sage-deep); box-shadow:var(--shadow); }
.card h3{ margin-bottom:.4rem; }
.card p:last-child{ margin-bottom:0; }
.card-tint{ background:var(--sage); border-color:transparent; }
.card-blush{ background:var(--blush); border-color:transparent; }
.card-sky{ background:var(--sky); border-color:transparent; }
.card-lilac{ background:var(--lilac); border-color:transparent; }

/* Stats */
.stat{ padding:1.3rem 1.4rem; border-radius:var(--radius); background:var(--sage); }
.stat .num{ font-family:var(--serif); font-size:2.05rem; line-height:1; color:var(--accent); display:block; margin-bottom:.35rem; }
.stat .lbl{ font-size:.84rem; color:var(--ink-2); }

/* Tags */
.tags{ display:flex; flex-wrap:wrap; gap:.4rem; margin:.85rem 0 0; padding:0; list-style:none; }
.tag{
  font-size:.74rem; letter-spacing:.04em; padding:.24rem .62rem; border-radius:999px;
  background:var(--sage); color:var(--accent); border:1px solid var(--sage-deep); margin:0;
}
.tag-gold{ background:var(--gold-soft); color:var(--gold); border-color:#eee0c6; }
.tag-plain{ background:var(--line-soft); color:var(--muted); border-color:var(--line); }

/* ---------- News ---------- */
.news-list{ list-style:none; padding:0; margin:0; }
.news-list li{
  display:grid; grid-template-columns:96px 1fr; gap:1.25rem;
  padding:1rem 0; border-top:1px solid var(--line-soft); margin:0;
}
.news-list li:first-child{ border-top:0; }
.news-date{ font-size:.8rem; color:var(--muted-2); letter-spacing:.03em; padding-top:.15rem; font-variant-numeric:tabular-nums; }
.news-body{ color:var(--ink-2); font-size:.97rem; }
@media (max-width:600px){ .news-list li{ grid-template-columns:1fr; gap:.25rem; } }

/* ---------- Project (Research) ---------- */
.project{
  border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; background:#fff; margin-bottom:2rem;
}
.project-head{ padding:1.75rem clamp(1.3rem,3vw,2rem) 1.4rem; }
.project-head.tint-sage{ background:var(--sage); }
.project-head.tint-sky{ background:var(--sky); }
.project-head.tint-blush{ background:var(--blush); }
.project-head.tint-lilac{ background:var(--lilac); }
.project-head.tint-mint{ background:var(--mint); }
.project-head h3{ font-size:1.42rem; margin-bottom:.55rem; }
.project-head p{ color:var(--ink-2); margin-bottom:0; max-width:74ch; }
.project-body{ padding:1.5rem clamp(1.3rem,3vw,2rem) 1.75rem; }
.project-meta{
  display:flex; flex-wrap:wrap; gap:.4rem 1.5rem;
  font-size:.86rem; color:var(--muted); margin-top:1rem;
}
.project-meta strong{ color:var(--ink-2); font-weight:550; }

/* ---------- Media / video ---------- */
.media-strip{ display:grid; gap:1.15rem; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.media-item{ margin:0; }
.media-item figcaption{ font-size:.85rem; color:var(--muted); margin-top:.6rem; }
.media-item figcaption b{ color:var(--ink-2); font-weight:550; display:block; margin-bottom:.1rem; font-size:.9rem; }

.embed{
  position:relative; aspect-ratio:16/9; width:100%;
  background:linear-gradient(150deg,var(--sage) 0%, var(--sky) 100%);
  border:1px solid var(--line); border-radius:var(--radius-sm); overflow:hidden;
}
.embed iframe,.embed video{ position:absolute; inset:0; width:100%; height:100%; border:0; object-fit:cover; background:#000; }
.embed-btn{
  position:absolute; inset:0; width:100%; height:100%; border:0; padding:0; margin:0;
  background:transparent; cursor:pointer; display:grid; place-items:center;
}
.embed-btn img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.embed-play{
  position:relative; z-index:2;
  width:62px; height:62px; border-radius:50%;
  background:rgba(255,255,255,.94); box-shadow:0 6px 22px -6px rgba(0,0,0,.35);
  display:grid; place-items:center; transition:transform .18s ease, background .18s ease;
}
.embed-btn:hover .embed-play{ transform:scale(1.07); background:#fff; }
.embed-play::after{
  content:""; width:0; height:0; margin-left:4px;
  border-left:16px solid var(--accent); border-top:10px solid transparent; border-bottom:10px solid transparent;
}

/* Placeholder slot for videos not yet added */
.embed-empty{
  display:grid; place-items:center; text-align:center; padding:1.5rem;
  border-style:dashed; border-color:var(--sage-deep); color:var(--muted);
  background:var(--bg-tint);
}
.embed-empty .ph-title{ font-family:var(--serif); font-size:1rem; color:var(--ink-2); margin-bottom:.3rem; }
.embed-empty code{
  font-size:.74rem; background:#fff; border:1px solid var(--line);
  padding:.15rem .4rem; border-radius:5px; color:var(--muted);
}

/* Audio / podcast */
.audio-card{
  display:flex; align-items:center; gap:1rem;
  background:var(--gold-soft); border-radius:var(--radius-sm); padding:1rem 1.15rem;
}
.audio-icon{
  width:40px; height:40px; flex:none; border-radius:10px; background:#fff;
  display:grid; place-items:center; color:var(--gold); border:1px solid #eee0c6;
}
.audio-card audio{ width:100%; margin-top:.6rem; }
.audio-meta b{ display:block; font-size:.93rem; color:var(--ink); font-weight:550; }
.audio-meta span{ font-size:.82rem; color:var(--muted); }

/* ---------- People ---------- */
.person{ text-align:left; }
.person-photo{
  aspect-ratio:1/1; border-radius:var(--radius); overflow:hidden; margin-bottom:.9rem;
  background:linear-gradient(155deg,var(--sage) 0%, var(--sky) 60%, var(--lilac) 100%);
  border:1px solid var(--line); display:grid; place-items:center;
  font-family:var(--serif); font-size:1.9rem; color:var(--accent); letter-spacing:.02em;
}
.person-photo img{ width:100%; height:100%; object-fit:cover; }
.person h3{ font-size:1.06rem; margin-bottom:.15rem; }
.person .role{ font-size:.85rem; color:var(--accent); margin:0 0 .45rem; font-weight:500; }
.person .bio{ font-size:.89rem; color:var(--muted); margin-bottom:.5rem; }
.person .links{ display:flex; flex-wrap:wrap; gap:.35rem 1.1rem; font-size:.85rem; }

.person-row{
  display:grid; grid-template-columns:48px 1fr; gap:1rem; align-items:center;
  padding:.85rem 0; border-top:1px solid var(--line-soft); margin:0;
}
.person-row:first-child{ border-top:0; }
.person-row .person-photo{
  width:48px; height:48px; aspect-ratio:auto; border-radius:50%; margin:0;
  font-size:.82rem; letter-spacing:.03em; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}

/* Director block */
.director{ display:grid; grid-template-columns:220px minmax(0,1fr); gap:clamp(1.5rem,4vw,3rem); align-items:start; }
.director .person-photo{ margin-bottom:0; font-size:2.2rem; }
.director p{ color:var(--ink-2); max-width:62ch; }
@media (max-width:640px){
  .director{ grid-template-columns:1fr; }
  .director .person{ max-width:180px; }
}
.person-row b{ font-weight:550; font-size:.97rem; }
.person-row span{ display:block; font-size:.85rem; color:var(--muted); }

/* ---------- Publications ---------- */
.pub-year{
  font-family:var(--serif); font-size:1.5rem; color:var(--accent);
  padding-bottom:.5rem; border-bottom:1px solid var(--sage-deep);
  margin:2.8rem 0 1.2rem;
}
.pub-year:first-of-type{ margin-top:0; }
.pub-list{ list-style:none; padding:0; margin:0; }
.pub{
  padding:1rem 0 1.05rem; border-top:1px solid var(--line-soft); margin:0;
  font-size:.955rem; color:var(--ink-2);
}
.pub:first-child{ border-top:0; }
.pub .t{ color:var(--ink); font-weight:500; }
.pub .a{ color:var(--muted); font-size:.9rem; display:block; margin-top:.18rem; }
.pub .v{ color:var(--accent); font-size:.85rem; font-weight:500; }
.pub .me{ color:var(--ink); font-weight:600; }
.badge{
  display:inline-block; font-size:.72rem; font-weight:600; letter-spacing:.03em;
  padding:.12rem .5rem; border-radius:5px; margin-left:.4rem; vertical-align:1px;
  background:var(--gold-soft); color:var(--gold); border:1px solid #eee0c6;
}
.badge-green{ background:var(--sage); color:var(--accent); border-color:var(--sage-deep); }

/* Filter pills */
.filters{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2rem; }
.filter{
  font-size:.86rem; padding:.4rem .9rem; border-radius:999px; cursor:pointer;
  background:#fff; border:1px solid var(--line); color:var(--ink-2); font-family:inherit;
}
.filter:hover{ border-color:var(--sage-deep); background:var(--sage); }
.filter[aria-pressed="true"]{ background:var(--accent); color:#fff; border-color:var(--accent); }

/* ---------- Logos / funders ---------- */
.funders{ display:flex; flex-wrap:wrap; gap:.6rem 1.6rem; align-items:center; list-style:none; padding:0; margin:0; }
.funders li{ font-size:.9rem; color:var(--muted); margin:0; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; align-items:start; }
@media (max-width:720px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-line{ display:flex; gap:.7rem; align-items:flex-start; margin-bottom:.9rem; font-size:.95rem; }
.contact-line .k{ color:var(--muted); min-width:74px; flex:none; font-size:.88rem; }

/* ---------- Footer ---------- */
.site-footer{
  background:var(--bg-tint); border-top:1px solid var(--line);
  padding-block:3rem 2.2rem; margin-top:0;
}
.footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:2rem; margin-bottom:2.2rem; }
.footer-grid h4{ font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted-2); margin-bottom:.8rem; font-weight:600; }
.footer-grid ul{ list-style:none; padding:0; margin:0; }
.footer-grid li{ margin-bottom:.45rem; font-size:.9rem; }
.footer-grid a{ color:var(--ink-2); }
.footer-grid a:hover{ color:var(--accent); }
.footer-bottom{
  border-top:1px solid var(--line); padding-top:1.4rem;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  font-size:.84rem; color:var(--muted-2);
}
@media (max-width:760px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .footer-grid{ grid-template-columns:1fr; } }

/* ---------- Utilities ---------- */
.stack-sm > * + *{ margin-top:.75rem; }
.mt-0{ margin-top:0 } .mb-0{ margin-bottom:0 }
.skip{
  position:absolute; left:-9999px; top:0; background:var(--accent); color:#fff;
  padding:.6rem 1rem; border-radius:0 0 8px 0; z-index:200;
}
.skip:focus{ left:0; }
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
@media print{
  .site-header,.site-footer,.embed,.btn-row{ display:none; }
  body{ font-size:11pt; }
}

/* ==========================================================================
   Course pages
   ========================================================================== */

/* Logistics key/value block */
.logistics{
  background:var(--sage); border-radius:var(--radius);
  padding:1.4rem 1.6rem; margin:0 0 2rem;
}
.logistics dl{ display:grid; grid-template-columns:auto 1fr; gap:.55rem 1.4rem; margin:0; }
.logistics dt{ font-size:.86rem; color:var(--muted); font-weight:500; }
.logistics dd{ margin:0; font-size:.95rem; color:var(--ink-2); }
@media (max-width:520px){
  .logistics dl{ grid-template-columns:1fr; gap:.15rem; }
  .logistics dd{ margin-bottom:.7rem; }
}

/* Grading */
.grading{ list-style:none; padding:0; margin:0 0 1.2rem; max-width:34rem; }
.grading li{
  display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
  padding:.6rem 0; border-bottom:1px solid var(--line-soft); margin:0;
}
.grading li:last-child{ border-bottom:0; }
.grading .pct{ font-family:var(--serif); font-size:1.05rem; color:var(--accent); font-variant-numeric:tabular-nums; }

/* Schedule table */
.schedule-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
table.schedule{
  width:100%; border-collapse:collapse; font-size:.94rem; min-width:600px;
}
table.schedule th{
  text-align:left; font-family:var(--sans); font-size:.74rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--muted-2);
  padding:0 1rem .6rem 0; border-bottom:1px solid var(--line);
}
table.schedule td{
  padding:.95rem 1rem .95rem 0; border-bottom:1px solid var(--line-soft);
  vertical-align:top; color:var(--ink-2);
}
table.schedule td:first-child{ width:74px; color:var(--muted-2); font-size:.85rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
table.schedule td:nth-child(2){ width:92px; color:var(--muted-2); font-size:.85rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
table.schedule .topic{ color:var(--ink); font-weight:500; display:block; margin-bottom:.25rem; }
table.schedule tr.unit td{
  background:var(--sage); color:var(--accent);
  font-family:var(--serif); font-size:1.02rem;
  padding:.7rem 1rem; border-bottom:0;
}
table.schedule tr.unit td:first-child{ border-radius:8px 0 0 8px; }
table.schedule tr.unit td:last-child{ border-radius:0 8px 8px 0; }
table.schedule tr.break td{ color:var(--muted-2); font-style:italic; }
.reading{ display:block; font-size:.87rem; color:var(--muted); margin-top:.3rem; padding-left:1rem; text-indent:-1rem; }
.reading em{ color:var(--muted); }
.reading.bonus::before{ content:"Bonus · "; color:var(--muted-2); }
.due{
  display:inline-block; font-size:.72rem; font-weight:600; letter-spacing:.03em;
  padding:.1rem .48rem; border-radius:5px; margin-left:.4rem;
  background:var(--blush); color:#a8703c; border:1px solid #f0e0d0;
}

/* Slides-on-request callout */
.callout{
  border-left:3px solid var(--accent); background:var(--bg-tint);
  padding:1.1rem 1.3rem; border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  margin:0 0 2rem;
}
.callout p:last-child{ margin-bottom:0; }
.callout p{ font-size:.94rem; color:var(--ink-2); }

/* Course cards on the teaching index */
.course-card{ display:block; color:inherit; }
.course-card:hover{ text-decoration:none; }
.course-card .term{
  font-size:.75rem; letter-spacing:.09em; text-transform:uppercase;
  color:var(--accent); font-weight:600; margin-bottom:.5rem; display:block;
}
.course-card h3{ margin-bottom:.4rem; }
.course-card .arrow{ font-size:.9rem; color:var(--accent); margin-top:1rem; display:inline-block; }

/* ==========================================================================
   Photo gallery
   ========================================================================== */
.gallery{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem; }
.gallery figure{ margin:0; }
.gallery .shot{
  aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden;
  background:linear-gradient(150deg,var(--sage) 0%, var(--sky) 55%, var(--blush) 100%);
  border:1px solid var(--line); cursor:zoom-in;
  display:grid; place-items:center; text-align:center; padding:1rem;
  color:var(--muted-2); font-size:.82rem;
  transition:transform .2s ease, box-shadow .2s ease;
}
.gallery .shot img{ width:100%; height:100%; object-fit:cover; display:block; }
.gallery figure:hover .shot{ transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.gallery figcaption{ font-size:.85rem; color:var(--muted); margin-top:.55rem; }
.gallery .shot-empty{ border-style:dashed; border-color:var(--sage-deep); background:var(--bg-tint); cursor:default; }
.gallery figure:hover .shot-empty{ transform:none; box-shadow:none; }
.gallery .wide{ grid-column:span 2; }
@media (max-width:620px){ .gallery .wide{ grid-column:span 1; } }

/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index:100; display:none;
  background:rgba(22,25,29,.9); padding:clamp(1rem,4vw,3rem);
  align-items:center; justify-content:center;
}
.lightbox[open], .lightbox.on{ display:flex; }
.lightbox img{ max-width:100%; max-height:82vh; border-radius:var(--radius-sm); box-shadow:0 20px 60px -20px rgba(0,0,0,.6); }
.lightbox figcaption{ color:#e8eaec; font-size:.9rem; text-align:center; margin-top:1rem; }
.lightbox-close{
  position:absolute; top:1.2rem; right:1.4rem; width:40px; height:40px;
  border-radius:50%; border:0; background:rgba(255,255,255,.14); color:#fff;
  font-size:1.3rem; line-height:1; cursor:pointer;
}
.lightbox-close:hover{ background:rgba(255,255,255,.26); }

/* ==========================================================================
   Prospective-student gate
   ========================================================================== */
.steps{ list-style:none; counter-reset:step; padding:0; margin:0; }
.steps > li{
  counter-increment:step; position:relative;
  padding:0 0 1.6rem 3.2rem; margin:0;
}
.steps > li::before{
  content:counter(step);
  position:absolute; left:0; top:-.1rem;
  width:30px; height:30px; border-radius:50%;
  background:#fff; border:1px solid var(--sage-deep); color:var(--accent);
  font-family:var(--serif); font-size:.95rem;
  display:grid; place-items:center;
}
.steps > li::after{
  content:""; position:absolute; left:15px; top:34px; bottom:.4rem;
  width:1px; background:var(--sage-deep);
}
.steps > li:last-child{ padding-bottom:0; }
.steps > li:last-child::after{ display:none; }
.steps h4{ margin-bottom:.3rem; }
.steps p:last-child{ margin-bottom:0; }

.code-chip{ margin:.7rem 0 .4rem; }
.code-chip code{
  display:inline-block; font-size:1.05rem; letter-spacing:.06em; font-weight:600;
  background:#fff; border:1px solid var(--sage-deep); color:var(--accent);
  padding:.45rem 1rem; border-radius:8px;
}

.form-slot{
  margin-top:2rem; border:1px dashed var(--sage-deep); border-radius:var(--radius);
  background:#fff; padding:2.5rem 1.5rem; text-align:center; color:var(--muted);
}
.form-slot .ph-title{ font-family:var(--serif); font-size:1.05rem; color:var(--ink-2); margin-bottom:.5rem; }
.form-slot code{ font-size:.8rem; background:var(--bg-tint); border:1px solid var(--line); padding:.1rem .35rem; border-radius:5px; }
.form-embed{ width:100%; min-height:900px; border:0; margin-top:2rem; border-radius:var(--radius); background:#fff; }

/* ==========================================================================
   Publications: controls, grouping, topic notes
   ========================================================================== */
.controls{ margin-bottom:2.2rem; }
.control-row{ display:flex; align-items:center; flex-wrap:wrap; gap:.6rem .9rem; margin-bottom:.75rem; }
.control-row:last-child{ margin-bottom:0; }
.control-label{
  font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted-2); min-width:62px;
}
.control-row .filters{ margin-bottom:0; }

.segmented{ display:inline-flex; background:var(--line-soft); border-radius:999px; padding:3px; gap:2px; }
.seg{
  font-family:inherit; font-size:.86rem; padding:.35rem .95rem;
  border:0; border-radius:999px; background:transparent; color:var(--ink-2); cursor:pointer;
}
.seg:hover{ color:var(--accent); }
.seg[aria-pressed="true"]{ background:#fff; color:var(--accent); font-weight:550; box-shadow:0 1px 3px rgba(22,25,29,.10); }

.pub-topic-note{
  font-size:.86rem; color:var(--muted); margin:-.5rem 0 .6rem; max-width:62ch; font-style:italic;
}
.no-results{ color:var(--muted); font-size:.95rem; padding:2rem 0; }

/* ==========================================================================
   Research page: justified copy, key-paper dropdowns, posters, funder logos
   ========================================================================== */

/* Justified body copy with hyphenation so the ragged edge doesn't become rivers */
.project-head p,
.project-body > .prose,
.lede.justify{
  text-align:justify;
  text-justify:inter-word;
  hyphens:auto;
  -webkit-hyphens:auto;
}
/* Justification looks bad in narrow columns — turn it off on small screens */
@media (max-width:560px){
  .project-head p,
  .project-body > .prose,
  .lede.justify{ text-align:left; hyphens:manual; }
}

/* Key papers dropdown */
.keypapers{
  margin-top:1.4rem; border-top:1px solid var(--line-soft); padding-top:.35rem;
}
.keypapers > summary{
  display:flex; align-items:center; gap:.55rem;
  cursor:pointer; list-style:none; padding:.65rem 0;
  font-size:.9rem; font-weight:550; color:var(--accent);
}
.keypapers > summary::-webkit-details-marker{ display:none; }
.keypapers > summary::before{
  content:""; width:0; height:0; flex:none;
  border-left:5px solid currentColor; border-top:4px solid transparent; border-bottom:4px solid transparent;
  transition:transform .18s ease; transform-origin:25% 50%;
}
.keypapers[open] > summary::before{ transform:rotate(90deg); }
.keypapers > summary:hover{ color:var(--accent-2); }
.keypapers .count{
  font-size:.74rem; font-weight:600; color:var(--muted);
  background:var(--line-soft); border-radius:999px; padding:.1rem .48rem;
}
.keypapers .pub-list{ padding-top:.2rem; }
.keypapers .pub{ font-size:.9rem; padding:.75rem 0; }
.keypapers .pub .a{ font-size:.84rem; }
.keypapers .pub .v{ font-size:.8rem; }

/* Poster or slide deck, as an alternative to a video in a media slot.
   Every media box is 16:9 so a video and a poster sit side by side cleanly. */
.poster{
  display:grid; place-items:center; position:relative; overflow:hidden;
  aspect-ratio:16/9; padding:0;
  border:1px solid var(--line); border-radius:var(--radius-sm);
  background:var(--bg-tint); cursor:pointer;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
/* Landscape poster: show the whole thing. */
.poster img{
  max-width:100%; max-height:100%; width:auto; height:auto;
  object-fit:contain; display:block;
}
/* Portrait poster: fill the box from the top, where the title and lead figure
   are. The full page is one click away. */
.poster.poster-tall img{
  width:100%; height:100%; max-width:none; max-height:none;
  object-fit:cover; object-position:top center;
}
.poster::after{
  content:attr(data-open); position:absolute; inset:0;
  display:grid; place-items:center;
  background:rgba(31,92,72,.82); color:#fff;
  font-size:.9rem; font-weight:550; letter-spacing:.02em;
  opacity:0; transition:opacity .18s ease;
}
.poster:hover::after,
.poster:focus-visible::after{ opacity:1; }
.poster:hover{ border-color:var(--sage-deep); box-shadow:var(--shadow-lift); transform:translateY(-2px); }
.poster:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
.poster.embed-empty{ cursor:default; }
.poster.embed-empty::after{ display:none; }
.poster-noimg{ display:block; padding:3rem 1rem; text-align:center; color:var(--muted); font-size:.9rem; line-height:1.65; }

/* Link / podcast card used when the media is just a URL */
.linkcard{
  display:flex; align-items:center; gap:1rem;
  background:var(--gold-soft); border:1px solid #eee0c6; border-radius:var(--radius-sm);
  padding:1.15rem 1.3rem; color:inherit; text-decoration:none;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.linkcard:hover{ text-decoration:none; transform:translateY(-2px); box-shadow:var(--shadow); border-color:var(--gold); }
.lc-icon{
  width:42px; height:42px; flex:none; border-radius:11px; background:#fff;
  display:grid; place-items:center; color:var(--gold); border:1px solid #eee0c6;
}
.lc-body{ flex:1; min-width:0; }
.lc-body b{ display:block; font-size:.97rem; font-weight:550; color:var(--ink); margin-bottom:.15rem; }
.lc-body span{ display:block; font-size:.86rem; color:var(--muted); }
.lc-go{ flex:none; font-size:.86rem; font-weight:550; color:var(--gold); white-space:nowrap; }
@media (max-width:520px){
  .linkcard{ flex-wrap:wrap; }
  .lc-go{ width:100%; }
}

/* Media strip layouts. Fixed tracks, not auto-fit: auto-fit collapses empty
   tracks, so a single item would stretch across the whole row. */
.media-strip.one{ grid-template-columns:minmax(0,760px); justify-content:center; }
.media-strip.two{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.media-strip.three{ grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:820px){ .media-strip.three{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px){
  .media-strip.two,
  .media-strip.three{ grid-template-columns:1fr; }
}
.media-item .m-meta{ display:block; font-size:.78rem; color:var(--muted-2); margin-top:.3rem; }
.audio-file{ width:100%; }

/* Funder acknowledgement strip */
.funding-strip{
  display:flex; align-items:center; flex-wrap:wrap; gap:.9rem 1.6rem;
  margin-top:1.5rem; padding-top:1.2rem; border-top:1px solid var(--line-soft);
}
.funding-strip .fund-label{
  font-size:.7rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted-2); flex:none;
}
.funding-strip img{
  height:36px; width:auto; object-fit:contain;
  filter:grayscale(1); opacity:.72; transition:filter .2s ease, opacity .2s ease;
}
.funding-strip a:hover img{ filter:grayscale(0); opacity:1; }
.funding-strip .fund-empty{
  font-size:.78rem; color:var(--muted-2);
  border:1px dashed var(--sage-deep); border-radius:7px;
  padding:.5rem .8rem; background:var(--bg-tint);
}
.funding-strip .fund-empty code{ font-size:.72rem; background:#fff; padding:.05rem .3rem; border-radius:4px; border:1px solid var(--line); }

/* ==========================================================================
   Publications: collapsible year / topic groups
   ========================================================================== */
.pub-group{ border-bottom:1px solid var(--line-soft); }
.pub-group > summary{
  display:flex; align-items:center; gap:.7rem;
  cursor:pointer; list-style:none;
  padding:.95rem 0;
  font-family:var(--serif); font-size:1.28rem; color:var(--accent);
  transition:color .15s ease;
}
.pub-group > summary::-webkit-details-marker{ display:none; }
.pub-group > summary::after{
  content:""; flex:none; margin-left:auto;
  width:8px; height:8px; margin-right:.3rem;
  border-right:1.5px solid var(--muted-2); border-bottom:1.5px solid var(--muted-2);
  transform:rotate(45deg) translate(-2px,-2px);
  transition:transform .2s ease, border-color .15s ease;
}
.pub-group[open] > summary::after{ transform:rotate(-135deg) translate(-3px,-3px); }
.pub-group > summary:hover{ color:var(--accent-2); }
.pub-group > summary:hover::after{ border-color:var(--accent); }
.pub-group > summary:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }
.pub-group .g-name{ line-height:1.2; }
.pub-group .g-count{
  font-family:var(--sans); font-size:.74rem; font-weight:600;
  color:var(--muted); background:var(--line-soft);
  border-radius:999px; padding:.14rem .55rem;
  font-variant-numeric:tabular-nums;
}
.pub-group[open] > summary .g-count{ background:var(--sage); color:var(--accent); }
.pub-group-body{ padding:0 0 1.1rem; }
.pub-group-body .pub-list{ border-top:1px solid var(--line-soft); padding-top:.2rem; }
.pub-group-body .pub:first-child{ border-top:0; }
.pub-group .pub-topic-note{ margin:.1rem 0 .9rem; }

/* Expand / collapse all */
.control-row-end{ justify-content:flex-end; margin:-.4rem 0 .6rem; }
.linkbtn{
  font-family:inherit; font-size:.84rem; color:var(--accent);
  background:none; border:0; padding:.25rem .1rem; cursor:pointer;
}
.linkbtn:hover{ color:var(--accent-2); text-decoration:underline; text-underline-offset:3px; }

@media print{
  .pub-group-body{ display:block !important; }
  .pub-group > summary::after{ display:none; }
}

/* Assignment list on course pages */
ol.assignments{ list-style:none; counter-reset:asg; padding:0; margin:1.2rem 0 0; }
ol.assignments > li{
  counter-increment:asg; position:relative;
  padding:0 0 1.4rem 2.6rem; margin:0;
}
ol.assignments > li::before{
  content:"A" counter(asg);
  position:absolute; left:0; top:.05rem;
  font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.03em;
  color:var(--accent); background:var(--sage); border:1px solid var(--sage-deep);
  border-radius:6px; padding:.15rem .4rem;
}
ol.assignments b{ display:block; font-weight:550; color:var(--ink); margin-bottom:.15rem; }
ol.assignments .dates{ display:block; font-size:.8rem; color:var(--muted-2); margin-bottom:.45rem; }
ol.assignments p{ margin-bottom:0; color:var(--muted); }

/* Two-column schedule (week + topics, no dates) */
table.schedule.cols2 td:nth-child(2),
table.schedule.cols2 th:nth-child(2){
  width:auto; white-space:normal; color:var(--ink-2); font-size:.94rem;
}
table.schedule.cols2 td:first-child,
table.schedule.cols2 th:first-child{ width:96px; }

/* Obfuscated email on the contact page */
.email-plain{
  font-family:var(--sans); font-size:1rem; color:var(--ink);
  background:var(--sage); border:1px solid var(--sage-deep);
  border-radius:8px; padding:.4rem .7rem; display:inline-block;
  letter-spacing:.01em;
}
.email-copy{
  font-family:inherit; font-size:.82rem; color:var(--accent);
  background:none; border:0; padding:.3rem .2rem; cursor:pointer; margin-left:.3rem;
}
.email-copy:hover{ text-decoration:underline; text-underline-offset:3px; }
.email-note{ font-size:.8rem; color:var(--muted-2); margin-top:.4rem; }

/* A YouTube playlist has no thumbnail of its own, so label the facade */
.embed.is-playlist-facade::after{
  content:"Playlist"; position:absolute; left:.7rem; top:.7rem; z-index:3;
  pointer-events:none; line-height:1;
  font-size:.68rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  background:rgba(255,255,255,.94); color:var(--accent);
  padding:.28rem .5rem; border-radius:5px; border:1px solid var(--sage-deep);
}

/* People grids: fixed tracks so a single card stays card-sized instead of
   stretching across the whole row (auto-fit collapses empty tracks). */
.grid-people{ grid-template-columns:repeat(4,minmax(0,1fr)); align-items:start; }
@media (max-width:1000px){ .grid-people{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px){  .grid-people{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:430px){  .grid-people{ grid-template-columns:1fr; } }

/* Separate the director's link row so it doesn't read as one run-on phrase */
.person .links{ align-items:baseline; }
.person .links a + a{ position:relative; }
.person .links a + a::before{
  content:"·"; position:absolute; left:-.62rem; color:var(--muted-2); pointer-events:none;
}

/* Podcast card with episode artwork */
.linkcard.has-art{ padding:0; overflow:hidden; align-items:stretch; gap:0; }
.lc-art{
  position:relative; flex:none; width:132px; align-self:stretch;
  background:var(--gold-soft); display:grid; place-items:center; overflow:hidden;
}
.lc-art img{ width:100%; height:100%; object-fit:cover; display:block; }
.lc-art-icon{ display:none; color:var(--gold); }
.lc-art.lc-art-failed img{ display:none; }
.lc-art.lc-art-failed .lc-art-icon{ display:block; }
.linkcard.has-art .lc-body{ padding:1.15rem 0 1.15rem 1.25rem; }
.linkcard.has-art .lc-go{ padding:1.15rem 1.3rem 1.15rem 1rem; align-self:center; }
@media (max-width:520px){
  .linkcard.has-art{ display:block; }
  .lc-art{ width:100%; height:150px; }
  .linkcard.has-art .lc-body{ padding:1.1rem 1.2rem .3rem; }
  .linkcard.has-art .lc-go{ padding:0 1.2rem 1.1rem; display:block; }
}

/* Inline Slides / Video links on the invited-talks list */
.talk-links{ white-space:nowrap; }
.talk-link{
  display:inline-block; font-size:.78rem; font-weight:550; letter-spacing:.02em;
  color:var(--accent); background:var(--sage); border:1px solid var(--sage-deep);
  border-radius:999px; padding:.1rem .55rem; margin-left:.4rem; vertical-align:1px;
}
.talk-link:hover{ background:var(--sage-deep); text-decoration:none; }

/* ---- prospective-student form call-to-action (contact.html) -------------- */
.form-cta{
  display:flex; align-items:center; justify-content:space-between; gap:1.6rem;
  flex-wrap:wrap;
  margin-top:2.2rem; padding:1.9rem 2rem;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:0 10px 30px -22px rgba(20,40,34,.5);
}
.form-cta-body{ flex:1 1 22rem; min-width:0; }
.form-cta h3{ margin-bottom:.5rem; }
.form-cta p{ margin-bottom:.5rem; }
.form-cta p:last-child{ margin-bottom:0; }
.form-cta .btn{ flex:0 0 auto; }
@media (max-width:600px){
  .form-cta{ padding:1.5rem 1.3rem; }
  .form-cta .btn{ width:100%; justify-content:center; }
}

/* A lone collaborator card should not stretch the full column width. */
.collab-solo{ max-width:52rem; }

/* ---- project index on research.html ------------------------------------- */
.proj-index{ display:grid; gap:.9rem; grid-template-columns:repeat(3,minmax(0,1fr)); }
.proj-index a{
  display:flex; flex-direction:column; gap:.3rem;
  padding:1rem 1.15rem 1.05rem;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  color:var(--ink); text-decoration:none;
  border-top:3px solid var(--sage-deep);
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.proj-index a:hover{
  text-decoration:none; transform:translateY(-2px);
  border-color:var(--sage-deep); box-shadow:var(--shadow);
}
.proj-index .pi-eyebrow{
  font-size:.68rem; letter-spacing:.09em; text-transform:uppercase;
  font-weight:600; color:var(--muted-2);
}
.proj-index .pi-title{ font-family:var(--serif); font-size:1.02rem; line-height:1.3; }
.proj-index a.tint-sage { border-top-color:#c9dcd2; }
.proj-index a.tint-sky  { border-top-color:#c6d3e6; }
.proj-index a.tint-blush{ border-top-color:#eddac6; }
.proj-index a.tint-lilac{ border-top-color:#d2cfe6; }
.proj-index a.tint-mint { border-top-color:#c8e0d9; }
@media (max-width:900px){ .proj-index{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .proj-index{ grid-template-columns:1fr; } }

/* ---- back-to-top link, one per project on research.html ------------------ */
/* Pinned to the top-right of each project card, so it is reachable from any
   project without scrolling. Falls back into the flow on narrow screens. */
.project{ position:relative; }
.to-top{
  display:inline-flex; align-items:center; gap:.35rem;
  margin-top:1.4rem;
  font-size:.78rem; letter-spacing:.03em; font-weight:550;
  color:var(--muted-2); text-decoration:none;
}
.to-top:hover{ color:var(--accent); text-decoration:none; }
.to-top span{ font-size:.9rem; line-height:1; }

@media (min-width:760px){
  .project-head{ padding-right:7.5rem; }
  .to-top{
    position:absolute; top:1.5rem; right:1.4rem;
    margin-top:0; white-space:nowrap;
    padding:.38rem .78rem;
    background:rgba(255,255,255,.75);
    border:1px solid var(--line); border-radius:999px;
    backdrop-filter:saturate(140%) blur(2px);
    transition:border-color .15s ease, color .15s ease, background .15s ease;
  }
  .to-top:hover{ border-color:var(--sage-deep); background:#fff; }
}

/* Extra links under a media item (e.g. a project's own site). */
.m-links{ display:block; margin-top:.45rem; }
.m-links .m-link{
  display:inline-block; margin-right:1rem;
  font-size:.82rem; font-weight:550; color:var(--accent);
  text-decoration:none;
}
.m-links .m-link:hover{ text-decoration:underline; text-underline-offset:3px; }

/* ---- featured band on the home page ------------------------------------- */
.feat-band{ padding-block:clamp(2.2rem,5vw,3.2rem); }
.feat{
  position:relative;
  padding:clamp(1.5rem,3.5vw,2.1rem) clamp(1.4rem,3.5vw,2.2rem);
  background:linear-gradient(150deg, var(--sky) 0%, var(--sage) 70%, var(--mint) 100%);
  border:1px solid var(--sage-deep);
  border-radius:var(--radius);
}
.feat .eyebrow{ margin-bottom:.55rem; }
.feat-hook{
  font-family:var(--serif); font-size:clamp(1.02rem,2vw,1.18rem);
  color:var(--accent); margin-bottom:.85rem; max-width:52ch;
}
.feat h2{ font-size:clamp(1.5rem,3vw,1.9rem); margin-bottom:.55rem; }
.feat p.small{ color:var(--ink-2); max-width:68ch; margin-bottom:0; }
.feat-actions{
  display:flex; flex-wrap:wrap; align-items:center; gap:.85rem 1.4rem;
  margin-top:1.4rem;
}
.feat-more{
  font-size:.86rem; font-weight:550; color:var(--accent); text-decoration:none;
}
.feat-more:hover{ text-decoration:underline; text-underline-offset:3px; }
@media (max-width:520px){
  .feat-actions .btn{ width:100%; justify-content:center; }
}

/* ---- clickable podcast and press cards on media.html -------------------- */
a.audio-card{
  text-decoration:none; color:inherit; border:1px solid transparent;
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
a.audio-card:hover{
  text-decoration:none; transform:translateY(-2px);
  border-color:var(--sage-deep); box-shadow:var(--shadow);
}
.audio-go{ margin-left:auto; color:var(--accent); font-weight:600; flex:0 0 auto; }

a.card-link{
  display:block; text-decoration:none; color:inherit;
}
a.card-link:hover{ text-decoration:none; }
a.card-link h3{ color:var(--ink); }
.card-go{
  display:inline-block; margin-top:.8rem;
  font-size:.82rem; font-weight:550; color:var(--accent);
}
a.card-link:hover .card-go{ text-decoration:underline; text-underline-offset:3px; }
