/* An editorial, monochrome working surface. Topic colors remain semantic. */
.site-header .brand{flex-shrink:0;letter-spacing:normal}.brand-logo{display:block;width:180px;height:36px}
@media(max-width:760px){.site-header .brand-logo{width:150px;height:30px}.site-header{gap:12px}}
@media(max-width:420px){.site-header .header-caption{display:none}}
:root{--retirements:#725244;--paper:#f7f7f2;--ink:#141414;--muted:#62625e;--line:#d0d0c8;--point-neutral:#171717;--navy:#141414;--blue:#141414;scroll-behavior:auto;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}
body{background:var(--paper)}
.site-header{height:56px;padding:0 30px;border-bottom:2px solid var(--ink);background:var(--paper);font-family:Arial,Helvetica,sans-serif}.brand{font-family:inherit;font-size:19px;letter-spacing:-.7px;font-weight:800}.brand-mark{display:none}.brand-ai{color:inherit;font-size:inherit;margin-left:5px;letter-spacing:-.7px}.header-caption{display:block;color:var(--ink);font:12px ui-monospace,SFMono-Regular,monospace;letter-spacing:0}.site-header .text-button{font:12px ui-monospace,SFMono-Regular,monospace;color:var(--ink)}
.page-shell{width:100%;max-width:none;margin:0;padding:0}.scroll-scene{height:calc(100svh + 3400px);position:relative}.scene-stage{position:sticky;top:0;height:100svh;min-height:520px;display:flex;flex-direction:column;padding:20px 30px 0;background:var(--paper);overflow:clip;--title-size:9vw}
.page-heading{display:block;margin:0 0 20px;flex:none}.page-heading h1{font-family:Arial,Helvetica,sans-serif;font-size:var(--title-size);font-weight:900;line-height:.91;letter-spacing:-.065em;max-width:none;margin:0;text-wrap:nowrap}.page-heading h1 br{display:block}
.scene-toolbar{display:flex;gap:20px;align-items:center;justify-content:space-between;flex:none;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);padding:10px 0;min-height:50px}.scene-toolbar a,.zoom-anchor-label,.filter-panel>summary{font:12px ui-monospace,SFMono-Regular,monospace;color:var(--ink)}.scene-toolbar a{text-underline-offset:4px;white-space:nowrap}.zoom-anchor-label{display:flex;gap:9px;align-items:center;margin-left:auto}.zoom-anchor-label input{font:12px ui-monospace,SFMono-Regular,monospace;border:0;border-bottom:1px solid var(--ink);background:transparent;color:inherit;padding:4px;max-width:145px;min-width:0}
.filter-panel{position:relative}.filter-panel>summary{cursor:pointer;list-style:none;display:flex;gap:12px;align-items:center;min-height:28px}.filter-panel>summary::-webkit-details-marker{display:none}.filter-panel>summary:before{content:'+';font:20px Arial,sans-serif}.filter-panel[open]>summary:before{content:'−'}.filter-panel>summary span{color:var(--muted);max-width:210px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.filters{position:absolute;left:0;top:calc(100% + 11px);width:min(760px,calc(100vw - 60px));max-height:65svh;overflow-y:auto;background:var(--paper);border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);padding:20px;margin:0;z-index:30;display:flex;gap:12px}.filter-title{margin:0;width:100%}.filter-title h2{font-size:16px}.filters .field-label{font-size:11px;color:var(--ink);margin-left:0}.filters select{font-size:14px;border:1px solid var(--ink);border-radius:0;background:var(--paper);padding:8px}.filters .importance{font-size:13px}.category-field{width:100%;overflow:visible}#categories{flex-wrap:wrap;gap:7px;overflow:visible;padding:0}.topic-button{border:1px solid var(--ink);border-radius:0;background:transparent;font-family:inherit;font-size:13px;color:var(--ink);min-height:36px;padding:8px 10px}.topic-button[aria-pressed="true"]{background:var(--cat,var(--ink));color:white;border-color:var(--cat,var(--ink))}.topic-button[aria-pressed="true"] i{background:currentColor}.topic-button>span{color:inherit;opacity:.7}.topic-button:hover{outline:1px solid var(--ink);background:transparent}.topic-button[aria-pressed="true"]:hover{background:var(--cat,var(--ink))}
.chart-period-line{margin:0;padding:12px 0 8px;flex:none;align-items:center;flex-wrap:wrap}.chart-period-line strong{font:500 clamp(18px,2.4vw,32px) ui-monospace,SFMono-Regular,monospace;letter-spacing:-.07em;color:var(--ink)}.chart-period-line #chart-unit{font:12px ui-monospace,SFMono-Regular,monospace;color:var(--muted)}
.activity-panel{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;position:relative;top:auto;border:0;border-radius:0;box-shadow:none;background:transparent;padding:0;overflow:visible;max-height:none}.activity-heading{position:absolute;left:0;top:8px;z-index:3;pointer-events:none}.chart-summary{display:flex;align-items:baseline;gap:7px;text-align:left}.chart-summary strong{font:500 20px ui-monospace,SFMono-Regular,monospace;letter-spacing:-1px}.chart-summary span{font:12px ui-monospace,SFMono-Regular,monospace;margin:0;max-width:none;color:var(--muted)}
.plot-frame{flex:1;min-height:120px;position:relative}.activity-chart{margin:0;height:100%;min-height:0;padding:0;border:0;width:100%;overflow:hidden}.activity-chart svg{overflow:hidden}.star{width:var(--star-target,13px);height:var(--star-target,13px)}.star span{width:var(--star-size,5px);height:var(--star-size,5px)}.star.milestone span{width:var(--star-size,5px);height:var(--star-size,5px);outline-offset:2px}.star.imprecise span{background:var(--paper)}.time-baseline{stroke:var(--ink);stroke-width:1.5}.time-guide{stroke:#bdbdb4;stroke-dasharray:1 5}.axis-text{font:12px ui-monospace,SFMono-Regular,monospace;fill:var(--muted)}.context-star{background:#c6c6bd;width:3px;height:3px}.map-empty{background:var(--paper);inset:40% 20px auto;font-size:14px}
.map-controls{display:flex;flex:none;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:8px 0}.graph-controls{display:flex;gap:12px;margin:0;flex-shrink:0}.graph-controls>div{gap:0}.graph-controls button,.chart-navigation button{border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font:12px ui-monospace,SFMono-Regular,monospace;min-height:32px;padding:5px 10px}.graph-controls button+button{border-left:0}.graph-controls .zoom-buttons button{font-size:18px;min-width:32px;padding:2px 8px}.graph-controls button:hover,.chart-navigation button:hover{background:var(--ink);color:var(--paper)}.chart-navigation{flex:1;max-width:440px;gap:10px}.chart-navigation button{font-size:11px;white-space:nowrap}.chart-navigation input{accent-color:var(--ink);width:100%}.scroll-status{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 0 14px;font:11px ui-monospace,SFMono-Regular,monospace;flex:none;color:var(--muted)}.zoom-stages{display:flex;gap:18px;text-transform:uppercase}.zoom-stages .is-current{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:5px}.scroll-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--line)}.scroll-progress>span{display:block;height:100%;width:0;background:var(--ink)}
.reading-section{max-width:1200px;margin:0 auto;padding:38px 30px 60px;scroll-margin-top:24px}.chronicle{max-width:none}.chart-focus{margin-top:0;border-color:var(--ink);padding-top:16px;min-height:0}.chart-focus strong{font-family:inherit;font-size:17px}.chart-breakdown{margin:20px 0;font-family:ui-monospace,SFMono-Regular,monospace}.chart-foot{border-color:var(--line);margin-bottom:38px}.chart-foot button{color:var(--ink)}.timeline-toolbar{padding:18px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}.timeline-heading h2{font-size:26px;letter-spacing:-1px}.count-badge,.filter-chip,.event-tag{border-radius:0}.count-badge{border-color:var(--ink);background:transparent;color:var(--ink)}.year-heading{font:700 30px Arial,sans-serif;letter-spacing:-1px;position:static}.year-heading span{font-size:12px;font-weight:400;letter-spacing:0}.event-title{font-size:16px}.event-tag{font:11px ui-monospace,SFMono-Regular,monospace}.event-button:hover{background:#ebebe5}.year-events{border-color:var(--ink)}.event-row{border-color:var(--line)}.event-dot{border-color:var(--paper)}.filter-chip{background:var(--ink);color:white}.reset-empty{border-radius:0}.sort-label select{font-size:13px}.timeline-end{text-align:left;border-top:1px solid var(--ink);margin-top:30px}.end-mark{display:none}footer{margin:0;padding:24px 30px;border-top:2px solid var(--ink);color:var(--muted);font:11px ui-monospace,SFMono-Regular,monospace}
.detail-dialog,.info-dialog,.event-preview{background:var(--paper);border-radius:0;box-shadow:none}.event-preview{border:1px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}.close-button,.source-link{border-radius:0;border-color:var(--ink)}.detail-dialog h2,.info-dialog h2{font-family:Arial,Helvetica,sans-serif;font-weight:750}.detail-dialog h2{font-size:34px}.source-link:hover{background:#ebebe5}.detail-section h3,.preview-meta,.preview-hint{font-family:ui-monospace,SFMono-Regular,monospace}.detail-summary{color:#41413c}.detail-date{color:var(--muted)}
@media(max-width:760px){.site-header{height:48px;padding:0 16px}.brand{font-size:17px}.header-caption{font-size:11px}.scene-stage{padding:16px 16px 0;min-height:500px}.page-heading{margin-bottom:18px}.page-heading h1{font-size:var(--title-size,9vw);max-width:none;line-height:.96}.scene-toolbar{gap:10px;flex-wrap:wrap;padding:8px 0}.filter-panel>summary span{max-width:130px}.scene-toolbar a{margin-left:auto}.zoom-anchor-label{order:3;width:100%;justify-content:space-between;margin:0}.zoom-anchor-label input{max-width:170px}.filters{width:calc(100vw - 32px);padding:15px}.filters .field-label{display:block}.filters select{width:auto;flex:1;max-width:100%}.filters .importance{width:100%;margin-top:0}.topic-button{font-size:12px;min-height:36px}.chart-period-line{padding:10px 0 4px}.chart-period-line strong{font-size:19px;letter-spacing:-.07em}.chart-period-line #chart-unit{font-size:11px}.chart-summary strong{font-size:17px}.chart-summary span{font-size:11px}.map-controls{flex-wrap:wrap;gap:7px;padding:7px 0}.graph-controls{width:100%;justify-content:space-between}.graph-controls button,.chart-navigation button{min-height:32px}.chart-navigation{max-width:none;width:100%}.scroll-status{font-size:10px;padding:10px 0 12px}.zoom-stages{gap:12px}.reading-section{padding:24px 16px 40px}.event-button{grid-template-columns:1fr}.event-title{font-size:15px}.year-heading{font-size:23px}.timeline-heading h2{font-size:23px}footer{padding:20px 16px;line-height:1.7}.detail-dialog h2{font-size:28px}}
@media(max-height:600px){.scene-stage{min-height:360px}.scroll-status{padding:6px 0 8px}.scene-toolbar{min-height:38px;padding:4px 0}.page-heading{margin-bottom:10px}.chart-period-line{padding:6px 0 4px}.map-controls{padding:4px 0;gap:5px}.graph-controls button,.chart-navigation button{min-height:26px}.zoom-anchor-label{width:auto;order:initial}}
@media(prefers-reduced-motion:reduce){.scroll-scene{height:auto!important}.scene-stage{height:auto;min-height:0;position:relative}.plot-frame{height:440px;flex:none}.scroll-progress{display:none}.page-heading h1{font-size:clamp(32px,7vw,100px)!important}.scroll-status{display:none}}

/* Plain dots at rest; a single ring identifies the hovered or keyboard-focused event. */
.activity-chart .star span{width:var(--star-size,4px);height:var(--star-size,4px);background:currentColor;border:0;outline:0;box-shadow:none;transform:none;transition:none}
.activity-chart .star:focus-visible{outline:0}
.activity-chart .star::after{content:'';position:absolute;left:50%;top:50%;width:calc(var(--star-size,4px) + 8px);height:calc(var(--star-size,4px) + 8px);transform:translate(-50%,-50%);border:1px solid currentColor;border-radius:50%;opacity:0;pointer-events:none}
.activity-chart .star:is(:hover,:focus-visible){z-index:4}
.activity-chart .star:is(:hover,:focus-visible)::after{opacity:1}
.activity-chart .context-star{width:var(--star-size,3px);height:var(--star-size,3px)}
.chart-breakdown .uncertain-key{width:15px;height:0;border:0;border-top:1px dashed var(--point-neutral);border-radius:0}

.activity-chart[data-pannable="true"]{cursor:grab;touch-action:pan-y pinch-zoom}
.activity-chart.is-dragging,.activity-chart.is-dragging .star{cursor:grabbing}
.activity-chart.is-dragging .star::after{opacity:0}
.activity-chart.is-dragging #chart-cursor{display:none}

/* Opening motion stays inside the existing layout and never intercepts input. */
.page-heading h1>.intro-title-line{display:inline-block;color:inherit;font:inherit;letter-spacing:inherit}
@media(prefers-reduced-motion:no-preference){
  .intro-playing .plot-frame::after{content:'';position:absolute;inset:18px auto 60px 0;width:1px;background:linear-gradient(transparent,#d94b3060);pointer-events:none;animation:intro-scan 1.2s .3s cubic-bezier(.16,1,.3,1) both}
  @keyframes intro-scan{0%{left:0;opacity:0}15%{opacity:.65}85%{opacity:.3}100%{left:100%;opacity:0}}
}
