*{box-sizing:border-box}body{color:#1e293b;-webkit-font-smoothing:antialiased;background:#eff6ff;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}#root{min-height:100vh}h1,h2,h3{color:#1e3a5f;margin:0 0 8px}a{color:#60a5fa}input[type=text],input[type=password],input[type=number]{color:#1e293b;background:#fff;border:1px solid #bfdbfe;border-radius:8px;padding:8px 12px;font-size:14px}input:focus{border-color:#3b82f6;outline:none}button{cursor:pointer;color:#fff;background:#3b82f6;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;transition:background .15s}button:hover:not(:disabled){background:#2563eb}button:disabled{opacity:.5;cursor:not-allowed}.page-center{text-align:center;background:#fff;border-radius:16px;max-width:400px;margin:60px auto;padding:32px;box-shadow:0 4px 24px #0000001a}.page-center h2{margin-bottom:20px}.form-group{margin-bottom:12px}.form-group input{width:100%}.form-group label{text-align:left;color:#64748b;margin-bottom:4px;font-size:13px;display:block}.btn-row{justify-content:center;gap:8px;margin-top:16px;display:flex}.error-msg{color:#f87171;margin-top:12px;font-size:13px}.success-msg{color:#4ade80;margin-top:12px;font-size:13px}.text-muted{color:#64748b;font-size:14px}.text-gold{color:#d97706;font-weight:600}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}hr{border:none;border-top:1px solid #e2e8f0;margin:20px 0}.section{text-align:left;margin-bottom:20px}.section h3{margin-bottom:8px;font-size:15px}.inline-group{align-items:center;gap:8px;display:flex}.leaderboard-wrap{margin-top:8px;position:relative}.leaderboard-scroll{max-height:210px;overflow-y:auto}.leaderboard-fade{pointer-events:none;background:linear-gradient(#fff0,#fff 80%);justify-content:center;align-items:flex-end;height:36px;display:flex;position:absolute;bottom:0;left:0;right:0}.leaderboard-more{color:#3b82f6;padding-bottom:3px;font-size:12px;font-weight:600}.leaderboard-table{border-collapse:collapse;width:100%}.leaderboard-table thead th{z-index:1;background:#fff;position:sticky;top:0}.leaderboard-table th,.leaderboard-table td{text-align:left;border-bottom:1px solid #e2e8f0;padding:6px 12px;font-size:14px}.leaderboard-table th{color:#64748b;font-size:13px;font-weight:600}.leaderboard-table td{color:#1e293b}.leaderboard-table tr.highlight td{color:#2563eb;font-weight:600}.home-container{max-width:800px;margin:40px auto;padding:0 24px}.home-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.home-header h2{margin:0}.home-subtitle{color:#64748b;margin:0 0 24px}.game-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;display:grid}.game-card{cursor:pointer;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:24px;transition:transform .15s,box-shadow .15s}.game-card:hover{border-color:#3b82f6;transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.game-icon{margin-bottom:12px;font-size:48px;display:block}.game-card h3{color:#1e3a5f;margin:0 0 8px}.game-card p{color:#64748b;margin:0;font-size:14px;line-height:1.4}.profile-container{max-width:500px;margin:40px auto;padding:0 24px}.profile-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.profile-header h2{margin:0}.profile-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:16px;padding:20px}.profile-section h3{color:#1e3a5f;margin:0 0 12px;font-size:15px}.profile-section .form-group{margin-bottom:10px}.profile-section .form-group input{width:100%}.balance-table{border-collapse:collapse;width:100%}.balance-table th,.balance-table td{text-align:left;border-bottom:1px solid #e2e8f0;padding:8px 12px}.balance-table th{color:#64748b;font-size:13px;font-weight:600}.balance-table td{color:#1e293b;font-size:14px}.wheel-picker{background:linear-gradient(#f8fafc 0%,#fff 50%,#f8fafc 100%);border:1px solid #cbd5e1;border-radius:10px;display:inline-block;position:relative;overflow:hidden}.wheel-scroll{scroll-snap-type:y mandatory;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;height:100%;overflow-y:scroll;-webkit-mask-image:linear-gradient(#0000 0%,#000 30% 70%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 30% 70%,#0000 100%)}.wheel-scroll::-webkit-scrollbar{display:none}.wheel-item{scroll-snap-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;color:#94a3b8;justify-content:center;align-items:center;font-family:Georgia,Times New Roman,serif;font-size:13px;font-weight:500;transition:none;display:flex}.wheel-item.active{color:#3d2410;font-size:18px;font-weight:800}.wheel-item:not(.active):hover{color:#475569}.wheel-highlight{pointer-events:none;background:#a07a300d;border-top:1px solid #a07a3099;border-bottom:1px solid #a07a3099;position:absolute;left:6px;right:6px}.game-container{max-width:900px;margin:0 auto;padding:20px}.game-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.game-header .room-info{color:#9ca3af;font-size:14px}.balance-bar{text-align:center;color:#f4a261;background:#f4a2611a;border:1px solid #f4a2614d;border-radius:8px;margin-bottom:12px;padding:8px 16px;font-size:18px;font-weight:700}.player-bal{color:#f4a261;font-size:12px}.player-bal-inline{color:#f4a261;margin-left:4px;font-size:12px}.table{background:linear-gradient(135deg,#0f5132 0%,#1a7a4c 50%,#0f5132 100%);border:6px solid #2d1f0e;border-radius:20px;min-height:300px;padding:32px 24px;box-shadow:inset 0 2px 20px #0006,0 8px 32px #0000004d}.deck-info{text-align:center;color:#ffffff80;margin-bottom:20px;font-size:12px}.hand-area{text-align:center;margin-bottom:24px}.hand-area.active{position:relative}.hand-area.active:before{content:"";pointer-events:none;border:2px solid #ffd70066;border-radius:12px;position:absolute;inset:-8px}.hand-label{color:#fffc;margin-bottom:8px;font-size:13px;font-weight:500}.hand-label .name{color:#fff;font-weight:700}.hand-label .value{color:gold;margin-left:6px}.hand-label .bet{color:#f4a261;margin-left:8px;font-size:12px}.hand-label .timer{color:#fbbf24;margin-left:8px;animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.hand-label .dealer-tag{color:#ffffff80;font-size:12px}.cards{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.card{box-sizing:border-box;background:#fff;border-radius:7px;flex-direction:column;justify-content:space-between;width:56px;height:80px;padding:4px 6px;font-weight:700;transition:transform .2s;display:inline-flex;position:relative;box-shadow:0 2px 6px #00000059}.card:hover{transform:translateY(-2px)}.card.red{color:#dc2626}.card.black{color:#1e293b}.card-corner{flex-direction:column;align-items:center;line-height:1;display:flex}.card-corner.top{align-self:flex-start}.card-corner.bottom{align-self:flex-end;transform:rotate(180deg)}.card-rank{font-size:14px}.card-suit{font-size:11px}.card-center{text-align:center;font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dealer-area .card{width:44px;height:64px}.dealer-area .card-rank{font-size:12px}.dealer-area .card-suit{font-size:9px}.dealer-area .card-center{font-size:18px}.my-hand{margin-bottom:16px}.my-hand .card{width:64px;height:92px}.my-hand .card-rank{font-size:16px}.my-hand .card-suit{font-size:12px}.my-hand .card-center{font-size:26px}.others-row{flex-wrap:wrap;justify-content:center;gap:16px;margin-bottom:8px;display:flex}.other-player{text-align:center;background:#00000026;border-radius:10px;min-width:80px;padding:8px 12px;position:relative}.other-player.active{background:#ffd7001a;outline:1px solid #ffd70066}.other-label{color:#fffc;margin-bottom:4px;font-size:12px;font-weight:500}.other-label .name{color:#fff;font-weight:600}.other-label .value{color:gold;margin-left:4px}.other-label .bet{color:#f4a261;margin-left:4px;font-size:11px}.other-label .timer{color:#fbbf24;margin-left:4px;animation:1s infinite pulse}.mini-cards{flex-wrap:wrap;justify-content:center;gap:3px;display:flex}.mini-card{background:#ffffffe6;border-radius:3px;padding:1px 3px;font-size:13px;font-weight:700;line-height:1.2}.mini-card.red{color:#dc2626}.mini-card.black{color:#1e293b}.table-divider{background:#ffffff26;height:1px;margin:8px 0 20px}.result-badge{border-radius:12px;margin-top:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.result-badge.win{color:#4ade80;background:#22c55e33}.result-badge.lose{color:#f87171;background:#ef444433}.result-badge.push{color:#facc15;background:#facc1533}.winnings{margin-left:4px;font-size:12px}.actions{justify-content:center;gap:10px;margin-top:20px;display:flex}.btn{cursor:pointer;border:none;border-radius:8px;padding:8px 20px;font-size:14px;font-weight:600;transition:all .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff;background:#3b82f6}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-success{color:#fff;background:#22c55e}.btn-success:hover:not(:disabled){background:#16a34a}.btn-danger{color:#fff;background:#ef4444}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-warning{color:#fff;background:#f59e0b}.btn-warning:hover:not(:disabled){background:#d97706}.btn-outline{color:#9ca3af;background:0 0;border:1px solid #4b5563}.btn-outline:hover:not(:disabled){color:#e5e7eb;background:#ffffff0d}.betting-area{text-align:center;padding:24px}.betting-title{color:gold;margin-bottom:16px;font-size:18px;font-weight:700}.betting-players{flex-wrap:wrap;justify-content:center;gap:24px;margin-bottom:20px;display:flex}.betting-player{background:#0003;border-radius:10px;min-width:100px;padding:10px 16px}.betting-player .name{color:#fff;margin-bottom:4px;font-size:13px;font-weight:600}.betting-player .status{color:#9ca3af;font-size:12px}.betting-player .status.placed{color:#4ade80}.bet-input-group{justify-content:center;align-items:center;gap:8px;margin-top:12px;display:flex}.bet-input{color:#fff;text-align:center;background:#1f2937;border:2px solid #4b5563;border-radius:8px;width:80px;padding:8px 12px;font-size:16px;font-weight:600}.bet-input:focus{border-color:#fbbf24;outline:none}.lobby-area{background:#00000026;border-radius:12px;margin-top:20px;padding:16px}.player-list{flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.player-list li{color:#e5e7eb;background:#ffffff0d;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:flex}.player-list .kick-btn{color:#f87171;cursor:pointer;background:#ef44444d;border:none;border-radius:4px;padding:2px 8px;font-size:11px}.player-list .kick-btn:hover{background:#ef444480}.room-lobby{text-align:center;background:#1f2937;border-radius:16px;max-width:400px;margin:40px auto;padding:32px;box-shadow:0 4px 24px #0000004d}.room-lobby h2{color:#fff;margin:0 0 4px}.room-lobby .sub{color:#9ca3af;margin-bottom:20px;font-size:14px}.av-container{max-width:600px;margin:0 auto;padding:0 16px 16px}.av-header{z-index:50;padding:calc(env(safe-area-inset-top,0px) + 12px) 0 12px;background:#eff6ff;flex-direction:column;gap:4px;margin-bottom:12px;display:flex;position:sticky;top:0;box-shadow:0 4px 10px #0f172a14}.av-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.av-header .room-info{color:#64748b;font-size:14px}.btn-small{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;font-size:12px}.btn-small:hover{background:#f1f5f9}.btn-early-assassinate{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #dc2626;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600}.btn-early-assassinate:hover{background:#fef2f2}.identity-card{cursor:pointer;-webkit-user-select:none;user-select:none;background:#60a5fa1f;border:2px solid #bfdbfe;border-radius:12px;justify-content:center;align-items:center;min-height:58px;margin:0 auto 10px;padding:14px 16px;transition:background .15s;display:flex}.identity-card:hover{background:#60a5fa2e}.identity-prompt{color:#475569;align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.identity-lock{font-size:16px}.identity-content{text-align:center;width:100%}.identity-role-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.identity-emoji{font-size:22px}.identity-name{color:#1e293b;font-weight:700}.identity-team{font-size:13px;font-weight:600}.identity-team.good{color:#2563eb}.identity-team.evil{color:#dc2626}.identity-desc{color:#64748b;margin:6px 0;font-size:13px}.identity-info{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:6px;display:flex}.identity-hint{color:#64748b;font-size:13px}.identity-player{color:#92400e;background:#fef3c7;border-radius:8px;padding:3px 10px;font-size:13px;font-weight:600}.identity-role-tag{color:#92400e;font-size:12px;font-weight:400}.identity-toggle-hint{color:#94a3b8;margin-top:10px;font-size:12px;display:block}.mode-badge{letter-spacing:.05em;text-transform:uppercase;vertical-align:middle;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.mode-badge.ranked{color:#fff;text-shadow:0 1px 1px #0006;background:linear-gradient(#f59e0b,#d97706);border:1px solid #b45309;box-shadow:0 1px 2px #00000026}.mode-badge.casual{color:#fff;text-shadow:0 1px 1px #0006;background:linear-gradient(#6366f1,#4f46e5);border:1px solid #4338ca;box-shadow:0 1px 2px #00000026}.mode-toggle{background:#fff;border:1px solid #cbd5e1;border-radius:6px;display:inline-flex;overflow:hidden}.mode-option{color:#64748b;cursor:pointer;background:0 0;border:none;padding:4px 12px;font-size:13px;font-weight:600;transition:background .15s,color .15s}.mode-option:not(:last-child){border-right:1px solid #cbd5e1}.mode-toggle-vertical{flex-direction:column}.mode-toggle-vertical .mode-option:not(:last-child){border-bottom:1px solid #cbd5e1;border-right:none}.leaderboard-toggle{color:#1e293b;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #cbd5e1;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:10px 14px;font-size:15px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.leaderboard-toggle:hover:not(:disabled){color:#1e293b;background:#f8fafc;border-color:#94a3b8;box-shadow:0 1px 3px #00000014}.leaderboard-toggle:focus:not(:disabled),.leaderboard-toggle:focus-visible:not(:disabled){color:#1e293b;background:#fff;outline:none}.leaderboard-toggle:active:not(:disabled){color:#1e293b;background:#f1f5f9}.leaderboard-chevron{color:#64748b;margin-left:8px;font-size:12px;transition:transform .15s}.mode-option:hover:not(.active){background:#f1f5f9}.mode-option.active,.mode-option.active:hover,.mode-option.active:focus,.mode-option.active:active{color:#fff;background:#3b82f6}.mode-option:disabled{cursor:default}.mode-option:disabled:not(.active){opacity:.5}.scoreboard{-webkit-user-select:none;user-select:none;box-sizing:border-box;background-position:50%;background-size:cover;border-radius:14px;min-height:200px;margin-bottom:8px;padding:12px 16px 80px;position:relative;box-shadow:0 4px 14px #0000002e}.scoreboard.gameboard-56{background-image:url(/gameboard56.png?v=2)}.scoreboard.gameboard-78{background-image:url(/gameboard78.png?v=2)}.scoreboard.gameboard-910{background-image:url(/gameboard910.png?v=2)}.scoreboard-clickable{cursor:pointer}.scoreboard-identity{background-color:#1e293b;background-image:none;padding:12px 20px 24px}.scoreboard-identity-content{color:#f8fafc;margin-top:16px}.identity-split{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.identity-portrait{object-fit:cover;border-radius:12px;flex:none;width:auto;height:140px;max-height:32vw;box-shadow:0 4px 14px #00000059}.identity-portrait-fallback{background:#f8fafc1a;justify-content:center;align-items:center;width:140px;max-width:32vw;height:140px;max-height:32vw;display:flex}.identity-portrait-fallback .identity-emoji{font-size:64px}.identity-text{text-align:left;flex:200px;min-width:0}.scoreboard-identity .identity-role-row,.scoreboard-identity .identity-info{justify-content:flex-start}.scoreboard-identity .identity-name,.scoreboard-identity .identity-desc,.scoreboard-identity .identity-hint{color:#f8fafc}.scoreboard-identity .identity-team.good{color:#7eb8ff}.scoreboard-identity .identity-team.evil{color:#fca5a5}.scoreboard-toggle-hint{text-align:center;letter-spacing:.08em;text-transform:uppercase;color:#fde68a;text-shadow:0 1px 3px #000000b3;pointer-events:none;margin-bottom:14px;font-size:14px;font-weight:700;display:block}.scoreboard-identity .scoreboard-toggle-hint{color:#fde68a;text-shadow:none}.mission-track{justify-content:center;gap:14px;margin-bottom:0;display:flex}.mission-dot{color:#475569;background:#e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:16px;font-weight:700;display:flex}.scoreboard .mission-dot,.gameover-details .mission-dot{color:#f8fafc;text-shadow:0 1px 3px #000000b3;background:#f8fafc2e;border:1.5px solid #ffffff73;box-shadow:0 2px 6px #00000040}.mission-dot.current{outline-offset:2px;outline:3px solid #facc15;box-shadow:0 0 14px #facc1599}.mission-dot.success,.mission-dot.fail{box-shadow:none;background:0 0}.mission-icon{object-fit:contain;width:100%;height:100%;display:block}.mission-dot.protected{position:relative;box-shadow:0 0 0 2px #f59e0b}.mission-dot.protected:after{content:"2×";color:#fff;background:#f59e0b;border-radius:8px;padding:1px 4px;font-size:10px;font-weight:700;line-height:1.2;position:absolute;top:-8px;right:-10px}.evil-roles-display{background:#0f172a73;border-radius:8px;flex-direction:row;align-items:flex-end;gap:10px;padding:6px 10px;display:flex;position:absolute;bottom:14px;right:16px}.evil-col{flex-direction:column;gap:3px;display:flex}.evil-role-chip{color:#fef2f2e6;white-space:nowrap;align-items:center;gap:3px;font-size:11px;font-weight:500;display:inline-flex}.evil-role-emoji{font-size:12px}.reject-track{background:#0f172a73;border-radius:10px;flex-direction:column;gap:6px;padding:8px 12px;display:flex;position:absolute;bottom:14px;left:16px}.reject-label{letter-spacing:.08em;text-transform:uppercase;color:#fde68a;font-size:13px;font-weight:700}.reject-dots{gap:6px;display:flex}.reject-dot{background:#e2e8f059;border:2px solid #fff6;border-radius:50%;width:18px;height:18px}.reject-dot.active{background:#ef4444}.av-players{flex-wrap:wrap;justify-content:center;gap:4px;margin-bottom:16px;display:flex}.av-player{text-align:center;box-sizing:border-box;white-space:nowrap;background:url(/cloth-banner.png?v=2) 50%/100% 100% no-repeat;border:1px solid #a07a30;border-radius:6px;flex-direction:row;flex-shrink:0;justify-content:center;align-items:center;gap:4px;min-width:36px;height:26px;padding:0 4px;font-size:14px;transition:filter .15s,transform .15s,box-shadow .15s;display:flex;position:relative;box-shadow:inset 0 0 0 1px #ffdc8c8c,0 1px 2px #00000040}.av-player.me{filter:drop-shadow(0 0 6px #3b82f6d9)}.av-player.leader{filter:drop-shadow(0 0 8px #f59e0bf2)}.av-player.me.leader{filter:drop-shadow(0 0 6px #3b82f6d9)drop-shadow(0 0 8px #f59e0bf2)}.av-player.selected{filter:drop-shadow(0 0 10px #3b82f6)}.av-player.acted:after{content:"";background:radial-gradient(circle at 35% 30%,#f4d76b 0%,#b8893a 55%,#5a3a15 100%);border:1px solid #3a2410;border-radius:50%;width:12px;height:12px;position:absolute;top:-4px;right:-4px;box-shadow:0 1px 3px #00000073}.av-player.clickable{cursor:pointer}.av-player.clickable:hover{transform:scale(1.05)}.player-name{color:#3d2817;text-shadow:0 1px #fff0c880;font-family:Georgia,Times New Roman,serif;font-weight:700}.me-tag{color:#5b3a1a;margin-left:4px;font-size:11px;font-style:italic}.av-player.ally-disabled{opacity:.4;cursor:default}.ally-tag{color:#dc2626;background:#fce7e7;border-radius:4px;margin-left:4px;padding:1px 6px;font-size:10px}.av-night{text-align:center;padding:32px 16px}.role-card{background:url(/night-bg.png?v=2) 50%/cover no-repeat;border:2px solid #ffd27a;border-radius:12px;margin:16px 0;padding:24px 36px;display:inline-block;box-shadow:inset 0 0 0 1px #fff0beb3,inset 0 2px 14px #00000073,0 0 24px #ffd278e6,0 0 60px #ffc86e99,0 0 110px #ffbe5a59,0 4px 14px #00000080}.role-emoji{margin-bottom:8px;font-size:48px;display:block}.role-image{object-fit:cover;border:1px solid #a07a3080;border-radius:12px;width:200px;max-width:70vw;height:auto;margin:0 auto 14px;display:block;box-shadow:0 6px 20px #0000008c,0 0 30px #a07a3033}.leader-icon,.team-icon{vertical-align:middle;width:16px;height:16px;margin-left:4px}.proposed-team-display{background:url(/old-map.png?v=2) 50%/cover no-repeat;border:1px solid #a07a30;border-radius:10px;flex-direction:column;align-items:center;gap:10px;margin-bottom:14px;padding:16px 20px;display:flex;box-shadow:inset 0 0 0 1px #ffdc8c4d,inset 0 2px 8px #0006,0 2px 6px #00000040}.proposed-team-label{letter-spacing:.15em;text-transform:uppercase;color:#f4e5c7;text-shadow:0 1px 2px #000000b3;font-family:Georgia,Times New Roman,serif;font-size:14px;font-weight:700}.proposed-team-members{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.proposed-team-member{color:#3d2410;background:#f4e5c7a6;border:1px solid #a07a30;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-family:Georgia,Times New Roman,serif;font-size:15px;font-weight:600;display:inline-flex;box-shadow:inset 0 0 0 1px #ffdc8c80,0 1px 3px #0000004d}.proposed-team-icon{width:24px;height:24px}.vote-night-panel{background:url(/night-sky.png?v=2) 50%/cover no-repeat;border:1px solid #a07a30;border-radius:10px;padding:16px 20px;box-shadow:inset 0 0 0 1px #ffdc8c4d,inset 0 2px 8px #00000073,0 2px 6px #00000040}.mission-task-panel{background:url(/task-bg.png?v=2) 50%/cover no-repeat;border:1px solid #a07a30;border-radius:10px;padding:16px 20px;box-shadow:inset 0 0 0 1px #ffdc8c4d,inset 0 2px 8px #00000073,0 2px 6px #00000040}.mission-task-prompt{text-align:center;color:#fff;letter-spacing:.5px;-webkit-text-stroke:.5px #fff;text-shadow:0 0 8px #ffffffd9,0 0 18px #dce6ff80,0 2px 8px #000000d9;margin:0 0 12px;font-family:Georgia,Times New Roman,serif;font-size:16px;font-style:italic;font-weight:700}.mission-progress-panel{text-align:center;background:url(/mission-bg.png?v=2) 50%/cover no-repeat;border:1px solid #a07a30;border-radius:10px;padding:28px 20px;box-shadow:inset 0 0 0 1px #ffdc8c4d,inset 0 2px 8px #00000073,0 2px 6px #00000040}.mission-progress-text{color:#fff;letter-spacing:.5px;-webkit-text-stroke:.5px #fff;text-shadow:0 0 8px #ffffffd9,0 0 18px #dce6ff80,0 2px 8px #000000d9;margin:0;font-family:Georgia,Times New Roman,serif;font-size:16px;font-style:italic;font-weight:700;animation:2.4s ease-in-out infinite mission-pulse}@keyframes mission-pulse{0%,to{opacity:.85}50%{opacity:1}}.vote-prompt{text-align:center;color:#fff;letter-spacing:.6px;-webkit-text-stroke:.4px #ffffffe6;text-shadow:0 0 1px #fff,0 0 12px #c8dcffb3,0 0 24px #8caae680,0 2px 3px #000000d9;margin:0 0 12px;font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:800}.vote-btn-row{justify-content:center;gap:32px;margin-top:12px;display:flex}.vote-img-btn,.vote-img-btn:hover:not(:disabled),.vote-img-btn:focus:not(:disabled),.vote-img-btn:focus-visible:not(:disabled),.vote-img-btn:active:not(:disabled){color:inherit;background:0 0}.vote-img-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;outline:none;flex-direction:column;align-items:center;padding:0;transition:transform .15s;display:flex}.vote-img-btn:hover:not(:disabled){transform:translateY(-2px)}.vote-img-btn:active:not(:disabled){transform:scale(.96)}.vote-img-frame{border-radius:12px;line-height:0;transition:box-shadow .15s;display:inline-block;overflow:hidden}.vote-approve:hover:not(:disabled) .vote-img-frame,.vote-approve:focus-visible .vote-img-frame{box-shadow:0 4px 14px #2563eb59}.vote-reject:hover:not(:disabled) .vote-img-frame,.vote-reject:focus-visible .vote-img-frame{box-shadow:0 4px 14px #dc262659}.vote-approve:active:not(:disabled) .vote-img-frame{box-shadow:0 0 0 4px #2563eb40}.vote-reject:active:not(:disabled) .vote-img-frame{box-shadow:0 0 0 4px #dc262640}.vote-img-btn img{border-radius:0;width:auto;height:140px;max-height:38vw;display:block}.vote-label{letter-spacing:.08em;text-transform:uppercase;color:#fff;white-space:nowrap;pointer-events:none;z-index:1;border-radius:999px;margin-bottom:-2px;padding:3px 12px;font-size:11px;font-weight:700;position:relative;box-shadow:0 1px 3px #00000040}.vote-approve .vote-label{background:#3b82f6}.vote-reject .vote-label{background:#ef4444}.role-card h3{color:#f4e5c7;letter-spacing:.05em;text-shadow:0 2px 4px #000000d9;margin:0 0 6px;font-family:Georgia,Times New Roman,serif;font-size:22px}.role-team{letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:700}.role-team.good{color:#7eb8ff;text-shadow:0 0 12px #7eb8ff8c,0 0 22px #508ce659,0 1px 2px #000000d9}.role-team.evil{color:#ef4444;text-shadow:0 0 10px #ef444480,0 1px 2px #000000d9}.role-desc{color:#d4c89a;text-shadow:0 1px 2px #000000b3;margin:0;font-family:Georgia,Times New Roman,serif;font-size:13px;font-style:italic}.night-info{margin:16px 0}.night-hint{color:#5a3a15;margin-bottom:10px;font-family:Georgia,Times New Roman,serif;font-size:14px;font-style:italic}.night-waiting{color:#5a3a15;margin:0;font-family:Georgia,Times New Roman,serif;font-size:14px;font-style:italic}.night-players{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.night-player{color:#3d2410;text-shadow:0 1px #fff0c880;background:url(/cloth-banner.png?v=2) 50%/100% 100% no-repeat;border:1px solid #a07a30;border-radius:6px;padding:4px 14px;font-family:Georgia,Times New Roman,serif;font-size:14px;font-weight:700;box-shadow:inset 0 0 0 1px #ffdc8c8c,0 1px 2px #00000040}.av-actions{text-align:center}.action-panel{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-top:8px;padding:16px}.action-panel:has(.vote-night-panel,.mission-task-panel,.mission-progress-panel,.proposed-team-display){background:0 0;border:none;border-radius:0;padding:0}.action-panel p{color:#475569;margin:0 0 12px}.action-highlight{background:#dbeafe;border:2px solid #3b82f6;animation:1.5s ease-in-out 3 pulse-blue}.action-highlight-danger{background:#fecaca;border:2px solid #ef4444;animation:1.5s ease-in-out 3 pulse-red}.action-title{color:#1e293b;font-size:15px;font-weight:700}@keyframes pulse-blue{0%,to{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 0 8px #3b82f600}}@keyframes pulse-red{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 8px #ef444400}}.team-proposal-panel{background:url(/wood-table.png?v=2) 50%/cover no-repeat;border:1px solid #a07a30;border-radius:10px;margin-top:8px;padding:10px 16px;animation:1.5s ease-in-out 3 pulse-gold;box-shadow:inset 0 0 0 1px #ffdc8c4d,inset 0 2px 8px #00000080,0 2px 6px #00000040}.team-proposal-panel .action-title{color:#f4e5c7;text-align:center;text-shadow:0 1px 2px #0009;letter-spacing:.5px;margin:0 0 8px;font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:700}.team-slots{justify-content:center;gap:14px;margin-bottom:10px;display:flex}.team-slot-wrap{flex-direction:column;align-items:center;gap:4px;min-width:36px;max-width:90px;display:flex}.team-slot-name{color:#f4e5c7;text-shadow:0 1px 2px #0009;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;min-height:14px;font-family:Georgia,Times New Roman,serif;font-size:12px;font-weight:700;line-height:1.1;overflow:hidden}.team-slot{border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.team-slot.empty{background:#00000059;border:2px dashed #ffdc8c80}.team-slot.filled{background:#ffdc8c26;border:2px solid #a07a30;box-shadow:inset 0 0 4px #ffdc8c66,0 0 6px #ffdc8c4d}.team-slot.filled img{filter:drop-shadow(0 1px 2px #00000080);width:24px;height:24px}.btn-themed{color:#f4e5c7;letter-spacing:.5px;cursor:pointer;text-shadow:0 1px 2px #0009;background:linear-gradient(#6a4520 0%,#4a2f15 100%);border:1px solid #a07a30;border-radius:6px;margin:0 auto;padding:8px 22px;font-family:Georgia,Times New Roman,serif;font-size:15px;font-weight:700;transition:transform .1s,box-shadow .1s,filter .1s;display:block;box-shadow:inset 0 0 0 1px #ffdc8c66,inset 0 -2px 4px #0006,inset 0 2px 4px #ffdc8c33,0 2px 4px #00000059}.btn-themed:hover:not(:disabled){filter:brightness(1.15)}.btn-themed:active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 0 0 1px #ffdc8c66,inset 0 2px 4px #00000080,0 1px 2px #0000004d}.btn-themed:disabled{color:#8a7a65;cursor:not-allowed;text-shadow:none;background:linear-gradient(#4a3525 0%,#3a2818 100%);border-color:#5a4525;box-shadow:inset 0 0 0 1px #96825a33,0 1px 2px #00000040}@keyframes pulse-gold{0%,to{box-shadow:inset 0 0 0 1px #ffdc8c4d,inset 0 2px 8px #00000080,0 0 #ffdc8c80}50%{box-shadow:inset 0 0 0 1px #ffdc8c4d,inset 0 2px 8px #00000080,0 0 0 8px #ffdc8c00}}.waiting-leader-name{color:#a07a30;letter-spacing:.3px;font-family:Georgia,Times New Roman,serif;font-size:1.1em;font-style:normal;font-weight:700}.waiting{color:#94a3b8;font-style:italic}.assassin-picking-panel{background:#1a0a0a url(/assassin-picking.png?v=2) 50%/cover no-repeat;border:2px solid #ef4444;border-radius:10px;margin:16px 0;padding:20px 24px;animation:1.4s ease-in-out infinite assassinPulse;position:relative;box-shadow:inset 0 0 0 1px #ffdc8c59,inset 0 2px 12px #00000080,0 0 22px #ef44448c,0 0 50px #ef44444d,0 4px 14px #0006}.assassin-picking-text{text-align:center;color:#fff;letter-spacing:.5px;-webkit-text-stroke:.4px #fff;text-shadow:0 0 8px #ff6464bf,0 0 18px #ef444480,0 2px 4px #000000f2;margin:0;font-family:Georgia,Times New Roman,serif;font-size:16px;font-style:italic;font-weight:800}.assassin-watching{background:#1a0a0a url(/assassin-picking.png?v=2) 50%/cover no-repeat;border:2px solid #ef4444;border-radius:12px;justify-content:center;align-items:center;gap:12px;margin:16px 0;padding:16px 20px;animation:1.4s ease-in-out infinite assassinPulse;display:flex;box-shadow:inset 0 0 0 1px #ffdc8c4d,inset 0 2px 10px #00000080,0 0 24px #ef444480,0 0 50px #ef44444d,0 4px 14px #0006}.assassin-watching-icon{filter:drop-shadow(0 0 6px #ffffffb3);font-size:28px;animation:.6s ease-in-out infinite alternate assassinIconShake}.assassin-watching-text{color:#fef2f2;letter-spacing:.04em;text-shadow:0 0 8px #ef4444cc,0 2px 4px #0009;font-size:18px;font-weight:700}@keyframes assassinPulse{0%,to{box-shadow:0 0 18px #ef444473,inset 0 0 12px #0000004d}50%{box-shadow:0 0 32px #ef4444d9,inset 0 0 14px #0006}}@keyframes assassinIconShake{0%{transform:rotate(-6deg)scale(1)}to{transform:rotate(6deg)scale(1.08)}}.game-over{text-align:center}.good-win{color:#16a34a}.evil-win{color:#dc2626}.gameover-details{border:2px solid #ffd27a;border-radius:10px;margin:12px 0;padding:20px 24px;box-shadow:inset 0 0 0 1px #fff0be80,inset 0 2px 10px #00000040,0 0 18px #ffd27880,0 0 40px #ffc86e4d,0 4px 14px #0006}.win-reason{color:#f4e5c7;text-shadow:0 0 6px #ffdc8c73,0 2px 4px #000000e6;margin:14px 0 6px;font-family:Georgia,Times New Roman,serif;font-size:17px;font-weight:700}.assassin-target{color:#d4c89a;text-shadow:0 1px 2px #000000e6;margin:4px 0 14px;font-family:Georgia,Times New Roman,serif;font-size:14px;font-style:italic}.assassin-target strong{color:#ffd27a;text-shadow:0 0 8px #ffd27880,0 1px 2px #000000e6;font-style:normal;font-weight:800}.roles-reveal{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px;display:flex}.role-reveal{color:#3d2410;text-shadow:0 1px #fff5d799;background:#fff5d78c;border:1px solid #a07a30;border-radius:6px;align-items:center;gap:4px;padding:5px 12px 5px 10px;font-family:Georgia,Times New Roman,serif;font-size:13px;font-weight:700;display:inline-flex;box-shadow:inset 0 0 0 1px #ffdc8c8c,0 1px 2px #00000040}.role-reveal.good{border-left:4px solid #7eb8ff}.role-reveal.evil{border-left:4px solid #ef4444}.role-reveal strong{color:#3d2410;font-weight:800}.history-panel{text-align:left;color:#3d2410;background:#ead7a8 url(/cloth-banner.png?v=2) 50%/100% 100% no-repeat;border:1px solid #a07a30;border-radius:10px;max-height:440px;margin-bottom:16px;padding:18px 24px;font-family:Georgia,Times New Roman,serif;overflow-y:auto;box-shadow:inset 0 0 0 1px #ffdc8c73,inset 0 2px 14px #78501e2e,0 4px 14px #00000040}.history-title{color:#3d2410;text-align:center;letter-spacing:1px;border-bottom:4px solid #a07a30bf;margin:0 0 10px;padding-bottom:6px;font-family:Georgia,Times New Roman,serif;font-size:20px;font-weight:700;box-shadow:0 1px #fff0c880}.history-mission{margin-bottom:10px;padding-bottom:4px}.history-mission:not(:last-child){border-bottom:4px solid #a07a30bf;box-shadow:0 1px #fff0c880}.history-mission-title{color:#5a3a15;letter-spacing:.3px;margin:0 0 4px;font-family:Georgia,Times New Roman,serif;font-size:15px;font-weight:700}.history-empty{color:#8a6a40;margin:0 0 8px 8px;font-family:Georgia,Times New Roman,serif;font-size:13px;font-style:italic}.history-proposal{margin-bottom:2px;padding:4px 8px 2px;font-size:13px}.history-proposal:not(:last-child){border-bottom:3px dashed #a07a3099;margin-bottom:6px;padding-bottom:6px}.proposal-header{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;display:flex}.proposal-label{color:#f4e5c7;text-shadow:0 1px 1px #000000b3;background:linear-gradient(#6a4520 0%,#4a2f15 100%);border:1px solid #a07a30;border-radius:4px;justify-content:center;align-items:center;min-width:26px;height:22px;padding:0 6px;font-family:Georgia,Times New Roman,serif;font-size:13px;font-weight:800;display:inline-flex;box-shadow:inset 0 0 0 1px #ffdc8c73,0 1px 2px #0000004d}.history-inline-icon{vertical-align:middle;width:18px;height:18px}.history-result-icon{border-radius:4px;width:28px;height:36px;margin-left:6px;box-shadow:0 1px 3px #0000004d}.proposal-leader{color:#3d2410;font-family:Georgia,Times New Roman,serif;font-size:14px;font-weight:700}.proposal-team-row{align-items:center;gap:6px;margin-bottom:4px;display:flex}.proposal-team{flex-wrap:wrap;gap:4px;display:flex}.history-chip{color:#3d2410;background:#f4e5c799;border:1px solid #a07a30;border-radius:4px;align-items:center;gap:4px;padding:2px 10px;font-family:Georgia,Times New Roman,serif;font-size:12px;font-weight:700;display:inline-flex;position:relative;box-shadow:inset 0 0 0 1px #ffdc8c66,0 1px 1px #00000026}.history-chip-shield{width:16px;height:16px}.proposal-votes{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.history-chip.vote-chip:after{content:"";border:1px solid #00000073;border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;right:-4px;box-shadow:0 1px 2px #00000059}.history-chip.vote-chip.approve:after{background:radial-gradient(circle at 35% 30%,#8be08e 0%,#2d9b3f 60%,#1a5a26 100%)}.history-chip.vote-chip.reject:after{background:radial-gradient(circle at 35% 30%,#ff9090 0%,#d63636 60%,#8a1818 100%)}.proposal-mission-result{align-items:center;gap:6px;margin-top:6px;display:flex}.history-mission-dot{width:40px;height:40px}.av-player-list{margin:0 0 12px;padding:0;list-style:none}.av-player-list li{color:#1e293b;border-bottom:1px solid #e2e8f0;align-items:center;gap:8px;padding:6px 0;font-size:14px;display:flex}.seat-number{color:#94a3b8;min-width:18px;font-size:12px}.player-actions{align-items:center;gap:4px;margin-left:auto;display:flex}.drag-handle{cursor:grab;color:#94a3b8;-webkit-user-select:none;user-select:none;touch-action:none;font-size:14px}.av-player-list li.draggable{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;transition:opacity .15s}.av-player-list li.draggable:active{cursor:grabbing}.av-player-list li.dragging{opacity:.3}.av-player-list li.drop-before{position:relative}.av-player-list li.drop-before:before{content:"";background:#60a5fa;border-radius:2px;height:3px;position:absolute;top:-2px;left:0;right:0}.av-player-list .drop-indicator-last{background:#60a5fa;border:none;border-radius:2px;height:3px;padding:0;list-style:none}.av-player-list .kick-btn{color:#991b1b;cursor:pointer;background:#fce7e7;border:none;border-radius:4px;padding:2px 8px;font-size:11px}.progress-status{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:12px;display:flex}.status-chip{color:#3d2410;text-shadow:0 1px #fff0c880;background:url(/cloth-banner.png?v=2) 50%/100% 100% no-repeat;border:1px solid #a07a30;border-radius:6px;padding:3px 12px;font-family:Georgia,Times New Roman,serif;font-size:12px;font-weight:700;position:relative;box-shadow:inset 0 0 0 1px #ffdc8c80,0 1px 2px #0003}.status-chip.pending{opacity:.55}.status-chip.acted:after{content:"";background:radial-gradient(circle at 35% 30%,#f4d76b 0%,#b8893a 55%,#5a3a15 100%);border:1px solid #3a2410;border-radius:50%;width:9px;height:9px;position:absolute;top:-3px;right:-3px;box-shadow:0 1px 2px #0006}.gameover-details .status-chip{color:#3d2410;text-shadow:0 1px #fff5d799;background:#f4e5c78c}.status-chip-host{vertical-align:middle;width:14px;height:14px;margin-left:4px}.lobby-host-icon{vertical-align:middle;width:18px;height:18px;margin-left:6px}.lobby-ready-mark{color:#16a34a;margin-left:6px;font-size:14px;font-weight:800;display:inline-block}.role-config{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.role-config-side{flex-direction:column;align-items:center;gap:4px;min-width:120px;display:flex}.side-label{text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;font-size:12px;font-weight:700}.good-label{color:#16a34a}.evil-label{color:#dc2626}.role-chip{border-radius:6px;padding:4px 10px;font-size:13px;font-weight:500}.role-chip.good{color:#166534;background:#dcfce7}.role-chip.evil{color:#991b1b;background:#fce7e7}.role-toggles{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.role-toggles-grid{grid-template-columns:1fr 1fr;gap:8px;max-width:320px;margin:0 auto;display:grid}.role-toggle{color:#475569;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;padding:6px 12px;font-size:13px;transition:border-color .15s,background .15s,color .15s}.role-toggle:hover:not(:disabled),.role-toggle:focus:not(:disabled),.role-toggle:focus-visible:not(:disabled),.role-toggle:active:not(:disabled){color:#475569;background:#fff}.role-toggle:disabled{opacity:.3;cursor:default}.role-toggle.active{color:#fff;background:#3b82f6;border-color:#3b82f6}.role-toggle.active:hover:not(:disabled),.role-toggle.active:focus:not(:disabled),.role-toggle.active:focus-visible:not(:disabled),.role-toggle.active:active:not(:disabled){color:#fff;background:#3b82f6}.role-adjust-section{flex-direction:column;align-items:center;gap:8px;margin-top:10px;display:flex}.role-adjust-row{align-items:center;gap:6px;display:flex}.role-adjust-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;padding:0;font-size:15px;font-weight:700;display:flex}.role-adjust-btn:hover:not(:disabled){background:#f1f5f9}.role-adjust-btn:disabled{opacity:.3;cursor:default}.role-adjust-label{color:#475569;text-align:center;min-width:100px;font-size:13px}.game-over{position:relative}.gameover-banner{pointer-events:none;z-index:10;border:2px solid #ffd27a;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;min-height:200px;animation:3.1s cubic-bezier(.2,1,.3,1) forwards gameOverBanner;display:flex;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 0 0 1px #fff0be80,inset 0 2px 16px #00000073,0 0 24px #ffd278b3,0 0 60px #ffc86e66,0 8px 28px #00000080}.gameover-banner-text{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;text-align:center;font-size:clamp(2.5rem,8vw,5rem);font-weight:900}.gameover-banner-subtitle{letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;text-align:center;opacity:.85;margin-bottom:.15em;font-size:clamp(1.2rem,3.5vw,2rem);font-weight:700}.gameover-banner.win .gameover-banner-subtitle{color:#fbbf24;text-shadow:0 0 12px #fbbf2499,0 2px 6px #0006}.gameover-banner.lose .gameover-banner-subtitle{color:#ef4444;text-shadow:0 0 10px #ef444480,0 2px 6px #0006}.gameover-banner.win .gameover-banner-text{color:#fbbf24;text-shadow:0 0 20px #fbbf24cc,0 0 40px #fbbf2480,0 4px 12px #00000080}.gameover-banner.lose .gameover-banner-text{color:#ef4444;text-shadow:0 0 16px #ef4444b3,0 4px 12px #00000080}.gameover-banner.win.epic .gameover-banner-text{color:#fef3c7;letter-spacing:.12em;text-shadow:0 0 24px #fbbf24,0 0 48px #f59e0b,0 0 72px #dc2626,0 4px 14px #0009;font-size:clamp(2.8rem,9vw,5.6rem);animation:.85s ease-in-out infinite epicGlow}.gameover-banner.lose.epic .gameover-banner-text{color:#fecaca;letter-spacing:.12em;text-shadow:0 0 24px #ef4444,0 0 48px #991b1b,0 0 72px #450a0a,0 4px 14px #000000b3;font-size:clamp(2.8rem,9vw,5.6rem);animation:.4s ease-in-out infinite crushingShake}@keyframes gameOverBanner{0%{opacity:0;transform:scale(.3)}12%{opacity:1;transform:scale(1.25)}19%{transform:scale(1)}74%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.15)}}@keyframes epicGlow{0%,to{text-shadow:0 0 24px #fbbf24,0 0 48px #f59e0b,0 0 72px #dc2626,0 4px 14px #0009;transform:scale(1)}50%{text-shadow:0 0 40px #fde047,0 0 80px #fbbf24,0 0 120px #f59e0b,0 0 160px #dc2626,0 4px 14px #0009;transform:scale(1.07)}}@keyframes crushingShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.gameover-details{opacity:1}.gameover-actions{z-index:20;opacity:1;margin-bottom:16px;position:relative}.gameover-title{text-align:center;flex-direction:column;align-items:center;margin:8px 0;font-weight:900;display:flex}.gameover-title-subtitle{letter-spacing:.22em;text-transform:uppercase;opacity:.85;margin-bottom:2px;font-size:clamp(.78rem,2vw,.98rem);font-weight:700}.gameover-title-main{letter-spacing:.06em;text-transform:uppercase;font-size:clamp(1.5rem,4.5vw,2.4rem)}.gameover-title.win .gameover-title-main,.gameover-title.win .gameover-title-subtitle{color:#d97706}.gameover-title.win .gameover-title-main{text-shadow:0 0 8px #fbbf2473}.gameover-title.lose .gameover-title-main,.gameover-title.lose .gameover-title-subtitle{color:#dc2626}.gameover-title.lose .gameover-title-main{text-shadow:0 0 8px #ef444466}.gameover-title.win.epic .gameover-title-main{color:#f59e0b;text-shadow:0 0 12px #fde047,0 0 22px #fbbf24a6,0 1px 2px #00000040;font-size:clamp(1.8rem,5vw,2.8rem)}.gameover-title.win.epic .gameover-title-subtitle{text-shadow:0 0 6px #fbbf2480}.gameover-title.lose.epic .gameover-title-main{color:#991b1b;text-shadow:0 0 10px #ef4444,0 0 18px #991b1b8c;font-size:clamp(1.8rem,5vw,2.8rem)}.gameover-title.lose.epic .gameover-title-subtitle{text-shadow:0 0 6px #ef444473}@keyframes gameoverDetailsFadeIn{0%{opacity:.4}to{opacity:1}}.vote-anim-overlay,.mission-anim-overlay{z-index:9999;pointer-events:none;background:#0000008c;justify-content:center;align-items:center;animation:.25s ease-out voteAnimFadeIn;display:flex;position:fixed;inset:0}@keyframes voteAnimFadeIn{0%{opacity:0}to{opacity:1}}@keyframes voteAnimCardPop{0%{opacity:0;transform:scale(.6)rotate(-3deg)}60%{opacity:1;transform:scale(1.08)rotate(1deg)}to{opacity:1;transform:scale(1)rotate(0)}}.vote-anim-card{text-align:center;background:url(/night-sky.png?v=2) 50%/cover no-repeat;border:2px solid #ffd27a;border-radius:14px;min-width:340px;max-width:90vw;padding:28px 36px;animation:.45s cubic-bezier(.2,.9,.3,1.2) voteAnimCardPop;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #fff0be73,inset 0 2px 16px #0000008c,0 0 24px #ffd278b3,0 0 60px #ffc86e66,0 18px 48px #00000080}.vote-anim-card:before{content:"";opacity:.4;z-index:0;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:contain;position:absolute;inset:0}.vote-anim-overlay.approve .vote-anim-card:before{background-image:url(/approve.png?v=2)}.vote-anim-overlay.reject .vote-anim-card:before{background-image:url(/reject.png?v=2)}.vote-anim-card>*{z-index:1;position:relative}.vote-anim-title{color:#f4e5c7;letter-spacing:1px;text-shadow:0 0 8px #ffdc8c80,0 2px 4px #000000e6;margin-bottom:8px;font-family:Georgia,Times New Roman,serif;font-size:26px;font-weight:800}.vote-anim-leader{color:#d4c89a;text-shadow:0 1px 2px #000000d9;margin-bottom:14px;font-family:Georgia,Times New Roman,serif;font-size:14px;font-style:italic}.vote-anim-leader strong{color:#ffd27a;font-style:normal}.vote-anim-team{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:14px;display:flex}.vote-anim-team-name{color:#3d2410;text-shadow:0 1px #fff0c880;background:url(/cloth-banner.png?v=2) 50%/100% 100% no-repeat;border:1px solid #a07a30;border-radius:6px;padding:3px 10px;font-family:Georgia,Times New Roman,serif;font-size:13px;font-weight:700;box-shadow:inset 0 0 0 1px #ffdc8c80,0 1px 2px #0000004d}.vote-anim-votes{border-top:1px solid #ffdc8c4d;flex-wrap:wrap;justify-content:center;gap:6px;padding-top:12px;display:flex}.vote-anim-vote{color:#3d2410;background:#f4e5c7d9;border:1px solid #a07a30;border-radius:10px;align-items:center;gap:4px;padding:3px 10px;font-family:Georgia,Times New Roman,serif;font-size:12px;font-weight:700;display:inline-flex;box-shadow:0 1px 2px #0000004d}.vote-anim-vote.yes{background:#dcfadcd9;border-color:#4a8a4a}.vote-anim-vote.no{background:#ffdcdcd9;border-color:#a33}.vote-anim-mark{font-size:14px}.mission-anim-card{text-align:center;background:url(/task-bg.png?v=2) 50%/cover no-repeat;border:2px solid #ffd27a;border-radius:16px;min-width:340px;max-width:90vw;padding:32px 44px;animation:.5s cubic-bezier(.2,.9,.3,1.2) voteAnimCardPop;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #fff0be73,inset 0 2px 16px #0000008c,0 0 24px #ffd278b3,0 0 60px #ffc86e66,0 20px 56px #0000008c}.mission-anim-card:before{content:"";opacity:.4;z-index:0;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:contain;position:absolute;inset:0}.mission-anim-overlay.success .mission-anim-card:before{background-image:url(/success.png?v=2)}.mission-anim-overlay.fail .mission-anim-card:before{background-image:url(/fail.png?v=2)}.mission-anim-card>*{z-index:1;position:relative}.mission-anim-title{color:#f4e5c7;letter-spacing:1px;text-shadow:0 0 10px #ffdc8c8c,0 2px 4px #000000e6;margin-bottom:16px;font-family:Georgia,Times New Roman,serif;font-size:30px;font-weight:900}.mission-anim-counts{justify-content:center;gap:24px;font-family:Georgia,Times New Roman,serif;font-size:17px;font-weight:700;display:flex}.mission-anim-success{color:#7eb8ff;text-shadow:0 0 8px #7eb8ff8c,0 1px 2px #000000d9}.mission-anim-fail{color:#ef4444;text-shadow:0 0 8px #ef44448c,0 1px 2px #000000d9}.av-history-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.av-history-filter{color:#475569;flex-direction:column;gap:8px;margin-bottom:14px;font-size:13px;display:flex}.av-history-filter-controls,.av-history-filter-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.av-history-filter label{align-items:center;gap:4px;display:inline-flex}.av-history-filter input[type=date]{border:1px solid #cbd5e1;border-radius:4px;padding:3px 6px;font-size:13px}.av-history-list{flex-direction:column;gap:10px;display:flex}.av-history-card{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-left:4px solid #cbd5e1;border-radius:10px;padding:10px 14px;transition:background .15s,border-color .15s}.av-history-card:hover{background:#f8fafc;border-color:#94a3b8}.av-history-card.won{border-left-color:#22c55e}.av-history-card.lost{border-left-color:#ef4444}.av-history-row1{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.av-history-row2{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.av-date{color:#475569;font-size:13px}.winner-badge{text-transform:uppercase;letter-spacing:.4px;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.winner-badge.good{color:#1e40af;background:#dbeafe}.winner-badge.evil{color:#991b1b;background:#fee2e2}.role-tag{border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}.role-tag.good{color:#1e40af;background:#dbeafe}.role-tag.evil{color:#991b1b;background:#fee2e2}.result-tag{border-radius:6px;margin-left:auto;padding:2px 8px;font-size:12px;font-weight:600}.result-tag.won{color:#166534;background:#dcfce7}.result-tag.lost{color:#991b1b;background:#fecaca}
