/* CHAIN REACTION 2: name plates, slot codes, KEY / IN / OUT plates, locked modules, plain edgework */
#bomb.chain2 .slot .plate { display: block; top: auto; bottom: 10px; padding: 3px 16px; font: 800 15px var(--sans); letter-spacing: 3px; color: #202327;
  background: var(--grain), linear-gradient(180deg, #e3e6ea, #a3aab2); box-shadow: inset 0 -1px 0 rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.6), 0 1px 3px rgba(0,0,0,.6); }
#bomb.chain2 .slot-code { position: absolute; left: 24px; bottom: 6px; font: 900 28px var(--mono); letter-spacing: 1px; color: rgba(236,232,220,.8); text-shadow: 0 1px 0 rgba(0,0,0,.7), 0 -1px 0 rgba(255,255,255,.08); }
#bomb.chain2 .slot.empty .slot-code { opacity: .35; }
#bomb.chain2 .linkbar { top: 9px; height: 36px; }
#bomb.chain2 .lk-key { font-size: 18px; padding: 3px 12px; }
#bomb.chain2 .lk-key b { font-size: 22px; margin-left: 2px; }
#bomb.chain2 .lk-in { font-size: 17px; padding: 3px 12px; }
#bomb.chain2 .lk-in span { font-size: 13px; opacity: .8; margin-left: 4px; letter-spacing: 1px; text-transform: uppercase; }
#bomb.chain2 .lk-in em { font-style: normal; margin-left: 6px; padding: 0 8px; border-radius: 3px; background: #0b1810; color: #7fd48a; font-size: 18px; }
#bomb.chain2 .lk-port { font-size: 15px; letter-spacing: 2px; }
#bomb.chain2 .lk-out { font-size: 20px; min-width: 26px; text-align: center; }
/* locked: waiting for the IN module */
#bomb.chain2 .slot.waiting .mod { filter: brightness(.42) saturate(.25); pointer-events: none; }
#bomb.chain2 .slot.waiting .mod-well::after { display: grid; content: 'LOCKED\A' attr(data-wait); white-space: pre; text-align: center; place-items: center; position: absolute; inset: 0; width: auto; height: auto;
  background: repeating-linear-gradient(45deg, rgba(240,193,75,.10) 0 16px, transparent 16px 32px); box-shadow: none; border-radius: 12px; font: 800 30px/1.6 var(--mono); letter-spacing: 3px; color: rgba(240,193,75,.9); z-index: 2; pointer-events: none; }
/* edgework: single batteries, ports with full names */
.ew-bat.CELL span { width: 200px; height: 56px; font-size: 16px; letter-spacing: 2px; background: linear-gradient(90deg, #2b2b2b 0 82%, #c9ced4 82% 86%, #2b2b2b 86%), linear-gradient(180deg, #e8a92a 0 30%, #2b2b2b 30% 100%); background-blend-mode: normal; }
.ew-bat.CELL span { background: linear-gradient(180deg, #e8a92a 0 30%, #2b2b2b 30% 100%); }
.ew-port i.p-ETHERNET { width: 56px; height: 46px; }
.ew-port i.p-AUDIO { width: 34px; height: 34px; border-radius: 50%; }
/* expert tabs */
.x-code { font-family: var(--mono); font-weight: 800; opacity: .75; }

/* ---------- WIRES (reference module) ---------- */
.c2w-mod { position: absolute; inset: 0; border-radius: 10px; }
.c2w-svg { width: 400px; height: 400px; }
.c2w-block { fill: #23262a; stroke: #50565d; stroke-width: 2; }
.c2w-screw { fill: #9aa1a8; stroke: #3a3f45; stroke-width: 2; }
.c2w-shadow { fill: none; stroke: rgba(0,0,0,.45); stroke-width: 20; stroke-linecap: round; transform: translateY(5px); }
.c2w-core { fill: none; stroke-width: 15; stroke-linecap: round; }
.c2w-shine { fill: none; stroke: rgba(255,255,255,.35); stroke-width: 3; stroke-linecap: round; transform: translateY(-4px); }
.c2w-hit { fill: none; stroke: transparent; stroke-width: 34; cursor: pointer; pointer-events: stroke; }
.c2w-wire.cut .c2w-core, .c2w-wire.cut .c2w-shine, .c2w-wire.cut .c2w-shadow { stroke-dasharray: 128 44 200; transition: stroke-dasharray 90ms; }
.c2w-wire.cut .c2w-hit { cursor: default; }
.c2-keytable td { text-align: center; padding: 6px 4px; }
/* HUD: which side of the bomb is facing the defuser */
.b-face { display: inline-block; margin-top: 8px; padding: 4px 12px; border-radius: 4px; font: 800 18px var(--mono); letter-spacing: 2px; color: #1f2226; background: var(--grain), linear-gradient(180deg, #e3e6ea, #a3aab2); box-shadow: 0 1px 3px rgba(0,0,0,.6); }
