body[data-game="grove"].at-table #tableScene{visibility:hidden}
body[data-game="grove"].at-table .play-area{min-height:0;justify-content:start}
.board-grove{display:block!important;max-width:1220px;width:100%;container-type:inline-size}
.grove-room{width:100%;color:#fff8e9}
.grove-room img,.grove-truth img{user-select:none;pointer-events:none}
.grove-scene-title{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:0 0 20px}
.grove-scene-title h3{font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.15;margin:5px 0 0;color:#fff8e9}
.grove-scene-title>div>span{font-size:.78rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:#ffe29b}
.grove-scene-title>p{max-width:300px;font-size:.85rem;line-height:1.5;margin:0;color:#eef3f9}
.grove-game-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:clamp(18px,3vw,40px);align-items:start}
.grove-investigation{min-width:0}
.grove-suspect-lineup{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1.5vw,22px)}
.grove-suspect-column{min-width:0;position:relative;text-align:center}
button.grove-suspect-choice{position:relative;display:grid;place-items:center;gap:10px;width:100%;min-width:0;padding:13px 6px 11px;border:2px solid transparent;border-radius:8px;background:transparent;box-shadow:none;color:#fff8e9;overflow:visible;transition:border-color .15s,background-color .15s}
button.grove-suspect-choice:disabled{opacity:1;cursor:default}
button.grove-suspect-choice:not(:disabled):hover{border-color:#cad6e6;background:#ffffff0a;transform:none}
button.grove-suspect-choice[aria-pressed="true"]{border-color:#ffd13d;background:#ffffff0d}
button.grove-suspect-choice:focus-visible{outline:3px solid #fff8e9;outline-offset:4px}
.grove-suspect-letter{display:grid;place-items:center;width:38px;height:38px;border:2px solid #f2e8d2;border-radius:4px;color:#fff8e9;font-size:1.3rem;font-weight:850;line-height:1}
.grove-person-stage{display:grid;place-items:center;position:relative;isolation:isolate;width:100%;padding-bottom:12px}
.grove-person{display:block;width:auto;height:clamp(220px,26vw,300px);max-width:100%;object-fit:contain;filter:drop-shadow(1px 1px 0 #ede6d8) drop-shadow(0 6px 0 #172b42) drop-shadow(0 8px 5px #14283a55)}
.grove-person-shadow{position:absolute;bottom:4px;width:70%;max-width:120px;height:13px;background:#192d43;border-radius:50%;z-index:-1}
.grove-evidence-label{font-size:.73rem;line-height:1.3;color:#f2f3f4;font-weight:700}
.grove-person.is-hidden{opacity:.8}
.grove-selected-detective{position:absolute;right:0;top:54px;width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 2px 1px #12253e)}
.grove-accusation-stack{position:relative;width:88px;height:calc(40px + max(0,var(--count,0) - 1)*7px);min-height:40px;margin:8px auto 4px}
.grove-accusation{position:absolute;left:calc(20px + var(--stack)*2px);bottom:calc(var(--stack)*7px);width:42px;height:42px;z-index:calc(1 + var(--stack));filter:drop-shadow(0 2px 0 #183046) drop-shadow(0 3px 1px #11263b88)}
.grove-accusation>img{display:block;width:100%;height:100%;object-fit:contain}
.grove-empty-stack{position:absolute;width:38px;height:15px;left:25px;bottom:0;border:1px dashed #ffffff45;border-radius:50%}
.grove-accuse-action{min-height:106px;display:grid;justify-items:center;align-content:start;margin:20px auto 0;max-width:540px;text-align:center}
.grove-accuse-action>button{min-width:240px;min-height:48px;background:#ffd13d;color:#213449;border-color:#ffd13d;font-weight:850;box-shadow:0 3px 0 #1b3046}
.grove-accuse-action>button:disabled{background:#cbd3da;color:#263b50;border-color:#cbd3da;opacity:1;cursor:default;box-shadow:none}
.grove-accuse-action>p{font-size:.82rem;line-height:1.5;margin:11px 0 0;color:#f0f2f5;max-width:430px}
.grove-accuse-action>.feedback:empty{display:none}
.grove-waiting-detective{display:flex;align-items:center;justify-content:center;gap:13px;min-height:65px}
.grove-waiting-detective>img{height:47px;width:47px;object-fit:contain;filter:drop-shadow(0 3px 1px #192c40)}
.grove-waiting-detective p{font-size:.9rem;line-height:1.5;margin:0;max-width:280px}
.grove-waiting-detective small{display:block;font-size:.75rem;margin-top:4px}
.grove-notebook{min-width:0;background:#f7f0dc;border-radius:5px 5px 10px 10px;border-left:5px solid #d6c9a8;color:#24384a;padding:18px 16px;box-shadow:0 5px 0 #1a314b;align-self:start}
.grove-section-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px}
.grove-section-title h3{font-size:.95rem;font-weight:850;margin:0;color:inherit;line-height:1.25}
.grove-section-title>span{font-size:.65rem;font-weight:750;white-space:nowrap;display:flex;align-items:center;gap:4px}
.grove-alibi-people{display:flex;justify-content:center;gap:30px}
.grove-alibi-people figure{margin:0;display:flex;align-items:center;gap:11px}
.grove-alibi-people .grove-person{height:130px;filter:drop-shadow(0 3px 0 #b9af98)}
.grove-alibi-people figcaption{font-size:1.4rem;font-weight:850;line-height:1}
.grove-alibi-people figcaption small{display:block;font-size:.65rem;font-weight:750;line-height:1.4;margin-top:6px}
.grove-alibis>p,.grove-history>p{font-size:.73rem;line-height:1.5;color:#485d6c;margin:15px 0 0}
.grove-history{border-top:1px solid #c7bc9f;margin-top:20px;padding-top:17px}
.grove-history .grove-section-title{margin-bottom:8px}
.grove-history svg{width:21px;height:17px;fill:none;stroke:currentColor;stroke-width:2.3}
.grove-history svg circle{fill:currentColor;stroke:none}
.grove-history table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.76rem;margin:0}
.grove-history thead th{font-size:.63rem;font-weight:750;padding:5px 2px;text-align:center;border-bottom:1px solid #cfc4a9;overflow-wrap:anywhere}
.grove-history th:first-child{width:48%;text-align:left}
.grove-history tbody th,.grove-history td{padding:7px 2px;border-bottom:1px solid #ddd3bc;vertical-align:middle}
.grove-history tbody tr:last-child>*{border-bottom:0}
.grove-history tr.is-active{background:#eadfac}
.grove-detective{display:flex;gap:7px;align-items:center;position:relative;min-width:0;padding-right:7px}
.grove-detective>img{width:29px;height:32px;object-fit:contain;flex:none}
.grove-detective>span:not(.grove-turn-pin){min-width:0;overflow-wrap:anywhere;font-size:.72rem;line-height:1.35;font-weight:750}
.grove-detective small{display:block;font-size:.61rem;font-weight:600;line-height:1.2}
.grove-turn-pin{position:absolute;right:0;top:1px;width:5px;height:5px;background:#24384a;border-radius:50%}
.grove-history td{text-align:center}
.grove-observed{display:inline-flex;vertical-align:middle;color:#24384a}
.grove-observed svg{width:18px;height:16px}
.grove-not-observed{display:inline-block;width:9px;height:2px;background:#82785e;vertical-align:middle}
.grove-history-accused{display:grid;place-items:center;min-width:20px;min-height:25px;font-size:.85rem;font-weight:850}
body[data-game="grove"] .collection-result{max-width:1100px;background:#f7f0dc;border-radius:14px}
.grove-truth{color:#fff8e9;max-width:1000px;width:100%;margin:auto;background:#344e71;padding:24px 22px;border-radius:9px}
.grove-truth-title{text-align:center;margin:8px 0 24px}
.grove-truth-title h3{font-size:clamp(1.4rem,2vw,2rem);line-height:1.2;margin:0 0 12px;color:inherit}
.grove-verdict-rule{display:inline-block;margin:0;padding:9px 16px;font-size:.86rem;font-weight:750;border-top:1px solid #ffffff70;border-bottom:1px solid #ffffff70;line-height:1.5}
.grove-verdict-rule.is-inverted{background:#ffd13d;color:#24384a;border-color:#ffd13d}
.grove-truth-lineup{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.grove-verdict{text-align:center;min-width:0}
.grove-verdict-person{display:grid;justify-items:center;gap:15px;position:relative;max-width:230px;margin:auto;padding:12px 8px 26px;border:2px solid transparent;border-radius:8px}
.grove-verdict-person .grove-person{height:250px}
.grove-verdict.is-guilty .grove-verdict-person{border-color:#ffd13d;background:#ffd13d0b}
.grove-verdict-stamp{position:absolute;bottom:7px;font-size:.65rem;font-weight:850;letter-spacing:.06em;padding:4px 8px;background:#263f58;border:1px solid #fff8e9;color:#fff8e9;border-radius:2px}
.grove-verdict.is-guilty .grove-verdict-stamp{color:#24384a;background:#ffd13d;border-color:#ffd13d}
.grove-truth .grove-accusation-stack{margin-top:18px}
.grove-penalty-recipient{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:7px;align-items:center;justify-content:center;max-width:220px;margin:8px auto 0}
.grove-penalty-recipient>svg{grid-column:1/-1;justify-self:center;width:36px;height:27px;fill:none;stroke:#f3d681;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;margin:0 0 5px}
.grove-penalty-recipient>img{grid-row:2/4;width:40px;height:42px;object-fit:contain}
.grove-penalty-recipient>strong{font-size:.84rem;text-align:left;overflow-wrap:anywhere;line-height:1.35}
.grove-penalty-recipient>span{font-size:.78rem;text-align:left;color:#ffe29b;line-height:1.4}
.grove-correct-accusers,.grove-no-penalty{font-size:.8rem;line-height:1.5;margin:15px auto 0;max-width:200px;overflow-wrap:anywhere}
.grove-correct-accusers small{display:block;color:#ffe29b;font-size:.7rem;margin-top:4px}
.grove-penalty-explanation{font-size:.83rem;line-height:1.6;max-width:640px;text-align:center;margin:24px auto;color:#f2f4f6}
.grove-penalty-totals{display:flex;justify-content:center;gap:14px 28px;flex-wrap:wrap;padding:12px 0 8px;border-top:1px solid #ffffff35}
.grove-penalty-totals>div{display:grid;grid-template-columns:35px minmax(0,1fr);column-gap:8px;max-width:190px;align-items:center;text-align:left}
.grove-penalty-totals img{width:35px;height:39px;grid-row:1/3;object-fit:contain}
.grove-penalty-totals strong{font-size:.78rem;overflow-wrap:anywhere;line-height:1.3}
.grove-penalty-totals b{font-size:1.12rem;line-height:1.3}
.grove-penalty-totals b small{font-size:.65rem;font-weight:600;margin-left:4px}
@container(max-width:760px){
  .grove-game-layout{grid-template-columns:minmax(0,1fr);gap:22px}
  .grove-notebook{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;padding:16px}
  .grove-history{margin:0;padding:0 0 0 18px;border-top:0;border-left:1px solid #c7bc9f}
  .grove-alibi-people{gap:18px}
  .grove-alibi-people figure{gap:8px}
  .grove-alibi-people .grove-person{height:120px}
  .grove-alibi-people figcaption{font-size:1.15rem}
  .grove-person{height:250px}
}
@container(max-width:480px){
  .grove-scene-title{display:block;margin-bottom:8px}
  .grove-scene-title h3{font-size:1.3rem;margin:4px 0 6px}
  .grove-scene-title>p{max-width:none;font-size:.75rem;line-height:1.45}
  .grove-suspect-lineup{gap:5px}
  button.grove-suspect-choice{padding:10px 3px;gap:10px}
  .grove-person{height:205px}
  .grove-suspect-letter{width:32px;height:32px;font-size:1.12rem}
  .grove-selected-detective{width:29px;height:34px;right:-3px;top:48px}
  .grove-evidence-label{font-size:.65rem}
  .grove-accuse-action{margin-top:14px;min-height:90px}
  .grove-accuse-action>p{font-size:.75rem}
  .grove-notebook{display:block;padding:16px 15px}
  .grove-alibi-people{gap:48px}
  .grove-alibi-people .grove-person{height:105px}
  .grove-alibi-people figure{gap:12px}
  .grove-history{margin-top:17px;padding:16px 0 0;border-left:0;border-top:1px solid #c7bc9f}
  .grove-history th:first-child{width:50%}
  .grove-history thead th{font-size:.68rem}
  .grove-detective>span:not(.grove-turn-pin){font-size:.8rem}
  .grove-history td{padding:8px 3px}
}
@media(max-width:600px){
  .grove-truth{padding:18px 8px}
  .grove-truth-lineup{gap:5px}
  .grove-verdict-person{padding:8px 3px 24px;gap:13px}
  .grove-verdict-person .grove-person{height:180px}
  .grove-verdict-stamp{font-size:.5rem;padding:4px 5px;letter-spacing:.03em}
  .grove-verdict-rule{font-size:.76rem;padding:8px 12px}
  .grove-penalty-recipient{grid-template-columns:1fr;justify-items:center;gap:3px;max-width:110px}
  .grove-penalty-recipient>img{grid-row:auto;width:34px;height:36px}
  .grove-penalty-recipient>strong,.grove-penalty-recipient>span{text-align:center;font-size:.72rem}
  .grove-no-penalty,.grove-correct-accusers{font-size:.72rem}
  .grove-penalty-explanation{font-size:.76rem}
}
@media(prefers-reduced-motion:reduce){.grove-room *,.grove-truth *{animation:none!important;transition:none!important}}
body.calm .grove-room *,body.calm .grove-truth *{animation:none!important;transition:none!important}
