:root{--paper:light-dark(#fcfcfa,#141413);--ink:light-dark(#1c1c1a,#e6e6e1);--muted:light-dark(#71716a,#aaa99f);--line:light-dark(#dcdcd4,#353530);--wash:light-dark(#f3f3ee,#1b1b18);--accent:light-dark(#385e53,#a1c2aa);--mono:'IBM Plex Mono',monospace;--sans:'IBM Plex Sans',sans-serif}
*{box-sizing:border-box}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button{touch-action:manipulation}button,input,select{color:var(--ink)}[hidden]{display:none!important}.game-container{max-width:1120px;padding:30px 24px 24px;margin:auto}.game-header{align-items:center}.game-header .tagline{margin-top:3px}.edition{color:var(--muted)}.game-nav{display:flex;align-items:end;justify-content:space-between;margin:24px 0 30px}.game-nav .site-nav{margin:0;font-size:13px}.text-button{border:0;background:none;color:var(--muted);padding:3px 0;font:12px var(--mono);text-underline-offset:4px}.text-button:hover{text-decoration:underline;color:var(--ink)}.eyebrow{font:11px var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.table-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px}.table-heading #connection{font:11px var(--mono);color:var(--muted);text-align:right}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:28px;align-items:start}.board{display:grid;grid-template-columns:1.18fr repeat(9,1fr) 1.18fr;grid-template-rows:1.18fr repeat(9,1fr) 1.18fr;aspect-ratio:1;border:1px solid var(--ink);background:var(--line);gap:1px;position:relative;isolation:isolate}.space{border:0;background:var(--paper);padding:6px 3px 3px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:1px;min-width:0;position:relative;line-height:1.15;font-size:11px;overflow:hidden;transition:background .15s}.space::before{content:'';height:5px;position:absolute;top:0;left:0;right:0;background:var(--group,var(--line))}.space:hover,.space.selected{background:var(--wash)}.space.selected{box-shadow:inset 0 0 0 2px var(--ink);z-index:1}.space-name{font-weight:500;overflow-wrap:anywhere;text-align:center}.space-price{font:9px var(--mono);color:var(--muted)}.space-icon{font-size:18px;line-height:1}.space.corner .space-name{font:11px var(--mono)}.space.corner .space-price{font-size:9px}.space.owner::after{content:'';position:absolute;bottom:0;height:3px;left:0;right:0;background:var(--owner)}.space.mortgaged{background:repeating-linear-gradient(45deg,var(--paper),var(--paper) 5px,var(--wash) 5px,var(--wash) 8px)}.building-marks{position:absolute;top:4px;right:2px;font:9px var(--mono);background:var(--paper)}.tokens{display:flex;justify-content:center;gap:2px;position:absolute;bottom:11px;left:1px;right:1px;pointer-events:none;flex-wrap:wrap}.token{display:inline-flex;align-items:center;justify-content:center;background:var(--token);color:#fff;font:600 10px var(--mono);width:17px;height:17px;border-radius:50%;box-shadow:0 0 0 2px var(--paper);flex-shrink:0}.token.current{outline:1px solid var(--ink);outline-offset:3px}.board-center{grid-column:2/11;grid-row:2/11;background:var(--paper);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:30px;min-width:0;text-align:center}.board-center::before{content:'';position:absolute;inset:0;opacity:.17;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse at center,transparent 20%,#000 95%)}.center-content{position:relative;z-index:1;width:100%;max-width:360px}.brand-mark{font:12px var(--mono);letter-spacing:.14em;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px}.brand-mark::before,.brand-mark::after{content:'';height:1px;width:30px;background:var(--line)}.game-title{font:500 clamp(26px,4vw,49px)/1.02 var(--mono);letter-spacing:-.065em;margin:0 0 16px}.game-title span{display:block}.intro{font-size:15px;color:var(--muted);line-height:1.6;max-width:320px;margin:0 auto 22px}.setup-form{text-align:left;max-width:280px;margin:auto}.field{display:block;font:12px var(--mono);color:var(--muted);margin-bottom:14px}.field input,.field select{display:block;width:100%;margin-top:6px;background:var(--paper);border:1px solid var(--line);border-radius:0;padding:11px 12px;font:14px var(--sans)}.field input:focus,.field select:focus{border-color:var(--ink)}.button{border:1px solid var(--line);border-radius:0;background:var(--paper);padding:11px 14px;font:12px var(--mono);line-height:1.45;text-align:center;transition:background .15s;display:inline-flex;align-items:center;justify-content:center;gap:6px}.button:hover:not(:disabled){background:var(--wash);border-color:var(--muted)}.button.primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.button.primary:hover:not(:disabled){opacity:.82;background:var(--ink)}.button.danger{color:light-dark(#8b3434,#eba0a0)}.button.wide{width:100%}.button.small{font-size:11px;padding:7px 9px}.button-row{display:flex;gap:8px;margin:8px 0;flex-wrap:wrap}.button-row>*{flex:1}.local-link{display:block;margin:16px auto 0;font-size:11px}.fine-print{font:11px/1.6 var(--mono);color:var(--muted);margin:18px 0 0}.board-foot{font:10px var(--mono);color:var(--muted);display:flex;justify-content:space-between;margin-top:12px;gap:10px}.sidebar{min-width:0}.panel{border-top:1px solid var(--line);padding:17px 0}.panel:first-child{padding-top:0;border-top:0}.panel-title{display:flex;justify-content:space-between;align-items:center;margin:0 0 15px}.panel h2{font:11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:400}.panel p{font-size:14px;line-height:1.65;margin:8px 0;color:var(--muted)}.panel .large-code{font:22px var(--mono);letter-spacing:.12em;color:var(--ink);margin:9px 0}.status-dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:6px}.player-row{display:grid;grid-template-columns:24px 1fr auto;gap:9px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.player-row:last-child{border-bottom:0}.player-row.active{background:var(--wash);margin:0 -10px;padding:11px 10px}.player-row.out{opacity:.42}.player-row .token{width:22px;height:22px;font-size:11px}.player-name{font-size:14px;font-weight:500;overflow-wrap:anywhere}.player-meta{font:10px var(--mono);color:var(--muted);margin-top:2px}.player-cash{font:14px var(--mono)}.empty-seat{color:var(--muted);font-size:13px;border:1px dashed var(--line);padding:14px;margin:10px 0}.property-title{font:500 22px/1.2 var(--mono);letter-spacing:-.04em;margin:8px 0 12px}.deed-band{height:5px;background:var(--group);margin:0 0 15px}.data-row{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin:7px 0;color:var(--muted)}.data-row strong{font:12px var(--mono);color:var(--ink)}.rent-table{width:100%;font-size:12px;border-collapse:collapse;margin:14px 0}.rent-table td{border-bottom:1px solid var(--line);padding:5px 0}.rent-table td:last-child{text-align:right;font-family:var(--mono)}.portfolio-list{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.property-chip{border:1px solid var(--line);border-left:4px solid var(--group);background:var(--paper);font:11px var(--sans);padding:6px 8px}.property-chip:hover{background:var(--wash)}.activity-list{max-height:235px;overflow:auto;list-style:none;padding:0;margin:0}.activity-list li{font-size:12px;padding:9px 0;border-bottom:1px solid var(--line);color:var(--muted);line-height:1.5}.activity-list li:first-child{color:var(--ink)}.center-label{font:11px var(--mono);letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-bottom:16px}.turn-title{font:500 clamp(24px,3vw,38px)/1.15 var(--mono);letter-spacing:-.05em;margin:8px 0 13px;overflow-wrap:anywhere}.turn-detail{color:var(--muted);font-size:14px;line-height:1.6;margin:10px 0 20px}.dice{display:flex;justify-content:center;gap:12px;margin:22px 0}.die{width:56px;height:56px;border:1px solid var(--ink);display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);padding:10px;gap:4px;background:var(--paper);box-shadow:3px 3px 0 var(--line)}.pip{width:100%;aspect-ratio:1;background:var(--ink);border-radius:50%}.rolling .die{animation:dice-shake .45s ease-in-out}.center-rule{width:44px;height:1px;background:var(--line);margin:22px auto}.room-code-center{font:24px var(--mono);letter-spacing:.2em;margin:20px 0}.lobby-names{font-size:14px;color:var(--muted)}.center-balance{font:12px var(--mono);color:var(--muted);margin-top:18px}.auction-bid{display:flex;gap:8px;max-width:270px;margin:14px auto}.auction-bid input{min-width:0;width:100%;border:1px solid var(--line);background:var(--paper);padding:10px;font:16px var(--mono)}.game-footer{font:11px var(--mono);margin-top:32px;padding-top:16px;display:flex;gap:14px;flex-wrap:wrap;justify-content:space-between}.game-footer a{text-decoration:none;color:var(--muted)}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:20;background:var(--ink);color:var(--paper);border:1px solid var(--line);padding:14px 20px;box-shadow:0 5px 25px #0003;max-width:min(550px,90vw);font-size:14px}dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:24px;width:min(580px,calc(100vw - 30px));max-height:85vh;font:15px/1.7 var(--sans)}dialog::backdrop{background:#0008;backdrop-filter:blur(3px)}.modal-top{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:20px}.icon-button{border:0;background:transparent;font:26px var(--mono);padding:0 4px}.rules-list{padding-left:23px}.rules-list li{margin:12px 0}.trade-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.trade-check{display:flex;gap:8px;font-size:13px;margin:8px 0;align-items:center}.trade-offer{border-top:1px solid var(--line);margin-top:15px;padding-top:15px}.trade-summary{padding:12px;background:var(--wash);font-size:14px;margin:10px 0}.small-muted{font:11px/1.6 var(--mono);color:var(--muted)}.mobile-only{display:none}.local-players{display:grid;grid-template-columns:1fr 1fr;gap:8px}.local-players .field{margin-bottom:4px}.local-players input{padding:7px}.turn-pill{font:10px var(--mono);border:1px solid var(--line);padding:3px 6px;color:var(--muted)}
@keyframes dice-shake{0%,100%{transform:rotate(0)}30%{transform:rotate(12deg) translateY(-5px)}65%{transform:rotate(-8deg)}}
@media(min-width:1500px){.game-container{padding-top:52px}}@media(max-width:1050px){.game-container{padding:30px 22px 20px}.game-layout{grid-template-columns:minmax(0,1fr) 235px;gap:20px}.board-center{padding:18px}.space{font-size:10px}.space-price{font-size:8px}.game-title{font-size:38px}.intro{font-size:14px;margin-bottom:15px}.brand-mark{margin-bottom:12px}.setup-form .field{margin-bottom:10px}.button{padding:10px}.fine-print{margin-top:12px}.board-foot .mono{display:none}}
@media(max-width:850px){.game-layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.sidebar>div{min-width:0}.sidebar .panel{border-top:1px solid var(--line);padding-top:17px}.board-center{padding:25px}.game-title{font-size:48px}.space{font-size:11px}.space-price{font-size:10px}.board-foot .mono{display:inline}.center-content{max-width:380px}.game-header .header-left h1{font-size:17px}.game-nav{margin-bottom:22px}}
@media(max-width:520px){.game-container{padding:25px 14px 18px}.game-header .header-left h1{font-size:15px}.game-header .tagline{font-size:10px}.toggles{font-size:10px;gap:4px}.toggle-row{gap:7px}.game-nav .site-nav{font-size:12px;gap:15px}.text-button{font-size:10px}.table-heading{align-items:start}.table-heading .eyebrow{font-size:9px;letter-spacing:.05em}.table-heading #connection{font-size:9px;max-width:160px}.board{aspect-ratio:auto;min-height:530px;grid-template-columns:1.15fr repeat(9,1fr) 1.15fr;grid-template-rows:44px repeat(9,1fr) 44px}.space{padding:6px 1px 2px;justify-content:center}.space-name{display:none}.space-price{font-size:8px}.space-icon{font-size:16px}.space.corner .space-name{display:block;font-size:8px}.space.corner .space-price{display:none}.space::before{height:4px}.space .mobile-only{display:block;font:9px var(--mono);color:var(--muted)}.tokens{bottom:4px;gap:1px}.token{width:12px;height:12px;font-size:8px}.tokens:has(.token)~.space-price{visibility:hidden}.building-marks{font-size:7px}.board-center{padding:16px 11px}.game-title{font-size:34px}.brand-mark{font-size:9px;margin-bottom:15px}.intro{font-size:13px;margin-bottom:16px}.setup-form{max-width:240px}.field{font-size:11px}.field input,.field select{padding:9px;font-size:14px}.button{font-size:11px;padding:10px}.fine-print{font-size:9px}.local-link{font-size:10px;margin-top:13px}.board-foot{font-size:9px}.board-foot .mono{display:none}.sidebar{gap:0 20px}.sidebar>#property-panel,.sidebar>#portfolio-panel,.sidebar>#activity-panel{grid-column:1/-1}.turn-title{font-size:27px}.turn-detail{font-size:13px}.center-label{font-size:9px}.game-footer{font-size:10px}.player-row{gap:6px;grid-template-columns:19px 1fr auto}.player-row .token{width:18px;height:18px;font-size:10px}.player-name{font-size:12px}.player-cash{font-size:11px}.player-meta{font-size:9px}.panel .large-code{font-size:16px;letter-spacing:.08em}.panel p{font-size:12px}.panel h2{font-size:10px}.panel .button{font-size:10px;padding:8px}.local-players{gap:5px}.local-players .field input{padding:6px}.local-players .field{font-size:10px}.game-nav #rules-button{font-size:10px}.die{width:48px;height:48px;padding:9px}.turn-pill{font-size:8px}.trade-columns{gap:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
