/* One illuminated cabinet and a decoded paper feed; print pixels remain untouched. */
.commission-press{background:#20190f url('/assets/models/studio-room.png') center top/cover no-repeat;min-height:100svh;padding:8px 0 18px;overflow:hidden;--press-footer-reserve:160px}
.commission-press:before{display:none}
.press-scene{position:relative;width:min(100%,900px,max(300px,calc((100svh - var(--press-footer-reserve))*.7948717949)));height:auto;max-width:none;aspect-ratio:620/780;margin:0 auto;isolation:isolate;z-index:1}
.press-stage-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.press-body-hit{cursor:pointer;outline:none}.press-body-hit:focus-visible{filter:drop-shadow(0 0 3px #f8d47b)}
.press-shutter{will-change:transform}
.press-card-window{position:absolute;z-index:2;margin:0;padding:0;border:0;pointer-events:none;box-sizing:border-box;background:transparent}
/* A normal overflow window avoids the SVG/3D image handoff that can paint black
   in Safari. Only its height changes; the exact downloaded image is never scaled
   by animation, redrawn, filtered or replaced with a separate render. */
.press-paper-viewport{position:absolute;inset:0 auto auto 0;width:100%;height:0;overflow:hidden;background:transparent}
.press-paper-sheet{position:relative;display:block;width:100%;height:auto;aspect-ratio:270/370;background:#050706}
.commission-press .press-card-window .receipt-image{position:absolute;inset:0;display:block;width:100%;height:100%;min-width:0;min-height:0;max-width:none;max-height:none;object-fit:contain;margin:0;padding:0;border:0;border-radius:0;box-sizing:border-box;filter:none!important;opacity:1!important;animation:none!important;transform:none!important;box-shadow:none!important}
.press-card-window[hidden],.press-card-window .receipt-image[hidden]{display:none!important}.press-card-back{pointer-events:none}
/* The small curl belongs to the moving paper edge, outside the print pixels.
   It settles away completely so the final poster matches the canonical JPG. */
.press-paper-edge{position:absolute;left:0;right:0;height:clamp(4px,1.2vw,10px);border-radius:0 0 42% 42% / 0 0 85% 85%;background:linear-gradient(180deg,#e6d9b8 0%,#fff8df 19%,#d4c6a9 47%,#696451 81%,#20241e 100%);box-shadow:0 3px 3px #0009;pointer-events:none;opacity:0}
.press-light-halo{opacity:.34;filter:drop-shadow(0 0 5px #ffbd45a0);animation:pressHaloBreathe 4s ease-in-out infinite;pointer-events:none}
.press-body-light{opacity:.94;filter:drop-shadow(0 0 3px #ffd37a90);animation:pressLightBreathe 4s ease-in-out infinite}.press-light-core{opacity:.95;pointer-events:none}.press-logo{opacity:1}
.commission-press[data-pressed="yes"] .press-light-halo{opacity:.54;animation:pressWorkingLights 1.3s ease-in-out infinite}
.commission-press[data-press-phase="complete"] .press-light-halo{animation:pressHaloBreathe 4s ease-in-out infinite}
.commission-press[data-pressed="yes"] .press-ready-lights{fill:#fff1bc;filter:drop-shadow(0 0 3px #ffc860)}
.press-switch-face{pointer-events:none;filter:drop-shadow(0 0 3px #87ef5e45)}
.commission-press[data-pressed="yes"] .press-switch-face{filter:brightness(1.12) drop-shadow(0 0 7px #87ef5e70)}
.commission-press .press-reveal-button{min-width:44px;min-height:44px;z-index:8;border:0!important;padding:0;background:none!important;box-shadow:none!important;animation:none!important;border-radius:50%;transform:translate(-50%,-50%)!important}.press-reveal-button:disabled{opacity:1}.press-reveal-button:focus-visible{outline:2px solid #d5ffbc;outline-offset:4px}
.press-sr{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
.press-controls{position:relative;z-index:9;padding:0 0 5px;min-height:34px}
.commission-press .printer-actions{position:relative;margin:8px auto 0;flex-wrap:wrap;width:calc(100% - 24px);max-width:600px;gap:8px}.commission-press .printer-actions .receipt-pdf{padding:13px 16px;min-height:44px}
.commission-press .opening-status{position:relative!important;clip-path:none;overflow:visible;white-space:normal;width:auto!important;height:auto!important;max-width:500px;margin:8px auto 0;padding:0 20px;text-align:center;line-height:1.45;font-size:12px;color:#e1d2ac}
.commission-press[data-lighting="off"] .press-body-light,.commission-press[data-lighting="off"] .press-light-core{animation:none;filter:none;opacity:.24}.commission-press[data-lighting="off"] .press-light-halo{animation:none;filter:none;opacity:.04}
@keyframes pressLightBreathe{0%,100%{opacity:.9}50%{opacity:1}}
@keyframes pressHaloBreathe{0%,100%{opacity:.28}50%{opacity:.43}}
@keyframes pressWorkingLights{0%,100%{opacity:.4}50%{opacity:.64}}
@media(max-width:600px){.commission-press .printer-actions .receipt-pdf{padding:12px 10px;font-size:12px;letter-spacing:.5px}.press-controls{width:calc(100% - 34px)}}
@media(max-width:340px){.commission-press{--press-footer-reserve:190px}}
@media(prefers-reduced-motion:reduce){.commission-press *{animation:none!important;transition:none!important}}

/* Lamp bodies and cones share the 620x780 stage. Beam origins and angles
   scale with the bulb apertures; the machine occludes the light behind it. */
.commission-press .vault-studio-lights{inset:0;overflow:visible;z-index:auto}
.commission-press .vault-studio-lights .stage-lamp{top:3.59%;width:11.935%;height:96%;bottom:auto;opacity:1;z-index:auto}
.commission-press .vault-studio-lights .lamp-left{left:0;right:auto}
.commission-press .vault-studio-lights .lamp-right{right:0;left:auto}
.commission-press .vault-studio-lights .lamp-head{height:10.95%;width:65%;left:20%;z-index:3;box-sizing:border-box;transform:rotate(-25deg)}
.commission-press .vault-studio-lights .lamp-right .lamp-head{transform:rotate(25deg)}
.commission-press .vault-studio-lights .lamp-head:after{bottom:0;left:3%;width:94%;height:25.6%;border-width:1px;box-sizing:border-box;z-index:4}
.commission-press .vault-studio-lights .lamp-beam,.commission-press .vault-studio-lights .lamp-pool{display:none}
.commission-press .vault-studio-lights .lamp-pole{top:9.4%;width:8%;opacity:.6;z-index:3}
.commission-press .vault-studio-lights .lamp-foot{height:1.6%;z-index:3}
.press-lamp-beams{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:0;pointer-events:none}
.commission-press[data-lighting="off"] .press-lamp-beams,.commission-press[data-zone-lamps="off"] .press-lamp-beams{opacity:0}
.commission-press .press-stage-svg{z-index:1}
.commission-press .press-card-window{clip-path:inset(var(--shutter-mask,0%) 0 0 0)}
.press-shutter-hit{cursor:pointer;outline:none}.press-shutter-hit:focus-visible{stroke:#f8d47b;stroke-width:2}
.commission-press[data-busy="yes"] .press-shutter-hit{pointer-events:none}
