/* Faction Forge — layered on Toponym Forge's style.css (copied to src/shared/tf-style.css). */
nav.suite{font-size:.85rem;color:var(--muted);margin-bottom:.4rem}nav.suite a,footer a{color:var(--accent);font-weight:600}
.skip{position:absolute;left:-999px}.skip:focus{left:.5rem;top:.5rem;background:#fff;padding:.4rem;z-index:9}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
:focus-visible{outline:3px solid var(--gold);outline-offset:1px}
h3{margin:.2rem 0;font-size:1rem;color:#4a2e1a}
.legend{display:flex;flex-wrap:wrap;gap:.8rem;font-size:.85rem;color:var(--muted);margin:.3rem 0}
.ln{display:inline-block;width:1.6rem;height:0;border-top:3px solid;vertical-align:middle;margin-right:.3rem}
.ln.ally{border-color:#2e7d32}.ln.rival{border-color:#b3261e;border-top-style:dashed}.ln.vassal{border-color:#b8862b}
.web svg{width:100%;max-width:640px;height:auto;display:block;margin:0 auto}
.web text{font-family:"Iowan Old Style",Palatino,Georgia,serif;font-size:13px;fill:#3a1f10}
.factions{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:1rem}
.faction{border:1px solid var(--line);border-radius:10px;padding:.7rem;background:#fffdf7}
.faction header{display:flex;gap:.6rem;align-items:center}.faction header svg{flex:none}
.faction .fname{font-family:"Iowan Old Style",Palatino,Georgia,serif;font-size:1.35rem;font-weight:700;color:#3a1f10;line-height:1.1}
.faction .gl{color:var(--muted);font-style:italic;font-size:.88rem}
.faction dl{display:grid;grid-template-columns:1fr auto;gap:.15rem .4rem;margin:.5rem 0 0;align-items:start}
.faction dt{grid-column:1/-1;border-top:1px solid #f0e4cc;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding-top:.25rem}
.faction dd{margin:0;font-size:.92rem;min-width:0;overflow-wrap:anywhere}.faction dd.ctl{white-space:nowrap}
.faction select[multiple]{width:100%;min-height:4.2rem}
.lock,.dice{background:none;border:1px solid transparent;font-size:.95rem;padding:.1rem .3rem}.lock[aria-pressed=true]{border-color:var(--gold);background:#f3e4c4}
.tag-contested{color:#b3261e;font-weight:600}
.pro{margin-top:.6rem;padding:.6rem;border:2px dashed var(--gold);border-radius:8px;color:#6b5a48;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.grid2>*{min-width:0}
