/* Quality and usability improvements — only real HTML controls are interactive */
.q31-cast-showcase{margin:33px 0 26px}
.q31-cast-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.q31-cast-thumb{min-width:0;background:linear-gradient(160deg,#1e2d40,#0b1424);border:1px solid #9a8059;color:#f7e7c7;text-align:left;padding:0 0 12px;cursor:pointer;transition:transform .16s,border-color .16s}
.q31-cast-thumb:hover,.q31-cast-thumb:focus-visible{transform:translateY(-3px);border-color:#ffde9b;outline:2px solid #cfaa67;outline-offset:2px}
.q31-cast-thumb img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-bottom:1px solid #715e46}
.q31-cast-thumb b,.q31-cast-thumb span{display:block;padding:0 9px;line-height:1.4}
.q31-cast-thumb b{font-size:12px;margin-top:10px}.q31-cast-thumb span{color:#afc2d4;font-size:10px;margin-top:4px}
.q31-chapter{gap:12px}.q31-roster-button{margin-left:auto;min-height:39px;font-size:12px;order:1}
.q31-modal{max-width:min(750px,calc(100vw - 20px));max-height:88dvh;overflow-y:auto}
.q31-modal-lead{font-size:13px;color:#b8c9d7;line-height:1.7}
.q31-modal-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.q31-person-card{display:flex;align-items:center;gap:13px;padding:10px;min-width:0;color:#ffefd7;background:#17243a;border:1px solid #846e50;text-align:left;cursor:pointer}
.q31-person-card:hover{background:#283a53;border-color:#eac58a}
.q31-person-card img{width:64px;height:64px;object-fit:cover;border:1px solid #e4bd76;flex:0 0 64px}
.q31-person-card span{min-width:0;flex:1}.q31-person-card b,.q31-person-card small{display:block}.q31-person-card b{font-size:14px}.q31-person-card small{font-size:11px;color:#bdcad7;margin-top:5px}.q31-arrow{font-size:24px;color:#edcf92;flex:0 0 auto!important}
.q31-person-detail{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;align-items:center}
.q31-person-image img{display:block;width:100%;border:1px solid #bda06d}
.q31-person-detail h3{font-size:20px;color:#fff3d8}.q31-person-detail p{font-size:14px;color:#d0d9e5;line-height:1.8}.q31-person-note{font-size:12px;color:#eac993;border-left:3px solid #c29b60;padding:8px 10px;background:#172235}
.q31-modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;margin-top:20px}
.q31-evidence-preview{display:flex;gap:15px;background:#111d30;border:1px solid #9b8260;padding:16px}
.q31-evidence-stamp{width:72px;min-height:83px;background:linear-gradient(135deg,#6a5037,#21273b);display:grid;place-items:center;font:42px serif;color:#e9c784;flex-shrink:0}
.q31-evidence-preview h3{margin:5px 0;font-size:22px;color:#ffe8b9}.q31-evidence-preview p{color:#e1e6f1;line-height:1.7;font-size:13px}.q31-evidence-preview small{color:#f3cd8e}
.q31-interview-history,.q31-court-hint,.q31-guide details{border:1px solid #8e7554;background:#101b2f;color:#d9e6f6;padding:11px 12px;margin:8px 0}
.q31-interview-history summary,.q31-court-hint summary,.q31-guide summary{cursor:pointer;color:#f2d59a;font-weight:800;font-size:12px;list-style-position:inside;min-height:25px}
.q31-qa-item{border-top:1px solid #4b5670;padding:9px 0}.q31-qa-item:first-of-type{margin-top:6px}.q31-qa-item b{font-size:12px;color:#f1d7af}.q31-qa-item p,.q31-guide details p,.q31-court-hint p{font-size:12px;line-height:1.7;margin:5px 0;color:#ccdae8}
.q31-guide{padding:12px;border:1px solid #977c55;background:linear-gradient(150deg,#17243a,#0d1728);margin-bottom:8px}
.q31-guide>p{font-size:12px;color:#e1d7c6;margin:5px 0 9px}.q31-guide details{margin-bottom:0;padding:7px 10px}
.q31-return-case{position:fixed;right:20px;bottom:20px;z-index:40;padding:12px 19px;border:1px solid #f3cf91;background:#312923;color:#fceacb;font-weight:900;cursor:pointer;box-shadow:0 8px 22px #0008;border-radius:6px}
.q31-return-case:hover{background:#493b29}
.q31-court-hint{margin:0}.q31-court-hint summary{font-size:13px}
@media(max-width:1050px){.q31-cast-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.q31-roster-button{order:0}}
@media(max-width:800px){.q31-cast-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.q31-chapter{flex-wrap:wrap}.q31-person-card img{width:52px;height:52px;flex-basis:52px}}
@media(max-width:520px){.q31-cast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.q31-modal-people{grid-template-columns:1fr}.q31-person-detail{grid-template-columns:1fr}.q31-person-image img{max-width:220px;margin:auto}.q31-evidence-preview{display:block}.q31-evidence-stamp{height:48px;min-height:0;width:100%;font-size:28px;margin-bottom:12px}.q31-modal-actions{display:grid}.q31-return-case{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));font-size:12px}}
.q31-case-people{position:absolute;right:12px;bottom:11px;display:flex;align-items:center;gap:0;z-index:2;filter:drop-shadow(0 4px 8px #000b)}
.q31-case-people img{width:70px;height:70px;object-fit:cover;border:2px solid #efc785;border-radius:50%;background:#152439}
.q31-case-people img+img{margin-left:-17px;border-color:#7e9db3}
/* Bust completion for previously incomplete face-only sprite assets */
.cel-client1::before,.cel-witness2::before{content:"";position:absolute;inset:0;background-repeat:no-repeat;background-position:center bottom;background-size:100% 100%;z-index:0;pointer-events:none}
.cel-client1::before{background-image:url('./assets/torso-client1.svg')}
.cel-witness2::before{background-image:url('./assets/torso-witness2.svg')}
.cel-client1 img,.cel-witness2 img{position:relative;z-index:1}
.cel-client1::after,.cel-witness2::after{z-index:2}
