/* Cases only: fixture-derived visual grouping, one-shot motion, and inspectable final links. */
.cm{margin:30px 0 36px;padding:clamp(18px,3vw,34px);border-radius:var(--r-l);background:#18141d;color:var(--cream);isolation:isolate}
.cm .eyebrow{color:var(--lantern)}.cm h2{margin:10px 0 0;font:400 clamp(30px,4vw,56px)/1 var(--impact);text-transform:uppercase;letter-spacing:-.02em}.cm h2 em{font-style:normal;color:var(--lantern)}
.cm .bm-truth{max-width:80ch}.cm-theatre{min-width:0}.cm-world{display:block;width:100%;height:auto;aspect-ratio:1000/580}
.cm-intake circle{fill:#342b36;stroke:#ffb547;stroke-width:2}.cm-intake path{fill:none;stroke:#ffcc7d;stroke-width:1.7;stroke-linejoin:round}.cm-intake text,.cm-closure text{fill:#ffcc7d;font:500 11px var(--mono);letter-spacing:.09em}
.cm-paths path{fill:none;stroke:var(--case-accent);stroke-width:2;stroke-opacity:.65;stroke-dasharray:900;stroke-dashoffset:900}
.cm-frames rect{fill:var(--case-accent);fill-opacity:.035;stroke:var(--case-accent);stroke-opacity:.32;stroke-width:1.2;stroke-dasharray:3 7}.cm-lane-name,.cm-lane-count{paint-order:stroke fill;stroke:#211b26;stroke-width:6px;stroke-linejoin:round}
.cm-junction circle:first-child{fill:#27222c;stroke:#ffb547;stroke-width:1.5}.cm-junction .cm-core{fill:#ffb547}.cm-lane-name{fill:#fff4df;font:600 12px var(--mono);letter-spacing:.03em}.cm-lane-count{fill:#bfb5bf;font:500 11px var(--ui)}
.cm-node rect{fill:#fff9ed;stroke:var(--case-accent);stroke-width:2}.cm-node.landed rect{fill:#f1e9da}.cm-node path{fill:none;stroke:#a47440;stroke-width:1.3;stroke-linejoin:round}.cm-node text{fill:#2b2430;font:700 11px var(--mono)}
.cm-final{border-top:1px solid #ffffff27;padding:20px 0 0}.cm-final-head{display:flex;gap:16px;justify-content:space-between;align-items:baseline}.cm-final h3{margin:0;color:var(--lantern);font:400 clamp(21px,2.5vw,31px)/1.15 var(--impact);text-transform:uppercase}.cm-final-head p{margin:0;max-width:65ch;color:var(--mist);font:400 13px/1.5 var(--ui)}
.cm-filters{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.cm-filters .btn{background:#ffffff10;border:1px solid #ffffff35;color:var(--cream);min-height:44px;font-size:12px}.cm-filters .btn[aria-pressed="true"]{background:var(--lantern);color:#2d2016;border-color:var(--lantern)}
.cm-groups{display:grid;grid-template-columns:1.4fr 1fr .8fr;gap:12px}.cm-group{min-width:0;border:1px solid #ffffff30;border-radius:12px;padding:16px;background:#ffffff08}.cm-group[hidden]{display:none}.cm-group h4{margin:0 0 14px;color:var(--cream);font:600 14px/1.4 var(--ui)}.cm-group h4 span{float:right;color:var(--lantern);font:600 13px var(--mono)}
.cm-group ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.cm-group li{min-width:0}.cm-group a{color:var(--cream);text-underline-offset:3px}.cm-group li a{display:grid;grid-template-columns:72px minmax(0,1fr) 18px;gap:7px;align-items:center;min-height:43px;padding:5px 8px;text-decoration:none;border:1px solid #ffffff28;border-radius:7px;font-size:12px;line-height:1.25}.cm-group li a:hover,.cm-group li a:focus-visible{border-color:var(--lantern);background:#ffffff13}.cm-group li b{color:var(--lantern);font:600 11px var(--mono)}.cm-group li span:nth-child(2){overflow-wrap:anywhere}.cm-case-arrow{text-align:right;color:var(--lantern)}.cm-group p{color:var(--mist);font-size:12px;line-height:1.4}.cm-complete{margin:18px 0 0;color:var(--mist);font-size:12px}
.cm :is(a,button):focus-visible{outline:3px solid var(--lantern);outline-offset:3px}
@media(max-width:760px){.cm{margin:24px calc(-1 * var(--gutter)) 28px;padding:20px var(--gutter);border-radius:0}.cm h2{font-size:31px}.cm .bm-controls{margin:17px 0 0}.cm-world{aspect-ratio:400/740}.cm-final-head{display:block}.cm-final-head p{margin:9px 0 0}.cm-groups{grid-template-columns:1fr}.cm-filters{gap:6px}.cm-filters .btn{flex:1 1 140px;padding:9px 7px}.cm-group h4{font-size:15px}.cm-node text{font-size:11px}.cm-lane-name{font-size:12px}.cm-intake text{font-size:10px}}
@media(prefers-reduced-motion:reduce){.cm-theatre,.cm>.bm-caption{display:none}.cm .bm-controls{display:none}.cm-final{border-top:0;padding-top:0}}
