*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--board-size: min(95vw, 800px);--tile-border: 1px solid #333;--bg-color: #1a1a2e;--board-bg: #c8e6c9;--board-center-bg: #a5d6a7;--text-color: #fff;--tile-bg: #e8f5e9;--tile-text: #222;--font-size-tile: .55rem;--font-size-price: .5rem;--color-brown: #8B4513;--color-lightBlue: #87CEEB;--color-pink: #FF69B4;--color-orange: #FF8C00;--color-red: #FF0000;--color-yellow: #FFD700;--color-green: #008000;--color-darkBlue: #00008B;--player-0: #e74c3c;--player-1: #3498db;--player-2: #2ecc71;--player-3: #f39c12;--player-4: #9b59b6;--player-5: #1abc9c}html,body,#root{width:100%;height:100%;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-color);color:var(--text-color)}body{display:flex;justify-content:center;align-items:flex-start;min-height:100vh;padding:1rem}#root{display:flex;justify-content:center;align-items:flex-start;width:100%}button{cursor:pointer;font-family:inherit;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;font-weight:600;transition:opacity .15s,transform .1s}button:hover{opacity:.9}button:active{transform:scale(.97)}.btn{padding:.45rem .9rem;border-radius:6px;font-weight:600;font-size:.8rem;border:none;cursor:pointer;transition:opacity .15s,transform .1s}.btn:hover{opacity:.85}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:#2563eb;color:#fff}.btn-secondary{background:#64748b;color:#fff}.btn-danger{background:#dc2626;color:#fff}.money-display{font-weight:700;font-variant-numeric:tabular-nums}.money-negative{color:#ef4444}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;animation:overlay-fade-in .25s ease-out}.modal-content{background:#1e293b;border-radius:12px;padding:1.5rem;max-width:400px;width:90%;color:#fff;box-shadow:0 10px 40px #00000080;animation:modal-slide-in .35s cubic-bezier(.34,1.56,.64,1)}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-in{0%{opacity:0;transform:scale(.7) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}.setup-screen{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:3rem 1rem;max-width:420px;width:100%}.setup-title{font-size:2.5rem;font-weight:900;letter-spacing:.15em;color:#fff}.setup-subtitle{color:#94a3b8;font-size:1rem;margin-top:-.5rem}.setup-form{background:#1e293b;border-radius:12px;padding:1.5rem;width:100%;display:flex;flex-direction:column;gap:1rem}.setup-label{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;color:#cbd5e1}.setup-select{padding:.5rem;border-radius:6px;border:1px solid #475569;background:#0f172a;color:#fff;font-size:.9rem}.player-inputs{display:flex;flex-direction:column;gap:.5rem}.player-input-row{display:flex;align-items:center;gap:.5rem}.color-dot{width:20px;height:20px;border-radius:50%;flex-shrink:0;border:2px solid #fff}.player-name-input{flex:1;padding:.45rem .6rem;border-radius:6px;border:1px solid #475569;background:#0f172a;color:#fff;font-size:.85rem;font-family:inherit}.player-name-input:focus{outline:2px solid #2563eb;border-color:transparent}.tile{width:100%;height:100%;background:var(--tile-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;position:relative;overflow:hidden}.tile-name{font-size:var(--font-size-tile);color:var(--tile-text);text-align:center;line-height:1.1;font-weight:600;word-break:break-word}.tile-price{font-size:var(--font-size-price);color:#555;font-weight:500}.tile-icon{font-size:.8rem}.tile-corner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.tile-corner .tile-icon{font-size:1.2rem}.tile-corner .tile-name{font-size:.5rem;font-weight:700}.color-bar{position:absolute}.color-bar-bottom{top:0;left:0;right:0;height:20%}.color-bar-top{bottom:0;left:0;right:0;height:20%}.color-bar-left{top:0;right:0;bottom:0;width:20%}.color-bar-right{top:0;left:0;bottom:0;width:20%}.owner-indicator{position:absolute;bottom:1px;right:1px;width:6px;height:6px;border-radius:50%;border:1px solid #fff;z-index:1}.tile-go{background:#e8f5e9}.tile-jail{background:#fff3e0}.tile-freeParking{background:#e3f2fd}.tile-goToJail{background:#fce4ec}.tile-chance{background:#fff8e1}.tile-lottery{background:#f3e5f5}.tile-tax{background:#efebe9}.player-token{width:14px;height:14px;border-radius:50%;border:1.5px solid #fff;display:flex;align-items:center;justify-content:center;font-size:.4rem;font-weight:700;color:#fff;text-transform:uppercase;box-shadow:0 1px 2px #0000004d}.player-token-stepping{animation:token-hop .15s ease-out;z-index:10;box-shadow:0 3px 6px #0006}@keyframes token-hop{0%{transform:scale(1) translateY(0)}40%{transform:scale(1.3) translateY(-6px)}to{transform:scale(1) translateY(0)}}.dice-container{display:flex;flex-direction:column;align-items:center;gap:.4rem}.dice-pair{display:flex;gap:.5rem}.die-face{width:40px;height:40px}.dice-total{font-size:.75rem;font-weight:700;color:#1a1a2e}.dice-rolling{animation:shake .4s ease-in-out}@keyframes shake{0%,to{transform:rotate(0)}20%{transform:rotate(-15deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}80%{transform:rotate(5deg)}}.player-panel{width:100%;display:flex;flex-direction:column;gap:.5rem;font-size:.75rem}.current-player{background:#00000026;border-radius:8px;padding:.5rem;display:flex;flex-direction:column;gap:.4rem}.player-header{display:flex;align-items:center;gap:.4rem}.player-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.player-name-label{font-weight:700;color:#1a1a2e;flex:1}.action-row{display:flex;flex-direction:column;gap:.3rem}.action-text{font-size:.7rem;color:#334155;font-weight:600}.action-buttons{display:flex;gap:.3rem;flex-wrap:wrap}.action-buttons .btn{font-size:.65rem;padding:.3rem .5rem}.scoreboard{display:flex;flex-direction:column;gap:2px}.score-row{display:flex;align-items:center;gap:.3rem;padding:.2rem .3rem;border-radius:4px;background:#0000000d}.score-row.active{background:#2563eb26}.score-row.bankrupt{opacity:.4;text-decoration:line-through}.score-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.score-name{flex:1;font-weight:600;color:#1a1a2e;font-size:.65rem}.score-props{font-size:.6rem;color:#64748b}.game-log{max-height:80px;overflow-y:auto;display:flex;flex-direction:column;gap:1px}.log-entry{font-size:.55rem;color:#475569;padding:1px 0;line-height:1.2}.card-decks{display:flex;gap:1rem;justify-content:center;margin:.25rem 0}.card-deck{display:flex;flex-direction:column;align-items:center;gap:.2rem;position:relative}.deck-stack{position:relative;width:40px;height:28px}.deck-card{position:absolute;width:40px;height:28px;border-radius:3px;border:1px solid rgba(0,0,0,.3)}.chance-deck .deck-card{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.lottery-deck .deck-card{background:linear-gradient(135deg,#a78bfa,#8b5cf6)}.deck-card-3{top:4px;left:2px}.deck-card-2{top:2px;left:1px}.deck-card-1{top:0;left:0;z-index:1}.deck-label{font-size:.5rem;font-weight:700;color:#1a1a2e;text-transform:uppercase;letter-spacing:.05em}.deck-icon{position:absolute;top:4px;left:50%;transform:translate(-50%);font-size:.7rem;z-index:2;pointer-events:none}.deck-drawing{z-index:5}.card-fly-out{animation:card-draw .7s ease-out forwards}@keyframes card-draw{0%{transform:translateY(0) scale(1) rotateY(0);opacity:1}30%{transform:translateY(-20px) scale(1.3) rotateY(0);opacity:1}60%{transform:translateY(-35px) scale(1.8) rotateY(90deg);opacity:1}to{transform:translateY(-45px) scale(2) rotateY(180deg);opacity:0}}.board-wrapper{width:var(--board-size);display:flex;flex-direction:column;align-items:center}.board{display:grid;grid-template-columns:1.4fr repeat(9,1fr) 1.4fr;grid-template-rows:1.4fr repeat(9,1fr) 1.4fr;width:var(--board-size);height:var(--board-size);background:var(--board-bg);border:3px solid #222;border-radius:4px;position:relative}.board-cell{position:relative;border:var(--tile-border);overflow:hidden;display:flex;flex-direction:column}.tokens-container{position:absolute;bottom:2px;left:2px;display:flex;flex-wrap:wrap;gap:1px;z-index:2;pointer-events:none}.board-center{grid-row:2 / 11;grid-column:2 / 11;background:var(--board-center-bg);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:.5rem;gap:.5rem;overflow-y:auto}.board-title{font-size:1.4rem;font-weight:900;color:#1a1a2e;letter-spacing:.15em;text-transform:uppercase;margin-bottom:.25rem}.card-modal{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}.card-type-badge{padding:.3rem .8rem;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.card-type-badge.chance{background:#fbbf24;color:#78350f}.card-type-badge.lottery{background:#a78bfa;color:#3b0764}.card-title{font-size:1.3rem;font-weight:700}.card-description{font-size:.95rem;color:#94a3b8;line-height:1.4}.game-over{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:3rem 1rem;max-width:420px;width:100%}.game-over-title{font-size:2.5rem;font-weight:900;letter-spacing:.1em}.winner-card{background:#1e293b;border-radius:12px;padding:2rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%}.winner-dot{width:40px;height:40px;border-radius:50%;border:3px solid #fff}.winner-name{font-size:1.5rem;font-weight:700}.winner-money,.winner-props{color:#94a3b8;font-size:1rem}
