/* Picture and markers share one coordinate frame, including transparent PNG margins. */
.tg-home .story-stage .story-product-visual{position:absolute;left:50%;top:49%;width:90%;aspect-ratio:570/560;transform:translate(-50%,-50%);z-index:1}
.tg-home .story-product-visual>img{position:static;display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:contain;filter:drop-shadow(0 16px 15px #0002)}
.tg-home .tg-lab-visual{position:absolute;left:50%;top:50%;width:75%;max-width:545px;aspect-ratio:570/560;transform:translate(-50%,-51%);z-index:2}
.tg-home .tg-lab-visual>.tg-lab-product{position:static;display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:contain;transform:none}
.tg-home .tg-haptic-map{position:absolute;inset:0;z-index:2;pointer-events:none}
.tg-home .tg-haptic-map .tg-haptic-node{position:absolute;display:block;width:7px;height:7px;border:1px solid #edffb8;border-radius:50%;background:#d8f879;box-shadow:0 0 0 4px #d8f87916,0 0 10px #d8f87930;transform:translate(-50%,-50%);opacity:.72;transition:opacity .25s;pointer-events:none}
.tg-home .tg-haptic-map .tg-haptic-node[data-kind=ems]{width:7px;height:7px;background:#d8f879;border:1px solid #edffb8;box-shadow:0 0 0 4px #d8f87918,0 0 10px #d8f87930;border-radius:50%;opacity:1}
.tg-home .tg-haptic-map .tg-haptic-node[data-kind=ems]:after{content:none;display:none}
.tg-home .tg-haptic-map .tg-haptic-node.is-impact-active{box-shadow:0 0 0 4px #d8f87927,0 0 15px #d8f8798c}
.tg-home .story-stage[data-active=impact] .tg-haptic-node[data-row="0"],.tg-home .story-stage[data-active=impact] .tg-haptic-node[data-row="1"],.tg-home .story-stage[data-active=ambient] .tg-haptic-node[data-column="0"],.tg-home .story-stage[data-active=ambient] .tg-haptic-node[data-column="3"],.tg-home .story-stage[data-active=rhythm] .tg-haptic-node{opacity:1}
.tg-home .story-stage .tg-haptic-node.is-pulsing{animation:tgHapticPulse .85s ease-out 2;animation-delay:var(--point-delay,0ms)}
@keyframes tgHapticPulse{0%{box-shadow:0 0 0 0 #9bbd4a85}85%,100%{box-shadow:0 0 0 14px #9bbd4a00}}
@media(max-width:1080px){.tg-home .tg-lab-visual{width:88%}}
@media(max-width:760px){.tg-home .tg-lab-visual{width:86%;max-width:410px;transform:translate(-50%,-52%)}}
@media(max-width:620px){.tg-home .story-stage .story-product-visual{width:85%;top:48%}.tg-home .tg-haptic-map .tg-haptic-node{width:5px;height:5px;border-width:.7px;box-shadow:0 0 0 2px #d8f87916,0 0 7px #d8f87930}.tg-home .tg-haptic-map .tg-haptic-node[data-kind=ems]{width:5px;height:5px;border-width:.7px}}
@media(max-width:380px){.tg-home .tg-lab-visual{width:90%}}
html[data-effects=off] .tg-home .tg-haptic-node{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.tg-home .tg-haptic-node{animation:none!important;transition:none!important}}
