*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;background:#000;overflow:hidden}body{font-family:Segoe UI,Roboto,Arial,sans-serif;color:#fff}.app-root{position:relative;width:100vw;height:100vh}.pairing-screen{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:radial-gradient(circle at center,#1a1a2e,#05050a)}.pairing-card{text-align:center;padding:3rem 4rem;border-radius:1rem;background:#ffffff0a;animation:pairing-card-in .6s cubic-bezier(.22,1,.36,1) both}@keyframes pairing-card-in{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.pairing-card h1{font-size:2rem;margin-bottom:1rem}.pairing-card p{font-size:1.1rem;opacity:.8;margin-bottom:1.5rem}.pairing-code{font-size:5rem;font-weight:700;letter-spacing:.5rem;padding:1rem 2rem;border-radius:.75rem;background:#ffffff14;margin-bottom:1.5rem;animation:pairing-code-glow 2.2s ease-in-out infinite}@keyframes pairing-code-glow{0%,to{box-shadow:0 0 #7882ff00}50%{box-shadow:0 0 0 10px #7882ff14}}.pairing-hint{font-size:.95rem;opacity:.6;margin-bottom:0;position:relative}.pairing-hint:before{content:"";display:inline-block;width:8px;height:8px;margin-right:.5rem;border-radius:50%;background:#7c8cff;animation:pulse-fade 1.4s ease-in-out infinite}@keyframes pulse-fade{0%,to{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}.checking-screen,.player-empty{display:flex;flex-direction:column;gap:1rem;align-items:center;justify-content:center;width:100%;height:100%;font-size:1.5rem;opacity:.6;animation:fade-in .4s ease both}.checking-screen:before{content:"";width:2.5rem;height:2.5rem;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;animation:spin .9s linear infinite}@keyframes fade-in{0%{opacity:0}to{opacity:.6}}@keyframes spin{to{transform:rotate(360deg)}}.stage{position:relative;width:100%;height:100%;overflow:hidden;background:#000;perspective:1600px}.slide-layer{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform,opacity,filter;transform-style:preserve-3d;backface-visibility:hidden}.slide{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.slide-media{width:100%;height:100%;object-fit:cover}.slide-title-only{font-size:3rem;font-weight:600}@keyframes anim-fade-in{0%{opacity:0}to{opacity:1}}@keyframes anim-fade-out{0%{opacity:1}to{opacity:0}}@keyframes anim-zoom-in-enter{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes anim-zoom-in-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.15)}}@keyframes anim-zoom-out-enter{0%{opacity:0;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes anim-zoom-out-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.85)}}@keyframes anim-rotate-enter{0%{opacity:0;transform:rotate(-8deg) scale(.92)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes anim-rotate-exit{0%{opacity:1;transform:rotate(0) scale(1)}to{opacity:0;transform:rotate(8deg) scale(.92)}}@keyframes anim-slide-left-enter{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes anim-slide-left-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100%)}}@keyframes anim-slide-right-enter{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes anim-slide-right-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes anim-flip-enter{0%{opacity:0;transform:rotateY(-100deg) scale(.9)}to{opacity:1;transform:rotateY(0) scale(1)}}@keyframes anim-flip-exit{0%{opacity:1;transform:rotateY(0) scale(1)}to{opacity:0;transform:rotateY(100deg) scale(.9)}}@keyframes anim-blur-enter{0%{opacity:0;filter:blur(24px);transform:scale(1.05)}to{opacity:1;filter:blur(0);transform:scale(1)}}@keyframes anim-blur-exit{0%{opacity:1;filter:blur(0);transform:scale(1)}to{opacity:0;filter:blur(24px);transform:scale(1.05)}}@keyframes anim-bounce-enter{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.08)}70%{transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes anim-bounce-exit{0%{opacity:1;transform:scale(1)}30%{transform:scale(1.08)}to{opacity:0;transform:scale(.3)}}@keyframes anim-ken-burns-enter{0%{opacity:0}to{opacity:1}}@keyframes anim-ken-burns-pan{0%{transform:scale(1) translate(0)}to{transform:scale(1.18) translate(-2%,-2%)}}.slide-overlay-fx{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.overlay-flash{background:radial-gradient(circle at 50% 40%,#ffffffe6,#fff0 60%);mix-blend-mode:screen}@keyframes anim-overlay-flash{0%,82%{opacity:0}84%{opacity:.9}87%{opacity:.15}90%{opacity:.8}94%,to{opacity:0}}.overlay-shine-sweep{background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.55) 50%,transparent 58%);background-size:250% 100%;mix-blend-mode:screen}@keyframes anim-overlay-shine{0%{background-position:140% 0;opacity:0}8%{opacity:1}35%{background-position:-40% 0;opacity:1}45%,to{opacity:0;background-position:-40% 0}}.overlay-glow-pulse{background:radial-gradient(circle at 50% 50%,rgba(255,200,120,.55),transparent 65%);mix-blend-mode:screen}@keyframes anim-overlay-glow{0%,to{opacity:.15;transform:scale(.92)}50%{opacity:.55;transform:scale(1.08)}}.overlay-vignette-pulse{background:radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.75) 100%)}@keyframes anim-overlay-vignette{0%,to{opacity:.5}50%{opacity:.9}}.overlay-flicker{background:#ffffff14;mix-blend-mode:overlay}@keyframes anim-overlay-flicker{0%{opacity:.2}25%{opacity:.55}50%{opacity:.12}75%{opacity:.4}to{opacity:.2}}.overlay-light-leak{background:radial-gradient(ellipse 60% 80% at 20% 20%,rgba(255,150,80,.55),transparent 60%),radial-gradient(ellipse 50% 70% at 85% 75%,rgba(255,90,150,.4),transparent 65%);mix-blend-mode:screen}@keyframes anim-overlay-light-leak{0%{opacity:.25;transform:translate(-10%,-6%) scale(1)}50%{opacity:.65;transform:translate(6%,4%) scale(1.15)}to{opacity:.25;transform:translate(-10%,-6%) scale(1)}}.offline-badge{position:absolute;top:.75rem;right:.75rem;z-index:10;background:#c82828d9;padding:.4rem .9rem;border-radius:.5rem;font-size:.85rem;box-shadow:0 6px 18px #00000059;animation:offline-badge-in .35s cubic-bezier(.22,1,.36,1) both}@keyframes offline-badge-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
