@font-face{font-family:Oswald;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/oswald-latin.woff2) format("woff2")}@font-face{font-family:Cinzel;font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/fonts/cinzel-latin.woff2) format("woff2")}:root{--ink: #0b0906;--ink-2: #15120c;--ink-3: #201a11;--ink-4: #2b2317;--gold: #c9a227;--gold-bright: #e8c968;--gold-dim: #7a6220;--cream: #f0e6d2;--cream-dim: #bdb093;--rust: #c1552c;--rust-bright: #e0703f;--rust-dim: #7a3a20;--teal: #3f9188;--teal-bright: #57b3a8;--teal-dim: #285c56;--danger: var(--rust-bright);--success: var(--teal-bright);--font-heading: "Oswald", "Arial Narrow", "Helvetica Neue", sans-serif;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius: 3px;--shadow-panel: 0 8px 30px rgba(0, 0, 0, .55);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--ink);color:var(--cream);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%;overflow-wrap:break-word}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-heading);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-bright);margin:0 0 .6em}h1{font-size:1.9rem;letter-spacing:.06em}h2{font-size:1.15rem;border-bottom:1px solid var(--gold-dim);padding-bottom:.3em}h3{font-size:1rem;color:var(--cream)}a{color:var(--teal-bright)}a:hover{color:var(--gold-bright)}p{margin:0 0 .75em}::selection{background:var(--rust-dim);color:var(--cream)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--ink-2)}::-webkit-scrollbar-thumb{background:var(--gold-dim);border-radius:6px}input,select,textarea,button{font-family:var(--font-body);font-size:.95rem}input[type=text],input[type=number],input:not([type]){background:var(--ink-2);border:1px solid var(--gold-dim);color:var(--cream);padding:.4em .6em;border-radius:var(--radius)}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--teal-bright);outline-offset:1px}button{background:var(--ink-3);color:var(--cream);border:1px solid var(--gold-dim);border-radius:var(--radius);padding:.45em .9em;font-family:var(--font-heading);letter-spacing:.03em;text-transform:uppercase;font-size:.82rem;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}button:hover:not(:disabled){background:var(--rust-dim);border-color:var(--gold-bright);color:var(--cream)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--rust);border-color:var(--gold-bright)}button.primary:hover:not(:disabled){background:var(--rust-bright)}button.card-choice-btn{background:none;border:none;padding:0;cursor:pointer;border-radius:6px;transition:transform .15s}button.card-choice-btn:hover:not(:disabled){transform:translateY(-4px);background:none}button.card-choice-btn:focus-visible{outline-offset:3px}.screen{position:relative;min-height:100vh;min-height:100dvh;background-color:var(--ink);background-size:cover;background-position:center;display:flex;flex-direction:column;align-items:center}.screen:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#080604b8,#080604d9 55%,#080604f0);pointer-events:none}.screen-splash{background-image:url(/assets/bg_splash.webp)}.screen-lobby{background-image:url(/assets/bg_lobby.webp)}.screen-game{background-image:url(/assets/bg_game.webp)}.screen-content{position:relative;width:100%;max-width:920px;padding:1.25rem;margin:0 auto}.panel{background:#15120cdb;border:1px solid var(--gold-dim);border-radius:var(--radius);box-shadow:var(--shadow-panel);padding:1rem 1.1rem;margin-bottom:1rem;backdrop-filter:blur(2px)}.deco-frame{position:relative;border:1px solid var(--gold)}.deco-frame:before,.deco-frame:after{content:"";position:absolute;width:16px;height:16px;border:2px solid var(--gold-bright)}.deco-frame:before{top:-1px;left:-1px;border-right:none;border-bottom:none}.deco-frame:after{bottom:-1px;right:-1px;border-left:none;border-top:none}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.row-between{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between}.stack{display:flex;flex-direction:column;gap:.5rem}.muted{color:var(--cream-dim)}.error-text{color:var(--danger)}.center{text-align:center}.scroll-list{max-height:220px;overflow-y:auto;padding-right:.25rem}ul.plain{list-style:none;margin:0;padding:0}ul.plain li{padding:.3em 0;border-bottom:1px solid rgba(201,162,39,.15)}ul.plain li:last-child{border-bottom:none}.pill{display:inline-block;padding:.1em .5em;border:1px solid var(--gold-dim);border-radius:999px;font-size:.75rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.04em}.pill.rust{border-color:var(--rust);color:var(--rust-bright)}.pill.teal{border-color:var(--teal);color:var(--teal-bright)}.seat-you{color:var(--gold-bright);font-weight:600}.badge{display:inline-flex;align-items:center;justify-content:center;width:1.1em;height:1.1em;vertical-align:-.15em;margin-right:.3em;border-radius:50%}.badge img{width:100%;height:100%;object-fit:contain}.badge-fallback{width:100%;height:100%;border-radius:50%;display:block}.badge-steel .badge-fallback{background:linear-gradient(145deg,#9aa1a8,#5c6167);border:1px solid #cfd4d8}.badge-bronze .badge-fallback{background:linear-gradient(145deg,#b97a44,#7a4c25);border:1px solid #e3a56b}.badge-silver .badge-fallback{background:linear-gradient(145deg,#e6e9ed,#a7adb4);border:1px solid #ffffff}.badge-rainbow .badge-fallback{border:1px solid rgba(255,255,255,.8);background:conic-gradient(from 0deg,#ff5b5b,#ffd35b,#6bff8f,#5bd0ff,#b46bff,#ff5b5b);animation:badge-spin 3.5s linear infinite}@keyframes badge-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.badge-rainbow .badge-fallback{animation:none}}.card{--card-w: 64px;--card-h: 90px;width:var(--card-w);height:var(--card-h);perspective:600px;display:inline-block}.card.card-large{--card-w: 110px;--card-h: 154px}.card-inner{position:relative;width:100%;height:100%;transition:transform .6s cubic-bezier(.4,.2,.2,1);transform-style:preserve-3d}.card.flipped .card-inner{transform:rotateY(180deg)}.card-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:6px;border:1px solid var(--gold-dim);overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;box-shadow:0 3px 10px #00000080}.card-face img{width:100%;height:100%;object-fit:cover}.card-back{transform:rotateY(180deg)}.card-face-label{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.05em;font-size:.8em;padding:.3em}.card-placeholder-policy-liberal{background:linear-gradient(160deg,var(--teal-dim),var(--ink-3));color:var(--teal-bright)}.card-placeholder-policy-fascist{background:linear-gradient(160deg,var(--rust-dim),var(--ink-3));color:var(--rust-bright)}.card-placeholder-ballot-ja{background:linear-gradient(160deg,var(--teal-dim),var(--ink-3));color:var(--teal-bright)}.card-placeholder-ballot-nein{background:linear-gradient(160deg,var(--rust-dim),var(--ink-3));color:var(--rust-bright)}.card-placeholder-role-liberal{background:linear-gradient(160deg,var(--teal-dim),var(--ink-3));color:var(--teal-bright)}.card-placeholder-role-fascist{background:linear-gradient(160deg,var(--rust-dim),var(--ink-3));color:var(--rust-bright)}.card-placeholder-role-hitler{background:linear-gradient(160deg,#4a1414,var(--ink-3));color:#ff8a6a}.card-placeholder-back{background:repeating-linear-gradient(45deg,rgba(201,162,39,.12) 0 6px,transparent 6px 12px),var(--ink-3);color:var(--gold-dim);font-size:1.4em}.party-card{--card-w: 140px;--card-h: 210px}.party-card.card-large{--card-w: 220px;--card-h: 330px}@media(max-width:640px){.party-card{--card-w: 110px;--card-h: 165px}.party-card.card-large{--card-w: 170px;--card-h: 255px}}.party-card-face{position:relative;background:var(--ink-2)}.card-placeholder-party-liberal{background:linear-gradient(160deg,#16283a,var(--ink-3))}.card-placeholder-party-fascist{background:linear-gradient(160deg,#3a1616,var(--ink-3))}.party-overlay{position:absolute;display:flex;font-family:"Cinzel",var(--font-heading);font-weight:700;color:var(--gold);background:linear-gradient(180deg,var(--gold-bright) 20%,var(--gold) 60%,var(--gold-dim) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 1px 1px rgba(0,0,0,.55)}.party-banner-text{align-items:center;justify-content:center;text-align:center;letter-spacing:.12em;font-size:calc(var(--card-w) * .115);line-height:1}.party-panel-heading{align-items:center;justify-content:flex-start;text-align:left;letter-spacing:.03em;font-size:calc(var(--card-w) * .078);line-height:1.05}.party-panel-body{align-items:flex-start;justify-content:flex-start;text-align:left;font-weight:500;letter-spacing:.01em;font-size:calc(var(--card-w) * .042);line-height:1.3}.board-wrap{width:100%;max-width:720px;margin:0 auto 1rem}.board{position:relative;width:100%;aspect-ratio:16 / 7;background-color:var(--ink-2);background-size:cover;background-position:center;border:1px solid var(--gold-dim);border-radius:var(--radius);box-shadow:var(--shadow-panel);overflow:hidden}.board.board-placeholder{background-image:linear-gradient(180deg,rgba(201,162,39,.05),transparent 20%,transparent 80%,rgba(201,162,39,.05)),repeating-linear-gradient(90deg,rgba(240,230,210,.03) 0 2px,transparent 2px 40px)}.board-slot{position:absolute;transform:translate(-50%,-50%);width:11%;aspect-ratio:5 / 7;display:flex;align-items:center;justify-content:center}.board-slot-empty{width:100%;height:100%;border:1px dashed rgba(240,230,210,.3);border-radius:4px}.board-power-label{position:absolute;top:100%;margin-top:.2em;white-space:nowrap;font-family:var(--font-heading);font-size:.6rem;letter-spacing:.03em;text-transform:uppercase;color:var(--gold-bright);text-shadow:0 1px 3px rgba(0,0,0,.9)}.board-tracker{position:absolute;bottom:3%;left:50%;transform:translate(-50%);font-family:var(--font-heading);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--cream);background:#0b0906bf;padding:.15em .7em;border-radius:999px;border:1px solid var(--gold-dim)}@media(max-width:640px){html,body{font-size:15px}.screen-content,.panel{padding:.75rem}h1{font-size:1.5rem}.card{--card-w: 48px;--card-h: 68px}.card.card-large{--card-w: 78px;--card-h: 110px}.board-power-label{font-size:.5rem}button{padding:.5em .8em;font-size:.78rem}.row,.row-between{gap:.4rem}}@media(max-width:380px){.board-slot{width:13%}}
