/* ==========================================================================
   Landau Lab: Watch library, homepage Watch shelf, theme-page Watch buttons,
   and the dated "Latest" stream. Loaded after site.css / theme.css (inner
   pages) or home-c.css (homepage). Generated markup comes from
   work/media/build_media.py and work/news/build_news.py.
   ========================================================================== */

/* ---------- media cards (light pages) ---------- */
.libgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,1.8vw,1.35rem)}
.libgrid > li{display:flex;min-width:0}
.mcard{display:flex;flex-direction:column;width:100%;border-radius:8px;overflow:hidden;background:var(--card);border:1px solid var(--line);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.mcard:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(20,30,30,.10);border-color:var(--line-strong)}
.mthumb{position:relative;display:block;aspect-ratio:16/9;background:#0d1a1c;overflow:hidden}
.mthumb img,.mthumb video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mthumb video{opacity:0;transition:opacity .5s ease}
.mthumb video.on{opacity:1}
.mthumb .rt{position:absolute;right:.55rem;bottom:.5rem;font-family:var(--mono);font-size:.7rem;color:#fff;background:rgba(0,0,0,.58);padding:.12rem .4rem;border-radius:3px;line-height:1.4}
.mthumb .pl{position:absolute;left:.7rem;bottom:.6rem;width:34px;height:34px;border-radius:50%;background:rgba(245,242,236,.92);color:var(--accent-deep);display:grid;place-items:center;transition:background .2s ease,color .2s ease}
.mthumb .pl svg{width:11px;height:12px;margin-left:2px}
.mcard:hover .pl,.wrow:hover .pl{background:var(--accent);color:#fff}
.mbody{display:flex;flex-direction:column;gap:.1rem;padding:.9rem 1rem 1.05rem;flex:1;min-width:0}
.mtag{font-family:var(--mono);font-size:.62rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.mtag.teach{color:#8a6a35}
.mtitle{font-family:var(--serif);font-size:1.2rem;line-height:1.25;margin:.3rem 0 .3rem;color:var(--ink)}
.mdesc{font-size:.88rem;color:var(--muted);line-height:1.52}
.mmeta{display:flex;flex-wrap:wrap;gap:.2rem .7rem;margin-top:.6rem;font-family:var(--mono);font-size:.66rem;color:var(--muted);letter-spacing:.03em}
.mmeta span + span::before{content:"· ";color:var(--line-strong)}
.msrc{margin-top:.45rem;font-size:.78rem;color:var(--muted);line-height:1.45}
.mgo{margin-top:auto;padding-top:.8rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;color:var(--accent-deep)}
.mpill{display:inline-block;font-family:var(--mono);font-size:.56rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#7d5f2f;border:1px solid var(--sand-line);border-radius:999px;padding:.06rem .42rem;margin-left:.5rem;vertical-align:.25em}
@media (max-width:960px){.libgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.libgrid{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.mcard,.mthumb video{transition:none}.mcard:hover{transform:none}}

/* ---------- Watch page ---------- */
.whead{border-bottom:1px solid var(--line)}
.whead .wrap{padding-block:clamp(3rem,7vw,5rem) clamp(2rem,4vw,2.8rem)}
.whead h1{font-size:clamp(2.4rem,1.7rem + 3.2vw,4.3rem);letter-spacing:-.022em;margin-top:1.3rem}
.whead h1 em{font-style:italic;font-weight:300;color:var(--accent-deep)}
.whead .lede{margin-top:1.3rem;font-family:var(--serif);font-weight:300;font-size:clamp(1.15rem,1.02rem + .62vw,1.45rem);line-height:1.5;color:var(--ink-soft);max-width:40ch}
.wjump{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem}
.wjump a{font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;border:1px solid var(--line-strong);background:var(--card);color:var(--ink-soft);border-radius:999px;padding:.42rem .9rem;transition:border-color .2s ease,background .2s ease}
.wjump a:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}

.wfeature{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:clamp(1.4rem,3vw,2.6rem);padding-block:clamp(2.2rem,4.5vw,3.4rem);align-items:start}
.wplayer{position:relative;display:block;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#000;border:1px solid var(--line)}
.wplayer img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.22,1,.36,1)}
.wplayer:hover img{transform:scale(1.02)}
.wplayer .big{position:absolute;inset:0;display:grid;place-items:center}
.wplayer .big > span{width:72px;height:72px;border-radius:50%;background:rgba(245,242,236,.95);color:var(--accent-deep);display:grid;place-items:center;box-shadow:0 8px 30px rgba(0,0,0,.22);transition:background .2s ease,color .2s ease}
.wplayer:hover .big > span{background:var(--accent);color:#fff}
.wplayer .big svg{width:20px;height:22px;margin-left:4px}
.wplayer .rt{position:absolute;right:.7rem;bottom:.6rem;font-family:var(--mono);font-size:.74rem;color:#fff;background:rgba(0,0,0,.58);padding:.15rem .45rem;border-radius:3px}
.wside h2{font-size:clamp(1.6rem,1.3rem + 1.1vw,2.1rem);line-height:1.15;margin-top:.5rem}
.wsum{margin-top:.8rem;color:var(--ink-soft);line-height:1.6}
.wchap-k{margin-top:1.3rem;font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.wchap{list-style:none;padding:0;margin:.5rem 0 0;border-top:1px solid var(--line)}
.wchap a{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.93rem;color:var(--ink-soft);transition:color .2s ease}
.wchap a:hover{color:var(--accent-deep)}
.wchap .t{font-family:var(--mono);font-size:.78rem;color:var(--accent)}
.wfacts{display:grid;gap:.35rem;margin:1.1rem 0 0}
.wfacts > div{display:grid;grid-template-columns:5.4rem 1fr;gap:.8rem;align-items:baseline}
.wfacts dt{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.wfacts dd{margin:0;font-size:.88rem;color:var(--ink-soft)}
.wfacts a{border-bottom:1px solid var(--accent-line)}
.wplay-note{margin-top:1rem;font-size:.82rem;color:var(--muted)}
.wgroup{padding-bottom:clamp(2.6rem,5vw,3.6rem)}
.sect{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.4rem 2rem;border-top:1px solid var(--line);padding-top:1.6rem;margin-bottom:1.3rem}
.sect h2{font-size:clamp(1.45rem,1.25rem + .8vw,1.8rem)}
.sect p{color:var(--muted);font-size:.92rem;max-width:44ch}
.promise{background:var(--paper-2);border:1px solid var(--line);border-radius:8px;padding:1.3rem 1.5rem;margin-bottom:clamp(3rem,6vw,4.5rem);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}
.promise h3{font-size:1.06rem;margin-bottom:.3rem}
.promise p{font-size:.87rem;color:var(--muted);line-height:1.55}
@media (max-width:860px){.wfeature,.promise{grid-template-columns:minmax(0,1fr)}}

/* ---------- theme pages: Watch buttons (text stays first) ---------- */
.wdoors{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .7rem;margin-top:1.6rem}
.wd-k{flex-basis:100%;font-family:var(--mono);font-size:.64rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.wd{display:inline-flex;align-items:center;gap:.65rem;border-radius:999px;padding:.42rem 1.05rem .42rem .42rem;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);
  max-width:100%;transition:border-color .2s ease,background .2s ease,color .2s ease}
.wd:hover{border-color:var(--accent);background:var(--accent-soft)}
.wd .ic{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--accent-line);color:var(--accent-deep)}
.wd .ic svg{width:9px;height:10px;margin-left:2px}
.wd-txt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.wd-t{font-size:.92rem;font-weight:500}
.wd small{font-family:var(--mono);font-size:.64rem;letter-spacing:.03em;color:var(--muted);margin-top:.1rem}
.wd-1{background:var(--accent);border-color:var(--accent);color:#fff}
.wd-1 .ic{background:#fff;border-color:#fff;color:var(--accent-deep)}
.wd-1 small{color:rgba(255,255,255,.78)}
.wd-1:hover{background:var(--accent-deep);border-color:var(--accent-deep)}
.wd-all{font-family:var(--mono);font-size:.7rem;letter-spacing:.05em;color:var(--accent-deep);border-bottom:1px solid var(--accent-line);margin-left:.3rem}
.wd-all:hover{border-bottom-color:var(--accent)}
@media (max-width:560px){.wd{border-radius:14px}.wd-all{margin-left:0;flex-basis:100%}}

/* ---------- homepage stop 04: Watch shelf (dark chapter) ---------- */
.wshelf{margin-top:clamp(2.6rem,5vw,3.6rem);padding-top:clamp(1.8rem,3.5vw,2.4rem);border-top:1px solid var(--on-dk-line,rgba(245,242,236,.14))}
.wshelf-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem 2rem;margin-bottom:1.2rem}
.wshelf-t{color:var(--on-dk-2,#c9cec9);font-size:.92rem;max-width:52ch}
.wshelf-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.wshelf-list > li{display:flex;min-width:0}
.wrow{display:grid;grid-template-columns:168px minmax(0,1fr);gap:1rem;align-items:center;width:100%;background:rgba(245,242,236,.035);border:1px solid rgba(245,242,236,.13);border-radius:8px;overflow:hidden;
  transition:border-color .25s ease,background .25s ease}
.wrow:hover{border-color:rgba(210,174,114,.55);background:rgba(245,242,236,.06)}

.wrow .mthumb .pl{width:28px;height:28px;left:.5rem;bottom:.45rem}
.wrow .mthumb .rt{font-size:.62rem}
.wrow .mbody{padding:.7rem .9rem .75rem 0}
.wrow .mtag{color:#8fb3b8}
.wrow .mtag.teach{color:var(--sand-l,#d2ae72)}
.wrow .mtitle{font-size:1.06rem;margin:.2rem 0 .1rem;color:var(--on-dk,#f2efe7)}
.wrow .mtitle .arrow{color:var(--on-dk-3,#8c9894);font-family:var(--sans);font-size:.85rem}
.wrow .mmeta{margin-top:.25rem;color:var(--on-dk-3,#8c9894)}
.wrow .mmeta span + span::before{color:rgba(245,242,236,.25)}
.wrow .mpill{color:var(--sand-l,#d2ae72);border-color:rgba(210,174,114,.45)}
.allbtn{display:inline-flex;gap:.5rem;align-items:center;margin-top:1.4rem;font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;color:#10201f;background:var(--sand-l,#d2ae72);border-radius:999px;padding:.66rem 1.15rem;transition:background .2s ease}
.allbtn:hover{background:#e2c08a}
@media (max-width:760px){.wshelf-list{grid-template-columns:minmax(0,1fr)}.wrow{grid-template-columns:128px minmax(0,1fr);gap:.8rem}}

/* ---------- Latest stream (homepage block and /latest/) ---------- */
.nw-tags{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.35rem}
.nw-type{font-family:var(--mono);font-size:.56rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-deep);border:1px solid var(--accent-line);border-radius:999px;padding:.06rem .45rem;line-height:1.6}
.nw-type-grant{color:#7d5f2f;border-color:var(--sand-line)}
.nw-type-paper{color:#4f5d8a;border-color:rgba(79,93,138,.35)}
.nw-type-video{color:#5c4f7a;border-color:rgba(92,79,122,.35)}
.nw-type-event{color:#6b5a3a;border-color:rgba(107,90,58,.35)}
.nw-fresh{font-family:var(--mono);font-size:.56rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--accent);border-radius:3px;padding:.08rem .4rem;line-height:1.6}
.news-more{margin-top:1.2rem}
.news-more a{font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;color:var(--accent-deep);border-bottom:1px solid var(--accent-line)}
.news-more a:hover{border-bottom-color:var(--accent)}

.lt-wrap{padding-block:clamp(2.4rem,5vw,3.6rem) clamp(3rem,6vw,4.5rem)}
.lt-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.lt-filter{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.6rem}
.lt-chip{font:inherit;font-family:var(--mono);font-size:.7rem;letter-spacing:.05em;border:1px solid var(--line-strong);background:var(--card);color:var(--ink-soft);border-radius:999px;padding:.38rem .85rem;cursor:pointer;transition:border-color .2s ease,background .2s ease}
.lt-chip:hover{border-color:var(--accent)}
.lt-chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.lt-year{font-family:var(--mono);font-size:.74rem;font-weight:500;letter-spacing:.18em;color:var(--muted);margin:1.8rem 0 .6rem}
.lt-year:first-of-type{margin-top:0}
.lt .lt-list .nw{grid-template-columns:7.4rem minmax(0,1fr)}
.lt [hidden]{display:none!important}
.lt-side{position:sticky;top:104px;display:flex;flex-direction:column;gap:1.4rem}
.lt-card{background:var(--paper-2);border:1px solid var(--line);border-radius:8px;padding:1.3rem 1.4rem}
.lt-card h2{font-size:1.35rem;margin:.4rem 0 .6rem}
.lt-card p{font-size:.92rem;color:var(--ink-soft);line-height:1.6}
.lt-card .kicker,.pos-students .kicker{font-family:var(--mono);font-size:.64rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.pos-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.pos{padding:.8rem 0;border-bottom:1px solid var(--line)}
.pos-st{font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.pos-closed .pos-st{color:var(--muted)}
.pos-t{font-family:var(--serif);font-size:1.08rem;margin-top:.2rem}
.pos-d{font-size:.86rem;color:var(--muted)}
.pos-none{font-size:.92rem;color:var(--ink-soft)}
.pos-students{margin-top:1.2rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.pos-students p + p{margin-top:.4rem}
.pos-go a,.lt-card .go{font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;color:var(--accent-deep);border-bottom:1px solid var(--accent-line)}
.pos-go{margin-top:.7rem!important}
@media (max-width:900px){.lt-grid{grid-template-columns:minmax(0,1fr)}.lt-side{position:static}}
@media (max-width:640px){.lt .lt-list .nw{grid-template-columns:minmax(0,1fr);gap:.3rem}}

/* news rows on /latest/ (same look as homepage .news rows in home-c.css) */
.lt .news-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.lt .nw{display:grid;grid-template-columns:6.2rem minmax(0,1fr);gap:1rem;padding:1.05rem 0 1.1rem;border-bottom:1px solid var(--line)}
.lt .nw-when{font-family:var(--mono);font-size:.64rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);padding-top:.3rem}
.lt .nw-new{color:var(--sand)}
.lt .nw-title{font-family:var(--serif);font-size:1.12rem;line-height:1.32;color:var(--ink)}
.lt .nw-title a{border-bottom:1px solid var(--accent-line);transition:color .2s ease,border-color .2s ease}
.lt .nw-title a:hover{color:var(--accent-deep);border-bottom-color:var(--accent)}
.lt .nw-text{margin-top:.3rem;font-size:.9rem;line-height:1.55;color:var(--ink-soft);max-width:62ch}
.lt .nw-extra{margin-top:.5rem;font-size:.84rem;line-height:1.5;color:var(--muted)}
.lt .nw-extra b{font-family:var(--mono);font-size:.58rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#7d5f2f;border:1px solid var(--sand-line);border-radius:999px;padding:.08rem .45rem;margin-right:.5rem;vertical-align:.12em}
.lt .nw-extra a{color:var(--accent-deep);border-bottom:1px solid var(--accent-line)}
.nw-img{display:block;margin-top:.7rem;width:100%;max-width:26rem;height:auto;border-radius:6px;border:1px solid var(--line)}
@media (min-width:1100px){.libgrid.n4{grid-template-columns:repeat(4,minmax(0,1fr))}.libgrid.n4 .mtitle{font-size:1.1rem}}
.libgrid > li.ghost{border:1px dashed var(--line-strong);border-radius:8px;display:grid;place-items:center;min-height:200px;padding:1.4rem;text-align:center;color:var(--muted);font-size:.9rem;line-height:1.5}
@media (max-width:620px){.libgrid > li.ghost{min-height:0}}
.wrow .mthumb{width:auto;height:auto;aspect-ratio:16/9;align-self:center;margin:.55rem 0 .55rem .55rem;border-radius:5px}
@media (max-width:760px){.wrow{grid-template-columns:132px minmax(0,1fr)}}

/* ---------- Lab life: talks, posters, teaching, journal clubs (compact) ---------- */
.nw-type-lablife{color:var(--muted);border-color:var(--line-strong);border-style:dashed}
.lt .nw.nw-compact{padding:.7rem 0 .75rem}
.lt .nw.nw-compact .nw-title{font-size:1rem}
.lt .nw.nw-compact .nw-text{font-size:.84rem;color:var(--muted);margin-top:.15rem}
.lt .nw.nw-compact .nw-tags{margin-bottom:.2rem}
.nw-compact .nw-img{max-width:16rem}
.lablife{margin-top:1.3rem;padding:1rem 1.1rem;border:1px dashed var(--line-strong);border-radius:8px;background:var(--paper-2,#faf8f3)}
.ll-k{font-family:var(--mono);font-size:.6rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}
.ll-list{list-style:none;margin:0;padding:0}
.ll-list li{display:grid;grid-template-columns:6.2rem minmax(0,1fr);gap:1rem;padding:.35rem 0;font-size:.9rem;color:var(--ink-soft)}
.ll-list li + li{border-top:1px solid var(--line)}
.ll-when{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:.2rem}
.ll-t a{border-bottom:1px solid var(--accent-line)}
.news .lablife{grid-column:2}
@media (max-width:900px){.news .lablife{grid-column:auto}}
@media (max-width:640px){.ll-list li{grid-template-columns:minmax(0,1fr);gap:.1rem}}
.news .lablife{margin-top:calc(1.2rem - clamp(2rem,5vw,4.5rem))}@media (max-width:900px){.news .lablife{margin-top:0}}
.news .nw-img{max-width:15rem}
