@import"https://fonts.googleapis.com/css2?family=Archivo+Black&family=Archivo:wght@400;500;600;700;800&display=swap";.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{--space-size: clamp(42px, calc((100vh - 40px) / 11), 72px);--g-board: #cde6d0;--g-board-dark: #b4d6b8;--g-space: #f3f9ef;--g-paper: #fffdf5;--g-paper-2: #f4f1e4;--g-ink: #1b1b1b;--g-ink-soft: #4a4a44;--g-ink-dim: #7c7a70;--g-red: #d8232a;--g-red-dark: #a8181e;--g-blue: #0072bb;--g-green: #1fa055;--g-green-dark: #15793f;--g-chance: #f7941d;--g-chance-soft: #ffe9cc;--g-chest-soft: #dcefff;--g-tax-soft: #fde2ec;--g-bill: #e6efc8;--g-shadow: 3px 3px 0 var(--g-ink);--g-display: "Archivo Black", "Arial Black", sans-serif;--g-body: "Archivo", "Segoe UI", system-ui, sans-serif}.game-container{display:flex;gap:16px;padding:12px;height:100vh;overflow:hidden;font-family:var(--g-body);color:var(--g-ink);background:radial-gradient(ellipse 70% 60% at 30% 50%,rgba(255,255,255,.35),transparent 70%),linear-gradient(var(--g-board-dark) 1px,transparent 1px) 0 0 / 72px 72px,linear-gradient(90deg,var(--g-board-dark) 1px,transparent 1px) 0 0 / 72px 72px,var(--g-board)}.board{display:flex;flex-direction:column;background:var(--g-board);border:3px solid var(--g-ink);border-radius:4px;box-shadow:5px 5px 0 var(--g-ink);flex-shrink:0;position:relative;height:fit-content;align-self:center}.sidebar{flex:1;min-width:0;height:calc(100vh - 24px);overflow-y:auto;display:flex;flex-direction:column}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:var(--g-ink-dim);border-radius:3px}.grid-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:2px 6px 4px;flex-shrink:0;flex-wrap:wrap}.match-code{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%;background:var(--g-paper);color:var(--g-ink);border:2px solid var(--g-ink);border-radius:4px;box-shadow:2px 2px 0 var(--g-ink);padding:2px 4px 2px 8px;font-size:11px}.match-code-label{color:var(--g-ink-soft);font-weight:800;letter-spacing:1px;text-transform:uppercase;flex-shrink:0}.match-code code{font-family:ui-monospace,Consolas,monospace;font-size:12px;font-weight:700;color:var(--g-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.match-code button{background:var(--g-ink);color:#fff;padding:4px 8px;font-family:var(--g-body);font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;border-radius:3px;flex-shrink:0}.match-code button:last-child{background:var(--g-red)}.match-code button:hover{opacity:.85}.btn-reset-layout{background:var(--g-paper);color:var(--g-ink);font-family:var(--g-body);font-size:11px;font-weight:700;padding:4px 12px;border-radius:4px;border:2px solid var(--g-ink);box-shadow:2px 2px 0 var(--g-ink);cursor:pointer;transition:transform .12s,box-shadow .12s}.btn-reset-layout:hover{opacity:1;transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--g-ink)}.grid-panel{background:var(--g-paper);border-radius:4px;border:2px solid var(--g-ink);box-shadow:var(--g-shadow);display:flex;flex-direction:column;overflow:hidden}.panel-drag-handle{display:flex;align-items:center;gap:8px;padding:7px 12px;background:var(--g-ink);color:#fff;font-family:var(--g-display);font-size:12px;font-weight:400;text-transform:uppercase;letter-spacing:1px;cursor:grab;-webkit-user-select:none;user-select:none;border-bottom:2px solid var(--g-ink);flex-shrink:0}.panel-players .panel-drag-handle{background:var(--g-blue)}.panel-trade .panel-drag-handle{background:var(--g-chance);color:var(--g-ink)}.panel-properties .panel-drag-handle{background:var(--g-green)}.panel-log .panel-drag-handle{background:var(--g-red)}.panel-drag-handle:active{cursor:grabbing;filter:brightness(.92)}.drag-grip{margin-left:auto;opacity:.6;font-size:10px}.panel-content{flex:1;overflow-y:auto;padding:10px}.panel-content::-webkit-scrollbar{width:5px}.panel-content::-webkit-scrollbar-track{background:transparent}.panel-content::-webkit-scrollbar-thumb{background:var(--g-ink-dim);border-radius:2px}.panel-log-content{padding:0}.trade-panel{display:flex;flex-direction:column;gap:10px}.trade-section{display:flex;flex-direction:column;gap:4px}.trade-label{font-size:10px;color:var(--g-ink-soft);font-weight:800;text-transform:uppercase;letter-spacing:1px}.trade-select{background:#fff;border:2px solid var(--g-ink);color:var(--g-ink);padding:6px 8px;border-radius:4px;font-family:var(--g-body);font-size:12px;font-weight:600}.trade-columns{display:flex;gap:8px}.trade-col{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.trade-col-header{font-family:var(--g-display);font-size:11px;text-transform:uppercase;letter-spacing:1px;padding:4px 6px;border:2px solid var(--g-ink);border-radius:3px;text-align:center;color:#fff}.trade-offer-header{background:var(--g-green)}.trade-request-header{background:var(--g-red)}.trade-prop-list{display:flex;flex-direction:column;gap:4px;max-height:100px;overflow-y:auto}.trade-prop-btn{font-family:var(--g-body);font-size:10px;font-weight:600;padding:4px 6px;background:#fff;border:1.5px solid var(--g-ink);color:var(--g-ink);border-radius:3px;cursor:pointer;text-align:left;transition:background .15s}.trade-prop-btn:hover{opacity:1;background:var(--g-paper-2)}.trade-prop-btn.selected{background:var(--g-green);color:#fff;font-weight:800}.trade-empty{font-size:10px;color:var(--g-ink-dim);padding:8px;text-align:center;font-style:italic;border:1.5px dashed var(--g-ink-dim);border-radius:3px}.trade-money-row{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:800;color:var(--g-ink)}.trade-money-input{flex:1;background:#fff;border:2px solid var(--g-ink);color:var(--g-ink);padding:4px 6px;border-radius:3px;font-family:var(--g-body);font-size:12px;font-weight:700;min-width:0}.btn-trade-send,.btn-trade-accept,.btn-trade-reject,.btn-trade-cancel{font-family:var(--g-display);font-size:12px;font-weight:400;text-transform:uppercase;letter-spacing:1px;padding:8px;border:2px solid var(--g-ink);border-radius:4px;box-shadow:2px 2px 0 var(--g-ink);transition:transform .12s,box-shadow .12s}.btn-trade-send:hover:not(:disabled),.btn-trade-accept:hover:not(:disabled),.btn-trade-reject:hover:not(:disabled),.btn-trade-cancel:hover:not(:disabled){opacity:1;transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--g-ink)}.btn-trade-send:active:not(:disabled),.btn-trade-accept:active:not(:disabled),.btn-trade-reject:active:not(:disabled),.btn-trade-cancel:active:not(:disabled){transform:translate(2px,2px);box-shadow:none}.btn-trade-send{background:var(--g-ink);color:#fff}.btn-trade-send:disabled{opacity:.4}.trade-incoming-header{font-family:var(--g-display);font-size:13px;text-transform:uppercase;color:var(--g-ink);text-align:center;padding:4px}.trade-summary{display:flex;align-items:flex-start;gap:6px}.trade-summary-side{flex:1;display:flex;flex-direction:column;gap:3px}.trade-summary-label{font-size:10px;font-weight:800;color:var(--g-ink-soft);text-transform:uppercase;letter-spacing:1px}.trade-summary-item{font-size:11px;font-weight:600;color:var(--g-ink);padding:3px 6px;background:#fff;border:1.5px solid var(--g-ink);border-radius:3px}.trade-money-green{color:var(--g-green-dark);font-weight:800}.trade-money-red{color:var(--g-red-dark);font-weight:800}.trade-summary-divider{color:var(--g-ink);padding-top:16px;font-size:12px}.trade-actions{display:flex;gap:8px}.btn-trade-accept{flex:1;background:var(--g-green);color:#fff}.btn-trade-reject{flex:1;background:var(--g-red);color:#fff}.trade-waiting{font-size:12px;font-weight:600;color:var(--g-ink-soft);text-align:center;padding:8px;font-style:italic}.trade-status{font-size:11px;font-weight:600;color:var(--g-ink-soft);text-align:center;padding:8px}.btn-trade-cancel{background:#fff;color:var(--g-ink);width:100%}.log-trade .log-icon{color:var(--g-blue)}.board-row,.board-middle{display:flex}.board-col{display:flex;flex-direction:column}.board-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:10px;min-width:120px;min-height:120px;position:relative;background:var(--g-board)}.center-table{display:flex;align-items:center;justify-content:center;gap:22px}.chance-deck-slot{position:relative;width:78px;height:108px;flex-shrink:0}.chance-deck-button{background:transparent;border:none;padding:8px 0 0;width:auto;height:auto;min-width:86px;color:inherit;display:flex;flex-direction:column;align-items:center;gap:6px}.chance-deck-button:hover{opacity:1}.chance-deck-button:focus-visible{outline:3px solid var(--g-red);outline-offset:3px;border-radius:6px}.chance-deck{position:relative;width:64px;height:90px;display:block}.chance-card-back{position:absolute;inset:0;border-radius:5px;background:var(--g-chance);border:2px solid var(--g-ink);box-shadow:2px 2px 0 var(--g-ink)}.chance-card-back-3{transform:translate(7px,6px) rotate(6deg)}.chance-card-back-2{transform:translate(3px,3px) rotate(2.5deg)}.chance-card-top{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:transform .2s ease}.chance-card-mark{font-family:var(--g-display);font-size:32px;line-height:1;color:var(--g-red);-webkit-text-stroke:1.5px var(--g-ink);transform:rotate(-12deg)}.chance-card-word{font-size:9px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--g-ink)}.chance-deck.can-take:hover .chance-card-top,.chance-deck.is-lifted .chance-card-top{transform:translateY(-14px) rotate(-7deg)}.chance-deck-hint,.chance-prompt,.card-private-note{margin:0;color:var(--g-ink);font-size:12px;font-weight:800;text-align:center}.chance-deck-hint{font-size:10px;letter-spacing:1px;text-transform:uppercase}.space-chance{background:var(--g-chance-soft)}.space-chance-ready{animation:chance-ready 1.1s ease-in-out infinite}@keyframes chance-ready{0%,to{box-shadow:inset 0 0 0 2px var(--g-chance)}50%{box-shadow:inset 0 0 0 4px var(--g-red)}}.board-dice-layer{position:absolute;inset:0;z-index:12;pointer-events:none;overflow:hidden;border-radius:inherit}.board-dice-layer canvas{width:100%;height:100%;display:block;background:transparent}.dice-readout{min-width:88px;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.chance-read{position:absolute;z-index:30;left:50%;top:50%;transform:translate(-50%,-50%);width:min(230px,92%)}.btn-chance-continue{margin-top:10px;background:var(--g-ink);color:#fff;padding:7px 16px;font-size:12px}.board-center h2{font-family:var(--g-display);font-size:clamp(.85rem,1.8vw,1.4rem);font-weight:400;color:#fff;letter-spacing:2px;background:var(--g-red);padding:6px 14px 5px;border:2px solid #fff;outline:4px solid var(--g-red);box-shadow:4px 4px 0 4px var(--g-ink);text-shadow:2px 2px 0 var(--g-red-dark);transform:rotate(-3deg);margin:6px 0 4px}.board-center h2 i{font-size:.85em}.space{width:var(--space-size);min-height:var(--space-size);border:1px solid var(--g-ink);background:var(--g-space);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3px;position:relative;font-size:clamp(7px,calc(var(--space-size) * .12),10px);text-align:center;color:var(--g-ink);overflow:hidden}.space-color{width:100%;height:12px;position:absolute;top:0;left:0;border-bottom:1px solid var(--g-ink)}.space-icon{font-size:clamp(8px,calc(var(--space-size) * .15),12px);margin-top:6px;color:var(--g-ink-soft)}.space-name{font-weight:700;font-size:clamp(6px,calc(var(--space-size) * .11),9px);margin-top:2px;line-height:1.15;max-width:100%;overflow:hidden;text-overflow:ellipsis}.space-price{font-size:clamp(6px,calc(var(--space-size) * .11),9px);font-weight:700;color:var(--g-ink-soft);margin-top:1px}.space-owned{background:#fff}.space-owner-badge{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--g-ink);display:flex;align-items:center;justify-content:center;font-size:7px;color:#fff;z-index:2}.space-houses{position:absolute;bottom:2px;left:0;right:0;display:flex;justify-content:center;gap:2px;z-index:3}.house-icon,.deed-house{font-size:9px;color:var(--g-green);filter:drop-shadow(1px 1px 0 var(--g-ink))}.hotel-icon,.deed-hotel{font-size:12px;color:var(--g-red);filter:drop-shadow(1px 1px 0 var(--g-ink))}.deed-house{font-size:8px;margin-right:2px}.deed-hotel{font-size:10px}.build-panel{display:flex;flex-direction:column;gap:10px}.build-panel h3{font-family:var(--g-display);font-size:12px;font-weight:400;color:var(--g-ink);text-transform:uppercase;letter-spacing:1px;margin:0}.deed-group{display:flex;flex-direction:column;gap:10px}.deed-card{background:#fff;border-radius:3px;overflow:hidden;border:2px solid var(--g-ink);box-shadow:2px 2px 0 var(--g-ink)}.deed-color-bar{height:12px;width:100%;border-bottom:2px solid var(--g-ink)}.deed-title{font-family:var(--g-display);font-size:12px;font-weight:400;color:var(--g-ink);text-align:center;padding:7px 8px 2px;text-transform:uppercase;letter-spacing:.5px}.deed-body{padding:6px 10px 10px}.deed-rent-table{display:flex;flex-direction:column;gap:1px;margin-bottom:8px}.deed-row{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:600;color:var(--g-ink-soft);padding:2px 5px;border-radius:2px}.deed-row-active{background:var(--g-bill);color:var(--g-ink);font-weight:800;box-shadow:inset 0 0 0 1.5px var(--g-ink)}.deed-footer{border-top:1.5px dashed var(--g-ink-dim);padding-top:7px;display:flex;flex-direction:column;gap:3px}.deed-info-row{display:flex;justify-content:space-between;font-size:10px;font-weight:600;color:var(--g-ink-soft)}.deed-current-rent{color:var(--g-green-dark);font-weight:800}.btn-build-deed{width:100%;margin-top:8px;padding:6px 8px;font-family:var(--g-display);font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:.5px;background:var(--g-green);color:#fff;border:2px solid var(--g-ink);border-radius:3px;box-shadow:2px 2px 0 var(--g-ink);cursor:pointer;transition:transform .12s,box-shadow .12s}.btn-build-deed:hover:not(:disabled){opacity:1;transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--g-ink)}.btn-build-deed:disabled{opacity:.4;cursor:not-allowed}.player-token{position:absolute;width:24px;height:24px;border-radius:50%;border:2px solid var(--g-ink);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);z-index:10;box-shadow:2px 2px 0 var(--g-ink);text-shadow:0 1px 1px rgba(0,0,0,.5);pointer-events:none}.player-token-moving{z-index:20;transform:translate(-50%,-50%) scale(1.25);box-shadow:3px 4px 0 var(--g-ink)}.player-token-jailed{animation:jail-pulse 1.5s ease-in-out infinite;border-color:var(--g-red)!important}@keyframes jail-pulse{0%,to{box-shadow:0 0 0 2px var(--g-ink),2px 2px 0 2px var(--g-ink);transform:translate(-50%,-50%) scale(1)}50%{box-shadow:0 0 0 4px var(--g-red),2px 2px 0 4px var(--g-ink);transform:translate(-50%,-50%) scale(1.05)}}.player-token-jump{z-index:25;animation:token-hop .45s ease-in-out}@keyframes token-hop{0%{transform:translate(-50%,-50%) scale(1)}35%{transform:translate(-50%,-80%) scale(1.2)}to{transform:translate(-50%,-50%) scale(1)}}.space-go,.space-jail,.space-free-parking,.space-go-to-jail{width:var(--space-size);min-height:var(--space-size);font-weight:800;font-size:clamp(7px,calc(var(--space-size) * .12),10px);background:#e6f2dc}.space-go .space-icon{color:var(--g-red)}.space-go-to-jail .space-icon,.space-jail .space-icon{color:var(--g-ink)}.space-community-chest{background:var(--g-chest-soft)}.space-tax{background:var(--g-tax-soft)}.dice-display-3d{display:flex;flex-direction:column;align-items:center;gap:10px}.dice-pair{display:flex;gap:20px}.die-container{width:clamp(48px,6vw,68px);height:clamp(48px,6vw,68px);perspective:500px}.die-cube{width:100%;height:100%;position:relative;transform-style:preserve-3d;transform:rotateX(0) rotateY(0)}@keyframes dice-tumble{0%{transform:rotateX(0) rotateY(0) rotate(0)}20%{transform:rotateX(120deg) rotateY(240deg) rotate(60deg)}40%{transform:rotateX(240deg) rotateY(120deg) rotate(180deg)}60%{transform:rotateX(60deg) rotateY(300deg) rotate(300deg)}80%{transform:rotateX(300deg) rotateY(60deg) rotate(120deg)}to{transform:rotateX(360deg) rotateY(360deg) rotate(360deg)}}.die-face{position:absolute;width:100%;height:100%;background:#fff;border:2px solid var(--g-ink);border-radius:12px;display:flex;align-items:center;justify-content:center}.die-front{transform:translateZ(34px)}.die-back{transform:rotateY(180deg) translateZ(34px)}.die-right{transform:rotateY(90deg) translateZ(34px)}.die-left{transform:rotateY(-90deg) translateZ(34px)}.die-top{transform:rotateX(90deg) translateZ(34px)}.die-bottom{transform:rotateX(-90deg) translateZ(34px)}.dice-dots{display:grid;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:48px;height:48px;padding:2px}.dice-dot{width:12px;height:12px;background:var(--g-ink);border-radius:50%;align-self:center;justify-self:center}.die-cube.landing{animation:dice-bounce .4s cubic-bezier(.34,1.56,.64,1)}@keyframes dice-bounce{0%{filter:drop-shadow(0 8px 12px rgba(0,0,0,.3))}50%{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}to{filter:drop-shadow(0 4px 6px rgba(0,0,0,.15))}}.dice-total{min-height:20px}.dice-total-number{font-family:var(--g-display);font-size:14px;color:var(--g-ink);letter-spacing:1px}.doubles-badge{color:#fff;font-family:var(--g-display);font-size:14px;text-transform:uppercase;padding:6px 16px;background:var(--g-red);border:2px solid var(--g-ink);border-radius:4px;box-shadow:2px 2px 0 var(--g-ink);animation:doubles-pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes doubles-pop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.card-display{width:clamp(160px,18vw,220px);padding:12px;border-radius:5px;text-align:center;border:2px solid var(--g-ink);box-shadow:4px 4px 0 var(--g-ink);animation:card-appear .5s cubic-bezier(.34,1.56,.64,1)}.card-chance{background:#fff4e3;color:var(--g-ink)}.card-community{background:#eef7ff;color:var(--g-ink)}.card-header{display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--g-display);font-size:13px;font-weight:400;text-transform:uppercase;letter-spacing:1px;margin:-12px -12px 10px;padding:7px 8px;border-bottom:2px solid var(--g-ink)}.card-chance .card-header{background:var(--g-chance)}.card-community .card-header{background:var(--g-blue);color:#fff}.card-icon{font-size:28px;margin-bottom:10px;filter:drop-shadow(2px 2px 0 var(--g-ink))}.card-chance .card-icon{color:var(--g-red)}.card-community .card-icon{color:var(--g-blue)}.card-text{font-size:12px;line-height:1.5;font-weight:600}@keyframes card-appear{0%{transform:scale(.3) rotateY(90deg);opacity:0}60%{transform:scale(1.05) rotateY(-5deg);opacity:1}to{transform:scale(1) rotateY(0);opacity:1}}.action-panel{display:flex;flex-direction:column;align-items:center;gap:10px}.jail-actions{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.jail-status-badge{display:flex;align-items:center;gap:8px;padding:7px 14px;background:var(--g-paper);border:2px solid var(--g-ink);border-left:8px solid var(--g-red);border-radius:4px;box-shadow:2px 2px 0 var(--g-ink);color:var(--g-ink);font-family:var(--g-display);font-size:13px;text-transform:uppercase}.jail-turns-count{font-family:var(--g-body);font-size:10px;font-weight:800;color:#fff;background:var(--g-ink);padding:2px 8px;border-radius:10px;text-transform:none}.doubles-info{color:#fff;font-weight:800;font-size:12px;padding:5px 12px;background:var(--g-red);border:2px solid var(--g-ink);border-radius:4px}.btn{padding:10px 22px;font-family:var(--g-display);font-size:13px;font-weight:400;text-transform:uppercase;letter-spacing:1px;border:2px solid var(--g-ink);border-radius:4px;box-shadow:3px 3px 0 var(--g-ink);transition:transform .12s,box-shadow .12s}.btn:hover:not(:disabled){opacity:1;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--g-ink)}.btn:active:not(:disabled){transform:translate(3px,3px);box-shadow:none}.btn-roll{background:var(--g-red);color:#fff;font-size:15px}.btn-buy{background:var(--g-green);color:#fff}.btn-skip{background:#fff;color:var(--g-ink)}.btn-end{background:var(--g-ink);color:#fff}.btn-bail{background:var(--g-chance);color:var(--g-ink)}.buy-decision{text-align:center;display:flex;flex-direction:column;gap:8px;color:var(--g-ink);font-weight:700;font-size:13px;background:var(--g-paper);border:2px solid var(--g-ink);border-radius:4px;box-shadow:3px 3px 0 var(--g-ink);padding:10px 14px 12px}.waiting{color:var(--g-ink-soft);font-weight:700;font-size:12px;font-style:italic}.room-wait{color:var(--g-ink);font-weight:800;font-size:13px;text-align:center;margin:0}.gameover{text-align:center;padding:14px 18px;background:var(--g-red);border:2px solid var(--g-ink);border-radius:4px;box-shadow:4px 4px 0 var(--g-ink);color:#fff;font-family:var(--g-display);text-transform:uppercase}.gameover h3{font-weight:400}.react-grid-item.react-grid-placeholder{background:#1fa05526!important;border:2px dashed var(--g-ink)!important;border-radius:4px;opacity:1!important}.react-resizable-handle{opacity:.4;transition:opacity .2s}.react-resizable-handle:hover{opacity:.9}.react-grid-item>.react-resizable-handle:after{border-color:var(--g-ink)!important}.player-panel{background:#fff;border-radius:3px;padding:10px 12px;border:2px solid var(--g-ink);transition:box-shadow .2s,background .2s}.player-panel+.player-panel{margin-top:8px}.player-panel.active-turn{background:#fffbea;box-shadow:inset 6px 0 0 var(--g-green),2px 2px 0 var(--g-ink)}.player-panel.bankrupt{opacity:.5}.player-header{display:flex;align-items:center;gap:8px}.player-panel.active-turn .player-header{padding-left:4px}.player-dot{width:24px;height:24px;border-radius:50%;border:2px solid var(--g-ink);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;text-shadow:0 1px 1px rgba(0,0,0,.5)}.player-name{font-weight:800;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-name .fa-user{display:none}.player-money{font-family:var(--g-display);font-size:13px;color:var(--g-ink);background:var(--g-bill);border:1.5px solid var(--g-ink);outline:1px dashed #8aa25a;outline-offset:-4px;padding:2px 8px;flex-shrink:0}.player-money i{display:none}.jail-label{display:flex;align-items:center;gap:6px;color:#fff;font-size:10px;font-weight:800;letter-spacing:.5px;margin-top:8px;padding:3px 8px;background:var(--g-red);border:1.5px solid var(--g-ink);border-radius:3px;width:fit-content}.bankrupt-label{display:block;color:var(--g-red-dark);font-size:12px;font-weight:800;margin-top:6px}.player-properties{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.prop-tag{font-size:10px;font-weight:600;padding:2px 6px;background:var(--g-paper-2);border:1px solid var(--g-ink);border-radius:3px;color:var(--g-ink)}.prop-tag i{color:var(--g-ink-dim)}.game-log-panel{background:transparent;border-radius:0;display:flex;flex-direction:column;height:100%;border:none;position:relative}.game-log-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1.5px dashed var(--g-ink-dim);background:transparent;border-radius:0}.game-log-header h3{margin:0;font-family:var(--g-display);font-size:12px;font-weight:400;color:var(--g-ink);letter-spacing:1px;text-transform:uppercase}.log-count{font-size:10px;font-weight:800;color:#fff;background:var(--g-ink);padding:3px 8px;border-radius:10px}.game-log-body{overflow-y:auto;padding:6px 0;scroll-behavior:smooth}.game-log-body::-webkit-scrollbar{width:5px}.game-log-body::-webkit-scrollbar-track{background:transparent}.game-log-body::-webkit-scrollbar-thumb{background:var(--g-ink-dim);border-radius:3px}.log-turn-group{margin-bottom:2px}.log-entry{display:flex;align-items:center;gap:8px;padding:5px 14px;font-size:11px;font-weight:500;color:var(--g-ink-soft);transition:background .15s}.log-entry:hover{background:var(--g-paper-2)}.log-player-dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--g-ink);flex-shrink:0}.log-icon{font-size:10px;width:14px;text-align:center;flex-shrink:0}.log-msg{flex:1;line-height:1.4}.log-amount{font-size:10px;font-weight:800;padding:1px 6px;border:1px solid var(--g-ink);border-radius:3px;flex-shrink:0}.log-positive{color:var(--g-ink);background:var(--g-bill)}.log-negative{color:#fff;background:var(--g-red)}.log-entry.log-turn-start{padding:8px 14px 6px;font-weight:800;font-size:11px;color:var(--g-ink);text-transform:uppercase;letter-spacing:.5px;gap:6px;position:relative;margin-top:4px;border-top:1.5px dashed var(--g-ink-dim)}.log-turn-group:first-child .log-entry.log-turn-start{border-top:none;margin-top:0}.log-turn-bar{width:4px;height:14px;border-radius:1px;flex-shrink:0}.log-dice .log-icon{color:var(--g-blue)}.log-doubles .log-icon{color:var(--g-red)}.log-pass-go .log-icon{color:var(--g-green)}.log-buy .log-icon{color:var(--g-blue)}.log-rent .log-icon{color:#c06a00}.log-tax .log-icon{color:var(--g-red)}.log-card .log-icon{color:#c06a00}.log-card-effect .log-icon{color:#8e3fa8}.log-jail .log-icon{color:var(--g-red-dark)}.log-bankrupt .log-icon{color:var(--g-red)}.log-skip .log-icon{color:var(--g-ink-dim)}.log-gameover .log-icon{color:#b8860b}.log-info .log-icon{color:var(--g-ink-dim)}.log-entry.log-pass-go{color:var(--g-green-dark);font-weight:700}.log-entry.log-doubles,.log-entry.log-jail{color:var(--g-red-dark);font-weight:700}.log-entry.log-bankrupt{color:var(--g-red-dark);font-weight:800}.log-entry.log-gameover{color:var(--g-ink);font-weight:800}.log-entry.log-buy{color:var(--g-ink)}.log-scroll-btn{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:var(--g-ink);color:#fff;border:2px solid var(--g-ink);padding:4px 14px;border-radius:12px;font-family:var(--g-body);font-size:11px;font-weight:800;cursor:pointer;box-shadow:2px 2px 0 var(--g-red);z-index:2}.game-container button:focus-visible,.game-container select:focus-visible,.game-container input:focus-visible{outline:3px solid var(--g-red);outline-offset:2px}@media(prefers-reduced-motion:reduce){.space-chance-ready,.player-token-jailed,.doubles-badge,.card-display{animation:none}}@media(max-width:1200px){:root{--space-size: clamp(38px, calc((100vh - 100px) / 11), 60px)}}@media(max-width:900px){:root{--space-size: clamp(30px, calc((100vw - 28px) / 11), 50px)}.game-container{flex-direction:column;height:auto;min-height:100vh;overflow-y:auto;overflow-x:hidden;padding:8px;gap:12px}.board{align-self:center;flex-shrink:0}.sidebar{height:auto;min-height:400px;overflow-y:visible;width:100%}.board-center h2{font-size:.85rem;letter-spacing:1px}.grid-panel{min-height:180px}}@media(max-width:768px){:root{--space-size: clamp(28px, calc((100vw - 24px) / 11), 42px)}.game-container{padding:6px;gap:10px}.board{border-width:2px;box-shadow:3px 3px 0 var(--g-ink)}.board-center{gap:6px;padding:6px;min-width:80px;min-height:80px}.board-center h2{font-size:.7rem;padding:4px 8px 3px;outline-width:3px;box-shadow:3px 3px 0 3px var(--g-ink)}.panel-drag-handle{padding:5px 10px;font-size:11px}.panel-content{padding:8px}.grid-toolbar{padding:2px 4px 4px}.btn-reset-layout{font-size:10px;padding:3px 8px}.match-code code{max-width:120px}.player-panel{padding:8px}.player-name,.player-money{font-size:12px}.prop-tag{font-size:9px;padding:1px 4px}.trade-columns{flex-direction:column;gap:6px}.trade-prop-list{max-height:80px}.deed-title{font-size:10px;padding:4px 6px 2px}.deed-body{padding:4px 8px 6px}.deed-row{font-size:9px;padding:1px 3px}.center-table{gap:10px}.chance-deck-slot{width:56px;height:78px}.chance-deck{width:46px;height:64px}.chance-card-mark{font-size:22px}.chance-card-word{display:none}.chance-deck-button{min-width:64px;padding-top:4px}.die-container{width:clamp(36px,5vw,52px);height:clamp(36px,5vw,52px)}.dice-pair{gap:12px}.dice-dots{width:36px;height:36px}.dice-dot{width:9px;height:9px}.card-display{width:clamp(120px,16vw,180px);padding:8px}.card-header{margin:-8px -8px 8px;font-size:11px}.card-icon{font-size:22px;margin-bottom:6px}.card-text{font-size:10px}.btn{padding:8px 16px;font-size:12px}}@media(max-width:600px){:root{--space-size: clamp(24px, calc((100vw - 20px) / 11), 36px)}.game-container{padding:4px;gap:8px}.board-center{gap:4px;padding:4px;min-width:60px;min-height:60px}.board-center h2{display:none}.center-table{gap:8px}.space-color{height:6px}.space-owner-badge{width:12px;height:12px;font-size:6px;border-width:1px}.house-icon{font-size:6px}.hotel-icon{font-size:8px}.player-token{width:16px;height:16px;font-size:8px;border-width:1.5px;box-shadow:1px 1px 0 var(--g-ink)}.sidebar{min-height:300px}.grid-panel{min-height:140px}.panel-drag-handle{padding:4px 8px;font-size:10px}.panel-content,.player-panel{padding:6px}.player-dot{width:18px;height:18px;font-size:8px}.player-name,.player-money{font-size:11px}.btn{padding:7px 12px;font-size:11px}.btn-roll{font-size:12px}.log-entry{padding:4px 10px;font-size:10px;gap:6px}.log-icon{font-size:9px;width:12px}.log-amount{font-size:9px;padding:1px 4px}.die-front{transform:translateZ(24px)}.die-back{transform:rotateY(180deg) translateZ(24px)}.die-right{transform:rotateY(90deg) translateZ(24px)}.die-left{transform:rotateY(-90deg) translateZ(24px)}.die-top{transform:rotateX(90deg) translateZ(24px)}.die-bottom{transform:rotateX(-90deg) translateZ(24px)}.die-face{border-radius:8px;border-width:1px}}@media(max-width:380px){:root{--space-size: clamp(20px, calc((100vw - 16px) / 11), 30px)}.space-name,.space-price{font-size:5px}.space-icon{font-size:6px}.board-center h2{display:none}.board-center{min-width:40px;min-height:40px}}:root{--lby-board: #cde6d0;--lby-board-dark: #b4d6b8;--lby-paper: #fffdf5;--lby-paper-2: #f4f1e4;--lby-ink: #1b1b1b;--lby-ink-soft: #4a4a44;--lby-ink-dim: #7c7a70;--lby-red: #d8232a;--lby-red-dark: #a8181e;--lby-deed-blue: #0072bb;--lby-deed-green: #1fa055;--lby-chance: #f7941d;--lby-bill: #e6efc8;--lby-radius: 6px;--lby-shadow: 4px 4px 0 rgba(27, 27, 27, .85);--grp-brown: #8b4513;--grp-light-blue: #aae0fa;--grp-pink: #d93a96;--grp-orange: #f7941d;--grp-red: #ed1b24;--grp-yellow: #fef200;--grp-green: #1fb25a;--grp-dark-blue: #0072bb}.lobby-backdrop{min-height:100vh;background:radial-gradient(ellipse 80% 60% at 50% 35%,rgba(255,255,255,.35),transparent 70%),var(--lby-board);display:flex;align-items:center;justify-content:center;padding:44px 20px;position:relative;overflow:hidden;font-family:Archivo,sans-serif;color:var(--lby-ink)}.lobby-backdrop:before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--lby-board-dark) 1px,transparent 1px),linear-gradient(90deg,var(--lby-board-dark) 1px,transparent 1px);background-size:72px 72px;opacity:.5;-webkit-mask-image:radial-gradient(ellipse 75% 70% at 50% 50%,transparent 35%,black 90%);mask-image:radial-gradient(ellipse 75% 70% at 50% 50%,transparent 35%,black 90%);pointer-events:none}.lobby-board-edge{position:absolute;left:0;right:0;height:14px;border-color:var(--lby-ink);border-style:solid;border-width:0;background:repeating-linear-gradient(90deg,var(--grp-brown) 0 72px,var(--grp-light-blue) 72px 144px,var(--grp-pink) 144px 216px,var(--grp-orange) 216px 288px,var(--grp-red) 288px 360px,var(--grp-yellow) 360px 432px,var(--grp-green) 432px 504px,var(--grp-dark-blue) 504px 576px);z-index:0}.lobby-board-edge.top{top:0;border-bottom-width:2px}.lobby-board-edge.bottom{bottom:0;border-top-width:2px;transform:scaleX(-1)}.lobby{max-width:520px;width:100%;position:relative;z-index:1;animation:lobby-enter .6s cubic-bezier(.16,1,.3,1) both}@keyframes lobby-enter{0%{opacity:0;transform:translateY(24px) scale(.97)}}.lobby-hero{text-align:center;padding:8px 16px 26px}.mono-logo{display:inline-block;background:var(--lby-red);padding:6px;border-radius:4px;transform:rotate(-3deg);box-shadow:var(--lby-shadow)}.mono-logo h1{font-family:Archivo Black,Arial Black,sans-serif;font-size:2.3rem;font-weight:400;line-height:1;letter-spacing:2px;text-transform:uppercase;color:#fff;margin:0;padding:12px 26px 10px;border:3px solid #fff;border-radius:2px;text-shadow:2px 2px 0 var(--lby-red-dark)}.lobby-subtitle{display:inline-block;margin-top:18px;padding:5px 12px;background:var(--lby-ink);color:var(--lby-paper);font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase}.lobby-color-strip{display:flex;justify-content:center;gap:4px;margin-top:14px}.lobby-color-strip span{width:22px;height:8px;border:1.5px solid var(--lby-ink);border-radius:1px}.strip-brown{background:var(--grp-brown)}.strip-light-blue{background:var(--grp-light-blue)}.strip-pink{background:var(--grp-pink)}.strip-orange{background:var(--grp-orange)}.strip-red{background:var(--grp-red)}.strip-yellow{background:var(--grp-yellow)}.strip-green{background:var(--grp-green)}.strip-dark-blue{background:var(--grp-dark-blue)}.lobby-section{margin:0 16px 18px;background:var(--lby-paper);border:2px solid var(--lby-ink);border-radius:var(--lby-radius);box-shadow:var(--lby-shadow);overflow:hidden;animation:section-in .5s cubic-bezier(.16,1,.3,1) both}.lobby-section:nth-child(2){animation-delay:.08s}.lobby-section:nth-child(3){animation-delay:.16s}.lobby-section:nth-child(4){animation-delay:.24s}@keyframes section-in{0%{opacity:0;transform:translateY(12px)}}.deed-header{margin:8px 8px 0;padding:10px 14px 11px;border:2px solid var(--lby-ink);text-align:center;color:#fff}.deed-blue .deed-header{background:var(--lby-deed-blue)}.deed-green .deed-header{background:var(--lby-deed-green)}.deed-kicker{display:block;font-size:9px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;opacity:.85;margin-bottom:2px}.deed-header h2{font-family:Archivo Black,Arial Black,sans-serif;font-size:18px;font-weight:400;text-transform:uppercase;letter-spacing:1px;margin:0}.deed-chance{background:#fff4e3}.deed-chance .deed-header{background:var(--lby-chance);color:var(--lby-ink);display:flex;align-items:center;justify-content:center;gap:14px}.chance-mark{font-family:Archivo Black,Arial Black,sans-serif;font-size:34px;line-height:1;color:var(--lby-red);-webkit-text-stroke:1.5px var(--lby-ink);transform:rotate(-12deg)}.section-body{padding:16px 18px 18px}.lby-input{width:100%;padding:11px 14px;background:#fff;border:2px solid var(--lby-ink);border-radius:4px;color:var(--lby-ink);font-family:Archivo,sans-serif;font-size:14px;font-weight:600;outline:none;transition:box-shadow .15s;box-sizing:border-box}.lby-input:focus{box-shadow:3px 3px 0 var(--lby-red)}.lby-input::placeholder{color:var(--lby-ink-dim);font-weight:400}.color-section-label{font-size:10px;font-weight:800;color:var(--lby-ink-soft);text-transform:uppercase;letter-spacing:1.5px;margin:14px 0 10px;display:block}.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-swatch{width:34px;height:34px;border-radius:50%;border:2px solid var(--lby-ink);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;padding:0;font-size:12px;color:#fff;position:relative;box-shadow:2px 2px 0 var(--lby-ink)}.color-swatch:before{content:"";position:absolute;inset:3px;border-radius:50%;border:1.5px dashed rgba(255,255,255,.5)}.color-swatch:hover{opacity:1;transform:translateY(-2px);box-shadow:3px 4px 0 var(--lby-ink)}.color-swatch.selected{transform:translateY(-2px) scale(1.08);box-shadow:0 0 0 3px var(--lby-paper),0 0 0 5px var(--lby-ink)}.color-swatch .fa-check{filter:drop-shadow(0 1px 1px rgba(0,0,0,.6));font-size:13px;position:relative}.piece-picker{display:flex;gap:8px;flex-wrap:wrap}.piece-option{width:34px;height:34px;border-radius:50%;border:2px solid var(--lby-ink);background:#fff;font-size:15px;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;box-shadow:2px 2px 0 var(--lby-ink);transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s,background .15s,color .15s}.piece-option:before{content:"";position:absolute;inset:3px;border-radius:50%;border:1.5px dashed rgba(27,27,27,.35)}.piece-option i{position:relative}.piece-option:hover{opacity:1;transform:translateY(-2px);box-shadow:3px 4px 0 var(--lby-ink)}.piece-option.selected{color:#fff;transform:translateY(-2px) scale(1.08);box-shadow:0 0 0 3px var(--lby-paper),0 0 0 5px var(--lby-ink)}.piece-option.selected:before{border-color:#ffffff80}.piece-option.selected i{filter:drop-shadow(0 1px 1px rgba(0,0,0,.6))}.profile-preview{display:flex;align-items:center;gap:14px;margin-top:18px;padding:12px 14px;background:var(--lby-paper-2);border:2px solid var(--lby-ink);border-radius:4px}.preview-token{width:42px;height:42px;border-radius:50%;border:3px solid var(--lby-ink);color:#fff;font-family:Archivo Black,Arial Black,sans-serif;font-size:18px;display:flex;align-items:center;justify-content:center;text-shadow:1px 1px 0 rgba(0,0,0,.5);box-shadow:2px 2px 0 var(--lby-ink),inset 0 -4px #0003;flex-shrink:0}.preview-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.preview-name{font-size:16px;font-weight:800;color:var(--lby-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-ready{font-size:11px;color:var(--lby-deed-green);font-weight:700}.preview-bill{display:flex;flex-direction:column;align-items:center;padding:4px 10px;background:var(--lby-bill);border:1.5px solid var(--lby-ink);outline:1px dashed #8aa25a;outline-offset:-5px;transform:rotate(3deg);flex-shrink:0}.bill-label{font-size:8px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--lby-ink-soft)}.bill-amount{font-family:Archivo Black,Arial Black,sans-serif;font-size:15px;color:var(--lby-ink)}.create-options{display:flex;flex-direction:column;gap:14px;margin-bottom:18px;padding-bottom:16px;border-bottom:1.5px dashed var(--lby-ink-dim)}.option-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.option-label{font-size:13px;color:var(--lby-ink);font-weight:700;text-transform:uppercase;letter-spacing:1px}.player-count-select{display:flex;gap:6px}.player-count-btn{width:36px;height:36px;border-radius:4px;border:2px solid var(--lby-ink);background:#fff;color:var(--lby-ink);font-family:Archivo Black,Arial Black,sans-serif;font-size:15px;font-weight:400;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s;padding:0;display:flex;align-items:center;justify-content:center;box-shadow:2px 2px 0 var(--lby-ink)}.player-count-btn:hover{opacity:1;transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--lby-ink)}.player-count-btn.active{background:var(--lby-deed-green);color:#fff;transform:translate(2px,2px);box-shadow:none}.checkbox-row{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.lby-checkbox{width:20px;height:20px;border-radius:3px;border:2px solid var(--lby-ink);background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.lby-checkbox.checked{background:var(--lby-deed-green)}.lby-checkbox i{font-size:11px;color:#fff}.checkbox-text{font-size:12px;color:var(--lby-ink-soft);font-weight:500;line-height:1.3}.lby-btn{width:100%;padding:12px 20px;border:2px solid var(--lby-ink);border-radius:4px;font-family:Archivo Black,Arial Black,sans-serif;font-size:15px;font-weight:400;text-transform:uppercase;letter-spacing:1px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:3px 3px 0 var(--lby-ink);transition:transform .12s,box-shadow .12s}.lby-btn:hover:not(:disabled){opacity:1;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--lby-ink)}.lby-btn:active:not(:disabled){transform:translate(3px,3px);box-shadow:none}.lby-btn:disabled{opacity:.45;cursor:not-allowed}.btn-create{background:var(--lby-red);color:#fff;font-size:17px;padding:14px 20px}.btn-join-code{background:var(--lby-ink);color:#fff;white-space:nowrap;flex-shrink:0;width:auto;font-size:13px}.btn-refresh{background:#fff;color:var(--lby-ink);font-family:Archivo,sans-serif;font-weight:700;font-size:12px;padding:10px}.join-row{display:flex;gap:10px;margin-bottom:14px}.join-row .lby-input{flex:1;min-width:0;letter-spacing:1px}.match-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.match-card{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:2px solid var(--lby-ink);border-left-width:8px;border-left-color:var(--lby-chance);border-radius:4px}.match-info{display:flex;flex-direction:column;gap:3px;min-width:0}.match-id{font-family:ui-monospace,Consolas,monospace;font-size:12px;color:var(--lby-ink);font-weight:700;display:flex;align-items:center;gap:6px}.match-id i{color:var(--lby-deed-green);font-size:11px}.match-players-info{display:flex;align-items:center;gap:8px}.match-player-count{font-size:11px;font-weight:700;color:var(--lby-ink-soft)}.match-player-dots{display:flex;gap:3px}.match-dot{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--lby-ink)}.match-dot.filled{background:var(--lby-deed-green)}.match-dot.empty{background:#fff}.match-names{font-size:11px;color:var(--lby-ink-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-join-match{background:var(--lby-ink);color:#fff;border:2px solid var(--lby-ink);border-radius:4px;padding:7px 14px;font-family:Archivo Black,Arial Black,sans-serif;font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:1px;cursor:pointer;white-space:nowrap;flex-shrink:0;box-shadow:2px 2px 0 var(--lby-chance);transition:transform .12s,box-shadow .12s}.btn-join-match:hover:not(:disabled){opacity:1;transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--lby-chance)}.btn-join-match:disabled{opacity:.4;cursor:not-allowed}.no-matches{font-size:12px;color:var(--lby-ink-soft);text-align:center;margin-top:12px;padding:18px 16px;border:1.5px dashed var(--lby-ink-dim);border-radius:4px;line-height:1.5}.lobby-error{margin:0 16px 18px;padding:12px 16px;background:#fff;border:2px solid var(--lby-ink);border-left:8px solid var(--lby-red);border-radius:4px;box-shadow:var(--lby-shadow);color:var(--lby-red-dark);font-size:13px;font-weight:700;display:flex;align-items:center;gap:10px;animation:error-shake .4s cubic-bezier(.36,.07,.19,.97) both}@keyframes error-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-3px)}40%,60%{transform:translate(3px)}}.lobby-error i{font-size:16px;flex-shrink:0}.lobby-footer{display:flex;align-items:center;justify-content:center;gap:10px;padding:6px 16px 0;font-size:11px;font-weight:800;color:var(--lby-ink);letter-spacing:1.5px;text-transform:uppercase}.go-arrow{color:var(--lby-red);font-size:18px}.lobby button:focus-visible,.checkbox-row:focus-visible{outline:3px solid var(--lby-red);outline-offset:2px}@media(max-width:540px){.lobby-backdrop{padding:34px 0}.mono-logo h1{font-size:1.45rem;letter-spacing:1px;padding:10px 14px 8px}.lobby-section{margin:0 16px 16px}.section-body{padding:14px}.color-swatch{width:30px;height:30px}.preview-token{width:36px;height:36px;font-size:16px}.piece-option{width:30px;height:30px;font-size:13px}.preview-bill{display:none}}@media(prefers-reduced-motion:reduce){.lobby,.lobby-section,.lobby-error{animation:none}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Archivo,Segoe UI,system-ui,-apple-system,sans-serif;background:#cde6d0;color:#1b1b1b;min-height:100vh}#root{min-height:100vh}button{cursor:pointer;border:none;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:600;transition:opacity .2s}button:hover{opacity:.85}button:disabled{opacity:.4;cursor:not-allowed}input,select{padding:8px 12px;border-radius:6px;border:2px solid #1b1b1b;background:#fff;color:#1b1b1b;font-size:14px}
