:root{--merch-lift:20px;--merch-color:105,218,241;--merch-perspective:800px}
:root[data-projection=holographic]{--merch-lift:15px;--merch-color:57,225,245;--merch-perspective:500px}
.projection-style-control{display:grid;gap:8px;font-size:12px;padding-top:15px;border-top:1px solid #a9966b33}.projection-style-control select{width:100%;padding:9px;background:#17131f;border:1px solid #b8a47566;color:#e5d5ac;border-radius:4px;font:inherit}
.product-visual,.focus-projection{transform:perspective(1000px) rotateY(var(--merch-ry,0deg)) rotateX(var(--merch-rx,0deg)) translateY(var(--merch-parallax,0px));transition:transform .28s ease-out;transform-style:preserve-3d}
.projection-card{background:linear-gradient(145deg,#0b122135,#080c131c);backdrop-filter:blur(3px);border:1px solid #b6e4eb13;border-radius:5px}
.product-visual{overflow:visible!important}.product-visual:before,.product-visual>.holo-plinth,.focus-projection>.holo-plinth,.focus-projection>.orbit-ring{display:none!important}
.merch-platform{position:absolute;inset:0;pointer-events:none;z-index:0;isolation:isolate}
.merch-aura{position:absolute;inset:1% 7% 14%;border-radius:50%;background:radial-gradient(ellipse,rgba(var(--merch-color),.22),rgba(var(--merch-color),.06) 42%,transparent 69%);filter:blur(12px);animation:merchPulse 5s ease-in-out infinite}
[data-projection=holographic] .merch-aura{opacity:.65}
.merch-floor{position:absolute;bottom:-6%;left:12%;width:76%;aspect-ratio:1;border-radius:50%;transform-origin:center 82%;transform:perspective(var(--merch-perspective)) rotateX(75deg);transform-style:preserve-3d}
.merch-ring{position:absolute;border:1px solid rgba(var(--merch-color),.6);border-radius:50%;box-shadow:0 0 15px rgba(var(--merch-color),.3),inset 0 0 12px rgba(var(--merch-color),.1);animation:merchRingTurn 28s linear infinite}
.ring-outer{inset:0;border-width:2px;border-left-color:rgba(var(--merch-color),.12)}.ring-middle{inset:7%;border-top:3px solid #e4e7c7aa;animation-direction:reverse;animation-duration:36s}.ring-inner{inset:17%;border-right-color:transparent;box-shadow:0 0 10px rgba(var(--merch-color),.6)}.ring-core{inset:26%;border-style:dashed;opacity:.45;animation-duration:50s}
.merch-shaft{position:absolute;inset:30% 25% 9%;background:linear-gradient(to top,rgba(var(--merch-color),.16),rgba(var(--merch-color),.04) 60%,transparent);clip-path:polygon(4% 0,96% 0,76% 100%,24% 100%);filter:blur(2px)}
[data-projection=holographic] .merch-shaft{inset:20% 18% 9%;background:linear-gradient(to top,rgba(var(--merch-color),.2),transparent 95%)}
.merch-contact{position:absolute;left:33%;right:33%;bottom:6%;height:6%;border-radius:50%;background:#031014a3;filter:blur(5px);animation:merchShadow 6s ease-in-out infinite}
.merch-corner{position:absolute;width:12px;height:12px;border-color:rgba(var(--merch-color),.36);border-style:solid}.top-right{right:6%;top:10%;border-width:1px 1px 0 0}.bottom-left{left:6%;bottom:23%;border-width:0 0 1px 1px}
.projection-card .product-picture{position:relative;z-index:1;filter:drop-shadow(0 0 15px rgba(var(--merch-color),.25)) drop-shadow(0 12px 16px #0005);height:78%!important;align-self:start;top:1%}
.collecting:not(.departing) .product-picture{animation:merchResolve .65s calc(var(--i)*90ms) both,merchLevitate 6s calc(var(--i)*-.7s + .7s) ease-in-out infinite!important}
#productDialog.product-preview .focus-art.isolated{inset:1% 9% 19%;animation:merchLevitate 6s ease-in-out infinite;filter:drop-shadow(0 0 20px rgba(var(--merch-color),.3))}
#productDialog:not(.product-preview) .merch-platform{opacity:.35}#productDialog .focus-art{z-index:1}#productDialog .carousel-arrow{z-index:3}
@keyframes merchRingTurn{to{transform:rotateZ(360deg)}}
@keyframes merchLevitate{0%,100%{transform:translateY(0)}50%{transform:translateY(calc(-1*var(--merch-lift)))}}
@keyframes merchPulse{0%,100%{opacity:.7}50%{opacity:1}}
@keyframes merchShadow{0%,100%{opacity:.45;scale:1}50%{opacity:.22;scale:.85}}
.reduce-motion .merch-platform *,.reduce-motion #productDialog.product-preview .focus-art.isolated{animation:none!important}.reduce-motion .product-visual,.reduce-motion .focus-projection{transform:none!important;transition:none}
@media(prefers-reduced-motion:reduce){.merch-platform *,#productDialog.product-preview .focus-art.isolated{animation:none!important}.product-visual,.focus-projection{transform:none!important;transition:none}}
@media(max-width:650px){:root{--merch-lift:10px}.merch-floor{left:6%;width:88%;bottom:-2%}.projection-card{backdrop-filter:none}.merch-corner{width:7px;height:7px}.merch-ring{box-shadow:0 0 8px rgba(var(--merch-color),.3)}.merch-aura{filter:blur(7px)}}
/* The beam begins at the centre of the projected floor, never below it. */
.merch-shaft{bottom:21%}[data-projection=holographic] .merch-shaft{bottom:21%}
/* Art direction: gentle travelling light waves, with the brightest region at the object. */
:root{--merch-lift:10px}:root[data-projection=holographic]{--merch-lift:8px}
.merch-floor:before{content:'';position:absolute;inset:8%;border:1px solid rgba(var(--merch-color),.14);border-radius:50%;box-shadow:0 0 8px rgba(var(--merch-color),.09)}
.merch-ring{inset:0;border:1px solid rgba(var(--merch-color),.65);border-radius:50%;box-shadow:0 0 12px rgba(var(--merch-color),.25);animation:merchRipple 7.2s linear infinite;opacity:0}
.merch-ring.ring-outer{animation-delay:-4.8s}.merch-ring.ring-middle{animation-delay:-2.4s}.merch-ring.ring-inner{animation-delay:0s}.merch-ring.ring-core{display:none}
@keyframes merchRipple{0%{transform:scale(.32);opacity:0}15%{opacity:.4}65%{opacity:.22}100%{transform:scale(1.04);opacity:0}}
.merch-shaft,[data-projection=holographic] .merch-shaft{clip-path:none;mask-image:linear-gradient(to right,transparent,#000 30%,#000 70%,transparent);filter:blur(4px);opacity:.7}
.merch-aura{animation:merchQuietLight 9s ease-in-out infinite;filter:blur(16px)}
@keyframes merchQuietLight{0%,100%{opacity:.82}50%{opacity:1}}
.projection-card{background:linear-gradient(145deg,#0b12211a,#080c130c);border-color:#b6e4eb0b}
.reduce-motion .merch-ring{opacity:.16;transform:scale(.75)}
@media(prefers-reduced-motion:reduce){.merch-ring{opacity:.16;transform:scale(.75)}}
@media(max-width:650px){:root,:root[data-projection=holographic]{--merch-lift:6px}.merch-aura{filter:blur(8px)}}
