/* Component registry: docs/components/REGISTRY.md#standviewer */
.stand-viewer { border-top: 1px solid var(--line); }
.stand-viewer [hidden] { display: none !important; }
.stand-viewer-header { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 3rem; margin-bottom: 2.5rem; }
.stand-viewer-header h2 { margin: 0; }
.stand-viewer-header > p { max-width: 30rem; font-size: 1.17rem; color: var(--muted); }
.stand-viewer-frame { border: 0; }
.stand-viewer-stage { position: relative; aspect-ratio: 16 / 10; min-height: 19rem; max-height: 48rem; overflow: hidden; background: transparent; }
.stand-viewer-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.stand-viewer-canvas { position: absolute; inset: 0; visibility: hidden; pointer-events: none; }
.stand-viewer-canvas > canvas { display: block; width: 100%; height: 100%; }
.stand-viewer[data-viewer-state="ready"] .stand-viewer-canvas { visibility: visible; pointer-events: auto; }
.stand-viewer[data-viewer-state="ready"] .stand-viewer-poster { visibility: hidden; }
.stand-viewer-activation { position: absolute; inset: auto 0 2rem; display: flex; justify-content: center; padding-inline: 1rem; }
.stand-viewer-load { display: inline-flex; align-items: center; justify-content: center; gap: .8rem; min-height: 3.3rem; padding: .9rem 1.5rem; border: 1px solid var(--green); background: var(--green); color: #fff8dc; font-size: 1.17rem; box-shadow: 0 3px 16px #1f302519; }
.stand-viewer-load:hover { background: #3d5842; }
.stand-viewer-load:disabled { cursor: wait; opacity: .8; }
.stand-viewer-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; padding: .7rem 1rem; border-top: 1px solid var(--line); }
.stand-viewer-views,.stand-viewer-adjust { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; }
.stand-viewer-toolbar button { min-width: 2.75rem; min-height: 2.75rem; border: 1px solid transparent; padding: .6rem .85rem; background: transparent; font-size: 1.04rem; line-height: 1.2; }
.stand-viewer-toolbar button[aria-pressed="true"] { border-color: var(--green); background: var(--green); color: var(--cream); }
.stand-viewer-toolbar button:hover { border-color: var(--green); }
.stand-viewer-toolbar button:disabled { cursor: wait; opacity: .65; }
.stand-viewer-adjust button > span { font-size: 1.755rem; line-height: 1; }
.stand-viewer-adjust .stand-viewer-reset { margin-inline-start: .4rem; text-decoration: underline; text-underline-offset: .25em; }
.stand-viewer-footer { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.25rem 2rem; margin-top: 1rem; font-size: .988rem; color: var(--muted); }
.stand-viewer-help { max-width: 45rem; }
.stand-viewer-status:empty { display: none; }
.stand-viewer-status { margin-top: .4rem; }
.stand-viewer-download { flex-shrink: 0; padding-block: .2rem; text-decoration: underline; text-underline-offset: .25em; }
.stand-viewer-download > span { margin-inline-start: .35rem; }
.stand-viewer-canvas > canvas:focus-visible { outline: 3px solid #a94b2d; outline-offset: -6px; }
@media (max-width: 50rem) {
  .stand-viewer-header { grid-template-columns: 1fr; gap: 1.4rem; margin-bottom: 2rem; }
  .stand-viewer-header > p { max-width: 36rem; }
  .stand-viewer-toolbar { gap: .6rem; }
  .stand-viewer-stage { aspect-ratio: 4 / 3; }
}
@media (max-width: 35rem) {
  .stand-viewer-stage { min-height: 18rem; aspect-ratio: 1; }
  .stand-viewer-activation { bottom: 1.25rem; }
  .stand-viewer-toolbar { justify-content: center; padding: .6rem .45rem; }
  .stand-viewer-views { justify-content: center; width: 100%; }
  .stand-viewer-views button { padding-inline: .65rem; }
  .stand-viewer-adjust { justify-content: center; }
  .stand-viewer-adjust button { padding-inline: .5rem; }
  .stand-viewer-divider { margin-inline: .2rem; }
  .stand-viewer-footer { flex-direction: column; gap: .7rem; }
  .stand-viewer-download { min-height: 2.75rem; display: inline-flex; align-items: center; }
}
@media (forced-colors: active) {
  .stand-viewer-canvas > canvas:focus-visible { outline-color: Highlight; }
  .stand-viewer-toolbar button[aria-pressed="true"] { border-width: 3px; }
}

.stand-viewer-appearance { display: inline-flex; border: 1px solid var(--green); margin-inline: .4rem; }
.stand-viewer-appearance button { margin: 0; }

/* Split product inspection: copy and presets left, bounded model right. */
.stand-viewer { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 3rem; }
.stand-viewer-info { min-width: 0; }
.stand-viewer-header { display: block; margin-bottom: 1.5rem; }
.stand-viewer-header > p { margin-top: 1.5rem; }
.stand-viewer-toolbar { padding: 0; border: 0; justify-content: flex-start; }
.stand-viewer-views { justify-content: flex-start; }
.stand-viewer-appearance { margin: .5rem 0; }
.stand-viewer-footer { flex-direction: column; gap: .75rem; font-size: .85rem; }
.stand-viewer-stage { height: min(34rem,65svh); min-height: 20rem; max-height: 34rem; aspect-ratio: auto; }
.stand-viewer-motion { position: absolute; bottom: .75rem; right: .75rem; display: flex; gap: .5rem; }
.stand-viewer-motion button { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; padding: 0; border: 1px solid var(--green); border-radius: 50%; background: var(--paper); color: var(--green); font: 400 1.5rem/1 var(--sans); cursor: pointer; }
.stand-viewer-motion button:hover { background: var(--green); color: white; }
@media (max-width: 50rem) {
  .stand-viewer { grid-template-columns: 1fr; gap: 1.5rem; }
  .stand-viewer-stage { height: min(28rem,60svh); min-height: 18rem; }
}

.stand-viewer-toolbar > .stand-viewer-views { width: 100%; }

.stand-viewer-stage { border: 1px solid var(--line); }
.stand-viewer-motion button { border-radius: 0; }
.stand-viewer-stage .stand-viewer-appearance { position: absolute; top: .75rem; left: .75rem; display: flex; margin: 0; background: var(--paper); }
.stand-viewer-appearance button { min-height: 2.75rem; padding: .6rem .85rem; border: 1px solid transparent; background: transparent; color: var(--ink); font-size: .9rem; cursor: pointer; }
.stand-viewer-appearance button[aria-pressed="true"] { background: var(--green); color: var(--paper); }
.stand-viewer-frame > .stand-viewer-download { display: block; width: fit-content; margin-top: 1rem; font-size: .85rem; }

.stand-viewer-toolbar button[aria-pressed="true"] { color: #fff; }
.stand-viewer-views button:not([aria-pressed="true"]) { text-decoration: underline; text-underline-offset: .25em; }

.stand-viewer-motion button svg { width: 20px; height: 20px; stroke-width: 1.75; }
.stand-viewer-frame .stand-viewer-footer { margin-top: .75rem; }
