:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh;background:#0f172a;color:#fafafa}.app{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:1.5rem;gap:1.5rem}h1{margin:0;font-size:2rem;font-weight:700;letter-spacing:-.03em;background:linear-gradient(135deg,#38bdf8,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.board-wrapper{position:relative;width:min(90vw,560px);height:min(90vw,560px)}.board{display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(10,1fr);width:100%;height:100%;border:2px solid rgba(255,255,255,.15);border-radius:.5rem;overflow:hidden;position:relative}.cell{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.65rem;font-weight:600;position:relative;border:1px solid rgba(255,255,255,.06)}.cell-number{opacity:.4;font-size:.6rem;pointer-events:none}.cell.snake-head{background:#ef444426}.cell.snake-tail{background:#ef444412}.cell.ladder-bottom{background:#22c55e26}.cell.ladder-top{background:#22c55e12}.players-row{display:flex;gap:.3rem;pointer-events:none}.player-token{width:.85rem;height:.85rem;border-radius:50%;border:1.5px solid rgba(255,255,255,.8);flex-shrink:0}.player-token.p1{background:#38bdf8;box-shadow:0 0 6px #38bdf8aa}.player-token.p2{background:#f472b6;box-shadow:0 0 6px #f472b6aa}.board-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.controls{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;justify-content:center}.dice-btn{padding:.75rem 2rem;font-size:1rem;font-weight:600;border:none;border-radius:.5rem;cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;transition:transform .1s,box-shadow .2s;box-shadow:0 2px 12px #6366f166}.dice-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #6366f180}.dice-btn:active:not(:disabled){transform:translateY(0)}.dice-btn:disabled{opacity:.5;cursor:not-allowed}.dice-display{font-size:2.5rem;width:3.5rem;height:3.5rem;display:grid;place-items:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:.5rem;-webkit-user-select:none;user-select:none}.dice-display.rolling{animation:dice-shake .12s infinite alternate}@keyframes dice-shake{0%{transform:rotate(-8deg) scale(1.05)}to{transform:rotate(8deg) scale(1.05)}}.status{text-align:center;font-size:.95rem;color:#ffffffb3;min-height:1.5em}.status .highlight{font-weight:700}.status .p1-name{color:#38bdf8}.status .p2-name{color:#f472b6}.win-banner{font-size:1.3rem;font-weight:700;text-align:center;padding:.75rem 1.5rem;border-radius:.5rem;background:linear-gradient(135deg,#6366f133,#a855f733);border:1px solid rgba(139,92,246,.3);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.new-game-btn{padding:.5rem 1.25rem;font-size:.85rem;font-weight:600;border:1px solid rgba(255,255,255,.2);border-radius:.4rem;cursor:pointer;background:#ffffff0d;color:#fafafa;transition:background .15s}.new-game-btn:hover{background:#ffffff1a}.legend{display:flex;gap:1.5rem;font-size:.8rem;color:#ffffff80}.legend-item{display:flex;align-items:center;gap:.4rem}.legend-dot{width:.6rem;height:.6rem;border-radius:50%}.legend-line{width:1rem;height:3px;border-radius:2px}
