.spatial-layout .content-factory .section-copy { top: 17%; max-width: 35%; }
.spatial-layout .content-factory h2 { font-size: clamp(40px, 4.3vw, calc(90px * var(--scene-scale, 1))); line-height: 1.14; }
.spatial-layout .content-factory .body-copy { font-size: clamp(22px, 1.8vw, calc(30px * var(--scene-scale, 1))); max-width: 24em; }
.content-factory .factory-feedback { font-size: calc(18px * var(--scene-scale, 1)); line-height: 1.4; }
.content-factory .factory-art { position: absolute; z-index: 3; top: 17%; left: 40%; width: 58.5%; height: 70%; perspective: 1700px; transform-style: preserve-3d; touch-action: pan-y; user-select: none; }
.content-factory .factory-roller-anchor { position: absolute; left: 8%; top: 80%; width: 0; height: 0; pointer-events: none; }
.content-factory .factory-film { position: absolute; left: 50%; top: 50%; width: min(35.4svh, calc(382px * var(--scene-scale, 1))); aspect-ratio: 9 / 16; margin: 0; transform-style: preserve-3d; transition: transform 900ms cubic-bezier(.2,.75,.2,1), opacity 700ms, translate 250ms ease; translate: var(--factory-drag-x, 0px) 0; cursor: grab; will-change: transform; }
.content-factory .factory-film[data-position="front"] { z-index: 3; opacity: 1; transform: translate(-50%, -50%) translateZ(90px) rotateY(-3deg); }
.content-factory .factory-film[data-position="left"] { z-index: 1; opacity: .76; transform: translate(-129%, -45%) translateZ(-120px) rotateY(29deg) rotateZ(-7deg); }
.content-factory .factory-film[data-position="right"] { z-index: 2; opacity: .76; transform: translate(29%, -45%) translateZ(-120px) rotateY(-29deg) rotateZ(7deg); }
.content-factory .factory-film-motion { width: 100%; height: 100%; position: relative; transform: translateY(var(--factory-float-y, 0px)) rotateZ(var(--factory-float-rz, 0deg)); }
.content-factory .factory-film-surface { position: absolute; inset: 0; overflow: hidden; border-radius: 10px; background: var(--ink); border: 1px solid #ffffffaa; box-shadow: 0 26px 50px #191b1f24, 0 3px 4px #191b1f15; }
.content-factory .factory-poster, .content-factory .factory-preview { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; -webkit-user-drag: none; }
.content-factory .factory-preview { opacity: 0; pointer-events: none; transition: opacity 350ms; }
.content-factory .factory-film.has-preview .factory-preview { opacity: 1; }
.content-factory .factory-poster { pointer-events: none; }
.content-factory .factory-film.is-full .factory-preview { opacity: 1; pointer-events: auto; object-fit: contain; }
.content-factory .factory-film[data-position="front"].is-full { transform: translate(-50%, -50%) translateZ(90px); cursor: default; }
.content-factory .factory-art.is-dragging .factory-film { transition: none; cursor: grabbing; }
.content-factory .factory-film:focus-visible { outline: 3px solid var(--blue); outline-offset: 10px; }
.content-factory .factory-film figcaption { position: absolute; left: 0; right: 0; bottom: calc(100% + 14px); font-size: calc(22px * var(--scene-scale, 1)); line-height: 1.3; text-align: center; color: var(--ink); }


@media (min-width: 801px) and (max-height: 719px) {
  .spatial-layout .content-factory h2 { font-size: 40px; margin-bottom: 16px; }
  .spatial-layout .content-factory .eyebrow { margin-bottom: 12px; }
  .spatial-layout .content-factory .body-copy { font-size: 20px; line-height: 1.35; margin-bottom: 16px; }
  .content-factory .factory-film figcaption { font-size: 18px; }
}

@media (max-width: 800px) {
  .spatial-layout .content-factory .section-copy { top: 12%; max-width: none; }
  .spatial-layout .content-factory h2 { font-size: 34px; margin-bottom: 16px; }
  .spatial-layout .content-factory .body-copy { font-size: 18px; line-height: 1.4; }
  .content-factory .factory-feedback { font-size: 16px; }
  .content-factory .factory-art { top: 56%; left: 0; width: 100%; height: 36%; perspective: 1100px; }
  .content-factory .factory-film { width: min(17.5svh, 140px); }
  .content-factory .factory-film figcaption { font-size: 16px; bottom: calc(100% + 10px); }
  .content-factory .factory-film[data-position="left"] { transform: translate(-122%, -45%) translateZ(-110px) rotateY(29deg) rotateZ(-7deg); }
  .content-factory .factory-film[data-position="right"] { transform: translate(22%, -45%) translateZ(-110px) rotateY(-29deg) rotateZ(7deg); }
}

body.motion-off .content-factory .factory-film, body:not(.motion-ready) .content-factory .factory-film { transition: none; }
body.motion-off .content-factory .factory-film-motion, body:not(.motion-ready) .content-factory .factory-film-motion { transform: none; }
@media (prefers-reduced-motion: reduce) {
  .content-factory .factory-film, .content-factory .factory-preview { transition: none; }
  .content-factory .factory-film-motion { transform: none; }
}
