:root{--bg: #12251f;--panel: #1d332c;--panel-2: #27443a;--ink: #eef6f1;--muted: #9fc0b2;--accent: #f4b740;--accent-2: #4ea1ff;--danger: #e2574c;--ok: #54b87a;--line: #35544a;--board-cream: #cfe3d3;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(1200px 700px at 20% -10%,#1c3d31 0%,transparent 60%),radial-gradient(1000px 600px at 110% 110%,#0e2a20 0%,transparent 55%),var(--bg);color:var(--ink)}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);border-radius:8px;padding:8px 12px;min-height:40px;transition:border-color .12s ease,transform .06s ease,background .12s ease}button:hover:not(:disabled){border-color:var(--accent)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);color:#1b2430;border-color:var(--accent);font-weight:600}button.primary:hover:not(:disabled){background:#ffc75a}button.ghost{background:transparent}button.icon{padding:4px 8px;min-height:34px}button.big{font-size:17px;padding:10px 18px}button.linkish{background:none;border:none;padding:0;min-height:0;color:var(--ink);text-decoration:underline dotted;font-weight:600}button.danger-outline{border-color:var(--danger);color:var(--danger);background:transparent}input,select{font:inherit;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 10px}h1,h2,h3,h4{font-weight:700}a{color:var(--accent-2)}.game-title{letter-spacing:1px}.game-title:before{content:"🎩 "}.center-screen{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:20px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;width:min(440px,92vw);box-shadow:0 18px 50px #0006}.card.wide{width:min(760px,96vw)}.row{display:flex;gap:10px;align-items:center}.col{display:flex;flex-direction:column;gap:10px}.spread{justify-content:space-between}.muted{color:var(--muted)}.pill{padding:2px 8px;border-radius:999px;background:var(--panel-2);font-size:12px}.pill.turn-pill{background:var(--accent);color:#1b2430;font-weight:700}.pill.jail-pill{background:#6b3f14;color:#ffd9a0}.tag{font-size:12px;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.on{background:var(--ok)}.dot.off{background:var(--danger)}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-btn{align-self:flex-start;padding:8px 12px;border-radius:8px;border:1px solid var(--line);cursor:pointer}.token-pick{padding:5px;min-height:44px;min-width:44px}.picked-row{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.game-grid{display:grid;grid-template-columns:290px 1fr 310px;grid-template-rows:1fr auto;gap:10px;height:100vh;height:100dvh;padding:10px}.left-col{grid-row:1 / 3;grid-column:1;display:flex;flex-direction:column;min-height:0}.left-col .hud-panel{flex:none;overflow-y:auto;max-height:60%}.board-wrap{grid-row:1;grid-column:2;display:grid;place-items:center;min-width:0;min-height:0;position:relative}.right-col{grid-row:1 / 3;grid-column:3;display:flex;flex-direction:column;gap:10px;min-height:0;overflow-y:auto}.right-col>.panel{flex:none}.bottom-bar{grid-row:2;grid-column:2;position:relative;z-index:8}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}.controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.banner{font-weight:600}.banner.mine{color:var(--accent)}.me-panel{font-size:14px}.networth-panel{font-size:13px}.networth-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.networth-row{display:flex;flex-direction:column;gap:3px}.networth-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.networth-name{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.networth-dot{width:9px;height:9px;border-radius:50%;flex:none;box-shadow:0 0 0 1px #0006 inset}.networth-piece{width:38px;height:30px;border-radius:9px;flex:none;border:2px solid;background:var(--panel-2);display:grid;place-items:center}.networth-piece img{width:32px;height:24px;object-fit:contain;display:block}.networth-row.bankrupt .networth-piece{filter:grayscale(1)}.networth-you{color:var(--muted);font-size:11px}.networth-val{font-variant-numeric:tabular-nums;white-space:nowrap}.networth-track{height:8px;border-radius:5px;background:var(--panel-2);overflow:hidden}.networth-fill{height:100%;border-radius:5px;transition:width .4s ease}.networth-row.bankrupt{opacity:.45}.networth-row.bankrupt .networth-fill{background:var(--line)!important}.board{position:relative;width:min(100cqw,100cqh,980px);max-width:100%;aspect-ratio:1 / 1;border-radius:6px;box-shadow:0 24px 70px #000a;-webkit-user-select:none;user-select:none}.board-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;border-radius:6px}.space-zone{position:absolute;background:transparent;border:none;border-radius:0;padding:0;min-height:0;cursor:pointer;z-index:3}.space-zone:hover{background:#f4b74026;outline:2px solid var(--accent);outline-offset:-2px}.owner-chip{position:absolute;z-index:2;display:grid;place-items:center;font-size:10px;font-weight:800;color:#fff;text-shadow:0 1px 2px #000c;opacity:.92;border-radius:2px;pointer-events:none}.mortgaged-overlay{position:absolute;z-index:2;background:#00000080;display:grid;place-items:center;pointer-events:none}.mortgaged-overlay span{color:#fdd;font-size:clamp(6px,1.1vmin,11px);font-weight:800;letter-spacing:1px;white-space:nowrap}.house-sprite{position:absolute;z-index:4;background:linear-gradient(#4fd07f,#1f8a4c);border:1px solid #0d4d28;border-radius:18%;box-shadow:0 1px 3px #0009;pointer-events:none}.hotel-sprite{position:absolute;z-index:4;background:linear-gradient(#ff6b5e,#c0271b);border:1px solid #6d130c;border-radius:14%;box-shadow:0 1px 3px #0009;pointer-events:none}.token-wrap{position:absolute;z-index:5;pointer-events:none;transition:left .55s ease,top .55s ease,width .3s ease,height .3s ease;filter:drop-shadow(0 2px 3px #000b)}.token-wrap img{width:100%;height:100%;object-fit:contain}.token-wrap:after{content:"";position:absolute;left:50%;bottom:-8%;transform:translate(-50%);width:78%;height:16%;border-radius:50%;background:var(--ring, #fff);opacity:.9;box-shadow:0 0 4px var(--ring, #fff)}.token-wrap.active:after{animation:ringpulse 1.6s ease-in-out infinite}@keyframes ringpulse{0%,to{opacity:.9}50%{opacity:.35}}.token-badge{display:inline-grid;place-items:center;flex:none;border-radius:50%;background:#ffffff14;border:2px solid var(--ring, #888);padding:2px}.token-badge img{width:82%;height:82%;object-fit:contain;filter:drop-shadow(0 1px 1px #0008)}.board-flash{position:absolute;top:14px;left:50%;transform:translate(-50%);background:#12251fee;border:1px solid var(--accent);color:var(--ink);padding:9px 18px;border-radius:999px;font-weight:600;pointer-events:none;box-shadow:0 6px 22px #0009;z-index:6;max-width:82%;text-align:center;animation:flashfade 3.4s ease forwards}@keyframes flashfade{0%{opacity:0;transform:translate(-50%) translateY(-8px) scale(.95)}9%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}78%{opacity:1}to{opacity:0}}.bot-banners{position:absolute;top:60px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:5px;align-items:center;z-index:6;pointer-events:none;width:max-content;max-width:86%}.bot-banner{background:#12251fee;border:1px solid var(--accent-2);color:var(--ink);padding:6px 14px;border-radius:999px;font-weight:600;font-size:13px;box-shadow:0 4px 16px #0009;max-width:100%;text-align:center;animation:botbanner 4.5s ease forwards}@keyframes botbanner{0%{opacity:0;transform:translateY(-6px)}6%{opacity:1;transform:none}85%{opacity:1}to{opacity:0}}.space-glow{position:absolute;z-index:3;pointer-events:none;border-radius:3px;outline:3px solid var(--accent-2);outline-offset:-1px;background:#4ea1ff2e;animation:spaceglow 3.2s ease forwards}@keyframes spaceglow{0%{opacity:0}8%{opacity:1}30%{opacity:.55}50%{opacity:1}80%{opacity:.8}to{opacity:0}}.board-dice{position:absolute;left:33%;top:78%;transform:translate(-50%,-50%);display:flex;gap:6%;align-items:center;z-index:4;pointer-events:none;animation:dicepop .5s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 3px 5px #0007)}.board-die{flex:1 1 0;min-width:0;aspect-ratio:1 / 1}.board-die>*{width:100%;height:100%}.board-dice-total{position:absolute;left:104%;top:50%;transform:translateY(-50%);background:#12251fd9;color:var(--ink);border:1px solid var(--line);border-radius:999px;font-weight:800;font-size:clamp(9px,1.7vmin,16px);padding:1px 8px;font-variant-numeric:tabular-nums}.board-dice-total.tumbling{opacity:.5}@keyframes dicepop{0%{transform:translate(-50%,-50%) scale(.4) rotate(-14deg);opacity:0}60%{transform:translate(-50%,-50%) scale(1.12) rotate(4deg);opacity:1}to{transform:translate(-50%,-50%) scale(1) rotate(0)}}.fp-pot{position:absolute;z-index:4;pointer-events:none;text-align:center;font-weight:800;font-size:clamp(10px,1.6vmin,15px);color:#ffe28a;background:#12251fd9;border:1px solid #e0b64c88;border-radius:10px;padding:2px 0;text-shadow:0 1px 2px #000}.timer-pill{font-variant-numeric:tabular-nums}.timer-pill.low{background:#7a2c2c;color:#ffd9d9;animation:timerblink 1s linear infinite}@keyframes timerblink{50%{opacity:.55}}.board.picking{outline:3px dashed var(--accent);outline-offset:-3px;cursor:crosshair}.space-pick{position:absolute;z-index:4;pointer-events:none;border-radius:3px;outline:3px solid var(--accent);outline-offset:-1px;background:#f4b74030;display:grid;place-items:center;animation:pickpulse 1.1s ease-in-out infinite}.space-pick-label{background:#12251fe0;color:var(--ink);font-weight:800;font-size:clamp(7px,1.4vmin,13px);padding:1px 7px;border-radius:999px;border:1px solid var(--accent);white-space:nowrap}@keyframes pickpulse{0%,to{outline-color:var(--accent);background:#f4b74030}50%{outline-color:#ffe9a8;background:#f4b74055}}.space-pick.dim{animation:none;opacity:.35}.space-pick.selected{z-index:5;outline:4px solid #ffe9a8;background:#f4b74060;box-shadow:0 0 0 4px #f4b74066,0 0 22px #f4b740aa;animation:pickselected .8s ease-in-out infinite}.space-pick.selected .space-pick-label{border-color:#ffe9a8;font-weight:900}@keyframes pickselected{0%,to{box-shadow:0 0 0 4px #f4b74066,0 0 22px #f4b740aa}50%{box-shadow:0 0 0 7px #f4b74088,0 0 32px #f4b740}}.pick-confirm-float{position:absolute;bottom:14px;left:50%;transform:translate(-50%);z-index:8;box-shadow:0 8px 26px #000a;max-width:94%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.controls button.selected-pick{outline:3px solid #ffe9a8;outline-offset:1px;box-shadow:0 0 12px #f4b740aa}.bankrupt-pop{position:fixed;top:32%;left:50%;transform:translate(-50%,-50%);z-index:30;cursor:pointer;background:#2a1518f2;border:2px solid var(--danger);color:#ffdcd8;border-radius:16px;padding:16px 28px;text-align:center;box-shadow:0 14px 44px #000c,0 0 30px #e2574c33;max-width:min(440px,92vw);animation:bankruptin 5.6s ease forwards}.bankrupt-pop-title{font-size:21px;font-weight:900;letter-spacing:.5px}.bankrupt-pop-sub{font-size:13.5px;color:#eba9a2;margin-top:5px}@keyframes bankruptin{0%{opacity:0;transform:translate(-50%,-50%) scale(.75)}7%{opacity:1;transform:translate(-50%,-50%) scale(1)}90%{opacity:1}to{opacity:0}}.bank-auction-note{margin:10px 0 2px;padding:8px 10px;border:1px solid var(--accent);border-radius:8px;background:#f4b74014;font-size:13px}.hud-player{padding:8px;border-radius:10px;border:1px solid var(--line);margin-bottom:8px;background:#ffffff06}.hud-player.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset,0 0 18px #f4b74022}.clickable{cursor:pointer}.clickable:hover{border-color:var(--accent)}.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.hud-player.bankrupt{opacity:.55}.group-dot{width:12px;height:12px;border-radius:3px;border:1px solid #0008;display:inline-block;flex:none}.holdings{display:flex;gap:3px;flex-wrap:wrap;margin-top:6px;align-items:center}.hold-chip{position:relative;display:inline-flex;align-items:center;gap:1px;min-width:26px;height:18px;padding:0 4px;justify-content:center;border:1px solid #0008;border-radius:4px;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.hold-chip.empty{opacity:.22}.hold-chip.mono{outline:2px solid var(--accent);outline-offset:1px;box-shadow:0 0 6px #f4b74088}.hold-star{font-size:9px;margin-left:1px}.hold-glyph{font-size:10px}.hold-chip.has-mortgage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:3px;background:linear-gradient(to top right,transparent 44%,#12251fd9 44%,#12251fd9 56%,transparent 56%);pointer-events:none}.hold-chip.extra{background:var(--panel-2);color:var(--ink);border-color:var(--line)}.bot-thinking{display:inline-flex;align-items:baseline}.think-dots:after{content:"…";display:inline-block;overflow:hidden;vertical-align:bottom;animation:thinkdots 1.4s steps(4,end) infinite;width:0}@keyframes thinkdots{to{width:1.1em}}.feed-panel{flex:1;display:flex;flex-direction:column;min-height:0;margin-top:10px}.feed{flex:1;overflow-y:auto;font-size:13px;line-height:1.5;min-height:60px}.feed div{padding:2px 0;border-bottom:1px solid #ffffff0d}.feed .chat-line{color:#ffd400;font-weight:600}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;z-index:40;padding:12px}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;width:min(520px,94vw);max-height:92dvh;overflow-y:auto}.deed-modal{width:min(340px,94vw)}.manage-modal{width:min(560px,96vw)}.trade-modal{width:min(680px,96vw)}.auction-modal{width:min(640px,96vw)}.manage-body{display:flex;flex-direction:column;gap:10px;margin-top:10px}.deed{background:#f8f4e6;color:#22261f;border:2px solid #22261f;border-radius:8px;padding:7px;font-size:13px;width:100%}.deed-band{border:1.5px solid #22261f;border-radius:4px;text-align:center;padding:7px 6px}.deed-band-rr{background:#111;color:#fff}.deed-band-util{background:#dfe4ea;color:#1b2430}.deed-band-plain{background:var(--board-cream);color:#1b2430}.deed-td{font-size:9px;letter-spacing:2px;opacity:.9}.deed-name{font-weight:800;font-size:15px;letter-spacing:.5px;text-transform:uppercase}.deed-body{padding:8px 6px 2px}.deed-row{display:flex;justify-content:space-between;gap:8px;padding:1.5px 4px;border-radius:4px}.deed-row.hot{background:#f4b740;font-weight:700}.deed-sep{border-top:1px solid #22261f33;margin:6px 2px}.deed-fine{font-size:10.5px;color:#4a4f43;margin:6px 2px 2px;line-height:1.35}.hand-modal{width:min(860px,96vw)}.hand-summary{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 4px}.hand-summary .pill{font-size:13px}.hand-goojf{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 2px}.goojf-card{display:inline-flex;flex-direction:column;gap:2px;background:#f8f4e6;color:#22261f;border:2px solid #22261f;border-radius:8px;padding:8px 12px;font-weight:800;font-size:13px}.goojf-card .tag{color:#4a4f43;font-weight:600}.hand-group{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:10px}.hand-group-head{border-radius:0}.hand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;padding:10px}.hand-deed{position:relative;display:flex;flex-direction:column;gap:6px}.hand-deed.mortgaged .deed{opacity:.55}.hand-mortgage-banner{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%) rotate(-12deg);background:#000000d9;color:#fdd;font-weight:800;letter-spacing:2px;font-size:13px;padding:3px 12px;border-radius:4px;pointer-events:none}.hand-buildings{font-size:13px;font-weight:700;color:var(--ink)}@media(max-width:900px){.hand-modal{width:100vw;max-height:100dvh;height:100dvh;border-radius:0;border-left:none;border-right:none}.hand-grid{grid-template-columns:1fr}}.variant-warn{grid-column:1 / -1;background:#6b3f14;color:#ffd9a0;border:1px solid #e0b64c88;border-radius:8px;font-size:13px;font-weight:600;padding:6px 10px}.feed-note{color:var(--accent);font-weight:600}.manage-group{border:1px solid var(--line);border-radius:10px;overflow:hidden}.manage-group-head{display:flex;justify-content:space-between;padding:5px 10px;font-size:12px;font-weight:700}.manage-lot{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-top:1px solid #ffffff10;overflow:visible}.manage-lot .row.spread{min-height:24px;flex-wrap:wrap}.manage-lot button{min-height:36px;padding:5px 9px;font-size:13px;flex:none}@media(max-width:900px){.manage-modal{width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border-left:none;border-right:none}.manage-lot button{min-height:44px}}.trade-panel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset,0 0 20px #f4b74033;animation:tradein .25s ease}@keyframes tradein{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.trade-terms{display:flex;align-items:flex-start;gap:10px;margin-top:8px;padding:8px;border-radius:8px;background:#ffffff08}.trade-side{flex:1;min-width:0}.trade-arrow{font-size:20px;color:var(--accent);flex:none;align-self:center}.trade-bundle{display:flex;flex-direction:column;gap:3px;font-size:13px;font-weight:600;margin-top:3px}.trade-columns{display:flex;gap:14px;margin-top:10px}.trade-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;max-height:46dvh;overflow-y:auto;padding-right:4px}.trade-col h4{margin:0 0 2px}.trade-deed-row{display:flex;gap:6px;align-items:center;font-size:13px}.auction-body{display:flex;gap:14px;align-items:flex-start}.auction-deed{width:220px;flex:none}.auction-state{flex:1;min-width:0}.auction-highbid{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.auction-bidder{padding:4px 8px;border-radius:8px;border:1px solid transparent}.auction-bidder.turn{border-color:var(--accent);background:#f4b74014}.debt-banner{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:30;border-color:var(--danger);box-shadow:0 0 18px #e2574c44;max-width:min(560px,92vw)}.draw-pile{position:absolute;z-index:2;pointer-events:none;width:16.5%;aspect-ratio:1.55 / 1;transform:translate(-50%,-50%) rotate(-45deg);filter:drop-shadow(0 3px 4px #0006)}.pile-card{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6%/9%;border:1px solid #00000066;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4%;padding:2% 6%;box-shadow:0 1px 3px #0006}.draw-pile.chance .pile-card{background:linear-gradient(135deg,#f7941d,#ef5a24 70%,#e0451d);color:#fff;text-shadow:0 1px 2px #0008}.draw-pile.chest .pile-card{background:linear-gradient(135deg,#d9edf9,#b5d6ec 70%,#a3cbe5);color:#1b3a55}.pile-card.under1{transform:translate(2.4%,-4%) rotate(1.7deg);filter:brightness(.93)}.pile-card.under2{transform:translate(-2.6%,4%) rotate(-2.2deg);filter:brightness(.86)}.pile-glyph{height:48%;width:auto;object-fit:contain}.pile-word{font-weight:800;letter-spacing:.13em;font-size:clamp(3px,1vmin,11px);text-align:center;line-height:1.15;white-space:nowrap}.pile-count{position:absolute;left:50%;top:103%;transform:translate(-50%,-50%) rotate(45deg);background:#12251fb0;color:var(--muted);border:1px solid #ffffff22;border-radius:999px;font-size:clamp(4px,1vmin,10px);font-weight:700;font-variant-numeric:tabular-nums;padding:0 6%;line-height:1.5}.pile-card.lifting{animation:pilelift .6s ease-out forwards}@keyframes pilelift{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(6%,-60%) scale(1.35) rotate(4deg)}}.card-bg{z-index:46}.card-flip{perspective:1200px;width:min(380px,92vw)}.card-flip-inner{position:relative;width:100%;transform-style:preserve-3d;animation:cardflip .6s cubic-bezier(.35,.9,.4,1) both}@keyframes cardflip{0%{transform:rotateY(180deg) translateY(16px)}to{transform:rotateY(0) translateY(0)}}.card-face{backface-visibility:hidden;-webkit-backface-visibility:hidden}.card-face-back{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotateY(180deg);border-radius:14px;border:2px solid #22261f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;font-weight:800;letter-spacing:3px;font-size:15px}.card-face-back img{height:34%;max-height:90px;object-fit:contain}.card-face-back.chance{background:linear-gradient(135deg,#f7941d,#ef5a24 70%,#e0451d);color:#fff;text-shadow:0 1px 2px #0008}.card-face-back.chest{background:linear-gradient(135deg,#d9edf9,#b5d6ec 70%,#a3cbe5);color:#1b3a55}.drawn-card{width:100%;border-radius:14px;padding:18px;color:#22261f;background:#f8f4e6;border:2px solid #22261f;box-shadow:0 30px 80px #000c}.drawn-card.chance{background:#ffe1b8}.drawn-card.chest{background:#ffefc4}.drawn-card-head{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:2px;font-size:14px}.drawn-card-glyph{height:40px;width:auto;object-fit:contain}.deck-icon{height:13px;width:auto;vertical-align:-2px;object-fit:contain}.host-skip-float{position:fixed;bottom:max(14px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:45;box-shadow:0 6px 20px #0009}.drawn-card-text{font-size:17px;font-weight:600;margin-top:12px;line-height:1.45}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:var(--danger);color:#fff;padding:10px 16px;border-radius:10px;box-shadow:0 6px 20px #0007;z-index:50;max-width:92vw;text-align:center}.net-banner{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:70;display:flex;align-items:center;gap:8px;background:#b3801e;color:#1b2430;font-weight:700;padding:7px 16px;border-radius:0 0 12px 12px;box-shadow:0 6px 20px #0008;padding-top:max(7px,env(safe-area-inset-top))}.net-spinner{width:13px;height:13px;border-radius:50%;border:2px solid #1b2430;border-top-color:transparent;animation:netspin .8s linear infinite}@keyframes netspin{to{transform:rotate(360deg)}}.victory-bg{background:#000b}.victory-modal{text-align:center;border-color:var(--accent);box-shadow:0 0 60px #f4b74055,0 30px 90px #000;position:relative;z-index:1}.fireworks-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.victory-name{font-size:28px;margin-top:-2px}.victory-trophy{font-size:64px;animation:trophy 1.1s cubic-bezier(.34,1.56,.64,1)}@keyframes trophy{0%{transform:scale(0) rotate(-30deg)}60%{transform:scale(1.3) rotate(8deg)}to{transform:scale(1) rotate(0)}}.victory-title{font-size:38px;font-weight:900;letter-spacing:2px;background:linear-gradient(90deg,#f4b740,#ffe9a8,#f4b740);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 2.2s linear infinite}@keyframes shine{to{background-position:200% center}}.victory-sub{color:var(--muted);margin-top:4px;font-size:15px}.victory-row{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.awards-section{margin-top:16px;text-align:left}.awards-head{display:flex;justify-content:space-between;align-items:center;font-weight:800;color:var(--accent);letter-spacing:.5px}.awards-head button{min-height:32px;padding:4px 10px;font-size:13px}.award-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.award-row{display:flex;gap:10px;align-items:center;background:#ffffff08;border:1px solid var(--line);border-radius:10px;padding:8px 10px}.award-row.revealed{animation:awardIn .45s cubic-bezier(.34,1.56,.64,1)}@keyframes awardIn{0%{opacity:0;transform:translateY(10px) scale(.92)}to{opacity:1;transform:none}}.award-emoji{font-size:24px;flex:none}.award-text{display:flex;flex-direction:column;min-width:0}.award-title{font-size:14px}.award-holder{font-weight:700;font-size:13px}.award-receipt{color:var(--muted);font-size:12.5px;line-height:1.35}.award-pending{justify-content:center;color:var(--muted);cursor:pointer}.variants-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.variant-check{display:flex;gap:8px;font-size:14px;align-items:flex-start;cursor:pointer}.variant-check input{margin-top:2px;flex:none}.variant-check-text{display:flex;flex-direction:column;gap:2px;min-width:0}.variant-hint{font-size:12px;color:var(--muted);line-height:1.35}@media(max-width:640px){.variants-grid{grid-template-columns:1fr}}.modal.rules{width:min(680px,96vw);max-height:88dvh;display:flex;flex-direction:column}.rules-body{overflow-y:auto;padding-right:6px;-webkit-overflow-scrolling:touch}.rules-body h3{margin:14px 0 4px;color:var(--accent);font-size:15px}.rules-body p,.rules-body li{font-size:14px;line-height:1.55}.rules-body ul,.rules-body ol{margin:4px 0;padding-left:20px}.rules-body section+section{border-top:1px solid #ffffff10}.board-viewport{position:relative;width:100%;height:100%;overflow:hidden;touch-action:none;display:grid;place-items:center;container-type:size}.board-viewport-inner{width:100%;height:100%;display:grid;place-items:center;transform-origin:center center;will-change:transform;min-height:0}.zoom-controls{position:absolute;top:8px;right:8px;z-index:7;display:flex;flex-direction:column;gap:6px}.zoom-controls button{background:#12251fcc;font-size:16px;line-height:1;min-width:44px;min-height:44px}@media(max-width:900px){.game-grid{display:flex;flex-direction:column;height:auto;min-height:100dvh;padding:8px 8px calc(86px + env(safe-area-inset-bottom));gap:8px}.board-wrap{order:1;width:100%}.board-viewport{height:auto;container-type:normal}.board{width:min(100%,calc(100dvh - 150px));margin:0 auto}.right-col{order:2;overflow:visible}.left-col{order:3}.left-col .hud-panel{max-height:none;overflow:visible}.feed-panel{min-height:200px;max-height:40dvh}.bottom-bar{position:fixed;left:0;right:0;bottom:0;border-radius:12px 12px 0 0;padding-bottom:max(10px,env(safe-area-inset-bottom));box-shadow:0 -8px 30px #000a;z-index:20}.controls button{min-height:44px}.auction-body{flex-direction:column}.auction-deed{width:100%}.trade-columns{flex-direction:column}.trade-col{max-height:none}}@media(prefers-reduced-motion:reduce){.board-flash,.board-dice,.drawn-card,.victory-trophy,.victory-title,.trade-panel,.token-wrap.active:after,.card-flip-inner,.pile-card.lifting,.space-pick,.space-pick.selected,.bankrupt-pop,.award-row.revealed{animation:none}.board-flash{opacity:1}.victory-title{color:var(--accent)}.token-wrap{transition:none}.net-spinner{animation:none}}.room-code-pill{font-size:13px;padding:2px 8px;white-space:nowrap}.reinvite-btn{padding:0 4px;font-size:13px;line-height:1}.claim-prompt{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0000008c;z-index:60}.claim-prompt-card{max-width:420px;margin:16px;padding:18px 20px;border-radius:12px;background:var(--panel, #16281f);border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 48px #00000080}.header-actions{min-width:0}.header-actions .room-code-pill{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}.worth-bg{z-index:60}.worth-modal{width:min(900px,96vw)}.wh-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 0 6px;font-size:13px;font-weight:600}.wh-key{display:inline-flex;align-items:center;gap:5px}.wh-key.out{opacity:.5}.wh-swatch{width:10px;height:10px;border-radius:3px;flex:none}.wh-token{width:22px;height:22px;object-fit:contain}.wh-skull{font-size:14px}.wh-plot{position:relative;width:100%}.wh-plot svg{display:block;width:100%}.wh-axis{fill:var(--muted);font-size:11px}.wh-axis-title{fill:var(--muted);font-size:11px;letter-spacing:.5px}.wh-bust{font-size:15px;fill:var(--ink)}.wh-tip{position:absolute;pointer-events:none;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:7px 9px;font-size:12px;min-width:148px;box-shadow:0 6px 18px #0006}.wh-tip-head{font-weight:700;margin-bottom:4px;color:var(--muted)}.wh-tip-row{display:flex;align-items:center;gap:6px;padding:1px 0}.wh-tip-row.out{opacity:.55}.wh-tip-name{flex:1;white-space:nowrap}.wh-table-wrap{max-height:240px;overflow:auto;margin-top:8px}.wh-table{width:100%;border-collapse:collapse;font-size:12px}.wh-table th,.wh-table td{padding:3px 8px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}.wh-table th:first-child,.wh-table td:first-child{text-align:left}.wh-table thead th{position:sticky;top:0;background:var(--panel)}.networth-open{background:none;border:none;padding:2px 6px;min-height:0;color:var(--muted);font-size:12px;font-weight:600}.networth-open:hover{color:var(--accent);border-color:transparent}@media(max-width:900px){.worth-modal{width:100vw;max-height:100dvh;height:100dvh;border-radius:0;border-left:none;border-right:none}.worth-modal h2{font-size:17px}}
