: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}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}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}}*{margin:0;padding:0;box-sizing:border-box}body{overflow:hidden;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}#root{width:100%;height:100vh}.ludo-container{width:100%;height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#1e3c72,#2a5298,#7e57c2,#ec407a,#ff6b35);background-size:400% 400%;animation:gradientShift 15s ease infinite;padding:6px 8px;gap:4px;position:relative;overflow:hidden}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.ludo-container:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 50%,rgba(255,255,255,.1) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(255,255,255,.08) 0%,transparent 50%);pointer-events:none}h1{color:#fff;text-shadow:3px 3px 8px rgba(0,0,0,.6),0 0 20px rgba(0,0,0,.3);text-align:center;font-size:2rem;font-weight:900;margin:0;flex-shrink:0;padding:2px 0;letter-spacing:1px;animation:fadeInDown .8s ease-out;position:relative;z-index:10}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.main-content{display:flex;gap:8px;flex:1;min-height:0;overflow:hidden;position:relative;z-index:5}.game-board{background:linear-gradient(135deg,#fff,#345bc9,#6aad54);border-radius:16px;padding:8px;box-shadow:0 20px 60px #00000080,inset 0 1px #fff9;flex:1;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;animation:bounceIn .8s cubic-bezier(.68,-.55,.265,1.55)}@keyframes bounceIn{0%{opacity:0;transform:scale(.8)}50%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.board-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;background:linear-gradient(135deg,#f5f7ff,#ffe8f5,#f5f7ff);padding:6px;border-radius:12px;width:100%;height:100%;max-width:550px;max-height:550px;aspect-ratio:1;box-shadow:inset 0 2px 8px #0000001a}.board-cell{aspect-ratio:1;background:linear-gradient(135deg,#fefdf9,#fffbf0,#f9fffd);border:2px solid #d4c5a0;border-radius:6px;display:flex;align-items:center;justify-content:center;position:relative;transition:all .3s cubic-bezier(.34,1.56,.64,1);min-width:0;font-size:clamp(.5rem,1.5vw,.8rem);cursor:pointer;box-shadow:0 3px 10px #00000014,inset 0 1px #ffffff4d}.board-cell:hover{background:linear-gradient(135deg,#fff9e6,#fffef5,#fffef7);box-shadow:0 6px 20px #7e57c24d,inset 0 1px #ffffff80;transform:translateY(-4px) scale(1.05);border-color:#7e57c2}.cell-number{font-size:.65em;color:#b8a680;position:absolute;top:2px;right:2px;font-weight:700}.winning-cell{background:linear-gradient(135deg,#fff5f7,#ffe6f0,#ffdef5);border:3px solid #ff6b9d;box-shadow:0 6px 20px #ff6b9d4d,inset 0 1px #ffffff80;animation:glowPulse 2s ease-in-out infinite}@keyframes glowPulse{0%,to{box-shadow:0 6px 20px #ff6b9d4d,inset 0 1px #ffffff80}50%{box-shadow:0 10px 30px #ff6b9d99,inset 0 1px #ffffff80}}.piece{width:75%;height:75%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;cursor:pointer;box-shadow:0 6px 16px #0006,inset -2px -2px 4px #0003,inset 2px 2px 4px #ffffff4d;transition:all .3s cubic-bezier(.34,1.56,.64,1);position:relative;z-index:10;font-size:.8em;animation:popIn .5s cubic-bezier(.34,1.56,.64,1)}@keyframes popIn{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.piece:hover{transform:scale(1.3) translateY(-6px);box-shadow:0 12px 28px #00000080,inset -2px -2px 4px #0003,inset 2px 2px 6px #fff6}.piece:active{transform:scale(1.25) translateY(-3px)}.winner-piece{animation:bounce .8s cubic-bezier(.68,-.55,.265,1.55) infinite}@keyframes bounce{0%,to{transform:translateY(0) scale(1) rotate(0)}25%{transform:translateY(-15px) scale(1.1) rotate(5deg)}50%{transform:translateY(0) scale(1.15) rotate(-5deg)}75%{transform:translateY(-10px) scale(1.1) rotate(3deg)}}.game-controls{background:linear-gradient(135deg,#fff,#f5f0ff,#f0f5ff);border-radius:16px;padding:10px;box-shadow:0 20px 60px #00000080,inset 0 1px #fff9;width:270px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex-shrink:0;max-height:100%;animation:slideInRight .8s cubic-bezier(.34,1.56,.64,1)}@keyframes slideInRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}.dice-section{text-align:center;border-bottom:2px solid #e8d5ff;padding-bottom:8px}.dice-display{background:linear-gradient(135deg,#667eea,#764ba2,#5e3fa0);color:#fff;padding:12px 10px;border-radius:12px;margin-bottom:6px;box-shadow:0 12px 30px #667eea80,inset 0 1px #ffffff4d;animation:diceFloat 3s ease-in-out infinite;position:relative;overflow:hidden}@keyframes diceFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.dice-display:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.2),transparent 50%);pointer-events:none}.dice-display h2{margin:0;font-size:2rem;font-weight:800;position:relative;z-index:1;text-shadow:0 2px 8px rgba(0,0,0,.2)}.roll-button,.reset-button{padding:9px 14px;font-size:.8rem;border:none;border-radius:10px;cursor:pointer;font-weight:700;transition:all .3s cubic-bezier(.34,1.56,.64,1);box-shadow:0 8px 20px #0003;width:100%;position:relative;overflow:hidden;text-transform:uppercase;letter-spacing:.5px}.roll-button:before,.reset-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:#fff3;transition:left .5s ease;z-index:0}.roll-button:hover:before,.reset-button:hover:before{left:100%}.roll-button,.reset-button{z-index:1}.roll-button span,.reset-button span{position:relative;z-index:2}.roll-button{background:linear-gradient(135deg,#667eea,#764ba2,#5e3fa0);color:#fff;font-size:.85rem}.roll-button:hover:not(:disabled){transform:translateY(-4px) scale(1.02);box-shadow:0 14px 35px #667eea99}.roll-button:active:not(:disabled){transform:translateY(-1px) scale(.98)}.roll-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.reset-button{background:linear-gradient(135deg,#f093fb,#f5576c,#f23a6e);color:#fff;margin-top:2px}.reset-button:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 14px 35px #f5576c99}.reset-button:active{transform:translateY(-1px) scale(.98)}.status-section{text-align:center;background:linear-gradient(135deg,#f8f9fa80,#f0f8ff80);padding:8px;border-radius:10px;margin-top:4px}.current-player{background:linear-gradient(135deg,#f8f9fa,#e8eef7,#f0f4ff);padding:8px;border-radius:10px;border-left:4px solid #667eea;box-shadow:0 4px 12px #667eea26;animation:slideInLeft .6s cubic-bezier(.34,1.56,.64,1)}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.current-player h2{margin:0 0 5px;color:#555;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.player-info{padding:9px;border-radius:8px;color:#fff;font-weight:800;font-size:.95rem;box-shadow:0 8px 20px #00000040,inset 0 1px #ffffff4d;text-transform:uppercase;letter-spacing:.6px;animation:playerChange .5s ease;position:relative;overflow:hidden}@keyframes playerChange{0%{opacity:0;transform:scale(.9) rotateX(90deg)}to{opacity:1;transform:scale(1) rotateX(0)}}.player-info:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.3),transparent 70%);animation:shine 3s infinite}@keyframes shine{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(50%,50%)}}.game-over{background:linear-gradient(135deg,#ffd89b,#ff9a5d,#ff6b9d);padding:16px;border-radius:12px;color:#fff;animation:slideIn .5s ease;box-shadow:0 10px 30px #0000004d;position:relative;overflow:hidden}.game-over:before{content:"🎉";position:absolute;font-size:3rem;opacity:.1;right:-20px;top:-20px;animation:celebration 2s ease-in-out infinite}@keyframes celebration{0%,to{transform:rotate(-15deg) scale(1)}50%{transform:rotate(15deg) scale(1.1)}}.game-over h2{margin:0 0 12px;font-size:1.3rem;font-weight:800;position:relative;z-index:1}.winners-list{display:flex;flex-direction:column;gap:8px}.winner-item{background:linear-gradient(135deg,#ffffff4d,#fffae640,#fff0f540);padding:10px;border-radius:8px;font-weight:700;font-size:.95rem;border:2px solid rgba(255,255,255,.5);animation:expandIn .6s cubic-bezier(.34,1.56,.64,1);box-shadow:inset 0 1px #ffffff4d}@keyframes expandIn{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.player-positions{background:linear-gradient(135deg,#f8f9fa,#f0f8ff,#fff0f8);padding:8px;border-radius:10px;border:2px solid #e9ecef;box-shadow:0 4px 12px #667eea1a;animation:slideInLeft .7s cubic-bezier(.34,1.56,.64,1)}.player-positions h3{margin:0 0 7px;color:#555;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.position-row{display:flex;justify-content:space-between;align-items:center;padding:5px 3px;border-bottom:1px solid #e0e0e0;font-size:.8rem;transition:all .3s ease;border-radius:4px}.position-row:hover{background:linear-gradient(135deg,#667eea1a,#764ba214);transform:translate(4px)}.position-row:last-child{border-bottom:none}.player-name{font-weight:800;font-size:.8rem;text-transform:capitalize}.position-value{background:linear-gradient(135deg,#fff,#f8fbff,#fff8f8);padding:2px 6px;border-radius:5px;font-weight:800;color:#333;box-shadow:0 3px 10px #0000001f;min-width:32px;text-align:center;font-size:.8rem;border:1px solid #e0e0e0;transition:all .3s ease}.position-row:hover .position-value{transform:scale(1.1);box-shadow:0 5px 15px #00000026}.game-controls::-webkit-scrollbar{width:8px}.game-controls::-webkit-scrollbar-track{background:linear-gradient(180deg,#f1f1f1,#e8e8e8);border-radius:10px}.game-controls::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#667eea,#764ba2);border-radius:10px;box-shadow:0 0 10px #667eea4d}.game-controls::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#5568d3,#6b408f);box-shadow:0 0 15px #667eea80}@media(max-width:1200px){.main-content{gap:15px}.game-controls{width:280px;padding:16px}.board-grid{max-width:500px}h1{font-size:2.4rem}}@media(max-width:900px){.ludo-container{flex-direction:column;padding:12px;gap:8px}h1{font-size:2rem}.main-content{flex-direction:column;gap:12px}.game-board{flex:0 1 auto;min-height:50vh;padding:12px}.board-grid{max-width:100%}.game-controls{width:100%;max-height:40vh}}@media(max-width:600px){.ludo-container{padding:8px;gap:6px}h1{font-size:1.6rem;font-weight:800}.game-board{padding:10px;min-height:45vh}.board-grid{grid-template-columns:repeat(6,1fr);gap:2px;padding:8px}.game-controls{padding:12px;max-height:40vh}.dice-display{padding:12px}.dice-display h2{font-size:2rem}.roll-button{font-size:.95rem;padding:10px 16px}.player-positions{font-size:.85rem}.position-value{min-width:36px;padding:4px 8px;font-size:.85rem}}
