/* A quiet hierarchy with one piece's cross-connections brought into focus. */
:root { --map-research:#64759e; --map-writing:#8c8197; --map-ai:#526cb0; --map-biology:#518d82; --map-philosophy:#9a718f; --map-quotes:#aa8b56; --map-art:#ae7857; --map-about:#748393; --map-reference:#a05677; --map-series:#5571b9; --map-passage:#a58442; --map-question:#448e87; }
:root[data-theme="dark"] { --map-research:#a5b5dd; --map-writing:#b8abc9; --map-ai:#9aaff1; --map-biology:#8cc4b5; --map-philosophy:#d1a6c6; --map-quotes:#d5b977; --map-art:#d7a47e; --map-about:#b1bac9; --map-reference:#e1a5c3; --map-series:#a1b8ff; --map-passage:#dec081; --map-question:#8fcac0; }
.site-map-control { position:static; flex:0 0 auto; }
.site-map-control > summary { min-height:44px; display:flex; gap:8px; align-items:center; margin:0; padding:9px 12px; border:1px solid var(--line); border-radius:9px; font:14px/1.4 var(--sans); color:var(--ink); background:var(--surface); list-style:none; }
.site-map-control > summary::-webkit-details-marker { display:none; }
.map-summary-short { display:none; }
.site-map-control > summary svg { width:19px; height:19px; fill:none; stroke:var(--blue); stroke-width:1.5; flex:0 0 auto; }
.site-map-control[open] > summary, .site-map-control > summary:hover { border-color:var(--line-strong); background:var(--surface-hover); margin:0; }
.site-map-panel { position:absolute; right:max(24px,calc((100vw - 1204px)/2)); top:calc(100% + 10px); width:1016px; max-width:calc(100vw - 32px); max-height:calc(100dvh - var(--header-height,80px) - 26px); overflow-y:auto; overscroll-behavior:contain; padding:20px 24px 16px; border:1px solid var(--line-strong); border-radius:18px; background:var(--surface); box-shadow:var(--shadow-dialog); color:var(--ink); }
.map-panel-heading { display:flex; justify-content:space-between; gap:12px; background:var(--surface); padding-bottom:14px; position:sticky; top:-20px; z-index:3; }
.map-panel-heading h2 { font:400 29px/1.2 var(--serif); margin:0 0 5px; }
.map-panel-heading p { margin:0; max-width:650px; font:13px/1.5 var(--sans); color:var(--muted); }
.map-close { width:44px; height:44px; flex:0 0 auto; border:0; border-radius:8px; background:transparent; font:25px/1 var(--sans); color:var(--muted); }
.map-close:hover { background:var(--surface-hover); }
.site-map-panel nav { display:block; margin:0; }
.radial-tools { display:flex; align-items:center; gap:10px; padding:11px 0; border-block:1px solid var(--line); }
.radial-tools label { font:12px/1.4 var(--sans); white-space:nowrap; color:var(--muted); }
.radial-tools select { flex:1; min-width:0; max-width:620px; min-height:42px; padding:8px 30px 8px 10px; font:13px/1.4 var(--sans); border:1px solid var(--line); border-radius:7px; color:var(--ink); background:var(--surface); }
.radial-reset { min-height:42px; padding:8px 10px; border:0; border-radius:7px; font:12px/1.4 var(--sans); color:var(--blue); background:var(--wash); white-space:nowrap; }
.radial-layout { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:16px; align-items:start; }
.radial-canvas { min-width:0; }
.radial-graph { display:block; width:100%; height:auto; max-height:580px; overflow:visible; font-family:var(--sans); }
.radial-orbit { fill:none; stroke:var(--line); stroke-width:.6; stroke-dasharray:1 6; opacity:.7; }
.radial-branch { fill:none; stroke:var(--line-strong); stroke-width:1; opacity:.7; pointer-events:none; }
.radial-branch.is-active { stroke:var(--muted); opacity:.95; stroke-width:1.15; }
.radial-cross { fill:none; stroke-width:2; opacity:0; pointer-events:none; }
.radial-cross.is-active { opacity:.9; }
.radial-cross-reference { stroke:var(--map-reference); }
.radial-cross-series { stroke:var(--map-series); stroke-dasharray:4 3; }
.radial-cross-passage { stroke:var(--map-passage); stroke-dasharray:1 4; stroke-linecap:round; }
.radial-cross-question { stroke:var(--map-question); stroke-dasharray:9 4; }
body > header .radial-graph a { display:inline; padding:0; margin:0; border:0; min-height:0; text-decoration:none; }
.radial-hit { fill:transparent; stroke:none; }
.radial-station { fill:var(--surface); stroke:var(--node-color); stroke-width:1.4; }
.radial-selection-ring { fill:none; stroke:var(--node-color); stroke-width:1; opacity:0; }
.radial-home-disc { fill:var(--surface); stroke:var(--blue); stroke-width:1.3; }
.radial-home-ring { fill:none; stroke:var(--line-strong); stroke-width:.7; }
.radial-node text { fill:var(--ink); font:11.5px var(--sans); }
.radial-node .radial-hub-label { font-size:12px; }
.radial-node .radial-home-label { font-size:13px; }
.radial-depth-1 text { font-weight:600; }
.radial-node.is-quiet .radial-station { opacity:.65; }
.radial-node.is-quiet text { fill:var(--muted); }
.radial-node.is-connected .radial-station, .radial-node.is-selected .radial-station { fill:var(--node-color); }
.radial-node.is-connected text { fill:var(--ink); font-weight:600; }
.radial-node.is-selected .radial-selection-ring, .radial-node[aria-current] .radial-selection-ring { opacity:1; }
.radial-node.is-selected text { fill:var(--node-color); }
.radial-node:focus-visible { outline:none; }
.radial-node:focus-visible .radial-selection-ring { opacity:1; stroke-width:2; }
.radial-node:focus-visible text { text-decoration:underline; text-underline-offset:4px; }
#radial-help { margin:-5px 0 10px; text-align:center; font:11px/1.5 var(--sans); color:var(--muted); }
.radial-inspector { margin:19px 0 10px; padding-left:18px; border-left:1px solid var(--line); max-height:545px; overflow-y:auto; overscroll-behavior:contain; }
.radial-inspector .eyebrow { font-size:10px; letter-spacing:.1em; }
.radial-inspector h3 { font:400 24px/1.2 var(--serif); margin:9px 0 12px; }
.radial-description { font:13px/1.65 var(--sans); margin:0 0 12px; color:var(--muted); }
body > header .site-map-panel .radial-open { display:flex; align-items:center; gap:8px; width:fit-content; min-height:42px; padding:0; border:0; border-bottom:1px solid var(--line-strong); font:13px/1.5 var(--sans); color:var(--blue); }
.radial-within { margin:9px 0 20px; font:11px/1.5 var(--sans); color:var(--muted); }
body > header .site-map-panel .radial-within a { padding:0; border:0; min-height:0; display:inline; font-size:11px; text-decoration:underline; text-underline-offset:3px; }
.radial-connection-heading { display:flex; justify-content:space-between; font:500 12px/1.4 var(--sans); padding-block:10px; border-top:1px solid var(--line); }
.radial-connection-heading span { color:var(--muted); font-weight:400; }
.radial-connections, .radial-children ul { list-style:none; padding:0; margin:0; }
.radial-connection { border-top:1px solid var(--line); padding:11px 0 6px; }
.radial-connection > span { display:block; font:10px/1.5 var(--sans); color:var(--edge-color); margin-bottom:3px; text-transform:uppercase; letter-spacing:.06em; }
body > header .site-map-panel .radial-connection a, body > header .site-map-panel .radial-children a { display:block; min-height:0; border:0; padding:6px 0; font:13px/1.5 var(--sans); color:var(--ink); }
.radial-connection a:hover { text-decoration:underline; text-underline-offset:3px; }
.radial-connection button, .radial-children button { border:0; background:transparent; color:var(--blue); padding:5px 0; min-height:32px; font:11px/1.5 var(--sans); }
.radial-connection p { font:12px/1.5 var(--sans); color:var(--muted); margin:4px 0; }
.radial-empty { margin:2px 0 15px; font:12px/1.6 var(--sans); color:var(--muted); }
.radial-children { border-top:1px solid var(--line); padding-top:4px; }
.radial-children summary { display:flex; gap:12px; justify-content:space-between; min-height:42px; margin:0 !important; font:12px/1.5 var(--sans); }
.radial-children li { padding:4px 0; border-top:1px solid var(--line); }
.radial-filters { display:flex; gap:8px 20px; flex-wrap:wrap; border:0; border-top:1px solid var(--line); padding:10px 0 0; margin:0; }
.radial-filters legend { float:left; width:100%; font:11px/1.5 var(--sans); color:var(--muted); margin:0 0 3px; }
.edge-key { display:flex; align-items:center; gap:6px; min-height:32px; font:11px/1.5 var(--sans); }
.edge-key input { accent-color:var(--edge-color); width:14px; height:14px; margin:0; }
.edge-key > span { width:20px; border-top:2px solid var(--edge-color); }
.edge-key-reference { --edge-color:var(--map-reference); }
.edge-key-series { --edge-color:var(--map-series); }
.radial-filters .edge-key-series > span { border-top-style:dashed; }
.edge-key-passage { --edge-color:var(--map-passage); }
.radial-filters .edge-key-passage > span { border-top-style:dotted; }
.edge-key-question { --edge-color:var(--map-question); }
.radial-filters .edge-key-question > span { border-top-style:dashed; }
.radial-method { margin:6px 0 0; max-width:750px; font:11px/1.5 var(--sans); color:var(--muted); }
.hero { display:grid; grid-template-columns:minmax(0,1fr) 330px; column-gap:45px; align-items:start; }
.hero > .eyebrow, .hero > h1, .hero > .hero-bottom { grid-column:1; }
.hero > h1 { font-size:clamp(43px,4.8vw,64px); margin:24px 0; }
.hero > .hero-bottom { display:block; }
.hero .hero-bottom p { max-width:660px; }
.hero .text-links { justify-content:flex-start; margin-top:22px; }
.hero-atlas { grid-column:2; grid-row:1 / 4; align-self:center; }
.atlas-caption { display:flex; justify-content:space-between; font:10px/1.4 var(--sans); letter-spacing:.1em; color:var(--blue); }
.atlas-caption > span { color:var(--muted); letter-spacing:0; }
.atlas-preview { display:block; border:0; padding:0; width:100%; border-radius:14px; background:none; color:var(--ink); text-align:left; }
.atlas-preview:hover { background:var(--wash); }
.radial-mini { max-height:310px; pointer-events:none; }
.radial-mini .radial-node:not(.is-connected).radial-depth-3 text { display:none; }
.radial-mini .radial-node text { font-size:19px; }
.radial-mini .radial-node.radial-depth-1 text { font-size:22px; }
.radial-mini .radial-node .radial-home-label { font-size:22px; }
.radial-mini .radial-node.is-connected text { display:block; font-size:19px; }
.radial-mini .radial-cross { stroke-width:2.8; }
.atlas-preview-label { display:flex; justify-content:space-between; width:100%; padding:12px 6px 10px; border-top:1px solid var(--line); font:12px/1.5 var(--sans); color:var(--blue); }
.atlas-path-note { margin:5px 6px 0; font:11px/1.55 var(--sans); color:var(--muted); }
.literary-related { padding-top:18px; border-top:1px solid var(--line); font:14px/1.7 var(--sans); color:var(--muted); }
.literary-related a, .about-text p a, .research-intro h2 a { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.research-intro h2 a { text-decoration-color:var(--line-strong); }
.research-intro h2 a:hover { color:var(--blue); }
@media(max-width:1240px) { body > header .contact { display:none; } }
@media(max-width:1000px) { .hero { column-gap:28px; grid-template-columns:minmax(0,1fr) 290px; } .radial-layout { grid-template-columns:minmax(0,1fr) 240px; gap:10px; } }
@media(max-width:900px) { .hero { display:block; } .hero-atlas { display:none; } }
@media(max-width:760px) { body > header { gap:8px 12px; } body > header .theme-control { margin-left:0; } .site-map-control > summary { padding:9px 10px; font-size:13px; } .site-map-panel { right:16px; padding:17px 16px; } .radial-layout { display:block; } .radial-inspector { margin:0; padding:15px 0 0; border-left:0; border-top:1px solid var(--line); max-height:none; } .radial-inspector h3 { font-size:24px; } .radial-tools { flex-wrap:wrap; gap:6px; } .radial-tools label { width:100%; } .radial-tools select { max-width:calc(100% - 95px); font-size:12px; } .radial-reset { padding-inline:7px; font-size:11px; } .radial-graph .radial-leaf-label { display:none; } .radial-graph .radial-hub-label { font-size:17px; } .radial-graph .radial-home-label { font-size:22px; } .radial-graph .radial-hit { width:48px; height:48px; x:-24px; y:-24px; } .radial-graph .radial-station { stroke-width:2; } .radial-filters { margin-top:15px; gap:2px 14px; } #radial-help { font-size:10px; margin:0 0 10px; } .map-panel-heading h2 { font-size:26px; } .map-panel-heading p { font-size:12px; } }
@media(max-width:380px) { body > header { padding-inline:16px; gap:8px; } body > header .wordmark { font-size:24px; } .theme-control select { max-width:87px; padding-inline:8px; } .site-map-control > summary { padding-inline:8px; font-size:12px; gap:6px; } .site-map-control > summary svg { width:16px; } .map-summary-label { display:none; } .map-summary-short { display:inline; } }
@media(forced-colors:active) { .radial-station,.radial-home-disc,.radial-selection-ring { stroke:LinkText; } .radial-cross.is-active { stroke:Highlight; } .radial-node text { fill:CanvasText; } }
