:root{--paper: #e9e3d4;--board: #c9e3c8;--board-edge: #b6d6b6;--cell: #fbf9f0;--panel: #fffdf6;--card: #ffffff;--field: #ffffff;--ink: #16130f;--dim: #6b6455;--rule: #14110d;--hair: #cdc5b2;--red: #c8102e;--gold: #a8791b;--jp: #b3123c;--us: #1a4f9c;--ok: #17803d;--err: #c8102e;--up: #d32f2f;--down: #1565c0;--num: "SF Mono", "JetBrains Mono", "Roboto Mono", ui-monospace, Menlo, monospace;font-family:Futura,Avenir Next,Helvetica Neue,-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,system-ui,sans-serif}.topbar,.right,.center-page.trading{--paper: #0e1720;--panel: #16232f;--card: #1c2c3a;--field: #0a1219;--ink: #e7eef5;--dim: #8ea3b6;--rule: #31465a;--hair: #2a3b4b;--gold: #e8b23a;--red: #e0344f;--up: #ff6b6b;--down: #4fa8ff;color:var(--ink)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1400px 700px at 50% -15%,#f4f0e3,var(--paper)) fixed;color:var(--ink);font-size:14px}h1,h2,h3{letter-spacing:.04em}button{font:inherit;font-weight:700;background:var(--panel);color:var(--ink);border:2px solid var(--rule);border-radius:3px;padding:5px 12px;cursor:pointer;box-shadow:2px 2px #0a0e1473;transition:transform .06s,box-shadow .06s,background .12s}button:hover:not(:disabled){filter:brightness(1.08)}button:active:not(:disabled){transform:translate(2px,2px);box-shadow:none}button:disabled{opacity:.38;cursor:not-allowed;box-shadow:none}button.primary{background:var(--red);border-color:var(--rule);color:#fff}button.danger{background:#7d1128;color:#fff}button.ghost{background:transparent;box-shadow:none;border-style:dashed}button.sm{padding:2px 8px;font-size:12px;box-shadow:1px 1px #0a0e1466}button.primary:not(.sm):not(.noenter):not(:disabled):after{content:" ⏎";opacity:.75;font-size:.9em}button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}input,select,textarea{font:inherit;background:var(--field);color:var(--ink);border:2px solid var(--rule);border-radius:3px;padding:4px 8px}input[type=number]{width:120px;font-family:var(--num)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--red)}label{color:var(--dim);font-weight:600}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:12px;padding:7px 14px;background:linear-gradient(180deg,#1b2b39,#0d1620);border-bottom:2px solid var(--gold);box-shadow:0 3px 12px #00000059;flex-wrap:wrap;z-index:5}.brand{font-weight:900;letter-spacing:.16em;font-size:16px;background:var(--red);color:#fff;padding:3px 12px;border:2px solid #000;border-radius:2px;transform:skew(-8deg);box-shadow:2px 2px #00000080}.spacer{flex:1}.topbar>.dim{color:var(--gold);font-weight:800;font-family:var(--num)}.macro{display:flex;gap:7px;flex-wrap:wrap}.stat{background:var(--card);border:1px solid var(--rule);border-radius:3px;padding:2px 10px;min-width:84px}.stat .k{font-size:9px;color:var(--gold);letter-spacing:.1em;font-weight:800;text-transform:uppercase}.stat .v{font-size:15px;font-weight:700;font-family:var(--num)}.layout{display:flex;flex:1;min-height:0}.left{flex:1 1 auto;min-width:0;padding:14px;overflow:auto}.right{width:410px;flex:none;background:var(--paper);border-left:2px solid var(--gold);display:flex;flex-direction:column;min-height:0}.board{display:grid;grid-template-columns:15% repeat(9,1fr) 15%;grid-template-rows:15% repeat(9,1fr) 15%;aspect-ratio:1 / 1;max-width:min(84vh,100%);margin:0 auto;background:var(--board);border:6px solid var(--rule);border-radius:3px;box-shadow:0 10px 30px #00000059,inset 0 0 60px #00000012}.cell{background:var(--cell);border:1px solid var(--rule);position:relative;overflow:hidden;display:flex;font-size:8.5px;line-height:1.1;cursor:pointer}.cell:hover{background:#fffef7}.cell.sel{background:#fff4bf}.side-bottom{flex-direction:column}.side-top{flex-direction:column-reverse}.side-left{flex-direction:row-reverse}.side-right{flex-direction:row}.cell.corner{flex-direction:column}.cell-body{flex:1 1 auto;min-width:0;min-height:0;overflow:hidden;position:relative;padding:2px 3px;display:flex;flex-direction:column}.cell .nm{font-weight:800;word-break:break-word;letter-spacing:-.02em;font-size:clamp(9px,1.3vh,15px);line-height:1.08}.cell .pr{color:var(--dim);font-family:var(--num);font-weight:600;margin-top:2px;font-size:clamp(8px,1.02vh,12px)}.cell.corner .cell-body{align-items:center;justify-content:center;text-align:center;font-size:clamp(10px,1.5vh,17px);font-weight:900;letter-spacing:.04em}.cell.corner.go .cell-body{color:var(--red)}.cell.corner .cell-body .go-arrow{font-size:1.6em;line-height:1}.cell-band{flex:0 0 21%;display:flex;align-items:center;justify-content:center;gap:2px}.side-bottom .cell-band{border-bottom:1px solid var(--rule)}.side-top .cell-band{border-top:1px solid var(--rule)}.side-left .cell-band{border-left:1px solid var(--rule);flex-direction:column}.side-right .cell-band{border-right:1px solid var(--rule);flex-direction:column}.house{width:5px;height:5px;background:#1fb25a;border:1px solid var(--rule);border-radius:1px}.hotel{width:13px;height:6px;background:var(--red);border:1px solid var(--rule);border-radius:1px}.cell.owned{box-shadow:inset 0 0 0 4px var(--own)}.cell.mortgaged{background:repeating-linear-gradient(45deg,#e9e2d2 0 4px,var(--cell) 4px 9px)}.mortgage-mark{position:absolute;left:2px;bottom:2px;font-size:10px;line-height:1;filter:grayscale(1);opacity:.9}.owner-badge{position:absolute;width:15px;height:15px;border-radius:50%;border:2px solid var(--rule);background:var(--own);color:#fff;font-size:9px;font-weight:900;display:flex;align-items:center;justify-content:center;text-shadow:0 1px 1px rgba(0,0,0,.6)}.side-left .owner-badge,.side-top .owner-badge{left:2px;top:2px}.side-right .owner-badge{right:2px;top:2px}.side-bottom .owner-badge{right:2px;bottom:2px}.tokens{position:absolute;inset:auto 0 0 0;display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:2px;padding:2px;pointer-events:none}.token{width:20px;height:20px;border-radius:50%;border:2px solid var(--rule);box-shadow:0 2px 4px #00000080,inset 0 2px 3px #ffffff59;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:900;text-shadow:0 1px 2px rgba(0,0,0,.75)}.token.sm-token{width:14px;height:14px;font-size:9px;box-shadow:none;border-width:1px}.center{grid-column:2 / 11;grid-row:2 / 11;background:repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 2px,transparent 2px 6px),var(--board);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:12px;overflow:auto}.center-logo{background:var(--red);color:#fff;font-weight:900;letter-spacing:.2em;font-size:clamp(14px,2.5vh,27px);padding:6px 36px;border:3px solid var(--rule);transform:rotate(-8deg);box-shadow:3px 5px #14110d80,inset 0 0 0 1px #ffffff59}.regionCards{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.regionCard{background:var(--panel);border:2px solid var(--rule);border-radius:3px;min-width:162px;overflow:hidden;box-shadow:2px 3px #14110d66}.regionCard h3{margin:0;font-size:11px;letter-spacing:.12em;padding:3px 8px;color:#fff;background:var(--ink);text-align:center;font-weight:900}.regionCard h3.jp{background:var(--jp)}.regionCard h3.us{background:var(--us)}.regionCard h3.fxh{background:#12202c;color:#e8b23a}.regionCard .row{display:flex;justify-content:space-between;font-size:11.5px;padding:1px 8px;font-weight:600}.regionCard .row b{font-family:var(--num)}.regionCard .row.big b{font-size:15px}.panel{border-bottom:1px solid var(--hair);padding:9px 11px;background:var(--panel)}.panel h3{margin:0 0 7px;font-size:11px;letter-spacing:.12em;color:var(--gold);text-transform:uppercase;font-weight:800}.scroll{flex:1;overflow:auto;min-height:0}.pcard{border:1px solid var(--rule);border-radius:3px;margin-bottom:6px;background:var(--card);overflow:hidden;box-shadow:0 2px 6px #0000004d}.pcard .hd{display:flex;align-items:center;gap:7px;padding:3px 7px;color:#fff;font-weight:900;font-size:13px;text-shadow:0 1px 2px rgba(0,0,0,.5)}.pcard .bd{padding:4px 7px 6px}.pcard.active{box-shadow:0 0 0 2px var(--gold),0 2px 8px #0006}.pcard.bankrupt{opacity:.45}.pcard .cash{display:flex;gap:12px;font-family:var(--num);font-weight:600}.pcard .props{margin-top:4px;display:flex;gap:3px;flex-wrap:wrap}.chip{font-size:10px;padding:1px 5px;border-radius:2px;background:#ffffff0f;color:var(--ink);border:1px solid var(--hair);border-left:5px solid var(--hair);font-weight:700}.actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.thinking{display:flex;align-items:center;gap:8px;margin:8px 0 0;font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--gold)}.thinking:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--gold);animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.2;transform:scale(.75)}50%{opacity:1;transform:scale(1.15)}}.dice-box{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--rule);border-radius:5px;padding:8px 14px;box-shadow:0 2px 8px #0000004d}.dice-box.empty{justify-content:center;padding:16px;border-style:dashed;box-shadow:none;background:transparent;color:var(--dim)}.die{width:54px;height:54px;background:#fff;border:2px solid #111;border-radius:10px;padding:6px;display:grid;gap:2px;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);box-shadow:2px 3px #00000073,inset 0 -6px 10px #00000012}.pip{border-radius:50%}.pip.on{background:#111}.dice-sum{display:flex;flex-direction:column;align-items:center;line-height:1}.dice-sum .k{font-size:10px;color:var(--gold);font-weight:800;letter-spacing:.1em}.dice-sum b{font-size:30px;font-weight:900;font-family:var(--num)}.log{font-size:12px}.log .entry{padding:2px 0;border-bottom:1px dotted var(--hair);color:var(--dim)}.log .entry b{color:var(--ink);font-weight:500}.log .r{color:var(--gold);font-weight:800;font-family:var(--num)}.modalWrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c12ad;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--panel);border:3px solid var(--rule);border-radius:4px;padding:16px 18px;max-width:720px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 24px 60px #0000008c}.modal h2{margin:-16px -18px 12px;padding:8px 18px;font-size:16px;background:var(--red);color:#fff;letter-spacing:.06em;border-bottom:2px solid var(--rule)}.modal .note{color:var(--dim);font-size:12px}table{border-collapse:collapse;width:100%;font-size:12px}th,td{border-bottom:1px solid var(--hair);padding:4px 6px;text-align:left}th{color:var(--dim);font-weight:700}td.num,th.num{text-align:right;font-family:var(--num)}.tabs{display:flex;gap:5px}.center-page{max-width:960px;margin:0 auto;padding:22px}.center-page h1{color:var(--red);letter-spacing:.1em;font-weight:900}.center-page.trading{background:linear-gradient(180deg,#14212c,var(--paper));border:2px solid var(--gold);border-radius:6px;margin:14px auto;box-shadow:0 14px 40px #0006}.center-page.trading h1{color:var(--gold)}.grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:6px}.field{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:3px 0}.badge{padding:1px 6px;border-radius:2px;font-size:10px;border:1px solid var(--rule);font-weight:800}.badge.jp{color:#fff;background:var(--jp)}.badge.us{color:#fff;background:var(--us)}.badge.err{color:#fff;background:var(--err)}.badge.ok{color:#fff;background:var(--ok)}.badge.cpu{color:#0e1720;background:var(--gold);border-color:#6b4c0d;letter-spacing:.1em}.mono{font-family:var(--num)}.up{color:var(--up)}.down{color:var(--down)}.err{color:var(--err);font-weight:700}.ok{color:var(--ok);font-weight:700}.dim{color:var(--dim)}.hr{height:1px;background:var(--hair);margin:9px 0}.title-hero{background:linear-gradient(180deg,#1b2b39,#0d1620);color:#fff;border:2px solid var(--gold);border-radius:4px;padding:28px 20px;box-shadow:0 16px 44px #00000073;margin-bottom:26px}.title-hero h1{color:#fff;font-size:46px;margin:0;letter-spacing:.16em;text-shadow:0 3px 0 var(--red)}.title-hero p{margin:8px 0 0;color:#e8b23a;font-weight:700;letter-spacing:.06em}@media (max-width: 1000px){.layout{flex-direction:column}.right{width:auto;border-left:none;border-top:2px solid var(--gold);max-height:48vh}.board{max-width:100%}}.modal:focus{outline:none}.cell.chance .cell-body{background:#f7941d1f}.cell.chest .cell-body{background:#4fa8ff1f}.cell.gotojail .cell-body{color:var(--red)}.card-icon{font-size:1.5em;line-height:1;font-weight:900}.card-draw{border:3px solid var(--rule);border-radius:4px;background:var(--card);padding:16px;margin-bottom:10px;box-shadow:3px 3px #14110d59}.card-title{font-size:18px;font-weight:900;margin-bottom:6px}.card-text{font-size:13px;color:var(--dim)}.jail-note{margin-top:8px;padding:6px 8px;border:1px solid var(--err);border-radius:3px;font-size:12px;font-weight:700;color:var(--err);background:#c8102e14}
