/* The people page and the history page (5.10.2026). Same night sky, same gold, same handwriting as the rest of the
   site. People: a constellation of faces, then a journey from group to group. History: chapters on one golden thread. */

/* ---------- people ---------- */
.pp-top, .hs-top { padding: calc(var(--header-h, 80px) + clamp(18px, 3vw, 44px)) 0 clamp(16px, 2.4vw, 30px); text-align: center; background: radial-gradient(70% 90% at 50% 0%, rgba(167, 139, 250, .22), transparent 72%); }
.pp-k, .hs-k { margin: 0; font-family: var(--font-hand); font-weight: 700; color: var(--gold, #ffd700); }
.pp-top h1, .hs-top h1 { margin: 2px 0 0; font-family: var(--font-hand); font-weight: 800; font-size: clamp(2.5rem, 7.5vw, 5rem); line-height: 1.04; background: linear-gradient(180deg, #fff, #e9d5ff 45%, #ffd700); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pp-lead, .hs-lead { margin: 10px auto 0; max-width: 56ch; font-size: clamp(1rem, 1.5vw, 1.18rem); line-height: 1.7; color: var(--text-hero, #efe9ff); }
.pp-sky { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 20px auto 0; max-width: 760px; }
.pp-star { width: clamp(48px, 7vw, 64px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 2px rgba(255, 215, 0, .55), 0 10px 24px -10px #000; translate: 0 calc(sin(var(--i) * 1.3) * 8px); transition: transform .3s var(--ease-spring, ease); }
.pp-star:hover, .pp-star:focus-visible { transform: scale(1.12); }
.pp-star img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-nav, .hs-rail { position: sticky; top: calc(var(--header-h, 76px) + 4px); z-index: 30; padding: 6px 0; }
.pp-nav .wrap, .hs-rail .wrap { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 5px; border-radius: 999px; background: rgba(14, 6, 41, .84); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14), 0 16px 30px -18px #000; width: max-content; max-width: calc(100vw - 24px); }
.pp-nav .wrap::-webkit-scrollbar, .hs-rail .wrap::-webkit-scrollbar { display: none; }
.pp-nav a { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px; border-radius: 999px; font-weight: 700; font-size: .92rem; color: var(--text-soft, #cfc6e8); text-decoration: none; white-space: nowrap; }
.pp-nav a small { font-weight: 800; color: var(--gold, #ffd700); }
.pp-nav a:hover, .pp-nav a:focus-visible { background: rgba(255, 255, 255, .08); color: #fff; }
.pp-body { padding-top: 10px; padding-bottom: clamp(30px, 5vw, 70px); }
.pp-group { scroll-margin-top: 140px; padding-top: clamp(26px, 4vw, 52px); }
.pp-gh { margin-bottom: 14px; } .pp-gh h2 { margin: 0; font-family: var(--font-hand); font-size: clamp(1.9rem, 4.4vw, 3rem); } .pp-gh p { margin: 4px 0 0; max-width: 62ch; color: var(--text-soft); line-height: 1.6; }
.pp-face { flex: none; width: 64px; aspect-ratio: 1; border-radius: 50%; overflow: hidden; display: grid; place-items: center; box-shadow: 0 0 0 2px rgba(255, 215, 0, .5); background: linear-gradient(140deg, #7c4dff, #f472b6); }
.pp-face img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-face.letter b { font-family: var(--font-hand); font-size: 1.9rem; color: #fff; }
.pp-face.lg { width: clamp(76px, 10vw, 104px); } .pp-face.lg.letter b { font-size: 2.6rem; }
.pp-face.sm { width: 40px; } .pp-face.sm.letter b { font-size: 1.15rem; }
.pp-who { display: flex; align-items: center; gap: 12px; }
.pp-who h3 { margin: 0; font-family: var(--font-hand); font-size: clamp(1.35rem, 2.4vw, 1.8rem); line-height: 1.15; }
.pp-role { margin: 2px 0 0; font-size: .9rem; color: var(--gold, #ffd700); }
.pp-story { margin: 10px 0 0; line-height: 1.75; font-size: 1rem; }
.pp-q { margin: 12px 0 0; padding: 0 14px; border-inline-start: 3px solid var(--gold, #ffd700); }
.pp-q p { margin: 0; font-family: var(--font-hand); font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.45; }
.pp-q-more { font-size: .86rem; font-weight: 700; color: var(--gold, #ffd700); }
.pp-links { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; }
.pp-links a { min-height: 34px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: 999px; font-size: .86rem; font-weight: 700; text-decoration: none; color: #fff; background: rgba(255, 255, 255, .07); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16); }
.pp-links a:hover { box-shadow: inset 0 0 0 1px var(--gold, #ffd700); }
.pp-feature { scroll-margin-top: 140px; display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(14px, 3vw, 34px); align-items: center; margin-bottom: 16px; padding: clamp(16px, 2.6vw, 30px); border-radius: 30px; background: linear-gradient(160deg, rgba(124, 77, 255, .2), rgba(255, 255, 255, .03)); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14), 0 30px 60px -40px #000; }
.pp-feature.has-photo { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.pp-feature:nth-of-type(even).has-photo .pp-photo { order: 2; }
.pp-photo { border-radius: 22px; overflow: hidden; aspect-ratio: 4 / 5; } .pp-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-cards { columns: 3 300px; column-gap: 14px; }
.pp-card { scroll-margin-top: 140px; break-inside: avoid; margin: 0 0 14px; padding: 16px; border-radius: 22px; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.pp-card .pp-story { font-size: .96rem; }
.pp-minis { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pp-mini { scroll-margin-top: 140px; display: flex; align-items: center; gap: 8px; padding: 6px 14px 6px 6px; border-radius: 999px; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.pp-mini b { display: block; font-size: .95rem; } .pp-mini small { display: block; font-size: .78rem; color: var(--text-soft); }
.pp-voices { margin-top: clamp(30px, 5vw, 60px); } .pp-voices h2 { margin: 0 0 12px; text-align: center; font-family: var(--font-hand); font-size: clamp(1.9rem, 4.4vw, 3rem); }
.pp-voices ul { list-style: none; margin: 0; padding: 0 0 8px; display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; }
.pp-voices li { flex: 0 0 min(80vw, 320px); scroll-snap-align: start; padding: 18px; border-radius: 22px; background: linear-gradient(160deg, rgba(255, 215, 0, .12), rgba(255, 255, 255, .03)); box-shadow: inset 0 0 0 1px rgba(255, 215, 0, .3); }
.pp-voices p { margin: 0; font-family: var(--font-hand); font-size: 1.3rem; line-height: 1.4; } .pp-voices a { display: inline-block; margin-top: 8px; font-weight: 700; color: var(--gold, #ffd700); }
:target.pp-card, :target.pp-feature, :target.pp-mini { box-shadow: inset 0 0 0 2px var(--gold, #ffd700), 0 0 40px -10px rgba(255, 215, 0, .6); }
@media (max-width: 800px) {
  .pp-feature.has-photo { grid-template-columns: 1fr; } .pp-feature:nth-of-type(even).has-photo .pp-photo { order: 0; }
  .pp-photo { aspect-ratio: 16 / 10; }
  .pp-nav .wrap, .hs-rail .wrap { margin-inline: 12px; }
}

/* ---------- history ---------- */
.hs-nums { list-style: none; margin: 18px auto 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; }
.hs-nums li { display: grid; max-width: 150px; } .hs-nums b { font-family: var(--font-hand); font-size: clamp(1.8rem, 4vw, 2.8rem); color: #fff; } .hs-nums span { font-size: .84rem; color: var(--text-soft); line-height: 1.35; }
.hs-rail a { flex: none; display: grid; gap: 0; min-height: 44px; align-content: center; padding: 4px 14px; border-radius: 999px; text-decoration: none; color: var(--text-soft, #cfc6e8); white-space: nowrap; }
.hs-rail a b { font-size: .82rem; color: var(--gold, #ffd700); } .hs-rail a span { font-size: .86rem; font-weight: 700; }
.hs-rail a:hover, .hs-rail a:focus-visible { background: rgba(255, 255, 255, .08); color: #fff; }
.hs-body { padding-bottom: clamp(30px, 5vw, 70px); }
.hs-thread { position: relative; padding-inline-start: clamp(22px, 4vw, 44px); }
.hs-thread::before { content: ''; position: absolute; inset-block: 30px 10px; inset-inline-start: clamp(8px, 1.6vw, 18px); width: 3px; border-radius: 3px; background: linear-gradient(180deg, transparent, var(--gold, #ffd700) 4%, #f472b6 50%, #7c4dff 96%, transparent); opacity: .7; }
.hs-ch { position: relative; scroll-margin-top: 140px; padding-top: clamp(30px, 5vw, 64px); }
.hs-dot { position: absolute; top: calc(clamp(30px, 5vw, 64px) + 10px); inset-inline-start: calc(-1 * clamp(22px, 4vw, 44px) + clamp(8px, 1.6vw, 18px) - 7px); width: 17px; height: 17px; border-radius: 50%; background: var(--gold, #ffd700); box-shadow: 0 0 0 5px rgba(14, 6, 41, .9), 0 0 20px rgba(255, 215, 0, .7); }
.hs-ch-head { max-width: 62ch; }
.hs-years { margin: 0; font-weight: 800; font-size: .95rem; letter-spacing: .04em; color: var(--gold, #ffd700); font-variant-numeric: tabular-nums; }
.hs-ch-head h2 { margin: 2px 0 6px; font-family: var(--font-hand); font-size: clamp(1.9rem, 4.6vw, 3.2rem); line-height: 1.1; }
.hs-ch-head p:last-child { margin: 0; line-height: 1.75; font-size: clamp(1rem, 1.4vw, 1.1rem); }
.hs-ch-ph { display: block; margin: 16px 0; border-radius: 26px; overflow: hidden; aspect-ratio: 21 / 9; box-shadow: 0 30px 60px -36px #000; }
.hs-ch-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hs-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 12px; margin-top: 14px; align-items: start; }
.hs-card { display: grid; grid-template-rows: auto 1fr; border-radius: 20px; overflow: hidden; text-decoration: none; color: #fff; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); transition: transform .3s var(--ease-spring, ease), box-shadow .3s; }
.hs-card:hover, .hs-card:focus-visible { transform: translateY(-4px); box-shadow: inset 0 0 0 1px var(--gold, #ffd700), 0 24px 40px -26px #000; }
.hs-c-ph { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: linear-gradient(140deg, #2e1065, #7c4dff); }
.hs-c-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hs-c-ph.empty { display: grid; place-items: center; font-size: 2rem; color: rgba(255, 255, 255, .5); }
.hs-c-t { display: grid; gap: 3px; padding: 12px 14px 14px; }
.hs-c-t small { font-size: .8rem; color: var(--gold, #ffd700); font-weight: 700; } .hs-c-t b { font-size: 1.15rem; } .hs-c-t span { font-size: .92rem; line-height: 1.5; color: var(--text-soft); }
.hs-c-t em { display: inline-flex; align-items: center; gap: 5px; margin-top: 4px; font-style: normal; font-weight: 700; font-size: .86rem; color: var(--gold, #ffd700); } .hs-c-t em svg { width: 15px; height: 15px; }
.hs-card.t-circle .hs-c-t b { font-family: var(--font-hand); font-size: 1.4rem; }
/* a moment: a handwritten note pinned between the cards */
.hs-moment { --c: #ffd700; position: relative; display: grid; gap: 4px; padding: 16px; border-radius: 6px 22px 22px 22px; text-decoration: none; color: #fff; background: linear-gradient(160deg, color-mix(in srgb, var(--c) 22%, #160b3d), #160b3d); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c) 55%, transparent), 0 24px 40px -30px #000; rotate: calc((var(--i) % 2 * 2 - 1) * .6deg); transition: rotate .3s, transform .3s; }
.hs-moment:hover, .hs-moment:focus-visible { rotate: 0deg; transform: translateY(-3px); }
.hs-moment.k-funny { --c: #ffd23f; } .hs-moment.k-personal { --c: #ff5f7e; } .hs-moment.k-music { --c: #5eead4; } .hs-moment.k-event { --c: #a78bfa; } .hs-moment.k-community { --c: #7ee07a; } .hs-moment.k-photo { --c: #4fa8ff; }
.hs-m-ph { display: block; margin: -16px -16px 8px; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 6px 22px 0 0; } .hs-m-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hs-m-kind { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 800; color: var(--c); } .hs-m-kind i { font-style: normal; }
.hs-moment b { font-size: 1.05rem; }
.hs-moment q { font-family: var(--font-hand); font-size: 1.22rem; line-height: 1.4; quotes: '"' '"'; }
.hs-moment cite { font-style: normal; font-size: .85rem; color: var(--text-soft); }
.hs-tn { margin-top: clamp(34px, 5vw, 70px); } .hs-tn h2, .hs-end h2 { margin: 0 0 12px; text-align: center; font-family: var(--font-hand); font-size: clamp(1.9rem, 4.4vw, 3rem); }
.hs-tn ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.hs-tn li { display: grid; grid-template-columns: 1fr 1fr; border-radius: 20px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
.hs-tn p { margin: 0; padding: 14px 16px; line-height: 1.55; } .hs-tn small { display: block; font-weight: 800; font-size: .78rem; color: var(--gold, #ffd700); }
.hs-then { background: rgba(255, 255, 255, .04); } .hs-now { background: rgba(255, 215, 0, .08); }
.hs-end { margin-top: clamp(34px, 5vw, 70px); text-align: center; } .hs-end p { margin: 0 auto 14px; max-width: 50ch; color: var(--text-soft); } .hs-end .btn-row { justify-content: center; }
@media (max-width: 800px) { .hs-ch-ph { aspect-ratio: 16 / 10; } .hs-tn li { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .hs-moment, .pp-star { rotate: none; translate: none; transition: none; } }
.pp-story[data-more] { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
.pp-feature .pp-story[data-more] { -webkit-line-clamp: 6; }
.pp-more { margin-top: 6px; padding: 4px 0; min-height: 36px; border: 0; background: none; color: var(--gold, #ffd700); font: 700 .9rem inherit; font-family: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
/* on a phone each chapter's cards and moments are one row you swipe through, so the page stays short */
@media (max-width: 800px) {
  .hs-items { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; padding: 4px 2px 10px; margin-inline: -2px; scrollbar-width: none; }
  .hs-items::-webkit-scrollbar { display: none; }
  .hs-items > * { flex: 0 0 min(78vw, 300px); scroll-snap-align: start; }
  .hs-moment { rotate: none; }
  .hs-ch-ph { margin: 12px 0 4px; }
  .hs-ch-head p:last-child { font-size: .98rem; }
}
