@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,900&family=Hanken+Grotesk:wght@400;500;600;700&display=swap";*{box-sizing:border-box}body{margin:0;font-family:Hanken Grotesk,system-ui,-apple-system,Segoe UI,sans-serif;background:radial-gradient(120% 90% at 50% -10%,#1c6647,#0e4631 42%,#082a1e) fixed;color:#e2e8f0}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.5;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.018) 0 2px,transparent 2px 4px),repeating-linear-gradient(-45deg,rgba(0,0,0,.05) 0 2px,transparent 2px 4px)}.app{background:#0f172a}.setup{position:relative;z-index:1;max-width:540px;margin:10vh auto;padding:44px 36px 36px;color:#25302a;background:linear-gradient(170deg,#f7efd9,#f0e5c6);border:1px solid rgba(150,116,42,.45);border-radius:16px;text-align:center;overflow:hidden;box-shadow:0 1px #ffffffb3 inset,0 28px 60px #00000080,0 6px 18px #00000059;animation:deal-in .55s cubic-bezier(.2,.8,.25,1) both}.setup:before{content:"";position:absolute;top:0;left:0;right:0;height:12px;background:linear-gradient(90deg,#955436 0,#955436 12.5%,#aae0fa 12.5%,#aae0fa 25%,#d93a96 25%,#d93a96 37.5%,#f7941d 37.5%,#f7941d 50%,#ed1b24 50%,#ed1b24 62.5%,#fde000 62.5%,#fde000 75%,#1fb25a 75%,#1fb25a 87.5%,#0072bb 87.5%,#0072bb);box-shadow:0 1px 3px #00000040}@keyframes deal-in{0%{opacity:0;transform:translateY(22px) rotate(-.6deg) scale(.97)}to{opacity:1;transform:none}}.setup h1{margin:6px 0 4px;font-family:Fraunces,Georgia,serif;font-weight:900;font-size:clamp(34px,7vw,52px);line-height:1.02;letter-spacing:-.5px;color:#15543c;text-shadow:0 1px 0 rgba(255,255,255,.6)}.setup>p{color:#5a5238;font-size:15px;line-height:1.55;max-width:40ch;margin:10px auto 22px}.setup label{display:block;margin:18px 0;font-weight:600;color:#3c4a40}.setup input,.setup select{font-family:inherit;font-size:15px;padding:9px 11px;color:#20281f;background:#fffdf4;border:1.5px solid rgba(90,82,56,.35);border-radius:8px;transition:border-color .15s ease,box-shadow .15s ease}.setup input:focus,.setup select:focus{outline:none;border-color:#c9a227;box-shadow:0 0 0 3px #c9a22747}.setup-names{display:flex;flex-direction:column;gap:12px;margin:20px 0;text-align:left}.player-setup{padding:16px 16px 14px;background:#ffffff80;border:1px solid rgba(150,116,42,.4);border-radius:12px;box-shadow:0 1px #fff9 inset}.player-setup h3{margin:0 0 14px;font-family:Fraunces,Georgia,serif;font-weight:600;font-size:20px;color:#15543c;letter-spacing:.2px}.name-field{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0}.name-piece{font-size:18px}.piece-picker{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.piece-opt{width:32px;height:32px;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;background:#1e293b;border:2px solid transparent;border-radius:6px;cursor:pointer;transition:transform .08s ease,background .15s ease}.piece-opt:hover:not(:disabled){background:#334155;transform:translateY(-1px)}.piece-opt.selected{background:#334155}.piece-opt:disabled{opacity:.25;cursor:not-allowed}.name-field>span{display:flex;align-items:center;gap:6px;font-size:14px}.name-dot{width:12px;height:12px;border-radius:50%}.name-field input{flex:0 0 180px;padding:7px 9px;font-size:14px;border:1px solid rgba(148,163,184,.4);border-radius:6px;background:#0f172a;color:#e2e8f0}.name-field input:focus{outline:none;border-color:#2563eb}.name-field input{flex:0 0 150px}.seat-type{flex:0 0 110px;margin-left:auto;padding:7px 9px;font-size:14px;border:1px solid rgba(148,163,184,.4);border-radius:6px;background:#0f172a;color:#e2e8f0}.seat-difficulty{flex:0 0 150px;padding:7px 9px;font-size:14px;border:1px solid rgba(148,163,184,.4);border-radius:6px;background:#0f172a;color:#e2e8f0}.setup button{font-family:Hanken Grotesk,sans-serif;font-weight:700;font-size:15px;padding:11px 22px;border-radius:10px;cursor:pointer;transition:transform .12s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.setup button:not(.primary){background:#fffdf4;color:#15543c;border:1.5px solid rgba(21,84,60,.35)}.setup button:not(.primary):hover{background:#fff;border-color:#15543c;transform:translateY(-1px);box-shadow:0 4px 12px #0000002e}button.primary{background:linear-gradient(180deg,#1c7a51,#15543c);color:#f7efd9;border:1.5px solid rgba(8,42,30,.55);padding:12px 26px;font-size:16px;font-weight:700;border-radius:10px;cursor:pointer;box-shadow:0 4px #0d3a28,0 9px 18px #0000004d;transition:transform .1s ease,box-shadow .15s ease,filter .15s ease}button.primary:hover{filter:brightness(1.08)}button.primary:active{transform:translateY(3px);box-shadow:0 1px #0d3a28,0 4px 10px #0000004d}.setup button:focus-visible,button.primary:focus-visible{outline:3px solid #c9a227;outline-offset:2px}.setup button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;filter:none}.landing{max-width:620px;padding:56px 44px 48px}.landing-kicker{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:3px;color:#b08428;margin:0 0 6px}.landing-mark{width:64px;height:64px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-family:Fraunces,Georgia,serif;font-weight:900;font-size:38px;color:#f7efd9;background:radial-gradient(circle at 35% 30%,#ee2a35,#b8161d);border:3px solid #f7efd9;border-radius:50%;box-shadow:0 6px 16px #00000059,0 0 0 2px #96742a80;transform:rotate(-8deg)}.landing h1{font-size:clamp(46px,10vw,76px)}.landing-tag{margin:14px auto 30px;font-size:17px;line-height:1.6;color:#5a5238;max-width:42ch}.landing-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}.landing-actions button{min-width:168px;padding:14px 26px;font-size:17px}@media(prefers-reduced-motion:reduce){.setup{animation:none}.setup button,button.primary{transition:none}}.app{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px 16px 180px}.panel{position:fixed;width:min(28vw,340px);max-height:calc(100vh - 32px);overflow-y:auto;padding:12px;background:#0f172ad1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(148,163,184,.18);border-radius:12px;box-shadow:0 10px 30px #00000073;z-index:10}.panel-players{top:16px;left:16px}.panel-log{top:16px;right:16px}.panel-actions{bottom:16px;left:50%;transform:translate(-50%)}.panel .actions,.panel .log{background:transparent;padding:0;margin:0}.panel .players{margin:0}.panel-log .log{max-height:calc(100vh - 64px)}.result-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:40}.result-backdrop .result{width:340px;margin:0}.board{position:relative;display:grid;grid-template-columns:repeat(11,1fr);grid-template-rows:repeat(11,1fr);width:min(78vh,760px);height:min(78vh,760px);background:#cfe8d4;border:3px solid #1e293b;gap:1px;container-type:inline-size}.cell{position:relative;background:#e8f5ec;color:#14532d;font-size:clamp(7px,2.05cqw,10px);padding:2px;overflow:hidden;display:flex;flex-direction:column}.cell .name{font-weight:600;line-height:1.05;overflow-wrap:anywhere}.cell .price{margin-top:auto;opacity:.7}.cell .tile-icon{flex:1;display:flex;align-items:center;justify-content:center;font-size:clamp(14px,4cqw,26px);line-height:1}.cell .tile-icon.tile-q{font-weight:800;color:#ea580c}.colorbar{height:clamp(7px,2cqw,14px);margin:-2px -2px 2px}.type-go,.type-jail,.type-freeparking,.type-gotojail{background:#d1fae5;font-weight:700}.type-chance,.type-chest{background:#fde68a;color:#78350f}.type-tax{background:#fecaca;color:#7f1d1d}.houses{position:absolute;top:2px;right:2px;z-index:4;min-width:14px;height:14px;padding:0 2px;border-radius:3px;background:#15803d;color:#fff;font-size:9px;font-weight:700;text-align:center;line-height:14px}.houses.hotel{background:#b91c1c}.mortgaged{position:absolute;top:2px;left:2px;color:#b91c1c;font-weight:700}.cell.available{animation:avail-pulse 1.8s ease-in-out infinite}@keyframes avail-pulse{0%,to{box-shadow:inset 0 0 0 2px #2563eb26}50%{box-shadow:inset 0 0 0 2px #2563eba6}}.cell.owned{z-index:1}.owner-frame{position:absolute;top:0;right:0;bottom:0;left:0;border:3px solid;border-radius:2px;pointer-events:none;z-index:3}.token-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.piece{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;display:flex;align-items:center;justify-content:center;font-size:15px;background:#f8fafc;border:2px solid;border-radius:50%;box-shadow:0 1px 4px #00000073;transition:left .13s ease-in-out,top .13s ease-in-out}.board-center{position:relative;grid-row:2 / 11;grid-column:2 / 11;background:#cfe8d4;display:flex;align-items:center;justify-content:center}.board-center .title{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:56px;font-weight:800;letter-spacing:6px;color:#14532d;opacity:.1;transform:rotate(-45deg);pointer-events:none}.pile{position:absolute;width:120px;padding:12px 8px;border-radius:8px;text-align:center;color:#fff;box-shadow:3px 3px #0000002e,6px 6px #0000001a}.pile-icon{display:block;font-size:26px;font-weight:800;line-height:1}.pile-label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.pile-chest{top:16%;left:14%;background:#1d4ed8;transform:rotate(-8deg)}.pile-chance{bottom:16%;right:14%;background:#ea580c;transform:rotate(8deg)}.center-info{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:12px}.dice{display:flex;gap:10px}.die{width:40px;height:40px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:5px;background:#fff;border-radius:8px;box-shadow:0 2px 6px #00000059}.die .pip{width:7px;height:7px;border-radius:50%;background:#14532d;align-self:center;justify-self:center}.die.rolling{animation:dice-roll .6s ease-out}@keyframes dice-roll{0%{transform:rotate(0) scale(1)}25%{transform:rotate(-160deg) scale(1.18)}50%{transform:rotate(140deg) scale(.92)}75%{transform:rotate(-70deg) scale(1.1)}to{transform:rotate(0) scale(1)}}.pot{color:#14532d;background:#fffc;padding:4px 10px;border-radius:6px;font-weight:600}.players{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.player{position:relative;display:flex;align-items:center;gap:8px;padding:8px 10px;background:#1e293b;border-left:4px solid;border-radius:6px}.money-float{position:absolute;right:14px;top:4px;font-size:18px;font-weight:800;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.7);animation:money-rise 1.4s ease-out forwards}.money-float.pos{color:#4ade80}.money-float.neg{color:#f87171}@keyframes money-rise{0%{transform:translateY(0);opacity:0}15%{transform:translateY(-4px);opacity:1}to{transform:translateY(-36px);opacity:0}}.player.active{background:#334155;box-shadow:0 0 0 2px #2563eb}.player.out{opacity:.4}.player{flex-wrap:wrap}.player .piece-badge{width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:15px;background:#0f172a;border:2px solid;border-radius:50%}.player .holdings{display:flex;flex-wrap:wrap;gap:3px;width:100%;margin-top:6px}.player .chip{min-width:14px;height:14px;padding:0 2px;border-radius:3px;font-size:9px;font-weight:700;line-height:14px;text-align:center;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.6)}.player .chip.mortgaged{opacity:.4;text-decoration:line-through}.player .pname{font-weight:600}.player .cash{margin-left:auto;font-variant-numeric:tabular-nums}.player .worth{font-size:11px;opacity:.6;width:100%;text-align:right}.player .tag{font-size:10px;background:#b91c1c;padding:1px 5px;border-radius:4px}.actions{background:#1e293b;border-radius:8px;padding:12px;margin-bottom:14px}.actions-title,.log-title{font-size:12px;text-transform:uppercase;letter-spacing:1px;opacity:.6;margin-bottom:8px}.waiting{opacity:.6;font-style:italic}button.act{display:block;width:100%;margin:6px 0;padding:10px;border:none;border-radius:6px;background:#475569;color:#fff;font-size:14px;cursor:pointer;transition:background .15s ease,transform .06s ease}button.act:hover{background:#64748b}button.act:active{transform:translateY(1px)}.act-ROLL,.act-ROLL_FOR_JAIL,.act-BUY_PROPERTY{background:#2563eb}.act-ROLL:hover,.act-BUY_PROPERTY:hover{background:#1d4ed8}.act-END_TURN{background:#16a34a}.act-END_TURN:hover{background:#15803d}.act-BUILD_HOUSE,.act-UNMORTGAGE{background:#0d9488}.act-BUILD_HOUSE:hover,.act-UNMORTGAGE:hover{background:#0f766e}.act-SELL_HOUSE,.act-MORTGAGE{background:#b45309}.act-SELL_HOUSE:hover,.act-MORTGAGE:hover{background:#92400e}.act-PROPOSE_TRADE,.act-RESPOND_TRADE{background:#7c3aed}.act-PROPOSE_TRADE:hover,.act-RESPOND_TRADE:hover{background:#6d28d9}.act-PASS_BID,.act-DECLINE_PROPERTY{background:#475569}.custom-bid{display:flex;gap:6px;margin-top:6px}.custom-bid input{flex:1;min-width:0;padding:8px;border:1px solid #475569;border-radius:6px;background:#0f172a;color:#fff;font-size:14px}.custom-bid .act{width:auto;margin:0;white-space:nowrap}.trade-builder{width:min(560px,92vw);max-height:86vh;overflow-y:auto;background:#1e293b;border:1px solid #7c3aed;border-radius:10px;padding:16px 18px;color:#e2e8f0}.trade-builder-title{font-size:16px;font-weight:600;margin-bottom:12px;color:#e9d5ff}.trade-recipient select{margin-left:6px;padding:6px 8px;background:#0f172a;color:#fff;border:1px solid #475569;border-radius:6px}.trade-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}.trade-col{background:#0f172a;border-radius:8px;padding:10px 12px}.trade-col h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:1px;opacity:.7}.trade-prop{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:13px;cursor:pointer}.trade-prop.on{color:#c4b5fd;font-weight:600}.trade-prop.disabled{cursor:not-allowed;opacity:.45}.trade-prop-reason{margin-left:auto;font-size:11px;font-style:italic;opacity:.75}.trade-cash{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:8px;font-size:13px}.trade-cash input{width:96px;padding:6px 8px;background:#1e293b;color:#fff;border:1px solid #475569;border-radius:6px}.trade-actions{display:flex;gap:8px}.trade-actions .act{margin:0}.trade-actions .act:disabled{opacity:.5;cursor:not-allowed}.trade-hint{margin-top:8px;font-size:12px;opacity:.65}.trade-summary{margin:0 0 10px;padding:8px 10px;background:#7c3aed29;border-left:3px solid #7c3aed;border-radius:6px;font-size:12px;line-height:1.35;color:#e9d5ff}.trade-toast{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:10px;max-width:min(440px,90vw);padding:12px 18px;border-radius:10px;font-size:14px;font-weight:600;color:#fff;box-shadow:0 10px 30px #00000073;cursor:pointer;animation:trade-toast-in .25s ease-out}.trade-toast.accepted{background:#16a34a}.trade-toast.rejected{background:#b91c1c}.trade-toast-icon{font-size:18px}@keyframes trade-toast-in{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}.result{background:#1e293b;border-radius:8px;padding:18px;margin-bottom:14px;text-align:center}.result .winner{font-size:22px;font-weight:700;margin-bottom:6px}.result .reason{opacity:.7;margin-bottom:14px}.card-draw-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;perspective:1200px;z-index:50}.card-scene{position:relative;width:300px;min-height:380px;transform-style:preserve-3d;animation:card-rise .6s cubic-bezier(.2,.8,.25,1)}.card-flip{position:relative;width:100%;height:380px;transform-style:preserve-3d;transform:rotateY(180deg);animation:card-flip-turn 1.8s cubic-bezier(.45,.05,.2,1) forwards}.card-face{position:absolute;top:0;right:0;bottom:0;left:0;padding:26px;border-radius:16px;display:flex;flex-direction:column;align-items:center;gap:16px;color:#fff;text-align:center;box-shadow:0 24px 70px #0009;backface-visibility:hidden;-webkit-backface-visibility:hidden}.card-face-front{transform:rotateY(0)}.card-face-back{transform:rotateY(180deg);justify-content:center;background:repeating-linear-gradient(45deg,rgba(255,255,255,.12),rgba(255,255,255,.12) 12px,transparent 12px,transparent 24px)}.card-back-deco{font-size:96px;font-weight:800;opacity:.85;text-shadow:0 4px 14px rgba(0,0,0,.4)}.card-flip.is-chance .card-face{background-color:#ea580c}.card-flip.is-chest .card-face{background-color:#1d4ed8}.card-flip.is-chance .card-face-front{background:#ea580c}.card-flip.is-chest .card-face-front{background:#1d4ed8}.card-hand{position:absolute;left:50%;bottom:-54px;font-size:88px;line-height:1;transform-origin:50% 100%;filter:drop-shadow(0 8px 10px rgba(0,0,0,.45));animation:card-hand-reach 1.8s cubic-bezier(.45,.05,.2,1) forwards;pointer-events:none}.card-draw-head{font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:2px}.card-draw-icon{font-size:68px;font-weight:800;line-height:1;margin-top:14px}.card-draw-text{font-size:20px;font-weight:600;line-height:1.4;margin:auto 0}.card-draw-close{border:none;background:#ffffffeb;color:#0f172a;font-weight:700;font-size:15px;padding:10px 30px;border-radius:8px;cursor:pointer}.card-draw-close:hover{background:#fff}@keyframes card-rise{0%{transform:translateY(140px) scale(.7);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes card-flip-turn{0%{transform:rotateY(180deg) translateY(10px)}35%{transform:rotateY(180deg) translateY(0)}72%{transform:rotateY(0) scale(1.04)}82%{transform:rotateY(0) scale(1)}90%{transform:rotateY(-4deg)}to{transform:rotateY(0)}}@keyframes card-hand-reach{0%{transform:translate(-50%,80px) rotate(-18deg);opacity:0}25%{transform:translate(-50%,-6px) rotate(-8deg);opacity:1}40%{transform:translate(-50%) rotate(-6deg);opacity:1}to{transform:translate(-50%,26px) rotate(-6deg);opacity:1}}.cell.clickable,.chip.clickable{cursor:pointer}.deed-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:60}.deed-scene{perspective:1400px}.deed{position:relative;width:300px;height:460px;transform-style:preserve-3d;transition:transform .5s ease}.deed.flipped{transform:rotateY(180deg)}.deed-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;background:#f8fafc;color:#0f172a;border-radius:12px;border:2px solid #0f172a;box-shadow:0 24px 60px #0009;overflow:hidden}.deed-back{transform:rotateY(180deg)}.deed-banner{color:#fff;padding:16px 14px;text-align:center;border-bottom:2px solid #0f172a}.deed-kicker{font-size:10px;text-transform:uppercase;letter-spacing:2px;opacity:.85}.deed-name{font-size:20px;font-weight:800;margin-top:2px;text-shadow:0 1px 2px rgba(0,0,0,.4)}.deed-owner{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:13px;background:#eef2f7;border-bottom:1px solid #cbd5e1}.deed-owner .muted{color:#64748b}.deed-owner-dot{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.25)}.deed-body{flex:1;padding:14px 16px;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.rent-main{text-align:center;font-size:16px}.rent-table{width:100%;border-collapse:collapse;font-size:13px}.rent-table td{padding:3px 0;border-bottom:1px dashed #cbd5e1}.rent-table td:last-child{text-align:right;font-weight:700}.rent-table td.muted{border:none;font-size:11px;color:#64748b}.deed-foot{display:flex;flex-direction:column;gap:2px;font-size:12px;color:#334155;margin-top:4px}.deed-note{font-size:12px;color:#475569;line-height:1.4}.deed-status{margin-top:6px;display:flex;flex-direction:column;gap:4px;font-size:13px}.deed-status .muted{font-size:11px;color:#64748b;text-transform:capitalize}.deed-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-top:2px solid #0f172a}.deed-price{font-weight:800;font-size:14px}.deed-flip{border:none;background:#2563eb;color:#fff;font-weight:700;font-size:13px;padding:8px 14px;border-radius:7px;cursor:pointer}.deed-flip:hover{background:#1d4ed8}.celebrate{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:70}.win-cascade{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:60}.confetti-piece{position:absolute;top:-24px;border-radius:2px;animation-name:confetti-fall;animation-timing-function:linear;animation-iteration-count:1;animation-fill-mode:forwards}@keyframes confetti-fall{0%{transform:translateY(-24px) rotate(0);opacity:1}to{transform:translateY(104vh) rotate(900deg);opacity:1}}.celebrate-banner{position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);max-width:80vw;text-align:center;background:linear-gradient(135deg,#f7941d,#ed1b24);color:#fff;font-size:26px;font-weight:800;padding:18px 32px;border-radius:14px;box-shadow:0 16px 50px #00000080;text-shadow:0 2px 4px rgba(0,0,0,.35);animation:banner-pop .5s cubic-bezier(.2,.8,.25,1)}@keyframes banner-pop{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}60%{transform:translate(-50%,-50%) scale(1.08);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.log{background:#1e293b;border-radius:8px;padding:12px;max-height:320px;overflow-y:auto}.log-entry{font-size:12px;padding:3px 0;border-bottom:1px solid #334155}.log-rent{color:#fca5a5}.log-buy,.log-auction{color:#86efac}.log-card{color:#fcd34d}.log-bankrupt{color:#f87171;font-weight:700}@media(max-width:1100px){.app{display:block;min-height:100dvh;padding:8px 8px 200px}.board{width:min(96vw,96vmin);height:min(96vw,96vmin);margin:0 auto 12px}.panel{position:static;width:auto;max-width:100%;max-height:none;margin:0 auto 12px;transform:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#0f172af2}.panel-players,.panel-log{top:auto;left:auto;right:auto}.panel-log .log{max-height:40vh}.panel-actions{position:fixed;left:0;right:0;bottom:0;width:100%;margin:0;max-height:45dvh;overflow-y:auto;border-radius:14px 14px 0 0;border-bottom:none;transform:none;padding:12px max(12px,env(safe-area-inset-left)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-right))}button.act{padding:13px;font-size:15px}.board-center .title{font-size:30px;letter-spacing:3px}.pile{width:74px;padding:8px 5px}.pile-icon{font-size:18px}.pile-label{font-size:8px}.die{width:32px;height:32px}.setup{margin:4vh auto;padding:32px 18px 24px;max-width:100%}.landing{padding:40px 20px 32px}.landing-actions button{flex:1 1 100%}.name-field{flex-wrap:wrap}.name-field input{flex:1 1 140px}.seat-type{flex:0 0 auto}.setup input,.setup select,.name-field input,.seat-type,.custom-bid input,.trade-cash input{font-size:16px}.trade-cols{grid-template-columns:1fr}}@media(max-width:1100px)and (orientation:landscape){.board{width:min(72vh,96vw);height:min(72vh,96vw)}}
