/* Entity register and dossiers, scoped to the Factions page. */
.factions-page { --f-muted:#a5af9b; --f-rule:#394334; padding-bottom:60px; }
.factions-page [hidden] { display:none!important; }
.f-wrap { width:88%; max-width:1390px; margin:auto; }
.f-intro { display:grid; grid-template-columns:1fr 310px; gap:80px; align-items:center; padding:38px 0 32px; }
.f-intro .eyebrow,.f-dossier .eyebrow { color:var(--amber); font:10px/1.8 var(--mono); }
.f-intro h1 { font:500 clamp(65px,7vw,100px)/.95 var(--display); margin:13px 0 25px; }
.f-lead { font:500 26px/1.25 var(--display); color:#d0d5c5; margin:0 0 15px; }
.f-description { max-width:670px; font:14px/1.8 Arial,sans-serif; color:var(--f-muted); }
.f-index-meta { font:10px/1.8 var(--mono); }
.f-index-meta>div { display:flex; justify-content:space-between; gap:20px; padding:10px 0; border-bottom:1px solid var(--f-rule); }
.f-index-meta dt { color:var(--f-muted); }
.f-index-meta dd { margin:0; color:#c9bd9e; }
.f-thesis { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:24px 0; border-block:1px solid #6c664a; }
.f-thesis>p { font:500 clamp(32px,3.8vw,50px)/1.05 var(--display); color:#c8b48a; margin:0; }
.f-thesis>div { display:grid; grid-template-columns:1fr 1fr; gap:0 35px; font:10px/1.8 var(--mono); color:#aeb49b; }
.f-thesis span { border-bottom:1px solid var(--f-rule); padding:12px 0; }
.f-register-head { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin:30px 0 16px; }
.f-register-head h2 { font:500 28px var(--display); margin:0; }
.f-register-head p { color:var(--f-muted); font:10px var(--mono); }
.f-controls { display:grid; grid-template-columns:1fr minmax(200px,.6fr) auto; gap:24px; align-items:end; margin-bottom:25px; }
.f-controls label { display:grid; gap:8px; font:10px var(--mono); color:var(--f-muted); min-width:0; }
.f-controls input,.f-controls select { width:100%; min-width:0; min-height:44px; background:#151c17; color:#cbd0be; border:1px solid var(--f-rule); border-radius:0; padding:11px; font:11px/1.7 var(--mono); }
.f-controls input::placeholder { color:#97a38d; }
.f-controls button { min-height:44px; background:none; border:0; border-bottom:1px solid #89744e; color:#c9ad7d; font:10px var(--mono); cursor:pointer; }
.f-register { margin:0; padding:0; list-style:none; border-top:1px solid var(--f-rule); }
.f-register li>a { display:grid; grid-template-columns:30px minmax(0,1.8fr) minmax(150px,.85fr) 145px 18px; gap:22px; padding:24px 0; border-bottom:1px solid var(--f-rule); transition:background .18s,border-color .18s; }
.f-register li>a:hover { background:#192018; border-color:#7b7757; }
.f-ref { font:10px/1.8 var(--mono); color:#9a9f83; }
.f-row-main h3 { font:500 30px/1.05 var(--display); margin:0 0 10px; color:#d0d7c5; }
.f-type,.f-status,.f-row-role { font:10px/1.8 var(--mono); }
.f-type { margin:0; color:#b4baa4; }
.f-assessment { margin:10px 0 0; color:var(--f-muted); font:13px/1.65 Arial,sans-serif; max-width:580px; }
.f-row-role>span { color:#8f9c83; font-size:9px; }
.f-row-role p { margin:7px 0 0; color:#b9c1ad; }
.f-status { color:#c8b28b; }
.f-arrow { color:#b5a076; transition:transform .18s; }
.f-register a:hover .f-arrow { transform:translate(2px,-2px); }
.f-empty { padding:35px 0; color:#bdae89; font:12px var(--mono); }
.f-context { display:grid; grid-template-columns:1fr 1fr; gap:0 45px; margin-top:40px; max-width:1050px; }
.f-context h2 { grid-column:1/-1; font:500 28px var(--display); color:#c4b795; }
.f-context p { font:14px/1.85 Arial,sans-serif; color:var(--f-muted); }
.f-dossier { scroll-margin-top:20px; margin-top:25px; }
.f-toolbar { display:flex; gap:28px; align-items:center; padding:13px 0; border-bottom:1px solid var(--f-rule); font:10px/1.8 var(--mono); color:#bca780; }
.f-toolbar>span { margin-left:auto; color:#a5ae94; }
.f-toolbar nav { display:flex; gap:25px; }
.f-toolbar a { display:inline-block; padding:10px 0; }
.f-dossier-head { padding:25px 0; }
.f-dossier-head h2 { max-width:1100px; font:500 clamp(40px,5.5vw,72px)/1.02 var(--display); color:#d4dac8; margin:15px 0 27px; text-wrap:balance; overflow-wrap:anywhere; }
.f-dossier-head h2:focus { outline:none; }
.f-dossier-head dl { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:25px; padding:20px 0; margin:0; border-block:1px solid var(--f-rule); }
.f-dossier-head dt { font:9px/1.8 var(--mono); color:#a1ac92; }
.f-dossier-head dd { font:11px/1.8 var(--mono); color:#c6cbb7; margin:7px 0 0; }
.f-dossier-body { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:65px; align-items:start; }
.f-block { margin:0 0 32px; }
.f-block h3 { font:11px/1.7 var(--mono); text-transform:uppercase; letter-spacing:.4px; color:#bca77f; margin:0 0 15px; }
.f-block p { font:15px/1.85 Arial,sans-serif; color:#b5beaa; margin:0 0 17px; }
.f-block .f-statement { font:500 37px/1.06 var(--display); color:#d1bc92; margin:20px 0; }
.f-items { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:9px 22px; }
.f-items li { font:11px/1.8 var(--mono); color:#c1c9b4; padding:8px 0; border-bottom:1px solid var(--f-rule); }
.f-evidence { position:sticky; top:25px; }
.f-diagram { margin:0; border-block:1px solid #5b654b; padding:20px 0; }
.f-diagram figcaption,.f-photo figcaption { font:9px/1.8 var(--mono); color:#a2ae95; letter-spacing:.5px; }
.f-network>strong { display:block; font:500 35px/1.15 var(--display); padding:30px 0; color:#c2cbb6; }
.f-network ul { display:grid; grid-template-columns:1fr 1fr; list-style:none; padding:0 0 0 18px; margin:0; border-left:1px solid #8b7c55; gap:20px 26px; }
.f-network li { position:relative; font:10px/1.9 var(--mono); padding:13px 0; border-top:1px solid #566047; color:#b8c2a8; }
.f-network li:before { content:''; position:absolute; width:4px; height:4px; background:#b39c6a; top:-2px; left:0; }
.f-corporate { border-color:#939980; }
.f-corporate .f-network>strong { letter-spacing:2px; color:#dde0ca; }
.f-distributed .f-network ul { border-left:0; padding-left:0; gap:28px; }
.f-distributed .f-network li { border-block:1px solid #4a5740; }
.f-distributed .f-network li:before { display:none; }
.f-photo { margin:0; }
.f-photo img { display:block; width:100%; height:auto; }
.f-photo figcaption { padding-top:13px; }
.f-network-note { border-left:1px solid #a18858; padding:12px 25px; }
.f-network-note>strong { font:500 45px var(--display); color:#c5b38d; }
.f-network-note p { font:13px/1.85 var(--mono); color:#a9b19a; }
.f-network-note .f-label { font-size:9px; color:#bda77f; }
.f-related { border-top:1px solid #586044; padding:23px 0 12px; }
.f-related h3 { font:10px var(--mono); color:#a4ad96; margin:0 0 18px; }
.f-related ul { list-style:none; padding:0; margin:0; }
.f-related a { display:grid; grid-template-columns:minmax(160px,1fr) 2fr 16px; gap:25px; align-items:center; padding:15px 0; border-bottom:1px solid var(--f-rule); }
.f-related a>span { font:9px/1.8 var(--mono); color:#a2ad92; }
.f-related strong { font:500 23px/1.15 var(--display); color:#c9b38b; }
.f-related b { font-weight:400; color:#b5a17b; }
.f-related a:hover strong,.f-archives a:hover { color:#e1c798; }
.f-archives { display:flex; flex-wrap:wrap; gap:15px 28px; padding:15px 0; }
.f-archives a { padding:10px 0; font:10px/1.8 var(--mono); color:#acb49e; }
@keyframes entity-enter { from { opacity:.5; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
.f-enhanced .f-dossier:not([hidden]) { animation:entity-enter .2s ease-out; }
@media(max-width:1000px) {
 .f-intro { gap:35px; grid-template-columns:1fr 280px; }
 .f-register li>a { grid-template-columns:24px minmax(0,1fr) 130px 16px; gap:15px; }
 .f-row-role { grid-column:2; grid-row:2; }
 .f-status { grid-column:3; grid-row:1/3; }
 .f-arrow { grid-column:4; grid-row:1; }
 .f-dossier-body { gap:35px; }
 .f-dossier-head dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:750px) {
 .f-intro { grid-template-columns:1fr; gap:15px; }
 .f-index-meta { display:grid; grid-template-columns:1fr 1fr; gap:0 25px; }
 .f-thesis { align-items:start; }
 .f-thesis>div { grid-template-columns:1fr; }
 .f-thesis span { padding:4px 0; }
 .f-dossier-body { grid-template-columns:1fr; }
 .f-evidence { position:static; grid-row:1; max-width:650px; margin-bottom:10px; }
 .f-network ul { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .f-network>strong { padding:20px 0; }
}
@media(max-width:500px) {
 .f-intro { padding-top:28px; }
 .f-intro h1 { font-size:65px; }
 .f-index-meta { display:block; }
 .f-thesis { display:block; }
 .f-thesis>div { grid-template-columns:1fr 1fr; margin-top:20px; gap:8px 20px; font-size:9px; }
 .f-controls { grid-template-columns:1fr; gap:17px; }
 .f-controls button { justify-self:end; }
 .f-register li>a { grid-template-columns:22px minmax(0,1fr) 14px; }
 .f-row-main h3 { font-size:28px; }
 .f-status { grid-column:2; grid-row:3; }
 .f-arrow { grid-column:3; }
 .f-context { display:block; }
 .f-toolbar { flex-wrap:wrap; gap:6px 20px; }
 .f-toolbar nav { width:100%; justify-content:space-between; }
 .f-dossier-head h2 { font-size:39px; }
 .f-dossier-head dl { gap:18px; }
 .f-dossier-head dd { font-size:10px; overflow-wrap:anywhere; }
 .f-items { grid-template-columns:1fr; }
 .f-block p { font-size:14px; }
 .f-related a { grid-template-columns:1fr 14px; gap:8px; }
 .f-related a>span { grid-column:1/-1; }
 .f-related strong { font-size:23px; }
}
@media(prefers-reduced-motion:reduce) { .factions-page * { animation:none!important; transition:none!important; } }
/* Relationship analysis: positions are diagrammatic, never territorial. */
.f-analysis-jump { display:inline-block; padding:17px 0 0; font:10px/1.8 var(--mono); color:#c7b080; }
.f-relationship-analysis { margin-top:45px; border-top:1px solid #736d50; padding-top:30px; scroll-margin-top:25px; }
.f-analysis-heading .eyebrow { color:#a6b096; font:9px/1.8 var(--mono); }
.f-analysis-heading h2 { font:500 clamp(30px,4vw,49px)/1.08 var(--display); margin:15px 0; }
.f-analysis-heading>p:last-child { color:#afb9a3; font:14px/1.8 Arial,sans-serif; }
.f-graph-scroll { overflow-x:auto; margin:20px 0 0; }
.f-power-graph { display:block; width:100%; min-width:760px; height:auto; }
.f-power-graph .edge path { fill:none; stroke:#6b775a; stroke-width:1.5; }
.f-power-graph .double path { stroke:#bea77a; stroke-width:3; }
.f-power-graph .cooperate path { stroke:#99ab85; stroke-width:2; }
.f-power-graph .distrust path { stroke:#c2a16e; stroke-dasharray:9 4; }
.f-power-graph .variable path,.f-power-graph .unknown path { stroke:#829076; stroke-dasharray:2 6; }
.f-power-graph .infiltration path { stroke:#c6af81; stroke-dasharray:9 5 2 5; }
.f-power-graph circle { fill:#101713; stroke:#778264; stroke-width:1; }
.f-power-graph text { font:11px var(--mono); fill:#c2cbb6; text-anchor:middle; }
.f-power-graph .edge text { font-size:10px; fill:#bcae87; }
.f-power-graph a rect { fill:#172019; stroke:#7e8968; stroke-width:1; transition:fill .18s,stroke .18s; }
.f-power-graph a text { font-size:12px; fill:#d0d6c1; }
.f-power-graph a:hover rect,.f-power-graph a:focus rect { fill:#283024; stroke:#dcc18a; stroke-width:2; }
.f-power-graph .unknown-node rect { fill:#111a14; stroke:#788469; stroke-dasharray:3 5; }
.f-graph-legend { display:flex; flex-wrap:wrap; gap:15px 25px; padding:20px 0; border-block:1px solid var(--f-rule); }
.f-graph-legend span { font:9px/1.8 var(--mono); color:#b7c0a8; }
.f-graph-legend span:before { content:''; display:inline-block; width:25px; border-top:1px solid #b8a578; margin:0 10px 3px 0; }
.f-graph-legend .double:before { border-top:3px double #b8a578; }
.f-graph-legend .cooperate:before { border-top:2px solid #99ab85; }
.f-graph-legend .distrust:before { border-top-style:dashed; }
.f-graph-legend .infiltration:before { border-top:2px dashed #c6af81; }
.f-graph-legend .unknown:before { border-top-style:dotted; }
.f-graph-note { font:10px/1.8 var(--mono); color:#a7b299; }
.f-ledger { margin-top:25px; }
.f-ledger summary { cursor:pointer; padding:15px 0; color:#c6b184; font:11px/1.8 var(--mono); }
.f-ledger ol { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:0 40px; }
.f-ledger li { display:grid; grid-template-columns:25px minmax(0,1fr); gap:16px; padding:23px 0; border-top:1px solid var(--f-rule); }
.f-edge-number { font:10px/1.8 var(--mono); color:#a9b495; }
.f-ledger h4 { font:500 25px/1.2 var(--display); margin:0 0 9px; color:#cdd4c0; }
.f-ledger h4 a:hover { color:#dcc08b; }
.f-ledger p { font:13px/1.85 Arial,sans-serif; color:#aebaa0; margin:8px 0 0; }
.f-ledger .f-relation-type { font:9px/1.8 var(--mono); color:#c3ad7e; }
.f-final-thesis,.f-doctrine { font:500 clamp(32px,4vw,49px)/1.12 var(--display); color:#d0bd92; padding:30px 0; border-block:1px solid #625e44; margin:30px 0; }
.f-schism { margin:20px 0 35px; }
.f-schism section { padding:22px 0; border-top:1px solid var(--f-rule); }
.f-schism span { font:9px var(--mono); color:#9eaa90; }
.f-schism h3 { font:500 29px var(--display); margin:12px 0; color:#ccb88d; }
.f-schism p { font:15px/1.85 Arial,sans-serif; color:#b5beaa; }
.f-directorate-analysis { margin:0; padding:22px 0; border-block:1px solid #7c7251; }
.f-directorate-analysis figcaption { font:9px/1.8 var(--mono); color:#b3a17c; }
.f-directorate-analysis>strong { display:block; font:500 37px var(--display); color:#cbbb96; margin:25px 0 10px; }
.f-analysis-note { font:9px/1.8 var(--mono); color:#a5b095; }
.f-directorate-analysis ul { list-style:none; padding:0 0 0 20px; margin:25px 0; border-left:1px dashed #948365; }
.f-directorate-analysis li { border-top:1px solid var(--f-rule); padding:13px 0; font:11px/1.8 var(--mono); color:#c0c8b0; }
.f-directorate-analysis .unconfirmed { border-top-style:dashed; color:#a8b09c; }
.f-directorate-analysis small { display:block; color:#bca577; font-size:9px; }
.f-analysis-split { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #938060; gap:10px; padding:17px 0; font:11px/1.8 var(--mono); color:#c6b38c; }
.f-analysis-split span:last-child { border-bottom:1px dashed #938060; }
.f-archives h3 { width:100%; margin:10px 0 0; font:10px/1.8 var(--mono); color:#a5b092; }
@media(max-width:650px) {
 .f-ledger ol { grid-template-columns:1fr; }
 .f-graph-legend { gap:12px 18px; }
 .f-graph-legend span { font-size:8px; }
 .f-schism p { font-size:14px; }
 .f-related a>span { overflow-wrap:anywhere; }
}

@media(prefers-reduced-motion:reduce) { .factions-page * { animation:none!important; transition:none!important; } }
