:root{color-scheme:dark;font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;background:linear-gradient(135deg,#0f0c29,#302b63,#24243e);color:#fafafa;overflow-x:hidden}.shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.game-title{font-size:2.8rem;font-weight:800;background:linear-gradient(135deg,#f7971e,#ffd200,#f7971e);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 3s ease-in-out infinite;text-shadow:none;letter-spacing:2px;text-transform:uppercase}@keyframes shimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.player-cards{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.player-card{padding:10px 18px;border-radius:12px;text-align:center;min-width:90px;transition:all .3s cubic-bezier(.4,0,.2,1);border:2px solid rgba(255,255,255,.08);background:#ffffff0a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden}.player-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;opacity:0;transition:opacity .3s}.player-card.active{border-color:var(--player-color);box-shadow:0 0 20px color-mix(in srgb,var(--player-color) 40%,transparent),inset 0 0 15px color-mix(in srgb,var(--player-color) 10%,transparent);transform:translateY(-2px)}.player-card.active:before{opacity:1;background:radial-gradient(ellipse at top,color-mix(in srgb,var(--player-color) 12%,transparent),transparent 70%)}.player-name{font-weight:700;font-size:.85rem;text-transform:capitalize;letter-spacing:1px}.player-score{font-size:.7rem;color:#ffffff73;margin-top:2px}.player-pips{display:flex;gap:4px;justify-content:center;margin-top:6px}.pip{width:10px;height:10px;border-radius:50%;border:2px solid var(--player-color);transition:all .3s}.pip.filled{background:var(--player-color);box-shadow:0 0 6px var(--player-color)}.board-wrapper{position:relative;border-radius:16px;padding:6px;background:linear-gradient(145deg,#ffffff14,#ffffff05);box-shadow:0 20px 60px #00000080,0 0 0 1px #ffffff0d,inset 0 1px #ffffff0f}.board-grid{display:grid;gap:0;border-radius:12px;overflow:hidden;border:2px solid rgba(255,255,255,.08)}.board-cell{display:flex;align-items:center;justify-content:center;position:relative;transition:background-color .2s;border:.5px solid rgba(255,255,255,.06)}.board-cell.safe:after{content:"";position:absolute;width:60%;height:60%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.25),transparent)}.home-center{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid rgba(255,255,255,.1);position:relative;overflow:hidden}.home-center:before{content:"";position:absolute;width:60%;height:60%;border-radius:50%;background:conic-gradient(#e74c3c,#e74c3c 90deg,#2ecc71 90deg,#2ecc71 180deg,#f1c40f 180deg,#f1c40f 270deg,#3498db 270deg,#3498db 360deg);opacity:.3;filter:blur(8px);animation:homePulse 4s ease-in-out infinite}@keyframes homePulse{0%,to{transform:scale(.8);opacity:.3}50%{transform:scale(1.1);opacity:.5}}.home-label{color:#ffffffb3;font-size:.75rem;font-weight:700;letter-spacing:3px;text-transform:uppercase;z-index:1}.token{position:absolute;border-radius:50%;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:10;display:flex;align-items:center;justify-content:center}.token-inner{width:55%;height:55%;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff9,#ffffff1a)}.token.selectable{animation:tokenBounce 1s ease-in-out infinite;cursor:pointer}.token.selected{transform:scale(1.3);z-index:20}.token.selected:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:2px solid rgba(255,255,255,.8);animation:selectedRing 1.2s ease-in-out infinite}@keyframes tokenBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes selectedRing{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.15);opacity:.4}}.dice-panel{display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px;border-radius:16px;background:#ffffff0a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);min-width:160px}.dice-turn-label{font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:2px}.dice-container{perspective:600px}.dice{width:80px;height:80px;border-radius:14px;background:linear-gradient(145deg,#fff,#e6e6e6);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 25px #0006,inset 0 2px #fffc,inset 0 -2px #0000001a;transition:all .3s;-webkit-user-select:none;user-select:none}.dice:hover:not(.disabled):not(.rolling){box-shadow:0 12px 35px #00000080,inset 0 2px #fffc,inset 0 -2px #0000001a;transform:translateY(-2px)}.dice.disabled{opacity:.5;cursor:not-allowed}.dice.rolling{animation:diceRoll .1s linear infinite}@keyframes diceRoll{0%{transform:rotateX(0) rotate(0)}25%{transform:rotateX(90deg) rotate(90deg)}50%{transform:rotateX(180deg) rotate(180deg)}75%{transform:rotateX(270deg) rotate(270deg)}to{transform:rotateX(360deg) rotate(360deg)}}.dice-dots{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:12px;width:58px;height:58px}.dice-dot{width:12px;height:12px;border-radius:50%;transition:background-color .15s}.dice-dot.active{background:radial-gradient(circle at 35% 35%,#4a4a4a,#1a1a1a);box-shadow:inset 0 1px 2px #0000004d}.roll-btn{padding:10px 28px;font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;border:none;border-radius:10px;cursor:pointer;color:#fff;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.roll-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.15),transparent);pointer-events:none}.roll-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.roll-btn:active:not(:disabled){transform:translateY(0)}.roll-btn:disabled{opacity:.5;cursor:not-allowed}.status-message{padding:10px 18px;border-radius:10px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);color:#ffffffd9;text-align:center;font-size:.85rem;font-weight:500;max-width:200px;line-height:1.4}.token-status-list{display:flex;flex-direction:column;gap:4px;font-size:.75rem;color:#fff6}.token-status-item{display:flex;align-items:center;gap:6px}.token-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.winner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.winner-card{padding:40px 50px;border-radius:24px;text-align:center;background:linear-gradient(145deg,#ffffff1a,#ffffff08);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.15);box-shadow:0 30px 80px #00000080;animation:popIn .5s cubic-bezier(.34,1.56,.64,1)}@keyframes popIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.winner-title{font-size:2rem;font-weight:800;margin-bottom:8px;text-transform:uppercase;letter-spacing:3px}.winner-subtitle{font-size:1rem;color:#ffffff80;margin-bottom:24px}.new-game-btn{padding:14px 36px;font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:2px;border:none;border-radius:12px;cursor:pointer;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 6px 25px #667eea66;transition:all .3s;position:relative;overflow:hidden}.new-game-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.2),transparent);pointer-events:none}.new-game-btn:hover{transform:translateY(-2px);box-shadow:0 10px 35px #667eea80}.confetti-piece{position:absolute;width:8px;height:8px;border-radius:2px;animation:confettiFall linear forwards}@keyframes confettiFall{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@media(max-width:900px){.game-layout{flex-direction:column!important;align-items:center!important}.game-title{font-size:2rem}}
