:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;font-weight:400;background:linear-gradient(135deg,#1e3c72,#2a5298);min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}#root{width:100%;margin:0 auto;text-align:center}.app{padding:2rem;color:#fff;min-height:100vh}h1{font-size:3rem;margin-bottom:2rem;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.lobby{max-width:400px;margin:0 auto;background:#ffffff1a;padding:2rem;border-radius:15px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #0000004d}.input-group,.join-room{margin-bottom:1.5rem}input{width:100%;padding:12px;font-size:1rem;border:2px solid rgba(255,255,255,.3);border-radius:8px;background:#ffffffe6;outline:none;transition:all .3s}input:focus{border-color:#4caf50;box-shadow:0 0 10px #4caf504d}.button-group{display:flex;flex-direction:column;gap:1rem}button{padding:12px 24px;font-size:1rem;font-weight:700;border:none;border-radius:8px;background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;cursor:pointer;transition:all .3s;box-shadow:0 4px 15px #4caf504d}button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #4caf5066}button:disabled{opacity:.5;cursor:not-allowed}.join-room{display:flex;gap:.5rem}.join-room input{flex:1;text-transform:uppercase}.error{color:#ff6b6b;background:#ff6b6b33;padding:10px;border-radius:8px;margin-top:1rem}.waiting{text-align:center}.waiting h2{font-size:2rem;margin-bottom:1rem;color:#4caf50}.hint{font-size:.9rem;opacity:.8;margin-top:1rem}.game-info{display:flex;justify-content:center;gap:2rem;margin-bottom:2rem;font-size:1.2rem}.war-indicator{color:#ff6b6b;font-weight:700;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.game-board{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:2rem;position:relative}.player-area{display:flex;flex-direction:column;align-items:center;gap:1rem}.opponent{order:1}.player{order:3}.deck-info{display:flex;gap:1.5rem;font-size:1.1rem;background:#ffffff1a;padding:8px 16px;border-radius:8px}.card-display{min-height:200px;display:flex;align-items:center;justify-content:center}.card{width:140px;height:200px;background:#fff;border-radius:12px;box-shadow:0 8px 20px #0000004d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;animation:dealCard .3s ease-out;position:relative}@keyframes dealCard{0%{transform:scale(0) rotate(-180deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.card.red{color:#e74c3c}.card.black{color:#2c3e50}.card-rank{font-size:3rem;font-weight:700}.card-suit{font-size:2.5rem}.card-placeholder{width:140px;height:200px;border:3px dashed rgba(255,255,255,.3);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:3rem;color:#ffffff4d}.play-button{padding:16px 32px;font-size:1.2rem;background:linear-gradient(135deg,#4caf50,#45a049);animation:buttonPulse 2s infinite}@keyframes buttonPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.war-pile{order:2;text-align:center;background:#ff6b6b33;padding:1rem;border-radius:8px;font-size:1.1rem}.winner-banner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000e6;padding:3rem;border-radius:20px;z-index:1000;animation:popIn .5s ease-out}@keyframes popIn{0%{transform:translate(-50%,-50%) scale(0)}to{transform:translate(-50%,-50%) scale(1)}}.winner-banner h2{font-size:2.5rem;margin-bottom:1.5rem}.winner-banner .final-scores{background:#ffffff1a;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem}.winner-banner .final-scores p{font-size:1.2rem;margin:.5rem 0}.winner-banner .turns-played{margin-top:1rem;font-size:1rem;opacity:.8}.winner-banner button{font-size:1.2rem;padding:15px 30px}@media(max-width:600px){h1{font-size:2rem}.card,.card-placeholder{width:100px;height:140px}.card-rank{font-size:2rem}.card-suit{font-size:1.5rem}}
