/* Vintage team colors applied to the original print-and-play artwork. */
:root{--paper:#f1e8d4;--ink:#263e3d;--liberal:#317f91;--fascist:#a54a3e;--brass:#be9851}
body{background:#e2dbc7;color:#31463f}.game-shell{border-color:#b5b79d!important;box-shadow:0 6px 28px #142e241c}.table{background:#dce1cc}.felt{background-color:#244b40;border-color:#bdc7a7;box-shadow:0 0 0 1px #8b9f7d,inset 0 0 65px #102c2440}
.mini-brand{color:#304537}.toolbar #settings{background:#ede9d9df;color:#38513d;border-color:#9eaf89}.toolbar #table-room,.toolbar-count{color:#758363}
.board{background:#e2eee6;border-color:#698c8c;color:#31545e}.board:before{border-color:#94aba2}.board.fascist{background:#edddc6;border-color:#b4785d;color:#854736}.board-heading>span,.board-options>span{color:inherit}.board-options select{background:#f4e7cf;border-color:#c29b77;color:#80533d}
.liberal .slots{filter:contrast(1.08) sepia(.55) saturate(1.6) hue-rotate(125deg)}.fascist .slots{filter:contrast(1.08) sepia(.65) saturate(1.65) hue-rotate(325deg)}
.slot-index{background:#faf2dbe0;border-color:#a2a793;color:#60745e}.fascist .slot-index{border-color:#ba9878;color:#956045}
.election{color:#e5e0c8}.election small{color:#aabc9b}.election i{border-color:#bdb793;outline-color:#859e7d}.election i.filled{background:#dfb665;border-color:#f1d597;box-shadow:0 0 7px #e6c66b50}
.avatar{background:#f2ecd7;border-color:#b7c09e;color:#536944}.seat.mine .avatar{background:#3b624e;color:#f6efd7;outline-color:#8da37c;border-color:#ece7d3}.seat strong{color:#3e5337}.seat small{color:#8b9977}.seat .badge{background:#a3884b;color:#fff4d7}
.seat .office{background:#b38a43;color:#fff2d0;border-color:#f3e7c9}.seat .office.chancellor{background:#386c7a;color:#e7f4ed;border-color:#d3e6da}.seat.president .avatar{outline-color:#b68e47}.seat.chancellor .avatar{outline-color:#507e86}
.seat-vote.yes{background:#dcebd3;color:#345c39;border-color:#8faa78}.seat-vote.no{background:#a45942;color:#ffedcf;border-color:#d3ae83}
.pile .eyebrow{color:#adbea1}.pile strong{color:#d9e5c9}.pile-count{color:#a8bc93}.policy-back{filter:contrast(1.15) sepia(.6) saturate(1.1) hue-rotate(25deg)}.empty-card{filter:contrast(1.12) sepia(.6) saturate(1.2) hue-rotate(335deg)}
.policy-choice.liberal .policy-art{filter:contrast(1.17) sepia(.65) saturate(1.8) hue-rotate(130deg)}.policy-choice.fascist .policy-art{filter:contrast(1.17) sepia(.8) saturate(2) hue-rotate(325deg)}
.vote-yes .ballot-art{filter:contrast(1.12) sepia(.4) saturate(1.6) hue-rotate(55deg)}.vote-no .ballot-art{filter:contrast(1.12) sepia(.75) saturate(1.8) hue-rotate(320deg)}
.role{border-color:#d7c8a2;background:#2f4942}.role-back{background-color:#334b49;border-color:#b7a876;color:#f4e5ba}.role-back small{color:#d8c69b}.role-front{background:#f0e6d1}.role-detail{color:#425844}.role-detail p{color:#7b8265}
.role-art.role-liberal,.role-reveal-art.role-liberal{filter:contrast(1.12) sepia(.5) saturate(1.4) hue-rotate(120deg)}.role-art.role-fascist,.role-reveal-art.role-fascist{filter:contrast(1.12) sepia(.75) saturate(1.75) hue-rotate(320deg)}.role-art.role-hitler,.role-reveal-art.role-hitler{filter:contrast(1.2) sepia(.8) saturate(1.8) hue-rotate(340deg)}
.phase-overlay{background:#051710ad}.phase-content{color:#f3e7c7}.phase-content p,.phase-content>small{color:#d0d8bb}.phase-content .primary{background:#bda163!important;color:#273c32!important;border-color:#d2bd7d!important}.phase-content button:not(.ballot-card):not(.policy-choice):not(.primary){background:#e4ead3;color:#415839;border-color:#a4b78f}
.table-message{color:#baccac}.enact-emblem{color:#e0bc6c}.private-result{background:#d9e6c6;color:#456139!important}.discussion-dock{background:#f1e9d0;border-color:#b9be90;color:#455c3b}.discussion-dock .primary,.action-panel .primary{background:#537346;color:#fff3d3;border-color:#789266}.timer-progress{background:#d4d7b5}.timer-progress i{background:#7c9f60}.timer-value{color:#536c43}
dialog{background:#eee6ce;border-color:#aeb58c;color:#405437}dialog input,dialog select{background:#f7f1df;border-color:#b7c099;color:#4f6742}.history,.history p{color:#7c8e69}.primary{background:#53764a;border-color:#53764a}
.role-dock[hidden]{display:none}
.reveal-scene{width:170px;height:249px;perspective:1100px;margin:18px auto 14px;animation:roleFloatIn .55s both}
.reveal-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;animation:secretRoleFlip 1.65s .15s cubic-bezier(.35,.05,.2,1) both}
.reveal-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:4px double #dbbc74;border-radius:5px;overflow:hidden;box-shadow:0 10px 35px #0007}
.reveal-back{background:#2e4548;background-image:repeating-linear-gradient(45deg,transparent,transparent 10px,#fff1 10px,#fff1 11px);display:flex;align-items:center;justify-content:center;flex-direction:column;color:#ecd7a5;padding:10px}
.reveal-back:before{content:'';position:absolute;inset:9px;border:1px dotted #c7aa65;pointer-events:none}.reveal-back small{font-size:8px;letter-spacing:2px}.reveal-back strong{font:900 25px Georgia,serif;letter-spacing:3px;white-space:pre-line;line-height:1.5;margin:25px 0}.reveal-back span{font-size:10px;letter-spacing:3px}
.reveal-front{transform:rotateY(180deg);background:#e7ddc3}.role-reveal-art{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.reveal-details{max-width:480px;margin:auto;animation:revealDetailsIn .5s 1.7s both}.reveal-details>strong{font-size:20px;font-weight:900;letter-spacing:1px;color:#eddbab}.reveal-details p{font-size:11px;margin:8px 0;line-height:1.6}.reveal-details>small{display:block;color:#c7d1ad;font-size:10px;line-height:1.6}
.phase-content .reveal-confirm{margin-top:12px;animation:revealDetailsIn .5s 1.7s both}.phase-content .reveal-progress{font-size:9px;margin-top:9px}.phase-content:has(.reveal-scene) h2{font-size:clamp(23px,3vw,34px);margin-bottom:8px}.phase-content:has(.reveal-scene)>p{font-size:11px;margin:6px 0}
@keyframes secretRoleFlip{0%,32%{transform:rotateY(0) scale(.94)}72%{transform:rotateY(195deg) scale(1.035)}100%{transform:rotateY(180deg) scale(1)}}
@keyframes roleFloatIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
@keyframes revealDetailsIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-height:700px),(max-width:1000px){.reveal-scene{width:145px;height:213px;margin:12px auto 10px}.reveal-details>strong{font-size:17px}.reveal-details p{font-size:10px}.phase-content .reveal-confirm{padding:8px 16px}.phase-content:has(.reveal-scene) h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){.reveal-inner{animation:none!important;transform:rotateY(180deg)}.reveal-details,.reveal-confirm{opacity:1;animation:none!important}}
