.hero-art {
  height: var(--art-height, 340px);
}

.hero-art[hidden] { display: none; }

.art-stage {
  position: absolute;
  inset: 0 0 28px;
  perspective: 850px;
  touch-action: pan-y;
  -webkit-user-select: none;
  user-select: none;
  outline-offset: 4px;
  overflow: clip;
  border-radius: 0;
}

.hero-art[data-interactive="true"] .art-stage { cursor: grab; }
.hero-art .art-stage.is-dragging { cursor: grabbing; }
.art-stage:focus-visible { outline: 1px dashed var(--muted, #777970); }

.art-stage .sculpture {
  width: min(108%, calc(var(--art-height, 340px) * 1.6), calc(var(--art-stage-height, 312px) * 1.9));
  top: 50%;
  transform: translate(-50%, -50%) rotate(-5deg);
  transform-origin: center;
  transition: none;
  pointer-events: none;
  -webkit-user-drag: none;
  will-change: auto;
}

.art-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: none;
  pointer-events: none;
}

.hero-art.is-canvas-art .art-canvas { display: block; }
.hero-art.is-canvas-art .sculpture { visibility: hidden; }
.hero-art.is-canvas-art .art-orbit { display: none; }
.art-stage .art-orbit { pointer-events: none; }

.hero-art .art-caption {
  bottom: 0;
}

.art-toggle {
  position: absolute;
  top: 0;
  right: 5%;
  z-index: 2;
  min-width: 54px;
  min-height: 30px;
  padding: 6px 8px;
  border: 1px solid transparent;
  border-radius: 2px;
  background: var(--paper, #f2f1e9);
  color: var(--muted, #777970);
  font: 9px/1.4 var(--mono, monospace);
  letter-spacing: .65px;
  text-transform: uppercase;
  cursor: pointer;
  opacity: 0;
  transition: opacity 180ms ease, border-color 180ms ease;
}

.art-toggle[hidden] { display: none; }
.hero-art:hover .art-toggle,
.hero-art:focus-within .art-toggle { opacity: 1; }
.art-toggle:hover { border-color: var(--line, #c4c6bc); color: var(--ink, #161715); }
.art-toggle:focus-visible { opacity: 1; outline: 1px solid var(--ink, #161715); outline-offset: 2px; }

@media (hover: none) {
  .art-toggle { opacity: 1; min-height: 40px; }
}

@media (max-width: 740px) {
  .hero-art { height: var(--art-mobile-height, 170px); }
  .art-stage { bottom: 28px; }
  .art-stage .sculpture {
    width: min(285px, calc(var(--art-mobile-height, 170px) * 1.7), calc(var(--art-stage-height, 142px) * 1.9));
    max-width: 100%;
  }
  .art-stage .art-orbit {
    width: min(140px, 80%);
    height: auto;
    aspect-ratio: 1;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
  }
  .art-toggle { top: -4px; right: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .art-toggle { transition: none; }
}
