/* A short visual invitation; native mouse cursors remain unchanged. */
.interaction-hint{position:absolute;z-index:1100;pointer-events:none;display:flex;align-items:center;gap:9px;max-width:260px;filter:drop-shadow(0 2px 3px #0009);transition:opacity .35s;opacity:1}
.interaction-hand{width:45px;height:51px;flex:none;overflow:visible;transform-origin:32% 33%;animation:edll-tap 2.8s ease-in-out 3}
.interaction-caption{font:600 13px/1.4 Arial,sans-serif;color:#fff;background:#171717dc;border:1px solid #ffffff70;padding:8px 11px;border-radius:3px;text-align:left}
.tap-rays{animation:edll-rays 2.8s ease-out 3;transform-origin:20px 24px}
.interaction-hint.is-dismissed{opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s .35s}
@keyframes edll-tap{0%,40%,100%{transform:translate(5px,7px)}50%,60%{transform:translate(0,0) scale(.94)}75%{transform:translate(5px,7px)}}
@keyframes edll-rays{0%,43%,85%,100%{opacity:0}50%,65%{opacity:1}}
.clean-map-legend.map-legend{box-sizing:border-box;background:#f3f0e9f2;border:1px solid #b6ab97;padding:9px 10px;animation:none;opacity:1}
.clean-map-legend>div{display:flex;align-items:center;gap:8px;margin:4px 0;font:600 clamp(7px,1.05vw,15px)/1.2 Georgia,serif;color:#171717;letter-spacing:.03em}
.legend-symbol{display:block;flex:0 0 22%;height:clamp(20px,3.4vw,47px);background:center/contain no-repeat}
.legend-legion{background-image:url('../assets/images/IV-par-red.png')}
.legend-warrior{background-image:url('../assets/images/helmet-marker.png')}
.legend-weapon{background-image:url('../assets/images/Axe-marker.png')}
.legend-campaign{background-image:url('../assets/images/campaign-swords.png')}
@media(max-width:600px){.interaction-hand{width:32px;height:38px}.interaction-hint{max-width:195px;gap:4px}.interaction-caption{font-size:11px;padding:6px 8px}.clean-map-legend.map-legend{padding:4px 5px}.clean-map-legend>div{gap:4px;margin:2px 0;font-size:clamp(6px,1.65vw,9px)}.legend-symbol{height:clamp(14px,4vw,23px)}}
@media(prefers-reduced-motion:reduce){.interaction-hand,.tap-rays{animation:none}.tap-rays{opacity:0}.interaction-hint{transition:none}}

.interaction-hint:not(.is-positioned){visibility:hidden}

/* 26.14: recurring guidance, always faintly visible between demonstrations. */
.interaction-hint{animation:edll-hint-cycle 12s ease-in-out infinite}
.interaction-hand{animation:edll-recurring-tap 12s ease-in-out infinite}
.tap-rays{animation:edll-recurring-rays 12s ease-out infinite}
@keyframes edll-hint-cycle{0%,24%,100%{opacity:1}38%,86%{opacity:.38}}
@keyframes edll-recurring-tap{0%,5%,15%,24%,100%{transform:translate(4px,6px)}9%,19%{transform:translate(0,0) scale(.94)}35%,90%{transform:translate(0,0)}}
@keyframes edll-recurring-rays{0%,5%,13%,16%,24%,100%{opacity:0}8%,10%,19%,21%{opacity:1}}
@media(prefers-reduced-motion:reduce){.interaction-hint,.interaction-hand,.tap-rays{animation:none!important}.interaction-hint{opacity:1}.tap-rays{opacity:0}}
