/* Owner-approved Hijacker mask A + firefly; reference geometry, mapped to V4 day/other. */
.bandit{--ink:#002231;--paper:#FAF7F0;--mask:#0B1E27;--eye:#FFFDF8;--pupil:#0B1E27;--glint:#06B6D4;--amber:#F59E0B}
:root[data-world="other"] .bandit{--ink:#F3EEE4;--paper:#00161F;--mask:#F3EEE4;--pupil:#002231}
body:has(#bandit){padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
.bandit .label{margin:0;font-family:var(--font-body),system-ui,sans-serif}
.bandit{position:fixed;left:50%;bottom:0;z-index:10;transform:translate(-50%,36px); /* rest: eyes peek, label + gap tucked below the edge */ /* peek: eyes always visible, lower edge tucked */
  border:0;background:none;padding:0;cursor:pointer;color:var(--ink);display:flex;flex-direction:column;align-items:center;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .25s}
.bandit .faces{position:relative;width:132px;height:66px;display:block}
.bandit .faces svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.bandit .face{filter:drop-shadow(0 -2px 6px rgba(0,0,0,.18));transition:opacity .3s}
.bandit .bright{opacity:0;transition:opacity .45s .3s;pointer-events:none}
:root[data-world="other"] .bandit .face{opacity:0;transition:opacity .3s .25s}
:root[data-world="other"] .bandit.bright-4 .bright-firefly{opacity:1}
.bandit .ff-dark{fill:var(--mask)} .bandit .ff-wing{fill:var(--mask);opacity:.32} .bandit .ff-ant{fill:none;stroke:var(--mask);stroke-width:1;stroke-linecap:round}
.bandit .ff-lamp{fill:#FCD34D} .bandit .ff-halo{animation:ffbreathe 4.2s ease-in-out infinite}
.bandit .ff-float{animation:fffloat 5.5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.bandit:hover .ff-halo,.bandit.raised .ff-halo,.bandit:focus-visible .ff-halo{animation-duration:2.6s}
@keyframes ffbreathe{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes fffloat{0%,100%{transform:translate(0,0)}50%{transform:translate(-2px,-3px)}}
@media (prefers-reduced-motion:reduce){.bandit .ff-halo,.bandit .ff-float{animation:none!important}.bandit .ff-halo{opacity:.85}}
.bandit .label{position:relative;margin-top:-5px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:var(--ink);color:var(--paper);
  border-radius:999px;padding:7px 13px;white-space:nowrap;line-height:1;text-box:trim-both cap alphabetic} /* caps optically centred */
.bandit.raised,.bandit:hover,.bandit:focus-visible{transform:translate(-50%,-6px)} /* rise: mask, eyes and label come up */

.bandit:focus-visible{outline:none}
.bandit:focus-visible .label{outline:3px solid var(--amber);outline-offset:2px}
.bandit .maskband{fill:var(--mask);transition:transform .5s cubic-bezier(.3,1.4,.5,1),opacity .4s}
.bandit .eye{fill:var(--eye)}
.bandit .pupil{fill:var(--pupil)}
.bandit .glint{fill:var(--glint)}
.bandit .lids path{fill:var(--mask);transition:transform .45s}
:root[data-world="other"] .bandit .maskband{transform:translateY(46px) rotate(-14deg);opacity:0}
:root[data-world="other"] .bandit .lids path{transform:translateY(3px)}   /* eyes settle, heavier and calm */
:root[data-world="other"] .bandit .glint{opacity:0}
@media (max-width:480px){ .bandit .faces{width:120px;height:60px} }
@media (prefers-reduced-motion:reduce){ .bandit,.bandit *{transition:none!important} }

/* Homepage only: accessibility is disabled immediately by the controller. */
.bandit[data-after-hero]{transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .25s,visibility 0s}
.bandit[data-hero-hidden]{opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,110%);transition-delay:0s,0s,.25s}
