/* Spiral hero — replaces Latest Work visually; banner untouched */

.latest-work__legacy {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.spiral-hero-section {
  position: relative;
  overflow-x: clip;

  /* —— Proportional carousel system (single source) —— */
  --spiral-stage-vw: 92;
  --spiral-stage-vh-limit: 0;
  --spiral-stage-max-rem: 44;
  --spiral-stage-width: min(
    calc(var(--spiral-stage-vw) * 1vw),
    calc(var(--spiral-stage-max-rem) * 1rem)
  );
  --spiral-info-width: var(--spiral-stage-width);

  --spiral-tallest-portrait-ratio: 0.741;
  --spiral-primary-artwork-scale: 0.836;

  --spiral-frame-min: 20rem;
  --spiral-frame-vh: 73;
  --spiral-frame-max: 47rem;
  --spiral-orbit-frame-min-height: calc(
    var(--spiral-stage-width) / var(--spiral-tallest-portrait-ratio) * var(--spiral-primary-artwork-scale) +
      2 * var(--spiral-artwork-pad-y, 0.5rem)
  );
  --spiral-orbit-frame-height: max(
    clamp(var(--spiral-frame-min), calc(var(--spiral-frame-vh) * 1dvh), var(--spiral-frame-max)),
    var(--spiral-orbit-frame-min-height)
  );

  --spiral-gallery-caption-gap: clamp(0.1rem, calc(var(--spiral-orbit-frame-height) * 0.016), 0.34rem);
  --spiral-caption-shift-up: calc(var(--spiral-gallery-caption-gap) * 0.58);
  --spiral-caption-stack-min: clamp(
    calc(11rem + var(--spiral-auction-date-reserve) + var(--spiral-auction-cta-reserve)),
    calc(var(--spiral-orbit-frame-height) * 0.42 + var(--spiral-auction-date-reserve) + var(--spiral-auction-cta-reserve)),
    calc(18rem + var(--spiral-auction-date-reserve) + var(--spiral-auction-cta-reserve))
  );

  --spiral-title-meta-gap: clamp(0.28rem, calc(var(--spiral-orbit-frame-height) * 0.021), 0.48rem);
  --spiral-meta-line-gap: clamp(0.085rem, calc(var(--spiral-orbit-frame-height) * 0.007), 0.175rem);
  --spiral-meta-auction-gap: clamp(0.35rem, calc(var(--spiral-orbit-frame-height) * 0.0245), 0.59rem);
  --spiral-auction-line-gap: clamp(0.21rem, calc(var(--spiral-orbit-frame-height) * 0.014), 0.38rem);
  --spiral-auction-date-reserve: clamp(0.85rem, 2dvh, 1.15rem);
  --spiral-auction-cta-reserve: clamp(2.85rem, 6.5dvh, 3.75rem);

  --spiral-ui-presence-scale: 1;
  --spiral-carousel-shift-up: clamp(0.75rem, 2.1dvh, 1.55rem);
  --latest-label-nudge-left: clamp(0.4rem, 1.5vw, 0.85rem);
}

.spiral-hero-section.section {
  padding-top: clamp(1.75rem, 5dvh, 3.25rem);
  padding-bottom: clamp(2.25rem, 6dvh, 4rem);
}

@media (min-width: 901px) {
  .spiral-hero-section.section {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: calc(100dvh - var(--header-height));
    padding-top: clamp(1.25rem, 3dvh, 2rem);
    padding-bottom: clamp(2rem, 4.5dvh, 3rem);
  }

}

@media (max-width: 640px) {
  .spiral-hero-section.section {
    padding-top: clamp(1.35rem, 4dvh, 2rem);
    padding-bottom: max(clamp(1.85rem, 5dvh, 2.75rem), calc(env(safe-area-inset-bottom, 0px) + 1rem));
  }
}

.spiral-hero-section .section__inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: min(var(--page-max), 100%);
}

/* Title ↔ carousel: single controlled gap (not margin stacks) */
.latest-work__intro {
  --latest-work-carousel-gap: clamp(0.38rem, 0.88dvh, 0.55rem);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  gap: var(--latest-work-carousel-gap);
}

.spiral-hero-section .section__header {
  margin: 0;
  padding: 0;
  width: 100%;
  align-self: stretch;
  max-width: none;
  text-align: left;
}

.spiral-hero-section .section__header--wide {
  max-width: none;
}

.spiral-hero-section #latest-label {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  transform: translateX(calc(-1 * var(--latest-label-nudge-left, 0px)));
  font-family: var(--font-body);
  font-weight: 300;
  font-size: clamp(0.62rem, 1.45vw, 0.76rem);
  line-height: 1;
  letter-spacing: clamp(0.54em, 2.6vw, 0.68em);
  text-indent: 0;
  text-align: left;
  text-transform: uppercase;
  color: var(--color-text-muted);
  opacity: 0.68;
}

.spiral-hero-section #latest-label::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin-top: clamp(0.65rem, 1.45vh, 0.9rem);
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--color-text) 18%, transparent) 0%,
    color-mix(in srgb, var(--color-text) 6%, transparent) 38%,
    transparent 72%
  );
  pointer-events: none;
}

@media (max-width: 1024px) {
  .latest-work__intro {
    --latest-work-carousel-gap: clamp(0.35rem, 0.8dvh, 0.5rem);
  }

  .spiral-hero-section #latest-label {
    font-size: clamp(0.6rem, 1.85vw, 0.72rem);
    letter-spacing: clamp(0.48em, 3vw, 0.62em);
    opacity: 0.7;
  }

  .spiral-hero-section #latest-label::after {
    margin-top: clamp(0.55rem, 1.25vh, 0.78rem);
  }
}

@media (max-width: 640px) {
  .latest-work__intro {
    --latest-work-carousel-gap: clamp(0.3rem, 0.75dvh, 0.45rem);
  }

  .spiral-hero-section #latest-label {
    font-size: clamp(0.58rem, 3.2vw, 0.68rem);
    font-weight: 300;
    letter-spacing: clamp(0.38em, 4.2vw, 0.48em);
    text-indent: 0;
    text-align: left;
    opacity: 0.72;
    --latest-label-nudge-left: clamp(0.28rem, 2.8vw, 0.55rem);
  }

  .spiral-hero-section #latest-label::after {
    margin-top: clamp(0.5rem, 1.1dvh, 0.68rem);
    background: linear-gradient(
      90deg,
      color-mix(in srgb, var(--color-text) 16%, transparent) 0%,
      color-mix(in srgb, var(--color-text) 5%, transparent) 32%,
      transparent 62%
    );
  }
}

.spiral-hero {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: calc(-1 * var(--spiral-carousel-shift-up, 0px)) 0 0;
  padding: 0;
}

.spiral-hero__stage {
  position: relative;
  width: 100%;
}

.spiral-hero__viewport {
  width: 100%;
}

.spiral-hero__carousel {
  position: relative;
  width: 100%;
  height: var(--spiral-orbit-frame-height);
  min-height: var(--spiral-orbit-frame-height);
  max-height: var(--spiral-orbit-frame-height);
  flex-shrink: 0;
  overflow: visible;
}

.spiral-hero__track {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-inline: 0;
  box-sizing: border-box;
  pointer-events: none;
}

.spiral-hero__track .spiral-hero__orbit {
  pointer-events: auto;
  width: 100%;
  max-width: 100%;
}

.spiral-hero__gallery {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  min-width: 0;
  gap: var(--spiral-gallery-caption-gap);
  box-sizing: border-box;
}

.spiral-hero__caption {
  position: relative;
  z-index: 2;
  width: var(--spiral-info-width);
  max-width: var(--spiral-info-width);
  margin-inline: auto;
  margin-top: calc(-1 * var(--spiral-caption-shift-up, 0px));
  min-height: var(--spiral-caption-stack-min);
  height: var(--spiral-caption-stack-min);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  flex-shrink: 0;
  box-sizing: border-box;
}

@media (max-width: 640px) {
  .spiral-hero__caption {
    padding-inline: 0;
  }
}

.spiral-hero__info-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.35rem, calc(var(--spiral-info-width) * 0.028), 1.1rem);
  width: var(--spiral-info-width);
  max-width: var(--spiral-info-width);
  margin-inline: auto;
  box-sizing: border-box;
  flex-shrink: 0;
  --spiral-nav-hit-size: clamp(2.65rem, calc(var(--spiral-info-width) * 0.11), 3.75rem);
  --spiral-nav-icon-size: clamp(1.35rem, calc(var(--spiral-info-width) * 0.065), 2.5rem);
}

.spiral-hero__info-column {
  flex: 1 1 auto;
  min-width: 0;
  max-width: min(100%, 30rem);
  margin-inline: auto;
  margin-top: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

/* ——— Navigation (flecha 1.png) ——— */

.spiral-hero__nav {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 var(--spiral-nav-hit-size);
  width: var(--spiral-nav-hit-size);
  min-width: var(--spiral-nav-hit-size);
  min-height: 44px;
  padding: 0.75rem;
  margin: 0;
  border: none;
  background: none;
  cursor: pointer;
  flex-shrink: 0;
  align-self: center;
  -webkit-tap-highlight-color: transparent;
  transform: none;
}

.spiral-hero__nav-icon {
  display: block;
  width: var(--spiral-nav-icon-size);
  height: var(--spiral-nav-icon-size);
  object-fit: contain;
  pointer-events: none;
  opacity: 0;
}

.spiral-hero__nav::after {
  content: "";
  position: absolute;
  inset: 0;
  width: var(--spiral-nav-icon-size);
  height: var(--spiral-nav-icon-size);
  margin: auto;
  pointer-events: none;
  background-color: var(--color-text-muted);
  -webkit-mask-image: url("/IMAGENES/flecha%201.png");
  mask-image: url("/IMAGENES/flecha%201.png");
  -webkit-mask-mode: luminance;
  mask-mode: luminance;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  mix-blend-mode: screen;
  transition: opacity 0.28s ease, transform 0.28s ease;
}

.spiral-hero__nav--next::after {
  transform: scaleX(-1);
}

.spiral-hero__nav--prev:hover::after,
.spiral-hero__nav--prev:focus-visible::after {
  transform: translateX(-2px);
}

.spiral-hero__nav--next:hover::after,
.spiral-hero__nav--next:focus-visible::after {
  transform: scaleX(-1) translateX(-2px);
}

.spiral-hero__nav:focus-visible {
  outline: 1px solid color-mix(in srgb, var(--color-text) 35%, transparent);
  outline-offset: 4px;
}

.spiral-hero__nav:disabled {
  cursor: default;
  pointer-events: none;
}

.spiral-hero__nav:disabled::after {
  opacity: 0.22;
}

/* ——— Orbit / artworks ——— */

.spiral-hero__orbit {
  position: relative;
  width: 100%;
  --spiral-artwork-pad-y: clamp(0.38rem, calc(var(--spiral-orbit-frame-height) * 0.012), 0.58rem);
  --spiral-artwork-one-scale: var(--spiral-primary-artwork-scale);
  --spiral-orbit-viewport-height: var(--spiral-orbit-frame-height);
  --spiral-stage-content-height: calc(var(--spiral-orbit-frame-height) - 2 * var(--spiral-artwork-pad-y));
  --spiral-side-mask-width-adjacent: clamp(0.78rem, calc(var(--spiral-stage-width) * 0.052), 2.35rem);
  --spiral-side-mask-width-outer: clamp(0.52rem, calc(var(--spiral-stage-width) * 0.034), 1.55rem);
  --spiral-side-mask-height: var(--spiral-stage-content-height);
  --spiral-side-mask-gap: clamp(0.28rem, calc(var(--spiral-stage-width) * 0.014), 0.65rem);
  --spiral-depth-flank-gap: var(--spiral-side-mask-gap);
  --spiral-depth-adjacent-scale: 0.76;
  --spiral-depth-outer-scale: 0.58;
  --spiral-depth-gloss-scale: var(--spiral-ui-presence-scale);
  --spiral-warm-glow-scale: var(--spiral-ui-presence-scale);
  height: var(--spiral-orbit-frame-height);
  min-height: var(--spiral-orbit-frame-height);
  max-height: var(--spiral-orbit-frame-height);
  margin-bottom: 0;
  touch-action: pan-y pinch-zoom;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
}

.spiral-hero__orbit.is-dragging {
  cursor: grabbing;
}

@media (min-width: 1025px) {
  .spiral-hero-section {
    --spiral-stage-vw: 86;
    --spiral-stage-max-rem: 34;
    --spiral-frame-min: 11.5rem;
    --spiral-frame-vh: 42;
    --spiral-frame-max: 28rem;
    --spiral-caption-stack-min: clamp(
      calc(8.5rem + var(--spiral-auction-date-reserve) + var(--spiral-auction-cta-reserve)),
      calc(var(--spiral-orbit-frame-height) * 0.34 + var(--spiral-auction-date-reserve) + var(--spiral-auction-cta-reserve)),
      calc(12rem + var(--spiral-auction-date-reserve) + var(--spiral-auction-cta-reserve))
    );
    --spiral-carousel-shift-up: clamp(0.42rem, 1.15dvh, 0.85rem);
  }

  .spiral-hero-section.section {
    padding-top: clamp(0.75rem, 1.75dvh, 1.15rem);
    padding-bottom: clamp(0.9rem, 2dvh, 1.35rem);
  }

  .latest-work__intro {
    --latest-work-carousel-gap: clamp(0.22rem, 0.55dvh, 0.36rem);
  }

  .spiral-hero__orbit {
    --spiral-artwork-boost-scale: 1.243;
  }
}

.spiral-hero__orbit.is-snapping {
  cursor: grab;
}

.spiral-hero__orbit.is-depth-stage {
  overflow: visible;
}

.spiral-hero__item.is-depth-item {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  box-sizing: border-box;
  pointer-events: none;
  --spiral-active-scale: 1;
  width: calc(var(--spiral-stage-width) * var(--spiral-active-scale));
  height: calc((100% - 2 * var(--spiral-artwork-pad-y)) * var(--spiral-active-scale));
}

.spiral-hero__item.is-depth-item img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  pointer-events: none;
}

.spiral-hero__item.is-depth-item.is-active {
  pointer-events: none;
}

.spiral-hero__item.is-depth-item.is-active img {
  pointer-events: auto;
  cursor: pointer;
}

.spiral-hero__item.is-depth-item.is-side-prev,
.spiral-hero__item.is-depth-item.is-side-next {
  pointer-events: auto;
  cursor: pointer;
}

.spiral-hero__item.is-depth-item.is-side-prev img,
.spiral-hero__item.is-depth-item.is-side-next img {
  pointer-events: auto;
  cursor: pointer;
}

.spiral-hero__item.is-depth-item.is-portrait-item.is-side-prev img,
.spiral-hero__item.is-depth-item.is-portrait-item.is-side-next img {
  object-position: center;
}

.spiral-hero__orbit.is-in-motion .spiral-hero__item.is-depth-item.is-side-prev,
.spiral-hero__orbit.is-in-motion .spiral-hero__item.is-depth-item.is-side-next,
.spiral-hero__orbit.is-dragging .spiral-hero__item.is-depth-item.is-side-prev,
.spiral-hero__orbit.is-dragging .spiral-hero__item.is-depth-item.is-side-next {
  pointer-events: none;
  cursor: grab;
}

.spiral-hero__item.is-depth-item:not(.is-active)::before,
.spiral-hero__item.is-depth-item:not(.is-active)::after {
  content: none;
  display: none;
  opacity: 0;
  background: none;
  filter: none;
  mix-blend-mode: normal;
}

.spiral-hero__orbit.is-in-motion .spiral-hero__item.is-motion-flat {
  display: flex;
  align-items: center;
  justify-content: center;
  --spiral-active-scale: 1;
  width: calc(var(--spiral-stage-width) * var(--spiral-active-scale));
  height: calc((100% - 2 * var(--spiral-artwork-pad-y)) * var(--spiral-active-scale));
  box-sizing: border-box;
  overflow: hidden;
}

.spiral-hero__orbit.is-in-motion .spiral-hero__item.is-motion-flat img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  pointer-events: none;
}

.spiral-hero__orbit.is-in-motion .spiral-hero__item.is-motion-flat.is-active img {
  pointer-events: auto;
  cursor: pointer;
}

.spiral-hero__item {
  position: absolute;
  left: 0;
  top: 0;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  transform-origin: center center;
  -webkit-tap-highlight-color: transparent;
  --spiral-depth-brightness: 1;
  --spiral-depth-contrast: 1;
  --spiral-depth-color: 1;
  --spiral-depth-gloss: 0;
  --spiral-depth-ghost: 0;
}

.spiral-hero__item img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(22vw, 9rem);
  max-height: clamp(4.5rem, 10vh, 7.5rem);
  object-fit: contain;
  object-position: center;
  pointer-events: none;
}

.spiral-hero__orbit.is-in-motion .spiral-hero__item {
  will-change: transform, opacity;
}

.spiral-hero__orbit.is-in-motion .spiral-hero__item img {
  will-change: filter;
}

.spiral-hero__item.is-active::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: calc(var(--spiral-depth-gloss, 0) * var(--spiral-depth-gloss-scale, 1));
  background: linear-gradient(
    158deg,
    rgba(255, 255, 255, 0.1) 0%,
    rgba(255, 255, 255, 0.028) 22%,
    transparent 48%,
    rgba(255, 255, 255, 0.012) 78%,
    rgba(255, 255, 255, 0.034) 100%
  );
  mix-blend-mode: soft-light;
}

.spiral-hero__item:focus-visible {
  outline: 1px solid color-mix(in srgb, var(--color-text) 35%, transparent);
  outline-offset: 6px;
}

/* Side film-strip masks — depth composition: outer (small) + adjacent (medium) */
.spiral-hero__item.is-side-mask {
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--spiral-side-mask-height, var(--spiral-stage-content-height));
  overflow: hidden;
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.spiral-hero__item.is-side-adjacent {
  width: var(--spiral-side-mask-width-adjacent);
}

.spiral-hero__item.is-side-outer {
  width: var(--spiral-side-mask-width-outer);
}

.spiral-hero__item.is-side-mask img {
  display: block;
  flex: none;
  width: auto;
  height: 100%;
  min-height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
}

.spiral-hero__item.is-side-prev img {
  object-position: right center;
}

.spiral-hero__item.is-side-next img {
  object-position: left center;
}

.spiral-hero__item:not(.is-active):not(.is-side-mask):not(.is-side-prev):not(.is-side-next) {
  pointer-events: none;
}

.spiral-hero__item.is-active {
  display: flex;
  align-items: center;
  justify-content: center;
  --spiral-active-scale: 1;
  width: calc(var(--spiral-stage-width) * var(--spiral-active-scale));
  height: calc((100% - 2 * var(--spiral-artwork-pad-y)) * var(--spiral-active-scale));
  box-sizing: border-box;
}

.spiral-hero__item.is-active img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  pointer-events: auto;
  cursor: pointer;
}

.spiral-hero__labels {
  position: relative;
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: clamp(2rem, 5.25dvh, 2.85rem);
  margin-top: clamp(-0.38rem, -0.9dvh, -0.16rem);
  padding: clamp(0.05rem, 0.16vh, 0.12rem) 0 clamp(0.13rem, 0.32vh, 0.25rem);
}

.spiral-hero__labels::before,
.spiral-hero__labels::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: min(78%, 30rem);
  height: 1px;
  background: color-mix(in srgb, var(--color-text) 16%, transparent);
  pointer-events: none;
}

.spiral-hero__labels::before {
  top: 0;
}

.spiral-hero__labels::after {
  bottom: 0;
}

.spiral-hero__label {
  display: block;
  width: 100%;
  max-width: var(--spiral-info-width);
  margin-inline: auto;
  padding: 0;
  border: none;
  background: none;
  font-family: var(--font-display);
  font-size: clamp(1.38rem, 3.85vw, 2.1rem);
  line-height: 1.35;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--color-text);
  cursor: pointer;
  opacity: 0.28;
  -webkit-tap-highlight-color: transparent;
}

.spiral-hero__label-text {
  display: block;
  width: 100%;
  text-align: justify;
  text-align-last: center;
  text-indent: 0;
  hyphens: auto;
  text-wrap: balance;
}

.spiral-hero__label.is-active {
  opacity: 1;
  position: relative;
  z-index: 1;
}

.spiral-hero__label:not(.is-active) {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: var(--spiral-info-width);
  margin-inline: auto;
  pointer-events: none;
  visibility: hidden;
}

.spiral-hero__label:focus-visible {
  outline: 1px solid color-mix(in srgb, var(--color-text) 35%, transparent);
  outline-offset: 4px;
}

.spiral-hero__info {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
  margin-top: clamp(-0.1rem, -0.25vh, 0);
  text-align: center;
}

.spiral-hero__caption-slide-wrap {
  overflow: hidden;
  width: 100%;
  flex-shrink: 0;
}

.spiral-hero__info-column > .spiral-hero__info {
  flex-shrink: 0;
  width: 100%;
  transform: none !important;
  transition: none !important;
}

.spiral-hero__caption-track {
  display: flex;
}

.spiral-hero__info-column.is-caption-sliding .spiral-hero__caption-track {
  will-change: transform;
}

.spiral-hero__caption-panel {
  position: relative;
  flex: 0 0 100%;
  width: 100%;
  min-width: 100%;
  box-sizing: border-box;
}

.spiral-hero__caption-label-spacer {
  flex-shrink: 0;
  width: 100%;
  min-height: clamp(2rem, 5.25dvh, 2.85rem);
  margin-top: clamp(-0.38rem, -0.9dvh, -0.16rem);
  padding: clamp(0.05rem, 0.16vh, 0.12rem) 0 clamp(0.13rem, 0.32vh, 0.25rem);
  box-sizing: border-box;
  pointer-events: none;
}

.spiral-hero__caption-panel-title {
  display: none;
  width: 100%;
  max-width: var(--spiral-info-width);
  margin: 0 auto;
  padding: 0;
  border: none;
  background: none;
  font-family: var(--font-display);
  font-size: clamp(1.38rem, 3.85vw, 2.1rem);
  line-height: 1.35;
  letter-spacing: 0.22em;
  text-indent: 0;
  text-transform: uppercase;
  text-align: justify;
  text-align-last: center;
  hyphens: auto;
  text-wrap: balance;
  color: var(--color-text);
  box-sizing: border-box;
}

.spiral-hero__info-column.is-caption-sliding .spiral-hero__labels {
  visibility: hidden;
  pointer-events: none;
}

.spiral-hero__info-column.is-caption-sliding .spiral-hero__caption-panel-title {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  min-height: clamp(2rem, 5.25dvh, 2.85rem);
  margin-top: clamp(-0.38rem, -0.9dvh, -0.16rem);
  padding: clamp(0.05rem, 0.16vh, 0.12rem) 0 clamp(0.13rem, 0.32vh, 0.25rem);
  z-index: 1;
}

.spiral-hero__info-column.is-caption-sliding .spiral-hero__caption-panel-title::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(78%, 30rem);
  height: 1px;
  background: color-mix(in srgb, var(--color-text) 16%, transparent);
  pointer-events: none;
}

.spiral-hero__info-column.is-caption-sliding .spiral-hero__caption-panel,
.spiral-hero__info-column.is-caption-sliding .spiral-hero__caption-panel * {
  transition: none !important;
}

.spiral-hero__info-column.is-caption-sliding .spiral-hero__caption-panel * {
  transform: none !important;
}

.spiral-hero__meta {
  width: 100%;
  text-align: center;
  margin-top: 0;
}

.spiral-hero__meta-year {
  margin: 0 0 clamp(0.12rem, 0.32vh, 0.19rem);
  font-family: var(--font-display);
  font-size: clamp(0.9rem, 2.15vw, 1.05rem);
  letter-spacing: 0.26em;
  text-indent: 0.26em;
  text-transform: uppercase;
  color: var(--color-text);
  opacity: 0.9;
}

.spiral-hero__meta-medium,
.spiral-hero__meta-dimensions {
  margin: 0;
  font-family: var(--font-body);
  font-size: clamp(0.76rem, 1.75vw, 0.88rem);
  font-weight: 300;
  letter-spacing: 0.1em;
  line-height: 1.55;
  color: var(--color-text-muted);
  overflow-wrap: anywhere;
  max-width: 100%;
}

.spiral-hero__meta-medium {
  margin-bottom: 0.07rem;
}

.spiral-hero__availability {
  margin-top: clamp(0.57rem, 1.4vh, 0.78rem);
  margin-bottom: clamp(0.35rem, 0.95vh, 0.62rem);
  padding-top: clamp(0.48rem, 1.18vh, 0.62rem);
  border-top: 1px solid color-mix(in srgb, var(--color-text) 12%, transparent);
}

.spiral-hero__availability-kicker {
  margin: 0 0 0.28rem;
  font-family: var(--font-body);
  font-size: clamp(0.66rem, 2vw, 0.78rem);
  font-weight: 300;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--color-text-faint);
}

.spiral-hero__availability-title {
  margin: 0 0 clamp(0.39rem, 0.87vh, 0.54rem);
  font-family: var(--font-body);
  font-size: clamp(0.72rem, 1.85vw, 0.84rem);
  font-weight: 300;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.spiral-hero__availability-rule {
  width: min(100%, 14rem);
  height: 1px;
  margin: 0 auto clamp(0.48rem, 1.1vh, 0.65rem);
  background: color-mix(in srgb, var(--color-text) 14%, transparent);
}

.spiral-hero__availability-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.65rem, 1.8vw, 1rem) clamp(1rem, 3vw, 1.75rem);
  max-width: 18rem;
  margin: 0 auto;
}

.spiral-hero__availability-item {
  margin: 0;
}

.spiral-hero__availability-label {
  margin: 0 0 0.23rem;
  font-family: var(--font-body);
  font-size: clamp(0.66rem, 2vw, 0.78rem);
  font-weight: 300;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--color-text-faint);
}

.spiral-hero__availability-value {
  margin: 0;
  font-family: var(--font-body);
  font-size: clamp(0.76rem, 1.75vw, 0.88rem);
  font-weight: 300;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  overflow-wrap: anywhere;
}

[data-spiral-meta-auction-date] {
  white-space: pre-line;
  line-height: 1.45;
}

.spiral-hero__availability-value.is-auction-status-available {
  color: var(--color-accent);
}

.spiral-hero__auction-cta {
  width: 100%;
  margin-top: clamp(0.5rem, 1.15vh, 0.72rem);
  text-align: center;
}

.spiral-hero__auction-cta[hidden] {
  display: none !important;
}

.spiral-hero__auction-cta-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0.5rem 1.05rem;
  border: 1px solid color-mix(in srgb, var(--color-accent) 22%, transparent);
  background: transparent;
  font-family: var(--font-body);
  font-size: clamp(0.56rem, 1.55vw, 0.66rem);
  font-weight: 300;
  letter-spacing: 0.34em;
  text-indent: 0.34em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  color: var(--color-accent);
  opacity: 0.78;
  transition:
    color 0.45s var(--ease-out),
    border-color 0.45s var(--ease-out),
    opacity 0.45s var(--ease-out);
}

.spiral-hero__auction-cta-link:hover,
.spiral-hero__auction-cta-link:focus-visible {
  opacity: 1;
  color: var(--color-accent-hover);
  border-color: color-mix(in srgb, var(--color-accent) 40%, transparent);
  outline: none;
}

@media (max-width: 1024px) {
  .spiral-hero-section {
    --spiral-stage-vw: 90;
    --spiral-stage-max-rem: 38;
    --spiral-frame-vh: 71;
    --spiral-frame-max: 44rem;
  }

  .spiral-hero__labels {
    margin-top: 0;
  }

  .spiral-hero__orbit {
    margin-bottom: 0;
  }
}

@media (max-width: 640px) {
  .spiral-hero-section {
    --spiral-stage-vw: 88;
    --spiral-stage-max-rem: 32;
    --spiral-primary-artwork-scale: 0.78;
    --spiral-frame-vh: 62;
    --spiral-frame-max: 36rem;
    --spiral-ui-presence-scale: 0.86;
  }

  .spiral-hero__carousel,
  .spiral-hero__track,
  .spiral-hero__orbit,
  .spiral-hero__item.is-depth-item {
    overflow: visible;
  }

  .spiral-hero__item.is-depth-item:not(.is-side-prev):not(.is-side-next) img {
    object-fit: contain;
    object-position: center;
  }

  .spiral-hero__info-bar {
    padding-inline: 0;
    align-items: center;
  }

  .spiral-hero__info-column {
    max-width: 100%;
    margin-top: 0;
    align-items: center;
  }

  .spiral-hero__nav {
    min-width: 48px;
    min-height: 48px;
    padding: 0.85rem;
    align-self: center;
  }

  .spiral-hero__orbit {
    margin-bottom: 0;
  }

  .spiral-hero__caption {
    padding-inline: 0;
  }

  .spiral-hero__labels {
    justify-content: center;
    align-items: center;
    min-height: clamp(2.65rem, 7.75dvh, 3.85rem);
    margin-top: 0;
    padding: clamp(0.07rem, 0.28dvh, 0.16rem) 0 clamp(0.28rem, 0.77dvh, 0.42rem);
  }

  .spiral-hero__labels::before {
    left: 50%;
    transform: translateX(-50%);
    width: min(72%, 20rem);
    background: linear-gradient(
      90deg,
      transparent 0%,
      color-mix(in srgb, var(--color-text) 4%, transparent) 18%,
      color-mix(in srgb, var(--color-text) 14%, transparent) 50%,
      color-mix(in srgb, var(--color-text) 4%, transparent) 82%,
      transparent 100%
    );
  }

  .spiral-hero__info-column.is-caption-sliding .spiral-hero__caption-panel-title::before {
    width: min(72%, 20rem);
    background: linear-gradient(
      90deg,
      transparent 0%,
      color-mix(in srgb, var(--color-text) 4%, transparent) 18%,
      color-mix(in srgb, var(--color-text) 14%, transparent) 50%,
      color-mix(in srgb, var(--color-text) 4%, transparent) 82%,
      transparent 100%
    );
  }

  .spiral-hero__labels::after {
    display: none;
  }

  .spiral-hero__label {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    font-size: clamp(1.28rem, 6.2vw, 1.62rem);
    line-height: 1.28;
    letter-spacing: clamp(0.11em, 2.4vw, 0.15em);
    text-align: center;
  }

  .spiral-hero__label:not(.is-active) {
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
  }

  .spiral-hero__label.is-active {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
  }

  .spiral-hero__caption-label-spacer,
  .spiral-hero__info-column.is-caption-sliding .spiral-hero__caption-panel-title {
    min-height: clamp(2.65rem, 7.75dvh, 3.85rem);
    margin-top: 0;
    padding: clamp(0.07rem, 0.28dvh, 0.16rem) 0 clamp(0.28rem, 0.77dvh, 0.42rem);
  }

  .spiral-hero__label-text {
    text-align: center;
    text-align-last: center;
    text-wrap: balance;
  }

  .spiral-hero__info {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    margin-top: var(--spiral-title-meta-gap);
    padding-inline: 0;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .spiral-hero__meta {
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spiral-meta-line-gap);
  }

  .spiral-hero__meta-year {
    font-size: clamp(0.8rem, 3.1vw, 0.94rem);
    letter-spacing: clamp(0.18em, 2.4vw, 0.22em);
    text-indent: 0;
    opacity: 0.85;
    margin: 0;
  }

  .spiral-hero__meta-medium,
  .spiral-hero__meta-dimensions {
    font-size: clamp(0.72rem, 2.75vw, 0.84rem);
    letter-spacing: clamp(0.07em, 1.1vw, 0.1em);
    line-height: 1.58;
    opacity: 0.66;
    margin: 0;
  }

  .spiral-hero__availability {
    width: 100%;
    margin-top: var(--spiral-meta-auction-gap);
    margin-bottom: clamp(0.28rem, 0.82dvh, 0.48rem);
    padding-top: clamp(0.42rem, 1.1dvh, 0.54rem);
    text-align: center;
    border-top: 1px solid color-mix(in srgb, var(--color-text) 10%, transparent);
  }

  .spiral-hero__availability-kicker {
    letter-spacing: clamp(0.28em, 3.2vw, 0.34em);
    opacity: 0.58;
    margin-bottom: var(--spiral-auction-line-gap);
    font-size: clamp(0.64rem, 2.5vw, 0.74rem);
  }

  .spiral-hero__availability-rule {
    display: none;
  }

  .spiral-hero__availability-grid {
    grid-template-columns: 1fr;
    gap: 0;
    width: 100%;
    max-width: 100%;
    margin: 0;
    justify-items: center;
  }

  .spiral-hero__availability-item {
    width: 100%;
    text-align: center;
  }

  .spiral-hero__availability-item:first-child .spiral-hero__availability-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .spiral-hero__availability-item:first-child .spiral-hero__availability-value {
    font-size: clamp(0.84rem, 3.25vw, 0.98rem);
    letter-spacing: clamp(0.1em, 1.35vw, 0.13em);
    line-height: 1.55;
    opacity: 0.76;
    margin: 0;
    text-align: center;
  }

  .spiral-hero__availability-item:last-child {
    margin-top: var(--spiral-auction-line-gap);
  }

  .spiral-hero__availability-label {
    letter-spacing: clamp(0.26em, 3vw, 0.32em);
    opacity: 0.58;
    margin-bottom: clamp(0.085rem, 0.28dvh, 0.14rem);
    font-size: clamp(0.62rem, 2.4vw, 0.72rem);
    text-align: center;
  }

  .spiral-hero__availability-value {
    letter-spacing: clamp(0.09em, 1.2vw, 0.12em);
    opacity: 0.72;
    text-align: center;
  }

  [data-spiral-meta-auction-status].is-auction-status-available {
    opacity: 1;
  }

  .spiral-hero__auction-cta {
    margin-top: clamp(0.42rem, 1dvh, 0.58rem);
  }

  .spiral-hero__auction-cta-link {
    min-height: 44px;
    padding-inline: 1.15rem;
    font-size: clamp(0.54rem, 2.1vw, 0.64rem);
    letter-spacing: clamp(0.28em, 2.8vw, 0.34em);
    text-indent: 0;
  }
}

@media (min-width: 641px) and (max-width: 900px) {
  .spiral-hero-section {
    --spiral-caption-stack-min: clamp(
      calc(12.25rem + var(--spiral-auction-date-reserve) + var(--spiral-auction-cta-reserve)),
      calc(29dvh + var(--spiral-auction-date-reserve) + var(--spiral-auction-cta-reserve)),
      calc(15.25rem + var(--spiral-auction-date-reserve) + var(--spiral-auction-cta-reserve))
    );
  }

  .spiral-hero-section.section {
    padding-top: clamp(1.5rem, 4.5dvh, 2.25rem);
    padding-bottom: clamp(2rem, 5.5dvh, 3.25rem);
  }
}

@media (min-width: 641px) and (max-width: 900px) and (orientation: portrait) {
  .spiral-hero__labels {
    justify-content: flex-start;
    align-items: flex-start;
    min-height: clamp(2.65rem, calc(var(--spiral-orbit-frame-height) * 0.22), 3.55rem);
    margin-top: calc(-1 * var(--spiral-caption-shift-up));
  }

  .spiral-hero__labels::before {
    left: 0;
    transform: none;
    width: 100%;
    background: linear-gradient(
      90deg,
      color-mix(in srgb, var(--color-text) 14%, transparent) 0%,
      color-mix(in srgb, var(--color-text) 4%, transparent) 34%,
      transparent 66%
    );
  }

  .spiral-hero__labels::after {
    display: none;
  }

  .spiral-hero__label,
  .spiral-hero__label:not(.is-active) {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    text-align: left;
    align-items: flex-start;
    justify-content: flex-start;
  }

  .spiral-hero__label-text {
    text-align: left;
    text-align-last: left;
  }

  .spiral-hero__info {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    text-align: left;
    display: flex;
    flex-direction: column;
  }

  .spiral-hero__meta {
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: var(--spiral-meta-line-gap);
  }

  .spiral-hero__meta-year {
    text-indent: 0;
  }

  .spiral-hero__availability {
    text-align: left;
    border-top: 1px solid color-mix(in srgb, var(--color-text) 10%, transparent);
  }

  .spiral-hero__availability-grid {
    grid-template-columns: 1fr;
    gap: 0;
    max-width: none;
    margin: 0;
    justify-items: start;
  }

  .spiral-hero__availability-item:first-child .spiral-hero__availability-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .spiral-hero__availability-item:last-child {
    margin-top: var(--spiral-auction-line-gap);
  }
}

@media (max-width: 389px) {
  .spiral-hero-section {
    --spiral-stage-max-rem: 28;
    --spiral-frame-vh: 58;
    --spiral-frame-max: 32rem;
  }

  .spiral-hero__label {
    font-size: clamp(1.05rem, 5.1vw, 1.38rem);
    letter-spacing: clamp(0.14em, 2.4vw, 0.17em);
  }
}

@media (orientation: landscape) and (max-height: 500px) and (max-width: 900px) {
  .spiral-hero-section {
    overflow-y: clip;

    /* —— Mobile landscape: width-first stage, stable vertical budget —— */
    --spiral-stage-vw: 94;
    --spiral-stage-vh-limit: 0;
    --spiral-stage-max-rem: 48;
    --spiral-stage-width: min(
      calc(var(--spiral-stage-vw) * 1vw - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)),
      calc(var(--spiral-stage-max-rem) * 1rem)
    );
    --spiral-info-width: min(100%, var(--spiral-stage-width));
    --spiral-primary-artwork-scale: 0.92;
    --spiral-artwork-boost-scale: 1.04;
    --spiral-ui-presence-scale: 0.9;

    --spiral-landscape-viewport-budget: calc(
      100dvh - var(--header-height) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)
    );
    --spiral-landscape-section-pad-top: max(
      clamp(0.28rem, 1.1dvh, 0.48rem),
      env(safe-area-inset-top, 0px)
    );
    --spiral-landscape-section-pad-bottom: max(
      clamp(0.24rem, 0.95dvh, 0.42rem),
      calc(env(safe-area-inset-bottom, 0px) + 0.12rem)
    );
    --spiral-landscape-intro-stack: clamp(0.82rem, 3.6dvh, 1.05rem);

    /* Info frame — fixed reserve, no overlap with carousel */
    --spiral-caption-stack-min: clamp(
      calc(6.75rem + var(--spiral-auction-cta-reserve)),
      calc(39.5dvh + var(--spiral-auction-cta-reserve)),
      calc(8.1rem + var(--spiral-auction-cta-reserve))
    );
    --spiral-gallery-caption-gap: clamp(0.14rem, 0.72dvh, 0.28rem);
    --spiral-caption-shift-up: 0px;
    --spiral-title-meta-gap: clamp(0.07rem, 0.48dvh, 0.14rem);
    --spiral-meta-line-gap: clamp(0.03rem, 0.22dvh, 0.08rem);
    --spiral-meta-auction-gap: clamp(0.1rem, 0.62dvh, 0.18rem);
    --spiral-auction-line-gap: clamp(0.05rem, 0.32dvh, 0.12rem);
    --spiral-landscape-info-reserve: var(--spiral-caption-stack-min);

    --spiral-landscape-artwork-pad-y: clamp(0.12rem, 0.52dvh, 0.22rem);
    --spiral-orbit-frame-min-height: 0px;
    --spiral-frame-min: 0px;
    --spiral-frame-vh: 0;
    --spiral-frame-max: 999rem;

    --spiral-landscape-frame-budget: calc(
      var(--spiral-landscape-viewport-budget) - var(--spiral-landscape-section-pad-top) -
        var(--spiral-landscape-section-pad-bottom) - var(--spiral-landscape-intro-stack) -
        var(--spiral-landscape-info-reserve) - var(--spiral-gallery-caption-gap)
    );
    --spiral-landscape-frame-aspect-cap: calc(
      var(--spiral-stage-width) / var(--spiral-tallest-portrait-ratio) * var(--spiral-primary-artwork-scale) +
        2 * var(--spiral-landscape-artwork-pad-y)
    );
    --spiral-orbit-frame-height: clamp(
      6.75rem,
      min(var(--spiral-landscape-frame-budget), var(--spiral-landscape-frame-aspect-cap)),
      calc(var(--spiral-landscape-viewport-budget) * 0.47)
    );

    --spiral-carousel-shift-up: 0px;
    --latest-label-nudge-left: clamp(0.12rem, 1.2vw, 0.28rem);
  }

  .spiral-hero-section.section {
    min-height: auto;
    max-height: 100dvh;
    display: flex;
    flex-direction: column;
    padding-top: var(--spiral-landscape-section-pad-top);
    padding-bottom: var(--spiral-landscape-section-pad-bottom);
    padding-inline: max(clamp(0.32rem, 1.4vw, 0.55rem), env(safe-area-inset-left, 0px))
      max(clamp(0.32rem, 1.4vw, 0.55rem), env(safe-area-inset-right, 0px));
  }

  .spiral-hero-section .section__inner {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  .latest-work__intro {
    flex-shrink: 0;
    --latest-work-carousel-gap: clamp(0.1rem, 0.42dvh, 0.18rem);
  }

  .spiral-hero-section #latest-label {
    font-size: clamp(0.52rem, 2.1vw, 0.62rem);
    letter-spacing: clamp(0.34em, 3.2vw, 0.44em);
    opacity: 0.68;
  }

  .spiral-hero-section #latest-label::after {
    margin-top: clamp(0.24rem, 0.82dvh, 0.38rem);
  }

  .spiral-hero {
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 0;
  }

  .spiral-hero__stage,
  .spiral-hero__viewport {
    height: 100%;
    min-height: 0;
  }

  .spiral-hero__gallery {
    height: 100%;
    min-height: 0;
    justify-content: flex-start;
  }

  .spiral-hero__carousel {
    flex: 1 1 auto;
    min-height: var(--spiral-orbit-frame-height);
  }

  .spiral-hero__orbit {
    --spiral-artwork-pad-y: var(--spiral-landscape-artwork-pad-y);
    --spiral-side-mask-gap: clamp(0.16rem, calc(var(--spiral-stage-width) * 0.009), 0.38rem);
    margin-bottom: 0;
  }

  .spiral-hero__caption {
    flex-shrink: 0;
    height: auto;
    min-height: var(--spiral-caption-stack-min);
    max-height: var(--spiral-caption-stack-min);
    margin-top: 0;
    padding-inline: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }

  .spiral-hero__info-bar {
    display: grid;
    grid-template-columns: 1fr auto auto 1fr;
    grid-template-rows: minmax(0, 1fr) auto;
    align-items: center;
    justify-items: center;
    width: 100%;
    height: 100%;
    min-height: 0;
    row-gap: clamp(0.18rem, 0.72dvh, 0.28rem);
    column-gap: clamp(1.1rem, 7vw, 2rem);
    --spiral-nav-hit-size: clamp(2rem, calc(var(--spiral-info-width) * 0.095), 2.45rem);
    --spiral-nav-icon-size: clamp(1rem, calc(var(--spiral-info-width) * 0.054), 1.28rem);
  }

  .spiral-hero__info-column {
    grid-column: 1 / -1;
    grid-row: 1;
    width: 100%;
    max-width: 100%;
    min-height: 0;
    margin-top: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    overflow: hidden;
  }

  .spiral-hero__nav {
    grid-row: 2;
    min-width: 40px;
    min-height: 40px;
    padding: 0.45rem;
    align-self: center;
  }

  .spiral-hero__nav--prev {
    grid-column: 2;
    justify-self: end;
  }

  .spiral-hero__nav--next {
    grid-column: 3;
    justify-self: start;
  }

  .spiral-hero__labels {
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: clamp(1.35rem, calc(var(--spiral-orbit-frame-height) * 0.14), 1.75rem);
    margin-top: 0;
    padding: clamp(0.02rem, 0.12dvh, 0.08rem) 0 clamp(0.08rem, 0.38dvh, 0.16rem);
  }

  .spiral-hero__labels::before {
    left: 50%;
    transform: translateX(-50%);
    width: min(72%, var(--spiral-info-width));
    background: linear-gradient(
      90deg,
      transparent 0%,
      color-mix(in srgb, var(--color-text) 4%, transparent) 18%,
      color-mix(in srgb, var(--color-text) 14%, transparent) 50%,
      color-mix(in srgb, var(--color-text) 4%, transparent) 82%,
      transparent 100%
    );
  }

  .spiral-hero__info-column.is-caption-sliding .spiral-hero__caption-panel-title::before {
    width: min(72%, var(--spiral-info-width));
    background: linear-gradient(
      90deg,
      transparent 0%,
      color-mix(in srgb, var(--color-text) 4%, transparent) 18%,
      color-mix(in srgb, var(--color-text) 14%, transparent) 50%,
      color-mix(in srgb, var(--color-text) 4%, transparent) 82%,
      transparent 100%
    );
  }

  .spiral-hero__labels::after {
    display: none;
  }

  .spiral-hero__label {
    width: 100%;
    max-width: var(--spiral-info-width);
    margin-inline: 0;
    font-size: clamp(0.88rem, 3.2vw, 1.08rem);
    line-height: 1.18;
    letter-spacing: clamp(0.09em, 1.35vw, 0.12em);
    text-align: center;
  }

  .spiral-hero__label:not(.is-active) {
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: var(--spiral-info-width);
    margin-inline: 0;
  }

  .spiral-hero__label.is-active {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: var(--spiral-info-width);
    margin-inline: 0;
  }

  .spiral-hero__caption-label-spacer,
  .spiral-hero__info-column.is-caption-sliding .spiral-hero__caption-panel-title {
    min-height: clamp(1.35rem, calc(var(--spiral-orbit-frame-height) * 0.14), 1.75rem);
    margin-top: 0;
    padding: clamp(0.02rem, 0.12dvh, 0.08rem) 0 clamp(0.08rem, 0.38dvh, 0.16rem);
  }

  .spiral-hero__label-text {
    text-align: center;
    text-align-last: center;
    text-wrap: balance;
  }

  .spiral-hero__info {
    flex-shrink: 0;
    width: 100%;
    max-width: var(--spiral-info-width);
    margin-inline: auto;
    margin-top: var(--spiral-title-meta-gap);
    padding-inline: 0;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow: hidden;
  }

  .spiral-hero__meta {
    flex-shrink: 0;
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spiral-meta-line-gap);
    margin: 0;
  }

  .spiral-hero__meta-year {
    margin: 0;
    font-size: clamp(0.64rem, 1.85vw, 0.74rem);
    letter-spacing: clamp(0.13em, 1.45vw, 0.17em);
    text-indent: 0;
    line-height: 1.2;
    opacity: 0.85;
  }

  .spiral-hero__meta-medium,
  .spiral-hero__meta-dimensions {
    margin: 0;
    font-size: clamp(0.58rem, 1.65vw, 0.66rem);
    letter-spacing: clamp(0.055em, 0.78vw, 0.085em);
    line-height: 1.28;
    opacity: 0.66;
  }

  .spiral-hero__availability {
    flex-shrink: 0;
    width: 100%;
    margin: var(--spiral-meta-auction-gap) 0 0;
    padding-top: 0;
    border-top: none;
    text-align: center;
  }

  .spiral-hero__availability-kicker,
  .spiral-hero__availability-rule {
    display: none;
  }

  .spiral-hero__availability-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spiral-auction-line-gap);
    width: 100%;
    max-width: none;
    margin: 0;
  }

  .spiral-hero__availability-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0;
  }

  .spiral-hero__availability-item:last-child {
    order: 1;
    margin-top: 0;
  }

  .spiral-hero__availability-item:first-child {
    order: 2;
    margin-top: 0;
  }

  .spiral-hero__availability-item:first-child .spiral-hero__availability-label,
  .spiral-hero__availability-item:last-child .spiral-hero__availability-label {
    position: static;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0 0 clamp(0.04rem, 0.18dvh, 0.08rem);
    overflow: visible;
    clip: auto;
    white-space: normal;
    border: 0;
    letter-spacing: clamp(0.2em, 2vw, 0.24em);
    opacity: 0.58;
    font-size: clamp(0.5rem, 1.7vw, 0.58rem);
    text-align: center;
  }

  .spiral-hero__availability-item:first-child .spiral-hero__availability-value,
  .spiral-hero__availability-item:last-child .spiral-hero__availability-value {
    margin: 0;
    font-size: clamp(0.62rem, 1.9vw, 0.72rem);
    letter-spacing: clamp(0.07em, 0.82vw, 0.095em);
    line-height: 1.32;
    opacity: 0.76;
    text-align: center;
  }

  [data-spiral-meta-auction-status].is-auction-status-available {
    opacity: 1;
  }
}

@media (orientation: landscape) and (max-height: 500px) and (min-width: 901px) {
  .spiral-hero-section {
    --spiral-stage-vw: 48;
    --spiral-stage-vh-limit: 42;
    --spiral-stage-width: min(
      calc(var(--spiral-stage-vw) * 1vw),
      calc(var(--spiral-stage-vh-limit) * 1dvh),
      calc(var(--spiral-stage-max-rem) * 1rem)
    );
    --spiral-stage-max-rem: 24;
    --spiral-info-width: var(--spiral-stage-width);
    --spiral-frame-min: 9rem;
    --spiral-frame-vh: 62;
    --spiral-frame-max: 14.5rem;
    --spiral-ui-presence-scale: 0.76;
    --spiral-carousel-shift-up: clamp(0.62rem, 1.55dvh, 1.05rem);
    --latest-label-nudge-left: clamp(0.22rem, 2.2vw, 0.48rem);
  }
}

@media (hover: none) and (pointer: coarse) {
  .spiral-hero__item.is-active img,
  .spiral-hero__item.is-side-prev img,
  .spiral-hero__item.is-side-next img {
    pointer-events: auto;
  }

  .spiral-hero__caption-track {
    transform: none !important;
  }

  .spiral-hero__info-column:not(.is-caption-sliding) .spiral-hero__labels {
    visibility: visible;
    pointer-events: auto;
  }

  .spiral-hero__info-column:not(.is-caption-sliding) .spiral-hero__label.is-active {
    visibility: visible;
    opacity: 1;
  }
}

@media (orientation: landscape) and (max-height: 500px) and (max-width: 900px) and (hover: none) and (pointer: coarse) {
  .spiral-hero__caption {
    max-height: none;
    overflow-x: clip;
    overflow-y: visible;
  }

  .spiral-hero__info-column {
    overflow: visible;
  }
}

@media (prefers-reduced-motion: reduce) {
  .spiral-hero__orbit {
    --spiral-depth-gloss-scale: 0.5;
  }

  .spiral-hero__nav::after {
    transition: opacity 0.2s ease;
  }

  .spiral-hero__nav--prev:hover::after,
  .spiral-hero__nav--prev:focus-visible::after,
  .spiral-hero__nav--next:hover::after,
  .spiral-hero__nav--next:focus-visible::after {
    transform: none;
  }

  .spiral-hero__nav--next::after {
    transform: scaleX(-1);
  }

  .spiral-hero__caption-track {
    transform: none !important;
  }
}

/* Scene breathing — LATEST WORK → Featured Originals */

.spiral-hero-section.section {
  padding-bottom: max(
    clamp(1.85rem, 4.5dvh, 2.85rem),
    env(safe-area-inset-bottom, 0px)
  );
}

.spiral-hero-section.section + .featured-originals-screen {
  margin-top: clamp(1.15rem, 2.85dvh, 1.95rem);
  padding-top: clamp(1.4rem, 3.35dvh, 2.05rem);
}

@media (max-width: 640px) {
  .spiral-hero-section.section {
    padding-bottom: max(
      clamp(1.75rem, 4.75dvh, 2.65rem),
      calc(env(safe-area-inset-bottom, 0px) + 0.5rem)
    );
  }

  .spiral-hero-section.section + .featured-originals-screen {
    margin-top: clamp(1.65rem, 4.35dvh, 2.55rem);
    padding-top: clamp(1.55rem, 3.85dvh, 2.3rem);
  }
}
