.walk{position:relative;width:100%;height:calc(100dvh - 5rem);margin-top:5rem;overflow:hidden;background:var(--color-surface)}.walk__scene{position:absolute;inset:0;touch-action:none;cursor:grab}.walk__scene canvas{display:block}.walk__back{position:absolute;top:1.25rem;left:1.25rem;z-index:2;display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1rem;font-size:.82rem;font-weight:600;color:rgba(var(--color-text-rgb),.92);text-decoration:none;border:1px solid rgba(var(--color-accent-rgb),.32);border-radius:var(--radius-pill);background:rgba(var(--color-surface-rgb),.62);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .2s ease,border-color .2s ease}.walk__back:hover,.walk__back:focus-visible{background:rgba(var(--color-surface-rgb),.78);border-color:rgba(var(--color-accent-rgb),.6);outline:0}.walk__back:active{transform:scale(.97)}.walk__back svg{width:18px;height:18px}.walk__heading-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.walk__hint{position:absolute;left:1.5rem;bottom:1.5rem;z-index:2;width:min(21rem,calc(100vw - 3rem));padding:.85rem 1rem .95rem;border-radius:var(--radius-md);border:1px solid rgba(var(--color-white-rgb),.12);background:rgba(var(--color-surface-rgb),.62);backdrop-filter:blur(10px);font-size:.78rem;pointer-events:none}.walk__hint-title{display:block;margin-bottom:.55rem;letter-spacing:.16em;text-transform:uppercase;opacity:.7;font-size:.7rem}.walk__keys{display:grid;gap:.3rem;margin:0;padding:0;list-style:none}.walk__key{display:grid;grid-template-columns:4.2rem 1fr;align-items:baseline;gap:.6rem}.walk__key kbd{justify-self:start;padding:.1rem .4rem;border-radius:var(--radius-sm);border:1px solid rgba(var(--color-white-rgb),.18);background:rgba(var(--color-white-rgb),.07);font-family:inherit;font-size:.72rem;white-space:nowrap}.walk__key span{opacity:.75}.walk__hint-locked{display:none;margin:0;opacity:.75}.walk__hint[data-locked=true] .walk__keys,.walk__hint[data-locked=true] .walk__hint-title{display:none}.walk__hint[data-locked=true] .walk__hint-locked{display:block}.walk__pad{display:none;position:absolute;z-index:2;left:50%;transform:translate(-50%);bottom:max(1rem,env(safe-area-inset-bottom));grid-template-columns:repeat(3,4.25rem);grid-template-rows:repeat(2,4.25rem);gap:.5rem;opacity:0;transition:opacity .25s ease;pointer-events:none}.walk[data-state=ready] .walk__pad{opacity:1;pointer-events:auto}.walk__pad-key{display:grid;place-items:center;margin:0;padding:0;font-size:1.75rem;line-height:1;color:rgba(var(--color-text-rgb),.85);border:1px solid rgba(var(--color-white-rgb),.18);border-radius:var(--radius-lg);background:rgba(var(--color-surface-rgb),.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);touch-action:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;transition:background .12s ease,border-color .12s ease}.walk__pad-key[data-active=true]{background:rgba(var(--color-accent-rgb),.38);border-color:rgba(var(--color-accent-rgb),.7)}.walk__pad-key--up{grid-area:1/2}.walk__pad-key--left{grid-area:2/1}.walk__pad-key--down{grid-area:2/2}.walk__pad-key--right{grid-area:2/3}:root[data-walk-touch=true] .walk__pad{display:grid}:root[data-walk-touch=true] .walk__hint{display:none}.walk__crosshair{position:absolute;top:50%;left:50%;width:6px;height:6px;margin:-3px 0 0-3px;border-radius:var(--radius-round);background:rgba(var(--color-white-rgb),.55);box-shadow:0 0 0 1px rgba(var(--color-black-rgb),.35);pointer-events:none;opacity:0;transition:opacity .25s ease}.walk[data-state=ready][data-locked=true] .walk__crosshair{opacity:1}.walk__status{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;font-size:.85rem;opacity:.7;pointer-events:none}.walk[data-state=ready] .walk__status,.walk[data-state=loading] [data-walk-error],.walk[data-state=error] [data-walk-loading]{display:none}.walk[data-state=error] .walk__status{color:var(--color-danger);opacity:1}@media (max-width:640px){.walk__hint{left:1rem;right:1rem;bottom:1rem;width:auto}}