/* ==========================================================================
   STUDIO
   ========================================================================== */

.studio-open {
  position: relative;
  min-height: clamp(70vh, 86vh, 900px);
  display: flex; align-items: flex-end;
  padding-top: calc(var(--nav-h) + clamp(3rem, 10vh, 7rem));
  padding-bottom: clamp(2.5rem, 7vh, 5rem);
  overflow: hidden; isolation: isolate;
}
.studio-open__bed { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.studio-open__bed video {
  position: absolute; top: 50%; left: 50%;
  width: 100%; height: 100%; min-width: 100%; min-height: 100%;
  transform: translate(-50%,-50%); object-fit: cover;
}
.studio-open__veil {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(5,6,10,.88) 0%, rgba(5,6,10,.3) 40%, rgba(5,6,10,.96) 100%),
    linear-gradient(90deg, rgba(5,6,10,.72) 0%, transparent 65%);
}
.studio-open__inner { position: relative; z-index: 1; width: 100%; }
.studio-open__title { font-size: var(--t-4xl); margin-top: 1.6rem; }
.studio-open__lede { margin-top: clamp(1.2rem, 3vh, 1.8rem); max-width: 46ch; }

/* ------------------------------------------------------- SIGNAL CHAIN ----- */
.chain { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0.6rem; }
.chain__item {
  flex: 1 1 220px; min-width: 0;
  padding: clamp(1.4rem, 2.6vw, 2.2rem);
  border: 1px solid var(--line); background: var(--bg-2);
  display: grid; gap: 0.5rem; align-content: center;
  transition: border-color .4s var(--e-out), background .4s var(--e-out);
}
.chain__item:hover { border-color: rgba(43,255,136,.38); background: var(--bg-3); }
.chain__k { font-size: var(--t-micro); letter-spacing: 0.2em; color: var(--fg-4); }
.chain__n {
  font-family: var(--f-display); font-weight: 900; font-stretch: 112%;
  text-transform: uppercase; font-size: clamp(1.15rem, 2.4vw, 1.75rem);
  letter-spacing: -0.03em; line-height: 1;
}
.chain__d { font-size: var(--t-sm); color: var(--fg-3); line-height: 1.5; }
.chain__arrow { display: grid; place-items: center; color: var(--volt); flex: none; }
.chain__arrow svg { width: 18px; height: 18px; }
@media (max-width: 760px) { .chain__arrow { transform: rotate(90deg); } }


/* ----------------------------------------------------------- EQUIPMENT ---- */
.eq-groups { display: grid; gap: clamp(2rem, 4.5vw, 3.5rem); }
@media (min-width: 860px) { .eq-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.eq-group__h {
  font-size: var(--t-micro); letter-spacing: 0.22em; color: var(--volt);
  padding-bottom: 0.9rem; margin-bottom: 0.4rem; border-bottom: 1px solid var(--line);
}
.eq-group__list { display: grid; }
.eq-item {
  display: grid; gap: 0.25rem;
  padding-block: 0.95rem; border-bottom: 1px solid var(--line-soft);
}
.eq-item__n { font-size: var(--t-sm); color: var(--fg-3); }
.eq-item__d { font-size: var(--t-micro); color: var(--fg-4); line-height: 1.5; }
.eq-item--feature .eq-item__n {
  font-family: var(--f-display); font-weight: 900; font-stretch: 112%;
  text-transform: uppercase; font-size: clamp(1rem, 2vw, 1.3rem);
  letter-spacing: -0.028em; line-height: 1.1; color: var(--fg);
}
.eq-item--feature .eq-item__d { color: var(--fg-3); }
.eq-group__note { margin-top: 1.1rem; font-size: var(--t-sm); color: var(--fg-4); line-height: 1.65; }

/* ==========================================================================
   THE ROOM — contained horizontal image rail

   One consistent frame height, object-fit: cover, and per-image focal points.
   Scrolling is contained by the rail; the page itself never gains horizontal
   overflow because the rail is the only scroll container and the section is
   clipped.
   ========================================================================== */
.room {
  padding-block: clamp(3rem, 8vh, 6rem);
  border-block: 1px solid var(--line-soft);
  overflow: clip;                      /* contains the rail, keeps sticky working */
}
.room__head {
  display: flex; flex-wrap: wrap; gap: 1rem 2rem;
  align-items: baseline; justify-content: space-between;
  margin-bottom: clamp(1.5rem, 3.5vh, 2.4rem);
}
.room__nav { display: none; gap: 0.5rem; }
@media (min-width: 860px) { .room__nav { display: flex; } }
.room__btn {
  width: 44px; height: 44px;
  border: 1px solid var(--line); border-radius: 50%;
  display: grid; place-items: center;
  transition: all .3s var(--e-out);
}
.room__btn svg { width: 14px; height: 14px; }
.room__btn:hover:not([disabled]) { background: var(--volt); border-color: var(--volt); color: #04150b; }
.room__btn[disabled] { opacity: .28; pointer-events: none; }
.room__btn:focus-visible { outline: 2px solid var(--volt); outline-offset: 3px; }

.room__rail {
  display: flex; gap: clamp(0.75rem, 1.5vw, 1.25rem);
  overflow-x: auto; overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;      /* no page-level horizontal chaining */
  scrollbar-width: none;
  padding-inline: var(--gutter);
  padding-block: 2px;
  scroll-padding-inline: var(--gutter);
}
.room__rail::-webkit-scrollbar { display: none; }
.room__rail:focus-visible { outline: 2px solid var(--volt); outline-offset: 4px; }

/* One frame height across the whole rail — the curation comes from the
   varying widths, not from ragged heights. */
.room__item {
  flex: none;
  scroll-snap-align: center;
  width: clamp(240px, 78vw, 420px);
  height: clamp(260px, 46vh, 520px);
}
.room__item--wide { width: clamp(300px, 88vw, 720px); }
@media (min-width: 760px) {
  .room__item { width: clamp(300px, 32vw, 460px); }
  .room__item--wide { width: clamp(460px, 50vw, 760px); }
}

.room__frame {
  display: block; position: relative; width: 100%; height: 100%;
  overflow: hidden; background: var(--bg-3);
}
.room__frame img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 50%;
  transition: transform 1.1s var(--e-out), filter .6s var(--e-out);
}
.room__frame:hover img { transform: scale(1.04); filter: saturate(1.12) brightness(1.04); }
.room__frame::after {
  content: ""; position: absolute; inset: 0;
  border: 1px solid transparent;
  transition: border-color .4s var(--e-out);
}
.room__frame:hover::after { border-color: rgba(43,255,136,.42); }

/* Every rail photograph is framed for its slot — the wide frames take the 3:2
   room views almost uncropped, the standard frames take the two portrait
   details. No per-item focal correction is needed. */

.room__foot { margin-top: clamp(1.2rem, 2.5vh, 1.8rem); }
.room__progress { height: 1px; background: var(--line); position: relative; overflow: hidden; }
.room__progress i {
  position: absolute; inset: 0; background: var(--volt);
  transform: scaleX(0); transform-origin: left;
  will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
  .room__rail { scroll-behavior: auto; }
  .room__frame img { transition: none; }
}
