/* Interactive archive */
.explore-hero{padding:4rem 0 2.5rem;background:linear-gradient(180deg,#f4e7d5 0%,var(--paper) 100%);border-bottom:1px solid var(--line)}
.explore-hero h1{max-width:15ch;font-size:clamp(2.8rem,6.3vw,5.8rem)}
.evidence-banner{margin-top:1.5rem;padding:1rem 1.15rem;border:1px solid var(--line);border-left:5px solid var(--accent);background:var(--paper-card);border-radius:12px;color:var(--ink-soft)}
.evidence-banner strong{color:var(--ink-deep);margin-right:.35rem}
.explorer-shell{padding:2rem 0 4.5rem}
.explore-tabs{display:flex;gap:.55rem;flex-wrap:wrap;position:sticky;top:74px;z-index:40;background:rgba(251,247,238,.95);backdrop-filter:blur(10px);padding:.75rem 0;border-bottom:1px solid var(--line);margin-bottom:1.5rem}
.explore-tabs button{border:1px solid var(--line);background:var(--paper-card);color:var(--ink-deep);padding:.65rem .9rem;border-radius:999px;font-weight:800;cursor:pointer}
.explore-tabs button[aria-selected="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.explore-view[hidden]{display:none}
.view-heading{display:grid;grid-template-columns:1fr minmax(280px,.65fr);gap:2rem;align-items:end;margin:1rem 0 1.5rem}
.view-heading h2{margin-bottom:0}.view-heading>p{color:var(--ink-soft);margin:0}
.network-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:#efe3d2;box-shadow:var(--shadow)}
.network-canvas{position:relative;min-width:1150px;width:100%;height:760px;background:radial-gradient(circle at 20% 20%,rgba(157,28,45,.06),transparent 24%),radial-gradient(circle at 82% 70%,rgba(66,109,140,.08),transparent 28%),linear-gradient(180deg,#f4eadb,#eadcc6)}
.network-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.network-lines line{stroke:#7d6e60;stroke-width:2.2;opacity:.34;transition:.18s}
.network-lines line.active{stroke:var(--accent);stroke-width:4;opacity:.9}
.network-node{position:absolute;transform:translate(-50%,-50%);width:150px;min-height:70px;padding:.7rem .75rem;border:2px solid #fff8;border-radius:14px;box-shadow:0 10px 22px rgba(13,47,70,.16);color:white;cursor:pointer;text-align:center;font-weight:850;line-height:1.05}
.network-node span{display:block}.network-node small{display:block;margin-top:.35rem;font-size:.72rem;opacity:.82}
.network-node:hover,.network-node:focus-visible{outline:3px solid #fff;outline-offset:2px;z-index:5}
.network-node.ideas-media,.network-node.ideas-policy,.network-node.states-model-policy,.network-node.ideas-personnel{background:#123b57}
.network-node.law-courts,.network-node.elections-data,.network-node.elections-law,.network-node.law-money,.network-node.government-legal{background:#9d1c2d}
.network-node.personnel-pipeline,.network-node.grassroots-media,.network-node.grassroots-culture{background:#4f715d}
.network-node.institutional-infrastructure,.network-node.government-infrastructure{background:#426d8c}
.network-node.money-funding,.network-node.money-messaging{background:#9a741e}
.network-node.government-elections,.network-node.government-policy,.network-node.law-government{background:#6e4a63}
.network-legend{display:flex;gap:.65rem 1rem;flex-wrap:wrap;margin:1rem 0;color:var(--ink-soft);font-size:.88rem}
.legend-dot{display:inline-block;width:.72rem;height:.72rem;border-radius:50%;margin-right:.3rem;vertical-align:-.05rem}
.legend-dot.ideas{background:#123b57}.legend-dot.law{background:#9d1c2d}.legend-dot.people{background:#4f715d}.legend-dot.infrastructure{background:#426d8c}.legend-dot.money{background:#9a741e}.legend-dot.government{background:#6e4a63}
.map-rule{padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--paper-card);color:var(--ink-soft)}
.interactive-timeline{position:relative;display:grid;gap:0;margin-top:1rem}
.interactive-timeline:before{content:"";position:absolute;left:56px;top:0;bottom:0;width:2px;background:var(--line)}
.timeline-event{position:relative;display:grid;grid-template-columns:115px 1fr;gap:1rem;padding:0 0 1.8rem}
.timeline-year{position:relative;z-index:2;width:82px;padding:.45rem .5rem;border-radius:999px;background:var(--accent);color:#fff;text-align:center;font-weight:900}
.timeline-event h3{margin:.2rem 0 .35rem}.timeline-event p{margin:0;color:var(--ink-soft)}
.timeline-tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.7rem}
.timeline-tags button{border:1px solid var(--line);background:var(--paper-card);color:var(--ink);border-radius:999px;padding:.35rem .55rem;font-size:.8rem;font-weight:750;cursor:pointer}
.directory-controls{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:.75rem;margin-bottom:.75rem}
.directory-controls label,.trace-controls label{display:grid;gap:.35rem;color:var(--ink-soft);font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.directory-controls input,.directory-controls select,.trace-controls select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:10px;background:var(--paper-card);color:var(--ink-deep);padding:.65rem .75rem;text-transform:none;letter-spacing:0}
.result-count{color:var(--ink-soft);font-size:.88rem;margin:.5rem 0 1rem}
.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
.person-card{display:grid;grid-template-columns:auto 1fr;gap:.2rem .65rem;text-align:left;border:1px solid var(--line);border-radius:14px;background:var(--paper-card);padding:1rem;cursor:pointer;color:var(--ink-deep)}
.person-card:hover,.person-card:focus-visible{border-color:var(--accent);transform:translateY(-1px)}
.person-card strong{grid-column:1/-1;font-family:Georgia,"Times New Roman",serif;font-size:1.2rem}
.person-card>span:not(.person-year):not(.person-kind){grid-column:1/-1;color:var(--accent);font-weight:800;font-size:.78rem}
.person-card small{grid-column:1/-1;color:var(--ink-soft);font-size:.88rem;line-height:1.4;margin-top:.35rem}
.person-year,.person-kind{font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}
.person-kind{text-align:right}
.trace-controls{display:grid;grid-template-columns:1fr auto 1fr auto;gap:.75rem;align-items:end;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--paper-card)}
.trace-arrow{font-size:2rem;color:var(--accent);padding-bottom:.25rem}
.trace-output{margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:#f4eadb;min-height:96px}
.trace-path{display:flex;align-items:stretch;gap:.4rem;overflow-x:auto;padding-bottom:.4rem}
.trace-node{display:flex;align-items:center;gap:.4rem;flex:0 0 auto}
.trace-node>button{border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:12px;padding:.6rem .75rem;font-weight:850;cursor:pointer}
.trace-edge{display:grid;min-width:150px;text-align:center;color:var(--accent-dark);font-weight:800;font-size:.78rem}
.trace-edge:before{content:"→";font-size:1.25rem;line-height:1}
.trace-edge small{display:block;color:var(--ink-soft);font-weight:650}
.profile-modal{width:min(760px,calc(100% - 1.5rem));max-height:88vh;border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--ink-deep);box-shadow:0 24px 80px rgba(13,47,70,.3);padding:1.35rem 1.35rem 1.6rem}
.profile-modal::backdrop{background:rgba(13,47,70,.55);backdrop-filter:blur(3px)}
.modal-close{position:sticky;float:right;top:0;border:1px solid var(--line);background:var(--paper-card);width:38px;height:38px;border-radius:50%;font-size:1.4rem;cursor:pointer;z-index:3}
.profile-kicker{color:var(--accent);font-size:.77rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase;margin-top:.4rem}
.profile-modal h2{font-size:clamp(2rem,5vw,3.4rem);margin:.35rem 3rem .8rem 0}
.profile-summary{font-size:1.08rem;color:var(--ink-soft)}
.profile-why{padding:1rem;border-left:4px solid var(--accent);background:var(--paper-warm);margin:1rem 0}
.profile-why p{margin:.25rem 0 0;color:var(--ink-soft)}
.relations{display:grid;gap:.45rem}
.relation-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.7rem;text-align:left;border:1px solid var(--line);background:var(--paper-card);border-radius:10px;padding:.7rem;cursor:pointer;color:var(--ink-deep)}
.relation-row span:first-child{display:grid}.relation-row small{color:var(--ink-soft);margin-top:.18rem}
.evidence-pill{font-size:.7rem;font-weight:850;border-radius:999px;padding:.3rem .45rem;white-space:nowrap}.evidence-pill.documented{background:var(--green-soft);color:var(--green)}
.profile-sources{padding-left:1.2rem}.profile-sources li{margin:.45rem 0}.profile-sources a{font-weight:750}
.profile-rule{font-size:.86rem;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:1rem}
.muted{color:var(--ink-soft)}
@media(max-width:900px){.view-heading{grid-template-columns:1fr;gap:.5rem}.directory-controls{grid-template-columns:1fr 1fr}.people-grid{grid-template-columns:1fr 1fr}.trace-controls{grid-template-columns:1fr}.trace-arrow{display:none}}
@media(max-width:620px){.explore-tabs{top:74px;overflow-x:auto;flex-wrap:nowrap}.explore-tabs button{white-space:nowrap}.directory-controls,.people-grid{grid-template-columns:1fr}.interactive-timeline:before{left:40px}.timeline-event{grid-template-columns:86px 1fr}.timeline-year{width:72px;font-size:.8rem}.profile-modal{padding:1rem}}
