*{box-sizing:border-box}.app{background:#c8e6c0;color:#1a1a1a;flex-direction:column;font-family:Outfit,Segoe UI,system-ui,-apple-system,sans-serif;height:100vh;overflow:hidden;touch-action:manipulation;width:100%}.app,.lobby{display:flex}.lobby{align-items:center;background:repeating-linear-gradient(0deg,#0000,#0000 40px,rgba(0,0,0,.015) 0,rgba(0,0,0,.015) 80px),repeating-linear-gradient(90deg,#0000,#0000 40px,rgba(0,0,0,.015) 0,rgba(0,0,0,.015) 80px),linear-gradient(135deg,#c8e6c0,#b5d6a7 50%,#c8e6c0);height:100%;justify-content:center;padding:16px}.lobby-card{background:#fff;border:2px solid #c5392a;border-radius:12px;box-shadow:0 2px 8px #0000001f,0 12px 40px #00000014;max-width:400px;padding:36px 32px;text-align:center;width:100%}.lobby-card h1{color:#c5392a;font-family:Fredoka,Arial Black,sans-serif;font-size:clamp(2rem,7vw,2.8rem);font-weight:700;letter-spacing:4px;margin:0 0 4px;text-shadow:1px 1px 0 #0000001a}.subtitle{color:#666;font-size:.85rem;font-weight:500;letter-spacing:.5px;margin-bottom:28px}.lobby-card form,.menu-buttons{display:flex;flex-direction:column;gap:12px}.lobby-card label{color:#555;font-size:.85rem;font-weight:600;text-align:left}.lobby-card input{background:#fafafa;border:2px solid #ddd;border-radius:8px;color:#1a1a1a;font-family:Outfit,sans-serif;font-size:1rem;outline:none;padding:12px 16px;transition:border-color .2s}.lobby-card input:focus{background:#fff;border-color:#c5392a}.error-banner{background:#c5392a;border-radius:8px;color:#fff;font-size:.85rem;margin-bottom:16px;padding:10px}.btn-action,.btn-control,.btn-primary,.btn-secondary,.btn-small,.btn-start,.btn-text{-webkit-tap-highlight-color:transparent;border:none;border-radius:8px;cursor:pointer;font-family:Outfit,sans-serif;font-size:.95rem;font-weight:600;padding:12px 20px;touch-action:manipulation;transition:all .2s;-webkit-user-select:none;user-select:none}.btn-primary{background:#c5392a;color:#fff}.btn-primary:hover:not(:disabled){background:#a82e22;transform:translateY(-1px)}.btn-primary:disabled{cursor:not-allowed;opacity:.5}.btn-secondary{background:#f0ebe3;border:2px solid #d5cfc4;color:#333}.btn-secondary:hover{background:#e5dfd5}.btn-control{background:#f0ebe3;border:1px solid #d5cfc4;color:#333;font-size:.85rem;min-height:32px;padding:6px 14px}.btn-roll{background:#c5392a;border:none;color:#fff;font-size:.95rem;padding:8px 22px}.btn-roll:hover{background:#a82e22}.btn-buy{background:#1fb25a}.btn-auction,.btn-buy{border:none;color:#fff}.btn-auction{background:#e8920e}.btn-end{background:#0072bb}.btn-end,.btn-start{border:none;color:#fff}.btn-start{background:#c5392a;font-size:.95rem;padding:8px 22px}.btn-start:hover{background:#a82e22}.btn-small{background:#fff3;border:1px solid #ffffff4d;color:#fff;font-size:.75rem;padding:6px 12px}.btn-small:hover{background:#ffffff4d}.btn-text{background:#0000;color:#c5392a;text-decoration:underline}.btn-action{background:#f0ebe3;border:1px solid #d5cfc4;color:#333;font-size:.8rem;padding:8px 14px}.btn-sell{background:#c5392a;border:none;color:#fff}.btn-mortgage{background:#888;border:none;color:#fff}.btn-unmortgage{background:#1fb25a;border:none;color:#fff}.btn-accept,.btn-decline{border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:Outfit,sans-serif;font-weight:600;padding:10px 20px}.btn-accept{background:#1fb25a}.btn-decline{background:#c5392a}.btn-close{background:#f0ebe3;border:1px solid #d5cfc4;border-radius:8px;color:#333;cursor:pointer;margin-top:12px;padding:10px 20px}.btn-close,.loading-screen{font-family:Outfit,sans-serif}.loading-screen{align-items:center;background:#c8e6c0;color:#666;display:flex;flex-direction:column;gap:16px;height:100%;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #ddd;border-radius:50%;border-top-color:#c5392a;height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.game-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.top-bar{background:#2b5b3c;flex-shrink:0;flex-wrap:wrap;justify-content:space-between;min-height:36px;padding:4px 10px}.room-info,.top-bar{align-items:center;display:flex;gap:8px}.room-code{color:#fff;font-family:Fredoka,monospace;font-size:.9rem;font-weight:600}.game-status{align-items:center;display:flex}.turn-indicator{color:#ffe082;font-size:.9rem;font-weight:600}.board-wrapper,.game-layout{display:flex;flex:1 1;min-height:0;overflow:hidden}.board-wrapper{align-items:center;background:repeating-linear-gradient(0deg,#0000,#0000 20px,rgba(0,0,0,.008) 0,rgba(0,0,0,.008) 40px),repeating-linear-gradient(90deg,#0000,#0000 20px,rgba(0,0,0,.008) 0,rgba(0,0,0,.008) 40px),linear-gradient(135deg,#c8e6c0,#bddbb0 50%,#c8e6c0);justify-content:center;min-width:0;padding:2px}.board{grid-gap:0;aspect-ratio:1;background:#c8e6c0;border:4px solid #1a1a1a;border-radius:4px;box-shadow:0 2px 4px #0000001a,inset 0 0 0 1px #0000000d;display:grid;flex-shrink:1;gap:0;grid-template-columns:2fr repeat(9,1fr) 2fr;grid-template-rows:2fr repeat(9,1fr) 2fr;height:min(98vmin,95vh,95vw,880px);max-height:100%;max-width:100%;width:min(98vmin,95vh,95vw,880px)}.tile{align-items:stretch;background:#d5eccc;border:1px solid #000000bf;cursor:pointer;display:flex;justify-content:stretch;min-height:0;overflow:hidden;position:relative;transition:background .15s}.tile:hover{background:#c5dfba}.tile .color-bar{overflow:hidden;position:absolute;z-index:1}.tile[data-side=bottom] .color-bar{border-bottom:1.5px solid #1a1a1a;height:28%;left:0;right:0;top:0}.tile[data-side=left] .color-bar{border-left:1.5px solid #1a1a1a;bottom:0;right:0;top:0;width:28%}.tile[data-side=top] .color-bar{border-top:1.5px solid #1a1a1a;bottom:0;height:28%;left:0;right:0}.tile[data-side=right] .color-bar{border-right:1.5px solid #1a1a1a;bottom:0;left:0;top:0;width:28%}.tile[data-side=bottom] .color-bar-img,.tile[data-side=top] .color-bar-img{transform:none}.tile[data-side=left] .color-bar-img{transform:rotate(90deg);transform-origin:center center}.tile[data-side=right] .color-bar-img{transform:rotate(-90deg);transform-origin:center center}.tile-content{flex-direction:column;position:relative;z-index:2}.tile-content,.tile-name-wrap{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.tile-name-wrap{overflow:hidden;text-align:center}.tile-name{align-items:center;color:#1a1a1a;display:flex;flex-direction:column;font-family:Outfit,sans-serif;font-size:clamp(5px,1.1vmin,10px);font-weight:700;gap:0;-webkit-hyphens:none;hyphens:none;justify-content:center;letter-spacing:.2px;line-height:1;max-height:100%;max-width:100%;overflow-wrap:break-word;text-align:center;text-transform:uppercase;word-break:break-word}.tile-name.chars-1-4{font-size:clamp(9px,1.8vmin,15px);letter-spacing:.5px}.tile-name.chars-5-7{font-size:clamp(7px,1.4vmin,12px);letter-spacing:.3px}.tile-name.chars-8-10{font-size:clamp(6px,1.1vmin,10px);letter-spacing:.2px}.tile-name.chars-11-14{font-size:clamp(5px,.9vmin,8px);letter-spacing:.1px;line-height:1}.tile-name.chars-15-plus{font-size:clamp(4px,.75vmin,7px);letter-spacing:.1px;line-height:1}.tile-name-word{display:block;white-space:nowrap}.tile[data-side=left] .tile-name,.tile[data-side=right] .tile-name{font-size:clamp(6px,1.3vmin,11px)}.tile[data-side=left] .tile-name.chars-1-4,.tile[data-side=right] .tile-name.chars-1-4{font-size:clamp(8px,1.6vmin,13px)}.tile[data-side=left] .tile-name.chars-5-7,.tile[data-side=right] .tile-name.chars-5-7{font-size:clamp(7px,1.3vmin,11px)}.tile[data-side=left] .tile-name.chars-8-10,.tile[data-side=right] .tile-name.chars-8-10{font-size:clamp(6px,1vmin,9px)}.tile[data-side=left] .tile-name.chars-11-14,.tile[data-side=right] .tile-name.chars-11-14{font-size:clamp(5px,.85vmin,7px)}.tile[data-side=left] .tile-name.chars-15-plus,.tile[data-side=right] .tile-name.chars-15-plus{font-size:clamp(4px,.7vmin,6px)}.tile[data-side=bottom] .tile-content{padding-bottom:16%;padding-top:28%}.tile[data-side=top] .tile-content{padding-bottom:28%;padding-top:16%}.tile[data-side=left] .tile-content{padding-left:16%;padding-right:28%}.tile[data-side=left] .tile-name-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:14%;overflow:hidden;position:absolute;right:24%;top:0}.tile[data-side=left] .tile-name{line-height:1.05;transform:rotate(90deg);transform-origin:center center;white-space:nowrap}.tile[data-side=right] .tile-content{padding-left:16%;padding-right:28%}.tile[data-side=right] .tile-name-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:14%;overflow:hidden;position:absolute;right:50%;top:0}.tile[data-side=right] .tile-name{line-height:1.05;transform:rotate(-90deg);transform-origin:center center;white-space:nowrap}.tile-price-edge{background:#d5eccceb;border-radius:2px;color:#1a1a1a;font-family:Outfit,sans-serif;font-size:clamp(6px,1.1vmin,10px);font-weight:800;letter-spacing:.2px;padding:1px 4px;pointer-events:none;position:absolute;white-space:nowrap;z-index:3}.tile[data-side=bottom] .tile-price-edge{bottom:2px;left:50%;transform:translateX(-50%)}.tile[data-side=top] .tile-price-edge{left:50%;top:2px;transform:translateX(-50%)}.tile[data-side=left] .tile-price-edge{left:2px;top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:center}.tile[data-side=right] .tile-price-edge{right:2px;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:center}.tile-icon-wrap{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:2px 0;width:100%}.tile-svg{display:block;height:auto;max-height:50%;max-width:50px;width:60%}.tile-chance .tile-svg,.tile-chest .tile-svg{max-width:56px;width:70%}.tile-chance .tile-content,.tile-chest .tile-content,.tile-tax .tile-content,.tile-utility .tile-content{padding:0!important;position:relative}.tile-chance .tile-name-wrap,.tile-chest .tile-name-wrap,.tile-tax .tile-name-wrap,.tile-utility .tile-name-wrap{flex:0 0 auto;overflow:hidden;padding:2px 4px;position:absolute;z-index:3}.tile-chance[data-side=bottom] .tile-name-wrap,.tile-chest[data-side=bottom] .tile-name-wrap,.tile-tax[data-side=bottom] .tile-name-wrap,.tile-utility[data-side=bottom] .tile-name-wrap{height:auto;left:0;right:0;top:2px;width:100%}.tile-chance[data-side=top] .tile-name-wrap,.tile-chest[data-side=top] .tile-name-wrap,.tile-tax[data-side=top] .tile-name-wrap,.tile-utility[data-side=top] .tile-name-wrap{bottom:2px;height:auto;left:0;right:0;top:auto;width:100%}.tile-chance[data-side=left] .tile-name-wrap,.tile-chest[data-side=left] .tile-name-wrap,.tile-tax[data-side=left] .tile-name-wrap,.tile-utility[data-side=left] .tile-name-wrap{align-items:center;background:#d5eccc99;bottom:0;display:flex;height:100%;justify-content:center;left:auto;padding:2px;right:0;top:0;width:22%}.tile-chance[data-side=left] .tile-name,.tile-chest[data-side=left] .tile-name,.tile-tax[data-side=left] .tile-name,.tile-utility[data-side=left] .tile-name{font-size:clamp(7px,1.3vmin,11px);line-height:1.05;transform:rotate(90deg);transform-origin:center center;white-space:nowrap;width:-webkit-max-content;width:max-content}.tile-chance[data-side=right] .tile-name-wrap,.tile-chest[data-side=right] .tile-name-wrap,.tile-tax[data-side=right] .tile-name-wrap,.tile-utility[data-side=right] .tile-name-wrap{align-items:center;background:#d5eccc99;bottom:0;display:flex;height:100%;justify-content:center;left:0;padding:2px;right:auto;top:0;width:22%}.tile-chance[data-side=right] .tile-name,.tile-chest[data-side=right] .tile-name,.tile-tax[data-side=right] .tile-name,.tile-utility[data-side=right] .tile-name{font-size:clamp(7px,1.3vmin,11px);line-height:1.05;transform:rotate(-90deg);transform-origin:center center;white-space:nowrap;width:-webkit-max-content;width:max-content}.tile-chance .tile-icon-wrap,.tile-chest .tile-icon-wrap,.tile-tax .tile-icon-wrap,.tile-utility .tile-icon-wrap{align-items:center;display:flex;height:100%;inset:0;justify-content:center;padding:0;position:absolute;width:100%}.tile-chance[data-side=bottom] .tile-icon-wrap,.tile-chest[data-side=bottom] .tile-icon-wrap,.tile-tax[data-side=bottom] .tile-icon-wrap,.tile-utility[data-side=bottom] .tile-icon-wrap{padding-top:18%}.tile-chance[data-side=top] .tile-icon-wrap,.tile-chest[data-side=top] .tile-icon-wrap,.tile-tax[data-side=top] .tile-icon-wrap,.tile-utility[data-side=top] .tile-icon-wrap{padding-bottom:18%}.tile-chance[data-side=left] .tile-icon-wrap,.tile-chest[data-side=left] .tile-icon-wrap,.tile-tax[data-side=left] .tile-icon-wrap,.tile-utility[data-side=left] .tile-icon-wrap{padding:0 22% 0 0}.tile-chance[data-side=right] .tile-icon-wrap,.tile-chest[data-side=right] .tile-icon-wrap,.tile-tax[data-side=right] .tile-icon-wrap,.tile-utility[data-side=right] .tile-icon-wrap{padding:0 0 0 22%}.tile-chance .tile-svg,.tile-chest .tile-svg,.tile-railroad .tile-svg,.tile-tax .tile-svg,.tile-utility .tile-svg{height:90%;max-height:none;max-width:none;object-fit:contain;width:90%}.tile-chance[data-side=left] .tile-svg,.tile-chest[data-side=left] .tile-svg,.tile-tax[data-side=left] .tile-svg,.tile-utility[data-side=left] .tile-svg{transform:rotate(90deg)}.tile-chance[data-side=right] .tile-svg,.tile-chest[data-side=right] .tile-svg,.tile-tax[data-side=right] .tile-svg,.tile-utility[data-side=right] .tile-svg{transform:rotate(-90deg)}.tile-chance .tile-name,.tile-chest .tile-name,.tile-tax .tile-name,.tile-utility .tile-name{font-weight:800;letter-spacing:.3px}.owner-dot{border:1.5px solid #0000004d;border-radius:50%;box-shadow:0 1px 2px #0003;height:9px;position:absolute;right:3px;top:3px;width:9px;z-index:4}.hotel-indicator,.houses-indicator{font-size:.7em;line-height:1;position:absolute;z-index:4}.tile[data-side=bottom] .hotel-indicator,.tile[data-side=bottom] .houses-indicator{left:50%;top:23%;transform:translateX(-50%)}.tile[data-side=top] .hotel-indicator,.tile[data-side=top] .houses-indicator{bottom:23%;left:50%;transform:translateX(-50%)}.tile[data-side=left] .hotel-indicator,.tile[data-side=left] .houses-indicator{right:23%;top:50%;transform:translateY(-50%)}.tile[data-side=right] .hotel-indicator,.tile[data-side=right] .houses-indicator{left:23%;top:50%;transform:translateY(-50%)}.tile-tokens{align-items:center;display:flex;flex-wrap:wrap;gap:2px;justify-content:center;pointer-events:none;position:absolute;z-index:5}.tile[data-side=bottom] .tile-tokens{bottom:14%;left:0;right:0}.tile[data-side=top] .tile-tokens{left:0;right:0;top:14%}.tile[data-side=left] .tile-tokens{bottom:0;flex-direction:column;left:14%;top:0;z-index:10}.tile[data-side=right] .tile-tokens{bottom:0;flex-direction:column;right:14%;top:0;z-index:10}.token{align-items:center;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 3px #0000004d,inset 0 1px 1px #ffffff4d;display:flex;flex-shrink:0;font-size:11px;height:18px;justify-content:center;transition:all .15s ease;width:18px}@keyframes token-hop{0%{transform:translateY(0) scale(1)}20%{transform:translateY(-12px) scale(1.18)}40%{transform:translateY(0) scale(1)}60%{transform:translateY(-6px) scale(1.09)}80%{transform:translateY(0) scale(1)}to{transform:translateY(0) scale(1)}}.token.hopping{animation:token-hop .65s ease-out}.tile-corner{align-items:stretch;background:#d5eccc;justify-content:stretch;overflow:hidden}.corner-inner,.tile-corner{display:flex;position:relative}.corner-inner{align-items:center;flex-direction:column;font-family:Outfit,sans-serif;font-weight:700;height:100%;justify-content:center;padding:4px;text-align:center;text-transform:uppercase;width:100%}.corner-tokens{bottom:6px;display:flex;flex-wrap:wrap;gap:2px;justify-content:center;left:0;position:absolute;right:0;z-index:5}.corner-go{background:#d5eccc}.corner-go-arrow{align-items:center;display:flex;justify-content:center;width:80%}.go-arrow-svg{height:auto;max-width:110px;width:100%}.corner-go-text{color:#c5392a;font-family:Fredoka,Arial Black,sans-serif;font-size:clamp(18px,3.5vmin,42px);font-weight:900;letter-spacing:2px;line-height:1;margin:4px 0;text-shadow:1px 1px 0 #0000001a}.corner-go-collect{color:#1a1a1a;font-size:clamp(5px,.85vmin,8px);font-weight:600;letter-spacing:.3px;line-height:1.1;max-width:95%}.corner-jail{background:#d5eccc;display:block;overflow:hidden;padding:0;position:relative}.jail-cell{background:#f7941d;border-bottom:2px solid #1a1a1a;border-left:2px solid #1a1a1a;height:72%;overflow:hidden;position:absolute;right:0;top:0;width:72%}.jail-bars-grid{align-items:stretch;bottom:0;display:flex;justify-content:space-around;left:0;padding:3px 6px;pointer-events:none;position:absolute;right:0;top:24%;z-index:3}.jail-bars-grid span{background:#1a1a1a;border-radius:1px;box-shadow:1px 0 0 #ffffff59;width:3px}.jail-in-label{background:#d5eccc;border-bottom:1.5px solid #1a1a1a;color:#1a1a1a;font-family:Fredoka,sans-serif;font-size:clamp(5px,.9vmin,10px);font-weight:800;left:0;letter-spacing:.5px;line-height:1.3;padding:2px 4px;pointer-events:none;position:absolute;right:0;text-align:center;top:0;z-index:5}.jail-diagonal{background:#1a1a1a;bottom:0;height:2px;left:0;position:absolute;transform:rotate(-45deg);transform-origin:left center;width:39.6%;z-index:4}.jail-tokens-behind-bars{align-items:center;bottom:0;display:flex;flex-wrap:wrap;gap:1px;justify-content:center;left:0;padding:2px;position:absolute;right:0;top:24%;z-index:2}.jail-tokens-behind-bars .token{font-size:9px;height:14px;width:14px}.jail-visiting-tokens{bottom:5%;display:flex;flex-wrap:wrap;gap:1px;left:3%;max-width:25%;pointer-events:none;position:absolute;z-index:5}.jail-visiting-tokens .token{font-size:9px;height:14px;width:14px}.jail-just-label{left:4px;transform:rotate(90deg);transform-origin:left bottom;white-space:nowrap}.jail-just-label,.jail-visiting-label{bottom:4px;color:#1a1a1a;font-family:Outfit,sans-serif;font-size:clamp(6px,1vmin,11px);font-weight:800;letter-spacing:1px;position:absolute;text-transform:uppercase;z-index:3}.jail-visiting-label{left:50%;transform:translateX(-50%)}.corner-parking{background:#d5eccc}.corner-parking-bottom,.corner-parking-top{color:#1a1a1a;font-family:Outfit,sans-serif;font-size:clamp(8px,1.4vmin,14px);font-weight:800;letter-spacing:1px;line-height:1}.corner-parking-icon{align-items:center;display:flex;justify-content:center;margin:4px 0;width:80%}.corner-svg{height:auto;max-width:90px;width:100%}.corner-gotojail{background:#d5eccc}.corner-gotojail-bottom,.corner-gotojail-top{color:#1a1a1a;font-family:Outfit,sans-serif;font-size:clamp(8px,1.4vmin,14px);font-weight:800;letter-spacing:1px;line-height:1}.corner-gotojail-icon{margin:4px 0;width:70%}.board-center,.corner-gotojail-icon{align-items:center;display:flex;justify-content:center}.board-center{background:#c8e6c0;flex-direction:column;gap:12px;grid-column:2/11;grid-row:2/11;padding:8px;position:relative}.board-center-title{color:#c5392a;font-family:Fredoka,Arial Black,sans-serif;font-size:clamp(18px,5vmin,44px);font-weight:700;left:50%;letter-spacing:4px;opacity:.18;pointer-events:none;position:absolute;text-shadow:2px 2px 0 #00000014;top:50%;transform:translate(-50%,-50%) rotate(-45deg);white-space:nowrap}.card-deck{aspect-ratio:1.45;max-width:180px;position:absolute;width:32%;z-index:2}.card-deck-chance{left:12%;top:12%;transform:rotate(-12deg)}.card-deck-chest{bottom:12%;right:12%;transform:rotate(-12deg)}.card-deck-stack{height:100%;position:relative;width:100%}.card-back{border:1.5px solid #1a1a1a;border-radius:6px;box-shadow:0 1px 3px #0003;inset:0;position:absolute}.card-back-3{background:#f5f0e8;transform:translate(4px,4px)}.card-back-2{background:#faf6ee;transform:translate(2px,2px)}.card-back-1{align-items:center;background:#f7941d;display:flex;flex-direction:column;justify-content:center;padding:6px}.card-back-label{color:#1a1a1a;font-family:Fredoka,sans-serif;font-size:clamp(7px,1.4vmin,14px);font-weight:800;letter-spacing:1px;line-height:1;text-align:center}.card-back-chest-3{background:#f5f0e8;transform:translate(4px,4px)}.card-back-chest-2{background:#faf6ee;transform:translate(2px,2px)}.card-back-chest-1{align-items:center;background:#fef200;display:flex;flex-direction:column;justify-content:center;padding:6px}.card-back-label-chest{color:#1a1a1a;font-family:Fredoka,sans-serif;font-size:clamp(6px,1.2vmin,11px);font-weight:800;letter-spacing:.5px;line-height:1;margin-bottom:2px;text-align:center}.card-back-icon-chest{align-items:center;display:flex;justify-content:center;max-width:none;width:100%}.card-back-icon-chest svg{height:90%;max-height:52px;width:90%}.dice-area{position:relative;z-index:3}.dice,.dice-area{display:flex;gap:14px}.die{align-items:center;background:#fff;border:2px solid #1a1a1a;border-radius:8px;box-shadow:0 3px 6px #0000002e,inset 0 1px 0 #ffffff80;display:flex;height:50px;justify-content:center;position:relative;width:50px}.die-face{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);height:70%;width:70%}.die-dot{background:#1a1a1a;border-radius:50%;height:100%;width:100%}.die-dot.hidden{visibility:hidden}.die-number-faded{color:#00000038;font-family:Fredoka,sans-serif;font-size:.75rem;font-weight:700;pointer-events:none;position:absolute;right:-20px;top:50%;transform:translateY(-50%);white-space:nowrap}.die-number-left{left:-20px;right:auto}@keyframes dice-shake{0%{transform:rotate(0deg) translate(0)}15%{transform:rotate(-18deg) translate(-2px,2px)}30%{transform:rotate(12deg) translate(2px,-2px)}45%{transform:rotate(-12deg) translate(-1px,1px)}60%{transform:rotate(18deg) translate(1px,-1px)}75%{transform:rotate(-6deg) translate(-2px,2px)}90%{transform:rotate(6deg) translate(2px,-2px)}to{transform:rotate(0deg) translate(0)}}.die.rolling{animation:dice-shake .2s infinite}.free-parking{background:#fff9;border-radius:6px;color:#2b5b3a;font-family:Outfit,sans-serif;font-size:.9rem;font-weight:700;padding:4px 10px;position:relative;z-index:3}.side-panel{background:#f5f0e8;border-left:2px solid #d5cfc4;display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;width:220px}.player-panel{flex-shrink:0;max-height:50%;overflow-y:auto;padding:8px}.player-panel h4{color:#2b5b3c;font-family:Fredoka,sans-serif;font-size:.85rem;margin:0 0 8px}.player-card{background:#fff;border:2px solid #e8e3da;border-radius:8px;box-shadow:0 1px 3px #0000000f;margin-bottom:6px;padding:8px;transition:border-color .2s,transform .1s,box-shadow .1s}.player-card:hover{box-shadow:0 2px 6px #0000001a;transform:translateY(-1px)}.player-card.current{border-color:#e8920e}.player-card.me{border-color:#c5392a}.player-card.bankrupt{opacity:.5}.player-header{gap:8px}.player-header,.player-token{align-items:center;display:flex}.player-token{border-radius:50%;box-shadow:0 1px 2px #00000026;flex-shrink:0;font-size:14px;height:28px;justify-content:center;width:28px}.player-info{display:flex;flex:1 1;flex-direction:column;min-width:0}.player-name{color:#1a1a1a;font-size:.8rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-money{color:#2b5b3c;font-size:.75rem;font-weight:600}.turn-badge{color:#e8920e;font-size:.8rem}.jail-badge,.jail-card-badge{color:#555;font-size:.7rem;margin-top:2px}.player-properties{display:flex;flex-wrap:wrap;gap:2px;margin-top:4px}.prop-chip{align-items:center;border:1px solid #00000026;border-radius:2px;cursor:pointer;display:flex;font-size:8px;height:14px;justify-content:center;width:14px}.game-log{border-top:1px solid #d5cfc4;display:flex;flex:1 1;flex-direction:column;overflow:hidden;padding:8px}.game-log h4{color:#2b5b3c;flex-shrink:0;font-family:Fredoka,sans-serif;font-size:.85rem;margin:0 0 6px}.log-entries{flex:1 1;font-size:.7rem;line-height:1.4;overflow-y:auto}.log-entry{border-bottom:1px solid #e8e3da;color:#555;padding:2px 0}.controls-bar{align-items:center;background:#2b5b3c;display:flex;flex-shrink:0;flex-wrap:wrap;gap:6px;justify-content:center;min-height:40px;padding:5px 10px}.waiting-msg{color:#ffffffb3;font-size:.9rem}.game-over{color:#ffe082;font-family:Fredoka,sans-serif;font-size:1.2rem;font-weight:700}.auction-bar{padding:8px}.auction-controls input{background:#fff;border:1px solid #d5cfc4;border-radius:4px;color:#1a1a1a;font-family:Outfit,sans-serif;font-size:.85rem;padding:6px;width:80px}.modal-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.modal{background:#f5f0e8;border:2px solid #d5cfc4;border-radius:12px;box-shadow:0 8px 32px #00000040;color:#1a1a1a;max-height:90vh;max-width:420px;overflow-y:auto;padding:20px;width:100%}.modal h3{color:#c5392a;font-family:Fredoka,sans-serif;margin:0 0 16px}.modal h4{color:#333;font-size:.9rem;margin:0 0 8px}.card-modal{max-width:320px;text-align:center}.card-modal.chance .card-header{background:#f7941d}.card-modal.chest .card-header{background:#fef200;color:#1a1a1a}.card-header{border-radius:8px 8px 0 0;color:#fff;font-family:Fredoka,sans-serif;font-size:1.1rem;font-weight:700;margin:-20px -20px 16px;padding:16px}.card-body{color:#333;font-size:1rem;line-height:1.5;margin-bottom:20px}.trade-modal{max-width:480px}.trade-section label{margin-bottom:4px}.trade-section select{border:1px solid #d5cfc4;border-radius:6px;font-size:.9rem;padding:10px}.trade-columns{grid-gap:12px;gap:12px}.trade-col label{align-items:center;color:#555;display:flex;font-size:.8rem;gap:4px;margin-bottom:8px}.trade-col input{border-radius:4px;color:#1a1a1a;font-family:Outfit,sans-serif;padding:6px;width:80px}.prop-list,.trade-col input{background:#fff;border:1px solid #d5cfc4}.prop-list{max-height:180px}.prop-item{background:#fafafa;border-radius:4px;margin-bottom:2px;padding:6px 8px;transition:background .2s}.trade-pending .trade-preview{grid-gap:12px;background:#fff;border:1px solid #d5cfc4;border-radius:8px;display:grid;font-size:.85rem;gap:12px;grid-template-columns:1fr 1fr;margin:16px 0;padding:12px}.trade-pending .trade-preview strong{color:#c5392a;display:block;margin-bottom:4px}.modal-buttons{display:flex;gap:8px;justify-content:center;margin-top:16px}.property-modal{max-width:340px}.property-header{border-radius:12px 12px 0 0;margin:-20px -20px 16px;padding:16px;text-align:center}.property-header h3{color:#fff;margin:0;text-shadow:0 1px 3px #0000004d}.property-price{color:#fff;font-size:1.2rem;font-weight:700}.property-body{margin-bottom:16px}.property-owner{background:#fff;border:1px solid #d5cfc4;border-radius:6px;font-size:.9rem;margin-bottom:12px;padding:8px}.mortgaged-badge{color:#c5392a;margin-left:8px}.rent-table{background:#fff;border:1px solid #d5cfc4;border-radius:6px;overflow:hidden}.rent-row{border-bottom:1px solid #e8e3da;color:#333;display:flex;font-size:.8rem;justify-content:space-between;padding:6px 10px}.rent-row:last-child{border-bottom:none}.rent-total{background:#f0ebe3;font-weight:600}.hotel-display,.houses-display{font-size:.9rem;margin-top:8px;text-align:center}.property-actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.tile-info-desc{background:#fff;border:1px solid #e8e3da;border-radius:6px;color:#555;font-size:.9rem;margin-bottom:12px;padding:12px;text-align:center}.corner-info{padding:8px;text-align:center}.corner-info-icon{font-size:2rem;margin-bottom:8px}.player-profile-modal{max-width:400px;width:100%}.player-profile-header{align-items:center;border-radius:12px 12px 0 0;color:#fff;display:flex;gap:16px;margin:-20px -20px 16px;padding:20px}.player-profile-token{align-items:center;background:#ffffff40;border:2px solid #fff6;border-radius:50%;display:flex;font-size:24px;height:48px;justify-content:center;width:48px}.player-profile-header h3{color:#fff;font-family:Fredoka,sans-serif;font-size:1.4rem;margin:0}.player-profile-money{font-size:1.1rem;font-weight:700;opacity:.95}.player-profile-body{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.profile-section{background:#fff;border:1px solid #e8e3da;border-radius:8px;color:#333;font-size:.9rem;padding:10px 12px}.jail-section{background:#fff3e0;border-color:#ffb74d;color:#e65100;font-weight:600}.no-properties{color:#999;font-style:italic;margin:4px 0 0}.profile-properties-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;max-height:200px;overflow-y:auto}.profile-property-item{background:#fafafa;border:1px solid #e8e3da;border-radius:6px;padding:8px 10px}.profile-prop-name{color:#1a1a1a;font-size:.85rem;font-weight:600}.mortgaged-label{color:#c5392a;font-size:.75rem;font-weight:700}.profile-prop-details{color:#666;font-size:.75rem;margin-top:2px}.monopoly-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.monopoly-chip{align-items:center;border:1px solid #0003;border-radius:4px;color:#fff;display:inline-flex;font-size:.75rem;font-weight:700;height:24px;justify-content:center;width:24px}@media (max-width:900px){.game-layout{flex-direction:column}.side-panel{border-left:none;border-top:2px solid #d5cfc4;flex-direction:row;height:150px;width:100%}.player-panel{max-height:100%;width:50%}.game-log{border-left:1px solid #d5cfc4;border-top:none;width:50%}.board{height:min(96vw,96vw);width:min(96vw,96vw)}.tile-name{font-size:clamp(4px,1.3vw,7px)}.token{font-size:9px;height:14px;width:14px}.die{height:38px;width:38px}.die-number-faded{font-size:.65rem;right:-16px}.controls-bar{gap:4px;padding:6px}.btn-control{font-size:.8rem;padding:8px 12px}.trade-columns{grid-template-columns:1fr}.corner-go-text{font-size:clamp(14px,4vw,28px)}}@media (max-width:480px){.board-wrapper{padding:2px}.board{border-width:2px}.tile-name{font-size:4px}.top-bar{padding:6px 8px}.room-code{font-size:.8rem}.side-panel{height:120px}.player-card{padding:4px}.player-token{font-size:11px;height:22px;width:22px}.player-money,.player-name{font-size:.7rem}.log-entries{font-size:.6rem}.token{border-width:1.5px;font-size:8px;height:12px;width:12px}.tile-price-edge{font-size:5px;padding:0 2px}.die{height:32px;width:32px}.die-number-faded{font-size:.6rem;right:-14px}}@media (max-height:500px){.side-panel{height:100px}.board{height:min(92vmin,92vmin);width:min(92vmin,92vmin)}}.tile .color-bar:after{background:#d5eccc80;content:"";inset:0;pointer-events:none;position:absolute;z-index:2}.color-bar-img{background-position:50%;background-repeat:no-repeat;background-size:contain;inset:0;position:absolute;z-index:1}.monopoly-tracker{display:flex;flex-direction:column;gap:6px;margin-top:8px}.monopoly-tracker-item{align-items:center;display:flex;font-size:.85rem;gap:10px}.monopoly-tracker-label{color:#333;font-weight:600}.card-flip-overlay{perspective:1200px}.card-flip{animation:cardFlipIn .7s cubic-bezier(.34,1.56,.64,1);transform-style:preserve-3d}@keyframes cardFlipIn{0%{opacity:0;transform:scale(.2) rotateY(-180deg) translateZ(-300px)}50%{opacity:1;transform:scale(1.1) rotateY(-30deg) translateZ(100px)}to{opacity:1;transform:scale(1) rotateY(0deg) translateZ(0)}}@keyframes cardScaleIn{0%{opacity:0;transform:scale(.5) translateY(40px)}60%{opacity:1;transform:scale(1.05) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.card-modal{animation:cardScaleIn .5s cubic-bezier(.34,1.56,.64,1) forwards}.auction-bar{align-items:center;background:#f5f0e8;border:1px solid #d5cfc4;border-radius:8px;color:#1a1a1a;display:flex;flex-wrap:wrap;gap:8px;max-width:100%;padding:8px 12px}.auction-info{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:200px}.auction-bid{color:#e8920e;font-size:.8rem;font-weight:600}.auction-timer{align-items:center;background:#2b5b3c1a;border-radius:4px;color:#2b5b3c;display:inline-flex;font-family:Fredoka,monospace;font-size:.9rem;font-weight:700;gap:4px;padding:2px 8px}.auction-timer.urgent{animation:timerPulse .5s ease-in-out infinite alternate;background:#c5392a26;color:#c5392a}@keyframes timerPulse{0%{transform:scale(1)}to{transform:scale(1.08)}}.auction-controls{align-items:center;display:flex;flex-wrap:wrap;gap:4px}.btn-bid{background:#e8e3da;border:1px solid #d5cfc4;border-radius:6px;color:#333;cursor:pointer;font-family:Outfit,sans-serif;font-size:.8rem;font-weight:700;min-height:32px;padding:6px 10px;transition:all .15s}.btn-bid:hover{background:#d5cfc4;transform:translateY(-1px)}.btn-bid:active{transform:translateY(0)}.bid-input{background:#fff;border:1px solid #d5cfc4;border-radius:4px;color:#1a1a1a;font-family:Outfit,sans-serif;font-size:.85rem;padding:6px 8px;text-align:center;width:70px}.floating-money{background:#0000002e;border-radius:3px;font-family:Fredoka,Arial Black,sans-serif;font-size:clamp(10px,1.8vmin,18px);font-weight:900;padding:1px 3px;pointer-events:none;text-shadow:1px 1px 0 #000000e6,-1px 1px 0 #000000e6,1px -1px 0 #000000e6,-1px -1px 0 #000000e6;white-space:nowrap;z-index:50}.floating-money.float-up{align-self:start;animation:floatMoneyUp 2s ease-out forwards;justify-self:center}.floating-money.float-down{align-self:end;animation:floatMoneyDown 2s ease-out forwards;justify-self:center}.floating-money.float-right{align-self:center;animation:floatMoneyRight 2s ease-out forwards;justify-self:end}.floating-money.float-left{align-self:center;animation:floatMoneyLeft 2s ease-out forwards;justify-self:start}@keyframes floatMoneyUp{0%{opacity:0;transform:translateY(4px) scale(.6)}15%{opacity:1;transform:translateY(-2px) scale(1.15)}35%{opacity:1;transform:translateY(-12px) scale(1)}75%{opacity:.85;transform:translateY(-30px) scale(1)}to{opacity:0;transform:translateY(-46px) scale(.8)}}@keyframes floatMoneyDown{0%{opacity:0;transform:translateY(-4px) scale(.6)}15%{opacity:1;transform:translateY(2px) scale(1.15)}35%{opacity:1;transform:translateY(12px) scale(1)}75%{opacity:.85;transform:translateY(30px) scale(1)}to{opacity:0;transform:translateY(46px) scale(.8)}}@keyframes floatMoneyRight{0%{opacity:0;transform:translateX(-4px) scale(.6)}15%{opacity:1;transform:translateX(2px) scale(1.15)}35%{opacity:1;transform:translateX(12px) scale(1)}75%{opacity:.85;transform:translateX(30px) scale(1)}to{opacity:0;transform:translateX(46px) scale(.8)}}@keyframes floatMoneyLeft{0%{opacity:0;transform:translateX(4px) scale(.6)}15%{opacity:1;transform:translateX(-2px) scale(1.15)}35%{opacity:1;transform:translateX(-12px) scale(1)}75%{opacity:.85;transform:translateX(-30px) scale(1)}to{opacity:0;transform:translateX(-46px) scale(.8)}}.floating-text{align-items:center;animation:floatUp 2s ease-out forwards;display:flex;font-family:Fredoka,Arial Black,sans-serif;font-size:clamp(14px,2.5vmin,24px);font-weight:900;height:100%;justify-content:center;pointer-events:none;position:absolute;text-shadow:0 0 8px currentColor,0 0 16px currentColor;width:100%;z-index:10}@keyframes floatUp{0%{opacity:0;transform:translateY(20px) scale(.5)}15%{opacity:1;transform:translateY(-5px) scale(1.2)}30%{opacity:1;transform:translateY(-15px) scale(1)}70%{opacity:.8;transform:translateY(-30px) scale(1)}to{opacity:0;transform:translateY(-50px) scale(.8)}}.trade-modal{max-width:520px;width:100%}.trade-section{margin-bottom:16px}.trade-section label{color:#555;display:block;font-size:.85rem;font-weight:600;margin-bottom:6px}.trade-section select{background:#fff;border:2px solid #d5cfc4;border-radius:8px;color:#1a1a1a;cursor:pointer;font-family:Outfit,sans-serif;font-size:.95rem;padding:10px 12px;width:100%}.trade-columns{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:16px}.trade-col{background:#fff;border:1px solid #e8e3da;border-radius:8px;padding:12px}.trade-col h4{color:#c5392a;font-family:Fredoka,sans-serif;font-size:1rem;margin:0 0 10px}.trade-money-row{align-items:center;display:flex;gap:8px;margin-bottom:10px}.trade-money-row label{color:#666;font-size:.8rem;font-weight:600;white-space:nowrap}.trade-money-row input{background:#fafafa;border:1px solid #d5cfc4;border-radius:6px;color:#1a1a1a;flex:1 1;font-family:Outfit,sans-serif;font-size:.9rem;max-width:100px;padding:8px 10px}.prop-list{background:#fafafa;border:1px solid #e8e3da;border-radius:6px;max-height:160px;overflow-y:auto;padding:4px}.prop-item{align-items:center;background:#fff;border-left:4px solid #888;border-radius:5px;color:#333;cursor:pointer;display:flex;font-size:.8rem;gap:4px;justify-content:space-between;margin-bottom:3px;padding:8px 10px;transition:all .15s}.prop-item:hover{background:#f0ebe3;transform:translateX(2px)}.prop-item.selected{background:#e8e3da;border:1px solid #c5392a;border-left-width:4px;font-weight:600}.prop-item.mortgaged{opacity:.6}.prop-item.empty{color:#999;cursor:default;font-style:italic;justify-content:center;text-align:center}.trade-summary{background:#fff;border:1px solid #e8e3da;border-radius:8px;margin-bottom:16px;padding:12px}.trade-summary-item{color:#555;font-size:.85rem;margin-bottom:4px}.trade-summary-item:last-child{margin-bottom:0}@media (max-width:900px){.auction-bar{align-items:stretch;flex-direction:column}.auction-info{min-width:auto}.auction-controls{justify-content:center}.trade-columns{grid-template-columns:1fr}}@media (max-width:480px){.btn-bid{font-size:.75rem;padding:5px 8px}.bid-input{padding:5px;width:60px}.floating-text{font-size:12px}}.jail-notification-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#0009;display:flex;inset:0;justify-content:center;pointer-events:none;position:fixed;z-index:2000}.jail-notification{align-items:center;animation:jailSlideIn .5s cubic-bezier(.34,1.56,.64,1);background:linear-gradient(135deg,#1a1a1a,#333);border:4px solid #f7941d;border-radius:16px;box-shadow:0 0 40px #f7941d66,0 8px 32px #00000080;display:flex;flex-direction:column;gap:16px;padding:32px 48px}.jail-notification-icon{animation:jailIconPulse 1s ease-in-out infinite alternate;font-size:64px;line-height:1}.jail-notification-text{color:#fff;font-family:Fredoka,Arial Black,sans-serif;font-size:28px;font-weight:900;letter-spacing:2px;text-align:center;text-shadow:0 2px 8px #00000080;text-transform:uppercase}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes jailSlideIn{0%{opacity:0;transform:scale(.3) translateY(-50px)}60%{opacity:1;transform:scale(1.05) translateY(5px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes jailIconPulse{0%{transform:scale(1)}to{transform:scale(1.15)}}@media (max-width:480px){.jail-notification{margin:16px;padding:24px 32px}.jail-notification-icon{font-size:48px}.jail-notification-text{font-size:20px}}.prop-chip{background-position:50%;background-repeat:no-repeat;background-size:cover;border:none!important;box-shadow:none!important;outline:none!important;overflow:hidden;padding:0}.prop-chip img{border:none;display:block;height:100%;object-fit:cover;outline:none;width:100%}.prop-flag-inline{border:none;box-shadow:none;display:inline-block;outline:none;vertical-align:middle}.monopoly-chip-wrapper{align-items:center;border:none;border-radius:2px;box-shadow:none;display:inline-flex;flex-shrink:0;height:24px;justify-content:center;outline:none;overflow:hidden;position:relative;width:32px}.monopoly-chip-flag{border:none;display:block;height:100%;inset:0;object-fit:cover;outline:none;position:absolute;width:100%}.monopoly-chip-text{color:#000;font-family:Fredoka,Arial Black,sans-serif;font-size:.85rem;font-weight:900;line-height:1;position:relative;text-shadow:0 0 3px #fff,0 0 6px #fff,0 0 9px #fff,0 0 12px #fff;z-index:2}.profile-property-item{display:flex;flex-direction:column;gap:2px}.profile-prop-name{align-items:center;display:flex;gap:4px}.btn-action.btn-disabled{background:#ccc!important;color:#666!important;cursor:not-allowed!important;opacity:.7}.trade-note{align-items:flex-start;background:#e8f4e8;border:1px solid #1fb25a;border-radius:6px;color:#2b5b3c;display:flex;font-size:.8rem;gap:8px;margin-bottom:16px;padding:10px 12px}.trade-note span{font-size:1rem;line-height:1}.trade-note strong{color:#1a1a1a}.tile-airport .color-bar{display:none!important}.tile-airport .tile-content{padding:0!important;position:relative}.tile-airport[data-side=bottom] .tile-name-wrap{top:2px}.tile-airport[data-side=bottom] .tile-name-wrap,.tile-airport[data-side=top] .tile-name-wrap{align-items:center;display:flex;height:auto;justify-content:center;left:0;padding:2px 4px;position:absolute;right:0;width:100%;z-index:3}.tile-airport[data-side=top] .tile-name-wrap{bottom:2px}.tile-airport[data-side=left] .tile-name-wrap{left:auto;right:0}.tile-airport[data-side=left] .tile-name-wrap,.tile-airport[data-side=right] .tile-name-wrap{align-items:center;background:#0000;bottom:0;display:flex;height:100%;justify-content:center;padding:2px;position:absolute;top:0;width:22%}.tile-airport[data-side=right] .tile-name-wrap{left:0;right:auto}.tile-airport[data-side=left] .tile-name{transform:rotate(90deg);transform-origin:center center}.tile-airport[data-side=left] .tile-name,.tile-airport[data-side=right] .tile-name{font-size:clamp(7px,1.3vmin,11px);line-height:1.05;white-space:nowrap;width:-webkit-max-content;width:max-content}.tile-airport[data-side=right] .tile-name{transform:rotate(-90deg);transform-origin:center center}.tile-airport .tile-icon-wrap{align-items:center;display:flex;height:100%;inset:0;justify-content:center;padding:0;position:absolute;width:100%}.tile-airport[data-side=bottom] .tile-icon-wrap{padding-top:18%}.tile-airport[data-side=top] .tile-icon-wrap{padding-bottom:18%}.tile-airport[data-side=left] .tile-icon-wrap{padding-right:22%}.tile-airport[data-side=right] .tile-icon-wrap{padding-left:22%}.tile-airport .tile-svg{max-height:none;max-width:34px;transform:none;width:55%}.tile-airport .tile-name{text-shadow:none}.tile-airport[data-side=bottom] .hotel-indicator,.tile-airport[data-side=bottom] .houses-indicator,.tile-airport[data-side=bottom] .owner-dot{bottom:auto;left:50%;right:auto;top:18%;transform:translateX(-50%);z-index:5}.tile-airport[data-side=top] .hotel-indicator,.tile-airport[data-side=top] .houses-indicator,.tile-airport[data-side=top] .owner-dot{bottom:18%;left:50%;right:auto;top:auto;transform:translateX(-50%);z-index:5}.tile-airport[data-side=left] .hotel-indicator,.tile-airport[data-side=left] .houses-indicator,.tile-airport[data-side=left] .owner-dot{bottom:auto;left:auto;right:18%;top:50%;transform:translateY(-50%);z-index:5}.tile-airport[data-side=right] .hotel-indicator,.tile-airport[data-side=right] .houses-indicator,.tile-airport[data-side=right] .owner-dot{bottom:auto;left:18%;right:auto;top:50%;transform:translateY(-50%);z-index:5}.tile-airport[data-side=bottom] .tile-price-edge{bottom:2px;left:50%;transform:translateX(-50%)}.tile-airport[data-side=top] .tile-price-edge{left:50%;top:2px;transform:translateX(-50%)}.tile-airport[data-side=left] .tile-price-edge{left:2px;top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:center}.tile-airport[data-side=right] .tile-price-edge{right:2px;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:center}.tile-airport[data-side=bottom] .tile-tokens{bottom:14%;left:0;right:0}.tile-airport[data-side=top] .tile-tokens{left:0;right:0;top:14%}.tile-airport[data-side=left] .tile-tokens{bottom:0;flex-direction:column;left:14%;top:0;z-index:10}.tile-airport[data-side=right] .tile-tokens{bottom:0;flex-direction:column;right:14%;top:0;z-index:10}.chat-toggle{-webkit-tap-highlight-color:transparent;align-items:center;background:#ffffff26;border:1px solid #ffffff40;border-radius:8px;cursor:pointer;display:flex;justify-content:center;min-height:32px;min-width:36px;padding:6px 10px;position:relative;touch-action:manipulation;transition:all .2s}.chat-toggle:hover{background:#ffffff40;transform:translateY(-1px)}.chat-toggle-icon{font-size:1.1rem;line-height:1}.chat-badge{align-items:center;animation:badgePop .3s cubic-bezier(.34,1.56,.64,1);background:#c5392a;border:2px solid #2b5b3c;border-radius:50%;color:#fff;display:flex;font-size:.65rem;font-weight:700;height:18px;justify-content:center;min-width:18px;position:absolute;right:-6px;top:-6px}@keyframes badgePop{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}.chat-nudge-dot{animation:nudgePulse 1.5s ease-in-out infinite;background:#e8920e;border:2px solid #2b5b3c;border-radius:50%;height:10px;position:absolute;right:-3px;top:-3px;width:10px}@keyframes nudgePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.3)}}.chat-drawer{background:#f5f0e8;border-left:2px solid #d5cfc4;box-shadow:-4px 0 20px #00000026;display:flex;flex-direction:column;height:100vh;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .3s cubic-bezier(.34,1.56,.64,1);width:340px;z-index:900}.chat-drawer.open{transform:translateX(0)}.chat-header{background:#2b5b3c;border-bottom:2px solid #d5cfc4;flex-shrink:0;justify-content:space-between;padding:10px 14px}.chat-header,.chat-header-left{align-items:center;display:flex}.chat-header-left{gap:8px}.chat-icon{font-size:1.1rem}.chat-title{color:#fff;font-family:Fredoka,sans-serif;font-size:.9rem;font-weight:700}.chat-online-count{color:#ffffffb3;font-size:.7rem;font-weight:500}.chat-header-right{align-items:center;display:flex;gap:6px}.chat-sound-toggle{cursor:pointer}.chat-sound-toggle:hover{background:#ffffff40}.chat-close{background:#ffffff26;border:1px solid #ffffff40;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:700;line-height:1;padding:4px 8px;transition:all .15s}.chat-close:hover{background:#ffffff4d}.chat-nudge{align-items:center;animation:nudgeSlide .4s ease-out;background:#fff3e0;border-bottom:1px solid #ffe0b2;color:#e65100;display:flex;flex-shrink:0;font-size:.8rem;font-weight:500;gap:8px;justify-content:center;padding:10px 14px}@keyframes nudgeSlide{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.chat-nudge-icon{animation:wave 1s ease-in-out infinite;font-size:1.1rem}@keyframes wave{0%,to{transform:rotate(0deg)}25%{transform:rotate(15deg)}75%{transform:rotate(-15deg)}}.chat-messages{flex:1 1;gap:10px;overflow-y:auto;padding:12px;scroll-behavior:smooth}.chat-empty,.chat-messages{display:flex;flex-direction:column}.chat-empty{align-items:center;color:#999;height:100%;justify-content:center;padding:20px;text-align:center}.chat-empty-icon{font-size:3rem;margin-bottom:12px;opacity:.4}.chat-empty p{color:#888;font-size:.9rem;font-weight:600;margin:0}.chat-empty-sub{font-size:.75rem!important;font-weight:400!important;margin-top:4px!important}.chat-message{animation:messageSlide .25s ease-out;display:flex;flex-direction:column}@keyframes messageSlide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-message.system{align-items:center}.chat-message-inner{align-items:flex-start;display:flex;gap:8px}.chat-message.me .chat-message-inner{flex-direction:row-reverse}.chat-avatar{align-items:center;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 3px #00000026;display:flex;flex-shrink:0;font-size:13px;height:28px;justify-content:center;width:28px}.chat-bubble-wrapper{display:flex;flex-direction:column;gap:2px;max-width:calc(100% - 40px)}.chat-sender-name{font-size:.7rem;font-weight:600;margin-left:4px}.chat-bubble{background:#fff;border-radius:10px;box-shadow:0 1px 3px #00000014;overflow-wrap:break-word;padding:8px 12px;word-break:break-word}.chat-text{color:#1a1a1a;font-size:.85rem;line-height:1.4;margin:0;white-space:pre-wrap}.chat-timestamp{align-self:flex-end;color:#aaa;font-size:.65rem;font-weight:500}.chat-message.me .chat-timestamp{align-self:flex-start}.chat-message.system .chat-system-text{background:#e8e3da;border-radius:12px;color:#888;font-size:.75rem;font-style:italic;padding:4px 12px}.chat-message.system .chat-timestamp{margin-top:2px}.chat-scroll-bottom{animation:scrollBtnPop .3s ease-out;background:#2b5b3c;border:none;border-radius:20px;bottom:70px;box-shadow:0 2px 8px #0003;color:#fff;cursor:pointer;font-family:Outfit,sans-serif;font-size:.8rem;font-weight:600;left:50%;padding:8px 16px;position:absolute;transform:translateX(-50%);z-index:10}@keyframes scrollBtnPop{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.chat-scroll-bottom:hover{background:#1e422a}.chat-input-bar{align-items:flex-end;background:#fff;border-top:2px solid #d5cfc4;display:flex;flex-shrink:0;gap:8px;padding:10px 12px}.chat-input-wrapper{flex:1 1;position:relative}.chat-input{background:#fafafa;border:2px solid #d5cfc4;border-radius:10px;color:#1a1a1a;font-family:Outfit,sans-serif;font-size:.9rem;line-height:1.4;max-height:100px;min-height:40px;outline:none;padding:10px 50px 10px 12px;resize:none;transition:border-color .2s;width:100%}.chat-input:focus{background:#fff;border-color:#2b5b3c}.chat-char-count{bottom:8px;color:#bbb;font-size:.65rem;font-weight:500;pointer-events:none;position:absolute;right:10px}.chat-send-btn{align-items:center;background:#2b5b3c;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:1.1rem;height:40px;justify-content:center;padding-left:2px;transition:all .15s;width:40px}.chat-send-btn:hover:not(:disabled){background:#1e422a;transform:scale(1.05)}.chat-send-btn:disabled{background:#ccc;cursor:not-allowed;transform:none}@media (max-width:900px){.chat-drawer{width:100%;z-index:1001}.chat-toggle{padding:8px 12px}}@media (max-width:480px){.chat-drawer{border-left:none}.chat-header{padding:12px 16px}.chat-messages{padding:10px}.chat-input-bar{padding:8px 10px}.chat-toggle-icon{font-size:1rem}}.sound-toggle{-webkit-tap-highlight-color:transparent;align-items:center;background:#ffffff26;border:1px solid #ffffff40;border-radius:8px;cursor:pointer;display:flex;font-size:1.1rem;justify-content:center;min-height:32px;min-width:36px;padding:6px 10px;position:relative;touch-action:manipulation;transition:all .2s}.sound-toggle:hover{background:#ffffff40;transform:translateY(-1px)}.sound-toggle.on{background:#ffe08233;color:#ffe082}.chat-sound-toggle{align-items:center;background:#ffffff26;border:1px solid #ffffff40;border-radius:6px;color:#ffffffb3;display:inline-flex;font-size:.85rem;justify-content:center;padding:4px 6px;transition:all .15s}.chat-sound-toggle.on{background:#ffe08233;color:#ffe082}.chat-censor-preview{align-items:center;animation:censorSlide .3s ease-out;background:#fff3e0;border-bottom:1px solid #ffe0b2;display:flex;font-size:.8rem;gap:8px;padding:8px 12px}@keyframes censorSlide{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.chat-censor-label{color:#e65100;flex-shrink:0;font-weight:700}.chat-censor-text{color:#333;font-style:italic;word-break:break-word}.debt-banner{align-items:center;animation:debtPulse 1.5s ease-in-out infinite;background:linear-gradient(135deg,#c5392a,#8b0000);border:2px solid #fff;border-radius:8px;box-shadow:0 4px 16px #c5392a80;color:#fff;display:flex;font-size:.95rem;font-weight:700;gap:12px;left:50%;max-width:90%;padding:12px 24px;position:fixed;top:60px;transform:translateX(-50%);z-index:1000}@keyframes debtPulse{0%,to{box-shadow:0 4px 16px #c5392a80}50%{box-shadow:0 4px 24px #c5392ae6,0 0 32px #ff323266}}.debt-banner-icon{flex-shrink:0;font-size:1.4rem}.debt-banner-content{display:flex;flex-direction:column;gap:2px}.debt-banner-title{font-size:1rem;font-weight:800;letter-spacing:.5px}.debt-banner-sub{font-size:.8rem;font-weight:500;opacity:.95}.auto-mortgage-toggle{-webkit-tap-highlight-color:transparent;align-items:center;background:#ffffff26;border:1px solid #ffffff40;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-family:Outfit,Segoe UI,system-ui,-apple-system,sans-serif;font-size:.8rem;font-weight:600;gap:6px;letter-spacing:.2px;line-height:1;min-height:32px;padding:6px 12px;position:relative;touch-action:manipulation;transition:all .2s;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:5}.auto-mortgage-toggle:hover{background:#ffffff40;transform:translateY(-1px)}.auto-mortgage-toggle:active{transform:translateY(0)}.auto-mortgage-toggle.on{background:#f7941dd9;border-color:#f7941d;box-shadow:0 0 0 1px #f7941d66,0 2px 6px #00000026;color:#fff}.auto-mortgage-toggle.on:hover{background:#f7941d;border-color:#ffa733}.auto-mortgage-indicator-dot{background:#fff;border-radius:50%;flex-shrink:0;height:8px;opacity:.5;pointer-events:none;transition:opacity .2s;width:8px}.auto-mortgage-label{pointer-events:none}.auto-mortgage-toggle.on .auto-mortgage-indicator-dot{box-shadow:0 0 6px #ffffffb3;opacity:1}.auto-mortgage-toggle.pending{cursor:wait;opacity:.75;pointer-events:none}.auto-mortgage-toggle:disabled{cursor:not-allowed}.game-toast{animation:gameToastSlide .25s ease-out;border-radius:8px;box-shadow:0 6px 20px #00000040;color:#fff;font-family:Outfit,Segoe UI,system-ui,-apple-system,sans-serif;font-size:.88rem;font-weight:600;left:50%;max-width:90vw;padding:10px 18px;position:fixed;text-align:center;top:56px;transform:translateX(-50%);z-index:9999}.game-toast-success{background:linear-gradient(135deg,#2e7d32,#43a047)}.game-toast-error{background:linear-gradient(135deg,#c5392a,#8b0000)}@keyframes gameToastSlide{0%{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%)}}.player-card.in-debt{animation:debtCardPulse 2s ease-in-out infinite;background:linear-gradient(135deg,#ffe5e0,#ffd2cc);border-left:4px solid #c5392a}@keyframes debtCardPulse{0%,to{border-left-color:#c5392a}50%{border-left-color:#ff5040}}.debt-badge{background:#c5392a;border-radius:4px;color:#fff;display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.3px;margin-top:4px;padding:2px 8px}.player-money.negative{color:#c5392a;font-weight:800}.btn-control.btn-roll.blocked-by-debt{background:#999;cursor:not-allowed;opacity:.6}
/*# sourceMappingURL=main.ca3ac894.css.map*/