/* NightVenture — dual-stick humanoid controls. */
.nv-humanoid-controls{
    position:fixed;
    inset:0;
    z-index:3050;
    display:none;
    pointer-events:none;
    user-select:none;
    -webkit-user-select:none;
    -webkit-touch-callout:none;
}
.nv-humanoid-stick{
    position:absolute;
    bottom:calc(68px + env(safe-area-inset-bottom));
    width:124px;
    height:124px;
    border:1px solid rgba(143,211,255,.36);
    border-radius:50%;
    background:radial-gradient(circle,rgba(19,56,91,.50),rgba(5,18,34,.74));
    box-shadow:inset 0 0 24px rgba(72,155,214,.14),0 8px 28px rgba(0,0,0,.30);
    backdrop-filter:blur(4px);
    pointer-events:auto;
    touch-action:none;
}
.nv-humanoid-stick--move{left:max(16px,env(safe-area-inset-left))}
.nv-humanoid-stick--attack{right:max(16px,env(safe-area-inset-right));border-color:rgba(255,167,95,.42);background:radial-gradient(circle,rgba(92,42,25,.48),rgba(34,12,7,.76))}
.nv-humanoid-stick__knob{
    position:absolute;
    left:50%;
    top:50%;
    width:50px;
    height:50px;
    border:1px solid rgba(143,211,255,.76);
    border-radius:50%;
    background:rgba(10,38,66,.95);
    box-shadow:0 0 18px rgba(72,173,238,.26);
    transform:translate(-50%,-50%);
    pointer-events:none;
}
.nv-humanoid-stick__knob--attack{border-color:rgba(255,185,124,.82);background:rgba(91,37,18,.95);box-shadow:0 0 18px rgba(255,119,55,.24)}
.nv-humanoid-stick__ring{
    position:absolute;
    inset:12px;
    border:1px dashed rgba(143,211,255,.24);
    border-radius:50%;
    pointer-events:none;
}
.nv-humanoid-stick__ring--aim{inset:-18px;border:2px solid rgba(255,175,102,.0);box-shadow:0 0 0 rgba(255,114,52,0);opacity:0;transform:scale(.78);transition:opacity .12s ease,transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.nv-humanoid-stick--attack.is-aiming .nv-humanoid-stick__ring--aim{border-color:rgba(255,190,130,.76);box-shadow:0 0 24px rgba(255,109,49,.22),inset 0 0 20px rgba(255,109,49,.12);opacity:1;transform:scale(1)}
.nv-humanoid-stick__label{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);color:rgba(220,239,255,.72);font:800 .55rem/1 Segoe UI,Arial,sans-serif;letter-spacing:.12em;pointer-events:none}
.nv-humanoid-stick--attack .nv-humanoid-stick__label{color:rgba(255,217,183,.78)}
.nv-humanoid-stick--move.is-running{border-color:rgba(112,255,177,.82);box-shadow:inset 0 0 25px rgba(65,220,135,.18),0 0 24px rgba(65,220,135,.20)}
.nv-humanoid-stick--move.is-running .nv-humanoid-stick__label{color:#9effc7}
.nv-humanoid-controls.is-attacking .nv-humanoid-stick--attack{transform:scale(.96);border-color:rgba(255,224,198,.92)}
body.nv-phaser-overlay-open .nv-humanoid-controls,
body.nv-phaser-manual-paused .nv-humanoid-controls{opacity:.18;pointer-events:none}
body.nv-phaser-overlay-open .nv-humanoid-controls *,
body.nv-phaser-manual-paused .nv-humanoid-controls *{pointer-events:none!important}
@media (hover:none) and (pointer:coarse),(max-width:760px){
    body.nv-phaser-persistent-active .nv-humanoid-controls,
    body.nv-phaser-fullscreen-active .nv-humanoid-controls{display:block}
}
@media (max-width:430px){.nv-humanoid-stick{width:112px;height:112px;bottom:calc(64px + env(safe-area-inset-bottom))}.nv-humanoid-stick--move{left:10px}.nv-humanoid-stick--attack{right:10px}.nv-humanoid-stick__knob{width:46px;height:46px}}
