/* ==========================================================================
   Intimate Sessions page (sessions.html): page-specific layout only.
   Rhythm: warm dark hero → cream format → dark latest (tungsten glow) →
   ink-2 archive (year switcher) → "Apply to Perform" band.
   Prefix: ss-. Use contextual tokens (--fg, --rule, --accent…) so themes work.
   Session photos are ~1000 px wide: never shown wider than ~900 px.
   ========================================================================== */

/* ---- 1. Hero ------------------------------------------------------------------ */
.ss-hero {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: 100vh; min-height: 100svh;
  display: grid; grid-template-rows: 1fr auto;
  padding: calc(var(--header-h) + clamp(1.5rem, 5vh, 4rem)) 0 clamp(1.25rem, 3vh, 2rem);
  background: var(--ink);
}
/* the stage photo, blurred to a tungsten wash behind everything */
.ss-hero__ambient { position: absolute; inset: -12%; z-index: -2; opacity: .42; filter: blur(90px) saturate(1.5); pointer-events: none; }
.ss-hero__ambient img { width: 100%; height: 100%; object-fit: cover; }
.ss-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(90deg, var(--ink) 0%, rgba(15, 13, 12, .82) 34%, rgba(15, 13, 12, .3) 70%, rgba(15, 13, 12, .55) 100%),
    linear-gradient(180deg, rgba(15, 13, 12, .7) 0%, transparent 22%, transparent 70%, var(--ink) 100%);
}
.ss-hero__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(2rem, 5vw, 6rem); align-items: center; }
.ss-hero__copy { display: grid; gap: clamp(1.1rem, 2.4vh, 1.75rem); justify-items: start; position: relative; z-index: 2; }
.ss-hero__title { max-width: 7em; text-shadow: 0 2px 40px rgba(15, 13, 12, .4); }
.ss-hero__lead { max-width: 40ch; font-size: var(--fs-lead); line-height: 1.5; color: rgba(243, 235, 224, .86); }
.ss-hero__ctas { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .4rem; }
.ss-hero__stage { position: relative; margin: 0; justify-self: end; width: min(100%, 680px); padding-bottom: clamp(2.5rem, 6vh, 4rem); }
.ss-hero__photo {
  position: relative; overflow: hidden; border-radius: var(--r-sm); aspect-ratio: 1000 / 885;
  box-shadow: 0 60px 120px -40px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 255, 255, .05);
}
.ss-hero__photo img { width: 100%; height: 100%; object-fit: cover; transform-origin: 60% 40%; }
.ss-hero__photo::after { content: ""; position: absolute; inset: 0; background: radial-gradient(120% 90% at 50% 40%, transparent 55%, rgba(8, 6, 5, .5) 100%); pointer-events: none; }
.ss-hero__photo2 {
  position: absolute; left: clamp(-5rem, -6vw, -2rem); bottom: 0; z-index: 2; width: 38%;
  overflow: hidden; border-radius: var(--r-sm); aspect-ratio: 1000 / 761;
  box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .9), 0 0 0 6px var(--ink);
}
.ss-hero__photo2 img { width: 100%; height: 100%; object-fit: cover; }
.ss-hero__cap {
  position: absolute; right: 0; bottom: 0; display: grid; justify-items: end; gap: .3rem;
  color: rgba(243, 235, 224, .8); max-width: 58%; text-align: right;
}
.ss-hero__cap-top { display: flex; gap: 1rem; color: var(--hot-soft); }
.ss-hero__hud {
  display: flex; justify-content: space-between; gap: .5rem 2rem; flex-wrap: wrap;
  margin-top: clamp(1.5rem, 4vh, 3rem); padding-top: 1rem; border-top: 1px solid var(--rule); color: rgba(243, 235, 224, .7);
}
@media (max-width: 1000px) {
  .ss-hero { min-height: 0; }
  .ss-hero::before { background: linear-gradient(180deg, rgba(15, 13, 12, .75) 0%, rgba(15, 13, 12, .35) 40%, rgba(15, 13, 12, .55) 70%, var(--ink) 100%); }
  .ss-hero__grid { grid-template-columns: 1fr; }
  .ss-hero__stage { justify-self: start; width: min(100%, 640px); margin-left: auto; }
  .ss-hero__photo2 { left: -1rem; }
}
@media (max-width: 760px) {
  .ss-hero__title { max-width: none; }
  .ss-hero__ctas { flex-wrap: nowrap; width: 100%; }
  .ss-hero__ctas .btn { flex: 1 1 auto; min-height: 50px; padding-inline: 1rem; font-size: .9rem; }
  .ss-hero__ctas .btn__icon { display: none; }
  .ss-hero__stage { width: 100%; padding-bottom: 0; }
  .ss-hero__photo2 { left: auto; right: .75rem; bottom: auto; top: calc(100% - 4.5rem); width: 40%; }
  .ss-hero__cap { position: static; max-width: 55%; justify-items: start; text-align: left; margin-top: 1rem; }
  .ss-hero__hud { margin-top: 2.5rem; }
  .ss-hero__hud-mid { display: none; }
}

/* ---- 2. Format (cream) ------------------------------------------------------------ */
.ss-format__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grid-gap); row-gap: 2.5rem; }
.ss-format__aside { grid-column: 1 / span 3; display: grid; align-content: start; gap: clamp(1.5rem, 3vw, 2.5rem); }
.ss-format__photo { display: grid; gap: .8rem; max-width: 300px; }
.ss-format__photo .media { box-shadow: 0 30px 60px -30px rgba(15, 13, 12, .55); }
.ss-format__cap { color: var(--fg-muted); }
.ss-format__main { grid-column: 5 / -1; }
.ss-format__text { font-size: clamp(1.75rem, 3.4vw, 3.6rem); line-height: 1.1; letter-spacing: -.024em; font-weight: 350; max-width: 24ch; }
.ss-format__sub { max-width: 52ch; margin-top: clamp(1.75rem, 4vw, 3rem); }
.ss-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(4rem, 8vw, 7rem); border-top: 1px solid var(--rule-strong); }
.ss-fact { display: grid; gap: 1rem; align-content: start; padding: 1.6rem 1.25rem 0; border-left: 1px solid var(--rule); }
.ss-fact:first-child { padding-left: 0; border-left: 0; }
.ss-fact .stat__value { font-size: clamp(2.6rem, 4.6vw, 5rem); }
.ss-fact .stat__unit { color: var(--accent); }
.ss-fact__words { font-size: clamp(1.9rem, 3vw, 3.2rem) !important; white-space: normal; line-height: .95; }
.ss-fact__words em { font-style: italic; font-weight: 300; }
@media (max-width: 1000px) {
  .ss-format__aside { display: contents; }
  .ss-format__main { grid-column: 1 / -1; order: 1; }
  .ss-format__photo { grid-column: 1 / -1; order: 2; max-width: 50%; justify-self: end; }
  .ss-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ss-fact { padding: 1.4rem 1rem 1.4rem 0; border-left: 0; border-bottom: 1px solid var(--rule); }
  .ss-fact:nth-child(2n) { padding-left: 1rem; border-left: 1px solid var(--rule); }
}
@media (max-width: 560px) {
  .ss-format__photo { max-width: none; justify-self: stretch; margin-inline: calc(var(--gutter) * -1); position: relative; }
  .ss-format__photo .media { --ratio: 4 / 3; border-radius: 0; box-shadow: none; }
  .ss-format__cap { position: absolute; z-index: 2; left: var(--gutter); bottom: .9rem; color: var(--cream); text-shadow: 0 1px 10px rgba(0, 0, 0, .7); }
  .ss-fact .stat__value { font-size: 2.4rem; }
  .ss-fact__words { font-size: 1.7rem !important; }
}

/* ---- 3. Latest session ------------------------------------------------------------ */
.ss-latest { position: relative; overflow: hidden; isolation: isolate; background: var(--ink); }
.ss-latest__glow {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(42% 50% at 18% 30%, rgba(255, 106, 43, .2), transparent 70%),
    radial-gradient(40% 40% at 90% 90%, rgba(255, 179, 122, .07), transparent 70%);
}
.ss-latest__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 6vw, 7rem); align-items: center; }
.ss-latest__art { display: grid; gap: 1rem; justify-items: start; }
.ss-poster { position: relative; display: block; overflow: hidden; border-radius: 3px; aspect-ratio: 1 / 1; background: var(--ink-3); }
.ss-poster img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.ss-poster:hover img, .ss-poster:focus-visible img { transform: scale(1.04); }
.ss-latest__poster-link {
  width: min(100%, 440px);
  box-shadow: 0 50px 100px -30px rgba(0, 0, 0, .95), 0 0 0 1px rgba(255, 255, 255, .07);
  transform: rotate(-2.5deg); transition: transform .9s var(--ease-out);
}
.ss-latest__poster-link:hover, .ss-latest__poster-link:focus-visible { transform: rotate(0deg); }
.ss-latest__stamp { display: flex; justify-content: space-between; width: min(100%, 440px); color: var(--muted); }
.ss-latest__body { display: grid; gap: clamp(1rem, 2vw, 1.5rem); justify-items: start; }
.ss-latest__date { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; color: var(--hot-soft); }
.ss-latest__date time { color: var(--cream); }
.ss-latest__title { line-height: .9; }
.ss-latest__copy { max-width: 58ch; }

/* artist links (also used in the archive) */
.ss-links { display: grid; gap: .6rem; }
.ss-links__row { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.ss-links__who { width: 100%; color: var(--fg-muted); font-size: .66rem; }
.ss-link {
  display: inline-flex; align-items: center; gap: .4rem; min-height: 36px; padding: .35rem .8rem;
  border: 1px solid var(--rule-strong); border-radius: var(--r-pill);
  font-family: var(--font-mono); font-size: .68rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--fg);
  transition: background-color .3s, color .3s, border-color .3s;
}
.ss-link .icon { width: .75rem; height: .75rem; }
.ss-link:hover, .ss-link:focus-visible { background: var(--mint); border-color: var(--mint); color: var(--ink); }
@media (pointer: coarse) { .ss-link { min-height: 44px; } }

/* film strip */
.ss-strip { margin-top: clamp(4rem, 8vw, 7rem); }
.ss-strip__head { display: flex; align-items: center; gap: 1rem 2rem; padding-bottom: 1rem; border-bottom: 1px solid var(--rule); }
.ss-strip__hint { margin-left: auto; }
.ss-strip__nav { display: flex; gap: .5rem; }
.ss-strip__btn { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--rule-strong); color: var(--fg); transition: background-color .3s, color .3s, border-color .3s; }
.ss-strip__btn:hover, .ss-strip__btn:focus-visible { background: var(--mint); border-color: var(--mint); color: var(--ink); }
.ss-strip__btn .icon { width: 16px; height: 16px; }
.ss-strip__rail {
  margin-top: 1.5rem; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain;
  scrollbar-width: none; cursor: grab; user-select: none;
}
.ss-strip__rail::-webkit-scrollbar { display: none; }
.ss-strip__rail.is-dragging { cursor: grabbing; }
.ss-strip__rail.is-dragging a { pointer-events: none; }
.ss-strip__track { display: flex; gap: 1rem; width: max-content; padding-inline: var(--edge) calc(var(--gutter) + 8vw); }
.ss-strip__item { flex: none; }
.ss-strip__photo { position: relative; display: block; height: clamp(280px, 34vw, 480px); overflow: hidden; border-radius: var(--r-sm); background: var(--ink-3); }
.ss-strip__photo img { height: 100%; width: auto; max-width: none; -webkit-user-drag: none; transition: transform 1.2s var(--ease-out), filter .6s; filter: saturate(.92); }
.ss-strip__photo:hover img, .ss-strip__photo:focus-visible img { transform: scale(1.035); filter: saturate(1.05); }
.ss-strip__foot { display: flex; align-items: center; margin-top: 1.25rem; }
.ss-strip__progress { position: relative; flex: 1; height: 1px; background: var(--rule); overflow: hidden; }
.ss-strip__fill { position: absolute; inset: 0; background: var(--mint); transform-origin: 0 50%; transform: scaleX(.08); }
@media (max-width: 1000px) {
  .ss-latest__grid { grid-template-columns: 1fr; }
  .ss-latest__art { grid-template-columns: minmax(0, 300px) 1fr; align-items: end; gap: 1.25rem; }
  .ss-latest__stamp { flex-direction: column; gap: .4rem; width: auto; }
}
@media (max-width: 760px) {
  .ss-latest__art { grid-template-columns: 1fr; }
  .ss-latest__poster-link { width: min(78%, 320px); }
  .ss-latest__stamp { flex-direction: row; width: min(78%, 320px); }
  .ss-strip__hint, .ss-strip__nav { display: none; }
  .ss-strip__photo { height: 300px; }
}

/* ---- 4. Archive: year switcher ------------------------------------------------------- */
.ss-archive__head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; gap: 1.5rem 3rem; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.ss-archive__title { max-width: 12ch; }
.ss-archive__aside { color: var(--fg-muted); max-width: 42ch; justify-self: end; }
.ss-years__list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule-strong); overflow: visible; }
.ss-years__tab {
  display: grid; gap: .35rem; justify-items: start; text-align: left; min-height: 0;
  padding: clamp(1rem, 2vw, 1.6rem) clamp(.6rem, 1.4vw, 1.25rem); border-left: 1px solid var(--rule);
  text-transform: none; letter-spacing: 0; font-family: var(--font-ui); transition: color .3s, background-color .4s;
}
.ss-years__tab:first-child { border-left: 0; }
.ss-years__tab::after { left: 0; right: 0; bottom: -1px; height: 3px; }
.ss-years__y {
  font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: clamp(1.6rem, 4.2vw, 4.4rem); font-weight: 330; line-height: .9; letter-spacing: -.045em;
  color: var(--fg-muted); transition: color .35s;
}
.ss-years__n { color: var(--fg-muted); }
.ss-years__tab:hover .ss-years__y { color: var(--fg); }
.ss-years__tab[aria-selected="true"] { background: linear-gradient(180deg, transparent, rgba(124, 204, 191, .07)); }
.ss-years__tab[aria-selected="true"] .ss-years__y { color: var(--fg); font-style: italic; }
.ss-years__tab[aria-selected="true"] .ss-years__n { color: var(--mint); }
.ss-year { padding-top: 0; }
.ss-year__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: flex-start; gap: 1rem clamp(1.25rem, 2.5vw, 2.5rem); padding-block: clamp(2rem, 4vw, 3.5rem) clamp(1rem, 2vw, 1.5rem); }
.ss-year__meta { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; color: var(--fg-muted); }
.ss-year__meta span:first-child { color: var(--mint); }
/* the latest session's year: a pointer back to #latest instead of a repeat of it */
.ss-year__pointer { display: grid; gap: .6rem; padding-block: clamp(1.5rem, 3vw, 2.5rem); border-top: 1px solid var(--rule); }
.ss-year__pointer-text { font-family: var(--font-display); font-variation-settings: var(--soft); font-size: var(--fs-h4); line-height: 1.2; letter-spacing: -.015em; }
.ss-year__pointer-text .link-arrow { font-family: var(--font-ui); font-size: var(--fs-body); letter-spacing: 0; vertical-align: middle; }
.ss-year__pointer-text .link-arrow:hover .icon, .ss-year__pointer-text .link-arrow:focus-visible .icon { transform: translateY(-3px); }   /* in-page, up the page */

/* one session = one row: poster · story · photographs */
.ss-set {
  display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(1.5rem, 3vw, 3rem);
  align-items: start; padding-block: clamp(2rem, 3.5vw, 3rem); border-top: 1px solid var(--rule);
}
.ss-set__poster .ss-poster { box-shadow: 0 30px 60px -24px rgba(0, 0, 0, .8), 0 0 0 1px rgba(255, 255, 255, .06); transition: transform .8s var(--ease-out); }
.ss-set__poster .ss-poster:hover { transform: rotate(-2deg); }
.ss-set__info { display: grid; gap: .9rem; align-content: start; }
.ss-set__date { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; color: var(--fg); }
.ss-set__date time { color: var(--mint); }
.ss-set__num { color: var(--hot-soft); }
.ss-set__artists {
  font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: clamp(1.7rem, 2.6vw, 2.8rem); font-weight: 380; line-height: 1; letter-spacing: -.025em;
}
.ss-amp { font-style: italic; font-weight: 300; color: var(--fg-muted); }
.ss-set__bio { display: grid; gap: .6rem; max-width: 52ch; color: var(--fg-muted); font-size: var(--fs-small); line-height: 1.6; }
.ss-set__extras { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; }
.ss-set__photos { display: grid; gap: .7rem; }
.ss-set__count { color: var(--fg-muted); }
.ss-mosaic { display: grid; gap: .45rem; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: clamp(68px, 6.4vw, 112px); grid-template-areas: "a a b" "a a c" "d e e"; }
.ss-mosaic__tile { position: relative; display: block; overflow: hidden; border-radius: 4px; background: var(--ink-3); }
.ss-mosaic__tile:nth-child(1) { grid-area: a; }
.ss-mosaic__tile:nth-child(2) { grid-area: b; }
.ss-mosaic__tile:nth-child(3) { grid-area: c; }
.ss-mosaic__tile:nth-child(4) { grid-area: d; }
.ss-mosaic__tile:nth-child(5) { grid-area: e; }
.ss-mosaic__tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease-out), filter .5s; filter: saturate(.9) brightness(.92); }
.ss-mosaic__tile:hover img, .ss-mosaic__tile:focus-visible img { transform: scale(1.05); filter: saturate(1.05) brightness(1); }
.ss-mosaic__more {
  position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: .2rem;
  background: rgba(15, 13, 12, .58); color: var(--cream); transition: background-color .4s;
}
.ss-mosaic__more-n { font-family: var(--font-display); font-variation-settings: var(--soft); font-size: clamp(1.8rem, 2.6vw, 2.8rem); line-height: 1; letter-spacing: -.03em; }
.ss-mosaic__tile--more:hover .ss-mosaic__more { background: rgba(15, 13, 12, .3); }
.ss-set__videos { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.ss-set__videos .facade { --ratio: 16 / 10; }
.ss-set__videos .facade__play { width: 54px; margin: -27px 0 0 -27px; }
.ss-set__videos .facade__label { flex-direction: column; align-items: start; gap: .25rem; }
.ss-set__videos .facade__title { font-size: 1rem; }
@media (max-width: 1100px) {
  .ss-set { grid-template-columns: minmax(0, 180px) minmax(0, 1fr); }
  .ss-set__photos { grid-column: 2; }
}
@media (max-width: 900px) {
  .ss-archive__head { grid-template-columns: 1fr; }
  .ss-archive__aside { justify-self: start; }
}
@media (max-width: 760px) {
  .ss-years__tab { padding: .9rem .35rem .8rem; justify-items: center; }
  .ss-years__y { font-size: clamp(1.15rem, 5.4vw, 1.6rem); letter-spacing: -.03em; }
  .ss-years__n { display: none; }
  /* poster + title side by side, everything else full width */
  .ss-set { grid-template-columns: 112px minmax(0, 1fr); gap: 1rem 1.1rem; }
  .ss-set__poster { grid-row: 1 / span 2; align-self: start; }
  .ss-set__info { display: contents; }
  .ss-set__date { grid-column: 2; grid-row: 1; align-self: end; }
  .ss-set__artists { grid-column: 2; grid-row: 2; align-self: start; font-size: 1.6rem; }
  .ss-set__bio, .ss-links, .ss-set__extras { grid-column: 1 / -1; }
  .ss-set__photos { grid-column: 1 / -1; }
  .ss-mosaic { grid-auto-rows: 24vw; }
  .ss-set__videos { grid-template-columns: 1fr; }
}

/* ---- 5. "Apply to Perform" band --------------------------------------------------------------- */
.ss-next {
  position: relative; overflow: hidden; padding-block: clamp(4rem, 8vw, 7rem);
  border-top: 1px solid var(--rule);
  background: radial-gradient(60% 120% at 0% 100%, rgba(255, 106, 43, .14), transparent 70%), var(--ink-2);
}
.ss-next__inner { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 2rem clamp(2rem, 6vw, 6rem); align-items: end; }
.ss-next__title { font-size: var(--fs-xl); line-height: .86; letter-spacing: -.045em; font-weight: 340; }
.ss-next__title em { font-style: italic; font-weight: 300; }
.ss-next__side { display: grid; gap: 1.5rem; max-width: 40ch; }
.ss-next__side .cluster { --cluster-gap: 1rem 1.75rem; }
@media (max-width: 900px) {
  .ss-next__inner { grid-template-columns: 1fr; }
  .ss-next__title { font-size: clamp(3.4rem, 16vw, 7rem); }
}
