/* Cast web widget (widgets/castweb/castweb.js): roles as engraved circles, linked by kind of relationship. */
.cw__svg { display: block; width: 100%; height: auto; overflow: visible; }
.cw__square { fill: none; stroke: var(--line); stroke-width: 1; }
.cw__e { stroke: var(--ink); stroke-width: 1.1; opacity: .5; transition: opacity .25s ease, stroke-width .25s ease, stroke .25s ease; }
.cw__e--main { stroke-width: 1.6; }
.cw__e--ally { stroke: var(--wk-copper); }
.cw__e--fake { stroke-dasharray: 6 4; }
.cw__e--par { stroke-dasharray: 1.5 4; stroke-linecap: round; }
.cw__e.is-lit { opacity: 1; stroke-width: 2.2; }
.cw__e--opp.is-lit, .cw__e--main.is-lit { stroke: var(--wk-copper); }
.cw__n { outline: none; }
.cw__bg { fill: var(--wk-card); }
.cw__h { fill: none; stroke: var(--wk-copper); stroke-width: .9; transition: stroke-width .3s ease; }
.cw__rim { fill: none; stroke: var(--ink); stroke-width: 1.6; }
.cw__n text { font-family: var(--wk-display); font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-anchor: middle; fill: var(--ink); text-transform: uppercase; paint-order: stroke; stroke: var(--wk-panel); stroke-width: 5px; stroke-linejoin: round; }
@media (max-width: 560px) { .cw__n text { font-size: 17px; } }
.cw__n:hover .cw__h, .cw__n:focus-visible .cw__h { stroke-width: 1.8; }
.cw__n:focus-visible .cw__rim { stroke: var(--wk-copper); stroke-width: 2.4; }
.cw__key { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 11.5px; color: var(--muted); }
.cw__key span { display: inline-flex; align-items: center; gap: 7px; }
.cw__key i { display: inline-block; width: 22px; height: 0; border-top: 1.5px solid var(--ink); }
.cw__k--ally { border-color: var(--wk-copper) !important; }
.cw__k--fake { border-top-style: dashed !important; }
.cw__k--par { border-top-style: dotted !important; border-top-width: 2px !important; }
