:root{--panel:#2c1b10e6;--panel-solid:#2c1b10;--line:#ffe2b429;--text:#f8ecd4;--muted:#cdb48c;--accent:#ffb938;--accent-text:#3b2a00;--good:#4ac28a;--bad:#ef5b62;--radius:12px;color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{background:#2a1a10 50%/cover no-repeat}#app{position:fixed;inset:0}#app canvas{display:block}.hidden{display:none!important}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}button{font:inherit;color:var(--text);cursor:pointer;border:1px solid var(--line);background:#ffffff1a;border-radius:10px;padding:8px 14px;font-weight:650;transition:transform 60ms,background .15s}button:hover:not(:disabled){background:#fff3}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-text);border-color:#0000}button.primary:hover:not(:disabled){background:#ffc85f}button.danger{background:#ef5b6238;border-color:#ef5b6280}button.good{background:#4ac28a40;border-color:#4ac28a8c}.icon-btn{border-radius:50%;place-items:center;width:40px;height:40px;padding:0;font-size:20px;display:grid}.icon-btn img{object-fit:contain;width:26px;height:26px}input,select{font:inherit;color:var(--text);border:1px solid var(--line);background:#0000004d;border-radius:10px;outline:none;min-width:0;padding:9px 12px}input:focus,select:focus{border-color:var(--accent)}select option{color:#111}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 30px #0000004d}.center-screen{place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow:auto}.card{gap:14px;width:min(460px,100%);padding:26px;display:grid}.card h1{letter-spacing:.5px;margin:0;font-size:34px}.card h2{margin:0;font-size:20px}.muted{color:var(--muted)}.row{align-items:center;gap:10px;display:flex}.row>input{flex:1}.error{color:#ff9aa0;min-height:1.2em;font-size:14px}.logo{align-items:center;gap:14px;display:flex}.logo img{object-fit:contain;width:64px;height:64px}.sub{color:var(--muted);margin:4px 0 0}.modal-backdrop{z-index:30;background:#160c0699;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel-solid);border:1px solid var(--line);border-radius:16px;gap:12px;max-width:min(760px,100%);max-height:88vh;padding:18px;display:grid;overflow:auto;box-shadow:0 20px 60px #00000080}.modal-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.modal-head h2{margin:0;font-size:19px}.lobby{width:min(640px,100%)}.code-box{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.code{letter-spacing:8px;background:#0000004d;border-radius:12px;padding:2px 14px;font-size:44px;font-weight:800}.seats{gap:8px;display:grid}.seat{background:#ffffff12;border:2px solid #0000;border-radius:12px;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:8px 12px;display:grid}.seat.empty{opacity:.45;border:2px dashed var(--line);background:0 0}.seat img.tok{object-fit:contain;width:44px;height:44px}.seat .nm{flex-wrap:wrap;align-items:center;gap:8px;font-weight:700;display:flex}.tag{text-transform:uppercase;letter-spacing:.5px;background:#ffffff26;border-radius:99px;padding:2px 7px;font-size:11px;font-weight:800}.tag.ready{color:#8ff0bf;background:#4ac28a4d}.tag.host{color:#ffd98a;background:#ffb9384d}.tag.away{color:#ff9aa0;background:#ef5b624d}.tokens{flex-wrap:wrap;gap:6px;display:flex}.tokens button{border-radius:12px;width:46px;height:46px;padding:4px}.tokens button.selected{outline:3px solid var(--accent)}.tokens img{object-fit:contain;width:100%;height:100%}.hud-top{pointer-events:none;justify-content:space-between;align-items:flex-start;gap:10px;display:flex;position:fixed;top:10px;left:10px;right:10px}.hud-top>*{pointer-events:auto}.players{gap:8px;width:270px;display:grid}.pcard{border:2px solid #0000;border-radius:12px;padding:8px 10px;position:relative}.pcard.active{box-shadow:0 0 0 2px var(--c,#fff), 0 8px 22px #00000059}.pcard.out{opacity:.4}.pcard .top{grid-template-columns:38px 1fr auto;align-items:center;gap:8px;display:grid}.pcard img.tok{object-fit:contain;width:38px;height:38px}.pcard .name{flex-wrap:wrap;align-items:center;gap:6px;font-weight:750;line-height:1.1;display:flex}.pcard .cash{font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-weight:800;display:flex}.pcard .cash img{width:18px;height:18px}.pcard .floater{pointer-events:none;text-shadow:0 1px 4px #0009;font-weight:800;animation:1.6s ease-out forwards floatup;position:absolute;top:4px;right:10px}.floater.plus{color:#7dffb8}.floater.minus{color:#ff9aa0}@keyframes floatup{0%{opacity:0;transform:translateY(8px)}15%{opacity:1}to{opacity:0;transform:translateY(-26px)}}.toolbar{border-radius:99px;align-items:center;gap:8px;padding:6px 8px;display:flex}.timer{font-variant-numeric:tabular-nums;border-radius:99px;align-items:center;gap:6px;padding:4px 12px 4px 8px;font-weight:800;display:flex}.timer img{width:22px;height:22px}.timer.low{background:#ef5b6259;animation:1s infinite pulse}@keyframes pulse{50%{opacity:.65}}.actionbar{justify-items:center;gap:8px;min-width:min(560px,100vw - 20px);padding:10px 14px;display:grid;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}.actionbar .status{text-align:center;font-weight:650}.actionbar .status.mine{color:var(--accent)}.actionbar .status.debt{color:#ff9aa0}.actionbar .btns{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.actionbar .btns button{min-width:88px}.actionbar .btns img{vertical-align:middle;width:22px;height:22px;margin-right:6px}.log{flex-direction:column;width:300px;max-height:38vh;padding:8px 10px;display:flex;position:fixed;bottom:12px;right:10px}.log .lines{gap:3px;font-size:13px;display:grid;overflow-y:auto}.log .l.good{color:#8ff0bf}.log .l.bad{color:#ffaab0}.log .l.important{color:#ffd98a;font-weight:650}.log .l{line-height:1.25}.reactions{border-radius:99px;gap:6px;padding:6px 8px;display:flex;position:fixed;bottom:12px;left:10px}.reactions button{border-radius:50%;width:38px;height:38px;padding:0;font-size:20px}.card-toast{text-align:center;z-index:25;border-radius:16px;width:min(340px,100vw - 30px);padding:16px 18px;animation:.35s cubic-bezier(.2,1.4,.4,1) pop;position:fixed;top:90px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #00000073}.card-toast.chance{color:#2c1600;background:linear-gradient(160deg,#f7a23b,#e8761f)}.card-toast.chest{color:#fff;background:linear-gradient(160deg,#5f86d8,#3b5aa8)}.card-toast .deck{letter-spacing:1.5px;text-transform:uppercase;opacity:.8;font-size:12px;font-weight:800}.card-toast .txt{margin-top:6px;font-size:18px;font-weight:700}@keyframes pop{0%{opacity:0;transform:translate(-50%)scale(.6)}}.bubble{z-index:24;pointer-events:none;filter:drop-shadow(0 3px 6px #0006);font-size:34px;animation:2.4s ease-out forwards bub;position:fixed;transform:translate(-50%,-100%)}@keyframes bub{0%{opacity:0;margin-top:12px}12%{opacity:1;margin-top:0}80%{opacity:1}to{opacity:0;margin-top:-40px}}.overlay-msg{z-index:40;text-align:center;background:#160c06a6;place-items:center;padding:20px;font-size:22px;font-weight:700;display:grid;position:fixed;inset:0}.banner{text-align:center;background:var(--bad);color:#fff;z-index:35;padding:6px;font-weight:700;position:fixed;top:0;left:0;right:0}.toast{z-index:50;background:#ef5b62f2;border-radius:10px;max-width:90vw;padding:10px 16px;font-weight:650;position:fixed;top:60px;left:50%;transform:translate(-50%)}.win .trophy{object-fit:contain;width:110px;height:110px;margin:0 auto;display:block}.standings{gap:6px;display:grid}.standings .r{background:#ffffff12;border-radius:10px;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;padding:6px 10px;display:grid}.standings img{object-fit:contain;width:30px;height:30px}.group{background:#ffffff0d;border-radius:10px;gap:4px;padding:8px;display:grid}.group-head{align-items:center;gap:8px;font-weight:700;display:flex}.swatch{border:1px solid #0006;border-radius:4px;width:14px;height:14px;display:inline-block}.prop{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:8px;padding:4px 0;display:grid}.prop .nm{font-weight:650}.prop .meta{color:var(--muted);font-size:12px}.prop .acts{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.prop .acts button{padding:5px 9px;font-size:13px}.cols{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pick{align-items:center;gap:8px;padding:4px 0;font-size:14px;display:flex}.terms{gap:4px;display:grid}.terms .t{align-items:center;gap:8px;display:flex}.bidline{text-align:center;font-size:20px;font-weight:800}.chipsrow{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.deed{color:#2a1d10;background:#fbf3e0;border:2px solid #2a1d10;border-radius:10px;width:100%;font-size:13px;overflow:hidden;box-shadow:0 10px 28px #00000073}.deed-band{text-align:center;border-bottom:2px solid #2a1d10;padding:8px 10px 7px;position:relative}.deed-kind{letter-spacing:1.4px;text-transform:uppercase;opacity:.85;font-size:10px;font-weight:700}.deed-name{font-size:16px;font-weight:800;line-height:1.15}.deed-build{background:#00000059;border-radius:99px;padding:1px 7px;font-size:10px;font-weight:800;position:absolute;top:6px;right:8px}.deed-body{gap:2px;padding:8px 12px 6px;display:grid}.deed-row{border-radius:4px;justify-content:space-between;gap:10px;padding:1px 4px;display:flex}.deed-row.now{background:#ffd45e;outline:1px solid #c58f00}.deed-sep{border-top:1px dashed #2a1d1059;margin:4px 0}.deed-note{color:#6b5538;text-align:center;font-size:11px}.deed-big{text-align:center;padding:8px 0;font-size:22px;font-weight:800}.deed-foot{background:var(--c,#888);color:#fff;text-shadow:0 1px 2px #0000008c;justify-content:center;align-items:center;gap:8px;padding:7px 10px;font-weight:800;display:flex}.deed-foot.free{background:#2f7d57}.deed-foot img{object-fit:contain;width:24px;height:24px}.deed-modal{gap:10px;width:min(280px,80vw);margin:0 auto;display:grid}.landing{z-index:15;cursor:pointer;width:230px;animation:.4s cubic-bezier(.2,1.3,.4,1) deal;position:fixed;top:64px;right:10px}.landing-who{text-align:right;text-shadow:0 1px 3px #000000b3;margin:0 4px 4px;font-size:12px;font-weight:700}@keyframes deal{0%{opacity:0;transform:translateY(-14px)rotate(4deg)scale(.85)}}.sets{flex-wrap:wrap;gap:6px 9px;margin-top:6px;display:flex}.set{border-radius:6px;padding:2px;display:flex}.set.complete{background:#ffd45e38;box-shadow:0 0 0 1.5px #ffd45e}.mini{color:#2a1d10;cursor:pointer;background:#fbf3e0;border:1px solid #0000008c;border-radius:3px;padding:0;display:block;position:relative;overflow:hidden;box-shadow:1px 1px 2px #0006}.mini-band{border-bottom:1px solid #00000080;position:absolute;top:0;left:0;right:0}.mini:hover:not(:disabled){background:#fff8e8}.mini.sm{width:14px;height:20px}.mini.sm .mini-band{height:6px}.mini.sm+.mini.sm{margin-left:2px}.mini.md{width:54px;height:64px;font-size:9px;font-weight:700;line-height:1.05;transition:transform .12s,margin .12s}.mini.md+.mini.md{margin-left:-30px}.mini.md .mini-band{height:14px}.mini.md:hover{z-index:3;transform:translateY(-8px)scale(1.12)}.mini.md:hover+.mini.md{margin-left:-10px}.mini-name{text-align:left;overflow-wrap:anywhere;padding:3px 3px 0;font-size:8px;display:block;position:absolute;top:15px;left:0;right:0}.mini-glyph{text-align:center;font-size:12px;line-height:1;display:block}.mini.sm .mini-glyph{margin-top:2px;font-size:8px}.mini.md .mini-glyph{font-size:16px;position:absolute;bottom:3px;left:0;right:0}.mini-houses{justify-content:center;gap:1px;display:flex;position:absolute;bottom:2px;left:0;right:0}.mini-houses i{background:#2f9e57;border:1px solid #14502b;border-radius:1px;width:4px;height:4px}.mini-houses.hotel i{background:#d93a3a;border-color:#6d1010;width:9px;height:5px}.mini.md .mini-houses i{width:7px;height:7px}.mini.md .mini-houses.hotel i{width:16px;height:8px}.mini.mortgaged{filter:grayscale(.85);opacity:.55}.mini.mortgaged:after{content:"";background:repeating-linear-gradient(45deg,#0000 0 3px,#00000059 3px 5px);position:absolute;inset:0}.hand{width:270px;max-height:36vh;padding:8px 10px 10px;position:fixed;bottom:76px;left:10px;overflow:auto}.hand-head{align-items:center;gap:10px;font-size:13px;display:flex}.hand-head .grow{flex:1}button.link{color:var(--accent);cursor:pointer;box-shadow:none;background:0 0;border:none;padding:0;font-size:12px;font-weight:700}.hand .sets{padding-top:6px;padding-bottom:6px}#status{color:#284;z-index:5;text-shadow:0 1px 2px #fff9;font:13px system-ui,sans-serif;position:fixed;top:10px;left:12px}body{background-image:url(/assets/scene/background.webp)}.actionbar.busy .btns{opacity:.45;pointer-events:none}@media (width<=640px){.cols{grid-template-columns:1fr}.log{display:none}.hud-top{flex-direction:column;align-items:stretch;gap:6px;top:6px;left:6px;right:6px}.hud-top>.row{justify-content:flex-end}.players{gap:6px;width:100%;display:flex;overflow-x:auto}.pcard{flex:1 0 auto;min-width:0;padding:5px 8px}.pcard .top{grid-template-columns:26px auto;gap:6px}.pcard img.tok{width:26px;height:26px}.pcard .name{flex-wrap:nowrap;font-size:12px}.pcard .name .tag{display:none}.pcard .cash{grid-column:1/-1;font-size:13px}.pcard .cash img{width:14px;height:14px}.pcard .sets{display:none}.toolbar{gap:6px;padding:3px 6px}.toolbar .icon-btn,.icon-btn{width:34px;height:34px;font-size:16px}.timer{padding:2px 10px 2px 6px}.reactions{justify-content:space-between;padding:4px 6px;bottom:6px;left:6px;right:6px}.reactions button{width:34px;height:34px;font-size:17px}.actionbar{gap:6px;min-width:calc(100vw - 12px);padding:6px 8px;bottom:56px}.actionbar .status{font-size:14px}.actionbar .btns{gap:6px}.actionbar .btns button{min-width:0;padding:7px 10px;font-size:14px}.actionbar .btns img{width:18px;height:18px;margin-right:4px}.hand{width:auto;max-height:18vh;padding:6px 8px;bottom:160px;left:6px;right:6px}.mini.md{width:44px;height:54px}.mini.md+.mini.md{margin-left:-24px}.landing{width:170px;top:118px;right:6px}.landing .deed{font-size:11px}.landing .deed-name{font-size:14px}.card-toast{top:120px}.modal{max-height:86vh;overflow-y:auto}}
