*{box-sizing:border-box}body{margin:0}:root{--primary:#b22222;--primary-dark:#8b1a1a;--gold:gold;--success:#4caf50;--bg-board:#f5e6c8;--text-dark:#2c2c2c;--text-light:#fff;--cell:min(7.5vmin, 52px);--corner:min(8.5vmin, 62px)}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#ccc transparent;margin:0;padding:0}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}html,body,#root{height:100dvh;overflow:hidden}body{background:linear-gradient(135deg,#fff8e7 0%,#ffe4b5 100%);flex-direction:column;justify-content:flex-start;align-items:center;min-height:100dvh;padding:4px;font-family:Nunito,sans-serif;display:flex;overflow:hidden auto}#root{flex-direction:column;align-items:center;width:100%;display:flex}.header{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);color:var(--text-light);text-align:center;border:2px solid var(--gold);border-radius:6px;flex-shrink:0;width:100%;margin-bottom:3px;padding:2px 10px;position:relative;box-shadow:0 2px 8px #b222224d}.header h1{text-shadow:1px 1px 2px #0000004d;font-family:Fredoka One,cursive;font-size:clamp(.55rem,1.4vw,.95rem)}.sound-toggle{width:22px;height:22px;color:var(--text-light);cursor:pointer;background:#ffffff26;border:1px solid #ffffff80;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:.75rem;line-height:1;transition:background .2s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.sound-toggle:hover{background:#ffffff4d}.game-container{flex-direction:column;flex:1;align-items:center;gap:3px;width:100%;min-height:0;display:flex;overflow:hidden}.board-wrapper{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;overflow:hidden}.board-outer{background:var(--bg-board);border:3px solid var(--primary);border-radius:4px;flex-shrink:0;padding:0;transition:transform .45s;position:relative;box-shadow:0 4px 20px #0003,inset 0 0 10px #0000000d;overflow:visible!important}.board{grid-template-columns:var(--corner) repeat(9, var(--cell)) var(--corner);grid-template-rows:var(--corner) repeat(9, var(--cell)) var(--corner);transform-origin:50%;will-change:transform;gap:0;width:100%;height:100%;transition:transform .45s cubic-bezier(.4,0,.2,1),transform-origin .45s;display:grid;position:relative;transform:scale(1)}.pawn-layer{grid-template-columns:var(--corner) repeat(9, var(--cell)) var(--corner);grid-template-rows:var(--corner) repeat(9, var(--cell)) var(--corner);pointer-events:none;z-index:100;display:grid;position:absolute;inset:0}.pawn-slot{position:relative}.cell{text-align:center;z-index:1;border:1px solid #00000040;justify-content:center;align-items:center;margin:0;padding:0;font-size:min(.6vmin,.7rem);font-weight:700;display:flex;position:relative;overflow:hidden}.cell svg{flex-shrink:0;width:min(3.5vmin,26px);height:min(3.5vmin,26px)}.cell-icon-wrapper{z-index:1;flex-shrink:0;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0;overflow:hidden}.cell-icon-wrapper img{object-fit:cover;width:100%;height:100%}.corner .cell-icon-wrapper{width:100%;height:100%}.cell-name{color:#fff;z-index:3;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;text-shadow:1px 1px 2px #000c;-webkit-line-clamp:2;line-clamp:2;background:linear-gradient(#0000 0%,#000000d9 50%);-webkit-box-orient:vertical;max-height:50%;padding:12px 3px 3px;font-size:min(.55vmin,.6rem);line-height:1.1;display:-webkit-box;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.corner .cell-name{padding:14px 3px 3px;font-size:min(.5vmin,.55rem)}.cell-price{color:#fff;z-index:4;text-shadow:1px 1px 2px #00000080;background:#dc2626f2;border-radius:3px;padding:2px 4px;font-size:min(.55vmin,.65rem);font-weight:800;position:absolute;top:1px;left:1px}.cell-red{color:#fff;background:linear-gradient(#e53935 0%,#c62828 100%)}.cell-blue{color:#fff;background:linear-gradient(#1e88e5 0%,#1565c0 100%)}.cell-green{color:#fff;background:linear-gradient(#43a047 0%,#2e7d32 100%)}.cell-yellow{color:var(--text-dark);background:linear-gradient(#fdd835 0%,#f9a825 100%)}.cell-purple{color:#fff;background:linear-gradient(#8e24aa 0%,#6a1b9a 100%)}.cell-orange{color:#fff;background:linear-gradient(#ff7043 0%,#e65100 100%)}.cell-teal{color:#fff;background:linear-gradient(#26a69a 0%,#00897b 100%)}.cell-navy{color:#fff;background:linear-gradient(#283593 0%,#1a237e 100%)}.cell-chance{color:#fff;background:linear-gradient(#ff6b35 0%,#e65100 100%)}.cell-community{color:#fff;background:linear-gradient(#00bcd4 0%,#00838f 100%)}.cell-tax{color:#fff;background:linear-gradient(#9c27b0 0%,#6a1b9a 100%)}.cell-start{background:linear-gradient(180deg, var(--gold) 0%, #ffa000 100%);color:var(--text-dark)}.cell-parking{color:#fff;background:linear-gradient(#7b1fa2 0%,#4a148c 100%)}.cell-hospital{color:#fff;background:linear-gradient(#e91e63 0%,#ad1457 100%)}.cell-electric{color:var(--text-dark);background:linear-gradient(#ffc107 0%,#ffa000 100%)}.cell-water{color:#fff;background:linear-gradient(#2196f3 0%,#1565c0 100%)}.corner{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:0;font-weight:800;display:flex;position:relative;overflow:hidden}.corner svg{width:min(5.5vmin,48px);height:min(5.5vmin,48px);margin-bottom:2px}.corner-name{font-size:min(.6vmin,.7rem)}.corner-sub{opacity:.9;font-size:min(.45vmin,.5rem)}.board-center{border:2px solid var(--primary);background:linear-gradient(135deg,#e3f2fd 0%,#bbdefb 50%,#fff8e1 100%);flex-direction:column;grid-area:2/2/11/11;justify-content:center;align-items:center;padding:4px;display:flex;position:relative;overflow:hidden}.center-illustration{z-index:0;opacity:1;width:100%;height:100%;position:absolute;top:0;left:0}.center-content{z-index:1;text-align:center;background:#ffffffd9;border-radius:12px;padding:8px 15px;position:relative;box-shadow:0 2px 10px #0000001a}.center-title{color:var(--primary);text-align:center;text-shadow:2px 2px 4px #0000001a;margin-bottom:3px;font-family:Fredoka One,cursive;font-size:min(2.5vmin,1.4rem)}.center-subtitle{color:#666;text-align:center;font-size:min(1.2vmin,.8rem)}.player-pawn{z-index:100;filter:drop-shadow(0 2px 4px #00000059);width:min(5vmin,32px);height:min(6.5vmin,40px);transition:all .4s cubic-bezier(.4,0,.2,1);position:absolute}.player-pawn.active{animation:.6s ease-in-out infinite pawnBounce}.player-pawn.moving{z-index:150;filter:drop-shadow(0 6px 10px #00000073)}@keyframes pawnBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.card-avatar,.player-avatar{overflow:hidden;border-radius:50%!important}.card-avatar svg,.player-avatar svg{width:100%;height:100%}.control-panel{background:#fff;border-radius:8px;flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:14px;width:100%;max-width:100%;padding:6px 14px;display:flex;box-shadow:0 2px 10px #0000001a}.current-player{align-items:center;gap:8px;display:flex}.player-avatar{border:2px solid var(--gold);border-radius:50%;justify-content:center;align-items:center;width:min(5vmin,42px);height:min(5vmin,42px);display:flex;overflow:hidden;box-shadow:0 1px 5px #00000026}.player-avatar svg{width:100%;height:100%}.player-info{text-align:left}.player-name{color:var(--text-dark);font-size:min(1vmin,.95rem);font-weight:800}.player-balance{color:var(--success);font-family:Fredoka One,cursive;font-size:min(1.2vmin,1rem)}.dice-container{gap:6px;display:flex}.dice{border:2px solid var(--primary);width:min(5.5vmin,48px);height:min(5.5vmin,48px);color:var(--text-dark);background:#fff;border-radius:8px;justify-content:center;align-items:center;font-family:Fredoka One,cursive;font-size:min(2vmin,1.5rem);display:flex;box-shadow:0 2px 6px #0003}.dice.rolling{animation:.4s ease-out diceRoll}@keyframes diceRoll{0%{transform:rotate(0)scale(1)}25%{transform:rotate(90deg)scale(.85)}50%{transform:rotate(180deg)scale(1.05)}75%{transform:rotate(270deg)scale(.85)}to{transform:rotate(360deg)scale(1)}}.roll-btn{background:linear-gradient(135deg, var(--success) 0%, #388e3c 100%);color:#fff;cursor:pointer;border:none;border-radius:50px;padding:8px 18px;font-family:Fredoka One,cursive;font-size:min(1.1vmin,1rem);transition:all .3s;box-shadow:0 3px 10px #4caf5066}.roll-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #4caf5080}.roll-btn:disabled{cursor:not-allowed;background:#bbb}.player-cards{width:100%;max-height:calc(var(--cell) * 1.6);flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:6px;padding:2px 0;display:flex;overflow-y:auto}.player-card{background:#fff;border:2px solid #0000;border-radius:6px;align-items:center;gap:6px;min-width:120px;padding:4px 10px;transition:all .3s;display:flex;box-shadow:0 2px 6px #0000001a}.player-card.active{border-color:var(--gold);transform:scale(1.03);box-shadow:0 4px 12px #ffd70066}.player-card.eliminated{opacity:.5;filter:grayscale()}.card-avatar{border-radius:50%;justify-content:center;align-items:center;width:min(5vmin,38px);height:min(5vmin,38px);display:flex;overflow:hidden}.card-avatar svg{width:100%;height:100%}.card-info{flex:1;min-width:0}.card-name{color:var(--text-dark);white-space:nowrap;text-overflow:ellipsis;font-size:min(.85vmin,.8rem);font-weight:700;overflow:hidden}.card-balance{color:var(--success);font-family:Fredoka One,cursive;font-size:min(.95vmin,.85rem)}.card-props{color:#888;font-size:min(.65vmin,.6rem)}.setup-screen{text-align:center;background:#fff;border-radius:16px;width:95%;max-width:400px;padding:25px;box-shadow:0 8px 30px #0000001f}.setup-screen h2{color:var(--primary);margin-bottom:15px;font-family:Fredoka One,cursive;font-size:clamp(1.2rem,3vw,1.8rem)}.setup-screen>p{color:#666;margin-bottom:12px;font-size:clamp(.85rem,1.5vw,1rem)}.player-count-select{justify-content:center;gap:12px;margin-bottom:18px;display:flex}.count-btn{border:2px solid var(--primary);cursor:pointer;background:#fff;border-radius:50%;width:clamp(45px,8vw,60px);height:clamp(45px,8vw,60px);font-family:Fredoka One,cursive;font-size:clamp(1.1rem,2.5vw,1.5rem);transition:all .3s}.count-btn:hover,.count-btn.selected{background:var(--primary);color:#fff}.player-inputs{flex-direction:column;gap:8px;margin-bottom:18px;display:flex}.player-input{background:var(--bg-board);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;display:flex}.player-input .avatar{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:clamp(30px,5vw,40px);height:clamp(30px,5vw,40px);font-family:Fredoka One,cursive;font-size:clamp(.8rem,1.5vw,1rem);font-weight:800;display:flex}.player-input input{border:2px solid #ddd;border-radius:6px;flex:1;padding:8px 12px;font-family:Nunito,sans-serif;font-size:clamp(.85rem,1.5vw,1rem)}.player-input input:focus{border-color:var(--primary);outline:none}.start-game-btn{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);color:#fff;cursor:pointer;border:none;border-radius:50px;padding:12px 35px;font-family:Fredoka One,cursive;font-size:clamp(1rem,2vw,1.2rem);transition:all .3s;box-shadow:0 4px 12px #b2222266}.start-game-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px #b2222280}.modal-overlay{z-index:1000;opacity:0;visibility:hidden;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;transition:all .3s;display:flex;position:fixed;top:0;left:0}.modal-overlay.active{opacity:1;visibility:visible}.modal{text-align:center;background:#fff;border-radius:16px;width:90%;max-width:380px;padding:20px 25px;transition:all .3s;transform:scale(.8)}.modal-overlay.active .modal{transform:scale(1)}.modal h3{color:var(--primary);margin-bottom:10px;font-family:Fredoka One,cursive;font-size:clamp(1.1rem,2.5vw,1.5rem)}.modal p{color:var(--text-dark);margin-bottom:12px;font-size:clamp(.85rem,1.5vw,1rem)}.property-description{border-left:4px solid var(--gold);color:#555;text-align:left;background:linear-gradient(135deg,#fff8e7 0%,#fffde7 100%);border-radius:6px;margin:8px 0 15px;padding:10px 12px;font-size:min(.85rem,2.2vmin);font-style:normal;line-height:1.4}.modal-btn{cursor:pointer;border:none;border-radius:25px;margin:5px;padding:10px 25px;font-family:Fredoka One,cursive;font-size:clamp(.85rem,1.5vw,1rem);transition:all .3s}.modal-btn-primary{background:linear-gradient(135deg, var(--success) 0%, #388e3c 100%);color:#fff}.modal-btn-primary:disabled{cursor:not-allowed;background:#bbb}.modal-btn-secondary{color:var(--text-dark);background:#e0e0e0}.card-popup{text-align:center;z-index:1001;opacity:0;visibility:hidden;background:#fff;border-radius:14px;width:90%;max-width:360px;padding:18px;transition:all .4s;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)scale(.8);box-shadow:0 15px 50px #0000004d}.card-popup.active{opacity:1;visibility:visible;transform:translate(-50%,-50%)scale(1)}.card-popup.positive{border:3px solid var(--success)}.card-popup.negative{border:3px solid var(--primary)}.card-popup h4{margin-bottom:8px;font-family:Fredoka One,cursive;font-size:clamp(1rem,2.5vw,1.3rem)}.card-popup .description{border-left:4px solid var(--gold);color:#555;text-align:left;background:linear-gradient(135deg,#fff8e7 0%,#fffde7 100%);border-radius:4px;margin:8px 0;padding:8px 10px;font-size:min(.75rem,2vmin);line-height:1.4}.card-popup .amount{margin:12px 0;font-family:Fredoka One,cursive;font-size:clamp(1.3rem,3vw,1.8rem)}.card-popup.positive .amount{color:var(--success)}.card-popup.negative .amount{color:var(--primary)}.quiz-modal-content{max-width:400px;padding:20px 25px}.quiz-title{color:var(--primary);margin-bottom:8px;font-family:Fredoka One,cursive}.quiz-question{color:#333;margin-bottom:15px;font-size:min(.9rem,2.5vmin);font-weight:600}.quiz-options{flex-direction:column;gap:8px;margin-bottom:15px;display:flex}.quiz-hint{color:#888;margin-bottom:10px;font-size:min(.7rem,2vmin);font-style:italic}.quiz-option-btn{color:#333;cursor:pointer;text-align:left;background:#fff;border:2px solid #ddd;border-radius:10px;width:100%;padding:10px 15px;font-family:Nunito,sans-serif;font-size:min(.8rem,2.2vmin);font-weight:600;transition:all .2s}.quiz-option-btn:hover{border-color:var(--primary);background:#fff8e7}.quiz-option-btn.correct{border-color:var(--success);color:var(--success);background:#e8f5e9}.quiz-option-btn.wrong{border-color:var(--primary);color:var(--primary);background:#ffebee}.quiz-option-btn:disabled{cursor:not-allowed;opacity:.7}.confetti{pointer-events:none;z-index:999;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.confetti-piece{width:10px;height:18px;animation:3s ease-out forwards confettiFall;position:absolute;top:-20px}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}.cell.owned .cell-icon-wrapper{display:none}.house-display{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.house-display svg{width:80%;max-width:50px;height:80%;max-height:50px}.house-display svg .house-foundation{opacity:0;animation:.3s ease-out .1s forwards buildFoundation}.house-display svg .house-wall{opacity:0;animation:.4s ease-out .3s forwards buildWall;transform:translateY(10px)}.house-display svg .house-door{opacity:0;animation:.3s ease-out .6s forwards buildDoor;transform:translate(-5px)}.house-display svg .house-window{opacity:0;animation:.3s ease-out .7s forwards buildWindow;transform:scale(0)}.house-display svg .house-roof{opacity:0;animation:.4s ease-out .9s forwards buildRoof;transform:translateY(-10px)}.house-display svg .house-chimney{opacity:0;animation:.2s ease-out 1.1s forwards buildChimney}@keyframes buildFoundation{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes buildWall{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes buildDoor{0%{opacity:0;transform:translate(-5px)}to{opacity:1;transform:translate(0)}}@keyframes buildWindow{0%{opacity:0;transform:scale(0)}to{opacity:.9;transform:scale(1)}}@keyframes buildRoof{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes buildChimney{0%{opacity:0}to{opacity:1}}.cell.built .house-display svg{animation:2s ease-in-out 1.3s infinite houseBounce}@keyframes houseBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.loading-screen{text-align:center;background:#fff;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:90%;max-width:360px;padding:40px 30px;display:flex;box-shadow:0 8px 30px #0000001f}.loading-dice{font-size:clamp(2.5rem,8vw,3.5rem);line-height:1;animation:.9s linear infinite diceSpin}@keyframes diceSpin{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(1.15)}to{transform:rotate(360deg)scale(1)}}.loading-text{color:var(--primary);font-family:Fredoka One,cursive;font-size:clamp(.85rem,2vw,1.05rem)}.loading-bar-track{background:var(--bg-board);border:1px solid #b2222240;border-radius:6px;width:100%;height:10px;overflow:hidden}.loading-bar-fill{background:linear-gradient(90deg, var(--gold) 0%, var(--primary) 100%);border-radius:6px;width:0%;height:100%;transition:width .2s ease-out}.loading-percent{color:#888;font-size:.8rem;font-weight:700}
