:root{--ink:#16151a;--ink-raised:#1e1c22;--paper:#ece6d9;--paper-dim:#a9a291;--blood:#9c2b2b;--blood-bright:#c23a3a;--gold:#c8a24c;--line:#ece6d924;--font-display:"Fraunces",Georgia,serif;--font-body:"Manrope",-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}#root,body,html{height:100%}body{-webkit-font-smoothing:antialiased;background:#16151a;background:var(--ink);color:#ece6d9;color:var(--paper);font-family:Manrope,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body);margin:0;overflow-x:hidden}.app-shell{display:flex;justify-content:center;min-height:100vh;padding:48px 20px 80px}@media (max-width:600px){.app-shell{padding:20px 12px 100px}}.screen{width:100%}.eyebrow-mark{color:#c23a3a;color:var(--blood-bright);font-family:Manrope,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body);font-size:13px;letter-spacing:.02em;margin:0 0 6px}h1{font-size:34px;line-height:1.15;margin:0 0 12px}h1,h2{font-family:Fraunces,Georgia,serif;font-family:var(--font-display);font-weight:600}h2{border-bottom:1px solid #ece6d924;border-bottom:1px solid var(--line);font-size:20px;margin:0 0 14px;padding-bottom:8px}.lede{color:#a9a291;color:var(--paper-dim);line-height:1.5;margin:0;max-width:52ch}.setup-screen{margin:0 auto;max-width:640px}.setup-header{margin-bottom:32px}.add-player-row{display:flex;gap:10px;margin-bottom:24px}@media (max-width:480px){h1{font-size:26px}.add-player-row{flex-wrap:wrap}.add-player-row .text-input{flex-basis:100%}.add-player-row .btn{flex:1 1}}.text-input{background:#1e1c22;background:var(--ink-raised);border:1px solid #ece6d924;border:1px solid var(--line);border-radius:3px;color:#ece6d9;color:var(--paper);flex:1 1;font-family:Manrope,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body);font-size:16px;padding:11px 14px}.text-input:focus,select:focus{border-color:#c8a24c;border-color:var(--gold);outline:none}.text-input-small{flex:none;width:72px}.btn{border:1px solid #0000;border-radius:3px;cursor:pointer;font-family:Manrope,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body);font-size:14px;font-weight:600;min-height:44px;padding:11px 20px;transition:background-color .15s ease,border-color .15s ease}.btn:disabled{cursor:not-allowed;opacity:.45}.btn-accent{background:#9c2b2b;background:var(--blood);color:#ece6d9;color:var(--paper)}.btn-accent:hover:not(:disabled){background:#c23a3a;background:var(--blood-bright)}.btn-primary{background:#c8a24c;background:var(--gold);border-color:#c8a24c;border-color:var(--gold);color:#21160a}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-large{font-size:15px;padding:14px 28px}.btn-ghost{background:#0000;border:1px solid #ece6d924;border:1px solid var(--line);color:#a9a291;color:var(--paper-dim)}.btn-ghost:hover:not(:disabled){border-color:#a9a291;border-color:var(--paper-dim);color:#ece6d9;color:var(--paper)}.btn-small{font-size:13px;padding:7px 12px}.player-setup-list{border-top:1px solid #ece6d924;border-top:1px solid var(--line);list-style:none;margin:0 0 20px;padding:0}.player-setup-row{align-items:center;border-bottom:1px solid #ece6d924;border-bottom:1px solid var(--line);display:flex;gap:12px;padding:12px 0}.player-setup-name{flex:1 1;font-size:16px;min-width:0;overflow-wrap:anywhere}@media (max-width:480px){.player-setup-row{flex-wrap:wrap}.player-setup-name{flex-basis:100%}.role-select{flex:1 1}}.role-select{background:#1e1c22;background:var(--ink-raised);border:1px solid #ece6d924;border:1px solid var(--line);border-radius:3px;color:#ece6d9;color:var(--paper);font-family:Manrope,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body);font-size:16px;padding:8px 10px}.role-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}.role-chip{border:1px solid #ece6d924;border:1px solid var(--line);border-radius:999px;color:#a9a291;color:var(--paper-dim);font-size:13px;padding:5px 11px}.role-chip-mafia{border-color:#9c2b2b99;color:#c23a3a;color:var(--blood-bright)}.role-chip-town{border-color:#c8a24c80;color:#c8a24c;color:var(--gold)}.role-chip-solo{border-color:#ece6d966}.empty-state{border:1px dashed #ece6d924;border:1px dashed var(--line);border-radius:4px;color:#a9a291;color:var(--paper-dim);margin-bottom:24px;padding:28px;text-align:center}.empty-state-small{padding:18px}.setup-footer{border-top:1px solid #ece6d924;border-top:1px solid var(--line);padding-top:24px}.hint-text{color:#a9a291;color:var(--paper-dim)}.error-text,.hint-text{font-size:14px;margin:0 0 12px}.error-text{color:#c23a3a;color:var(--blood-bright)}.game-screen{margin:0 auto;max-width:1180px}.game-header{align-items:flex-end;border-bottom:1px solid #ece6d924;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:28px;padding-bottom:20px}.game-header h1{font-size:26px;margin:0}.side-summary{color:#a9a291;color:var(--paper-dim);font-size:13px;margin:6px 0 0}.win-banner{border:1px solid #ece6d924;border:1px solid var(--line);border-radius:4px;font-size:14px;margin:0 0 20px;padding:12px 16px}.win-banner-town{background:#c8a24c14;border-color:#c8a24c80;color:#c8a24c;color:var(--gold)}.win-banner-mafia{background:#9c2b2b1a;border-color:#9c2b2b99;color:#c23a3a;color:var(--blood-bright)}.pick-hint{align-items:center;background:#c8a24c1a;border-radius:4px;display:flex;font-size:14px;gap:12px;justify-content:space-between;margin:0 0 20px;padding:10px 16px}.pick-hint,.pick-hint-cancel{border:1px solid #c8a24c;border:1px solid var(--gold);color:#c8a24c;color:var(--gold)}.pick-hint-cancel{background:#0000;border-radius:3px;cursor:pointer;flex-shrink:0;font-size:13px;padding:5px 10px}.round-controls{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.game-timer{align-items:baseline;background:#1e1c22;background:var(--ink-raised);border:1px solid #ece6d924;border:1px solid var(--line);border-radius:3px;display:flex;gap:8px;padding:8px 14px}.game-timer-label{color:#a9a291;color:var(--paper-dim);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.game-timer-value{font-feature-settings:"tnum";color:#c8a24c;color:var(--gold);font-size:18px;font-variant-numeric:tabular-nums;font-weight:600}@media (max-width:600px){.game-header{align-items:stretch;gap:14px;margin-bottom:20px;padding-bottom:16px}.game-header h1{font-size:21px}.game-timer{justify-content:center;width:100%}.round-controls{justify-content:space-between;width:100%}.btn-toggle,.phase-toggle{flex:1 1}}.field{color:#a9a291;color:var(--paper-dim);display:flex;flex-direction:column;font-size:13px;gap:6px;margin-bottom:14px}.field .text-input,.field select{color:#ece6d9;color:var(--paper);font-size:14px}.field-inline{align-items:center;flex-direction:row;gap:8px;margin-bottom:0}.round-stepper{align-items:stretch;border:1px solid #ece6d924;border:1px solid var(--line);border-radius:3px;display:flex;overflow:hidden}.btn-stepper{background:#1e1c22;background:var(--ink-raised);font-size:20px;line-height:1;min-height:44px;min-width:44px;padding:0}.btn-stepper,.round-input{border:none;border-radius:0}.round-input{border-left:1px solid #ece6d924;border-left:1px solid var(--line);border-right:1px solid #ece6d924;border-right:1px solid var(--line);flex:none;font-size:16px;text-align:center;width:52px}.phase-toggle{border:1px solid #ece6d924;border:1px solid var(--line);border-radius:3px;display:flex;overflow:hidden}.btn-toggle{background:#0000;border:none;border-radius:0;color:#a9a291;color:var(--paper-dim);padding:9px 16px}.btn-toggle-active{background:#1e1c22;background:var(--ink-raised);color:#c8a24c;color:var(--gold)}.game-layout{grid-gap:28px;align-items:start;display:grid;gap:28px;grid-template-columns:1.1fr 1fr 1.1fr}@media (max-width:900px){.game-layout{grid-template-columns:1fr}}@media (max-width:600px){.game-layout{gap:20px}}.game-column-subheading{margin-top:28px}.player-board{list-style:none;margin:0;padding:0}.player-card{align-items:center;background:#1e1c22;background:var(--ink-raised);border:1px solid #ece6d924;border:1px solid var(--line);border-radius:3px;display:flex;gap:12px;justify-content:space-between;margin-bottom:8px;padding:12px 14px}.player-card-out{opacity:.5}.player-card-main{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}.player-card .btn{flex-shrink:0}.player-card-name{font-size:15px}.player-card-role{font-size:12px}.role-color-don{color:#7f1d1d}.role-color-mafia{color:#d33a3a}.role-color-maniac{color:#43b85c}.role-color-sheriff{color:#263f8f}.role-color-sergeant{color:#3f82d8}.role-color-doctor{color:#e56b9f}.role-color-civilian{color:#c8a24c;color:var(--gold)}.player-out-badge{color:#a9a291;color:var(--paper-dim);font-size:12px}.player-card-tag{color:#c8a24c;color:var(--gold);font-weight:400}.player-board-picking .player-card{transition:border-color .15s ease,opacity .15s ease,transform .1s ease}.player-card-pickable{border-color:#c8a24c;border-color:var(--gold);cursor:pointer}.player-card-pickable:focus-visible,.player-card-pickable:hover{border-color:#c8a24c;border-color:var(--gold);outline:none;transform:translateY(-1px)}.player-card-pickable:active{transform:translateY(0)}.player-card-dimmed{opacity:.4}.player-card-selected-actor,.player-card-selected-target{background:#c8a24c1f;border-color:#c8a24c;border-color:var(--gold)}.picker-field{align-items:stretch;background:#16151a;background:var(--ink);border:1px solid #ece6d924;border:1px solid var(--line);border-radius:3px;display:flex;min-height:44px;overflow:hidden;width:100%}.picker-field-active{border-color:#c8a24c;border-color:var(--gold)}.picker-field-btn{align-items:center;background:none;border:none;color:#ece6d9;color:var(--paper);cursor:pointer;display:flex;flex:1 1;font-family:Manrope,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body);font-size:15px;gap:8px;min-width:0;padding:9px 12px;text-align:left}.picker-field-placeholder{color:#a9a291;color:var(--paper-dim)}.picker-field-chip-name{flex:1 1 auto;font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-field-chip-role{flex-shrink:0;font-size:14px;font-weight:600;margin-left:auto;white-space:nowrap}.picker-field-clear{align-items:center;align-self:stretch;background:none;border:none;border-left:1px solid #ece6d924;border-left:1px solid var(--line);border-radius:0;color:#a9a291;color:var(--paper-dim);cursor:pointer;display:flex;flex:0 0 40px;font-size:18px;justify-content:center;line-height:1;margin:0;max-width:40px;min-width:40px;padding:0;transition:color .15s ease,background-color .15s ease;width:40px}.picker-field-clear:hover{background:#ece6d90f;color:#ece6d9;color:var(--paper)}.form-inline-error{margin-top:-6px}.night-order{background:#1e1c22;background:var(--ink-raised);border:1px solid #ece6d924;border:1px solid var(--line);border-radius:4px;margin-bottom:20px;padding:16px 20px}.night-order h3{font-family:Fraunces,Georgia,serif;font-family:var(--font-display);font-size:16px;margin:0 0 12px}.night-order-list{list-style:none;margin:0;padding:0}.night-order-item{align-items:baseline;color:#a9a291;color:var(--paper-dim);display:flex;font-size:13px;gap:8px;padding:6px 0}.night-order-marker{flex-shrink:0;text-align:center;width:14px}.night-order-done{opacity:.5;text-decoration:line-through}.night-order-current{color:#ece6d9;color:var(--paper);opacity:1}.night-order-current .night-order-marker{color:#c8a24c;color:var(--gold)}.night-order-role{font-weight:600}.night-order-names{color:inherit}.night-order-action{color:#a9a291;color:var(--paper-dim)}.action-form{background:#1e1c22;background:var(--ink-raised);border:1px solid #ece6d924;border:1px solid var(--line);border-radius:4px;padding:20px}.action-form h3{font-family:Fraunces,Georgia,serif;font-family:var(--font-display);font-size:18px;margin:0 0 16px}.round-timer{background:#1e1c22;background:var(--ink-raised);border:1px solid #ece6d924;border:1px solid var(--line);border-radius:4px;margin-top:24px;padding:20px;transition:border-color .2s ease}.round-timer h3{font-family:Fraunces,Georgia,serif;font-family:var(--font-display);font-size:18px;margin:0 0 14px}.round-timer-presets{display:flex;flex-wrap:wrap;gap:8px}.round-timer-presets .btn{flex:1 1;min-width:78px}.round-timer-display-row{align-items:center;border-top:1px solid #ece6d924;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-top:16px;padding-top:16px}.round-timer-display{font-feature-settings:"tnum";color:#c8a24c;color:var(--gold);font-family:Fraunces,Georgia,serif;font-family:var(--font-display);font-size:32px;font-variant-numeric:tabular-nums;font-weight:600}.round-timer-actions{display:flex;gap:8px}.round-timer-done{animation:round-timer-pulse 1s ease-in-out infinite;border-color:#c23a3a;border-color:var(--blood-bright)}.round-timer-done .round-timer-display{color:#c23a3a;color:var(--blood-bright)}@keyframes round-timer-pulse{0%,to{background:#1e1c22;background:var(--ink-raised)}50%{background:#9c2b2b40}}@media (max-width:600px){.round-timer-display{font-size:28px}.round-timer-display-row{justify-content:center;text-align:center}}.action-form select{background:#16151a;background:var(--ink);border:1px solid #ece6d924;border:1px solid var(--line);border-radius:3px;font-size:16px;min-height:44px;padding:9px 10px;width:100%}.action-form>.btn{width:100%}@media (max-width:600px){.action-form,.round-timer{padding:16px}}.action-log-toolbar{display:flex;justify-content:flex-end;margin-bottom:10px}.action-log{counter-reset:log;list-style:none;margin:0;padding:0}.action-log-row{border-bottom:1px solid #ece6d924;border-bottom:1px solid var(--line);padding:12px 0}.action-log-meta{color:#a9a291;color:var(--paper-dim);display:block;font-size:12px;margin-bottom:4px}.action-log-body{font-size:14px;line-height:1.5}.action-log-note{color:#a9a291;color:var(--paper-dim)}.game-footer{border-top:1px solid #ece6d924;border-top:1px solid var(--line);display:flex;justify-content:flex-end;margin-top:40px;padding-top:20px}@media (max-width:600px){.game-footer{margin-top:28px}.game-footer .btn{width:100%}}.modal-backdrop{align-items:center;background:#16151ab8;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:50}.modal-dialog{background:#1e1c22;background:var(--ink-raised);border:1px solid #ece6d924;border:1px solid var(--line);border-radius:6px;box-shadow:0 20px 60px #0006;max-width:420px;padding:24px;width:100%}.modal-title{font-family:Fraunces,Georgia,serif;font-family:var(--font-display);font-size:19px;margin:0 0 10px}.modal-message{color:#a9a291;color:var(--paper-dim);font-size:14px;line-height:1.5;margin:0 0 20px}.modal-actions{display:flex;gap:10px;justify-content:flex-end}@media (max-width:480px){.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}}
/*# sourceMappingURL=main.e00f38bf.css.map*/