.board-wrapper{--cell-w:84px;--cell-h:110px;--cell-gap:6px;--arrow-size:26px;--shift-btn-accel-size:calc(var(--arrow-size) * .7);gap:var(--cell-gap);grid-template-rows:auto 1fr auto;grid-template-columns:auto 1fr auto;padding:12px;display:grid}.board-arrows-top,.board-arrows-bottom{grid-template-columns:repeat(var(--cols), 1fr);gap:var(--cell-gap);display:grid}.board-arrows-left,.board-arrows-right{grid-template-rows:repeat(var(--rows), 1fr);gap:var(--cell-gap);display:grid}.shift-line{gap:3px}.board-arrows-top .shift-line,.board-arrows-bottom .shift-line{flex-direction:row;justify-content:center;align-items:center;display:flex}.board-arrows-left .shift-line,.board-arrows-right .shift-line{grid-template-rows:auto auto;grid-template-columns:1fr;align-self:center;place-items:center;width:fit-content;height:fit-content;display:grid}.board-arrows-left .shift-btn:not(.shift-btn-accel),.board-arrows-right .shift-btn:not(.shift-btn-accel){grid-area:2/1}.board-arrows-left .shift-btn-accel,.board-arrows-right .shift-btn-accel{grid-area:1/1}.board-grid{transition:width .5s ease-in-out,height .5s ease-in-out;position:relative}.card-slot{width:var(--cell-w);height:var(--cell-h);transition:transform .55s ease-in-out;position:absolute;top:0;left:0}.card-slot.wrap-shift{z-index:5;transition:none;animation:.55s ease-in-out wrap-shift}.card-slot.edge-slide{z-index:6}@keyframes wrap-shift{0%{transform:translate(var(--old-x), var(--old-y)) scale(1);opacity:1}40%{transform:translate(var(--old-x), var(--old-y)) scale(0);opacity:0}60%{transform:translate(var(--new-x), var(--new-y)) scale(0);opacity:0}to{transform:translate(var(--new-x), var(--new-y)) scale(1);opacity:1}}.card-slot-removing{z-index:1;pointer-events:none}.card-removing-inner{transform-origin:50%;width:100%;height:100%;animation:.5s ease-in forwards compress-remove}@keyframes compress-remove{0%{opacity:1;transform:scale(1)rotate(0)}to{opacity:0;transform:scale(.1)rotate(-8deg)}}.card-restoring-inner{transform-origin:50%;width:100%;height:100%;animation:.5s ease-out compress-restore}@keyframes compress-restore{0%{opacity:0;transform:scale(.1)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.board-grid{transition:none}.card-removing-inner,.card-restoring-inner{animation-duration:.01ms}}.shift-btn{cursor:pointer;width:var(--arrow-size);height:var(--arrow-size);background:0 0;border:none;flex-shrink:0;place-items:center;padding:0;transition:transform .15s;display:grid}.shift-btn-accel{height:var(--shift-btn-accel-size)}.shift-btn-accel-arrows{pointer-events:none;align-items:center;height:100%;display:flex}.shift-btn-accel-img{width:calc(var(--shift-btn-accel-size) * .8);height:calc(var(--shift-btn-accel-size) * .8);object-fit:contain;pointer-events:none;display:block}.shift-btn-accel-img+.shift-btn-accel-img{margin-left:calc(var(--shift-btn-accel-size) * -.18)}.shift-btn:hover:not(:disabled){transform:scale(1.3)}.shift-btn:active:not(:disabled){transform:scale(1.15)}.shift-btn-img{width:100%;height:100%;max-width:var(--arrow-size,26px);max-height:var(--arrow-size,26px);object-fit:contain;pointer-events:none;display:block}.shift-btn-disabled,.shift-btn:disabled{opacity:.25;cursor:not-allowed}.shift-btn-reverse .shift-btn-img{filter:drop-shadow(0 0 1px var(--danger)) drop-shadow(0 0 2px var(--danger));opacity:.55}.shift-btn-reverse:hover:not(:disabled) .shift-btn-img{opacity:.9}.shift-btn-reverse .shift-btn-accel-img{filter:drop-shadow(0 0 1px var(--danger)) drop-shadow(0 0 2px var(--danger));opacity:.55}.shift-btn-reverse:hover:not(:disabled) .shift-btn-accel-img{opacity:.9}@media (max-width:565px){body:before{background:0 0}.board-wrapper{--arrow-size:20px;--cell-gap:4px;--cell-w:clamp(44px, calc((100vw - 72px - (var(--cols) - 1) * var(--cell-gap)) / var(--cols)), 84px);--cell-h:calc(var(--cell-w) * 1.3095);padding:6px}}.card-slot:after{content:"";opacity:0;pointer-events:none;z-index:10;background:#000;border-radius:4px;transition:opacity .18s;position:absolute;inset:0}.board-grid.has-spotlight .card-slot:not(.is-spotlit):after{opacity:.7}.board-grid.has-spotlight .card-slot.is-spotlit{z-index:6}
.deck-stack{width:72px;height:96px;margin:6px 0 0;position:relative}.deck-stack .deck-card{border:1px solid var(--brand-shadow);background:radial-gradient(circle at 50% 30%, #ffe6aa33, transparent 60%), linear-gradient(135deg, var(--brand-primary), var(--brand-shadow) 80%);border-radius:5px;position:absolute;inset:0;box-shadow:0 2px 4px #00000073}.deck-stack .deck-card-back-1{transform:translate(-6px,-6px)rotate(-4deg)}.deck-stack .deck-card-back-2{transform:translate(-3px,-3px)rotate(-2deg)}.deck-stack .deck-card-front{z-index:1;place-items:center;display:grid}.deck-stack .deck-card-front:before{content:"";pointer-events:none;border:1px solid #f5e7c859;border-radius:3px;position:absolute;inset:4px}.deck-count-text{color:#f5e7c8;text-shadow:0 1px 2px #000000b3;font-family:Georgia,serif;font-size:30px;font-weight:700}.deck-empty .deck-card-front{opacity:.6;background:repeating-linear-gradient(45deg,#2a1d12 0 6px,#1a1208 6px 12px)}.deck-empty-text{color:#f5e7c8;opacity:.5;font-family:Georgia,serif;font-size:28px}
.side-panel{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:1px solid var(--panel-border);background:#e4c698b8;border-radius:8px;flex-direction:column;gap:12px;min-width:280px;padding:12px;display:flex;box-shadow:1px 4px 8px #00000073}.side-panel-mafia .panel-header{background:#6c2222}.panel-header{background:linear-gradient(180deg, var(--accent), var(--accent-dark));color:#fff;text-align:center;border:1px solid var(--accent-dark);text-shadow:0 1px 2px #0009;border-radius:4px;justify-content:center;align-items:center;padding:8px 12px;font-weight:700;display:flex}.panel-body{flex-direction:column;gap:12px;display:flex}.panel-footer{text-align:center;border:1px solid var(--panel-border);background:#ffffff73;border-radius:6px;margin-top:4px;padding:10px 16px;font-size:15px;font-weight:600}.identity-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.identity-slot{border:1px solid var(--panel-border);background:linear-gradient(#ffffff8c,#ffffff4d);border-radius:10px;flex-direction:column;justify-content:flex-start;align-items:center;gap:10px;min-height:140px;padding:10px 8px 14px;display:flex;position:relative;box-shadow:inset 0 0 0 1px #ffffff59}.identity-slot-label{letter-spacing:.02em;color:#4a3018;font-size:13px;font-style:italic}.identity-empty{border:1px dashed var(--panel-border);text-align:center;color:#5a3a1d;background:#ffffff59;border-radius:5px;place-items:center;width:72px;height:96px;font-style:italic;display:grid}.section-title{text-align:center;font-size:13px;font-style:italic}.hand-row,.action-buttons{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.end-move-btn{align-self:stretch;margin-top:8px;padding:12px 20px;font-size:16px;animation:1.4s ease-in-out infinite end-move-pulse}.end-move-btn:hover:not(:disabled){background:linear-gradient(180deg, var(--brand-primary), var(--brand-shadow))}.board-end-move-btn{align-self:center;width:fit-content}@keyframes end-move-pulse{0%,to{box-shadow:0 0 #b47b4699}50%{box-shadow:0 0 0 6px #b47b4600}}.phase-prompt{border:1px dashed var(--panel-border);background:#ffffff8c;border-radius:6px;padding:10px;font-size:14px}.phase-prompt>.app-btn{width:fit-content;margin-left:auto;margin-right:auto;display:flex}.phase-prompt-alert{border-color:var(--danger);background:linear-gradient(#f4d2c2,#e7b09a);border-style:solid}.reveal-candidates{letter-spacing:.04em;margin-top:4px;font-weight:700;display:inline-block}.phase-prompt-title{margin-bottom:6px;font-weight:700}.phase-prompt-text{margin:6px 0;font-size:13px}.phase-prompt-hint{color:#5a3a1d;font-size:12px;font-style:italic}.action-hints{flex-direction:column;gap:4px;margin:6px 0;padding:0;font-size:13px;line-height:1.4;list-style:none;display:flex}.action-hints li{background:#ffffff59;border-radius:4px;padding:4px 6px}@media (max-width:991px){.side-panel,.replay-role-panel{min-width:0!important}}@media (max-width:565px){.identity-slot-label{font-size:11px}}
