
:root{--gold:#d6a321;--ink:#e6d5b3;--line:#67553a;--muted:#9f927e}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 15%,#382b20 0,#171311 45%,#090807 100%);color:var(--ink);font-family:Georgia,'Times New Roman',serif;padding:24px}.board{max-width:980px;margin:auto;border:1px solid #796a53;background:linear-gradient(rgba(20,16,13,.94),rgba(9,8,7,.96));box-shadow:0 18px 70px #000;padding:26px;border-radius:8px;position:relative}.board:before{content:"";position:absolute;inset:7px;border:1px solid #3d352b;pointer-events:none}h1{text-align:center;color:var(--gold);letter-spacing:.12em;font-size:42px;margin:4px 0 8px}.subtitle{text-align:center;color:#a99a80;margin-bottom:20px}.panel{border:1px solid #4c412f;padding:14px 16px;background:rgba(0,0,0,.16);border-radius:4px}.label{font-size:12px;letter-spacing:.18em;color:#9f8b68}.value{font-size:22px;color:#f1dfb9;margin-top:5px}.setup{max-width:520px;margin:20px auto;display:grid;gap:12px}.setup input,.setup select{font:17px Georgia;padding:11px;background:#17130f;color:#ead8ad;border:1px solid #796a53}.actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.action{font:700 15px Georgia;letter-spacing:.08em;padding:10px 20px;border:1px solid #8d7447;background:linear-gradient(#3a3023,#1c1813);color:#ead8ad;border-radius:4px;cursor:pointer}.action:hover{border-color:var(--gold);color:#ffd65a}.action:disabled{opacity:.4;cursor:not-allowed}.danger{border-color:#70483c;color:#d9ad9d}.room{font-size:30px;letter-spacing:.18em;color:var(--gold)}.top{display:grid;grid-template-columns:1.3fr .7fr;gap:14px}.lobby-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:14px}.player-list{display:grid;gap:8px;margin-top:10px}.player-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #4b4133;background:#14110e}.player-name{font-size:18px}.badge{font-size:10px;letter-spacing:.12em;border:1px solid #7d683f;padding:3px 6px;color:#d6bd7b;margin-left:8px}.scoreboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:14px 0}.score-card{border:1px solid #4b4133;padding:10px;background:#14110e;text-align:center}.score-card.active{border-color:var(--gold);box-shadow:inset 0 0 0 1px #6e5520}.score-name{font-size:13px;color:#bba77e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-value{font-size:26px;color:#f2dfb4;margin-top:4px}.target-buttons{display:grid;gap:8px;margin-top:10px}.target-btn.chosen{border-color:var(--gold);color:#ffd65a;background:linear-gradient(#514020,#1c1813)}.lobby-note{color:var(--muted);line-height:1.45;margin:12px 0}.dice-title{text-align:center;margin:24px 0 4px;color:var(--gold);letter-spacing:.14em}.hint{text-align:center;color:#9f927e;font-size:14px}.dice-grid{display:grid;grid-template-columns:repeat(3,70px);justify-content:center;gap:14px;margin:18px auto 20px}.die{width:70px;height:70px;border:0;background:transparent;padding:0;cursor:pointer;transition:transform .12s}.die:hover{transform:translateY(-3px)}.die img{width:70px;height:70px;object-fit:contain;pointer-events:none}.selected-score{text-align:center;color:#d7bd79;min-height:22px}.history{margin-top:20px;border-top:1px solid var(--line);padding-top:14px;min-height:60px}.status{color:#cbb994}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);display:none;align-items:center;justify-content:center;z-index:10;padding:20px}.overlay.show{display:flex}.event{max-width:min(620px,95vw);width:100%;text-align:center}.event img{width:100%;box-shadow:0 20px 80px #000}.continue{margin-top:14px}.hidden{display:none!important}.notice{text-align:center;color:#d7bd79;margin:12px}.error{color:#e9a28e}.host-controls{border-top:1px solid #4b4133;margin-top:14px;padding-top:14px}@media(max-width:700px){body{padding:8px}.board{padding:18px 10px}.top,.lobby-grid{grid-template-columns:1fr}h1{font-size:30px}}
/* Tavern table: original dice and event artwork retained. */
:root{--gold:#dcb766;--ink:#e9dcc2;--muted:#b4a58a}body{background:radial-gradient(ellipse at 50% 0,#493523 0,transparent 64%),repeating-linear-gradient(92deg,#19120d 0,#20170f 3px,#19120d 5px,#251a11 150px);padding:24px 18px}.board{max-width:1200px;padding:24px 30px;background:linear-gradient(120deg,#241c14f7,#100e0bf5);border-color:#6d5434;border-radius:10px}.masthead{display:flex;align-items:center;justify-content:center;gap:32px}.crest{font-size:36px;color:#ad8343}.eyebrow{font:10px Georgia;letter-spacing:.24em;color:#b39766}h1{font-size:40px;letter-spacing:.2em;line-height:1.1;margin:6px 0 0}.subtitle{font-style:italic;font-size:13px;margin:8px 0 24px;color:#b6a180}.top{display:flex;justify-content:space-between;border-top:1px solid #5e492e;border-bottom:1px solid #5e492e;padding:12px 0;gap:16px}.top>.panel{border:0;background:none;padding:0}.top>.panel:last-child{text-align:right}.room{font-size:23px;letter-spacing:.12em;display:inline-block;margin-top:4px}.top .value{font-size:23px;display:inline-block}.top .status{font-size:12px;margin-top:4px}.text-button{border:0;background:none;color:#bca375;font:10px Georgia;letter-spacing:.1em;padding:6px 10px;cursor:pointer}.game-heading{display:flex;align-items:center;justify-content:space-between;margin:22px 0 16px;gap:12px}.game-heading h2{font-size:25px;font-weight:normal;margin:6px 0 0;color:#efdbaf}.turn-badge{border:1px solid #715934;border-radius:20px;font-size:11px;padding:8px 12px;letter-spacing:.09em;color:#c3ad84}.turn-badge.your-turn{background:#504021;border-color:#b99043;color:#ffe1a0}.play-layout{display:grid;grid-template-columns:180px minmax(280px,1fr) 190px;gap:20px;align-items:stretch}.ledger,.turn-ledger{padding-top:12px}.scoreboard{display:flex;flex-direction:column;gap:8px;margin:14px 0}.score-card{text-align:left;border:0;border-left:2px solid #50412d;padding:12px;background:linear-gradient(90deg,#382b1d66,transparent);position:relative;overflow:hidden}.score-card.active{border-left:2px solid #dcb766;box-shadow:none;background:linear-gradient(90deg,#70532955,transparent)}.score-name{font-size:13px;color:#dbc79e}.score-value{font-size:28px;line-height:1.2;margin:5px 0 8px}.score-track{height:2px;background:#493c28}.score-track span{display:block;height:100%;background:#aa8649}.small{font-size:12px;line-height:1.65;color:#ac9b80}.felt{border:9px solid #3b2a19;outline:1px solid #86643a;box-shadow:inset 0 0 0 1px #ad86404d,inset 0 0 65px #0009,0 8px 24px #0005;border-radius:80px 80px 20px 20px;padding:18px 24px 20px;text-align:center;background:radial-gradient(ellipse at 50% 15%,#3d5542,#233e32 55%,#15291f),#233e32}.felt>.label{color:#c6c5a1;font-size:10px}.table-ornament{color:#b0a274;font-size:19px;margin:0 0 16px;opacity:.75}.dice-grid{margin:22px auto 16px;gap:18px 24px;min-height:158px;align-content:center}.die{border-radius:8px}.die:hover:enabled{transform:translateY(-4px)}.die:disabled{cursor:default}.die[aria-pressed=true]{filter:drop-shadow(0 0 7px #edc25777)}button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #f8d87b;outline-offset:4px}.selected-score{font-size:16px;min-height:25px;color:#fae0a6}.hint{font-size:12px;min-height:34px;line-height:1.5;color:#c1c4aa}.kept-tray{margin-top:20px;border-top:1px solid #a69b6755;padding-top:14px}.tray-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.tray-heading .label{font-size:10px;color:#d0c5a0}.tray-heading .small{color:#aab397}.kept-dice{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;min-height:60px;margin:8px 0}.kept-dice img{width:42px;height:42px;object-fit:contain;opacity:.8}.empty-die{width:37px;height:37px;border:1px dashed #a7b09666;border-radius:6px;color:#a7b09666;display:grid;place-items:center}.felt .small{color:#b8bca2}.turn-ledger{text-align:center}.turn-total{padding:20px 0}.turn-total>span:first-child{font-size:46px;line-height:1.1;color:#f4db9e;display:block}.turn-total .small{font-size:9px;letter-spacing:.12em;display:block;margin-top:8px}.score-line{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#c6b28f;padding:12px 0;border-top:1px solid #55452e}.score-line strong{color:#efdcad;font-size:15px}.bank-line{margin-bottom:10px}.turn-actions{display:grid;gap:10px}.action{padding:13px 16px;letter-spacing:.06em;font-size:12px}.roll-action{background:linear-gradient(#77582c,#483017);border-color:#b18a46;color:#ffe4ac}.bank-action{background:linear-gradient(#29483b,#192d25);border-color:#66836c;color:#d9e8cb}.action:disabled{opacity:.38}.history{margin-top:24px;min-height:0;border-color:#58462c;font-size:12px;padding-top:14px}summary{cursor:pointer;letter-spacing:.15em;color:#bda77e;font-size:10px}.history #history{padding:14px 0 4px;line-height:1.8}.history-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #463a29}.history-row img{width:28px;height:28px}.history-row strong{margin-left:auto;color:#dfc48e}.history-row .small{font-size:10px}.notice{min-height:18px;font-size:13px}.eventMessage,.event #eventMessage{background:#211b12;border-color:#9b7c45;padding:30px}.event img{max-height:70vh;object-fit:contain;box-shadow:none}.event .notice{color:#e7d6b4}.setup{padding:12px}.setup input,.setup select{width:100%}.lobby-grid{margin-top:20px}.player-card{background:#231b12}.game-heading .eyebrow{font-size:9px}
@media(max-width:1000px){.board{padding:20px}.play-layout{grid-template-columns:140px minmax(270px,1fr) 160px;gap:12px}.felt{padding:16px}.text-button{display:block;padding-left:0}}
@media(max-width:760px){body{padding:8px}.board{padding:18px 14px}.masthead{gap:22px}h1{font-size:32px}.subtitle{font-size:11px}.play-layout{grid-template-columns:minmax(0,1fr);gap:18px}.ledger{order:0;padding:0}.ledger>.label,.ledger>p{display:none}.scoreboard{flex-direction:row;margin:0;overflow-x:auto;gap:6px}.score-card{min-width:110px;flex:1;padding:8px}.score-value{font-size:22px}.felt{order:1;border-radius:50px 50px 16px 16px}.turn-ledger{order:2;display:grid;grid-template-columns:1fr 1fr;column-gap:20px;padding:0}.turn-ledger>.label{grid-column:1/-1;text-align:left}.turn-total{grid-row:2/4;padding:14px 0}.turn-total>span:first-child{font-size:38px}.score-line{padding:10px 0}.turn-actions{grid-column:1/-1;grid-template-columns:1fr 1fr}.turn-ledger>p{grid-column:1/-1;margin-bottom:0}.game-heading{margin:16px 0}.game-heading h2{font-size:21px}.turn-badge{font-size:9px}.history{margin-top:14px}.dice-grid{gap:12px 20px;min-height:152px}.top{padding:10px 0}.top .label{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Pandy's wooden tavern table. */
.masthead>div{text-align:center;min-width:0}.masthead h1{font-size:clamp(25px,4vw,40px);letter-spacing:.06em}.masthead .eyebrow{text-align:center}
.felt{background:radial-gradient(ellipse at 48% 22%,#d7a15c22,transparent 65%),repeating-linear-gradient(2deg,transparent 0 3px,#23100622 4px,transparent 5px 11px),repeating-linear-gradient(90deg,#704725 0,#80532c 62px,#623b1f 120px,#301b0e 122px,#986537 125px,#704725 128px);border-color:#432814;box-shadow:inset 0 0 0 1px #cc995455,inset 0 0 65px #180b08aa,0 8px 24px #0005}
.felt>.label,.tray-heading .label{color:#edcf9b}.table-ornament{color:#e1b86e}.felt .hint,.felt .small,.tray-heading .small{color:#e1c7a4}.kept-tray{border-color:#d9b57b66}.empty-die{border-color:#dfba8166;color:#dfba8166}.bank-action{background:linear-gradient(#66502f,#352515);border-color:#a78a57;color:#f5dfb9}
@media(max-width:450px){.masthead{gap:10px}.crest{font-size:24px}.masthead .eyebrow{font-size:8px;letter-spacing:.18em}}
