/* «Шестая часть»: witness, lock, montage sheet, ending choice and missing-art placeholders. Builds on episode.css tokens. */
.art-missing{visibility:hidden}
.opening-art,.scene-illustration,.city-layer,.witness-portrait-wrap{background:radial-gradient(ellipse at 30% 20%,#2b3a42,#141c21 70%)}
.city-layer:has(.art-missing)::before,.scene-illustration:has(.art-missing)::before{content:'Иллюстрация в работе';position:absolute;inset:auto 16px 16px auto;font-size:11px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.city-pin.locked span{background:#3a474c;color:var(--muted)}
.address-number svg{width:14px;height:14px}

/* Witness */
.witness-card{width:100%;display:flex;gap:14px;align-items:center;padding:12px 14px;text-align:left;background:#2a2421;border:1px solid #6b5444;cursor:pointer}
.witness-card:hover{border-color:var(--copper)}
.witness-face{width:52px;height:68px;object-fit:cover;flex:0 0 52px;background:#3a2f2a}
.witness-card small{font-size:8px;letter-spacing:.09em;color:#c8a387;display:block}
.witness-card b{font-size:15px;display:block;margin:4px 0}
.witness-card span{font-size:10px;color:var(--copper)}
.witness-layout{display:grid;grid-template-columns:minmax(180px,280px) 1fr;gap:26px;padding:22px 26px 26px;overflow:auto}
.witness-portrait{width:100%;aspect-ratio:3/4;object-fit:cover;background:radial-gradient(ellipse at 50% 30%,#3d3330,#1d1715)}
.witness-talk blockquote{margin:0 0 16px;padding:16px 18px;background:#1d282e;border-left:3px solid var(--copper);font-size:17px;line-height:1.55;color:var(--cream)}
.witness-done{color:var(--cyan);font-size:13px;margin:0 0 14px}
.show-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.show-list button{padding:10px 12px;font-size:12px;background:#223139;border:1px solid #435861;color:var(--cream);cursor:pointer}
.show-list button:hover{border-color:var(--copper)}

/* Code lock */
.lock-layout{display:grid;grid-template-columns:auto 1fr;gap:34px;padding:26px;align-items:start}
.keypad{background:#0e1316;border:2px solid #3a474c;padding:18px;width:250px}
.lock-display{display:flex;gap:8px;justify-content:center;margin-bottom:16px}
.lock-display span{width:42px;height:54px;display:grid;place-items:center;background:#1e2a24;color:#9ef0a8;font:700 30px/1 'Courier New',monospace;border:1px solid #2f4a3a}
.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.keys button{height:52px;font:700 20px/1 'Courier New',monospace;background:#26333a;color:var(--cream);border:1px solid #435861;cursor:pointer}
.keys button:active{transform:translateY(2px)}
.lock-text p{font-size:14px;color:#c6cfc7;max-width:46ch}
.lock-status{padding:12px;border-left:2px solid var(--copper);background:#22323a}
.lock-status.success,.sheet-status.success{border-color:var(--cyan);color:var(--cyan)}

/* Montage sheet */
.sheet-body{padding:20px 26px 26px;max-height:calc(100dvh - 140px)}
.sheet-rule{font-size:13px;color:#c6cfc7;max-width:70ch;margin:0 0 16px}
.sheet-paper{background:#efe7d6;color:#1d1c19;padding:clamp(18px,3vw,34px);box-shadow:0 18px 40px rgba(0,0,0,.35);background-image:repeating-linear-gradient(0deg,transparent 0 35px,#d9cfbb 35px 36px)}
.sheet-line{font:400 17px/2.4 Georgia,'Times New Roman',serif;margin:0 0 6px;padding-left:34px;position:relative}
.sheet-n{position:absolute;left:0;top:2px;font:700 13px/2.4 'Courier New',monospace;color:#8a6b52}
.sheet-paper select.blank{display:inline-block;width:auto;min-width:9ch;font:600 15px/1.2 'Courier New',monospace;padding:4px 6px;margin:0 3px;border:0;border-radius:0;border-bottom:2px solid #1d1c19;background:#fff8e8;color:#1d1c19;max-width:100%;cursor:pointer;vertical-align:baseline}
.sheet-paper .blank:focus{outline:2px solid #b5642f;outline-offset:2px}
.sheet-paper .blank-time{border-bottom-color:#b5642f}.sheet-paper .blank-person{border-bottom-color:#2f5d8a}.sheet-paper .blank-place{border-bottom-color:#4b7a46}.sheet-paper .blank-item{border-bottom-color:#7a4b8a}.sheet-paper .blank-tag{border-bottom-color:#8a2f2f}
.sheet-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid #c9bea8}
.sheet-status{font:600 13px/1.4 Manrope,sans-serif;color:#5a3a24;padding:10px 12px;border-left:3px solid #b5642f;background:#f7efdf}
.sheet-status.success{color:#1f5a4a;border-color:#1f5a4a}

/* Ending */
.ending-choice{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}
.promo-strip{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:22px 0;padding:16px 20px;background:var(--copper);color:#1a1c1c}
.promo-strip b{font-size:30px}.promo-strip code{font:700 18px/1 'Courier New',monospace;background:#1a1c1c;color:var(--copper);padding:8px 12px}
.full-games{grid-template-columns:repeat(3,minmax(0,1fr))}

@media (max-width:820px){.scene-illustration{flex:none;aspect-ratio:16/9}.witness-layout,.lock-layout{grid-template-columns:1fr}.witness-portrait{max-width:220px}.keypad{width:100%;max-width:300px}.full-games{grid-template-columns:1fr}.sheet-line{font-size:15px;line-height:2.2}}

/* Interrogation */
.witness-talk blockquote{font-size:18px}
.patience{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 18px;font-size:13px;color:#c9d3d4}
.patience span{margin-right:4px}
.patience i{width:22px;height:8px;border-radius:2px;background:#3a474c}
.patience i.on{background:var(--copper)}
.patience .witness-done{margin:0 0 0 auto;font-weight:600}
.talk-step{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;margin:18px 0 10px;color:var(--cream)}
.talk-step span{flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--copper);color:#1a1c1c;font-size:13px}
.claims{display:grid;gap:8px}
.claim{display:block;width:100%;text-align:left;padding:13px 16px;font-size:15px;line-height:1.45;background:#22323a;border:1px solid #4d636b;color:var(--cream)}
.claim small{display:block;margin-top:6px;font-size:13px;color:var(--cyan)}
.claim.caught{border-color:#4f7d7f;background:#1f3336}
.claim.selected,.show-list button.selected{border-color:var(--copper);background:#3b2e24;box-shadow:inset 3px 0 0 var(--copper)}
.show-list button{font-size:14px;padding:10px 14px}
.talk-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:#b8c4c6}
.witness-shut{padding:16px 18px;background:#2b2220;border-left:3px solid #c8463d;font-size:15px;line-height:1.5;color:var(--cream)}
.witness-shut b{display:block;margin-top:8px;color:var(--copper)}
/* Ending rating */
.rating{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin:24px 0;padding:20px 22px;background:#1d282e;border:1px solid #4d636b}
.rating small{font-size:12px;letter-spacing:.12em;color:var(--copper);font-weight:800}
.rating b{display:block;font-size:26px;margin:4px 0}
.rating p{margin:0;color:#c6cfc7;font-size:14px;max-width:46ch}
.rating dl{display:flex;gap:24px;margin:0 0 0 auto}
.rating dt{font-size:12px;color:#a9b6ba}.rating dd{margin:2px 0 0;font-size:22px;font-weight:800}

/* Readability layer: minimum sizes and contrast over episode.css (html body raises specificity). */
html body .kicker.kicker{font-size:12px;letter-spacing:.12em}
html body .rail-foot span{font-size:12px}
html body .game-head small,html body .rail-case,html body .rail-foot,html body .brand span{font-size:12px;color:#a9b6ba;letter-spacing:.06em}
html body .rail-case b{font-size:15px}
html body .nav-button{font-size:13px}
html body .nav-button small{font-size:12px}
html body .tour-button{font-size:13px;color:var(--cream)}
html body .case-progress{font-size:13px;color:#b8c4c6}
html body .case-progress b{color:var(--cream)}
html body .address b{font-size:14px}
html body .address small{font-size:12px;color:#a9b6ba}
html body .address-number{font-size:13px}
html body .book-bottom p{font-size:14px}
html body .book-legend{font-size:12px;color:#a9b6ba}
html body .city-pin>b{font-size:12px}
html body .city-caption{font-size:12px}
html body .city-label .kicker{font-size:11px}
html body .subline,html body .muted{font-size:14px;color:#b8c4c6}
html body .compare-pick{font-size:13px;color:var(--cream)}
html body .evidence-open h3{font-size:14px}
html body .evidence-open small{font-size:12px}
html body .journal-intro p,html body .conclusion-intro p,html body .finish-row p{font-size:15px}
html body .journal-grid article p,html body .report-task p{font-size:14px}
html body .journal-grid article small,html body .deductions-list small,html body .report-task small{font-size:12px}
html body .scene-left>p{font-size:14px;color:#c6d1d3}
html body .source-card small{font-size:11px}
html body .source-card b{font-size:15px}
html body .source-card span{font-size:13px}
html body .witness-card small{font-size:11px}
html body .witness-card span{font-size:13px}
html body .modal-head h2{font-size:24px}
html body .reader-foot{font-size:14px}
html body .paper-body p{font-size:max(14px,1.15vw)}
html body .paper-body td{font-size:15px}
html body .paper-body th{font-size:12px}
html body .paper-top small,html body .paper-ref,html body .paper-bottom small{font-size:12px}
html body .task-question{font-size:15px;color:var(--cream)}
html body .task-sources small{font-size:12px}
html body .task-answer label,html body .task-answer legend,html body .task-message{font-size:14px}
html body .hints-content p{font-size:15px}
html body .hints-foot{font-size:13px}
html body .tour-content p{font-size:16px}
html body .sheet-rule{font-size:14px}
html body .briefing-text>p,html body .assignment p{font-size:14px}
html body .briefing-text .fine,html body .briefing-bottom>span{font-size:13px}
html body .assignment strong{font-size:12px}
html body .back-button,html body .text-button,html body .book-bottom button,html body .journal-grid article button,html body .map-controls button{font-size:13px}
/* Secondary buttons: visible surface instead of a border lost in the background */
html body .back-button,html body .text-button,html body .book-bottom button,html body .journal-grid article button,html body .map-controls button,html body .reader-foot button:not(.primary),html body .tour-foot .text-button,html body .empty button{background:#26363e;border:1px solid #64798a;color:var(--cream)}
html body .help-icon{width:40px;height:40px;padding:8px;background:var(--copper);border-color:var(--copper);color:#1a1c1c}
html body button:disabled{opacity:.45;cursor:not-allowed}
html body .object-pin{width:36px;height:36px;font-size:14px}
html body .ending>p{font-size:16px;line-height:1.6}
@media (max-width:820px){html body .witness-portrait{max-width:150px}html body .witness-talk blockquote{font-size:16px}}
/* Start screen: never let the briefing overflow its panel; scroll instead on short screens. */
html body .briefing-text{justify-content:safe center;overflow-y:auto;scrollbar-width:thin}
html body .briefing-text h2{font-size:clamp(24px,min(3.1vw,5.4vh),44px)}
@media(max-height:820px){html body .briefing-text .fine{display:none}html body .briefing-text>p{margin-bottom:8px}html body .case-timeline{margin:10px 0}}
