/* Character and interaction layer. The original layout stays intact. */
.live-scene{cursor:crosshair;isolation:isolate}.live-scene:focus-visible{outline:3px solid var(--ink);outline-offset:-5px}
.live-scene>img{pointer-events:none;user-select:none}.live-scene .scene-label{z-index:5;pointer-events:none}.live-dot{width:5px;height:5px;background:var(--yellow);margin-left:3px;animation:liveBlink 2s steps(1) infinite}
.actor-rig{position:absolute;bottom:90px;left:0;width:122px;height:150px;z-index:3;will-change:transform;touch-action:manipulation}.actor-button{display:block;width:100%;height:100%;border:0;background:none;padding:0;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}.actor-button:focus-visible{outline:2px dashed var(--paper);outline-offset:-17px}.actor-button canvas{display:block;width:100%;height:100%;image-rendering:pixelated;transform-origin:center center;pointer-events:none}
.actor-shadow{position:absolute;left:0;bottom:90px;width:34px;height:6px;background:#15171469;z-index:2;pointer-events:none;will-change:transform;clip-path:polygon(12% 0,88% 0,88% 25%,100% 25%,100% 75%,88% 75%,88% 100%,12% 100%,12% 75%,0 75%,0 25%,12% 25%)}
.live-scene .gm-bubble{position:absolute;left:50%;bottom:91%;min-width:60px;max-width:185px;width:max-content;font:700 15px var(--mono);padding:10px 12px;transform:translateX(calc(-50% + var(--bubble-shift,0px)));box-shadow:4px 4px 0 var(--ink);transition:opacity .12s steps(2);white-space:nowrap;z-index:4}
.live-scene .gm-bubble:hover{transform:translateX(calc(-50% + var(--bubble-shift,0px))) translateY(-3px)}.live-scene .gm-bubble.bubble-hidden{opacity:0;pointer-events:none}.live-scene .gm-bubble:before{left:26px}.live-scene .gm-bubble:after{left:29px}
.scene-controls{position:absolute;top:20px;right:4.2%;display:flex;gap:7px;z-index:6}.scene-controls button{border:2px solid var(--ink);background:var(--paper);box-shadow:3px 3px 0 var(--ink);display:flex;align-items:center;gap:8px;padding:9px 11px;cursor:pointer;touch-action:manipulation}.scene-controls b{font:700 9px var(--mono);letter-spacing:.2px}.scene-controls button>span{font:700 17px/1 var(--mono)}.scene-controls button:hover{background:var(--yellow);transform:translateY(-2px)}.scene-controls button:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.scene-controls button[aria-pressed=true]{background:var(--yellow)}.walk-instructions{position:absolute;bottom:28px;left:4.2%;padding:8px 10px;font:10px/1.6 var(--mono);background:#181b18e8;color:var(--paper);z-index:4;pointer-events:none}.touch-instructions{display:none}.destination{position:absolute;left:0;bottom:90px;font:700 28px/1 var(--mono);color:var(--paper);text-shadow:2px 2px 0 var(--ink);transform:translateX(-50%);opacity:0;pointer-events:none;z-index:2}.destination.is-active{opacity:1;animation:markerBlink .65s steps(2) infinite}
.street-lights{position:absolute;inset:0;pointer-events:none;z-index:1}.street-lights i{position:absolute;width:7px;height:6px;background:#fff5ad;box-shadow:0 0 13px 5px #ffd72c36;animation:lampWarm 4s ease-in-out infinite}.street-lights i:nth-child(2){animation-delay:-1.2s}.street-lights i:nth-child(3){animation-delay:-2.7s}.ground-dust{position:absolute;width:4px;height:4px;z-index:4;pointer-events:none;background:#f6d56a;animation:dustPuff .38s steps(5) forwards}
.motion-paused .live-dot,.motion-paused .street-lights i,.motion-paused .destination{animation-play-state:paused}.motion-paused .ground-dust{display:none}
.hero-logo{transition:transform .18s steps(3)}.hero-logo:hover{transform:translateY(-4px)}.pixel-logo .logo-letter{transform-box:fill-box;transform-origin:center bottom}.hero-logo:hover .logo-letter{animation:letterBounce .42s steps(4) both;animation-delay:calc(var(--letter) * 65ms)}
.ticket{--tilt-x:0deg;--tilt-y:0deg;transform:perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) rotate(1.3deg);transition:transform .18s ease-out;will-change:transform}
.ticket-stamp .ticket-amount{animation:receiptPrint .28s steps(4)}.ticket-stamp .ticket-cost strong{animation:receiptPrint .28s steps(4)}.lot-options button{transition:transform .12s steps(2),background .12s}.lot-options button:hover{transform:translateY(-3px)}.lot-options button:active{transform:translate(2px,2px)}.ticket-cta,.nav-buy,.explore{transition:transform .12s steps(2),background .12s,box-shadow .12s}.ticket-cta:active,.nav-buy:active,.explore:active{transform:translate(2px,2px)}.ticket-cta:hover>span:last-child{transform:translate(3px,-3px)}.ticket-cta>span:last-child{transition:transform .15s steps(3)}.glasses span{position:relative}.glasses span:after{content:"";position:absolute;width:7px;height:7px;left:50%;top:50%;background:var(--ink);transform:translate(calc(-50% + var(--eye-x,0px)),calc(-50% + var(--eye-y,0px)));transition:transform .1s steps(2)}.glasses:hover span:after{height:3px}
@keyframes liveBlink{0%,65%,100%{opacity:1}66%,82%{opacity:.25}}
@keyframes lampWarm{0%,100%{opacity:.25}50%{opacity:.9}}
@keyframes markerBlink{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes dustPuff{to{transform:translate(var(--dust-x),-15px);opacity:0}}
@keyframes receiptPrint{from{transform:translateY(7px);opacity:.35}to{transform:translateY(0);opacity:1}}
@keyframes letterBounce{0%,100%{transform:translateY(0)}45%{transform:translateY(-.6px)}75%{transform:translateY(.15px)}}
@media(max-width:760px){.scene-controls{top:49px;right:18px;gap:6px}.scene-controls button{padding:7px 8px;gap:5px;border-width:2px}.scene-controls b{font-size:8px}.scene-controls button>span{font-size:14px}.walk-instructions{left:17px;right:17px;bottom:12px;text-align:center;font-size:8px;padding:5px 7px}.desktop-instructions{display:none}.touch-instructions{display:inline}.live-scene .explore{display:none}.live-scene .gm-bubble{font-size:13px;max-width:150px;padding:9px 10px}.ticket{transform:rotate(1deg)}}
@media(max-width:380px){.scene-controls button{padding:6px;gap:4px}.scene-controls b{font-size:7px}}
@media(prefers-reduced-motion:reduce){.hero-logo,.ticket,.lot-options button,.ticket-cta,.nav-buy,.explore,.glasses span:after{transition:none;will-change:auto}.hero-logo:hover{transform:none}.actor-rig{will-change:auto}.street-lights i{opacity:.4}}
