/* A world label becomes the action. The trip to the thumb zone is never clickable. */
#campaign .world-activities{position:absolute;inset:0;pointer-events:none}
#campaign .interaction-dock{position:absolute;left:50%;bottom:calc(var(--safe-bottom) + 112px);width:208px;height:54px;transform:translateX(-50%);visibility:hidden;pointer-events:none}
#campaign .interaction-bubble{position:absolute;display:flex;align-items:center;gap:9px;width:max-content;min-width:calc(64px + var(--arrival,0) * 136px);max-width:208px;min-height:44px;padding:9px 12px;border:1px solid #e9dcb7a6;border-radius:15px;background:#23473deb;color:#f3e7c9;box-shadow:0 5px 18px #122b3033;font:600 12px Arial,sans-serif;text-align:left;pointer-events:none;touch-action:manipulation;transition:border-color .18s,box-shadow .18s;will-change:transform,left,top}
#campaign .interaction-bubble[hidden]{display:none}
#campaign .interaction-bubble:disabled{opacity:1;cursor:default;pointer-events:none}
#campaign .interaction-bubble.is-selected{background:#f4d59a;color:#284537;border-color:#fff0c8}
#campaign .interaction-bubble[data-phase="ready"]{box-shadow:0 6px 22px #182e3440,0 0 0 3px #fae3b11c;pointer-events:auto;cursor:pointer}
#campaign .interaction-bubble[data-phase="ready"]:hover{background:#ffe3ad}
#campaign .interaction-bubble:focus-visible{outline:3px solid #fff6d5;outline-offset:4px}
#campaign .interaction-icon{width:23px;height:23px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#campaign .interaction-copy{display:flex;flex:1;flex-direction:column;gap:0;min-width:0}
#campaign .interaction-copy strong{font:600 12px Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#campaign .interaction-verb{font:600 9px Arial,sans-serif;opacity:calc(var(--arrival,0) * .75);height:calc(var(--arrival,0) * 15px);overflow:hidden;white-space:nowrap}
#campaign .interaction-bubble kbd{font:600 11px Arial,sans-serif;border:1px solid currentColor;border-radius:5px;width:20px;height:22px;display:grid;place-items:center;flex:none;opacity:var(--arrival,0);margin-left:3px}
#campaign .interaction-bubble:not(.is-selected) kbd{display:none}
#campaign .interaction-anchor{position:absolute;width:6px;height:6px;transform:translate(-50%,-50%);border-radius:50%;background:#f3e7c9;box-shadow:0 1px 6px #172f33aa;pointer-events:none}
#campaign .interaction-anchor.is-selected{background:#ffdc9b;box-shadow:0 0 0 4px #f4d59a33,0 1px 8px #172f33aa}
#campaign .interaction-thread{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:0}
#campaign .interaction-thread path{fill:none;stroke:#f3ddb4;stroke-width:1.5;stroke-linecap:round}
#campaign .interaction-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#campaign[data-interacting="yes"] #nearby-hint{visibility:hidden}
@media(pointer:coarse){#campaign .interaction-bubble kbd{display:none}}
@media(max-width:650px) and (orientation:portrait){#campaign .interaction-bubble{max-width:200px}}
@media(max-width:360px) and (orientation:portrait){#campaign .interaction-dock{bottom:calc(var(--safe-bottom) + 140px)}}
@media(prefers-reduced-motion:reduce){#campaign .interaction-bubble{transition:none}}
