.frame{position:absolute;inset:0;overflow:hidden;background:var(--bg)}
.shot{position:absolute;inset:0;overflow:hidden}
.a{background:linear-gradient(135deg,#d6ad78,#748f7d);animation:a 3.6s steps(1,end) infinite}
.b{background:linear-gradient(135deg,#c7a67c,#668888);opacity:0;animation:b 3.6s steps(1,end) infinite}
.door{position:absolute;left:39%;top:9%;width:23%;height:88%;border-radius:48% 48% 0 0;background:var(--accent-2);box-shadow:inset 12px 0 rgba(255,255,255,.15)}
.b .door{left:40%;background:#5d7182}
.shot b{position:absolute;left:6%;bottom:7%;font:700 clamp(9px,2.3vmin,13px) ui-monospace,monospace;letter-spacing:.14em;color:var(--fg)}
.occluder{position:absolute;top:-12%;bottom:-12%;left:-110%;width:110%;background:#121419;box-shadow:0 0 30px rgba(0,0,0,.6);transform:skewX(-8deg);animation:pass 3.6s ease-in-out infinite}
.occluder span{position:absolute;right:7%;top:50%;transform:rotate(-90deg) translateX(50%);transform-origin:right center;color:#fff;font:700 clamp(8px,2vmin,11px) ui-monospace,monospace;letter-spacing:.2em}
.mark{position:absolute;right:6%;top:7%;padding:4px 6px;background:var(--surface);color:var(--fg);font:700 clamp(8px,2vmin,11px) ui-monospace,monospace;letter-spacing:.1em}
@keyframes a{0%,49.9%{opacity:1}50%,100%{opacity:0}}
@keyframes b{0%,49.9%{opacity:0}50%,100%{opacity:1}}
@keyframes pass{0%,45%{left:-110%}50%{left:0}52.5%,68%,100%{left:110%}}