/* Layout: teams get an evidence corkboard with index cards and a sliding interview transcript; the host gets an incident-room wall built for a projector. Single deliberate theme. */
:root{
  --cork:#9a7652; --cork-dark:#7d5d3e; --wood:#2b211a; --wood-2:#3a2d23; --wood-3:#4a3a2d;
  --paper:#fbf9f4; --paper-2:#f1ece1; --manila:#e2c88e; --manila-dark:#c9ab6c;
  --ink:#201c18; --ink-2:#5e564c; --line:#d9d1c2;
  --pin:#b8322a; --pin-dark:#8f241e; --tape:rgba(244,236,196,.82);
  --ok:#2f6b3f; --ok-bg:#dcebdc; --warn:#9a6a12;
  --f-display:"Special Elite","Courier New",monospace;
  --f-body:"Libre Franklin",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-type:"Courier Prime","Courier New",monospace;
  --shadow:0 1px 1px rgba(0,0,0,.18),0 6px 14px -6px rgba(0,0,0,.45);
  color-scheme:light;
}
html{min-height:100%}
body{min-height:100vh}
body{margin:0;font-family:var(--f-body);color:var(--ink);font-size:15px;line-height:1.5;
  background-color:var(--cork);
  background-image:radial-gradient(rgba(60,38,20,.35) 1px,transparent 1.4px),radial-gradient(rgba(255,235,200,.16) 1px,transparent 1.6px),radial-gradient(rgba(60,38,20,.22) .8px,transparent 1.2px);
  background-size:9px 9px,13px 13px,5px 7px;background-position:0 0,4px 6px,2px 3px}
body.host{background-color:var(--wood);color:var(--paper);
  background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 2px,transparent 2px 7px),repeating-linear-gradient(90deg,rgba(0,0,0,.08) 0 1px,transparent 1px 23px);background-size:auto}
*{box-sizing:border-box}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--pin);outline-offset:2px}
h1,h2,h3,h4{text-wrap:balance;margin:0}
.wrap{max-width:1180px;margin:0 auto;padding-block:20px 64px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
body.host .wrap{max-width:1500px}

/* shared bits */
.card{background:var(--paper);color:var(--ink);box-shadow:var(--shadow);position:relative}
.tape::before{content:"";position:absolute;top:-10px;left:50%;width:96px;height:22px;margin-left:-48px;background:var(--tape);transform:rotate(-2deg);box-shadow:0 1px 2px rgba(0,0,0,.12)}
.pin::after{content:"";position:absolute;top:8px;left:50%;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e86a5f,var(--pin) 45%,var(--pin-dark));box-shadow:0 2px 3px rgba(0,0,0,.4)}
.eyebrow{font-family:var(--f-type);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font-weight:600;padding:10px 16px;border-radius:3px;background:var(--ink);color:var(--paper);font-size:.92rem;min-height:42px}
.btn:hover{background:#000}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.red{background:var(--pin);color:#fff}.btn.red:hover{background:var(--pin-dark)}
.btn.ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.btn.ghost:hover{background:rgba(127,127,127,.12)}
.btn.small{padding:6px 10px;min-height:34px;font-size:.85rem}
.btn.light{background:var(--paper);color:var(--ink)}.btn.light:hover{background:#fff}
.msg{font-family:var(--f-type);font-size:.85rem;color:var(--ink-2)}
.msg.err{color:var(--pin-dark)}.msg.ok{color:var(--ok)}
.caret::after{content:"▌";animation:blink 1s steps(1) infinite;margin-left:2px}
@keyframes blink{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){.caret::after{animation:none}}
.notice{background:var(--paper);color:var(--ink);border-left:6px solid var(--warn);padding:12px 16px;margin-bottom:20px;box-shadow:var(--shadow);font-size:.92rem;max-width:760px}
.center{min-height:60vh;display:grid;place-items:center}

/* ---------- team: join & waiting ---------- */
.join{width:min(620px,100%);padding:34px 28px 26px}
.join h1{font-family:var(--f-display);font-size:clamp(1.6rem,4vw,2.2rem);line-height:1.1;margin:4px 0 8px}
.join p{color:var(--ink-2);margin:0 0 18px;max-width:58ch}
.slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:16px}
@media (max-width:420px){.slots{grid-template-columns:repeat(2,minmax(0,1fr))}}
.slot{position:relative}
.slot input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.slot span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:68px;border:1.5px solid var(--line);border-radius:3px;background:var(--paper);font-family:var(--f-display);font-size:1.5rem;line-height:1}
.slot span small{font-family:var(--f-body);font-size:.72rem;color:var(--ink-2);margin-top:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px}
.slot input:checked+span{border-color:var(--ink);background:var(--manila);box-shadow:inset 0 0 0 1px var(--ink)}
.slot input:disabled+span{opacity:.45;cursor:not-allowed;background:var(--paper-2)}
.slot input:focus-visible+span{outline:3px solid var(--pin);outline-offset:2px}
.field{display:grid;gap:6px;margin-bottom:16px}
.field label{font-family:var(--f-type);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.field input{border:1.5px solid var(--ink);border-radius:3px;padding:10px 12px;background:#fff}
.waiting{width:min(560px,100%);padding:34px 28px;text-align:left}
.waiting .big{font-family:var(--f-display);font-size:clamp(1.7rem,5vw,2.6rem);line-height:1.05;margin:6px 0 10px}

/* ---------- team: status bar & board ---------- */
#statusbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20}
.statusbar{background:var(--wood);color:var(--paper);border-bottom:4px solid var(--wood-2)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:21;background:var(--wood)}
.statusbar-in{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.statusbar .team{font-family:var(--f-display);font-size:1.15rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 180px}
.statusbar .team small{display:block;font-family:var(--f-type);font-size:.68rem;letter-spacing:.16em;color:var(--manila)}
.stat{font-family:var(--f-type);font-size:.8rem;color:var(--manila);font-variant-numeric:tabular-nums;line-height:1.2}
.stat b{display:block;color:var(--paper);font-size:1.15rem}
.stat.timer b{font-size:1.5rem}
.stat.low b,.stat b.low{color:#ff8a7e}

.casehead{margin:6px 0 22px}
.casehead h1{font-family:var(--f-display);color:var(--paper);font-size:clamp(1.7rem,4vw,2.5rem);line-height:1.1;text-shadow:0 2px 3px rgba(0,0,0,.45)}
.casehead .sub{font-family:var(--f-type);color:var(--manila);font-size:.85rem;letter-spacing:.06em;margin-top:4px}
.board{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:30px;align-items:start}
@media (max-width:900px){.board{grid-template-columns:minmax(0,1fr)}}
.scene{padding:30px 26px 22px;transform:rotate(-.4deg)}
.scene .victim{font-family:var(--f-type);font-size:.85rem;border-bottom:1px dashed var(--line);padding-bottom:10px;margin-bottom:12px}
.scene p{font-family:var(--f-type);font-size:.98rem;line-height:1.6;margin:0;max-width:66ch}
.secthead{font-family:var(--f-display);color:var(--paper);font-size:1.25rem;margin:30px 0 14px;text-shadow:0 1px 2px rgba(0,0,0,.45);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.secthead small{font-family:var(--f-type);font-size:.8rem;color:var(--manila);text-shadow:none}
.secthead.first{margin-top:0}
.evidence{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:560px){.evidence{grid-template-columns:minmax(0,1fr)}}
.tag{background:var(--manila);padding:12px 14px 12px 30px;box-shadow:var(--shadow);position:relative;border-radius:3px 12px 12px 3px;text-align:left;border:0;width:100%;display:flex;flex-direction:column;gap:2px}
.tag::before{content:"";position:absolute;left:10px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;background:var(--cork-dark);box-shadow:inset 0 0 0 2px var(--manila-dark)}
.tag .ex{font-family:var(--f-type);font-size:.7rem;letter-spacing:.16em;color:var(--ink-2);display:flex;justify-content:space-between;gap:8px}
.tag b{display:block;font-size:.95rem}
.tag .d{font-size:.86rem;line-height:1.45}
.tag.locked{background:repeating-linear-gradient(-45deg,var(--paper-2) 0 10px,#e7e0d1 10px 20px)}
.tag.locked .d{color:var(--ink-2)}
.tag .kind{font-family:var(--f-type);font-size:.7rem;font-weight:700;color:var(--pin-dark);letter-spacing:.08em;text-transform:uppercase}
.tag .act{margin-top:8px;align-self:flex-start}
.tag.fresh{animation:pop .6s ease-out}
@keyframes pop{0%{transform:scale(.96);box-shadow:0 0 0 6px rgba(184,50,42,.45)}100%{transform:none}}
@media (prefers-reduced-motion:reduce){.tag.fresh{animation:none}}
.badge{font-family:var(--f-type);font-size:.66rem;letter-spacing:.12em;border:1.5px solid currentColor;padding:0 5px;border-radius:2px;text-transform:uppercase}
.badge.ok{color:var(--ok)}.badge.lock{color:var(--pin-dark)}

.suspects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:420px){.suspects{grid-template-columns:minmax(0,1fr)}}
.suspect{padding:12px 12px 14px;display:flex;flex-direction:column;gap:8px}
.suspect:nth-child(odd){transform:rotate(-.8deg)}.suspect:nth-child(even){transform:rotate(.7deg)}
.mug{aspect-ratio:4/3;max-width:100%;position:relative;display:grid;place-items:center;overflow:hidden;background:repeating-linear-gradient(to bottom,transparent 0 13px,rgba(32,28,24,.22) 13px 14px),var(--mugbg,#cfc6b4)}
.mug .ini{font-family:var(--f-display);font-size:2.6rem;color:var(--ink);opacity:.85}
.mug .bn{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);font-family:var(--f-type);font-size:.68rem;padding:2px 8px;letter-spacing:.1em;white-space:nowrap}
.mug .ht{position:absolute;right:4px;top:2px;font-family:var(--f-type);font-size:.6rem;color:var(--ink-2);line-height:14px;text-align:right}
.suspect h3{font-size:1.02rem;font-weight:700;line-height:1.2}
.suspect .role{font-size:.8rem;color:var(--ink-2);margin-top:1px}
.suspect p{font-size:.84rem;margin:0;line-height:1.45}
.suspect .foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:4px}
.suspect .count{font-family:var(--f-type);font-size:.75rem;color:var(--ink-2)}
.side{display:grid;gap:22px}
.notebook{padding:26px 18px 16px;background:repeating-linear-gradient(to bottom,var(--paper) 0 27px,#c9d6e3 27px 28px);background-position:0 8px}
.notebook textarea{width:100%;min-height:170px;border:0;background:transparent;resize:vertical;font-family:var(--f-type);font-size:.95rem;line-height:28px;padding:0}
.notebook textarea:focus{outline:none}
.notebook:focus-within{box-shadow:var(--shadow),0 0 0 3px var(--pin)}
.accusebox{padding:20px 18px}
.accusebox p{margin:6px 0 14px;font-size:.88rem;color:var(--ink-2)}
.filed{font-family:var(--f-display);font-size:1.15rem;margin-top:4px}

/* result */
.result{padding:28px 26px;margin-bottom:28px}
.result .big{font-family:var(--f-display);font-size:clamp(1.4rem,3.6vw,2.1rem);line-height:1.15;margin:4px 0 10px;padding-right:150px}
.vstamp{position:absolute;right:22px;top:22px;font-family:var(--f-display);font-size:1.05rem;letter-spacing:.14em;border:3px solid currentColor;padding:6px 12px;transform:rotate(-8deg);text-transform:uppercase}
.vstamp.ok{color:var(--ok)}.vstamp.bad{color:var(--pin)}
@media (max-width:640px){.result .big{padding-right:0;margin-top:56px}}
.truth h4{font-family:var(--f-type);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);margin:16px 0 6px}
.truth p{font-size:.92rem;margin:0 0 8px;max-width:70ch}
.timeline{list-style:none;padding:0;margin:0;font-family:var(--f-type);font-size:.88rem}
.timeline li{padding:4px 0;border-bottom:1px dotted var(--line)}

/* interview sheet */
.scrim{position:fixed;inset:0;background:rgba(20,14,10,.45);z-index:40}
.sheet{position:fixed;top:0;right:0;bottom:0;width:min(460px,100%);z-index:50;background:var(--paper);color:var(--ink);display:flex;flex-direction:column;box-shadow:-10px 0 30px rgba(0,0,0,.35);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-right:env(safe-area-inset-right,0px)}
.sheet-h{display:flex;gap:12px;align-items:center;padding:14px 16px;border-bottom:2px solid var(--ink);background:var(--paper-2)}
.sheet-h .mug{width:64px;aspect-ratio:1;flex:none}
.sheet-h .mug .ini{font-size:1.5rem}.sheet-h .mug .bn,.sheet-h .mug .ht{display:none}
.sheet-h .who{flex:1;min-width:0}
.sheet-h h2{font-size:1.1rem}
.sheet-h .role{font-size:.8rem;color:var(--ink-2)}
.xbtn{background:none;border:0;font-size:1.6rem;line-height:1;cursor:pointer;padding:6px 8px;color:var(--ink)}
.transcript{flex:1;overflow-y:auto;padding:16px;font-family:var(--f-type);font-size:.93rem;line-height:1.55}
.transcript .hdr{font-size:.75rem;letter-spacing:.12em;color:var(--ink-2);text-transform:uppercase;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:12px}
.line{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;padding:6px 0}
.line .sp{font-weight:700;text-transform:uppercase;font-size:.8rem;padding-top:2px;overflow:hidden;text-overflow:ellipsis}
.line.det .sp{color:var(--pin-dark)}
.line .tx{white-space:pre-wrap;overflow-wrap:anywhere}
.line .tx em{color:var(--ink-2)}
.line .tx.err{color:var(--pin-dark)}
.empty-t{color:var(--ink-2);font-size:.88rem}
.chips{display:flex;gap:6px;flex-wrap:wrap;padding:10px 16px 0}
.chip{border:1.5px solid var(--ink);background:var(--paper);border-radius:999px;padding:5px 11px;font-size:.8rem;cursor:pointer;font-weight:600}
.chip:hover{background:var(--paper-2)}
.chip:disabled{opacity:.4;cursor:not-allowed}
.ask{display:flex;gap:8px;padding:10px 16px 6px;align-items:flex-end}
.ask textarea{flex:1;min-width:0;resize:none;border:1.5px solid var(--ink);border-radius:3px;padding:9px 10px;min-height:44px;max-height:140px;background:#fff}
.hint{font-size:.78rem;color:var(--ink-2);padding:0 16px 12px;margin:0}

/* modal & puzzles */
.modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;background:rgba(20,14,10,.55);overflow-y:auto}
.modal>.card{width:min(580px,100%);padding:28px 24px 22px}
.modal h2{font-family:var(--f-display);font-size:1.5rem;margin-top:2px}
.modal .intro{color:var(--ink-2);font-size:.92rem;margin:8px 0 12px}
.clues{margin:0 0 16px;padding:12px 14px 12px 32px;background:var(--paper-2);font-family:var(--f-type);font-size:.9rem;border-left:3px solid var(--ink)}
.clues li{margin:3px 0}
.verse{font-family:var(--f-display);font-size:1.1rem;line-height:1.6;margin:0 0 16px;padding:14px 16px;background:var(--paper-2);border-left:3px solid var(--ink);white-space:pre-line}
.digits{display:flex;gap:10px;margin-bottom:6px}
.digits input{width:56px;height:68px;text-align:center;font-family:var(--f-type);font-size:2rem;font-weight:700;border:2px solid var(--ink);border-radius:4px;background:#fff}
.ans{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ans input{flex:1 1 200px;min-width:0;border:1.5px solid var(--ink);border-radius:3px;padding:10px 12px;background:#fff;font-size:1rem}
.ans .unit{font-family:var(--f-type);font-weight:700}
.grid-wrap{overflow-x:auto;margin:0 0 16px}
.lgrid{border-collapse:collapse;font-size:.82rem}
.lgrid th,.lgrid td{border:1px solid var(--line);padding:0}
.lgrid th{background:var(--paper-2);padding:6px 8px;text-align:left;font-weight:600;white-space:nowrap}
.lgrid td button{width:44px;height:36px;border:0;background:#fff;cursor:pointer;font-weight:800;font-size:1rem}
.lgrid td button.x{color:var(--pin-dark)}.lgrid td button.v{color:var(--ok);background:var(--ok-bg)}
.quiz{display:grid;gap:14px;margin-bottom:16px}
.quiz fieldset{border:0;margin:0;padding:0}
.quiz legend{font-weight:600;font-size:.92rem;margin-bottom:6px}
.quiz .opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
@media (max-width:420px){.quiz .opts{grid-template-columns:minmax(0,1fr)}}
.opt{position:relative}
.opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.opt span{display:block;height:100%;border:1.5px solid var(--line);padding:8px 10px;border-radius:3px;background:#fff;font-size:.88rem}
.opt span b{display:block;font-size:.92rem}
.opt span i{font-style:normal;font-size:.78rem;color:var(--ink-2);display:block}
.opt input:checked+span{border-color:var(--ink);background:var(--manila);box-shadow:inset 0 0 0 1px var(--ink)}
.opt input:focus-visible+span{outline:3px solid var(--pin);outline-offset:2px}
.modal .row{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px;align-items:center}
.modal .row .msg{margin-right:auto}
.picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}
@media (max-width:420px){.picks{grid-template-columns:minmax(0,1fr)}}
.modal textarea{width:100%;min-height:110px;border:1.5px solid var(--line);border-radius:3px;padding:10px;background:#fff;resize:vertical}

/* ---------- host ---------- */
.hhead{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px 28px;padding-bottom:18px;border-bottom:2px solid var(--wood-3);margin-bottom:22px}
.hhead .t{flex:1 1 360px;min-width:0}
.hhead h1{font-family:var(--f-display);font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.02}
.hhead .sub{font-family:var(--f-type);color:var(--manila);letter-spacing:.08em;margin-top:6px;font-size:.95rem}
.clock{text-align:right}
.clock .lbl{font-family:var(--f-type);font-size:.8rem;letter-spacing:.2em;color:var(--manila);text-transform:uppercase}
.clock .num{font-family:var(--f-type);font-weight:700;font-size:clamp(3rem,8vw,6rem);line-height:1;font-variant-numeric:tabular-nums}
.clock .num.low{color:#ff8a7e}
.phase{display:inline-block;font-family:var(--f-type);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;border:1.5px solid var(--manila);color:var(--manila);padding:2px 8px;border-radius:2px;margin-bottom:8px}
.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:14px}
.controls select{background:var(--wood-2);color:var(--paper);border:1.5px solid var(--manila);border-radius:3px;padding:9px 10px;min-height:42px}
.controls label{font-family:var(--f-type);font-size:.85rem;color:var(--manila)}
.hstatus{display:flex;flex-wrap:wrap;gap:8px 24px;font-family:var(--f-type);font-size:.88rem;color:var(--manila);margin-bottom:22px}
.hstatus b{color:var(--paper)}
.hstatus .bad{color:#ff8a7e}
.teamgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:1100px){.teamgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.teamgrid{grid-template-columns:minmax(0,1fr)}}
.tcard{padding:16px 16px 14px;display:flex;flex-direction:column;gap:10px;min-height:170px}
.tcard.empty{background:transparent;color:var(--manila);box-shadow:inset 0 0 0 2px var(--wood-3)}
.tcard .top{display:flex;gap:12px;align-items:baseline}
.tcard .n{font-family:var(--f-display);font-size:2.2rem;line-height:1}
.tcard h3{font-size:1.15rem;line-height:1.2;min-width:0;overflow-wrap:anywhere}
.pips{display:flex;gap:5px}
.pips i{width:22px;height:10px;background:var(--line)}
.pips i.on{background:var(--pin)}
.tmeta{font-family:var(--f-type);font-size:.82rem;color:var(--ink-2);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.tstate{margin-top:auto;font-family:var(--f-type);font-size:.85rem;font-weight:700}
.tstate.acc{color:var(--pin-dark)}
.tcard.empty .tstate{color:var(--manila);font-weight:400}
.hjoin{margin-top:26px;font-size:.9rem;color:var(--manila);max-width:80ch}
.board-rank{width:100%;border-collapse:collapse;font-size:1rem;margin-top:8px}
.board-rank th{font-family:var(--f-type);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;text-align:left;color:var(--ink-2);padding:6px 8px;border-bottom:2px solid var(--ink)}
.board-rank td{padding:9px 8px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.board-rank tr.win td{background:var(--ok-bg)}
.board-rank td.r{font-family:var(--f-display);font-size:1.3rem}
.tablewrap{overflow-x:auto}
.reveal{padding:26px 24px;margin-bottom:24px}
.reveal h2{font-family:var(--f-display);font-size:clamp(1.6rem,3.6vw,2.4rem)}
.reveal .two{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:26px;margin-top:10px}
@media (max-width:900px){.reveal .two{grid-template-columns:minmax(0,1fr)}}
.hfoot{margin-top:34px;padding-top:14px;border-top:2px solid var(--wood-3);display:flex;gap:12px;align-items:center;flex-wrap:wrap}

/* ---------- standalone additions ---------- */
.field input.code{font-family:var(--f-type);font-size:1.4rem;letter-spacing:.3em;text-transform:uppercase;max-width:220px}
.netbar{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:80;background:var(--pin);color:#fff;padding:8px 14px;border-radius:3px;font-size:.88rem;box-shadow:var(--shadow);max-width:calc(100% - 32px)}
.joincode{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.joincode .lbl{font-family:var(--f-type);font-size:.8rem;letter-spacing:.2em;color:var(--manila);text-transform:uppercase}
.joincode .code{font-family:var(--f-type);font-weight:700;font-size:clamp(2rem,4.6vw,3.4rem);letter-spacing:.18em;line-height:1;color:var(--paper)}
.joincode .url{font-family:var(--f-type);font-size:.9rem;color:var(--manila);overflow-wrap:anywhere;text-align:right}
.hright{display:flex;gap:36px;align-items:flex-end;flex-wrap:wrap}
.login{width:min(440px,100%);padding:30px 26px}
.login h1{font-family:var(--f-display);font-size:1.8rem;margin:4px 0 14px}
.tcard .kick{background:none;border:0;padding:0;font:inherit;font-size:.78rem;color:var(--ink-2);text-decoration:underline;cursor:pointer;align-self:flex-start}

/* ---------- difficulty tiers ---------- */
.tier{display:inline-block;font-family:var(--f-type);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;padding:0 5px;border-radius:2px;color:#fff;vertical-align:1px}
.tier-medium{background:#5b6b3a}.tier-hard{background:var(--pin-dark)}.tier-tricky{background:#4b3f72}
.tag .needs{font-family:var(--f-type);font-size:.72rem;color:var(--ink-2)}
.needs-note{font-family:var(--f-type);font-size:.82rem;background:var(--manila);padding:8px 10px;margin:0 0 12px;border-left:3px solid var(--pin-dark)}
.ledger{border-collapse:collapse;font-family:var(--f-type);font-size:.85rem;font-variant-numeric:tabular-nums;min-width:100%}
.ledger th,.ledger td{border:1px solid var(--line);padding:6px 9px;text-align:right;white-space:nowrap}
.ledger th[scope=row],.ledger thead th:first-child{text-align:left}
.ledger thead th{background:var(--paper-2)}
.modal .verse{white-space:pre-line}

/* ---------- prompt challenges ---------- */
.prompt-to{font-family:var(--f-type);font-size:.85rem;background:var(--paper-2);border-left:3px solid #4b3f72;padding:8px 10px;margin:0 0 10px}
.promptbox{width:100%;min-height:190px;border:1.5px solid var(--ink);border-radius:3px;padding:10px 12px;background:#fff;font-family:var(--f-type);font-size:.92rem;line-height:1.5;resize:vertical}
.msg.count{margin-top:4px;text-align:right}
.grade{margin-top:10px;padding:10px 12px;background:#f6e3df;border-left:3px solid var(--pin);font-size:.88rem;line-height:1.45}
.ask textarea{min-height:52px}

/* ---------- two-player teams, tips ---------- */
.slots{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:460px){.slots{grid-template-columns:repeat(2,minmax(0,1fr))}}
.slot.half span{border-style:dashed;border-color:var(--ink-2)}
.notes-state{margin-top:6px;font-size:.75rem}
.tips{background:#efeaf6;border-left:3px solid #4b3f72;padding:8px 12px;margin:0 0 12px;font-size:.88rem}
.tips summary{cursor:pointer;font-family:var(--f-type);font-weight:700;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#4b3f72}
.tips ul{margin:6px 0 2px;padding-left:18px}
.tips li{margin:3px 0}
.teamgrid{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1100px){.teamgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.teamgrid{grid-template-columns:minmax(0,1fr)}}

/* ---------- host: prompt gallery & spotlight ---------- */
.gallery-bar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:6px 0 18px}
.gallery{margin:0 0 26px;padding:18px;border:2px solid var(--wood-3);border-radius:4px}
.gstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
@media (max-width:900px){.gstats{grid-template-columns:minmax(0,1fr)}}
.gstat{background:var(--wood-2);padding:10px 12px;border-radius:3px;display:grid;gap:2px;font-family:var(--f-type);font-size:.82rem;color:var(--manila)}
.gstat b{color:var(--paper);font-family:var(--f-body);font-size:.95rem}
.gtools{display:grid;gap:10px;margin-bottom:14px}
.gchips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.gchip{border:1.5px solid var(--manila);background:transparent;color:var(--manila);border-radius:999px;padding:5px 12px;font-size:.82rem;font-weight:600;cursor:pointer}
.gchip.on{background:var(--manila);color:var(--ink)}
.glist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:900px){.glist{grid-template-columns:minmax(0,1fr)}}
.gcard{padding:14px 16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.gcard.sel{box-shadow:var(--shadow),0 0 0 3px var(--pin)}
.ghead{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.gscore{font-family:var(--f-type);font-weight:700;font-size:.8rem;padding:2px 8px;border-radius:2px;color:#fff;white-space:nowrap}
.gscore.ok{background:var(--ok)}.gscore.bad{background:var(--pin)}
.gwho{font-size:.8rem;color:var(--ink-2);min-width:0}
.gtext{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--f-type);font-size:.88rem;line-height:1.5;background:var(--paper-2);padding:10px 12px;border-radius:3px;max-height:260px;overflow:auto}
.gfb{margin:0;font-size:.85rem;color:var(--ink-2)}
.gacts{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto}
.gsel{font-size:.85rem;display:flex;gap:6px;align-items:center;cursor:pointer}
.spot{position:fixed;inset:0;z-index:90;background:#17110c;color:var(--paper);overflow:auto;outline:none;
  padding:calc(28px + env(safe-area-inset-top,0px)) max(24px,env(safe-area-inset-right,0px)) calc(28px + env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px))}
.spot-x{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));color:var(--paper);font-size:2.4rem}
.spot-title{font-family:var(--f-display);font-size:clamp(1.4rem,3vw,2.2rem);margin:0 0 20px;padding-right:50px}
.spot-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;max-width:1100px}
.spot-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}
@media (max-width:900px){.spot-grid.two{grid-template-columns:minmax(0,1fr)}}
.spot-card{background:var(--paper);color:var(--ink);padding:22px 24px;border-radius:4px;display:flex;flex-direction:column;gap:12px;min-width:0}
.spot-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.spot-stamp{font-family:var(--f-display);font-size:1.1rem;letter-spacing:.12em;text-transform:uppercase;border:3px solid currentColor;padding:4px 12px;transform:rotate(-4deg)}
.spot-stamp.ok{color:var(--ok)}.spot-stamp.bad{color:var(--pin)}
.spot-score{font-family:var(--f-type);font-weight:700;font-size:3rem;line-height:1}
.spot-score small{font-size:1.1rem;color:var(--ink-2)}
.spot-meta{font-family:var(--f-type);font-size:.85rem;color:var(--ink-2)}
.spot-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--f-type);font-size:clamp(1rem,1.6vw,1.35rem);line-height:1.55}
.spot-fb{margin:0;font-size:1.05rem;border-top:1px dashed var(--line);padding-top:10px}
.spot-warn{position:fixed;left:50%;top:calc(20px + env(safe-area-inset-top,0px));transform:translateX(-50%);z-index:95;background:var(--paper);color:var(--ink);border-left:6px solid var(--pin);padding:16px 18px;box-shadow:var(--shadow);width:min(560px,calc(100% - 32px))}
.spot-warn p{margin:0 0 12px}
.spot-warn .row{display:flex;gap:10px;flex-wrap:wrap}

.reasoning-score{background:var(--paper-2);border-left:3px solid var(--ink);padding:10px 12px;margin:6px 0 4px;font-size:.92rem;max-width:72ch}
.modal #reasonBox{min-height:150px}

.gtext.blurred{filter:blur(6px);user-select:none}
.gwarn{color:var(--manila);margin:0 0 10px}

/* ---------- images ---------- */
.mug-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.mug .bn,.mug .ht{z-index:1}
.ex-img{display:block;width:100%;max-width:100%;aspect-ratio:4/3;object-fit:cover;margin:6px 0 8px;border:6px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.35);cursor:zoom-in;background:var(--paper-2)}
.ex-img.loading{cursor:default;background:repeating-linear-gradient(-45deg,var(--paper-2) 0 8px,#e7e0d1 8px 16px)}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(10,8,6,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;outline:none;cursor:zoom-out;
  padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.lightbox img{max-width:100%;max-height:85vh;object-fit:contain;border:8px solid #fff}
.lightbox p{color:var(--paper);font-family:var(--f-type);margin:0}
.lightbox .xbtn{position:absolute;top:calc(10px + env(safe-area-inset-top,0px));right:max(14px,env(safe-area-inset-right,0px));color:#fff;font-size:2.2rem}

/* Host: player seats on each team card */
.tcard .seats{display:flex;flex-direction:column;gap:4px;border-top:1px dashed var(--line,#c9bfa9);padding-top:6px}
.tcard .seat{display:flex;justify-content:space-between;align-items:center;gap:8px;font-family:var(--f-type);font-size:.8rem;color:var(--ink-2)}
.tcard .seat small{font-size:.74rem;opacity:.8}
.notice.seatnote{margin:0 0 12px}
.join .signedout{margin:0 0 14px}

/* Fair play */
.rules{background:var(--paper-2,#f3ecdc);border:1px dashed var(--line,#c9bfa9);padding:12px 14px;margin:0 0 14px}
.rules ol{margin:6px 0 0;padding-left:20px;font-size:.9rem;line-height:1.45}
.rules li{margin:4px 0}
.agree{display:flex;gap:10px;align-items:center;margin:0 0 16px;font-weight:600;cursor:pointer}
.agree input{width:20px;height:20px;accent-color:var(--pin,#b3261e)}
.fairplay{font-family:var(--f-type);font-size:.78rem;color:var(--ink-2);margin:6px 0}
.fairplay.strip{margin:-6px 0 14px;color:var(--manila,#e9d8a6)}
.hrules{margin:0 0 18px;max-width:900px;padding:22px 28px 18px}
.hrules ol{margin:8px 0 0;padding-left:26px;font-size:1.25rem;line-height:1.5}
.hrules-line{font-family:var(--f-type);font-size:.85rem;color:var(--manila,#e9d8a6);margin:0 0 12px}
.tcard .away{font-family:var(--f-type);font-size:.78rem;color:var(--ink-2)}
.tcard .away.ok{opacity:.7}
.tcard .away.warn{color:#9a2a1a;font-weight:600}
.ptag{display:inline-block;font-family:var(--f-type);font-size:.72rem;font-weight:700;padding:2px 7px;border-radius:3px;background:#f6d7cf;color:#8a1f12;border:1px solid #d9a092;white-space:nowrap}
.tcard .seat .kick{white-space:nowrap;flex:none}

/* Vision Building case entrance */
:root {
  --wood:#211d1a; --wood-2:#2f2924; --wood-3:#4d4036;
  --paper:#f7f1e6; --paper-2:#ebe1d1; --manila:#edcd9d;
  --ink:#231d19; --ink-2:#584b41; --line:#ccbeab;
  --pin:#9e3029; --pin-dark:#74221d;
  --f-case:Georgia,"Times New Roman",serif;
}
body:not(.host) {background:#1c1916;color:var(--paper)}
body.host {background-color:#211d1a}
#app {max-width:1264px}
body.host #app {max-width:1510px}
.entrance {max-width:1130px;margin-inline:auto}
.entrance-mast {display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 0 16px;
  border-bottom:1px solid #605046;color:#eadcc7;font-family:var(--f-type);font-size:.78rem;text-transform:uppercase;letter-spacing:.11em}
.case-mark {display:flex;align-items:center;gap:9px}
.case-mark i {width:8px;height:8px;background:#ce5b4e;border-radius:50%;box-shadow:0 0 0 3px #472b24}
.brand-credit {font-family:var(--f-type);font-size:.75rem;letter-spacing:.095em;text-transform:uppercase}
.entrance-grid {display:grid;grid-template-columns:minmax(0,.91fr) minmax(0,1.09fr);align-items:start;gap:24px;margin-top:24px}
.dossier {isolation:isolate;position:relative;min-width:0;overflow:hidden;padding:32px clamp(20px,4vw,48px) 21px;color:#f5e8d3;
  background:linear-gradient(160deg,#594230 0%,#35291f 62%,#2a211b 100%);border:1px solid #715643}
.dossier::before {content:"";position:absolute;inset:0;z-index:-1;opacity:.32;
  background-image:radial-gradient(#b68962 .8px,transparent 1px),radial-gradient(#190f0a 1px,transparent 1.4px);background-size:7px 9px,11px 13px}
.dossier-file {display:inline-block;font-family:var(--f-type);font-size:.78rem;letter-spacing:.16em;padding:5px 8px;
  border-left:3px solid #d36555;background:#211b16;color:#f2dac1}
.dossier h1 {font-family:var(--f-case);font-size:clamp(3.7rem,6.4vw,6.1rem);line-height:.87;font-weight:500;letter-spacing:-.058em;margin:18px 0 14px}
.dossier-deck {font-size:.96rem;color:#efdbc0;margin:0;max-width:34ch}
.contact-sheet {min-height:224px;display:flex;align-items:center;margin:24px 0 19px;padding:0 1px}
.contact-sheet figure {position:relative;margin:0;background:#e6dac3;color:#43372d;padding:7px 7px 5px;
  box-shadow:0 4px 14px #21160eaa;min-width:0}
.contact-sheet figure::after {content:"";width:10px;height:10px;border-radius:50%;position:absolute;top:3px;left:calc(50% - 5px);
  background:radial-gradient(circle at 35% 30%,#ee8276,#982e29 60%);box-shadow:0 2px 3px #35150c}
.contact-sheet img {width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;background:#3a2a20}
.contact-sheet figcaption {font-family:var(--f-type);font-size:clamp(.48rem,1vw,.66rem);letter-spacing:.06em;white-space:nowrap;padding:5px 0 0;text-align:center}
.contact-main {width:68%;transform:rotate(-5deg)}
.contact-side {width:42%;transform:rotate(7deg) translateY(13%);margin-left:-8% !important}
.contact-portraits {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}
.contact-side img {aspect-ratio:1;object-position:center 30%}
.dossier-footer {display:flex;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px dashed #9b7759;
  font-family:var(--f-type);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#e7c59f}
.entrance-card {width:100%;padding:24px clamp(16px,2.35vw,30px) 22px;border:1px solid #d5c0a2;border-top:4px solid var(--pin)}
.form-head .eyebrow {color:var(--pin-dark);font-weight:700}
.form-head h2 {font-family:var(--f-case);font-size:clamp(1.65rem,3vw,2.4rem);line-height:1.05;margin:3px 0 6px}
.entrance-card p {margin:0 0 11px;max-width:63ch;font-size:.86rem}
.entrance-card .field {margin-bottom:10px;min-width:0}
.entrance-card .field label {font-size:.68rem;letter-spacing:.09em;font-weight:700}
.entrance-card .field input {border:1px solid #a79781;min-height:43px;width:100%;min-width:0;background:#fffcf5;padding:8px 10px;font-size:1rem}
.entrance-card .field input.code {letter-spacing:.12em;font-size:1.05rem;max-width:none}
.team-picker,.pick-field {margin:0;padding:0;border:0;min-width:0}
.team-picker legend {font-weight:700;font-size:.88rem;margin-bottom:6px}
.entrance-card .slots {grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:10px}
.entrance-card .slot span {min-height:49px;background:#fffaf0;border-color:#b9a992;padding:4px 1px;gap:2px}
.entrance-card .slot b {font-family:var(--f-type);font-size:1.1rem}
.entrance-card .slot small {font-family:var(--f-body);font-size:.64rem;line-height:1.12;margin:0;color:var(--ink-2)}
.entrance-card .slot .slot-name {font-weight:700}
.entrance-card .slot input:checked+span {background:#efd8af;border-color:#75553d}
.entrance-card .slot input:disabled+span {background:#e1d8cb;opacity:1;border-style:dashed}
.name-row {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.91fr);gap:10px;align-items:end}
.name-row .join-help {margin-bottom:12px}
.join-help {font-size:.82rem}
.join-agreement {display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 12px;margin:0 0 11px}
.entrance-card .agree {margin:0;font-size:.84rem}
.join-rules summary {color:var(--pin-dark);font-size:.81rem;cursor:pointer;text-decoration:underline}
.join-rules .rules {margin:6px 0 0}
.join-actions {display:flex;flex-wrap:wrap;gap:8px}
#joinMessage:not(:empty) {margin-top:10px}
.entrance-card .signedout {margin-bottom:10px}
.waiting {color:var(--ink);margin-top:16px}
.waiting .big {font-family:var(--f-case)}
.waiting .brand-credit {color:var(--ink-2)}

@media (max-width:860px) {
  .entrance-grid {grid-template-columns:minmax(0,1fr);gap:12px;margin-top:12px}
  .dossier {padding:18px 22px 14px}
  .dossier h1 {font-size:clamp(2.5rem,8vw,4.5rem);margin:10px 0 7px}
  .dossier h1 br {display:none}
  .dossier-deck {max-width:none;font-size:.83rem}
  .contact-sheet,.dossier-footer {display:none}
  .entrance-card {padding-top:14px}
}
@media (max-width:440px) {
  body:not(.host) .wrap {padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px));padding-top:10px}
  .entrance-mast {font-size:.6rem;padding:7px 0 9px}
  .entrance-mast .brand-credit {font-size:.58rem;text-align:right}
  .dossier h1 {font-size:clamp(2.15rem,9vw,3.4rem)}
  .entrance-card .field label {letter-spacing:.02em}
  .entrance-card .field input {padding-inline:6px}
  .join-actions .btn {padding-inline:12px;font-size:.82rem}
  .name-row {grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr)}
}

/* Investigation board and tools */
.investigating #app {
  background-color:#795b42;color:var(--ink);border:1px solid #95714f;border-top:0;
  background-image:radial-gradient(#412b1d66 .8px,transparent 1.2px),radial-gradient(#d5ad7850 .8px,transparent 1.3px);
  background-size:7px 8px,11px 13px
}
.casehead h1,.secthead,.scene h2,.exhibit-head h2,.paper-dialog h2 {font-family:var(--f-case)}
.casehead {margin:4px 0 13px}
.casehead h1 {font-size:clamp(2rem,4vw,3rem)}
.casehead .sub {color:#fff1db}
.fairplay.strip {color:#fff1db;margin:0 0 24px}
.case-nav {display:flex;justify-content:center;flex-wrap:wrap;gap:2px 16px;padding:2px 12px 6px;border-top:1px solid var(--wood-3)}
.case-nav a {color:#f5dfbf;font-weight:700;text-decoration:none;font-size:.82rem;padding:6px 3px;border-bottom:2px solid transparent}
.case-nav a:hover,.case-nav a:focus-visible {border-color:#e67062}
#case-brief,#evidence,#interviews,#accusation {scroll-margin-top:122px}
.scene {transform:none}
.scene h2 {font-size:1.55rem;margin-bottom:8px}
.tag {background:var(--paper);padding:14px 14px 15px 24px;border:1px solid #b59a79;border-radius:2px;gap:5px}
.tag::before {top:19px;left:7px;width:8px;height:8px;background:var(--pin);box-shadow:0 1px 1px #44282490}
.tag.locked {background:#eee1cc}
.tag .d {line-height:1.56;white-space:pre-line}
.ex-view {border:0;background:#f2e8d9;border-radius:2px;padding:0 0 3px;text-align:center;color:var(--pin-dark);cursor:zoom-in;font-weight:700;font-size:.79rem}
.ex-view .ex-img {margin:0 0 4px;border:4px solid #fffdf6;box-shadow:none}
.board-credit {color:#fff1db;border-top:1px solid #c1a079;margin-top:26px;padding-top:10px}
.netbar {display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 22px)}
.netbar button {flex-shrink:0}
.result {overflow-wrap:anywhere}
@media (max-width:640px) {
  .statusbar-in {display:grid;grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,1fr));gap:5px;padding-block:7px}
  .statusbar .team {font-size:.82rem}
  .statusbar .team small {font-size:.54rem;letter-spacing:.045em}
  .stat {font-size:.67rem}.stat b {font-size:1rem}.stat.timer b {font-size:1.13rem}
  .case-nav {gap:1px 7px;padding-inline:3px}
  .case-nav a {font-size:clamp(.61rem,2.5vw,.8rem)}
  #case-brief,#evidence,#interviews,#accusation {scroll-margin-top:105px}
  .board {gap:24px}
  .scene {padding:21px 14px 17px}
  .scene p {font-size:.91rem}
  .digits {gap:6px}
  .digits input {width:min(15vw,56px)}
}

/* Keyboard-accessible native dialogs keep focus on the current task. */
.paper-dialog {border:1px solid #ad9476;border-top:4px solid var(--pin);padding:0;background:var(--paper);color:var(--ink);
  width:min(600px,calc(100% - 24px));max-height:calc(100dvh - 24px);border-radius:3px;box-shadow:0 16px 65px #140d09a3;overflow:auto}
.paper-dialog::backdrop {background:#1b1310bd}
.paper-dialog.modal {display:none;position:fixed;inset:0;margin:auto}
.paper-dialog.modal[open] {display:block}
.paper-dialog.modal>.card,.dialog-body {width:100%;padding:25px 22px 19px}
.dialog-body p {margin:8px 0 12px}
.dialog-actions,.exhibit-tools,.exhibit-head {display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dialog-actions {justify-content:flex-end}
.download {text-decoration:none}
.review-label {margin-top:14px}
.review-text {white-space:pre-wrap;overflow-wrap:anywhere;background:var(--paper-2);padding:12px;margin:4px 0 0;max-height:34vh;overflow:auto}
.exhibit-dialog {width:min(900px,calc(100% - 20px));max-height:calc(100dvh - 20px);padding:14px}
.exhibit-head {justify-content:space-between;gap:6px 14px}
.exhibit-head h2 {font-size:clamp(1.15rem,3vw,1.65rem)}
.exhibit-tools {margin:8px 0}
.zoom-level {font-family:var(--f-type);min-width:4ch;text-align:center}
.exhibit-stage {max-height:58dvh;overflow:auto;background:#272019;border:1px solid var(--wood-3);overscroll-behavior:contain}
.exhibit-full {display:block;width:auto;height:auto;max-width:100%;max-height:56dvh;margin-inline:auto;object-fit:contain}
.exhibit-full.zoomed {max-width:none;max-height:none}
.exhibit-caption {font-size:.91rem;margin:9px 0 0;white-space:pre-line}

/* Facilitator projector view */
.host .hhead {align-items:center;border-bottom-color:#6e5845}
.host .hhead h1 {font-family:var(--f-case);line-height:1.03}
.host .hright {gap:18px}
.host .joincode,.host .clock {background:#302820;border:1px solid #6e5845;padding:12px 15px;border-radius:3px}
.host .joincode {align-items:flex-start}
.host .joincode .code {font-size:clamp(2.2rem,6vw,4.6rem);letter-spacing:.12em}
.host .joincode .url {text-align:left}
.host .clock .num {font-size:clamp(2.8rem,6vw,5rem)}
.host .host-tally {margin-top:8px;color:#f1debd;font-weight:700}
.host .controls {border-bottom:1px solid #56473a;padding-bottom:14px}
.host .controls .btn {min-height:45px}
.host .hrules {padding:13px 22px;margin:0 0 20px;max-width:none}
.host .hrules ol {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px 30px;font-size:.92rem}
.host .tcard {min-height:0;padding:12px}
.host .tcard.empty {min-height:85px}
@media (max-width:720px) {
  .host .hhead .t {flex-basis:100%}
  .host .hright {gap:9px}
  .host .joincode,.host .clock {padding:7px 10px}
  .host .hrules ol {grid-template-columns:minmax(0,1fr);gap:4px}
}

/* Case Archives */
:root {
  --paper:#f3eddf; --paper-2:#ebe2d0; --manila:#dfc69a; --line:#cabc9e;
  --wood:#191a17; --wood-2:#232520; --wood-3:#3e3d33;
  --ink:#24231e; --ink-2:#575044; --pin:#9c3026; --pin-dark:#76251d;
}
body:not(.host) {
  background:radial-gradient(ellipse at 32% 15%,#2a2922,transparent 59%),#171814;
}
.entrance {max-width:1180px}
.entrance-mast {
  border-color:#555144;
  color:#e7d6b4;
  padding:15px 0 17px;
  font-weight:700;
}
.entrance-grid {grid-template-columns:minmax(0,1.13fr) minmax(0,.87fr);gap:22px;align-items:stretch}
.dossier {
  display:flex;flex-direction:column;
  background:linear-gradient(145deg,#23231e,#353128 74%,#25251f);
  border-color:#5c5040;
  padding:31px clamp(21px,3.1vw,42px) 18px;
  color:#f0e7d3;
}
.dossier::before {
  opacity:.53;
  background-image:radial-gradient(#a07f59 .65px,transparent 1px),radial-gradient(#130e09 1px,transparent 1.4px);
}
.dossier-file {align-self:flex-start;background:#e6d7b9;color:#3b2b20;border-left-color:#a03228;font-weight:700}
.dossier h1 {
  margin:18px 0 11px;
  font-size:clamp(3.65rem,7.2vw,6.4rem);
  font-weight:600;
  text-shadow:0 2px 14px #1c1715;
}
.dossier-deck {max-width:40ch;color:#e9d5ae}
.contact-sheet {position:relative;isolation:isolate;min-height:245px;margin:18px 0 12px;padding:0;flex:1}
.contact-sheet figure {z-index:2;background:#e1d5be}
.contact-sheet figure img {filter:saturate(.65) contrast(1.12)}
.contact-main {width:56%;margin-left:2% !important;transform:rotate(-7deg) translateY(1%)}
.contact-side {width:33%;margin-left:1% !important;transform:rotate(8deg) translate(0,15%)}
.archive-slip {
  display:grid;gap:5px;position:absolute;z-index:1;top:10%;right:2%;width:43%;height:70%;padding:12px 11px;
  background:repeating-linear-gradient(#d1c3a4 0 17px,#b4a483 18px,#d1c3a4 19px);
  box-shadow:0 2px 9px #1e1812aa;transform:rotate(-9deg);
  font-family:var(--f-type);font-size:clamp(.5rem,1vw,.69rem);color:#3b342b;align-content:start;
}
.archive-mark {justify-self:end;color:#74251e;border:1px solid currentColor;transform:rotate(8deg);padding:1px 4px;font-weight:700}
.evidence-thread {
  position:absolute;height:1px;background:#c14c39;box-shadow:0 1px 1px #22150e;
  transform-origin:left center;z-index:3;pointer-events:none;opacity:.85
}
.thread-a {top:49%;left:3%;width:79%;transform:rotate(-16deg)}
.thread-b {top:23%;left:20%;width:73%;transform:rotate(13deg)}
.thread-c {top:17%;left:63%;width:41%;transform:rotate(67deg);z-index:0}
.dossier-footer {margin-top:auto;border-color:#8f785b;color:#e8cfa6}
.entrance-card {
  background:repeating-linear-gradient(90deg,#f3eddf 0 23px,#f1eadb 24px,#f3eddf 25px);
  border-top:4px solid #9d3026;
  padding:24px clamp(17px,2.2vw,28px) 22px;
}
.form-head h2 {font-size:clamp(1.8rem,3.6vw,2.65rem);color:#25241c}
.entrance-card .slot span {background:#faf6eb;border-color:#beb092}
.entrance-card .slot input:checked+span {background:#ead5ab;border-color:#7a4938;box-shadow:inset 0 0 0 1px #7a4938}
.entrance-card .slot input:disabled+span {background:#e7dfcd;color:#625b4d}
.entrance-card .field input {border-color:#a99b80;background:#fffcf4}
.entrance-card .btn.red {background:#9c3026}
.entrance-card .btn.red:hover {background:#76251d}

.entrance-card {align-self:center;border-radius:2px;padding-bottom:22px}
.entry-progress {
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;
  list-style:none;padding:0 0 13px;margin:0 0 16px;border-bottom:1px solid var(--line);
}
.entry-progress li {display:flex;align-items:center;gap:5px;color:#665b4b;font:700 .72rem/1.15 var(--f-type)}
.entry-progress li span {
  flex:none;display:grid;place-items:center;width:21px;height:21px;border:1px solid #8c7b63;border-radius:50%;
}
.entry-progress [aria-current] {color:var(--pin-dark)}
.entry-progress [aria-current] span {background:var(--pin-dark);border-color:var(--pin-dark);color:#fff}
.entry-progress .complete span {color:#24503b;border-color:#507762}
.entrance-card .join-actions .btn.red {min-height:44px}

/* The case index sits next to the evidence desk on a laptop and above it on a phone. */
.investigating #app {
  max-width:1360px;
  background:transparent;
  border:0;
  padding:24px clamp(12px,3vw,34px) 36px;
}
.investigating #statusbar {background:#191a17}
.investigating .statusbar {border-bottom:1px solid #565145}
.investigating .statusbar-in {
  max-width:1360px;
  display:grid;
  grid-template-columns:minmax(120px,1fr) repeat(3,minmax(100px,145px));
  gap:8px 12px;
  padding:9px clamp(12px,3vw,34px);
}
.investigating .stat {
  border-left:1px solid #5d5546;
  padding-left:12px;
  color:#dfd4be;
}
.investigating .stat.timer b {color:#f5e7cb}
.investigating .stat.timer b.low {color:#ff9788}
.investigating .stat.low b {color:#ff9788}
.case-layout {display:grid;grid-template-columns:218px minmax(0,1fr);align-items:start;gap:22px}
.case-index {
  position:sticky;top:calc(90px + env(safe-area-inset-top,0px));
  min-width:0;background:#272821;border:1px solid #5b5447;
}
.index-heading {padding:17px 14px 15px;border-bottom:1px solid #5b5447}
.index-heading .eyebrow {color:#dfc69a;font-weight:700}
.index-heading h1 {font:700 1.55rem/1.03 var(--f-case);color:#f4eee0;margin:4px 0 10px}
.case-status {
  display:inline-flex;align-items:center;gap:6px;
  color:#f1d9aa;background:#343127;border:1px solid #716248;padding:3px 5px;
  font:700 .64rem/1.3 var(--f-type);text-transform:uppercase;letter-spacing:.05em;
}
.case-status::before {content:"";width:5px;height:5px;border-radius:50%;background:#d86659}
.case-nav {display:grid;justify-content:stretch;gap:0;padding:5px 0;border:0}
.case-nav button {
  display:flex;align-items:center;gap:9px;width:100%;min-height:46px;
  text-align:left;padding:6px 13px;border:0;border-left:3px solid transparent;
  background:transparent;color:#eee6d5;cursor:pointer;font-weight:700;font-size:.84rem;
}
.case-nav button:hover {background:#3b382e}
.case-nav button[aria-current] {background:#f1e8d8;color:#25241f;border-left-color:var(--pin)}
.case-nav button span {font:700 .71rem var(--f-type);color:#d5b98e}
.case-nav button[aria-current] span {color:var(--pin-dark)}
.case-workspace {
  min-width:0;padding:20px clamp(12px,2.2vw,27px) 18px;
  background:radial-gradient(#8c745149 .75px,transparent 1.1px) 0 0 / 6px 7px,
    linear-gradient(135deg,#332e24,#26251e);
  border:1px solid #5b5141;
}
.file-header {color:#f4eddf;margin:0 0 17px}
.file-header .eyebrow {color:#e1c89b;font-weight:700}
.file-header h2 {font:700 clamp(1.9rem,4vw,3.15rem)/1 var(--f-case);margin:4px 0 7px}
.file-header p {margin:0;color:#e9dfcb;font-size:.91rem;max-width:67ch}
.brief-grid {display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);align-items:start;gap:17px}
.incident-paper {padding:23px clamp(14px,2.8vw,32px) 25px;border-top:5px solid #b9a17b;background:#f5eee1}
.incident-mast {
  display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 13px;
  font:700 .8rem var(--f-type);text-transform:uppercase;color:#635441;
}
.case-stamp {display:inline-block;border:2px solid #8a3025;color:#8a3025;font-size:.68rem;padding:3px 6px;transform:rotate(-6deg);white-space:nowrap}
.incident-paper h3 {font:700 clamp(1.5rem,3vw,2.23rem)/1.05 var(--f-case);margin:0 0 12px}
.incident-paper p {margin:12px 0 0;font: .95rem/1.65 var(--f-body)}
.report-fields {display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:8px 0;border-block:1px solid var(--line)}
.report-fields small,.report-fields strong {display:block}
.report-fields small {text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);font:700 .7rem var(--f-type)}
.report-fields strong {font-size:.89rem}
.brief-aside {display:grid;gap:13px}
.brief-photo {min-width:0;margin:0;background:#e9dcc4;padding:7px;box-shadow:var(--shadow)}
.brief-photo figcaption {font:700 .74rem var(--f-type);padding:5px 3px 0;color:#514738}
.brief-next {border:1px solid #766750;background:#24231d;color:#f3e8d3;padding:14px;display:flex;flex-wrap:wrap;gap:8px}
.brief-next .eyebrow,.brief-next p {width:100%;margin:0;color:inherit}
.brief-next .eyebrow {color:#dfc69a}
.brief-next .btn {min-height:40px;font-size:.82rem}

.file-filters {display:flex;flex-wrap:wrap;gap:6px;margin-bottom:15px}
.file-filter {
  display:inline-flex;align-items:center;gap:5px;border:1px solid #998560;border-radius:3px;
  background:#26251f;color:#f3e6cc;min-height:42px;padding:4px 8px;font-size:.81rem;font-weight:700;cursor:pointer;
}
.file-filter:hover {background:#483c2d}
.file-filter[aria-pressed=true] {background:#eee0c3;color:#31291e}
.file-filter span {min-width:1.7em;padding:1px 3px;text-align:center;font:700 .75rem var(--f-type);border:1px solid currentColor}
.file-evidence {grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.exhibit-card {padding:11px;min-width:0;gap:8px;background:#f4ecdc}
.exhibit-card::before {display:none}
.exhibit-card h3 {font:700 1.13rem/1.13 var(--f-case);overflow-wrap:anywhere}
.exhibit-card .d {margin:0;font-size:.83rem}
.exhibit-card .ex {font-weight:700}
.exhibit-card .act,.pin-toggle {margin-top:auto;align-self:flex-start}
.exhibit-card .act {min-height:40px}
.exhibit-card .ex-view {align-self:stretch}
.ex-view {
  display:block;width:100%;position:relative;overflow:hidden;min-height:80px;padding:0;
  border:1px solid #5a5245;background:#292820;color:#fff3dc;text-align:left;cursor:zoom-in;
}
.ex-view .ex-img {width:100%;height:auto;aspect-ratio:1.65;object-fit:cover;border:0;margin:0}
.ex-view:hover .photo-open {background:#742820}
.photo-open {
  display:flex;justify-content:space-between;position:absolute;inset:auto 0 0;
  padding:7px 9px;background:#222017ee;color:#fff3dc;font-weight:700;
}
.photo-placeholder {aspect-ratio:1.65;display:grid;place-content:center;color:#ead9b5;font:700 .86rem var(--f-type);padding-bottom:20px}
.photo-placeholder i {display:block;width:36px;margin:0 auto 6px;height:22px;border:1px solid #a38b5f;box-shadow:3px -3px #5d523a}
.exhibit-card.locked {background:#e8dec9}
.sealed-cover {
  display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:76px;
  background:repeating-linear-gradient(143deg,#ded2ba 0 9px,#e8ddc6 10px 18px);
  border:1px solid #b8aa8d;padding:9px 12px;color:#703a31;
}
.sealed-cover span {font:700 2rem/1 var(--f-case);color:#514331}
.sealed-cover b {font:700 .63rem var(--f-type);letter-spacing:.08em;text-align:right}
.pinboard {
  padding:12px;border:1px dashed #a18661;
  background:radial-gradient(#ae895561 .8px,transparent 1.2px) 0 0 / 7px 9px,#443524;
}
.pinboard .is-pinned {border-top:3px solid var(--pin)}
.pin-toggle[aria-pressed=true] {color:var(--pin-dark)}
.profile-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.profile-card:nth-child(n) {transform:none;min-width:0}
.profile-card {
  display:grid;grid-template-columns:minmax(85px,.62fr) minmax(0,1fr);
  gap:8px 11px;align-content:start;border-top:4px solid #b09569;
}
.profile-card>.eyebrow,.profile-card>.foot,.profile-card>p {grid-column:1/-1}
.profile-card .mug {aspect-ratio:1}
.profile-card h3 {font:700 1.35rem/1.1 var(--f-case)}
.profile-card .foot {flex-wrap:wrap}
.profile-card .btn {min-height:40px}
.notebook-paper {min-height:360px;padding:22px 17px;background-position:0 10px}
.notebook-paper textarea {min-height:290px}
.pin-list,.empty-file,.decision-card {padding:17px}
.pin-list h3,.decision-card h3 {font:700 1.5rem var(--f-case)}
.pin-list ul {list-style:none;margin:9px 0 13px;padding:0}
.pin-list li {border-bottom:1px solid var(--line)}
.pin-link {
  display:flex;align-items:center;gap:8px;width:100%;padding:7px 3px;min-height:40px;
  border:0;background:transparent;text-align:left;font-weight:700;cursor:pointer;
}
.pin-link span {border:1px solid currentColor;padding:2px 4px;color:var(--pin-dark);font:700 .72rem var(--f-type)}
.pin-link:hover {text-decoration:underline}
.decision-card {max-width:630px;border-top:4px solid var(--pin)}
.board-credit {color:#ede2ca;border-color:#817052;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 12px;font-size:.78rem}

.lobby-metrics {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:15px 0}
.lobby-metrics div {border:1px solid var(--line);padding:6px;background:var(--paper-2);text-align:center}
.lobby-metrics dt {font:700 .7rem var(--f-type);color:var(--ink-2)}
.lobby-metrics dd {margin:2px 0 0;font:700 1.35rem var(--f-type)}

.exhibit-dialog {width:min(1080px,calc(100% - 20px));padding:16px}
.exhibit-head {border-bottom:1px solid var(--line);padding-bottom:9px;margin-bottom:12px}
.exhibit-head .eyebrow {color:var(--pin-dark)}
.exhibit-reader {display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:15px}
.exhibit-stage {min-height:116px}
.exhibit-transcript {background:#fff9eb;border:1px solid var(--line);padding:13px;align-self:start}
.exhibit-transcript h3 {font:700 .74rem var(--f-type);text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2)}
.exhibit-caption {line-height:1.55;margin:6px 0 12px;overflow-wrap:anywhere}
.exhibit-tools .btn,.exhibit-head .btn,.exhibit-transcript .btn {min-height:40px}
.photo-status {color:#fff3dc;margin:12px}
.exhibit-stage>.btn {margin:0 12px 12px}
dialog.sheet {
  position:fixed;inset:0 0 0 auto;margin:0;max-height:100dvh;height:100dvh;width:min(480px,100%);
  max-width:100%;border-radius:0;border-top:4px solid var(--pin);
}
dialog.sheet:not([open]) {display:none}
.sheet .xbtn {width:44px;height:44px;border:1px solid var(--line)}
.sheet .transcript {min-height:100px;overscroll-behavior:contain}
.sheet .chip {min-height:40px}
.sheet .ask .btn {min-height:44px}
.sheet .hint {padding-bottom:max(12px,env(safe-area-inset-bottom,0px))}

@media (max-width:950px) {
  .case-layout {grid-template-columns:184px minmax(0,1fr);gap:13px}
  .file-evidence {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px) {
  .case-layout {display:block}
  .case-index {top:calc(57px + env(safe-area-inset-top,0px));z-index:10;margin-bottom:9px}
  .index-heading {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 8px;padding:6px 9px}
  .index-heading h1 {grid-column:1/-1;grid-row:2;margin:0;font-size:1.17rem}
  .index-heading .case-status {justify-self:end}
  .case-nav {grid-template-columns:repeat(5,minmax(0,1fr));padding:0}
  .case-nav button {justify-content:center;min-height:44px;text-align:center;padding:4px 3px;border-left:0;border-bottom:3px solid transparent}
  .case-nav button[aria-current] {border-bottom-color:var(--pin)}
  .case-nav button span {display:none}
  .investigating #app {padding:9px max(9px,env(safe-area-inset-left,0px)) 24px}
  .investigating .statusbar-in {grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:5px;padding:7px 9px;height:57px}
  .investigating .stat {padding-left:5px;font-size:clamp(.56rem,1.8vw,.68rem);white-space:nowrap}
  .brief-grid,.exhibit-reader {grid-template-columns:minmax(0,1fr)}
  .exhibit-full {max-height:38dvh}
}
@media (max-width:440px) {
  .investigating .statusbar-in {grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,.8fr)) minmax(84px,1.1fr)}
  .case-nav button {font-size:clamp(.61rem,2.7vw,.76rem)}
  .case-status {font-size:.58rem}
  .entry-progress li {font-size:.66rem}
  .file-filters {gap:4px}
  .file-filter {padding-inline:5px;font-size:.73rem;gap:3px}
  .file-filter span {font-size:.68rem}
  .case-workspace {padding:12px 9px}
  .file-evidence {grid-template-columns:minmax(0,1fr)}
  .profile-grid {gap:8px}
  .profile-card {display:flex;padding:8px}
  .profile-card .eyebrow {letter-spacing:.045em;font-size:.61rem}
  .profile-card h3 {font-size:1.1rem}
  .sheet .line {grid-template-columns:58px minmax(0,1fr);gap:6px}
}

@media (max-width:860px) {
  .entrance-grid {grid-template-columns:minmax(0,1fr);gap:12px}
  .dossier {padding:18px 20px 14px}
  .dossier h1 {font-size:clamp(2.5rem,8vw,4rem);margin:10px 0 6px}
  .dossier-deck {max-width:none}
  .entrance-card {padding-top:14px}
}
@media (max-width:440px) {
  .entrance-mast {padding:6px 0 9px}
  .dossier {padding:12px 14px 13px}
  .dossier h1 {font-size:clamp(2.08rem,9vw,3.4rem)}
  .dossier-deck {font-size:.8rem}
}

.host-join-qr {
  margin:0;display:grid;justify-items:center;gap:5px;
  font:700 .68rem var(--f-type);letter-spacing:.06em;color:var(--manila);
}
.host-join-qr img {display:block;width:clamp(96px,12vw,140px);height:auto;border-radius:2px}

/* Marks printed on the case furniture, never on the evidence photos themselves. */
body:not(.host) {
  --case-spatter:url("./images/case-blood-spatter.svg");
  --case-print:url("./images/case-blood-fingerprint.svg");
  --case-stain:url("./images/case-blood-stain.svg");
  background:radial-gradient(ellipse at 75% 4%,#391c1b,transparent 55%),#171614;
}
.dossier {
  background:
    var(--case-spatter) right -43px top -26px / min(79%,580px) auto no-repeat,
    var(--case-print) right 18px top 93px / 104px auto no-repeat,
    linear-gradient(145deg,#24201b,#32221b 74%,#221917);
  border-color:#765047;
}
.dossier-file {border-left-color:#bd4437}
.evidence-thread {background:#ca453a}
.entrance-card,.waiting {
  background:
    var(--case-stain) right bottom / min(68%,300px) auto no-repeat,
    repeating-linear-gradient(90deg,#f3eddf 0 23px,#f1eadb 24px,#f3eddf 25px);
}
.entrance-card {border-top-color:#a93229}
.waiting {border-top:4px solid var(--pin)}

.case-index {border-color:#71463e}
.index-heading {
  background:
    linear-gradient(90deg,#272821 31%,#27282100 98%),
    var(--case-print) right -10px top -11px / 112px auto no-repeat;
}
.case-workspace {
  background:
    var(--case-spatter) right -27px top -24px / min(72%,640px) auto no-repeat,
    var(--case-stain) right bottom / min(61%,600px) auto no-repeat,
    radial-gradient(#996b5149 .75px,transparent 1.1px) 0 0 / 6px 7px,
    linear-gradient(135deg,#382720,#2a211c);
  border-color:#7a4b41;
}
.pinboard {
  background:
    var(--case-spatter) right -22px top -20px / min(72%,490px) auto no-repeat,
    radial-gradient(#ae895561 .8px,transparent 1.2px) 0 0 / 7px 9px,#493025;
  border-color:#a17259;
}
.incident-paper {
  background:var(--case-stain) right bottom / min(62%,345px) auto no-repeat,#f5eee1;
  border-top-color:#9b5143;
}
.sealed-cover {
  --cover-pattern:repeating-linear-gradient(143deg,#e5d8c2 0 9px,#ece0cb 10px 18px);
  background:var(--case-stain) right bottom / 144px auto no-repeat,var(--cover-pattern);
  border-color:#b4917d;
}
.sealed-cover b {
  padding:3px 5px;
  border:1px solid #b4917d;
  background:#f4ecdc;
  color:#76251d;
}
.exhibit-card:nth-child(3n+2) .sealed-cover {
  background:var(--case-print) center -17px / 86px auto no-repeat,var(--cover-pattern);
}
.exhibit-card:nth-child(3n+1) .sealed-cover {
  background:var(--case-spatter) center -10px / 194px auto no-repeat,var(--cover-pattern);
}
.exhibit-dialog .exhibit-head {
  background:var(--case-print) right 90px top -35px / 89px auto no-repeat;
}
.sheet-h {
  background:
    var(--case-print) right 67px center / 78px auto no-repeat,
    var(--case-stain) right bottom / 175px auto no-repeat,#ebe2d0;
}
.sheet-h .xbtn {background:var(--paper);border-color:#8f6958}
body:not(.host) .result {
  background:var(--case-stain) right bottom / min(61%,335px) auto no-repeat,var(--paper);
}
@media (max-width:720px) {
  .dossier {
    background-size:clamp(240px,69%,430px) auto,70px auto,auto;
    background-position:right -23px top -9px,right 14px top 14px,0 0;
  }
  .case-workspace {background-size:clamp(215px,66%,410px) auto, min(66%,320px) auto,6px 7px,auto}
  .index-heading {background-size:auto,64px auto;background-position:0 0,right 5px top -22px}
  .exhibit-dialog .exhibit-head {background-position:right 53px top -39px}
}
