/* =========================================================
   Sessions hub (sessions.html): editorial index of sessions
   ========================================================= */
.h-intro { padding: 120px 0 30px; }
.h-intro .h-sec { max-width: 760px; }

.h-index { padding: 40px 0 120px; }
.h-list { list-style: none; border-bottom: 1px solid var(--line); }
.h-row { position: relative; display: grid; grid-template-columns: 60px 1.4fr 1fr 110px 48px; align-items: center; gap: 24px; padding: 26px 0; border-top: 1px solid var(--line); }
.h-row .n { font-family: var(--serif); font-style: italic; font-size: 22px; color: var(--accent); }
.h-row .t { font-family: var(--serif); text-transform: uppercase; font-size: clamp(40px, 5vw, 78px); line-height: .95; color: transparent; -webkit-text-stroke: 1px #8a8a8a; transition: color .4s, -webkit-text-stroke-color .4s, transform .5s cubic-bezier(.2,.7,.2,1); }
.h-row .d { font-size: 14px; color: var(--muted); }
.h-row .from { font-size: 11px; text-transform: uppercase; letter-spacing: .12em; color: var(--dim); }
.h-row .from b { display: block; font-family: var(--serif); font-weight: 400; font-size: 26px; letter-spacing: 0; color: #fff; text-transform: none; }
.h-row .go { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; transition: background .3s, border-color .3s, transform .4s; }
.h-row .go svg { width: 16px; height: 16px; }
.h-row .thumb { display: none; }
.h-row:hover .t, .h-row.on .t { color: #fff; -webkit-text-stroke-color: transparent; transform: translateX(14px); }
.h-row:hover .go, .h-row.on .go { background: var(--accent); border-color: var(--accent); transform: rotate(-45deg); }

/* Floating preview that follows the cursor (desktop) */
.h-float { position: fixed; left: 0; top: 0; z-index: 40; width: 250px; aspect-ratio: 3/4; border-radius: 4px; overflow: hidden; pointer-events: none; opacity: 0; transform: translate(-50%, -50%) scale(.75) rotate(-5deg); transition: opacity .3s, transform .45s cubic-bezier(.2,.7,.2,1); box-shadow: 0 30px 60px rgba(0,0,0,.5); }
.h-float.show { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(-5deg); }
.h-float img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .35s; }
.h-float img.on { opacity: 1; }

@media (max-width: 1000px) {
  .h-row { grid-template-columns: 50px 1fr 110px 48px; }
  .h-row .d { grid-column: 2 / 4; grid-row: 2; }
}

@media (max-width: 700px) {
  .h-intro { padding: 80px 0 10px; }
  .h-index { padding: 20px 0 80px; }
  .h-float { display: none; }
  .h-row { grid-template-columns: 1fr 96px; grid-template-areas: "n thumb" "t thumb" "d thumb" "from thumb"; gap: 6px 16px; padding: 22px 0; }
  .h-row .n { grid-area: n; font-size: 18px; }
  .h-row .t { grid-area: t; font-size: 36px; }
  .h-row .d { grid-area: d; grid-column: auto; grid-row: auto; font-size: 13px; }
  .h-row .from { grid-area: from; margin-top: 6px; }
  .h-row .from b { display: inline; font-size: 20px; margin-left: 6px; }
  .h-row .go { display: none; }
  .h-row .thumb { display: block; grid-area: thumb; width: 96px; aspect-ratio: 3/4; object-fit: cover; border-radius: 4px; filter: grayscale(1) brightness(.6); transition: filter .5s; }
  .h-row.on .thumb { filter: none; }
  .h-row:hover .t, .h-row.on .t { transform: none; }
}
