:root{--bg-dark:#0f172a;--panel-bg:#1e293bb3;--primary:#ec4899;--secondary:#8b5cf6;--text-light:#f8fafc;--glass-border:#ffffff1a;--uno-red:#ef4444;--uno-blue:#3b82f6;--uno-green:#10b981;--uno-yellow:#eab308;--uno-wild:#1f2937}body{color:var(--text-light);background:radial-gradient(circle,#1e1b4b 0%,#000 100%);min-height:100vh;margin:0;font-family:Inter,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow:hidden}.glass-panel{background:var(--panel-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:16px;box-shadow:0 8px 32px #0000004d}.pill-btn{white-space:nowrap}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:12px 24px;font-size:1.1rem;font-weight:700;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 15px #ec489966}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ec489999}.btn-secondary{color:#fff;border:1px solid var(--glass-border);cursor:pointer;white-space:nowrap;background:#ffffff1a;border-radius:8px;padding:12px 24px;font-size:1.1rem;font-weight:700;transition:background .2s}.btn-secondary:hover{background:#fff3}.btn-join{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;padding:12px 24px;font-size:1.1rem;font-weight:700;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 15px #10b98166}.btn-join:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b98199}.input-field{border:1px solid var(--glass-border);color:#fff;box-sizing:border-box;background:#0000004d;border-radius:8px;outline:none;width:100%;padding:12px;font-size:1rem;transition:border-color .2s}.input-field:focus{border-color:var(--primary)}.avatar-selector{justify-content:center;gap:10px;margin:15px 0;display:flex}.avatar-option{cursor:pointer;background:#ffffff1a;border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;font-size:2rem;transition:transform .2s;display:flex}.avatar-option.selected{border-color:var(--primary);background:#fff3;transform:scale(1.1)}.uno-card{color:#fff;cursor:pointer;background-position:50%;background-size:cover;border:4px solid #fff;border-radius:10px;justify-content:center;align-items:center;width:80px;height:120px;font-size:2rem;font-weight:700;transition:transform .2s,top .2s;display:flex;position:relative;box-shadow:0 4px 10px #00000080}.uno-card:hover{z-index:10;transform:translateY(-15px)scale(1.05)}.card-red{background-color:var(--uno-red)}.card-blue{background-color:var(--uno-blue)}.card-green{background-color:var(--uno-green)}.card-yellow{background-color:var(--uno-yellow)}.card-wild{background:conic-gradient(var(--uno-red) 90deg, var(--uno-blue) 90deg 180deg, var(--uno-green) 180deg 270deg, var(--uno-yellow) 270deg)}.card-sleeve{cursor:default;background-color:#222;background-image:url(/icon.png);border-color:#555}.landing-container{justify-content:center;align-items:center;height:100vh;display:flex}.landing-card{text-align:center;width:400px;max-width:90%;padding:clamp(20px,5vw,40px)}.landing-card h1{background:linear-gradient(90deg,#ec4899,#8b5cf6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:10px;font-size:3rem}.game-board{flex-direction:column;height:100vh;display:flex;position:relative}.opponents-area{flex:1;justify-content:space-around;padding:20px;display:flex}.opponent-card{background:var(--panel-bg);border:1px solid var(--glass-border);border-radius:12px;flex-direction:column;align-items:center;padding:10px 20px;display:flex}.opponent-avatar{font-size:2.5rem}.opponent-info{text-align:center;margin-top:5px}.center-area{flex:2;justify-content:center;align-items:center;gap:50px;display:flex}.draw-pile,.discard-pile{position:relative}.draw-pile .uno-card{cursor:pointer}.draw-pile .uno-card:hover{transform:scale(1.05)}.player-area{flex:1;justify-content:center;align-items:flex-end;width:100%;padding-bottom:20px;display:flex;overflow-x:auto}.hand-container{flex-wrap:nowrap;justify-content:center;padding:20px 40px;display:flex}.hand-container .uno-card{margin-left:-40px;box-shadow:-2px 0 10px #0000004d}.hand-container .uno-card:first-child{margin-left:0}.hand-container .uno-card:hover{margin-right:20px;transform:translateY(-20px);z-index:20!important}.uno-button{color:#fff;cursor:pointer;background:radial-gradient(circle,#ef4444,#991b1b);border:4px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;font-size:1.5rem;font-weight:900;transition:transform .1s,background .3s;display:flex;position:absolute;bottom:150px;right:50px;box-shadow:0 10px 20px #00000080}.uno-button:active{transform:scale(.9)}.color-picker-modal{z-index:100;grid-template-columns:1fr 1fr;gap:10px;padding:20px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.color-btn{cursor:pointer;border:2px solid #fff;border-radius:10px;width:80px;height:80px}.fade-in{animation:.4s ease-out fadeIn}.slide-in{animation:.3s cubic-bezier(.2,.8,.2,1) slideIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.title-gradient{background:linear-gradient(90deg,#ec4899,#8b5cf6,#3b82f6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:10px;font-size:3rem;font-weight:900}.subtitle{color:#cbd5e1;margin-bottom:30px;font-size:1.1rem}.action-buttons{flex-direction:column;gap:15px;margin-top:20px;display:flex}.huge-btn{border-radius:12px;padding:18px 30px;font-size:1.3rem}.back-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;font-size:1rem;transition:color .2s;position:absolute;top:20px;left:20px}.back-btn:hover{color:#fff}.input-group{text-align:left;margin-bottom:20px}.input-group label{color:#94a3b8;margin-bottom:8px;font-size:.9rem;font-weight:700;display:block}.full-width{width:100%}.uppercase-input{text-transform:uppercase;letter-spacing:2px;text-align:center;font-size:1.2rem;font-weight:700}.avatar-grid{border:1px solid var(--glass-border);background:#0003;border-radius:12px;grid-template-columns:repeat(4,1fr);gap:10px;max-height:150px;padding:10px;display:grid;overflow-y:auto}.avatar-grid::-webkit-scrollbar{width:6px}.avatar-grid::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:3px}.waiting-room-card{text-align:center;width:500px;max-width:90%;padding:30px}.waiting-header h2{color:#94a3b8;text-transform:uppercase;letter-spacing:1px;margin:0;font-size:1rem}.room-code-display{color:var(--primary);cursor:pointer;background:#0000004d;border-radius:16px;align-items:center;gap:15px;margin:10px 0;padding:10px 30px;font-size:3.5rem;font-weight:900;transition:transform .2s,background .2s;display:inline-flex}.room-code-display:hover{background:#0006;transform:scale(1.05)}.copy-icon{opacity:.7;font-size:1.5rem}.players-section{text-align:left;margin:30px 0}.players-section h3{border-bottom:1px solid var(--glass-border);margin-top:0;padding-bottom:10px}.players-grid{grid-template-columns:repeat(2,1fr);gap:15px;max-height:300px;display:grid;overflow-y:auto}.player-grid-item{border:1px solid var(--glass-border);background:#ffffff0d;border-radius:12px;align-items:center;gap:15px;padding:12px;display:flex}.player-grid-avatar{background:#0003;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;font-size:2rem;display:flex}.player-grid-name{font-size:1.1rem;font-weight:700}.host-badge{margin-left:5px;font-size:1.2rem}.pulse-btn{animation:2s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 #ec489966}70%{box-shadow:0 0 0 10px #ec489900}to{box-shadow:0 0 #ec489900}}.waiting-status{color:#94a3b8;background:#0000004d;border-radius:12px;justify-content:center;align-items:center;gap:15px;padding:15px;display:flex}.spinner{border:3px solid #ffffff1a;border-top-color:var(--primary);border-radius:50%;width:20px;height:20px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.mobile-game-board{box-sizing:border-box;flex-direction:column;justify-content:space-between;height:100vh;padding:20px 0;display:flex}.top-opponents-area{justify-content:center;gap:20px;padding:20px;display:flex;overflow-x:auto}.opponent-container{flex-direction:column;align-items:center;display:flex}.opponent-card-modern{background:#1e293b;border-radius:16px;flex-direction:column;align-items:center;padding:20px 30px;transition:box-shadow .3s;display:flex}.active-glow{border:1px solid #ec4899cc;box-shadow:0 0 30px #ec489999}.opponent-avatar-modern{font-size:3rem}.opponent-name-modern{color:#fff;margin-top:10px;font-size:1.2rem;font-weight:700}.opponent-cards-modern{color:#ccc;white-space:nowrap;margin-top:5px;font-size:.8rem}.turn-indicator-text{color:#fff;white-space:nowrap;margin-top:20px;font-size:1.5rem;font-weight:900}.glowing-text{text-shadow:0 0 10px #fffc}.my-turn-text{text-align:center;margin:15px 0}.center-play-area{flex:1;justify-content:center;align-items:center;display:flex}.pile-container{justify-content:center;align-items:center;gap:30px;display:flex;position:relative}.draw-pile-modern,.discard-pile-modern{position:relative}.uno-card.modern-card{color:#fff;cursor:pointer;border:4px solid #fff;border-radius:12px;justify-content:center;align-items:center;width:90px;height:135px;font-size:3rem;font-weight:900;transition:transform .2s,margin .2s;display:flex;box-shadow:0 5px 15px #00000080}.deck-card{background-color:#0f172a;background-image:url(/icon.png);background-position:50%;background-repeat:no-repeat;background-size:60%;border-color:#3b82f6}.deck-circle{display:none}.direction-indicator{color:#fff;font-size:2.5rem;position:absolute;right:-50px}.color-indicator{text-align:center;text-transform:capitalize;font-size:1.1rem;font-weight:700;position:absolute;bottom:-50px;left:50%;transform:translate(-50%)}.text-red{color:#ef4444}.text-blue{color:#3b82f6}.text-green{color:#10b981}.text-yellow{color:#eab308}.text-white{color:#fff}.stack-badge{color:#ef4444;z-index:10;white-space:nowrap;background:#fff;border-radius:20px;padding:5px 10px;font-size:1.2rem;font-weight:700;position:absolute;box-shadow:0 4px 10px #0000004d}.draw-badge,.discard-badge{top:-20px;left:50%;transform:translate(-50%)}.bottom-player-area{justify-content:center;width:100%;padding-bottom:20px;display:flex}.hand-container-modern{-webkit-overflow-scrolling:touch;width:100%;max-width:100vw;padding:40px 10vw;display:flex;overflow-x:auto}.hand-container-modern:before,.hand-container-modern:after{content:"";margin:auto}.hand-container-modern::-webkit-scrollbar{height:6px}.hand-container-modern::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.hand-container-modern .modern-card{flex-shrink:0;margin-left:-35px;box-shadow:-2px 0 10px #0006}.hand-container-modern .modern-card:first-child{margin-left:0}.hand-container-modern .modern-card:hover:not(.dimmed-card){margin-right:25px;transform:translateY(-20px);z-index:50!important}.dimmed-card{filter:brightness(.55)grayscale(.25);cursor:not-allowed!important}.draw-pile-pulse{box-shadow:0 0 20px var(--primary);animation:1.5s infinite pulse-draw;border-color:var(--primary)!important}@keyframes pulse-draw{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.global-uno-button-container{z-index:300;position:fixed;bottom:180px;right:20px}.global-uno-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ef4444,#991b1b);border:4px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:75px;height:75px;font-size:1.2rem;font-weight:900;transition:transform .1s,filter .2s,opacity .2s;display:flex;box-shadow:0 10px 20px #00000080}.global-uno-btn:disabled{filter:grayscale();opacity:.5;cursor:not-allowed;box-shadow:none;animation:none}.global-uno-btn:active:not(:disabled){transform:scale(.9)}.pill-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);white-space:nowrap;background:#0009;border:1px solid #ffffff1a;border-radius:20px;padding:8px 16px;font-size:.9rem;font-weight:700;transition:background .2s}.pill-btn:hover{background:#000c}.color-picker-overlay{z-index:200;background:#000c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.color-picker-modal-modern{border:1px solid var(--glass-border);background:#1e293b;border-radius:20px;padding:30px}.color-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.color-btn{cursor:pointer;border:2px solid #ffffff80;border-radius:12px;width:80px;height:80px;transition:transform .2s}.color-btn:hover{border-color:#fff;transform:scale(1.05)}.red-btn{background-color:var(--uno-red)}.blue-btn{background-color:var(--uno-blue)}.green-btn{background-color:var(--uno-green)}.yellow-btn{background-color:var(--uno-yellow)}.wah-overlay{z-index:10000;pointer-events:none;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:15%;left:0;right:0}.wah-text{word-break:break-word;color:#fff;text-transform:uppercase;text-align:center;text-shadow:0 0 50px red,0 0 100px orange;padding:0 20px;font-size:clamp(3rem,15vw,6rem);font-weight:900;line-height:1.1;animation:.5s cubic-bezier(.175,.885,.32,1.275) forwards explode}@keyframes explode{0%{opacity:0;transform:scale(.1)}50%{opacity:1;text-shadow:0 0 100px red,0 0 200px #ff0;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.wah-subtext{color:#ffeb3b;text-shadow:0 0 20px #ffeb3bcc;opacity:0;margin-top:20px;font-size:2rem;animation:.5s ease-out .3s forwards slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.selected-card{z-index:60!important;margin-right:25px!important;transform:translateY(-35px)!important}.selected-card.card-red{box-shadow:0 0 15px 4px var(--uno-red), 0 5px 15px #00000080;border-color:#fca5a5!important}.selected-card.card-blue{box-shadow:0 0 15px 4px var(--uno-blue), 0 5px 15px #00000080;border-color:#93c5fd!important}.selected-card.card-green{box-shadow:0 0 15px 4px var(--uno-green), 0 5px 15px #00000080;border-color:#6ee7b7!important}.selected-card.card-yellow{box-shadow:0 0 15px 4px var(--uno-yellow), 0 5px 15px #00000080;border-color:#fde047!important}.selected-card.card-wild{box-shadow:0 0 15px 4px #8b5cf6,0 5px 15px #00000080;border-color:#c084fc!important}.selected-badge{color:#fff;z-index:10;background:#10b981;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.9rem;font-weight:900;animation:.15s cubic-bezier(.175,.885,.32,1.275) forwards scale-up-badge;display:flex;position:absolute;top:-10px;right:-10px;box-shadow:0 4px 10px #0006}.stack-candidate-badge{background:var(--secondary);color:#fff;white-space:nowrap;z-index:10;border-radius:10px;padding:3px 8px;font-size:.65rem;font-weight:800;animation:1.5s infinite stack-bounce;position:absolute;top:-24px;left:50%;transform:translate(-50%);box-shadow:0 4px 10px #0000004d}.stackable-candidate{animation:2s ease-in-out infinite stack-candidate-pulse;position:relative}.stack-floating-panel{-webkit-backdrop-filter:blur(12px);z-index:250;pointer-events:none;background:#0f172ad9;border:1px solid #ffffff26;border-radius:30px;align-items:center;gap:12px;padding:10px 16px;animation:.25s cubic-bezier(.175,.885,.32,1.275) forwards slide-up-panel;display:flex;position:absolute;bottom:230px;left:50%;transform:translate(-50%);box-shadow:0 10px 25px #0009}.stack-play-btn{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;cursor:pointer;white-space:nowrap;pointer-events:auto;border:none;border-radius:20px;padding:10px 20px;font-size:1rem;font-weight:900;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 15px #ec489980}.stack-play-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ec4899b3}.stack-cancel-btn{color:#f8fafc;cursor:pointer;pointer-events:auto;background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-weight:700;transition:background .2s,transform .2s;display:flex}.stack-cancel-btn:hover{background:#fff3;transform:scale(1.05)}@keyframes scale-up-badge{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes stack-bounce{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-6px)}}@keyframes stack-candidate-pulse{0%,to{border-color:#fff9}50%{border-color:var(--secondary);box-shadow:0 0 10px #8b5cf680}}@keyframes slide-up-panel{0%{opacity:0;transform:translate(-50%,40px)}to{opacity:1;transform:translate(-50%)}}.opponent-hand-visual{justify-content:center;align-items:center;width:140px;height:55px;margin-top:10px;display:flex;position:relative}.opponent-card-mini{transform-origin:bottom;background-color:#0f172a;background-image:url(/icon.png);background-position:50%;background-repeat:no-repeat;background-size:60%;border:1.5px solid #fff;border-radius:4px;width:28px;height:42px;transition:transform .3s cubic-bezier(.25,1,.5,1);position:absolute;box-shadow:0 2px 6px #0006}.opponent-card-badge{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;z-index:20;border:1.5px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.75rem;font-weight:700;display:flex;position:absolute;bottom:-6px;right:15px;box-shadow:0 2px 5px #0000004d}.deck-stack-container{width:90px;height:135px;margin:0;position:relative}.deck-card-empty{cursor:default;justify-content:center;align-items:center;display:flex;box-shadow:none!important;background:0 0!important;border:2px dashed #ffffff4d!important}.empty-deck-text{color:#ffffff4d;font-size:1.5rem}.deck-count-badge{color:#fff;pointer-events:none;-webkit-backdrop-filter:blur(4px);background:#000000b3;border:1px solid #fff3;border-radius:12px;padding:4px 8px;font-size:1rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 6px #0006}.animating-card{color:#fff;pointer-events:none;z-index:99999;border:2px solid #fff;border-radius:8px;justify-content:center;align-items:center;width:60px;height:90px;animation:.55s cubic-bezier(.25,1,.5,1) forwards fly-card;display:flex;position:absolute;top:-45px;left:-30px;box-shadow:0 4px 12px #00000080}.mini-card-back{background-color:#0f172a;background-image:url(/icon.png);background-position:50%;background-repeat:no-repeat;background-size:60%;border-color:#3b82f6}.mini-card-front{font-size:1.5rem;font-weight:900}.card-value-mini{font-size:1.8rem;font-weight:900}@keyframes fly-card{0%{transform:translate3d(var(--from-x), var(--from-y), 0) scale(.6) rotate(0deg);opacity:.9}50%{opacity:1;transform:translate3d(calc((var(--from-x) + var(--to-x)) / 2), calc((var(--from-y) + var(--to-y)) / 2 - 80px), 0) scale(1) rotate(var(--rot-deg))}to{transform:translate3d(var(--to-x), var(--to-y), 0) scale(.8) rotate(0deg);opacity:.3}}
