.gesture-hint { position:fixed; z-index:34; left:50%; bottom:76px; transform:translateX(-50%); display:flex; align-items:center; gap:12px; max-width:calc(100vw - 40px); padding:11px 17px; border:1px solid rgba(217,237,0,.25); background:rgba(8,12,10,.72); color:#e0e8d5; font:400 12px/1.4 var(--mono); white-space:nowrap; pointer-events:none; }
.gesture-hint[hidden] { display:none; }
.gesture-hint:not([hidden]) { animation:gesture-hint-reveal 650ms ease both; }
.gesture-hint-icon { color:var(--acid); font:400 23px/1 var(--body); }
.gesture-hint[data-kind="vertical"] .gesture-hint-icon { animation:gesture-down 1.8s ease-in-out infinite; }
.gesture-hint[data-kind="lateral"] .gesture-hint-icon { animation:gesture-side 2s ease-in-out infinite; }
@keyframes gesture-down { 0%,100% { transform:translateY(-2px); opacity:.6; } 50% { transform:translateY(3px); opacity:1; } }
@keyframes gesture-side { 0%,100% { transform:translateX(-3px); opacity:.7; } 50% { transform:translateX(3px); opacity:1; } }
@keyframes gesture-hint-reveal { from { opacity:0; transform:translate(-50%,6px); } to { opacity:1; transform:translate(-50%,0); } }
@media(max-width:800px) { .gesture-hint { bottom:calc(62px + env(safe-area-inset-bottom,0px)); padding:9px 13px; font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .gesture-hint,.gesture-hint-icon { animation:none !important; } }
@media(max-width:800px) { .arena-app:not(.simple-view):not(.no-webgl) :is(.nomination-card,.judge-card,.venue-layout) { touch-action:none; } }
@media(max-width:800px) { .arena-app:not(.simple-view):not(.no-webgl) .entry-form { touch-action:pan-x; } }
