/* The opaque rim costs one static overlay: no blur, textures or render target. */
.binoculars-view{position:fixed;left:0;top:var(--phone-viewport-top,0px);width:100vw;height:var(--phone-viewport-height,100dvh);z-index:7;pointer-events:none;color:#e1e4c8;font-family:var(--mono);user-select:none;-webkit-user-select:none}
.binoculars-view[hidden]{display:none!important}
.binoculars-lens{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 0 43%,#0b100c99 44%,#020403f5 52%)}
.binoculars-reticle{position:absolute;left:50%;top:50%;width:100px;height:100px;transform:translate(-50%,-50%);border:1px solid #d3dec04d;border-radius:50%;background:linear-gradient(#172416a8,#172416a8) center/1px 100% no-repeat,linear-gradient(90deg,#172416a8,#172416a8) center/100% 1px no-repeat}
.binoculars-reticle:after{content:'';position:absolute;left:50%;top:50%;width:6px;height:6px;border:1px solid #d4e0bb;transform:translate(-50%,-50%);border-radius:50%}
.binoculars-label{position:absolute;left:50%;top:calc(50% + 70px);transform:translateX(-50%);font-size:10px;letter-spacing:1px;text-shadow:0 1px 2px #010701;white-space:nowrap}
.binoculars-close{position:absolute;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translateX(-50%);min-width:120px;min-height:44px;padding:12px 16px;border:1px solid #bdcba66b;border-radius:7px;background:#11241eeb;color:#e4edce;font:11px/1.3 var(--mono);pointer-events:auto;touch-action:manipulation}
.phone-ui .binoculars-close{top:calc(env(safe-area-inset-top) + 60px);bottom:auto}
@media(max-height:430px){.binoculars-label{top:calc(50% + 56px)}.binoculars-reticle{width:76px;height:76px}}
/* Discrete optical zoom uses the same camera and static scope overlay. */
.binoculars-zoom-controls{position:absolute;left:50%;bottom:max(74px,calc(env(safe-area-inset-bottom) + 74px));transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:4px;border:1px solid #bdcba65c;border-radius:9px;background:#11241eeb;pointer-events:auto;touch-action:none}
.binoculars-zoom-controls button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0;border:1px solid #bdcba645;border-radius:6px;background:#d2dfba12;color:#e4edce;font:22px/1 var(--mono);touch-action:manipulation}
.binoculars-zoom-controls button:disabled{opacity:.34}
.binoculars-zoom-controls output{min-width:45px;text-align:center;color:#e4edce;font:12px/1 var(--mono)}
.phone-ui .binoculars-zoom-controls{top:calc(env(safe-area-inset-top) + 112px);bottom:auto}
@media(max-height:430px){.phone-ui .binoculars-close{top:calc(env(safe-area-inset-top) + 38px)}.phone-ui .binoculars-zoom-controls{top:calc(env(safe-area-inset-top) + 90px)}}
.sniper-scope-zoom-controls[hidden]{display:none!important}
.sniper-scope-zoom-controls{z-index:1;bottom:max(30px,calc(env(safe-area-inset-bottom) + 30px))}
.phone-ui .sniper-scope-zoom-controls{top:calc(env(safe-area-inset-top) + 98px);bottom:auto}
@media(max-height:430px){.phone-ui .sniper-scope-zoom-controls{top:calc(env(safe-area-inset-top) + 70px)}}
/* Phone optics reuse the information gaps rather than the thumb controls.
   Pickup cards return immediately when the player lowers the optic. */
.phone-ui:has(.binoculars-view:not([hidden]),.foot-sniper-scope:not([hidden])) :is(#lootPicker,#exoticNearbyPicker){display:none!important}
.phone-ui .binoculars-zoom-controls{display:grid;grid-template-columns:44px 34px 44px;gap:2px;padding:2px;width:132px;height:50px;box-sizing:border-box}
.phone-ui .binoculars-zoom-controls button{width:44px;height:44px;min-width:44px;min-height:44px;box-sizing:border-box}
.phone-ui .binoculars-zoom-controls output{min-width:0;width:34px;font-size:11px}
.phone-ui .binoculars-close{left:auto;right:calc(var(--phone-right) + 52px);top:calc(var(--phone-hud-top) + var(--phone-telemetry-height) + 6px);bottom:auto;transform:none;min-width:44px;width:44px;height:44px;min-height:44px;padding:0;box-sizing:border-box;font-size:0}
.phone-ui .binoculars-close:after{content:'×';font:23px/1 system-ui,sans-serif}
@media(orientation:landscape){
 .phone-ui .binoculars-zoom-controls{left:calc(var(--phone-left) + var(--phone-move-size) + 4px);top:calc(var(--phone-hud-top) + 90px);transform:none}
 .phone-ui .sniper-scope-zoom-controls{top:calc(var(--phone-hud-top) + var(--phone-telemetry-height) + 50px)}
 .phone-ui .binoculars-close{left:calc(var(--phone-left) + 260px);right:auto;top:calc(var(--phone-hud-top) + 4px)}
}
.sniper-scope-zoom-controls output{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1}
.sniper-scope-zoom-controls output small{font:8px/1 var(--mono);color:#d4ddbb;white-space:nowrap}

/* Short landscape keeps the optic wheel above the raised foot action row. */
@media(orientation:landscape) and (max-height:360px){.phone-ui .sniper-scope-zoom-controls{top:calc(var(--phone-hud-top) + var(--phone-telemetry-height) + 42px)}}
