/* PUBLICATIONS PAGE */
.pub-timeline{position:relative;max-width:960px;margin:0 auto;padding:8px 0}
.pub-timeline::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%);background:linear-gradient(180deg,rgba(177,17,53,0),var(--crimson) 6%,var(--crimson) 94%,rgba(177,17,53,0))}
.tl-year{position:relative;text-align:center;margin:6px 0 30px;z-index:3}
.tl-year span{display:inline-block;font-family:'Cormorant Garamond';font-weight:700;font-size:var(--fs-body-lg);color:#fff;background:var(--crimson);padding:6px 22px;border-radius:var(--r-pill);box-shadow:0 10px 26px -12px rgba(177,17,53,.7)}
.tl-item{position:relative;width:50%;padding:0 44px 40px;box-sizing:border-box;opacity:0;transform:translateY(30px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.tl-item.in{opacity:1;transform:none}
.tl-item.left{left:0;text-align:right}
.tl-item.right{left:50%}
.tl-item::after{content:"";position:absolute;top:26px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--crimson);box-shadow:0 0 0 5px rgba(177,17,53,.12);z-index:2}
.tl-item.left::after{right:-8px}
.tl-item.right::after{left:-8px}
.tl-item::before{content:"";position:absolute;top:33px;width:32px;height:2px;background:var(--crimson);opacity:.4}
.tl-item.left::before{right:0}
.tl-item.right::before{left:0}
.tl-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:26px 28px;box-shadow:0 22px 50px -38px rgba(0,0,0,.5);text-align:left;overflow:hidden}
.tl-fig{margin:-26px -28px 20px;height:180px;overflow:hidden;border-radius:var(--r-md) var(--r-md) 0 0;background:#0a1a30;border-bottom:1px solid var(--line);position:relative}
.tl-fig img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.tl-fig.chem{background:#fff}
.tl-fig.chem img{object-fit:contain;padding:14px}
.tl-fig figcaption{position:absolute;left:0;right:0;bottom:0;font-size:var(--fs-label);letter-spacing:.03em;color:#fff;background:linear-gradient(180deg,rgba(6,16,31,0),rgba(6,16,31,.82));padding:20px 14px 7px;font-weight:500}
.tl-fig.chem figcaption{color:#14171c;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.92));text-shadow:0 1px 2px #fff}
.tl-type{display:inline-block;font-size:var(--fs-label);letter-spacing:.13em;text-transform:uppercase;color:var(--crimson);font-weight:600;padding:4px 11px;border:1px solid rgba(177,17,53,.3);border-radius:var(--r-pill);margin-bottom:12px}
.tl-card h3{font-size:var(--fs-body-lg);margin-bottom:10px;color:var(--ink);line-height:1.24}
.tl-card .authors{font-size:var(--fs-caption);color:var(--ink-2);font-weight:300;margin-bottom:8px}
.tl-card .venue{font-size:var(--fs-caption);color:var(--gray);font-style:italic;margin-bottom:14px}
.tl-card .abs{font-size:var(--fs-caption);color:var(--ink-2);font-weight:300;line-height:1.6}
.tl-card .links,.pub-card .links{margin-top:18px;gap:16px;flex-wrap:wrap;display:flex}
.plink{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-caption);font-weight:600;color:var(--crimson);border:1px solid var(--crimson);padding:8px 15px;border-radius:var(--r-sm);transition:var(--dur-fast)}
.plink:hover{background:var(--crimson);color:#fff}
.plink.ghost{color:var(--ink-2);border-color:rgba(0,0,0,.2)}
.plink.ghost:hover{background:var(--ink);color:#fff}
.pub-note{margin-top:44px;font-size:var(--fs-caption);color:var(--gray);font-weight:300;text-align:center}
.pub-note a{color:var(--crimson);font-weight:500}

/* PUBLICATIONS — grid layout variant: standard .grid-2/.card grid instead of the zigzag timeline */
.pub-groups .section-divider:first-child{margin-top:0}
.pub-grid{margin-top:var(--space-2)}
.pub-card{overflow:hidden}
.pub-card .tl-fig{margin:calc(var(--space-card-pad) * -1) calc(var(--space-card-pad) * -1) 20px}

@media(prefers-reduced-motion:reduce){.tl-item{opacity:1;transform:none}}
@media(max-width:768px){
  .pub-timeline::before{left:20px}
  .tl-year{text-align:left}
  .tl-item,.tl-item.left,.tl-item.right{width:100%;left:0;text-align:left;padding:0 0 34px 52px}
  .tl-item.left::after,.tl-item.right::after{left:12px;right:auto}
  .tl-item.left::before,.tl-item.right::before{left:20px;right:auto;width:24px}
}
