/* ============================================================
   Hub pages (landing + student library) — sits on top of
   book.css / reader-en.css, reusing the altitude palette.
   ============================================================ */
/* ---- landing page: sits on the altitude system from book.css ---- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(18px,4vw,48px)}

.hero{padding:clamp(120px,17vh,180px) 0 clamp(48px,7vh,80px)}
.eyebrow{display:flex;align-items:center;gap:.7em;font-family:var(--mono);
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--accent);opacity:.6}
.hero h1{font-family:var(--serif);font-weight:300;letter-spacing:-.035em;
  font-size:clamp(2.5rem,7.2vw,5rem);line-height:1.02;margin:.42em 0 0;color:var(--text)}
.hero h1 em{font-style:italic;color:var(--accent)}
.hero .lead{max-width:56ch;margin-top:1.2em;color:var(--muted);font-size:1.05rem}
.hero .lead strong{color:var(--text);font-weight:500}

.band{padding:clamp(38px,6vh,64px) 0;border-top:1px solid var(--line)}
.band-head{display:flex;align-items:baseline;justify-content:space-between;
  gap:1.5em;flex-wrap:wrap;margin-bottom:1.9em}
.band-head h2{font-family:var(--serif);font-weight:400;letter-spacing:-.02em;
  font-size:clamp(1.5rem,3.4vw,2.1rem);color:var(--text)}
.band-note{font-family:var(--mono);font-size:.72rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--faint)}

.cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.card{display:flex;flex-direction:column;gap:.7em;text-decoration:none;color:inherit;
  background:var(--surface);border:1px solid var(--line);border-radius:16px;
  padding:1.5em 1.5em 1.35em;transition:border-color .3s var(--ease),
  background .3s var(--ease),transform .3s var(--ease)}
.card:hover,.card:focus-visible{border-color:var(--line-strong);
  background:var(--surface-2);transform:translateY(-3px)}
.card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.tag{align-self:flex-start;font-family:var(--mono);font-size:.66rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ice);border:1px solid var(--line);
  border-radius:100px;padding:.35em .85em}
.card h3{font-family:var(--serif);font-weight:400;font-size:1.16rem;
  line-height:1.28;letter-spacing:-.01em;color:var(--text)}
.card p{color:var(--muted);font-size:.92rem;line-height:1.62;flex:1}
.go{display:inline-flex;align-items:center;gap:.45em;color:var(--accent);
  font-size:.88rem;font-weight:500;margin-top:.2em}
.go .arrow{transition:transform .3s var(--ease)}
.card:hover .go .arrow{transform:translateX(4px)}

/* the lecture series is one sequence, not a set of peers — give it one wide slab */
.feature{display:grid;gap:1.6em;align-items:center;grid-template-columns:1.5fr 1fr;
  background:linear-gradient(120deg,rgba(132,185,216,.07),transparent 60%);
  border:1px solid var(--line);border-radius:20px;padding:clamp(1.6em,4vw,2.6em)}
.feature h3{font-family:var(--serif);font-weight:400;letter-spacing:-.02em;
  font-size:clamp(1.4rem,3vw,1.9rem);color:var(--text);margin-top:.35em}
.feature h3 em{font-style:italic;color:var(--ice)}
.feature p{color:var(--muted);margin-top:.8em;max-width:52ch}
.btn{display:inline-flex;align-items:center;gap:.5em;margin-top:1.5em;
  background:var(--accent);color:#1a1205;border-radius:100px;padding:.8em 1.5em;
  font-weight:600;text-decoration:none;font-size:.94rem;transition:.3s var(--ease)}
.btn:hover{background:var(--accent-soft);transform:translateY(-2px)}
.btn:focus-visible{outline:2px solid var(--accent-soft);outline-offset:3px}
.series{display:flex;flex-wrap:wrap;gap:.5em;align-content:flex-start}
.chip{font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;color:var(--muted);
  border:1px solid var(--line);border-radius:100px;padding:.4em .9em}
@media(max-width:760px){.feature{grid-template-columns:1fr}}

footer{border-top:1px solid var(--line);margin-top:clamp(48px,8vh,90px);
  padding:2.2em 0 3em;color:var(--faint);font-size:.86rem}
.foot{display:flex;justify-content:space-between;gap:1.2em;flex-wrap:wrap}
footer a{color:var(--muted);text-decoration:none}
footer a:hover{color:var(--accent)}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .card:hover,.btn:hover{transform:none}
}
