/* A read-only canvas explorer within the approved Art Studio landing page. */
.studio-preview { margin-top: clamp(70px, 7vw, 104px); padding-top: clamp(56px, 6vw, 80px); border-top: 1px solid rgba(57,53,48,.16); }
.studio-preview .art-section-heading { margin-bottom: 38px; }
.studio-preview-layout { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(290px,.75fr); gap: clamp(32px,5vw,72px); align-items: start; }
.studio-preview-media, .studio-preview-controls { min-width: 0; }
.studio-preview .product-visual-stage { position: relative; height: 580px; overflow: hidden; }
.studio-preview .product-frame {
  position: absolute; top: 50%; left: 50%;
  width: var(--preview-width, 54%); height: var(--preview-height, auto); aspect-ratio: 2 / 3;
  padding: 0; background: transparent; box-shadow: none; isolation: isolate;
}
.studio-preview .product-frame::before { content: ""; position: absolute; z-index: 0; pointer-events: none; }
.studio-preview .product-frame::after { content: none; }
/* One image paints the canvas directly. No nested clipping/backing surface or
   inset edge can become visible when its fractional dimensions are rasterized. */
.studio-preview .product-frame > .product-art-aperture.store-art-image {
  position: absolute; inset: 0; z-index: 1; display: block;
  width: 100%; height: 100%; max-width: none; max-height: none;
  padding: 0; border: 0; background: transparent; box-shadow: none;
  object-fit: cover; object-position: center; transform: none;
}
.studio-preview .product-stage-caption { align-items: flex-end; font-size: 11px; line-height: 1.5; }
.studio-preview .product-stage-caption > span { max-width: 52%; }
.studio-preview .product-stage-caption > span:last-child { max-width: 45%; }
.studio-preview-controls { border: 0; padding: 0; margin: 0; }
.studio-preview-controls > .eyebrow { margin-bottom: 10px; }
.studio-preview-title { font-size: clamp(28px,2.6vw,38px); margin: 0 0 20px; }
.studio-artwork-navigation { display: flex; align-items: center; gap: 18px; padding-bottom: 24px; margin-bottom: 25px; border-bottom: 1px solid rgba(57,53,48,.16); }
.studio-arrow { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #c7bdb1; border-radius: 2px; background: #fffefa; color: #4c4742; cursor: pointer; transition: background .2s, border-color .2s; }
.studio-arrow:hover { background: #eee7de; border-color: #887361; }
.studio-artwork-navigation > span { min-width: 58px; text-align: center; font-size: 12px; letter-spacing: .08em; font-variant-numeric: tabular-nums; }
.studio-option { margin: 0 0 23px; }
.studio-option-label, .studio-frame-options > legend { display: block; padding: 0; margin-bottom: 10px; color: #4c4742; font-size: 11px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.studio-preview select { display: block; width: 100%; min-height: 50px; padding: 10px 13px; border: 1px solid #c7bdb1; border-radius: 3px; background: #fffefa; color: #393530; font: inherit; font-size: 14px; }
.studio-frame-options { border: 0; padding: 0; margin: 0 0 23px; min-width: 0; }
.studio-frame-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.studio-frame-choice { position: relative; min-width: 0; }
.studio-frame-choice > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.studio-frame-choice > label { display: flex; align-items: center; gap: 10px; min-height: 62px; padding: 14px 12px; border: 1px solid #c7bdb1; border-radius: 3px; color: #4c4742; background: #fffefa; font-size: 12px; cursor: pointer; }
.studio-frame-choice > label::before { content: ""; flex: 0 0 12px; height: 12px; border: 1px solid #938373; border-radius: 50%; box-shadow: inset 0 0 0 3px #fffefa; }
.studio-frame-choice > input:checked + label { background: #eee7de; border-color: #887361; box-shadow: inset 0 0 0 1px #887361; }
.studio-frame-choice > input:checked + label::before { background: #766352; }
.studio-preview :is(button,select):focus-visible, .studio-frame-choice > input:focus-visible + label { outline: 2px solid #887361; outline-offset: 4px; }
.studio-preview button:disabled { cursor: default; opacity: .5; }
.studio-preview [hidden] { display: none !important; }
.studio-preview-note { margin: 8px 0 0; color: #776c5f; font-size: 12px; line-height: 1.75; }
.studio-artwork-rail { position: relative; display: flex; gap: 10px; overflow-x: auto; padding: 10px 3px 12px; margin-top: 12px; scrollbar-width: thin; scrollbar-color: #b9ad9f transparent; }
.studio-artwork-thumb { flex: 0 0 62px; width: 62px; height: 72px; border: 1px solid transparent; border-radius: 2px; padding: 4px; background: transparent; cursor: pointer; transition: border-color .2s, background .2s; }
.studio-artwork-thumb > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.studio-artwork-thumb:hover { border-color: #c7bdb1; }
.studio-artwork-thumb[aria-pressed="true"] { border-color: #887361; background: #eee7de; }
.studio-preview-status { min-height: 1.6em; margin: 8px 0 0; font-size: 12px; color: #71665a; }
.studio-preview-status:empty { display: none; }
.studio-sr-only, .studio-preview-status:not(.is-visible) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 980px) {
  .studio-preview-layout { grid-template-columns: 1fr; gap: 30px; }
  .studio-preview .product-visual-stage { height: clamp(360px,75vw,560px); }
  .studio-preview-controls { display: grid; grid-template-columns: 1fr 1fr; column-gap: 22px; }
  .studio-preview-controls > :is(.eyebrow,.studio-preview-title,.studio-artwork-navigation,.studio-frame-options,.studio-preview-note,.studio-preview-status) { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .studio-preview-controls { display: block; }
  .studio-artwork-thumb { flex-basis: 56px; width: 56px; height: 64px; }
  .studio-preview .product-stage-caption { left: 12px; right: 12px; bottom: 12px; font-size: 10.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .studio-preview *, .studio-preview *::before, .studio-preview *::after { transition: none !important; }
}
