/* Case file page — animated evidence walk-through */
.grain{position:fixed;inset:-50%;z-index:60;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='0.9'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 8s steps(10) infinite}
@keyframes grain{0%,100%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-2%)}80%{transform:translate(3%,3%)}}
.progress-rail{position:fixed;left:0;top:0;bottom:0;width:4px;background:#1c1c22;z-index:55}
.progress-fill{width:100%;height:0;background:linear-gradient(#c0392b,#e74c3c);box-shadow:0 0 12px rgba(231,76,60,.7)}
.case-hero{max-width:860px;margin:0 auto;padding:3.6rem 1.4rem 1rem;text-align:center}
.folder-tab{display:inline-flex;gap:1.2rem;background:#26221a;color:#d9c89e;border:1px solid #3a342a;
  border-bottom:none;padding:.45rem 1.3rem;border-radius:8px 8px 0 0;font-size:.74rem;letter-spacing:.22em}
.tab-lanes{color:#8a8474}
.case-title{font-family:var(--head);font-size:clamp(1.5rem,4.4vw,2.6rem);line-height:1.18;
  border-top:2px solid #3a342a;padding-top:1.4rem;margin-bottom:.4rem}
.case-film{color:var(--dim);font-style:italic;margin-bottom:1.2rem}
.hero-stamp-row{margin-bottom:1rem}
.case-tagline{min-height:1.6em;font-size:1.08rem;color:var(--paper);font-style:italic;margin-bottom:1.2rem}
.typewriter::after{content:"▌";animation:blink 1s steps(1) infinite;color:var(--red2)}
.typewriter.done::after{opacity:0}
@keyframes blink{50%{opacity:0}}
.case-stats-row{display:flex;justify-content:center;align-items:center;gap:.9rem;color:var(--dim);
  font-size:.78rem;letter-spacing:.14em}
.case-stats-row i{width:5px;height:5px;border-radius:50%;background:var(--red);display:inline-block}
.slam,.slam-on-view{opacity:0}
.slammed{animation:slam .45s cubic-bezier(.2,1.6,.35,1) forwards}
.sub.typewriter{min-height:2.2em}
@keyframes slam{0%{opacity:0;transform:scale(3) rotate(-14deg)}60%{opacity:1;transform:scale(.92) rotate(-4deg)}
  100%{opacity:1;transform:scale(1) rotate(-3deg)}}
.stamp.giant{font-size:clamp(1.3rem,4vw,2.1rem);padding:.5rem 1.4rem;border-width:3px}
.evidence-map{position:sticky;top:54px;z-index:40;display:flex;justify-content:center;gap:.4rem;
  flex-wrap:wrap;background:rgba(18,18,20,.92);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);
  padding:.55rem 1rem}
.map-line{display:none}
.node{color:var(--dim);font-size:.7rem;letter-spacing:.12em;padding:.3rem .65rem;border:1px solid transparent;
  border-radius:99px;transition:all .2s;white-space:nowrap}
.node:hover{color:var(--ink)}
.node.active{color:var(--red2);border-color:var(--red)}
.node b{color:var(--red2);margin-right:.3rem;font-weight:700}
.player-wrap{max-width:860px;margin:1.6rem auto;padding:0 1.4rem}
.facade{position:relative;display:block;width:100%;aspect-ratio:16/9;border:1px solid var(--line);
  border-radius:6px;overflow:hidden;cursor:pointer;background:#000;padding:0}
.facade img{width:100%;height:100%;object-fit:cover;opacity:.75;transition:opacity .3s,transform .4s}
.facade:hover img{opacity:.95;transform:scale(1.02)}
.facade-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:84px;height:84px;
  border-radius:50%;background:rgba(192,57,43,.92);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 0 rgba(192,57,43,.5);animation:pulse-red 2.2s infinite;transition:transform .2s}
.facade:hover .facade-btn{transform:translate(-50%,-50%) scale(1.1)}
@keyframes pulse-red{70%{box-shadow:0 0 0 26px rgba(192,57,43,0)}100%{box-shadow:0 0 0 0 rgba(192,57,43,0)}}
.facade-label{position:absolute;bottom:.9rem;left:50%;transform:translateX(-50%);font-family:var(--mono);
  color:#fff;font-size:.8rem;letter-spacing:.22em;background:rgba(18,18,20,.7);padding:.3rem .9rem;border-radius:3px}
.player-wrap iframe{width:100%;aspect-ratio:16/9;border:1px solid var(--line);border-radius:6px;display:block}
.trail{max-width:760px;margin:0 auto;padding:2rem 1.4rem 4rem}
.step{position:relative;margin:0 0 2.6rem;padding:1.6rem 1.6rem 1.6rem 4.6rem;background:var(--panel);
  border:1px solid var(--line);border-radius:6px}
.step::before{content:"";position:absolute;left:2.2rem;top:-2.6rem;bottom:auto;height:2.6rem;width:2px;
  background:linear-gradient(var(--red) 0 60%,transparent 60% 70%,var(--red) 70% 100%)}
.step:first-child::before{display:none}
.step-num{position:absolute;left:1.1rem;top:1.4rem;width:2.3rem;height:2.3rem;border:2px solid var(--red);
  border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--head);
  color:var(--red2);font-size:.85rem;background:var(--bg)}
.step h2{font-family:var(--head);font-size:1.02rem;letter-spacing:.1em;color:var(--red2);
  text-transform:uppercase;margin-bottom:.7rem}
.step p{margin-bottom:.85rem}
.step p:last-child{margin-bottom:0}
.step.stub{border-style:dashed}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
.evidence-wall{margin:3rem 0}
.wall-title{font-family:var(--head);text-align:center;letter-spacing:.18em;font-size:1.25rem;margin-bottom:.4rem}
.wall-sub{text-align:center;color:var(--dim);font-size:.85rem;margin-bottom:1.8rem}
.exhibits{display:grid;gap:1.4rem}
.exhibit{position:relative;background:#efe7d2;color:#2b2620;border-radius:2px;padding:1.3rem 1.4rem 1.1rem;
  box-shadow:0 8px 22px rgba(0,0,0,.45);transform:rotate(-.6deg)}
.exhibit:nth-child(even){transform:rotate(.7deg)}
.exhibit:hover{transform:rotate(0) translateY(-3px);transition:transform .25s}
.tape{position:absolute;top:-11px;left:50%;transform:translateX(-50%) rotate(-2deg);width:110px;height:24px;
  background:rgba(214,201,160,.85);box-shadow:0 1px 4px rgba(0,0,0,.25)}
.exhibit figcaption{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.55rem;align-items:baseline}
.ex-label{font-family:var(--head);color:#a83227;font-size:.72rem;letter-spacing:.18em}
.ex-ts{font-size:.78rem;font-weight:700;color:#a83227;border:1px solid #a83227;border-radius:3px;padding:.1rem .5rem}
.ex-ts:hover{background:#a83227;color:#efe7d2}
.exhibit blockquote{font-style:italic;font-size:.98rem;line-height:1.55;margin-bottom:.55rem}
.ex-note{color:#6b6353;font-size:.83rem}
.verdict-block{text-align:center;margin:3.4rem 0;padding:2.4rem 1.4rem;border-top:1px dashed var(--line);
  border-bottom:1px dashed var(--line)}
.verdict-kicker{display:block;color:var(--dim);letter-spacing:.34em;font-size:.72rem;margin-bottom:1.1rem}
.case-closing{max-width:560px;margin:1.6rem auto 0;text-align:left}
.case-closing p{margin-bottom:.9rem;font-weight:700}
@media (max-width:640px){
  .evidence-map{top:0}
  .node{font-size:.62rem;padding:.24rem .5rem}
  .step{padding-left:3.6rem}
  .step-num{left:.7rem;width:2rem;height:2rem}
}
@media (prefers-reduced-motion:reduce){
  .grain,.facade-btn{animation:none}
  .reveal,.slam,.slam-on-view{opacity:1;transform:none;transition:none}
  .typewriter::after{display:none}
}
