@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--clr-bg:#0b0d19;--clr-bg-alt:#070810;--clr-card:#ffffff08;--clr-card-hover:#ffffff0f;--clr-border:#ffffff14;--clr-p1:#00f2fe;--clr-p1-glow:#00f2fe66;--clr-p2:#ff007f;--clr-p2-glow:#ff007f66;--clr-tie:gold;--clr-tie-glow:#ffd70066;--clr-rock:#ff5e36;--clr-rock-glow:#ff5e3666;--clr-paper:#0076ff;--clr-paper-glow:#0076ff66;--clr-scissors:#a154ff;--clr-scissors-glow:#a154ff66;--clr-text-main:#f3f4f6;--clr-text-muted:#9ca3af;--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--shadow-neon-p1:0 0 20px var(--clr-p1-glow);--shadow-neon-p2:0 0 20px var(--clr-p2-glow);--shadow-neon-tie:0 0 20px var(--clr-tie-glow);--transition:all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:radial-gradient(circle at center, var(--clr-bg) 0%, var(--clr-bg-alt) 100%);color:var(--clr-text-main);-webkit-font-smoothing:antialiased;justify-content:center;align-items:center;min-height:100vh;display:flex;overflow-x:hidden}#root{width:100%;max-width:900px;margin:0 auto;padding:2rem}.game-container{flex-direction:column;gap:2rem;width:100%;display:flex}.panel{background:var(--clr-card);-webkit-backdrop-filter:blur(20px);border:1px solid var(--clr-border);transition:var(--transition);border-radius:24px;padding:2rem;box-shadow:0 8px 32px #0000004d}.header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:.5rem;padding:1.5rem 2rem;display:flex}.logo-section h1{letter-spacing:-1px;background:linear-gradient(135deg, #fff 0%, var(--clr-text-muted) 100%);-webkit-text-fill-color:transparent;text-transform:uppercase;-webkit-background-clip:text;font-size:2.2rem;font-weight:800}.logo-section p{color:var(--clr-text-muted);letter-spacing:1px;text-transform:uppercase;font-size:.9rem}.mode-switcher{border:1px solid var(--clr-border);background:#0000004d;border-radius:14px;padding:.35rem;display:flex}.mode-btn{color:var(--clr-text-muted);font-family:var(--font-sans);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;display:flex}.mode-btn.active{background:var(--clr-p1);color:#000;box-shadow:var(--shadow-neon-p1)}.mode-btn:not(.active):hover{color:var(--clr-text-main);background:#ffffff0d}.scorecard{text-align:center;grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.score-box{border:1px solid var(--clr-border);transition:var(--transition);background:#0003;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;padding:1.2rem;display:flex;position:relative;overflow:hidden}.score-box:before{content:"";width:100%;height:3px;transition:var(--transition);background:0 0;position:absolute;top:0;left:0}.score-box.p1:before{background:var(--clr-p1)}.score-box.p2:before{background:var(--clr-p2)}.score-box.ties:before{background:var(--clr-tie)}.score-box.p1{box-shadow:inset 0 0 12px #00f2fe0d}.score-box.p2{box-shadow:inset 0 0 12px #ff007f0d}.score-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--clr-text-muted);margin-bottom:.4rem;font-size:.8rem}.score-value{transition:var(--transition);font-size:2.5rem;font-weight:800}.score-box.p1 .score-value{color:var(--clr-p1);text-shadow:0 0 10px #00f2fe33}.score-box.p2 .score-value{color:var(--clr-p2);text-shadow:0 0 10px #ff007f33}.score-box.ties .score-value{color:var(--clr-tie);text-shadow:0 0 10px #ffd70033}.stage{flex-direction:column;justify-content:center;align-items:center;min-height:360px;display:flex;position:relative}.status-msg{letter-spacing:.5px;text-align:center;min-height:30px;margin-bottom:2rem;font-size:1.25rem;font-weight:500}.player-indicator{text-transform:uppercase;letter-spacing:1px;border-radius:20px;margin-bottom:.5rem;padding:.25rem .8rem;font-size:.85rem;font-weight:700;display:inline-block}.player-indicator.p1{background:var(--clr-p1-glow);color:var(--clr-p1);border:1px solid var(--clr-p1)}.player-indicator.p2{background:var(--clr-p2-glow);color:var(--clr-p2);border:1px solid var(--clr-p2)}.choices-grid{justify-content:center;gap:2rem;width:100%;max-width:650px;margin-top:1rem;display:flex}.choice-card{aspect-ratio:1;border:2px solid var(--clr-border);cursor:pointer;background:#00000040;border-radius:20px;outline:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;max-width:180px;padding:1.5rem;transition:all .4s cubic-bezier(.175,.885,.32,1.275);display:flex;position:relative}.choice-card svg{width:50px;height:50px;transition:var(--transition)}.choice-name{text-transform:uppercase;letter-spacing:1px;color:var(--clr-text-muted);transition:var(--transition);font-size:1rem;font-weight:700}.choice-card.rock:hover,.choice-card.rock:focus{border-color:var(--clr-rock);box-shadow:0 0 25px var(--clr-rock-glow);background:#ff5e360d;transform:translateY(-8px)}.choice-card.rock:hover svg,.choice-card.rock:focus svg{color:var(--clr-rock);filter:drop-shadow(0 0 8px var(--clr-rock))}.choice-card.rock:hover .choice-name,.choice-card.rock:focus .choice-name{color:var(--clr-rock)}.choice-card.paper:hover,.choice-card.paper:focus{border-color:var(--clr-paper);box-shadow:0 0 25px var(--clr-paper-glow);background:#0076ff0d;transform:translateY(-8px)}.choice-card.paper:hover svg,.choice-card.paper:focus svg{color:var(--clr-paper);filter:drop-shadow(0 0 8px var(--clr-paper))}.choice-card.paper:hover .choice-name,.choice-card.paper:focus .choice-name{color:var(--clr-paper)}.choice-card.scissors:hover,.choice-card.scissors:focus{border-color:var(--clr-scissors);box-shadow:0 0 25px var(--clr-scissors-glow);background:#a154ff0d;transform:translateY(-8px)}.choice-card.scissors:hover svg,.choice-card.scissors:focus svg{color:var(--clr-scissors);filter:drop-shadow(0 0 8px var(--clr-scissors))}.choice-card.scissors:hover .choice-name,.choice-card.scissors:focus .choice-name{color:var(--clr-scissors)}.locked-container{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;animation:.5s ease-out fadeIn;display:flex}.lock-shield{border:2px dashed var(--clr-border);width:90px;height:90px;color:var(--clr-text-muted);background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;font-size:2rem;display:flex;position:relative}.lock-shield.p1-locked{border-color:var(--clr-p1);color:var(--clr-p1);animation:2s infinite pulseP1;box-shadow:0 0 20px #00f2fe1a}.lock-shield.p2-locked{border-color:var(--clr-p2);color:var(--clr-p2);animation:2s infinite pulseP2;box-shadow:0 0 20px #ff007f1a}.reveal-screen{flex-direction:column;align-items:center;width:100%;animation:.5s ease-out fadeIn;display:flex}.duel-arena{justify-content:space-around;align-items:center;width:100%;max-width:600px;margin:1rem 0 2.5rem;display:flex;position:relative}.duel-fighter{flex-direction:column;flex:1;align-items:center;gap:1rem;display:flex}.fighter-title{letter-spacing:1px;text-transform:uppercase;font-size:.9rem;font-weight:700}.fighter-title.p1{color:var(--clr-p1)}.fighter-title.p2{color:var(--clr-p2)}.fighter-card{border:3px solid var(--clr-border);width:150px;height:150px;color:var(--clr-text-main);background:#0000004d;border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;transition:all .5s cubic-bezier(.175,.885,.32,1.275);display:flex;position:relative;box-shadow:0 10px 25px #0006}.fighter-card svg{width:60px;height:60px}.fighter-card.rock{border-color:var(--clr-rock);box-shadow:0 0 25px var(--clr-rock-glow);color:var(--clr-rock)}.fighter-card.paper{border-color:var(--clr-paper);box-shadow:0 0 25px var(--clr-paper-glow);color:var(--clr-paper)}.fighter-card.scissors{border-color:var(--clr-scissors);box-shadow:0 0 25px var(--clr-scissors-glow);color:var(--clr-scissors)}.fighter-card.winner{z-index:10;transform:scale(1.15)}.fighter-card.winner.p1{border-color:var(--clr-p1);box-shadow:0 0 35px var(--clr-p1)}.fighter-card.winner.p2{border-color:var(--clr-p2);box-shadow:0 0 35px var(--clr-p2)}.fighter-card.loser{opacity:.35;transform:scale(.85)}.vs-divider{color:var(--clr-text-muted);opacity:.5;z-index:2;margin:0 1rem;font-size:1.5rem;font-style:italic;font-weight:900}.result-banner{text-align:center;margin-bottom:2rem;animation:.5s cubic-bezier(.175,.885,.32,1.275) scaleUp}.result-banner h2{text-transform:uppercase;letter-spacing:-1px;font-size:2.8rem;font-weight:900}.result-banner.p1-win h2{background:linear-gradient(to right, #fff, var(--clr-p1));-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 15px var(--clr-p1-glow));-webkit-background-clip:text}.result-banner.p2-win h2{background:linear-gradient(to right, #fff, var(--clr-p2));-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 15px var(--clr-p2-glow));-webkit-background-clip:text}.result-banner.tie h2{background:linear-gradient(to right, #fff, var(--clr-tie));-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 15px var(--clr-tie-glow));-webkit-background-clip:text}.result-sub{color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:2px;margin-top:.3rem;font-size:1rem}.btn{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:var(--transition);border:none;border-radius:14px;outline:none;justify-content:center;align-items:center;gap:.6rem;padding:.9rem 2.2rem;font-size:1rem;font-weight:700;display:inline-flex}.btn-primary{color:#000;background:#fff;box-shadow:0 8px 24px #ffffff1a}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 12px 28px #ffffff40}.btn-primary:active{transform:translateY(-1px)}.btn-neon-p1{background:var(--clr-p1-glow);color:var(--clr-p1);border:1px solid var(--clr-p1);box-shadow:var(--shadow-neon-p1)}.btn-neon-p1:hover{background:var(--clr-p1);color:#000;box-shadow:0 0 30px var(--clr-p1);transform:translateY(-3px)}.footer-controls{justify-content:center;gap:1rem;margin-top:1rem;display:flex}.btn-outline{color:var(--clr-text-muted);border:1px solid var(--clr-border);background:0 0;padding:.7rem 1.5rem;font-size:.85rem}.btn-outline:hover{color:var(--clr-text-main);background:#ffffff0d;border-color:#fff3}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleUp{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulseP1{0%{box-shadow:0 0 #00f2fe66}70%{box-shadow:0 0 0 15px #00f2fe00}to{box-shadow:0 0 #00f2fe00}}@keyframes pulseP2{0%{box-shadow:0 0 #ff007f66}70%{box-shadow:0 0 0 15px #ff007f00}to{box-shadow:0 0 #ff007f00}}.shake-left{transform-origin:0 100%;animation:.8s ease-in-out infinite shakeLeftHand}.shake-right{transform-origin:100% 100%;animation:.8s ease-in-out infinite shakeRightHand}@keyframes shakeLeftHand{0%,to{transform:rotate(0)}50%{transform:rotate(-15deg)translateY(-10px)}}@keyframes shakeRightHand{0%,to{transform:rotate(0)}50%{transform:rotate(15deg)translateY(-10px)}}.shake-screen{animation:.4s ease-in-out screenShake}@keyframes screenShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@media (width<=768px){#root{padding:1rem}.header{text-align:center;flex-direction:column;padding:1rem}.scorecard{grid-template-columns:1fr;gap:.8rem}.score-box{padding:.8rem}.choices-grid{flex-direction:column;align-items:center;gap:1rem}.choice-card{aspect-ratio:auto;flex-direction:row;justify-content:flex-start;gap:2rem;width:100%;max-width:280px;height:70px;padding:1rem 2rem}.choice-card svg{width:32px;height:32px}.duel-arena{flex-direction:column;gap:1.5rem}.vs-divider{margin:.5rem 0}.fighter-card{width:120px;height:120px}.fighter-card svg{width:45px;height:45px}.result-banner h2{font-size:2rem}}.online-setup{justify-content:center;gap:2rem;width:100%;max-width:750px;animation:.5s ease-out fadeIn;display:flex}.setup-card{border:1px solid var(--clr-border);text-align:center;transition:var(--transition);background:#00000040;border-radius:20px;flex-direction:column;flex:1;align-items:center;gap:1.25rem;padding:2rem;display:flex}.setup-card:hover{background:#ffffff05;border-color:#ffffff26;transform:translateY(-4px)}.setup-card h3{color:var(--clr-text-main);text-transform:uppercase;letter-spacing:.5px;font-size:1.4rem;font-weight:700}.setup-card p{color:var(--clr-text-muted);font-size:.9rem;line-height:1.4}.setup-card svg.setup-icon{width:48px;height:48px;color:var(--clr-text-muted);opacity:.8;margin-bottom:.5rem}.room-code-container{border:1px solid var(--clr-border);background:#0006;border-radius:16px;flex-direction:column;align-items:center;gap:.75rem;width:100%;padding:1.2rem;display:flex}.room-code-label{text-transform:uppercase;letter-spacing:1px;color:var(--clr-text-muted);font-size:.75rem}.room-code-value{letter-spacing:4px;color:var(--clr-p1);text-shadow:0 0 15px var(--clr-p1-glow);font-size:2.2rem;font-weight:800}.room-input{border:1px solid var(--clr-border);color:#fff;font-family:var(--font-sans);text-align:center;letter-spacing:3px;text-transform:uppercase;width:100%;transition:var(--transition);background:#0006;border-radius:12px;outline:none;padding:.8rem 1rem;font-size:1.1rem;font-weight:700}.room-input:focus{border-color:var(--clr-p2);box-shadow:0 0 15px #ff007f33}.room-input::placeholder{letter-spacing:1px;text-transform:none;color:#ffffff40;font-size:.95rem;font-weight:400}.status-bar{border:1px solid var(--clr-border);color:var(--clr-text-muted);background:#00000040;border-radius:30px;justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;padding:.6rem 1.2rem;font-size:.9rem;display:flex}.pulse-dot{background-color:var(--clr-text-muted);border-radius:50%;width:8px;height:8px}.pulse-dot.active{background-color:#39ff14;animation:2s infinite pulseGreen;box-shadow:0 0 10px #39ff14}.pulse-dot.warning{background-color:var(--clr-p2);box-shadow:0 0 10px var(--clr-p2);animation:1.5s infinite pulseP2}.btn-small{border-radius:8px;padding:.5rem 1rem;font-size:.75rem}@keyframes pulseGreen{0%{box-shadow:0 0 #39ff1480}70%{box-shadow:0 0 0 8px #39ff1400}to{box-shadow:0 0 #39ff1400}}.opponent-bubble{color:var(--clr-text-muted);border:1px solid var(--clr-border);background:#ffffff05;border-radius:12px;align-items:center;gap:.5rem;margin-top:1rem;padding:.4rem 1rem;font-size:.85rem;font-weight:500;display:flex}.opponent-bubble.ready{color:var(--clr-p1);background:#00f2fe05;border-color:#00f2fe33}.lobby-loader{flex-direction:column;align-items:center;gap:1.5rem;width:100%;padding:2rem;display:flex}.spinner{border:3px solid #ffffff0d;border-top-color:var(--clr-p1);border-radius:50%;width:45px;height:45px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=768px){.online-setup{flex-direction:column;gap:1rem;padding:0 1rem}.setup-card{padding:1.5rem}}
