:root{--parchment: #f0e4c8;--parchment-dark: #e3d3ac;--ink: #3a2c1a;--ink-soft: #6b5637;--gold: #b8860b;--crimson: #8c2f2f;--panel: #faf3df;--border: #a98d55;--shadow: rgba(58, 44, 26, .25);--p0: #a03535;--p1: #2e6f6a;--p2: #c8921e;--p3: #45508e;--p4: #4a7a3a;--wood: #8a5a2b;--brick: #c1622f;--marble: #9aa2ad;--cloth: #4c8a5f}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(ellipse at 20% 0%,rgba(184,134,11,.12),transparent 55%),radial-gradient(ellipse at 90% 100%,rgba(140,47,47,.1),transparent 50%),var(--parchment);color:var(--ink);font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif}#app{min-height:100vh;display:flex;flex-direction:column}#app:has(.main){height:100vh;overflow:hidden}h1,h2,h3,.title{font-variant:small-caps;letter-spacing:.06em;color:var(--crimson);margin:0}button{font:inherit;color:var(--ink);background:linear-gradient(180deg,#f7ecd2,#e8d8b0);border:1px solid var(--border);border-radius:6px;padding:6px 14px;cursor:pointer;box-shadow:0 1px 2px var(--shadow)}button:hover:not(:disabled){filter:brightness(1.05)}button:disabled{opacity:.45;cursor:default}button.primary{background:linear-gradient(180deg,#a03535,#7c2727);color:#f7ecd2;border-color:#5f1d1d}button.selected{outline:3px solid var(--gold)}input[type=text]{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:#fffaf0;color:var(--ink)}.landing{margin:auto;width:min(430px,92vw);background:var(--panel);border:2px solid var(--border);border-radius:12px;padding:28px;box-shadow:0 8px 30px var(--shadow);text-align:center}.landing h1{font-size:2.2rem}.landing .tagline{color:var(--ink-soft);font-style:italic;margin:4px 0 20px}.landing .row{display:flex;gap:8px;margin-top:12px;justify-content:center}.landing .divider{margin:18px 0 6px;color:var(--ink-soft);font-variant:small-caps}.lobby{margin:auto;width:min(460px,92vw);background:var(--panel);border:2px solid var(--border);border-radius:12px;padding:24px;box-shadow:0 8px 30px var(--shadow)}.lobby .code{font-size:1.6rem;letter-spacing:.35em;color:var(--gold);text-align:center}.lobby ul{list-style:none;padding:0}.lobby li{display:flex;align-items:center;gap:10px;padding:7px 10px;border-bottom:1px dashed var(--border)}.lobby li .dot{width:14px;height:14px;border-radius:3px}.lobby li .host{color:var(--gold);font-size:.85em}.lobby li .kick{margin-left:auto;padding:1px 8px;font-size:.8em;color:var(--crimson)}.lobby li .off{color:var(--ink-soft);font-size:.85em;font-style:italic}.lobby .actions{text-align:center;margin-top:16px}.lobby .layoutpick{text-align:center;margin-top:12px}.lobby .layoutpick .choices{display:flex;gap:8px;justify-content:center;margin:6px 0}.lobby .layoutpick .hint{color:var(--ink-soft);font-size:.82rem}.topbar{display:flex;align-items:center;gap:14px;padding:6px 14px;background:linear-gradient(180deg,#5d452a,#4a3620);color:#f0e4c8;border-bottom:3px double var(--gold)}.topbar .title{color:#f0e4c8;font-size:1.15rem}.topbar .code{letter-spacing:.25em;color:var(--gold)}.topbar .spacer{flex:1}.playerchip{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:12px;background:#f0e4c81f;font-size:.92rem}.playerchip .dot{width:11px;height:11px;border-radius:3px}.playerchip.active{outline:2px solid var(--gold)}.playerchip .vp{color:var(--gold)}.botbadge{background:var(--gold);color:#3a2c1a;border-radius:8px;padding:0 6px;font-size:.7em;font-weight:700;letter-spacing:.05em}.playerchip.gone{opacity:.55}.main{display:flex;flex:1;min-height:0;justify-content:center}.boardwrap{flex:0 1 auto;min-width:0;padding:6px;display:flex}svg.board{height:calc(100vh - 56px);width:auto;max-width:100%;display:block;margin:auto}.sidebar{flex:1 1 335px;min-width:320px;max-width:540px;display:flex;flex-direction:column;gap:10px;padding:10px;overflow-y:auto;background:var(--parchment-dark);border-left:2px solid var(--border)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px;box-shadow:0 1px 4px var(--shadow)}.panel h3{font-size:.95rem;margin-bottom:6px}.prompt{background:linear-gradient(180deg,#fdf6e3,#f3e6c4);border:2px solid var(--gold);border-radius:8px;padding:10px 12px;margin-bottom:8px;font-size:1.02rem}.prompt .hint{color:var(--ink-soft);font-size:.88rem;margin-top:3px}.prompt .choices{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.mystats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;text-align:center}.mystats .stat{border:1px solid var(--border);border-radius:6px;padding:5px 2px;background:#fffaf0}.mystats .stat b{display:block;font-size:1.15rem}.mystats .stat span{font-size:.72rem;color:var(--ink-soft)}.hand{display:flex;flex-wrap:wrap;gap:6px}.card{border:1px solid var(--border);border-radius:6px;background:linear-gradient(180deg,#fffaf0,#f3e6c4);padding:6px 8px;min-width:62px;text-align:center;font-size:.85rem;cursor:pointer;box-shadow:0 1px 3px var(--shadow)}.card:hover{outline:2px solid var(--gold)}.card.static{cursor:default}.card.static:hover{outline:none}.card .icon{font-size:1.25rem;display:block}.log{max-height:230px;overflow-y:auto;font-size:.85rem;line-height:1.45}.log .entry{padding:1px 0;border-bottom:1px dotted rgba(169,141,85,.35)}.log .score{color:var(--crimson)}.log .chatline{color:#4a5f8e}.chatrow{display:flex;gap:6px;margin-top:6px}.chatrow input{flex:1;min-width:0;padding:5px 8px}.overlay{position:fixed;inset:0;z-index:40;background:#3a2c1a73;display:flex;align-items:center;justify-content:center}.modal{background:var(--panel);border:2px solid var(--gold);border-radius:12px;padding:22px;width:min(560px,94vw);max-height:88vh;overflow-y:auto;box-shadow:0 12px 44px var(--shadow)}.modal h2{margin-bottom:10px}.modal .choices{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.modal .choice{border:1px solid var(--border);border-radius:8px;background:#fffaf0;padding:12px;min-width:130px;cursor:pointer;text-align:center}.modal .choice:hover:not(.disabled){outline:2px solid var(--gold)}.modal .choice.disabled{opacity:.4;cursor:default}.modal .choice .big{font-size:1.5rem;display:block}.modal .row{display:flex;align-items:center;gap:10px;margin:6px 0}.modal .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.standings{width:100%;border-collapse:collapse;margin-top:8px}.standings td,.standings th{border-bottom:1px solid var(--border);padding:6px 8px;text-align:left}.standings .winner{color:var(--gold);font-weight:700}.street-hit{cursor:pointer}.street-hit:hover .street-ring{stroke:var(--gold);stroke-width:3}.clickable{cursor:pointer}.clickable:hover{filter:brightness(1.15)}text.label{font-family:inherit;fill:var(--ink)}text.small-caps{font-variant:small-caps}.rulesec{margin-bottom:10px}.rulesec h3{color:var(--crimson);font-variant:small-caps;margin:8px 0 3px}.rulesec p{margin:3px 0;font-size:.92rem;line-height:1.45}.rulesec ol,.rulesec ul{margin:3px 0;padding-left:22px;font-size:.92rem;line-height:1.5}.rulesec li{margin-bottom:3px}.topbar .rulesbtn{background:#f0e4c824;color:#f0e4c8;border-color:#c8a75e99;padding:2px 12px;font-size:.9rem}.panel.abandon{text-align:center}.panel.abandon button{font-size:.85rem}.panel.abandon .hint{color:var(--ink-soft);font-size:.78rem;margin-top:5px}.panel.abandon .votestatus{color:var(--crimson);font-size:.88rem;margin-bottom:6px}.tooltip{position:fixed;z-index:80;display:none;max-width:270px;background:#fdf6e3;border:1px solid var(--gold);border-radius:6px;padding:7px 11px;font-size:.86rem;line-height:1.35;box-shadow:0 4px 14px var(--shadow);pointer-events:none}.tooltip b{color:var(--crimson);font-variant:small-caps;letter-spacing:.04em;display:block}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%);background:var(--crimson);color:#f7ecd2;border-radius:8px;padding:9px 18px;z-index:60;box-shadow:0 4px 16px var(--shadow);animation:fade 3.2s forwards}@keyframes fade{0%,75%{opacity:1}to{opacity:0}}.boardstack{display:flex;flex-direction:column;gap:10px;width:100%}.boardstack .board-sec{width:100%;height:auto;display:block;background:#efe3c2;border:2px solid var(--border);border-radius:10px}.boardstack .board-sec-info{background:var(--parchment-dark)}.main.mobilemode{flex-direction:column}.main.mobilemode .boardwrap{flex:none;width:100%;padding:8px;flex-direction:column;gap:8px}.main.mobilemode .boardwrap .prompt{margin-bottom:0}.main.mobilemode .sidebar{max-width:none;min-width:0;width:auto;border-left:none;border-top:2px solid var(--border);overflow-y:visible}#app:has(.main.mobilemode){height:auto;overflow:visible}@media (max-width: 900px){.topbar{flex-wrap:wrap;row-gap:4px;padding:6px 8px}.log{max-height:170px}}
