/* Readable type scale and roomier layouts; game rules and progress stay intact. */
:root { --muted:#bfccc8; --dim:#a5b8b3; }
body { font-size:18px; line-height:1.85; }
.micro { font-size:13px; letter-spacing:.12em; }
.pill { font-size:14px; }
.btn, .light-btn { min-height:48px; padding:12px 20px; white-space:nowrap; }
.btn.quiet { padding:10px 12px; }
.topbar { min-height:96px; padding:18px 32px; flex-wrap:wrap; }
.brand { flex-shrink:0; }
.brand h1 { font-size:27px; letter-spacing:.1em; }
.brand small { font-size:12px; letter-spacing:.13em; }
.brand svg { width:43px; height:43px; }
.top-tools { gap:12px; flex-wrap:wrap; justify-content:flex-end; }
.top-tools .btn { font-size:16px; }
.save-mark { font-size:14px; }
.energy { min-width:158px; }
.energy span, .energy small { font-size:15px; }
.energy strong { font-size:32px; }
.energy-track { height:5px; }
.welcome { max-width:1440px; padding:60px 50px; gap:56px; }
.welcome h2 { font-size:clamp(38px,3.7vw,54px); line-height:1.55; }
.welcome .intro-text { max-width:590px; font-size:20px; line-height:1.95; color:#d6dfda; }
.welcome .intro-role { max-width:590px; font-size:17px; line-height:1.95; color:#b8cbc4; }
.welcome .start { flex-wrap:wrap; gap:16px; margin-top:32px; }
.welcome .start .btn { font-size:18px; padding:15px 30px; }
.rule-strip { font-size:16px; gap:12px 24px; line-height:1.9; }
.room-caption, .intro-foot { font-size:14px; color:var(--dim); }
.workspace { max-width:1760px; grid-template-columns:280px minmax(0,1fr) 340px; min-height:calc(100vh - 96px); }
.suspects { padding:32px 22px; gap:20px; }
.section-cap h2 { font-size:19px; letter-spacing:.06em; }
.section-cap .micro { font-size:12px; }
.suspect-list { gap:13px; }
.suspect-card { min-height:120px; padding:17px 13px; gap:14px; }
.suspect-card>div:last-child { min-width:0; }
.portrait { width:58px; height:75px; }
.suspect-card .person-name { font-size:20px; line-height:1.6; text-wrap:balance; }
.suspect-card .person-role { font-size:14px; line-height:1.8; text-wrap:balance; }
.suspect-card .talk-count { font-size:14px; }
.suspects .aside-note { font-size:15px; line-height:1.9; padding-top:12px; }
.end-action { padding-top:28px; }
.end-action .btn { font-size:17px; padding:15px 10px; }
.end-action small { font-size:14px; line-height:1.8; }
.interview { padding:32px 36px; }
.scene-label { font-size:14px; letter-spacing:.06em; margin-bottom:24px; }
.dialogue-paper { min-height:360px; }
.speaker { padding:24px 28px 21px; }
.speaker h2 { font-size:32px; }
.speaker small { font-size:16px; color:#52635b; }
.speaker .micro { color:#756248; }
.speaker .portrait { width:54px; height:69px; }
.chat-scroll { padding:28px; max-height:420px; }
.chat-item+.chat-item { margin-top:28px; padding-top:26px; }
.question-line { font-size:17px; line-height:1.85; gap:12px; color:#6d5a3e; margin-bottom:16px; }
.question-line b { font-size:14px; padding-top:3px; }
.answer { font-family:var(--sans); font-size:22px; line-height:1.95; letter-spacing:.015em; color:#223632; }
.chat-meta { font-size:14px; line-height:1.85; color:#6d705f; gap:8px 16px; flex-wrap:wrap; margin-top:17px; }
.empty-dialogue { padding:48px 30px; }
.empty-dialogue .micro { font-size:13px; color:#796a50; }
.empty-dialogue h2 { font-size:32px; }
.empty-dialogue p { font-size:18px; line-height:1.95; color:#4a6257; }
.options-head { margin:28px 0 16px; align-items:flex-start; flex-wrap:wrap; gap:6px 16px; }
.options-head h3 { font-size:18px; }
.options-head span { font-size:14px; }
.question-options { gap:12px; }
.question-option { padding:18px; gap:16px; }
.question-option .letter { font-size:24px; width:20px; }
.question-option .option-body { min-width:0; }
.question-option .q { font-size:18px; line-height:1.8; }
.question-option .topic { font-size:14px; color:#b2c6bd; margin-top:7px; }
.cost { font-size:16px; }
.cost.free { color:#c2d9c8; }
.pager { margin-top:18px; flex-wrap:wrap; gap:10px; }
.pager .btn { font-size:15px; padding:9px 12px; }
.pager span { font-size:14px; text-align:center; }
.zero-note, .conversation-empty { font-size:17px; line-height:1.9; }
.notebook { padding:32px 26px; }
.notebook h2 { font-size:21px; }
.notebook .tiny { font-size:14px; }
.timeline { margin-top:30px; padding-left:20px; }
.time-item { margin-bottom:26px; }
.time-item:before { left:-23px; top:10px; width:6px; height:6px; }
.time-item time { font-size:24px; }
.time-item p { font-size:16px; line-height:1.9; color:#c5d2ca; }
.note-head { font-size:16px; }
.clue { padding-bottom:18px; margin-bottom:18px; }
.clue strong { font-size:16px; }
.clue small { font-size:14px; line-height:1.8; color:#b0c6bc; }
.notebook .btn { font-size:16px; }
.history-count { font-size:14px; }
.paper-count { font-size:23px; }
.report { max-width:1380px; padding:44px 36px 76px; }
.report-top { margin-bottom:32px; }
.report-top>.btn { flex-shrink:0; }
.report-top h2 { font-size:40px; }
.report-top p { font-size:18px; line-height:1.9; max-width:850px; }
.report-grid { gap:24px; }
.report-card { padding:30px; }
.report-card-head { gap:16px; }
.report-card h3 { font-size:27px; }
.report-card .portrait { width:58px; height:75px; }
.quality, .report-card .score-text { font-size:15px; line-height:1.8; color:#6e624a; }
.prob { font-size:42px; }
.prob small { font-size:13px; color:#70664f; }
.prob span { font-size:20px; }
.report-part { margin-top:23px; }
.report-part h4 { font-size:17px; color:#705a35; margin-bottom:9px; }
.report-part p, .report-part li { font-size:18px; line-height:1.95; }
.report-card summary { font-size:16px; color:#705a35; padding:8px 0; }
.evidence-entry { font-size:17px; line-height:1.9; margin-top:16px; }
.evidence-entry button { font-size:15px; }
.report-card .select-person { margin-top:26px; }
.report-bottom { padding:18px 24px; gap:20px; }
.report-bottom p { font-size:17px; }
.report-foot { font-size:15px; line-height:1.9; }
.report-foot .btn { font-size:15px!important; }
.verdict { max-width:1040px; padding:52px 36px 70px; }
.verdict h2 { font-size:43px; line-height:1.6; }
.verdict .reveal-intro { font-size:20px; max-width:850px; }
.truth-paper { padding:36px; }
.truth-paper h3 { font-size:29px; }
.truth-paper p { font-size:18px; line-height:1.95; }
.truth-row { font-size:18px; line-height:1.9; padding:18px 0; gap:24px; }
.truth-row time { font-size:23px; flex-basis:65px; }
dialog { width:min(850px,calc(100vw - 32px)); }
.modal-head { padding:24px 30px; }
.modal-head h2 { font-size:29px; }
.modal-head button { width:46px; min-height:46px; font-size:30px; flex-shrink:0; }
.modal-body { padding:28px 30px; font-size:18px; line-height:1.95; }
.modal-actions { padding:20px 30px; flex-wrap:wrap; }
.history-entry { padding:24px 0; }
.history-entry header { font-size:14px; color:#765a2d; }
.history-entry .history-q { font-size:17px; color:#506658; }
.history-entry .history-a { font-family:var(--sans); font-size:21px; line-height:1.95; }
.history-filter { gap:8px; }
.history-filter button { font-size:16px; padding:10px 15px; }
.change-grid { font-size:15px; line-height:1.85; color:#6f6248; }
#toast { font-size:17px; padding:15px 24px; }
@media (max-width:1359px) and (min-width:761px) {
  .workspace { grid-template-columns:260px minmax(0,1fr); }
  .notebook { display:none; }
  .mobile-journal { display:inline-block; }
  .save-mark { display:none; }
  .interview { padding:30px; }
  .suspects { padding:30px 18px; }
  .topbar { padding:18px 24px; }
  .top-tools { gap:4px; }
}
@media (max-width:1000px) and (min-width:761px) {
  .top-tools>.btn.quiet:not(.mobile-journal) { display:none; }
  .welcome { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:24px; padding:45px 30px; }
  .welcome h2 { font-size:38px; }
  .report-grid { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  body { font-size:17px; }
  .topbar { min-height:88px; padding:15px 16px; gap:10px; flex-wrap:nowrap; }
  .brand { gap:9px; flex-shrink:1; min-width:0; }
  .brand h1 { font-size:21px; letter-spacing:.04em; white-space:nowrap; }
  .brand small { font-size:10px; letter-spacing:.06em; }
  .brand svg { width:31px; height:31px; flex-shrink:0; }
  .top-tools { gap:0; flex-wrap:nowrap; }
  .top-tools .mobile-journal { display:none; }
  .energy { min-width:105px; }
  .energy span, .energy small { font-size:12px; }
  .energy strong { font-size:27px; }
  .welcome { padding:38px 22px; }
  .welcome h2 { font-size:clamp(31px,8.5vw,39px); line-height:1.6; }
  .welcome .intro-text { font-size:19px; }
  .welcome .intro-role { font-size:17px; }
  .welcome .start .btn { font-size:17px; padding:14px 22px; }
  .rule-strip { font-size:16px; gap:10px 20px; }
  .room-art { margin-top:38px; }
  .workspace { display:block; padding-bottom:100px; }
  .suspects { padding:24px 16px 20px; }
  .section-cap { gap:12px; flex-wrap:wrap; }
  .section-cap h2 { font-size:18px; }
  .section-cap .micro { font-size:11px; }
  .suspect-list { gap:10px; }
  .suspect-card { min-height:122px; padding:13px 10px; gap:10px; align-items:center; }
  .portrait { width:42px; height:58px; }
  .suspect-card .person-name { font-family:var(--sans); font-size:17px; font-weight:600; line-height:1.6; }
  .suspect-card .person-role, .suspect-card .talk-count { font-size:13px; line-height:1.7; }
  .interview { padding:25px 16px; }
  .scene-label { font-size:13px; letter-spacing:0; gap:8px; }
  .speaker { padding:22px; }
  .speaker h2 { font-size:28px; }
  .speaker small { font-size:15px; }
  .speaker .portrait { width:46px; height:61px; }
  .chat-scroll { padding:23px 22px; max-height:440px; }
  .answer { font-size:21px; line-height:1.95; }
  .question-line { font-size:16px; gap:8px; }
  .question-line b, .chat-meta { font-size:13px; }
  .empty-dialogue { padding:36px 22px; }
  .empty-dialogue h2 { font-size:29px; }
  .empty-dialogue p { font-size:17px; }
  .options-head h3 { font-size:18px; }
  .options-head span { font-size:14px; }
  .question-option { padding:17px 14px; gap:10px; }
  .question-option .letter { font-size:23px; width:17px; }
  .question-option .q { font-size:18px; }
  .question-option .topic { font-size:14px; }
  .cost { font-size:15px; }
  .pager { gap:6px; }
  .pager .btn { font-size:14px; padding:9px 7px; }
  .pager span { font-size:12px; }
  .mobile-bottom { padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px)); gap:10px; }
  .mobile-bottom .btn { font-size:16px; padding:12px; }
  .report { padding:30px 16px 50px; }
  .report-top h2 { font-size:32px; }
  .report-top p { font-size:17px; }
  .report-grid { grid-template-columns:1fr; gap:20px; }
  .report-card { padding:24px 20px; }
  .report-card-head { gap:10px; flex-wrap:wrap; }
  .report-card h3 { font-size:25px; }
  .report-card .portrait { width:45px; height:62px; }
  .quality { font-size:13px; }
  .prob { font-size:36px; }
  .report-part p, .report-part li { font-size:17px; }
  .report-bottom { padding:16px; flex-wrap:wrap; bottom:8px; }
  .report-bottom p { font-size:16px; }
  .report-bottom .btn { width:100%; font-size:17px; padding:12px; }
  .verdict { padding:36px 20px 60px; }
  .verdict h2 { font-size:32px; }
  .verdict .reveal-intro { font-size:19px; }
  .truth-paper { padding:26px 22px; }
  .truth-paper h3 { font-size:25px; }
  .truth-paper p { font-size:17px; }
  .truth-row { font-size:17px; gap:15px; }
  .truth-row time { font-size:21px; flex-basis:58px; }
  .modal-head { padding:20px; }
  .modal-head h2 { font-size:25px; }
  .modal-body { padding:24px 20px; font-size:17px; }
  .modal-actions { padding:18px 20px; }
  .history-entry .history-a { font-size:20px; }
  .history-entry .history-q { font-size:16px; }
  .history-filter button { font-size:15px; padding:8px 12px; }
}
