/* Secret level reveal (pairs with js/pong-secret.js): the wordmark flies to the middle of the screen, glitching in red and cyan,
   pixels rush in and burst, "SECRET FOUND" types out, then the wordmark drops home and the game opens. */
.sx-ov{position:fixed;inset:0;z-index:9990;background:rgba(0,0,0,0);transition:background .45s;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}
.sx-ov.in{background:rgba(0,0,0,.93)}
.sx-ov.out{background:rgba(0,0,0,0);transition:background .5s}
.sx-ov.out .sx-cv{opacity:0;transition:opacity .35s}
.sx-cv{position:absolute;inset:0;width:100%;height:100%}
.sx-fly{position:absolute;will-change:transform;transform-origin:50% 50%}
.sx-fly img{position:absolute;left:0;top:0;width:100%;height:100%;display:block;opacity:1!important}
.sx-fly .g1{filter:brightness(.55) sepia(1) saturate(9) hue-rotate(-50deg);mix-blend-mode:screen;animation:sxJ1 .14s steps(2) infinite}
.sx-fly .g2{filter:brightness(.55) sepia(1) saturate(9) hue-rotate(140deg);mix-blend-mode:screen;animation:sxJ2 .17s steps(2) infinite}
.sx-fly .m{filter:brightness(1.35) drop-shadow(0 0 3px rgba(255,255,255,.7))}
.sx-ov.calmed .g1,.sx-ov.calmed .g2{animation-duration:.5s;opacity:.55!important}
.sx-ov.out .g1,.sx-ov.out .g2{opacity:0!important;transition:opacity .2s}
@keyframes sxJ1{0%{transform:translate(-3%,8%)}50%{transform:translate(2%,-12%)}100%{transform:translate(-1%,10%)}}
@keyframes sxJ2{0%{transform:translate(2.5%,-9%)}50%{transform:translate(-2%,11%)}100%{transform:translate(1.5%,-6%)}}
.sx-t,.sx-s{position:absolute;left:12px;right:12px;margin:0;text-align:center;font-family:"Press Start 2P",monospace;font-weight:400}
.sx-t{top:calc(50% + 34px);font-size:clamp(15px,4.8vw,34px);line-height:1.3;color:#ffe600;text-shadow:0 0 16px rgba(255,230,0,.65),3px 3px 0 #ff004d;min-height:1.3em;transition:opacity .3s}
.sx-t.bye{opacity:0}
.sx-s{top:calc(50% + 34px + clamp(44px,11vw,84px));font-size:clamp(8px,2.3vw,13px);line-height:1.6;color:#EEF3EF;opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s}
.sx-s.show{opacity:.9;transform:none}
.sx-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}
.sx-flash.go{animation:sxFl .55s ease-out}
@keyframes sxFl{0%{opacity:.95}100%{opacity:0}}
.sx-ov.shake{animation:sxSh .42s steps(7)}
@keyframes sxSh{0%{transform:translate(0,0)}15%{transform:translate(-9px,6px)}30%{transform:translate(8px,-7px)}45%{transform:translate(-6px,-4px)}60%{transform:translate(5px,5px)}80%{transform:translate(-3px,2px)}100%{transform:translate(0,0)}}
