/* Only the gallery tabs and the dedicated 360-degree viewer. */
.gallery-nav { flex-wrap: wrap; }
.spin-header { padding-bottom: 2.5rem; }
.spin-header h1 { font-size: clamp(2.6rem, 6vw, 5rem); }
.spin-header .gallery-nav [aria-current="page"] { background: #efdef4; border-color: #ad84c1; }
.spin-section { max-width: 1100px; margin: 0 auto; padding: 1rem 2rem 5rem; }
.spin-card { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); padding: clamp(1rem, 3vw, 2rem); border: 1px solid rgba(73,50,25,.12); border-radius: 8px; background: #fffdf7; box-shadow: var(--shadow-soft); }
.spin-viewer { min-width: 0; }
.spin-stage { position: relative; width: 100%; max-width: 420px; aspect-ratio: 3 / 4; margin: auto; overflow: hidden; background: #f3e8da; cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.spin-stage.is-dragging { cursor: grabbing; }
.spin-stage:focus-visible, .spin-controls button:focus-visible, .spin-slider:focus-visible { outline: 3px solid #9166b9; outline-offset: 4px; }
.spin-poster, .spin-canvas { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.spin-viewer [hidden] { display: none !important; }
.spin-badge { position: absolute; top: 12px; right: 12px; padding: .25rem .7rem; border-radius: 50%; background: #ebd9f1; color: #58376d; font-size: .9rem; pointer-events: none; }
.spin-hint { text-align: center; font-size: .86rem; margin: .85rem 0; color: var(--ink-soft); }
.spin-controls { display: flex; justify-content: center; align-items: center; gap: .75rem; }
.spin-controls button { min-height: 46px; border: 1px solid #c4a5d2; background: #efdef4; color: var(--ink); border-radius: 24px; cursor: pointer; font: inherit; touch-action: manipulation; }
.spin-step { min-width: 46px; font-size: 1.8rem !important; line-height: 1; }
.spin-play { min-width: 118px; padding: .5rem 1.25rem; }
.spin-controls button:hover { background: #e2c6ec; }
.spin-slider-label { display: block; margin: 1rem auto .4rem; max-width: 340px; text-align: center; font-size: .8rem; }
.spin-slider { display: block; width: 100%; min-height: 36px; accent-color: #9666b4; cursor: pointer; }
.spin-status { text-align: center; min-height: 1.7em; font-size: .78rem; color: var(--ink-soft); }
.spin-description { align-self: center; }
.spin-eyebrow { font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: #8e599d; }
.spin-description h2 { font-size: clamp(2.4rem, 4vw, 3.7rem); margin: .5rem 0 1rem; }
.spin-story { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: clamp(1.25rem, 2vw, 1.55rem); line-height: 1.65; }
.spin-note { font-size: .95rem; color: var(--ink-soft); margin: 1.5rem 0; }
@media (max-width: 768px) {
  .spin-card { grid-template-columns: 1fr; gap: 1.5rem; }
  .spin-section { padding: .5rem 1rem 3rem; }
  .spin-stage { max-width: 360px; }
  .spin-description { text-align: center; }
  .spin-header .gallery-nav { gap: .5rem; }
  .spin-header .btn { padding: .65rem 1rem; letter-spacing: .08em; }
}
