:root{--ink:#243938;--paper:#f7f5ee;--quiet:#637570;--accent:#357d74;--line:#d8dfd5;--gold:#b99855}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.8 Georgia,serif}a{color:#326f68;text-underline-offset:4px}button,select{font:13px/1.4 system-ui,sans-serif}button{cursor:pointer}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:3px solid #aa7434;outline-offset:4px}main{max-width:none!important;margin:0!important;padding:0!important}.story-masthead{max-width:1500px;margin:auto;padding:22px 5vw;border-bottom:1px solid var(--line);font:12px system-ui;letter-spacing:.14em}.story-masthead a{text-decoration:none;font-weight:700}.masthead-caption{float:right;letter-spacing:.02em;color:var(--quiet)}.story-intro{max-width:900px;margin:65px auto 72px;padding:0 35px}.eyebrow,.section-number{font:11px/1.5 system-ui;letter-spacing:.16em;text-transform:uppercase;color:var(--quiet)}h1{font-size:clamp(38px,5vw,64px);line-height:1.08;font-weight:400;letter-spacing:-.035em;margin:24px 0 30px}h2{font-weight:400;font-size:35px;line-height:1.22;letter-spacing:-.025em}.story-intro>p{max-width:700px}.reading-hint{display:block;font:13px/1.7 system-ui;border-left:2px solid var(--gold);padding-left:14px;margin-top:28px;color:var(--quiet)}.story-layout{max-width:1500px;margin:0 auto;padding:0 4vw;display:grid;grid-template-columns:minmax(350px,1fr) minmax(430px,1.1fr);gap:5vw;align-items:start}.story-prose{max-width:620px}.thoughtline-scene{padding:15px 0 95px;scroll-margin-top:35px}.thoughtline-scene h2{margin:18px 0 30px}.thoughtline-scene p{margin:0 0 24px}.node-link{border-bottom:1px dotted var(--accent);color:var(--accent);cursor:pointer}.node-link:hover{background:#e4ebe2}.story-end{border-top:1px solid var(--line);padding:30px 0 70px}.story-end details{font:13px/1.7 system-ui;color:var(--quiet)}summary{cursor:pointer}.story-sources{max-width:900px;margin:30px auto 80px;padding:0 35px;font-size:15px}.story-sources h2{font-size:23px}
#thoughtline-reader{position:sticky;top:22px;border:1px solid #d4dbcf;border-radius:18px;background:#eeefe6;box-shadow:0 14px 40px #293a2d08;overflow:hidden;font:13px/1.5 system-ui;color:var(--ink)}.reader-top{padding:19px 22px 0}.reader-kicker{font-size:10px;letter-spacing:.15em;color:var(--quiet);text-transform:uppercase}.reader-title{font:23px/1.3 Georgia;margin:8px 0}.reader-era{font-size:11px;color:var(--quiet)}.reader-tabs{display:flex;gap:5px;margin-top:16px}.reader-tabs button{border:1px solid transparent;border-radius:20px;background:transparent;color:var(--quiet);padding:7px 12px}.reader-tabs button[aria-current=true]{background:#fffdf7;border-color:var(--line);color:var(--accent)}.reader-stage{position:relative}.reader-svg{width:100%;height:clamp(310px,40vh,450px);display:block;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab}.reader-svg.dragging{cursor:grabbing}.story-edge{stroke:#83958b;stroke-width:1;opacity:.38;cursor:pointer;pointer-events:stroke}.story-edge.comparison{stroke:#6083a6;stroke-dasharray:5 5}.story-edge.structure{stroke:#af965b;stroke-dasharray:2 4}.story-edge:focus,.story-edge:hover{stroke-width:4;opacity:1;outline:none}.story-node{cursor:pointer;outline:none}.story-node circle{stroke:var(--paper);stroke-width:3;fill:#8aa9b3}.story-node.person circle{fill:#a46b66}.story-node.treatment circle{fill:#bd9d59}.story-node.work circle{fill:#8e899c}.story-node.is-focus circle{stroke:var(--accent);stroke-width:2}.story-node.is-selected circle,.story-node:focus circle{stroke:#283f3c;stroke-width:4}.story-node text{font:14px system-ui;fill:#354c48;paint-order:stroke;stroke:#eeefe6;stroke-width:4px;stroke-linejoin:round}.reader-actions{display:flex;gap:6px;align-items:center;padding:0 18px 12px;flex-wrap:wrap}.reader-actions button,.reader-close{border:1px solid var(--line);background:#fffdf7;border-radius:7px;padding:7px 10px;color:var(--ink)}.reader-actions .follow{margin-right:auto;background:var(--accent);color:white;border-color:transparent}.reader-status{padding:0 20px 8px;font-size:11px;color:var(--quiet);min-height:25px}.reader-legend{border-top:1px solid var(--line);padding:11px 20px;display:flex;gap:13px;flex-wrap:wrap;font-size:10px;color:var(--quiet)}.reader-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#a46b66;margin-right:4px}.reader-legend .idea{background:#8aa9b3}.reader-legend .treatment{background:#bd9d59}.reader-legend .work{background:#8e899c}.reader-details{position:absolute;inset:65px 12px 12px;background:#fffef9f5;border:1px solid var(--line);border-radius:12px;padding:20px;overflow:auto;box-shadow:0 8px 30px #1c382f17;backdrop-filter:blur(8px)}.reader-details[hidden]{display:none}.reader-details h3{font:23px/1.2 Georgia;margin:0 40px 14px 0}.reader-details p{line-height:1.65}.reader-close{float:right;position:sticky;top:0}.reader-details small{display:block;color:var(--quiet);margin:5px 0}.reader-details a{display:inline-block;margin:5px 0}.reader-details details{margin-top:15px;font-size:12px;color:var(--quiet)}.reader-node-list{padding:0 20px 12px;font-size:11px}.reader-node-list button{display:block;border:0;background:none;text-align:left;padding:6px;color:var(--ink)}.reader-error,.reader-loading{padding:24px}.reader-mobile-toggle{display:none}
@media(max-width:900px){.story-layout{display:block;padding:0 6vw}.story-prose{max-width:650px;margin:auto}.story-intro{margin-top:35px;padding:0 6vw}.story-masthead{padding:18px 6vw}.masthead-caption{display:none}#thoughtline-reader{position:fixed;z-index:20;bottom:12px;left:12px;right:12px;top:auto;max-height:85vh;overflow:auto}.reader-mobile-toggle{display:block;width:100%;text-align:left;padding:14px 20px;background:#eeefe6;border:0;color:var(--ink)}#thoughtline-reader:not(.mobile-open) .reader-body{display:none}.reader-svg{height:300px}.story-sources{padding-bottom:65px}.thoughtline-scene{padding-bottom:65px}.reader-details{inset:70px 10px 10px}.reader-title{font-size:20px}h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Context is still inspectable; reveal its label without crowding the reading scene. */
.story-node.is-context text{opacity:0;transition:opacity .2s}.story-node.is-context:hover,.story-node.is-context:focus,.story-node.is-context.is-selected{opacity:1!important}.story-node.is-context:hover text,.story-node.is-context:focus text,.story-node.is-context.is-selected text{opacity:1}.story-edge.is-neighbor{opacity:.7!important;stroke-width:1.7}.story-node.is-context circle{stroke-width:2}.reader-node-list details{margin-top:8px}.reader-node-list details summary{color:var(--quiet)}

/* The temporal story shares inspection controls but has its own graph presentation. */
.time-ribbon .reader-tabs{overflow-x:auto;white-space:nowrap;padding-bottom:6px;scrollbar-width:thin}
.time-ribbon .reader-tabs button{flex:none}
.time-ribbon .reader-svg{background:linear-gradient(180deg,#f2f3eb 0%,#f4f3e9 78%,#e9ece2 100%)}
.timeline-axis{stroke:#8fa39c;stroke-width:1.6}
.timeline-tick{stroke:#8fa39c;stroke-width:1.2}
.timeline-year{font:11px system-ui,sans-serif;fill:#586d65}
.timeline-span{stroke:#74a7a1;stroke-width:8;opacity:.25;stroke-linecap:round}
.timeline-span.approximate{stroke:#b29368;stroke-dasharray:5 5;opacity:.38}
.time-ribbon .story-node.treatment circle{fill:#b79559}
.time-ribbon .story-node.is-focus circle{stroke:#2f7068;stroke-width:3}
.time-ribbon .story-edge.structure{stroke-width:1;opacity:.22}

.reader-date-axis{display:block;width:100%;height:auto;background:#e9ece2;margin-bottom:12px;overflow:hidden}
.time-ribbon .reader-svg{height:auto;aspect-ratio:680/480;max-height:none}
.time-ribbon .story-node text{font-size:14px}
.time-ribbon .story-node.is-focus circle{filter:drop-shadow(0 3px 7px #407b6c30)}

.reader-hover-label{position:absolute;z-index:3;pointer-events:none;background:#fffef9f5;border:1px solid #bccdc2;border-radius:10px;box-shadow:0 3px 12px #24463816;padding:8px 11px;color:var(--ink);font:14px/1.35 system-ui,sans-serif}
.reader-hover-label[hidden]{display:none}.reader-hover-label small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--quiet);margin-bottom:4px}.reader-hover-label strong{font-weight:500}
.story-node.is-magnified text{opacity:0!important}.story-node.is-magnified{opacity:1!important}.story-node circle{transform-box:fill-box;transform-origin:center}

/* Temporal reading hierarchy: dated accounts above, compact contextual bands below. */
.time-ribbon .reader-top{padding:12px 16px 8px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;align-items:center}
.time-ribbon .reader-kicker,.time-ribbon .reader-tabs{display:none}
.time-ribbon .reader-title{font-size:19px;margin:0;line-height:1.25}
.time-ribbon .reader-era{grid-column:1;font-size:10px;line-height:1.4}
.reader-episode-select{grid-column:2;grid-row:1 / span 2;width:130px;max-width:100%;padding:6px;border:1px solid var(--line);border-radius:7px;background:#fffdf7;color:var(--ink);font-size:11px}
.time-ribbon .reader-actions{padding:0 14px 8px;gap:5px}.time-ribbon .reader-actions button{padding:5px 9px;font-size:12px}
.time-ribbon .reader-date-axis{margin-bottom:8px}
.reader-help{font:11px/1.5 system-ui;color:var(--quiet);border-top:1px solid var(--line);padding:7px 16px}.reader-help p{max-width:45em}.reader-help .reader-legend{border:0;padding:4px 0}
.time-ribbon .story-node.treatment text{font-size:18px}
.time-ribbon .story-node:not(.treatment) text{font-size:11px;stroke-width:3px}
.time-ribbon .story-node:not(.treatment) circle{stroke-width:1.5}
.context-lane{fill:#dae4dd;fill-opacity:.38;stroke:#cbd8cf;stroke-width:.7}
.context-lane-title{font:10px system-ui;fill:#687e73}

.time-ribbon .timeline-span.background-span{opacity:.035;pointer-events:none}
.time-ribbon .story-node:not(.treatment) text{font-size:10px}

.time-ribbon.hide-surroundings .background-span{display:none}.reader-background-toggle{display:block;padding-top:8px}.reader-background-toggle input{vertical-align:middle}

.time-ribbon .reader-hover-label{font-size:12px;box-shadow:none;background:#fffef9ed;padding:6px 9px}
.time-ribbon .story-node.is-hovered circle{stroke:var(--accent);stroke-width:2}
.time-ribbon .story-node.is-context.is-hovered text{opacity:1}

.time-ribbon .story-node.is-hovered{opacity:1!important}
.time-ribbon .story-node.is-hovered circle{stroke:#285d54;stroke-width:3;filter:drop-shadow(0 0 4px #477c6d55)}
.time-ribbon .story-node.is-hovered text{fill:#204d45;font-weight:600;opacity:1!important}
.time-ribbon .story-edge.is-neighbor{stroke:#39796b;stroke-width:1.8;opacity:.85!important}
