.portrait-scanner{position:relative;overflow:hidden;width:100%;--scan-x:50%;--scan-y:36%;--scan-size:clamp(130px,18vw,230px);outline:none}
.portrait-frame .portrait-scanner>img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center;margin:0}
.portrait-frame .portrait-scanner>.portrait-xray{position:absolute;inset:0;width:100%;height:100%;filter:none!important;clip-path:circle(calc(var(--scan-size)/2) at var(--scan-x) var(--scan-y));opacity:0;pointer-events:none;transition:opacity 120ms ease}
.portrait-scanner.is-scanning>.portrait-xray{opacity:1}
.xray-target{position:absolute;left:var(--scan-x);top:var(--scan-y);width:var(--scan-size);height:var(--scan-size);border:2px solid var(--sticker-lime);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 22px #d5ef9840;opacity:0;pointer-events:none;transition:opacity 120ms ease}
.is-scanning .xray-target{opacity:1}
.xray-target i,.xray-target b{position:absolute;background:var(--sticker-lime);font-weight:normal}
.xray-target i{height:1px;width:calc(100% + 26px);left:-13px;top:50%}.xray-target b{width:1px;height:calc(100% + 26px);top:-13px;left:50%}
.xray-target em{position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;background:var(--sticker-lime);transform:translate(-50%,-50%)}
.xray-cursor .site-cursor{opacity:0!important}.portrait-scanner:focus-visible{outline:2px solid var(--sticker-lime);outline-offset:4px}
@media(prefers-reduced-motion:reduce){.portrait-xray,.xray-target{transition:none!important}}
