:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#1a1a1a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;max-width:100vw;overflow-x:hidden}body{display:flex;place-items:flex-start;min-width:320px;min-height:100vh;background-color:transparent}#root{width:100%;max-width:100vw;overflow-x:hidden}.card{width:100px;height:140px;border-radius:12px;background-color:#fff;box-shadow:0 4px 8px #0003;display:flex;flex-direction:column;justify-content:space-between;padding:10px;box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;transition:transform .2s ease,box-shadow .2s ease,border .2s ease;cursor:pointer}.card:hover{transform:translateY(-10px)}.card.selected{transform:translateY(-20px);box-shadow:0 0 0 4px #fff,0 10px 20px #00000080;z-index:10}.card-yellow{background:linear-gradient(135deg,#fceabb,#f8b500);color:#5c4000}.card-blue{background:linear-gradient(135deg,#a1c4fd,#1976d2);color:#0d47a1}.card-green{background:linear-gradient(135deg,#d4fc79,#96e6a1);color:#1b5e20}.card-pink{background:linear-gradient(135deg,#ff9a9e,#fecfef 99% 100%);color:#c2185b}.card-brown{background:linear-gradient(135deg,#d7ccc8,#8d6e63);color:#3e2723}.card-red{background:linear-gradient(135deg,#f96,#ff5e62);color:#b71c1c}.card-corner{display:flex;align-items:center;justify-content:flex-start;padding:0 4px;font-weight:700;font-size:1.2rem}.card-corner.bottom-right{transform:rotate(180deg)}.card-center{display:flex;justify-content:center;align-items:center;flex-grow:1}.card-number-large{font-size:3rem;font-weight:800;opacity:.8}.card-back{background:repeating-linear-gradient(45deg,var(--bg-app),var(--bg-app) 10px,var(--secondary-color) 10px,var(--secondary-color) 20px);border:2px solid var(--card-border)}[data-theme=light] .card-back{background:repeating-linear-gradient(45deg,#e2e8f0,#e2e8f0 10px,#cbd5e1 10px 20px);border:2px solid rgba(0,0,0,.2)}.card-back:after{content:"ODIN";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-main);opacity:.4;font-weight:900;font-size:1.2rem;letter-spacing:2px}@media(max-width:640px){.card{width:70px;height:98px;border-radius:8px;padding:5px}.card.selected{transform:translateY(-12px);box-shadow:0 0 0 3px #fff,0 6px 14px #00000080}.card-corner{font-size:.9rem;padding:0 2px}.card-number-large{font-size:2rem}.card-back:after{font-size:.85rem;letter-spacing:1px}}@media(max-width:380px){.card{width:60px;height:84px;padding:4px;border-radius:6px}.card.selected{transform:translateY(-10px)}.card-corner{font-size:.75rem}.card-number-large{font-size:1.6rem}}.player-hand-container{display:flex;flex-direction:column;align-items:center;margin:10px 0;padding:15px;background:var(--card-bg);border-radius:16px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);width:100%;max-width:1000px;border:1px solid var(--card-border);box-sizing:border-box;transition:all .3s ease}[data-theme=light] .player-hand-container{background:#fff;border-color:#0000001f;box-shadow:0 4px 20px #0000000d}.player-hand-container.active-turn{background:var(--glass-bg);border-color:#6366f1;box-shadow:0 0 25px #6366f140}[data-theme=light] .player-hand-container.active-turn{border-color:#4f46e5;box-shadow:0 0 25px #4f46e533}.player-header{display:flex;justify-content:space-between;width:100%;align-items:center;margin-bottom:15px;padding:0 10px;box-sizing:border-box}.player-name{color:var(--text-main);font-family:Inter,sans-serif;letter-spacing:1px;margin:0;display:flex;align-items:center;gap:10px;font-weight:700;flex-wrap:wrap}.turn-indicator{color:#22c55e;font-size:.85rem;font-weight:700;text-transform:uppercase;background:#22c55e26;padding:3px 10px;border-radius:6px;transition:all .3s ease}[data-theme=light] .turn-indicator{color:#15803d;background:#16a34a1f}.turn-indicator.warning{color:#ef4444;background:#ef444433;animation:pulse 1s infinite alternate}[data-theme=light] .turn-indicator.warning{color:#b91c1c;background:#dc262626}.player-controls{display:flex;align-items:center;gap:20px}.sort-controls{display:flex;align-items:center;gap:12px}.sort-label{font-size:.75rem;text-transform:uppercase;color:var(--text-dim);font-weight:700;letter-spacing:.5px}.sort-button-group{display:flex;background:var(--input-bg);padding:3px;border-radius:8px;border:1px solid var(--card-border)}[data-theme=light] .sort-button-group{background:#f1f5f9}.btn-sort{background:transparent;border:none;color:var(--text-main);opacity:.7;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:6px}.btn-sort svg{opacity:.7;transition:transform .2s}.btn-sort:hover{opacity:1;background:var(--card-bg)}.btn-sort:hover svg{transform:translateY(-1px);opacity:1}.btn-sort.active{background:var(--glass-bg);color:var(--text-main);opacity:1;box-shadow:0 2px 8px #00000026;font-weight:700}[data-theme=light] .btn-sort.active{background:#e2e8f0;color:#0f172a}.btn-sort.active svg{opacity:1}.player-stats{display:flex;gap:15px;font-size:.9rem;color:var(--text-main);font-weight:600}.cards-list{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;min-height:150px;width:100%}.action-buttons{margin-top:20px;display:flex;gap:15px}.btn-play,.btn-pass{padding:10px 24px;border-radius:8px;border:none;font-weight:600;cursor:pointer;font-size:1rem;transition:all .2s}.btn-play{background-color:#22c55e;color:#fff}.btn-play:disabled{background-color:#94a3b84d;color:#94a3b8;cursor:not-allowed}[data-theme=light] .btn-play:disabled{background-color:#e2e8f0;color:#94a3b8}.btn-pass{background-color:var(--card-bg);color:var(--text-main);border:1px solid var(--card-border)}[data-theme=light] .btn-pass{background-color:#f1f5f9;border-color:#cbd5e1;color:#0f172a}.btn-pass:hover{background-color:var(--glass-bg)}.pickup-message{margin-top:15px;color:#64b5f6;font-weight:600;animation:pulse 1.5s infinite}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}@media(max-width:640px){.player-hand-container{padding:10px 8px;border-radius:14px;margin:6px 0}.player-header{flex-direction:column;align-items:stretch;gap:8px;padding:0 2px;margin-bottom:10px}.player-name{font-size:.95rem;justify-content:space-between;gap:6px}.turn-indicator{font-size:.72rem;padding:2px 6px}.player-controls{justify-content:space-between;align-items:center;width:100%;gap:8px;flex-wrap:wrap}.sort-controls{gap:4px}.sort-label{font-size:.65rem}.btn-sort{padding:4px 8px;font-size:.75rem;gap:4px}.btn-sort svg{width:14px;height:14px}.player-stats{font-size:.8rem;gap:10px}.cards-list{gap:6px;min-height:105px}.action-buttons{margin-top:12px;gap:10px;width:100%;justify-content:center}.btn-play,.btn-pass{padding:8px 16px;font-size:.9rem;flex:1;max-width:160px;text-align:center}}.table-center{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;background:var(--input-bg);border-radius:20px;border:2px solid var(--card-border);margin:20px 0;min-width:300px;width:100%;max-width:1000px;min-height:200px;box-sizing:border-box;transition:all .3s ease}[data-theme=light] .table-center{background:#fff;border-color:#0000001f;box-shadow:0 10px 30px #0000000d}.table-center.pickup-phase{background:#5b3afa1a;border-color:#5b3afa;box-shadow:0 0 20px #5b3afa4d}.table-center.landing-active{animation:centerLandingPulse .6s ease-out}@keyframes centerLandingPulse{0%{box-shadow:0 0 #ffd70000;border-color:var(--card-border)}50%{box-shadow:0 0 35px #ffd70099;border-color:gold;transform:scale(1.02)}to{box-shadow:0 0 #ffd70000;border-color:var(--card-border);transform:scale(1)}}.center-label{font-size:.9rem;color:var(--text-dim);margin-bottom:20px;letter-spacing:2px;font-weight:800;text-transform:uppercase}.center-cards{display:flex;gap:15px;flex-wrap:wrap;justify-content:center}.empty-center-placeholder{color:var(--text-dim);font-style:italic;opacity:.8}.center-card-wrapper{transition:transform .2s}.center-card-wrapper.clickable{cursor:pointer}.center-card-wrapper.clickable:hover{transform:scale(1.1);z-index:10}.played-by-label{margin-top:15px;font-size:.85rem;color:var(--text-dim);font-weight:600}@media(max-width:640px){.table-center{min-width:0;padding:15px 10px;margin:10px 0;min-height:130px;border-radius:16px}.center-label{font-size:.75rem;margin-bottom:10px;letter-spacing:1px}.center-cards{gap:6px}.played-by-label{margin-top:10px;font-size:.75rem}}.game-over-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--manche-over-bg, rgba(0, 0, 0, .8));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:2000;animation:fadeIn .4s ease-out}.overlay-content{background:var(--card-bg, #2a2a2a);border:2px solid var(--accent-color, #ffd700);color:var(--text-main);border-radius:20px;padding:40px;text-align:center;box-shadow:0 0 50px #00000080,0 0 20px var(--accent-color, #ffd700);max-width:500px;width:90%;transform:scale(0);animation:popIn .6s cubic-bezier(.175,.885,.32,1.275) forwards;animation-delay:.2s}[data-theme=light] .overlay-content{background:#fff;border-color:#d97706;color:#0f172a;box-shadow:0 20px 50px #00000026,0 0 20px #d9770633}@keyframes popIn{to{transform:scale(1)}}.overlay-content h2{font-size:3rem;margin-bottom:20px;color:var(--accent-color, #ffd700);text-transform:uppercase;letter-spacing:2px;text-shadow:2px 2px 4px rgba(0,0,0,.5);animation:glow 2s ease-in-out infinite alternate}[data-theme=light] .overlay-content h2{color:#b45309;text-shadow:none;animation:none}@keyframes glow{0%{text-shadow:0 0 10px rgba(255,215,0,.5)}to{text-shadow:0 0 20px rgba(255,215,0,.8),0 0 30px rgba(255,215,0,.6)}}.scores-list{display:flex;flex-direction:column;gap:15px;margin:30px 0}.player-score-item{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:#ffffff14;border-radius:10px;border-left:4px solid transparent;transition:all .3s ease}[data-theme=light] .player-score-item{background:#f8fafc;border:1px solid rgba(0,0,0,.08);border-left:4px solid transparent;color:#0f172a}.player-score-item.is-winner{background:#ffd70026;border-left-color:gold}[data-theme=light] .player-score-item.is-winner{background:#d977061f;border-left-color:#d97706}.player-score-item .player-name{font-weight:600;font-size:1.1rem}.player-score-item .score-value{font-family:Courier New,Courier,monospace;font-weight:700;font-size:1.3rem;color:var(--accent-color, #ffd700)}[data-theme=light] .player-score-item .score-value{color:#b45309;font-weight:800}.overlay-actions{margin-top:30px}.overlay-button{background:linear-gradient(45deg,gold,#ff8c00);color:#000;border:none;padding:15px 40px;font-size:1.2rem;font-weight:700;border-radius:30px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #ffd7004d}.overlay-button:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 6px 20px #ffd70080;filter:brightness(1.1)}.overlay-button:disabled{background:#fff3;color:#fff9;box-shadow:none;cursor:not-allowed;filter:none}[data-theme=light] .overlay-button{background:linear-gradient(45deg,#d97706,#b45309);color:#fff;box-shadow:0 4px 15px #d977064d}[data-theme=light] .overlay-button:disabled{background:#cbd5e1;color:#64748b;box-shadow:none;opacity:1}.overlay-button:active{transform:translateY(0)}.confetti-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.confetti{position:absolute;width:10px;height:10px;background:gold;top:-20px;animation:fall linear infinite}@keyframes fall{to{transform:translateY(100vh) rotate(720deg)}}@media(max-width:640px){.overlay-content{padding:24px 16px;border-radius:16px}.overlay-content h2{font-size:1.8rem;margin-bottom:12px}.scores-list{margin:18px 0;gap:10px}.player-score-item{padding:8px 14px}.player-score-item .player-name{font-size:.95rem}.player-score-item .score-value{font-size:1.1rem}.overlay-button{padding:10px 24px;font-size:1rem}}.card-animation-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9999;overflow:hidden}.flying-card-container{position:absolute;top:0;left:0;width:100px;height:140px;will-change:transform,opacity;animation:flyToCenter .55s cubic-bezier(.16,1,.3,1) forwards;perspective:1000px}.flying-card-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .55s ease}.flying-card-container.flip .flying-card-inner{animation:flipCard .55s ease-in-out forwards}.flying-card-container .card{width:100%;height:100%;margin:0;box-shadow:0 12px 30px #0006,0 0 20px #fff3;animation:cardShadowPulse .55s ease-in-out forwards}.flying-card-trail{position:absolute;inset:-5px;border-radius:16px;background:radial-gradient(circle,#ffd70066,#fff0 70%);opacity:0;animation:trailGlow .55s ease-out forwards;pointer-events:none}@keyframes flyToCenter{0%{transform:translate3d(var(--start-x),var(--start-y),0) scale(1) rotate(var(--start-rot));opacity:1}55%{transform:translate3d(var(--mid-x),var(--mid-y),0) scale(1.15) rotate(calc(var(--start-rot) * .4));opacity:1}to{transform:translate3d(var(--target-x),var(--target-y),0) scale(1) rotate(0);opacity:1}}@keyframes flipCard{0%{transform:rotateY(180deg)}40%{transform:rotateY(180deg)}to{transform:rotateY(0)}}@keyframes cardShadowPulse{0%{box-shadow:0 4px 10px #0003}50%{box-shadow:0 25px 45px #0009,0 0 30px #ffd70080}to{box-shadow:0 4px 12px #0000004d}}@keyframes trailGlow{0%{opacity:0;transform:scale(.8)}40%{opacity:.8;transform:scale(1.2)}to{opacity:0;transform:scale(1)}}.game-table{display:flex;flex-direction:column;align-items:center;width:100%;min-height:100vh;padding:20px;box-sizing:border-box;background-color:transparent;transition:background-color .3s ease}.game-header{display:flex;flex-direction:column;align-items:center;margin-bottom:30px}.title-row{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:10px;width:100%;justify-content:center}.game-badges{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.game-header h1{font-size:3rem;margin:0;background:linear-gradient(to right,#fff,#cbd5e1);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:800;text-transform:uppercase;letter-spacing:2px}[data-theme=light] .game-header h1{background:linear-gradient(to right,#0f172a,#334155);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.manche-tag{font-size:.95rem;background:var(--card-bg);color:var(--text-main);padding:6px 14px;border-radius:8px;letter-spacing:1px;border:1px solid var(--card-border);font-weight:700;-webkit-text-fill-color:initial}.score-limit-tag{font-size:.9rem;background:var(--card-bg);padding:6px 14px;border-radius:20px;font-weight:600;color:var(--text-main);border:1px solid var(--card-border);-webkit-text-fill-color:initial}[data-theme=light] .manche-tag{background:#fff;color:#0f172a;border-color:#00000026;box-shadow:0 2px 8px #0000000d;-webkit-text-fill-color:#0f172a}[data-theme=light] .score-limit-tag{background:#fff;color:#334155;border-color:#00000026;box-shadow:0 2px 8px #0000000d;-webkit-text-fill-color:#334155}.game-message{font-size:1.5rem;color:gold;margin:10px 0;text-shadow:0 0 10px rgba(255,215,0,.3);min-height:2.5rem;text-align:center;font-weight:700;max-width:100%;word-break:break-word;overflow-wrap:anywhere}[data-theme=light] .game-message{color:#d97706;text-shadow:none}.overlay-menu{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000e6;padding:40px;border-radius:20px;border:1px solid rgba(255,255,255,.1);z-index:100;text-align:center;box-shadow:0 0 50px #000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.scores-summary{margin:20px 0;font-size:1.2rem;text-align:left}.scores-summary div{padding:5px 0;border-bottom:1px solid rgba(255,255,255,.1)}.restart-btn{padding:12px 24px;font-size:1rem;font-weight:600;color:#fff;background:linear-gradient(90deg,#4b6cb7,#182848);border:none;border-radius:30px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 4px 15px #18284866}.restart-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #18284899}.restart-btn:active{transform:translateY(1px)}.players-container{display:flex;flex-direction:column;align-items:center;width:100%;gap:20px}.turn-timer-container{width:100%;max-width:600px;margin:0 auto 25px;display:flex;flex-direction:column;align-items:center;gap:10px;background:var(--glass-bg);padding:12px 20px;border-radius:16px;border:1px solid var(--card-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #0003;box-sizing:border-box}.timer-bar-wrapper{width:100%;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;position:relative}.timer-bar{height:100%;background:linear-gradient(90deg,#10b981,#059669);border-radius:4px;transition:width 1s linear,background-color .3s ease}.timer-bar.warning{background:linear-gradient(90deg,#ef4444,#dc2626);animation:timer-pulse 1s infinite alternate}.timer-text{font-size:.95rem;font-weight:600;color:var(--text-main);display:flex;align-items:center;gap:8px;letter-spacing:.5px;transition:color .3s ease}.timer-text svg{animation:spin-slow 10s linear infinite}.timer-text.warning{color:#ef4444;font-weight:700;animation:text-shake .5s ease-in-out infinite alternate}.timer-text.warning svg{animation:spin-fast 1.5s linear infinite}@keyframes timer-pulse{0%{opacity:.7}to{opacity:1}}@keyframes text-shake{0%{transform:scale(1)}to{transform:scale(1.06)}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin-fast{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:640px){.game-table{padding:10px 8px}.game-header{margin-bottom:15px;width:100%}.game-header h1{font-size:1.8rem;letter-spacing:1px}.manche-tag,.score-limit-tag{font-size:.8rem;padding:4px 10px}.game-message{font-size:1.05rem;margin:6px 0;min-height:auto;padding:0 4px;line-height:1.35}.turn-timer-container{padding:8px 12px;margin-bottom:15px;border-radius:12px}.timer-text{font-size:.85rem}.players-container{gap:12px}}.notification-container{position:fixed;top:24px;right:24px;z-index:2000;max-width:320px;width:calc(100% - 48px);background:#191923e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,107,107,.3);border-radius:12px;box-shadow:0 10px 30px #0006,0 0 15px #ff6b6b1a;overflow:hidden;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.notification-container.enter{transform:translate(120%) scale(.9);opacity:0;animation:slideIn .5s forwards cubic-bezier(.175,.885,.32,1.275)}.notification-container.exit{transform:translate(120%) scale(.9);opacity:0}@keyframes slideIn{to{transform:translate(0) scale(1);opacity:1}}.notification-content{display:flex;align-items:flex-start;padding:16px;gap:14px}.notification-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#ff6b6b26;border-radius:10px;color:#ff6b6b}.notification-icon svg{width:22px;height:22px}.notification-message{flex-grow:1}.notification-title{display:block;font-size:14px;font-weight:700;color:#ff6b6b;margin-bottom:2px;text-transform:uppercase;letter-spacing:.5px}.notification-message p{margin:0;font-size:14px;color:var(--text-main);line-height:1.4;opacity:.9}.notification-close{flex-shrink:0;background:transparent;border:none;color:var(--text-dim);padding:4px;cursor:pointer;border-radius:6px;transition:all .2s;margin-top:-2px;margin-right:-4px}.notification-close:hover{background:#ffffff1a;color:var(--text-main)}.notification-close svg{width:18px;height:18px}.notification-progress{height:3px;background:#ff6b6b;width:100%;transform-origin:left;animation:progress 5s linear forwards}@keyframes progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}[data-theme=light] .notification-container{background:#fffffff2;border-color:#ff6b6b80;box-shadow:0 10px 30px #0000001a}[data-theme=light] .notification-message p{color:#2d3436}.animated-bg{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;overflow:hidden;background-color:var(--bg-app, #0f1013);transition:background-color .3s ease}.bg-grain{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.04;pointer-events:none;z-index:2;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3%3Cfilter id='noiseFilter'%3%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3%3C/filter%3%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3%3C/svg%3E")}.blobs-container{position:absolute;top:0;left:0;width:100%;height:100%;filter:blur(100px);z-index:1;transform:translate(var(--mouse-x, 0),var(--mouse-y, 0));transition:transform .2s ease-out}.blob{position:absolute;opacity:.45;pointer-events:none;animation:blob-move 35s infinite alternate cubic-bezier(.45,0,.55,1);border-radius:40% 60% 70% 30%/40% 50% 60%}.blob-1{width:85vw;height:85vw;background:radial-gradient(circle at center,#4338ca 0%,#312e81 30%,transparent 70%);top:-25%;left:-20%;animation-duration:45s}.blob-2{width:75vw;height:75vw;background:radial-gradient(circle at center,#7e22ce 0%,#581c87 30%,transparent 70%);bottom:-15%;right:-10%;animation-duration:55s;animation-delay:-12s;border-radius:60% 40% 30% 70%/60% 30% 70% 40%}.blob-3{width:65vw;height:65vw;background:radial-gradient(circle at center,#0369a1 0%,#075985 30%,transparent 70%);top:15%;right:5%;animation-duration:50s;animation-delay:-25s;border-radius:50% 50% 20% 80%/25% 80% 20% 75%}.blob-4{width:55vw;height:55vw;background:radial-gradient(circle at center,#be185d 0%,#9d174d 30%,transparent 70%);bottom:5%;left:10%;animation-duration:60s;animation-delay:-35s;border-radius:30% 70% 70% 30%/50% 60% 40% 50%}.blob-5{width:45vw;height:45vw;background:radial-gradient(circle at center,#15803d 0%,#14532d 30%,transparent 70%);top:35%;left:35%;animation-duration:65s;animation-delay:-8s;opacity:.25;border-radius:80% 20% 50% 50%/50% 50% 20% 80%}@keyframes blob-move{0%{transform:translate(0) scale(1) rotate(0)}33%{transform:translate(15%,10%) scale(1.2) rotate(120deg)}66%{transform:translate(-10%,20%) scale(.8) rotate(240deg)}to{transform:translate(0) scale(1) rotate(360deg)}}[data-theme=light] .blobs-container{opacity:.2}[data-theme=light] .bg-grain{opacity:.02}.reconnect-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000a6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .3s cubic-bezier(.16,1,.3,1)}.reconnect-modal-content{background:var(--card-bg, rgba(255, 255, 255, .08));-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-radius:24px;padding:2.5rem 2rem;box-shadow:0 16px 40px #0006,0 0 30px #4f46e533;border:1px solid var(--card-border, rgba(255, 255, 255, .15));max-width:440px;width:90%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.25rem;animation:modalScaleUp .35s cubic-bezier(.16,1,.3,1)}[data-theme=light] .reconnect-modal-content{background:#fff;border-color:#00000026;box-shadow:0 20px 50px #0003}.reconnect-icon{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#4f46e54d,#a855f74d);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;color:gold;box-shadow:0 4px 20px #4f46e54d}[data-theme=light] .reconnect-icon{background:linear-gradient(135deg,#4f46e526,#a855f726);border-color:#4f46e54d;color:#6366f1}.reconnect-icon svg{width:32px;height:32px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.reconnect-title{font-size:1.6rem;font-weight:800;margin:0;background:linear-gradient(to bottom,#fff,#cfcfcf);-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-theme=light] .reconnect-title{background:linear-gradient(to bottom,#0f172a,#334155);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.reconnect-text{font-size:1rem;color:var(--text-dim, rgba(255, 255, 255, .7));line-height:1.5;margin:0}[data-theme=light] .reconnect-text{color:#475569}.reconnect-code-badge{display:inline-block;background:#ffd70026;border:1px solid rgba(255,215,0,.4);color:gold;font-weight:800;font-size:1.25rem;letter-spacing:2px;padding:.4rem 1rem;border-radius:12px;margin-top:.25rem;font-family:monospace}[data-theme=light] .reconnect-code-badge{background:#d977061f;border-color:#d9770666;color:#b45309}.reconnect-actions{display:flex;gap:1rem;width:100%;margin-top:.5rem}.reconnect-btn{flex:1;padding:.9rem 1.2rem;border-radius:14px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s ease;border:none}.reconnect-btn-confirm{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;box-shadow:0 4px 15px #4f46e566}.reconnect-btn-confirm:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4f46e599}.reconnect-btn-cancel{background:#ffffff1a;color:var(--text-main, #ffffff);border:1px solid rgba(255,255,255,.15)}[data-theme=light] .reconnect-btn-cancel{background:#e2e8f0;color:#0f172a;border:1px solid #cbd5e1}.reconnect-btn-cancel:hover{background:#ffffff2e;transform:translateY(-2px)}[data-theme=light] .reconnect-btn-cancel:hover{background:#cbd5e1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalScaleUp{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}:root{--bg-dark: #1a1a2e;--primary-color: #501821;--secondary-color: #0f3460;--text-light: #eaeaea;--highlight: #16213e;--bg-app: #1a1a2e;--text-main: #ffffff;--text-dim: rgba(255, 255, 255, .75);--card-bg: rgba(255, 255, 255, .08);--card-border: rgba(255, 255, 255, .18);--input-bg: rgba(0, 0, 0, .4);--glass-bg: rgba(255, 255, 255, .08);--divider-color: rgba(255, 255, 255, .2);--accent-color: #ffd700;--manche-over-bg: rgba(15, 17, 26, .95)}[data-theme=light]{--bg-app: #f1f5f9;--text-main: #0f172a;--text-dim: #475569;--card-bg: #ffffff;--card-border: rgba(0, 0, 0, .15);--input-bg: #f8fafc;--glass-bg: rgba(255, 255, 255, .9);--divider-color: rgba(0, 0, 0, .15);--secondary-color: #e2e8f0;--accent-color: #d97706;--manche-over-bg: rgba(248, 250, 252, .95)}body{background-color:transparent;color:var(--text-main);font-family:Inter,system-ui,-apple-system,sans-serif;margin:0;padding:0;min-height:100vh;transition:background-color .3s ease,color .3s ease}.App{width:100%;min-height:100vh;display:flex;flex-direction:column;align-items:center}.menu-container{display:flex;justify-content:center;align-items:center;flex:1;width:100%}.menu-card{background:var(--card-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:3rem;box-shadow:0 8px 32px #0000004d,0 0 20px #4f46e51a;border:1px solid var(--card-border);max-width:450px;width:90%;position:relative;overflow:hidden}.menu-card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent);transition:.5s}.menu-card:hover:before{left:100%}.title{font-size:3.5rem;font-weight:900;margin-bottom:2.5rem;text-align:center;background:linear-gradient(to bottom,#fff,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));letter-spacing:-1px}[data-theme=light] .title{background:linear-gradient(135deg,#0f172a,#334155);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.menu-actions{display:flex;flex-direction:column;gap:1.5rem}.nickname-section{margin-bottom:2rem;display:flex;flex-direction:column;gap:.5rem}.nickname-section label,.action-group h2,.score-setting label{font-size:.8rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px;font-weight:700}.input-nickname,.input-score,.input-code,select.input-score{padding:.8rem;border-radius:12px;border:1px solid var(--card-border);background:var(--input-bg);color:var(--text-main);font-size:1.1rem;transition:border-color .2s,background-color .2s,color .2s;width:100%;box-sizing:border-box}.input-nickname::placeholder,.input-score::placeholder,.input-code::placeholder{color:var(--text-dim);opacity:.7}.input-nickname:focus,.input-score:focus,.input-code:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f140}.action-group h2{margin-bottom:.8rem}.score-setting{margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.btn{padding:1rem 1.5rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%}.btn-primary{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;box-shadow:0 4px 15px #4f46e566}.btn-primary:hover{filter:brightness(1.2);transform:translateY(-2px);box-shadow:0 8px 25px #4f46e580}.btn-secondary{background:var(--secondary-color);color:var(--text-main);border:1px solid var(--card-border)}.btn-secondary:hover{background:#ffffff26;border-color:#ffffff4d}[data-theme=light] .btn-secondary{background:#e2e8f0;color:#0f172a}[data-theme=light] .btn-secondary:hover{background:#cbd5e1;border-color:#0003}.btn:disabled{opacity:.5;cursor:not-allowed}.input-group{display:flex;gap:12px;width:100%;align-items:center}.input-group .input-code{flex:1;min-width:0;width:auto;letter-spacing:3px;font-weight:700;font-family:monospace;font-size:1.1rem;text-align:center}.input-group .btn-secondary{width:auto;flex-shrink:0;padding:.8rem 1.5rem}.divider{display:flex;align-items:center;color:var(--text-dim);font-size:.8rem;margin:.5rem 0;font-weight:600}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid var(--divider-color)}.divider:before{margin-right:15px}.divider:after{margin-left:15px}.lobby-container{width:100%;padding-top:2rem;display:flex;flex-direction:column;align-items:center}.lobby-header{margin-bottom:2rem;display:flex;flex-direction:column;align-items:center;text-align:center}.code-display{font-size:1.2rem;margin-top:1.5rem;color:var(--text-main);font-weight:600;display:flex;align-items:center;gap:12px}.highlight-code{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;padding:.5rem 1.5rem;border-radius:12px;font-family:monospace;letter-spacing:3px;font-weight:800;box-shadow:0 4px 15px #4f46e566;font-size:1.3rem;display:inline-block}.player-count{color:var(--text-dim);margin-top:1rem;font-size:.95rem;font-weight:600}.lobby-player-list{list-style:none;padding:0;margin-top:2rem;display:flex;flex-direction:column;gap:.8rem;width:100%;max-width:320px}.lobby-player-list li{background:var(--card-bg);padding:.9rem 1.2rem;border-radius:12px;border:1px solid var(--card-border);font-weight:600;text-align:center;color:var(--text-main);transition:all .2s ease}[data-theme=light] .lobby-player-list li{background:#fff;border-color:#0000001f;box-shadow:0 2px 8px #0000000a}.lobby-player-list li.is-me{border-color:#6366f1;background:#6366f126;color:#a5b4fc;font-weight:700}[data-theme=light] .lobby-player-list li.is-me{border-color:#4f46e5;background:#4f46e514;color:#4338ca}.error-msg{color:#ff6b6b;margin-top:1rem;font-size:.9rem;background:#ff6b6b1a;padding:.5rem;border-radius:8px}.theme-toggle{position:absolute;top:20px;right:20px;z-index:1000}.theme-toggle-btn{background:var(--card-bg);border:1px solid var(--card-border);color:var(--text-main);padding:10px;border-radius:50%;width:45px;height:45px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;transition:all .3s ease;box-shadow:0 4px 12px #0000001a}.theme-toggle-btn:hover{transform:rotate(15deg) scale(1.1);background:var(--glass-bg)}.theme-toggle-btn svg{width:20px;height:20px;fill:currentColor}@media(max-width:640px){.theme-toggle{top:12px;right:12px}.theme-toggle-btn{width:38px;height:38px;padding:8px}.menu-card{padding:1.8rem 1.2rem;border-radius:18px}.title{font-size:2.2rem;margin-bottom:1.8rem}}
