:root{--rn-prussian-blue: #1C3A4B;--rn-iron-gall-variant:#312719;--rn-iron-gall: #221C14;--rn-verdigris: #5C8270;--rn-aged-ochre: #A87C45;--rn-sealing-wax: #7E312A;--rn-laid-gray: #B9C0BA;--rn-rag-paper: #FBF8F2;--rn-prussian-blue-700: #142B38;--rn-prussian-blue-400: #3A6076;--rn-prussian-blue-200: #8FB0C2;--rn-verdigris-600: #4C6E5E;--rn-verdigris-400: #82A493;--rn-aged-ochre-600: #8C6536;--rn-aged-ochre-400: #C49E6E;--rn-aged-ochre-200: #E3D3BC;--rn-sealing-wax-600: #65261F;--rn-sealing-wax-400: #A0564E;--rn-laid-gray-300: #D2D6D1;--rn-paper-50: #FFFDF9;--rn-paper-100: #F4EFE4;--rn-paper-200: #EDE6D7;--rn-paper-300: #E2DAC8;--rn-paper-400: #CFC6B2;--rn-ink-700: #2A2620;--rn-ink-500: #5B5648;--rn-ink-400: #837D6C;--rn-ink-300: #A39A83;--color-surface: var(--rn-rag-paper);--color-surface-raised: var(--rn-paper-50);--color-surface-sunken: var(--rn-paper-100);--color-surface-hover: var(--rn-paper-200);--color-surface-viz: #FAF8F2;--color-overlay: rgba(34, 28, 20, .4);--color-border-subtle: var(--rn-paper-300);--color-border: var(--rn-paper-400);--color-border-strong: var(--rn-laid-gray);--color-text: var(--rn-iron-gall-variant);--color-text-strong: var(--rn-iron-gall);--color-text-muted: var(--rn-ink-500);--color-text-subtle: var(--rn-ink-400);--color-text-faint: var(--rn-ink-300);--color-text-on-dark: var(--rn-rag-paper);--color-heading: var(--rn-prussian-blue);--color-link: var(--rn-sealing-wax);--color-link-hover: var(--rn-sealing-wax-600);--color-focus-ring: var(--rn-aged-ochre-400);--color-accent: var(--rn-prussian-blue);--color-accent-secondary: var(--rn-verdigris);--color-accent-tertiary: var(--rn-aged-ochre);--color-emphasis: var(--rn-sealing-wax);--color-marker: var(--rn-aged-ochre);--color-marker-soft: var(--rn-aged-ochre-400);--series-sent: var(--rn-aged-ochre);--series-sent-stroke: var(--rn-aged-ochre-400);--series-received: var(--rn-verdigris);--series-received-stroke: var(--rn-verdigris-400);--series-both: var(--rn-sealing-wax);--series-both-stroke: var(--rn-sealing-wax-400);--map-water: #8FB0C2;--map-water-state: #FAF8F2;--map-land: #E8E6DF;--map-line: var(--rn-laid-gray);--map-graticule: var(--rn-laid-gray-300);--map-circle: var(--rn-aged-ochre);--loc-received: var(--rn-prussian-blue);--loc-received-stroke: var(--rn-prussian-blue-400);--loc-sent: var(--rn-aged-ochre);--loc-sent-stroke: var(--rn-aged-ochre-400);--cat-political: var(--rn-aged-ochre);--cat-military: var(--rn-sealing-wax);--cat-treaty: var(--rn-verdigris);--cat-alert: var(--rn-sealing-wax);--cat-alert-bg: var(--rn-aged-ochre-200);--cat-series-1: var(--rn-prussian-blue);--cat-series-2: var(--rn-aged-ochre);--cat-series-3: var(--rn-verdigris);--cat-series-4: var(--rn-sealing-wax);--cat-series-5: #3A6076;--cat-series-6: #8C6536;--cat-series-7: #4C6E5E;--cat-series-8: #A0564E;--cat-series-9: #6B7A8F;--cat-series-10: #93789B;--cat-series-11: #C49E6E;--cat-series-12: #5E8CA0;--font-heading: "Playfair Display", Georgia, "Times New Roman", serif;--font-body: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;--text-xs: .8rem;--text-sm: .9rem;--text-base: 1rem;--text-md: 1.2rem;--text-lg: 1.4rem;--text-xl: 1.6rem;--text-2xl: 2rem;--text-3xl: 2.5rem;--text-display: 3rem;--leading-tight: 1.25;--leading-snug: 1.45;--leading-base: 1.6;--leading-loose: 1.7;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--tracking-tight: .02em;--tracking-wide: .05em;--tracking-caps: .09em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 3px;--radius-md: 6px;--radius-lg: 10px;--radius-pill: 999px;--shadow-sm: 0 1px 8px rgba(28, 58, 75, .04);--shadow-md: 0 10px 30px rgba(28, 58, 75, .14);--shadow-lg: -12px 0 32px rgba(28, 58, 75, .16);--layout-max: 960px;--layout-wide: 1100px;--layout-prose: 680px;--transition-fast: .15s ease;--transition-base: .2s ease}*{margin:0;padding:0;box-sizing:border-box}html{font-size:18px}body{background:var(--color-surface);color:var(--rn-iron-gall-variant);font-family:var(--font-body);font-weight:var(--weight-regular);line-height:var(--leading-base);min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--weight-regular);line-height:var(--leading-tight);color:var(--color-heading)}a{color:var(--color-link);text-decoration:none}a:hover{color:var(--color-link-hover)}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}nav{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) 30px;position:sticky;top:0;z-index:100;background:var(--color-surface);border-bottom:1px solid var(--color-border-subtle)}.nav-brand{font-family:var(--font-heading);font-size:var(--text-base);color:var(--color-heading);letter-spacing:var(--tracking-tight);font-weight:var(--weight-semibold)}.nav-links{display:flex;align-items:center;gap:var(--space-1);list-style:none;font-size:var(--text-sm)}.nav-links>li{position:relative}.nav-links a,.nav-dropdown-toggle{display:inline-flex;align-items:center;gap:5px;color:var(--color-text);font-family:var(--font-heading);font-size:var(--text-sm);background:none;border:none;cursor:pointer;padding:7px 12px;border-radius:var(--radius-md);transition:background var(--transition-fast),color var(--transition-fast);white-space:nowrap}.nav-links>li>a:hover,.nav-dropdown-toggle:hover{background:var(--color-surface-hover);color:var(--color-heading)}.nav-links>li>a.active{color:var(--color-link)}.nav-links>li>a.active:after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;background:var(--color-marker);border-radius:2px}.nav-toggle{display:none;flex:0 0 auto;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;background:none;border:none;cursor:pointer;border-radius:var(--radius-md)}.nav-toggle:hover{background:var(--color-surface-hover)}.nav-toggle-bar{display:block;width:100%;height:2px;background:var(--color-heading);border-radius:2px;transition:transform .2s ease,opacity .2s ease}nav.nav-open .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}nav.nav-open .nav-toggle-bar:nth-child(2){opacity:0}nav.nav-open .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.caret{width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:4px solid currentColor;opacity:.6;transition:transform .18s}.nav-dropdown.open .caret{transform:rotate(180deg)}.nav-dropdown-menu{list-style:none;position:absolute;top:calc(100% + 8px);left:0;min-width:184px;background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-1);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .16s ease,transform .16s ease,visibility .16s}.nav-dropdown.open .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.nav-dropdown-menu:before{content:"";position:absolute;top:-8px;left:0;right:0;height:8px}.nav-dropdown-menu li{position:static}.nav-dropdown-menu a{display:block;padding:7px 12px;border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm)}.nav-dropdown-menu a:hover{background:var(--color-surface-hover);color:var(--color-link)}.nav-dropdown-menu a.active{color:var(--color-link);background:var(--color-surface-hover);font-weight:var(--weight-semibold)}.menu-label{padding:8px 12px 4px;font-size:.62rem;font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-faint)}.menu-label:not(:first-child){margin-top:var(--space-1);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-3)}@media(max-width:900px){nav{padding:var(--space-2) var(--space-4)}.nav-toggle{display:flex}nav img{max-width:calc(100% - 64px);height:auto}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:var(--space-2);background:var(--color-surface-raised);border-bottom:1px solid var(--color-border-subtle);box-shadow:var(--shadow-md);max-height:calc(100vh - 80px);overflow-y:auto;font-size:var(--text-base)}nav.nav-open .nav-links{display:flex}.nav-links>li{width:100%}.nav-links a,.nav-dropdown-toggle{width:100%;justify-content:space-between;padding:12px 14px;font-size:var(--text-base)}.nav-links>li>a.active:after{display:none}.nav-links>li>a.active{background:var(--color-surface-hover)}.nav-dropdown-menu{position:static;min-width:0;opacity:1;visibility:hidden;transform:none;box-shadow:none;border:none;border-radius:0;background:var(--color-surface-sunken);padding:var(--space-1) var(--space-1) var(--space-2) var(--space-3);margin:0;max-height:0;overflow:hidden;transition:none}.nav-dropdown.open .nav-dropdown-menu{visibility:visible;max-height:none}.nav-dropdown-menu:before{display:none}.nav-dropdown-menu a{padding:10px 12px}}:root{--page-gutter: var(--space-5)}@media(max-width:1024px){:root{--page-gutter: var(--space-8)}}@media(max-width:600px){:root{--page-gutter: var(--space-6)}}.page{display:flex;flex-direction:column;align-items:center;padding:var(--space-6) var(--page-gutter)}.page h1{font-size:var(--text-2xl);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-1);color:var(--color-heading);text-align:center}.page .subtitle{font-size:var(--text-sm);font-family:var(--font-heading);color:var(--color-text);margin-bottom:var(--space-3);max-width:700px;text-align:center;line-height:var(--leading-snug)}.controls{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-4) 0;width:var(--layout-max);max-width:100%;flex-wrap:wrap}.year-display{font-family:var(--font-heading);font-size:var(--text-display);font-weight:var(--weight-regular);color:var(--color-marker);min-width:120px;text-align:center;font-variant-numeric:tabular-nums}.slider-container{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}input[type=range]{width:100%;-webkit-appearance:none;appearance:none;height:6px;background:var(--color-border-strong);border-radius:3px;outline:none;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--color-marker);cursor:pointer}input[type=range]::-moz-range-thumb{width:18px;height:18px;border:none;border-radius:50%;background:var(--color-marker);cursor:pointer}.year-labels{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--color-text-muted)}@media(max-width:700px){.controls{justify-content:center;gap:var(--space-3) var(--space-4)}.slider-container{flex-basis:100%}.threshold-control{flex-basis:100%;justify-content:center}}.btn{background:none;border:1px solid var(--color-border);color:var(--color-text);padding:8px 16px;font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-md);transition:border-color var(--transition-base),background var(--transition-base),color var(--transition-base)}.btn:hover{border-color:var(--color-accent);color:var(--color-heading)}.btn.active{background:var(--color-surface-hover);border-color:var(--color-accent);color:var(--color-heading)}.btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-dark)}.btn--primary:hover{background:var(--rn-prussian-blue-700);border-color:var(--rn-prussian-blue-700);color:var(--color-text-on-dark)}.threshold-control{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-subtle)}.threshold-control input{width:80px}.threshold-value{color:var(--color-marker);min-width:20px;text-align:center}.stats{display:flex;gap:var(--space-8);margin:var(--space-2) 0;font-size:var(--text-sm);color:var(--color-text-subtle);font-family:var(--font-heading)}.stats .value{color:var(--color-marker);font-size:var(--text-md);font-variant-numeric:tabular-nums;font-family:var(--font-body)}.legend{display:flex;align-items:center;gap:var(--space-5);font-size:var(--text-xs);color:var(--color-text-subtle);margin-top:var(--space-1);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:6px;font-family:var(--font-heading)}.legend-swatch{width:12px;height:12px;border-radius:50%}.legend-swatch--sent{background:var(--series-sent)}.legend-swatch--received{background:var(--series-received)}.legend-swatch--both{background:var(--series-both)}.tooltip{position:absolute;pointer-events:none;background:var(--color-surface-raised);border:1px solid var(--color-border-strong);padding:10px 14px;border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--text-sm);line-height:var(--leading-snug);opacity:0;transition:opacity var(--transition-fast);z-index:10;max-width:300px}.tooltip .name{color:var(--color-heading);font-weight:var(--weight-semibold)}.tooltip .detail{color:var(--color-text-muted)}.tooltip .direction{font-size:var(--text-xs);color:var(--color-text-subtle);margin-top:2px}.tooltip .coll-line{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-xs)}.tooltip .coll-name{color:var(--color-text-subtle)}.tooltip .coll-docs{color:var(--color-text)}footer{text-align:center;padding:var(--space-8) var(--space-6);font-size:var(--text-xs);background-color:var(--rn-prussian-blue);color:var(--color-text-on-dark);margin-top:var(--space-10)}footer a{color:var(--rn-aged-ochre-400)}footer a:hover{color:var(--rn-aged-ochre-200)}.footer-logos{display:flex;align-items:center;justify-content:center;gap:var(--space-8);flex-wrap:wrap;margin-bottom:var(--space-5)}.footer-logos a{display:inline-flex;transition:opacity var(--transition-base)}.footer-logos a:hover{opacity:.8}.footer-logo{display:block;width:auto;max-width:100%}.footer-logo--rotunda{height:65px}.footer-logo--neh{height:72px}.footer-credit{max-width:var(--layout-prose);margin:0 auto;line-height:var(--leading-snug)}.hero-band{background-color:#fff;border-bottom:1px solid var(--color-border-subtle);padding-block:var(--space-8)}.hero-network{--hero-gap: var(--space-8);--hero-graph-height: 380px;display:flex;align-items:center;gap:var(--hero-gap);width:100%;max-width:var(--layout-wide);margin-inline:auto;padding-inline:var(--page-gutter)}.hero-network svg{flex:1 1 auto;min-width:0;width:100%;height:var(--hero-graph-height);display:block;border-radius:var(--radius-md);background:radial-gradient(ellipse at center,#1c3a4b0a,#fbf8f200 70%)}.hero-network .hero-text{flex:0 0 38%;max-width:420px}.hero-network .hero-text h1{font-size:var(--text-display);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);margin-bottom:6px;color:var(--color-heading)}.hero-network .hero-text .subtitle{font-family:var(--font-heading);font-size:var(--text-lg);color:var(--rn-aged-ochre);line-height:var(--leading-snug);max-width:100%;text-align:left}.hero-node circle{transition:stroke var(--transition-fast),stroke-width var(--transition-fast)}.hero-node:hover circle{stroke:var(--color-emphasis);stroke-width:3}@media(max-width:900px){.hero-network .hero-text,.hero-network .hero-text .subtitle{text-align:center}}@media(max-width:700px){.hero-network{flex-direction:column-reverse;gap:var(--space-5);--hero-graph-height: 320px}.hero-network .hero-text{flex:1 1 auto;max-width:100%}.hero-network .hero-text h1{font-size:var(--text-xl)}.hero-network .hero-text .subtitle{font-size:var(--text-sm)}}.intro{max-width:var(--layout-max);text-align:center;line-height:var(--leading-loose);margin:var(--space-5) 0 var(--space-8) 0;font-size:var(--text-base)}.intro p{margin-bottom:var(--space-3)}.highlights{border-top:1px solid var(--color-border-subtle);max-width:var(--layout-wide);margin-inline:auto;padding-inline:var(--page-gutter)}.section-heading{text-align:center;padding:1rem}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-5);width:100%;max-width:var(--layout-max);margin:0 auto var(--space-8) auto}@media(max-width:700px){.cards{grid-template-columns:1fr}}.card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:#fff;transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base);text-decoration:none}.card:hover{border-color:var(--color-accent-tertiary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.card-thumb{height:108px;background:var(--color-surface-viz);border-bottom:1px solid var(--color-border-subtle)}.card-thumb svg{display:block;width:100%;height:100%}.card-thumb.thumb-flow{background:var(--map-water)}.card-body{display:flex;flex-direction:column;flex:1;padding:var(--space-6)}.card-badge{align-self:flex-start;font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;padding:2px 9px;margin-bottom:var(--space-3);border:1px solid currentColor;border-radius:var(--radius-pill);line-height:1.4}.card-badge.type-map{color:var(--rn-aged-ochre-600)}.card-badge.type-network{color:var(--rn-prussian-blue)}.card-badge.type-ranking{color:var(--rn-sealing-wax-600)}.card-badge.type-timeline{color:var(--rn-verdigris-600)}.card h2{font-size:var(--text-md);color:var(--color-heading);margin-bottom:var(--space-2)}.card p{font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-base);flex:1}.card-cta{font-size:var(--text-sm);color:var(--color-link);margin-top:var(--space-3)}.data-note{max-width:var(--layout-prose);text-align:center;font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-base)}#map-container{position:relative;width:var(--layout-max);max-width:100%}#map-container svg{width:100%;height:auto;background:var(--map-water)}#map-container.map--state svg{background:var(--map-water-state)}.land{fill:var(--map-land);stroke:var(--map-line);stroke-width:.5}.border{fill:none;stroke:var(--map-line);stroke-width:.3}.graticule{fill:none;stroke:var(--map-graticule);stroke-width:.3}.map-circle{fill:var(--map-circle);fill-opacity:.35;stroke:var(--map-circle);stroke-width:.8;stroke-opacity:.7;cursor:pointer}.map-circle:hover,.map-circle--active{fill-opacity:.6;stroke-opacity:1}.legend-circles{display:flex;align-items:center;gap:var(--space-2)}.legend-circle{border-radius:50%;background:var(--rn-aged-ochre-200);border:1px solid var(--rn-aged-ochre-400)}.top-places{width:var(--layout-max);max-width:100%;margin-top:var(--space-3)}.top-places h3{font-size:var(--text-sm);font-weight:var(--weight-regular);color:var(--color-text-subtle);margin-bottom:var(--space-2)}.place-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-1)}.place-item{display:flex;justify-content:space-between;padding:4px 8px;font-size:var(--text-sm);border-radius:var(--radius-sm)}.place-item .name{color:var(--color-text)}.place-item .count{color:var(--color-marker);font-variant-numeric:tabular-nums}#graph-container{position:relative;width:var(--layout-max);max-width:100%;aspect-ratio:960 / 780}#graph-container svg{width:100%;height:100%;background:var(--color-surface-viz)}.ring-guide{fill:none;stroke:var(--color-border-strong);stroke-width:.5;stroke-dasharray:2,4}.social-network-center{fill:#a87c4514;stroke:var(--color-marker);stroke-width:1.5}.social-network-center--photo{stroke:var(--color-surface-raised);stroke-width:3}.social-network-label{fill:var(--color-text-strong);font-size:12px;font-family:var(--font-body)}.spoke{stroke-opacity:.4}.spoke--sent{stroke:var(--series-sent)}.spoke--received{stroke:var(--series-received)}.spoke--both{stroke:var(--series-both)}.spoke--highlight{stroke-opacity:.9}.spoke--dim{stroke-opacity:.1}.network-dot{stroke-width:1;cursor:pointer}.network-dot--sent{fill:var(--series-sent);stroke:var(--series-sent-stroke)}.network-dot--received{fill:var(--series-received);stroke:var(--series-received-stroke)}.network-dot--both{fill:var(--series-both);stroke:var(--series-both-stroke)}.network-dot--active{stroke-width:2}.network-dot--faded{fill-opacity:.12;stroke-opacity:.12}.network-focus-ring{fill:none;stroke:var(--color-accent);stroke-width:2.5;pointer-events:none}.network-label{font-family:var(--font-body);font-size:12px}.network-label--primary{fill:var(--color-text)}.network-label--secondary{fill:var(--color-text-faint)}.network-label--tertiary{fill:var(--color-text-subtle)}.lp-panel{position:fixed;top:0;right:0;bottom:0;width:min(400px,88%);overflow-y:auto;background:var(--color-surface);border-left:1px solid var(--color-border-subtle);box-shadow:-8px 0 24px #00000029;padding:18px 20px 28px;z-index:50}.lp-panel[hidden]{display:none}.lp-close{position:absolute;top:8px;right:12px;background:none;border:none;cursor:pointer;font-size:1.6rem;line-height:1;color:var(--color-text-muted)}.lp-close:hover{color:var(--color-text)}.lp-head{margin:2px 28px 12px 0}.lp-title{font-family:inherit;font-size:1.05rem;margin:0;color:var(--color-text-strong)}.lp-sub{font-size:.8rem;color:var(--color-text-muted);margin-top:2px}.lp-letters{list-style:none;margin:0;padding:0}.lp-letters li{padding:7px 0;border-top:1px solid var(--color-border-subtle);font-size:.82rem;line-height:1.4}.lp-letters a{color:var(--color-link);text-decoration:none}.lp-letters a:hover{text-decoration:underline}.lp-date{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.lp-arrow{color:var(--color-text-subtle)}.lp-src{color:var(--color-text-subtle);font-size:.7rem;white-space:nowrap}@media(max-width:700px){.lp-panel{inset:auto 0 0;width:100%;max-height:72%;border-left:none;border-top:1px solid var(--color-border-subtle);box-shadow:0 -8px 24px #0000002e;border-radius:12px 12px 0 0}}#bridge-container{position:relative;width:1200px;max-width:100%;aspect-ratio:1 / 1}#bridge-container svg{width:100%;height:100%;background:var(--color-surface-viz)}.collection-label{font-size:11px;font-family:var(--font-body);font-weight:var(--weight-semibold)}.bridge-edge{stroke-opacity:.15}.bridge-edge--highlight{stroke-opacity:.7}.bridge-edge--dim{stroke-opacity:.05}.bridge-node{fill-opacity:.7;stroke:var(--color-border-subtle);stroke-width:1;stroke-opacity:.5;cursor:pointer}.bridge-node--active{stroke-width:2.5}.bridge-label{font-family:var(--font-body);pointer-events:none}.bridge-label--primary{fill:var(--color-text)}.bridge-label--secondary{fill:var(--color-text-faint)}.bridge-label--tertiary{fill:var(--color-text-subtle)}.arc-line{stroke-opacity:.35;stroke-linecap:round;pointer-events:stroke;cursor:pointer}.arc-line--received{stroke:var(--loc-received)}.arc-line--sent-remote{stroke:var(--loc-sent)}.arc-line--highlight{stroke-opacity:.85}.arc-line--dim{stroke-opacity:.08}.loc-circle{fill-opacity:.35;stroke-width:.8;stroke-opacity:.7;cursor:pointer}.loc-circle--received{fill:var(--loc-received);stroke:var(--loc-received-stroke)}.loc-circle--sent{fill:var(--loc-sent);stroke:var(--loc-sent-stroke)}.loc-circle--active{fill-opacity:.6;stroke-opacity:1}.franklin-ring{fill:none;stroke:var(--color-marker);stroke-width:1.5;stroke-dasharray:3,2}.franklin-dot{fill:var(--color-marker);stroke:var(--color-surface-raised);stroke-width:1}.franklin-label{fill:var(--color-text-strong);font-size:10px;font-family:var(--font-body);font-weight:var(--weight-semibold)}.loc-label{fill:var(--color-text-muted);font-size:9px;font-family:var(--font-body);pointer-events:none}.loc-tag{font-size:var(--text-xs);padding:1px 6px;border-radius:var(--radius-sm);margin-left:var(--space-2)}.loc-tag--sent{color:var(--series-sent)}.loc-tag--received{color:var(--series-received)}.loc-tag--both{color:var(--series-both)}#geo-force-container{position:relative;width:var(--layout-max);max-width:100%}#geo-force-container svg{width:100%;height:auto;background:var(--map-water)}.gf-link{stroke-opacity:.2;stroke-linecap:round}.gf-link--sent{stroke:var(--series-sent)}.gf-link--received{stroke:var(--series-received)}.gf-link--both{stroke:var(--series-both)}.gf-link--highlight{stroke-opacity:.7}.gf-link--dim{stroke-opacity:.04}.gf-node{stroke-width:1;cursor:pointer;fill-opacity:.7}.gf-node--sent{fill:var(--series-sent);stroke:var(--series-sent-stroke)}.gf-node--received{fill:var(--series-received);stroke:var(--series-received)}.gf-node--both{fill:var(--series-both);stroke:var(--series-both)}.gf-node--active{fill-opacity:1;stroke-width:2}.gf-label{font-family:var(--font-body);pointer-events:none}.gf-label--primary{fill:var(--color-text-strong);font-size:10px}.gf-label--secondary{fill:var(--color-text-muted);font-size:9px}.gf-label--tertiary{fill:var(--color-text-subtle);font-size:8px}.person-link{font:inherit;color:var(--color-link);background:none;border:none;padding:0;cursor:pointer;border-bottom:1px dotted rgba(126,49,42,.4)}.person-link:hover{color:var(--color-link-hover);border-bottom-style:solid}.person-overlay{position:fixed;inset:0;z-index:200;background:#221c1400;display:flex;justify-content:flex-end;transition:background var(--transition-base)}.person-overlay.open{background:var(--color-overlay)}.person-overlay[hidden]{display:none}.person-panel{width:min(380px,88vw);height:100%;overflow-y:auto;background:var(--color-surface);border-left:1px solid var(--color-border-subtle);box-shadow:var(--shadow-lg);padding:var(--space-6) var(--space-6) var(--space-10);transform:translate(100%);transition:transform .22s ease}.person-overlay.open .person-panel{transform:translate(0)}.person-close{float:right;font-size:var(--text-xl);line-height:1;color:var(--color-text-subtle);background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:var(--radius-md)}.person-close:hover{background:var(--color-surface-hover);color:var(--color-text-strong)}.person-figure{width:132px;height:132px;border-radius:50%;overflow:hidden;margin:var(--space-2) 0 var(--space-4);background:var(--color-surface-sunken);display:flex;align-items:center;justify-content:center;border:3px solid var(--color-surface-raised);box-shadow:var(--shadow-sm)}.person-figure img{width:100%;height:100%;object-fit:cover}.person-monogram{font-size:2.6rem;color:var(--color-accent-tertiary);font-family:var(--font-heading)}.person-name{font-size:var(--text-lg);font-weight:var(--weight-regular);color:var(--color-heading);margin:0 0 2px}.person-dates{font-size:var(--text-sm);color:var(--color-text-subtle);font-variant-numeric:tabular-nums;margin-bottom:var(--space-3)}.person-desc{font-size:var(--text-base);line-height:var(--leading-snug);color:var(--color-text);margin-bottom:var(--space-4)}.person-credit{font-size:.72rem;color:var(--color-text-faint);line-height:var(--leading-snug);margin-bottom:var(--space-4)}.person-links{display:flex;gap:var(--space-4);font-size:var(--text-sm)}.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4);width:100%;max-width:980px;margin:var(--space-2) auto 0}.people-card{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4);background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);scroll-margin-top:80px}.people-card:target{border-color:var(--color-marker);box-shadow:0 0 0 3px var(--rn-aged-ochre-200)}.people-portrait{flex:0 0 64px;width:64px;height:64px;border-radius:50%;overflow:hidden;background:var(--color-surface-sunken);display:flex;align-items:center;justify-content:center;border:2px solid var(--color-surface-raised);box-shadow:var(--shadow-sm)}.people-portrait img{width:100%;height:100%;object-fit:cover}.people-portrait .person-monogram{font-size:1.4rem}.people-card h3{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-heading);margin:2px 0 1px}.people-card .pc-dates{font-size:var(--text-xs);color:var(--color-text-subtle);font-variant-numeric:tabular-nums;margin-bottom:6px}.people-card .pc-desc{font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--color-text);margin-bottom:var(--space-2)}.people-card .pc-meta{font-size:var(--text-xs);color:var(--color-text-faint);line-height:var(--leading-snug)}.people-card .pc-meta a{color:var(--color-link)}.pc-expand{margin-top:var(--space-2);border-top:1px solid var(--color-border-subtle)}.pc-expand>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:var(--space-2) 0 0;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-link);user-select:none}.pc-expand>summary::-webkit-details-marker{display:none}.pc-expand>summary:after{content:"▸";font-size:.7em;transition:transform .15s ease}.pc-expand[open]>summary:after{transform:rotate(90deg)}.pc-expand .pc-expand-less,.pc-expand[open] .pc-expand-more{display:none}.pc-expand[open] .pc-expand-less{display:inline}.pc-expand-body{padding-top:var(--space-2)}.pc-expand-body h4{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle);margin:0 0 4px}.pc-bio p{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text);margin:0 0 var(--space-3)}.pc-sources ul{margin:0;padding-left:var(--space-3);font-size:var(--text-xs);line-height:var(--leading-snug);color:var(--color-text-faint)}.pc-sources li{margin-bottom:6px;word-break:break-word}.pc-sources a{color:var(--color-link)}.prose{width:var(--layout-prose);text-align:center;margin:auto;color:var(--color-text-muted);font-family:var(--font-body);font-size:medium}.text-page{width:100%;max-width:var(--layout-prose);margin-inline:auto;text-align:left;line-height:var(--leading-loose);font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text)}.text-page p{margin:0 0 var(--space-4)}.text-page h2{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--weight-regular);color:var(--color-heading);letter-spacing:var(--tracking-tight);margin:var(--space-10) 0 var(--space-4)}.text-page section:first-of-type h2{margin-top:var(--space-4)}.faq-page h4{font-family:var(--font-heading);font-size:var(--text-md);font-weight:var(--weight-regular);color:var(--color-accent-secondary);margin:var(--space-6) 0 var(--space-2)}.faq-page p:last-child{margin-bottom:0}.faq-page a{color:var(--color-link);text-decoration:underline;text-decoration-color:#7e312a59;text-underline-offset:2px;transition:color var(--transition-fast),text-decoration-color var(--transition-fast)}.faq-page a:hover{color:var(--color-link-hover);text-decoration-color:currentColor}.faq-page ul{list-style:none;margin:var(--space-4) 0;padding:var(--space-2) var(--space-5)}.faq-page ul li{position:relative;padding:var(--space-3) 0 var(--space-3) var(--space-4);font-size:var(--text-sm);line-height:var(--leading-snug);border-top:1px solid var(--color-border-subtle)}.faq-page ul li:first-child{border-top:none}.faq-page ul li:before{content:"";position:absolute;left:0;top:1.15em;width:5px;height:5px;border-radius:50%;background:var(--color-marker)}.faq{margin-top:var(--space-6)}.faq details{border-top:1px solid var(--color-border-subtle);padding:var(--space-4) 0}.faq details:last-of-type{border-bottom:1px solid var(--color-border-subtle)}.faq summary{cursor:pointer;list-style:none;font-family:var(--font-heading);font-size:var(--text-md);font-weight:var(--weight-regular);color:var(--color-heading);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);transition:color var(--transition-fast)}.faq summary:hover{color:var(--color-link)}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";width:8px;height:8px;border-right:2px solid var(--color-marker);border-bottom:2px solid var(--color-marker);transform:rotate(45deg);transition:transform var(--transition-base);flex:none}.faq details[open] summary:after{transform:rotate(-135deg)}.faq details[open]>*:not(summary){animation:faq-reveal var(--transition-base) ease both}.faq details p{margin:var(--space-3) 0 0;color:var(--color-text)}.faq details h4:first-of-type{margin-top:var(--space-4)}@keyframes faq-reveal{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.faq details[open]>*:not(summary){animation:none}}.contact-form form{display:flex;flex-direction:column;gap:var(--space-4);max-width:var(--layout-prose)}.contact-form label{display:flex;flex-direction:column;gap:var(--space-2);font-family:var(--font-heading);font-size:var(--text-md);color:var(--color-heading)}.contact-form input,.contact-form textarea{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:var(--space-3)}.contact-form textarea{resize:vertical}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--color-marker)}.contact-form button{align-self:flex-start;font-family:var(--font-heading);font-size:var(--text-md);color:var(--color-bg);background:var(--color-marker);border:none;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);cursor:pointer;transition:opacity var(--transition-base)}.contact-form button:hover{opacity:.85}
