@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:block;src:url(./vt323-latin-wDgJuOC9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:block;src:url(./vt323-latin-ext-iUdYUaX4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--w:720px;--h:576px;--safe-x:34px;--safe-y:30px;--accent:#3dff6e;--white:#fff;--plate:#000;--osd:"VT323", "DejaVu Sans Mono", "Liberation Mono", "Courier New", monospace;--osd-scale:1}*{box-sizing:border-box}html,body{background:#000;height:100%;margin:0;padding:0;overflow:hidden}body{cursor:none;place-items:center;display:grid}.stage{width:var(--w);height:var(--h);transform-origin:50%;background:#000;position:relative;overflow:hidden}.stage-media{perspective:1400px;background:#000;position:absolute;top:0;bottom:0;left:0;right:0}.layer{opacity:0;visibility:hidden;z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.layer.showing{opacity:1;visibility:visible;z-index:1}.layer.entering{opacity:1;visibility:visible;z-index:2}.layer-inner{position:absolute;top:0;bottom:0;left:0;right:0}.layer-media{object-fit:contain;background:#000;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.layer-media[hidden]{display:none}.layer[class*=fx-],.layer[class*=fx-]>.layer-inner{animation-duration:var(--fx-duration,1s);will-change:transform, opacity;animation-timing-function:ease-in-out;animation-fill-mode:both}.fx-fade-in{animation-name:fxFadeIn}@keyframes fxFadeIn{0%{opacity:0}to{opacity:1}}.fx-wipe-right-in{animation-name:fxWindowFromLeft}.fx-wipe-right-in>.layer-inner{animation-name:fxContentFromRight}.fx-wipe-left-in{animation-name:fxWindowFromRight}.fx-wipe-left-in>.layer-inner{animation-name:fxContentFromLeft}.fx-wipe-down-in{animation-name:fxWindowFromTop}.fx-wipe-down-in>.layer-inner{animation-name:fxContentFromBottom}@keyframes fxWindowFromLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes fxContentFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fxWindowFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fxContentFromLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes fxWindowFromTop{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes fxContentFromBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.fx-push-left-in{animation-name:fxWindowFromRight}.fx-push-left-out{animation-name:fxPushOutLeft}.fx-push-right-in{animation-name:fxWindowFromLeft}.fx-push-right-out{animation-name:fxPushOutRight}@keyframes fxPushOutLeft{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes fxPushOutRight{0%{transform:translate(0)}to{transform:translate(100%)}}.fx-zoom-punch-in{animation-name:fxZoomPunch}@keyframes fxZoomPunch{0%{opacity:0;transform:scale(1.35)}to{opacity:1;transform:scale(1)}}.fx-spin-in-in{animation-name:fxSpinIn}@keyframes fxSpinIn{0%{opacity:0;transform:rotate(-14deg)scale(1.45)}to{opacity:1;transform:rotate(0)scale(1)}}.fx-iris-in{animation-name:fxIris}@keyframes fxIris{0%{clip-path:circle(0%)}to{clip-path:circle(75%)}}.fx-diamond-in{animation-name:fxDiamond}@keyframes fxDiamond{0%{clip-path:polygon(50% 50%,50% 50%,50% 50%,50% 50%)}to{clip-path:polygon(50% -60%,160% 50%,50% 160%,-60% 50%)}}.fx-flip-in{animation-name:fxFlipIn}.fx-flip-out{animation-name:fxFlipOut}@keyframes fxFlipIn{0%{transform:rotateY(90deg)}to{transform:rotateY(0)}}@keyframes fxFlipOut{0%{transform:rotateY(0)}to{transform:rotateY(-90deg)}}.fx-star-in{animation-name:fxStar}@keyframes fxStar{0%{clip-path:polygon(50% 50%,50% 50%,50% 50%,50% 50%,50% 50%,50% 50%,50% 50%,50% 50%,50% 50%,50% 50%)}to{clip-path:polygon(50% -80%,64% 22%,180% 22%,72% 58%,112% 170%,50% 96%,-12% 170%,28% 58%,-80% 22%,36% 22%)}}.fx-wheel-in{animation-name:fxWheel;animation-timing-function:linear}@keyframes fxWheel{0%{clip-path:polygon(50% 50%,50% 0%,50% 0%,50% 0%,50% 0%,50% 0%)}25%{clip-path:polygon(50% 50%,50% 0%,100% 0%,100% 0%,100% 0%,100% 0%)}50%{clip-path:polygon(50% 50%,50% 0%,100% 0%,100% 100%,100% 100%,100% 100%)}75%{clip-path:polygon(50% 50%,50% 0%,100% 0%,100% 100%,0% 100%,0% 100%)}to{clip-path:polygon(50% 50%,50% 0%,100% 0%,100% 100%,0% 100%,0% 0%)}}.fx-barn-door-in{animation-name:fxBarnDoor}@keyframes fxBarnDoor{0%{clip-path:inset(0 50%)}to{clip-path:inset(0)}}.fx-cube-in{transform-origin:0;animation-name:fxCubeIn}.fx-cube-out{transform-origin:100%;animation-name:fxCubeOut}@keyframes fxCubeIn{0%{opacity:.4;transform:translate(60%)rotateY(75deg)}to{opacity:1;transform:translate(0)rotateY(0)}}@keyframes fxCubeOut{0%{transform:translate(0)rotateY(0)}to{transform:translate(-60%)rotateY(-75deg)}}.fx-tumble-in{animation-name:fxTumble}@keyframes fxTumble{0%{opacity:0;transform:rotate(-360deg)scale(.2)}to{opacity:1;transform:rotate(0)scale(1)}}.layer.showing .layer-media.kenburns-a{animation:kenBurnsA var(--photo-duration,8s) linear both}.layer.showing .layer-media.kenburns-b{animation:kenBurnsB var(--photo-duration,8s) linear both}@keyframes kenBurnsA{0%{transform:scale(1)translate(0)}to{transform:scale(1.08)translate(-1.2%,-.8%)}}@keyframes kenBurnsB{0%{transform:scale(1.08)translate(1.2%,.8%)}to{transform:scale(1)translate(0)}}.osd{pointer-events:none;font-family:var(--osd);text-transform:uppercase;font-weight:400;position:absolute;top:0;bottom:0;left:0;right:0}.osd-top{top:var(--safe-y);left:var(--safe-x);right:var(--safe-x);justify-content:space-between;align-items:flex-start;gap:16px;display:flex;position:absolute}.osd-chip{background:var(--plate);color:var(--accent);font-size:calc(28px * var(--osd-scale));letter-spacing:1px;white-space:nowrap;padding:4px 10px}.clock{color:var(--white)}.osd-bottom{left:var(--safe-x);right:var(--safe-x);bottom:var(--safe-y);position:absolute}.caption-block[hidden]{display:none}.caption-block.osd-in{animation:.42s ease-out both osdIn}@keyframes osdIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.name{background:var(--plate);color:var(--accent);font-size:calc(34px * var(--osd-scale));letter-spacing:1px;overflow-wrap:break-word;max-width:100%;margin-bottom:3px;padding:3px 12px;line-height:1.1;display:inline-block}.message{background:var(--plate);color:var(--accent);font-size:calc(22px * var(--osd-scale));letter-spacing:.5px;overflow-wrap:break-word;max-width:100%;margin-bottom:3px;padding:3px 12px;line-height:1.2;display:inline-block}.message[hidden]{display:none}.caption{background:var(--plate);color:var(--white);text-transform:none;font-size:calc(26px * var(--osd-scale));letter-spacing:.5px;overflow-wrap:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;padding:4px 12px;line-height:1.15;display:-webkit-box;overflow:hidden}.idle{text-align:center;background:#000;place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.idle[hidden]{display:none}.idle-dot{color:var(--accent);font-size:calc(30px * var(--osd-scale));letter-spacing:2px;margin-bottom:22px;animation:1.6s step-end infinite rec-blink}@keyframes rec-blink{50%{opacity:0}}.idle-text{color:var(--white);font-size:calc(52px * var(--osd-scale));letter-spacing:3px;margin-bottom:14px}.idle-sub{color:var(--accent);font-size:calc(28px * var(--osd-scale));letter-spacing:1px}.signal{right:var(--safe-x);bottom:var(--safe-y);background:var(--plate);color:var(--accent);font-size:calc(24px * var(--osd-scale));letter-spacing:1px;padding:3px 9px;animation:2s step-end infinite rec-blink;position:absolute}.signal[hidden]{display:none}
