/* Artwork-only replacement. Inherits the exact v34 stage dimensions and placement. */
.qc-hero>.qc-stage.qc-corridor-stage{perspective:1100px;pointer-events:auto;overflow:hidden}
.qc-hero .qc-corridor-stage .qc-corridor-illustration{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;transform:rotateX(var(--qc-cx,0deg)) rotateY(var(--qc-cy,0deg));transform-origin:50% 55%;transition:transform .4s ease;animation:qcCorridorAppear .6s ease both;will-change:transform}
@keyframes qcCorridorAppear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.qc-hero .qc-corridor-stage .qc-corridor-illustration{animation:none!important;transform:none!important;transition:none!important;will-change:auto}}


@media(min-width:1281px){.qc-hero>.qc-stage.qc-corridor-stage{width:100%!important;height:calc(100% - 64px)!important;left:0!important;right:0!important;bottom:64px!important}.qc-hero .qc-corridor-stage .qc-corridor-illustration{object-position:center bottom}}
/* Shared image/light plane. Light travels into the doorway, even on touch. */
.qc-hero .qc-corridor-stage .qc-corridor-illustration,.qc-hero .qc-corridor-stage .qc-light-map{transform:translate3d(var(--qc-dx,0px),var(--qc-dy,0px),0) rotateX(var(--qc-cx,0deg)) rotateY(var(--qc-cy,0deg));transition:transform .8s cubic-bezier(.2,.7,.2,1);transform-origin:50% 55%}
.qc-light-map{position:absolute;pointer-events:none;z-index:2}
.qc-light-map svg{display:block;width:100%;height:100%;overflow:visible}
/* Stationary broad glow: no travelling point or floor streak. */
.qc-door-glow{animation:qcDoorBreathe 6s ease-in-out infinite;mix-blend-mode:screen;transform-box:fill-box;transform-origin:center}
@keyframes qcDoorBreathe{0%,100%{opacity:.15;transform:scale(.92)}50%{opacity:.8;transform:scale(1.12)}}
@media(prefers-reduced-motion:reduce){.qc-light-map{display:none!important}.qc-hero .qc-corridor-stage .qc-corridor-illustration{transform:none!important}}

/* Service-linked experiment: separated original sound-bar pixels, no flashing. */
.qc-sound-bar{position:absolute;display:block;animation:qcSoundPhrase 5.8s ease-in-out var(--delay) infinite;transform-origin:50% 50%;will-change:transform}
@keyframes qcSoundPhrase{0%,12%,76%,100%{transform:scaleY(1)}24%{transform:scaleY(.78)}36%{transform:scaleY(1.1)}48%{transform:scaleY(.88)}60%{transform:scaleY(1.04)}}
@media(prefers-reduced-motion:reduce){.qc-light-map{display:block!important;transform:none!important}.qc-sound-bar{animation:none!important;transform:none!important;will-change:auto}}

.qc-service-object{position:absolute;padding:0;border:0;background:none;pointer-events:auto;cursor:pointer;appearance:none;border-radius:12px;touch-action:manipulation}
.qc-service-object img{display:block;width:100%;height:100%;opacity:0;transition:transform .5s ease,opacity .3s ease;pointer-events:none}
.qc-service-content:hover img,.qc-service-content:focus-visible img,.qc-service-content.is-selected img{opacity:1;transform:translateY(-5px)}
.qc-service-object:focus-visible{outline:2px solid #C10A17;outline-offset:4px}
.qc-focus-frame{position:absolute;inset:22% 19%;opacity:0;transform:scale(1.1);transition:opacity .5s ease,transform .6s ease;background:linear-gradient(#C10A17,#C10A17) left top/12px 2px no-repeat,linear-gradient(#C10A17,#C10A17) left top/2px 12px no-repeat,linear-gradient(#C10A17,#C10A17) right top/12px 2px no-repeat,linear-gradient(#C10A17,#C10A17) right top/2px 12px no-repeat,linear-gradient(#C10A17,#C10A17) left bottom/12px 2px no-repeat,linear-gradient(#C10A17,#C10A17) left bottom/2px 12px no-repeat,linear-gradient(#C10A17,#C10A17) right bottom/12px 2px no-repeat,linear-gradient(#C10A17,#C10A17) right bottom/2px 12px no-repeat;pointer-events:none}
.qc-service-camera:hover .qc-focus-frame,.qc-service-camera:focus-visible .qc-focus-frame,.qc-service-camera.is-selected .qc-focus-frame{opacity:.85;transform:scale(1)}
@media(prefers-reduced-motion:reduce){.qc-service-object img,.qc-focus-frame{transition:none!important;transform:none!important}}

.qc-service-object{z-index:4;transform:translate(var(--qc-dx,0px),var(--qc-dy,0px));transition:transform .8s cubic-bezier(.2,.7,.2,1)}
@media(prefers-reduced-motion:reduce){.qc-service-object{transform:none!important;transition:none!important}}

@media(prefers-reduced-motion:reduce){.qc-door-glow{display:none!important;animation:none!important}}

/* Continuous service-object demo, no hover required. */
.qc-sound-bar{animation:qcSoundContinuous 1.8s ease-in-out var(--delay) infinite}
@keyframes qcSoundContinuous{0%,100%{transform:scaleY(.78)}35%{transform:scaleY(1.14)}70%{transform:scaleY(.94)}}
.qc-service-content img{opacity:1;animation:qcContentFloat 3.2s ease-in-out infinite}
@keyframes qcContentFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.qc-service-camera .qc-focus-frame{animation:qcCameraFocus 3.4s ease-in-out infinite}
@keyframes qcCameraFocus{0%,100%{opacity:.3;transform:scale(1.12)}50%{opacity:.95;transform:scale(.94)}}
.qc-hero .qc-corridor-stage .qc-extra-layer{position:absolute;inset:auto;display:block;z-index:4;pointer-events:none;object-fit:fill;transform-origin:center;will-change:transform}
.qc-extra-network{animation:qcNetworkFloat 3.7s ease-in-out -.8s infinite}
@keyframes qcNetworkFloat{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-7px) rotate(.8deg)}}
.qc-extra-strategy{animation:qcStrategyRise 3.6s ease-in-out -1.5s infinite}
@keyframes qcStrategyRise{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@media(prefers-reduced-motion:reduce){.qc-sound-bar,.qc-service-content img,.qc-service-camera .qc-focus-frame,.qc-extra-layer{animation:none!important;transform:none!important;will-change:auto}.qc-service-content img{opacity:0}.qc-service-camera .qc-focus-frame{opacity:0}}
