:root {
  color-scheme: dark;
  --void: #040611;
  --night: #070b19;
  --night-2: #0b1025;
  --ink: #f3efe3;
  --muted: #aab5d1;
  --faint: rgba(215, 223, 247, .13);
  --line: rgba(198, 210, 244, .17);
  --gold: #e7bd61;
  --gold-soft: rgba(231, 189, 97, .13);
  --cyan: #76dfff;
  --panel: rgba(8, 12, 28, .86);
  --serif: "Songti SC", "STSongti-SC", STSong, "Noto Serif SC", serif;
  --sans: Inter, "SF Pro Display", "PingFang SC", "Microsoft YaHei", sans-serif;
  --header-h: 76px;
  --left-rail-w: 176px;
  --chronology-h: 52px;
}

* { box-sizing: border-box; }
html, body { width: 100%; min-height: 100%; margin: 0; background: var(--void); }
html { overflow: hidden; }
body { color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; overflow: hidden; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
button { color: inherit; }

.skip-link {
  position: fixed; z-index: 200; left: 14px; top: -60px; padding: 10px 14px;
  color: #07101f; background: var(--gold); border-radius: 8px; transition: top .18s;
}
.skip-link:focus { top: 12px; }
.sr-only {
  position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important;
  margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important;
  white-space: nowrap !important; border: 0 !important;
}

.site-header {
  position: fixed; z-index: 40; inset: 0 0 auto; height: var(--header-h); display: flex;
  align-items: center; justify-content: space-between; padding: 0 clamp(18px, 3.8vw, 58px);
  pointer-events: none; background: linear-gradient(180deg, rgba(3,5,14,.88), transparent);
}
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; pointer-events: auto; }
.brand-seal {
  display: block; width: 43px; height: 43px; border: 1px solid rgba(231,189,97,.3); border-radius: 50%;
  object-fit: cover; box-shadow: 0 0 28px rgba(231,189,97,.18);
}
.brand b { display: block; font: 650 17px/1.1 var(--serif); letter-spacing: .05em; }
.brand small { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; letter-spacing: .19em; text-transform: uppercase; }
.theme-switch {
  display: inline-flex; gap: 3px; padding: 3px; border: 1px solid var(--line); border-radius: 999px;
  background: var(--panel); backdrop-filter: blur(14px); pointer-events: auto;
}
.theme-switch button {
  display: inline-flex; align-items: center; gap: 5px; min-height: 28px; padding: 0 9px; border: 0;
  border-radius: 999px; color: var(--muted); background: transparent; cursor: pointer; font-size: 9px;
}
.theme-switch button[aria-pressed="true"] { color: var(--ink); background: var(--gold-soft); }
.theme-switch button span { color: var(--gold); font-size: 8px; }
.workbench-close {
  display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid var(--line);
  border-radius: 50%; color: rgba(245,242,233,.85); background: rgba(7,10,23,.52); cursor: pointer;
  backdrop-filter: blur(12px); transition: border-color .18s, color .18s, background .18s, transform .18s;
}
.workbench-close:hover, .workbench-close:focus-visible { border-color: rgba(231,189,97,.65); color: var(--gold); transform: translateY(-1px); }

#app { width: 100%; height: 100svh; }
.cosmos-stage { position: relative; width: 100%; height: 100svh; min-height: 600px; overflow: hidden; isolation: isolate; background: #040611; }
.cosmos-stage::after {
  content: ""; position: absolute; z-index: 2; inset: 0; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(3,5,14,.28), transparent 18%, transparent 79%, rgba(3,5,14,.24)),
    linear-gradient(180deg, rgba(3,5,14,.18), transparent 30%, transparent 68%, rgba(3,5,14,.74));
}
.cosmos-mount, .cosmos-mount canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.cosmos-mount { z-index: 1; }
.cosmos-mount canvas { touch-action: none; cursor: grab; }
.cosmos-mount canvas.dragging { cursor: grabbing; }
.cosmos-mount canvas.pointing { cursor: pointer; }
.cosmos-loading {
  position: absolute; z-index: 30; inset: 0; display: grid; place-content: center; justify-items: center;
  gap: 18px; color: var(--muted); background: var(--void); transition: opacity .6s, visibility .6s;
}
.cosmos-loading.ready { opacity: 0; visibility: hidden; }
.cosmos-loading span { width: 54px; height: 54px; border: 1px solid rgba(231,189,97,.24); border-top-color: var(--gold); border-radius: 50%; animation: orbit 1.2s linear infinite; }
.cosmos-loading p { margin: 0; font: 12px var(--serif); letter-spacing: .18em; }
@keyframes orbit { to { transform: rotate(360deg); } }

.map-control-column {
  position: absolute; z-index: 12; top: 92px; bottom: 22px; display: flex; flex-direction: column; gap: 7px;
  overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; pointer-events: none;
  transition: opacity .22s ease, transform .22s ease, visibility .22s;
}
.map-control-column { left: clamp(18px, 3.8vw, 58px); width: var(--left-rail-w); }
.map-control-column::-webkit-scrollbar { display: none; }
.map-control-column.is-collapsed {
  visibility: hidden; opacity: 0; transform: translateX(calc(-100% - 28px)); pointer-events: none;
}
.map-tools-toggle {
  position: absolute; z-index: 14; left: clamp(18px, 3.8vw, 58px); top: 92px; display: inline-flex; align-items: center; gap: 7px;
  min-height: 34px; padding: 0 11px; border: 1px solid rgba(198,210,244,.17); border-radius: 999px;
  color: rgba(232,237,249,.88); background: rgba(5,8,20,.7); backdrop-filter: blur(14px); cursor: pointer;
  box-shadow: 0 12px 36px rgba(0,0,0,.2); transition: color .18s, border-color .18s, background .18s;
}
.map-tools-toggle:hover, .map-tools-toggle:focus-visible, .map-tools-toggle[aria-expanded="true"] {
  color: #f4d78e; border-color: rgba(231,189,97,.55); background: rgba(12,15,29,.88); outline: 0;
}
.map-tools-toggle span { color: var(--gold); font-size: 12px; }
.map-tools-toggle b { font: 600 10px var(--serif); letter-spacing: .04em; }
.map-tools-toggle[aria-expanded="true"] { transform: translateX(calc(var(--left-rail-w) + 10px)); }

.subject-cluster {
  position: relative; flex: 0 0 auto; width: 100%; padding: 4px;
  border: 1px solid rgba(198,210,244,.13); border-radius: 14px;
  background: rgba(4,7,17,.62); backdrop-filter: blur(16px); pointer-events: auto;
}
.control-section-title {
  display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 6px;
  min-height: 24px; padding: 1px 3px 4px; color: var(--muted);
}
.control-section-title b { min-width: 0; overflow: hidden; color: var(--ink); font: 600 10px var(--serif); text-overflow: ellipsis; white-space: nowrap; }
.control-section-title span { font-size: 7px; white-space: nowrap; }
.control-section-title button {
  min-height: 20px; padding: 0 6px; border: 1px solid rgba(231,189,97,.3); border-radius: 999px;
  color: var(--gold); background: rgba(231,189,97,.06); cursor: pointer; font-size: 7px;
}
.control-section-title button:disabled { border-color: var(--line); color: rgba(170,181,209,.42); background: transparent; cursor: default; }

.search-orbit {
  position: relative; display: flex; flex: 0 0 auto; align-items: center; width: 100%; min-width: 0; height: 40px;
  padding: 0 10px; border: 1px solid var(--line); border-radius: 12px;
  background: rgba(7, 10, 25, .68); backdrop-filter: blur(16px); pointer-events: auto;
  box-shadow: 0 14px 42px rgba(0,0,0,.18);
}
.search-orbit > span { margin-right: 9px; color: var(--muted); font-size: 20px; }
.search-orbit input { flex: 1; min-width: 0; height: 100%; padding: 0; border: 0; outline: 0; color: var(--ink); background: transparent; }
.search-orbit input::-webkit-search-cancel-button { display: none; -webkit-appearance: none; }
.search-orbit input::placeholder { color: rgba(158,170,204,.65); }
.search-orbit button { width: 28px; height: 28px; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 20px; }
.search-orbit:focus-within { border-color: rgba(118,223,255,.55); box-shadow: 0 0 0 3px rgba(118,223,255,.06); }

.concept-results {
  position: relative; display: flex; flex: 0 1 230px; min-height: 92px; flex-direction: column; overflow: hidden;
  border: 1px solid rgba(198,210,244,.13); border-radius: 12px; background: rgba(5,8,20,.78);
  backdrop-filter: blur(16px); pointer-events: auto;
}
.concept-results[hidden] { display: none; }
.concept-results header { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; min-height: 28px; padding: 0 9px; border-bottom: 1px solid rgba(198,210,244,.08); }
.concept-results header b { color: rgba(236,240,250,.88); font: 600 9px var(--serif); }
.concept-results header span { color: var(--muted); font-size: 7px; }
#concept-result-list { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
#concept-result-list button {
  display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; width: 100%; min-height: 39px; padding: 6px 8px;
  border: 0; border-bottom: 1px solid rgba(198,210,244,.06); color: var(--ink); background: transparent; cursor: pointer; text-align: left;
}
#concept-result-list button:hover, #concept-result-list button:focus-visible, #concept-result-list button[aria-selected="true"] {
  outline: 0; background: rgba(118,223,255,.08); box-shadow: inset 2px 0 rgba(118,223,255,.62);
}
#concept-result-list button span { min-width: 0; }
#concept-result-list button b, #concept-result-list button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#concept-result-list button b { font: 600 9px var(--serif); }
#concept-result-list button small { margin-top: 3px; color: var(--muted); font-size: 7px; }
#concept-result-list button em { align-self: center; max-width: 70px; overflow: hidden; color: rgba(231,189,97,.72); font: normal 7px var(--sans); text-overflow: ellipsis; white-space: nowrap; }
.concept-result-empty { margin: 0; padding: 13px 9px; color: var(--muted); font-size: 8px; line-height: 1.5; }

.mode-switch {
  position: relative; display: grid; flex: 0 0 auto; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2px; width: 100%; padding: 3px;
  border: 1px solid var(--line); border-radius: 14px; background: rgba(7,10,25,.68); backdrop-filter: blur(16px); pointer-events: auto;
}
.mode-switch button { min-width: 0; min-height: 31px; padding: 0 4px; border: 0; border-radius: 10px; color: var(--muted); background: transparent; cursor: pointer; font-size: 9px; text-align: center; white-space: nowrap; }
.mode-switch button.active { color: #090b13; background: var(--gold); }

.discipline-lifecycle {
  display: grid; flex: 0 0 auto; gap: 5px; max-height: 168px; padding: 7px;
  border: 1px solid rgba(118,223,255,.16); border-radius: 13px;
  background: rgba(5,12,25,.7); backdrop-filter: blur(16px); pointer-events: auto;
}
.discipline-lifecycle header { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.discipline-lifecycle header b { color: rgba(236,241,252,.92); font: 600 9px var(--serif); }
.discipline-lifecycle header span { color: rgba(118,223,255,.72); font-size: 7px; }
#discipline-lifecycle-events { display: grid; gap: 4px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.discipline-lineage-group { display: grid; gap: 3px; }
.discipline-lineage-group.active { padding: 3px; border: 1px solid rgba(231,189,97,.2); border-radius: 10px; background: rgba(231,189,97,.04); }
.discipline-lineage {
  display: grid; gap: 3px; width: 100%; padding: 5px 6px; border: 1px solid rgba(198,210,244,.09);
  border-radius: 8px; color: var(--ink); background: rgba(8,14,29,.52); cursor: pointer; text-align: left;
}
.discipline-lineage:hover, .discipline-lineage:focus-visible, .discipline-lineage.active {
  border-color: rgba(118,223,255,.46); outline: 0; background: rgba(118,223,255,.08);
}
.discipline-lineage > span { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.discipline-lineage b { font: 600 8px var(--serif); }
.discipline-lineage small { color: var(--gold); font: 650 7px var(--serif); }
.discipline-lineage i {
  overflow: hidden; color: var(--muted); font: normal 7px/1.35 var(--sans);
  text-overflow: ellipsis; white-space: nowrap;
}
.discipline-event {
  display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 6px; width: 100%; padding: 5px 6px;
  border: 1px solid rgba(198,210,244,.09); border-radius: 8px; color: var(--ink);
  background: rgba(8,14,29,.52); cursor: pointer; text-align: left;
}
.discipline-event:hover, .discipline-event:focus-visible, .discipline-event.active {
  border-color: rgba(231,189,97,.45); outline: 0; background: rgba(231,189,97,.07);
}
.discipline-event time { color: var(--gold); font: 650 8px var(--serif); }
.discipline-event span { min-width: 0; overflow: hidden; font-size: 8px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.discipline-event i {
  grid-column: 2; display: inline-flex; width: max-content; max-width: 100%; padding: 2px 5px;
  border-radius: 999px; color: rgba(118,223,255,.78); background: rgba(118,223,255,.07);
  font: normal 7px var(--sans); white-space: nowrap;
}
.discipline-lineage-group .discipline-event { margin-left: 7px; width: calc(100% - 7px); }
.discipline-form-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin: 9px 0; }
.discipline-form-chain span {
  display: inline-grid; gap: 2px; padding: 5px 7px; border: 1px solid rgba(118,223,255,.2);
  border-radius: 9px; background: rgba(118,223,255,.06);
}
.discipline-form-chain span + span::before { content: "→"; margin-left: -11px; color: var(--muted); }
.discipline-form-chain span.parallel { border-color: rgba(231,189,97,.36); background: rgba(231,189,97,.08); }
.discipline-form-chain b { font: 600 9px var(--serif); }
.discipline-form-chain small { color: var(--muted); font-size: 7px; }

.subject-orbit {
  position: relative; display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 3px; min-height: 0; padding: 2px; pointer-events: auto;
}
.subject-button {
  position: relative; display: flex; align-items: center; min-width: 0; min-height: 27px; padding: 0 6px;
  border: 1px solid rgba(198,210,244,.08); border-radius: 9px; color: rgba(211,220,242,.88); background: rgba(7,11,25,.42);
  cursor: pointer; font-size: 9px; letter-spacing: .02em; transition: color .18s, background .18s, border-color .18s;
}
.subject-button::before { content: ""; flex: 0 0 auto; width: 5px; height: 5px; margin-right: 5px; border-radius: 50%; background: var(--subject-color, #9fb5e7); box-shadow: 0 0 9px var(--subject-color, #9fb5e7); }
.subject-button span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.subject-button:hover, .subject-button:focus-visible, .subject-button.active { color: var(--ink); border-color: rgba(255,255,255,.15); background: rgba(12,17,38,.8); }
.subject-button.active::after { content: ""; position: absolute; right: 3px; top: 4px; width: 2px; height: 17px; background: var(--subject-color); box-shadow: 0 0 10px var(--subject-color); }

.cosmos-mount { transition: opacity .28s, filter .28s; }
.cosmos-mount.structure-muted { opacity: .3; filter: saturate(.72) brightness(.72); }
.concept-layers {
  position: absolute; z-index: 10;
  inset: 106px var(--inspector-clear-right,28px) var(--inspector-clear-bottom,28px) var(--inspector-clear-left,calc(var(--left-rail-w) + 86px));
  min-width: 0; pointer-events: none;
}
.concept-layers[hidden] { display: none; }
.concept-layers::before {
  content: ""; position: absolute; inset: 8% 5%; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(118,223,255,.09), rgba(35,52,107,.035) 42%, transparent 72%);
  filter: blur(12px);
}
.ontology-breadcrumb {
  position: absolute; z-index: 3; top: 0; left: 50%; display: flex; align-items: center; max-width: 92%;
  padding: 5px 8px; border: 1px solid rgba(198,210,244,.13); border-radius: 999px;
  background: rgba(4,7,18,.62); transform: translateX(-50%); backdrop-filter: blur(12px); pointer-events: auto;
  overflow-x: auto; scrollbar-width: none; white-space: nowrap;
}
.ontology-breadcrumb::-webkit-scrollbar { display: none; }
.ontology-breadcrumb button { padding: 3px 7px; border: 0; color: rgba(196,209,238,.72); background: transparent; cursor: pointer; font-size: 9px; }
.ontology-breadcrumb button:hover, .ontology-breadcrumb button[aria-current="page"] { color: #f2cd7c; }
.ontology-breadcrumb span { color: rgba(170,184,217,.36); font-size: 9px; }
.ontology-stage { position: absolute; inset: 34px 0 0; }
.ontology-edges { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ontology-edges line { vector-effect: non-scaling-stroke; stroke: rgba(118,223,255,.27); stroke-width: .7; }
.ontology-center, .ontology-star {
  position: absolute; z-index: 2; border: 1px solid rgba(198,210,244,.2); color: var(--ink);
  background: rgba(5,9,24,.84); box-shadow: 0 18px 50px rgba(0,0,0,.34), inset 0 0 24px rgba(118,223,255,.035);
  backdrop-filter: blur(14px); cursor: pointer; pointer-events: auto;
}
.ontology-center { left: 50%; top: 50%; width: min(190px, 27%); min-height: 82px; padding: 14px; border-radius: 50%; transform: translate(-50%,-50%); }
.ontology-center::before {
  content: ""; position: absolute; inset: -13px; border: 1px solid rgba(231,189,97,.17); border-radius: 50%;
  box-shadow: 0 0 38px rgba(231,189,97,.1); animation: ontology-orbit 12s linear infinite; pointer-events: none;
}
.ontology-search-center { cursor: default; }
@keyframes ontology-orbit { to { transform: rotate(360deg); } }
.ontology-center i, .ontology-star i { display: block; width: 7px; height: 7px; margin: 0 auto 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 16px var(--gold); }
.ontology-center b, .ontology-star b { display: block; font: 600 13px/1.35 var(--serif); text-wrap: balance; }
.ontology-center small, .ontology-star small { display: block; margin-top: 5px; color: #b4c3e4; font-size: 8px; line-height: 1.35; }
.ontology-star {
  left: var(--star-x); top: var(--star-y); width: clamp(88px, 12vw, 132px); min-height: 58px; padding: 9px 8px;
  border-radius: 15px; transform: translate(-50%,-50%); animation: ontology-star-in .34s var(--star-delay) both;
}
@keyframes ontology-star-in { from { opacity: 0; transform: translate(-50%,-50%) scale(.74); } }
.ontology-star i { width: 5px; height: 5px; margin-bottom: 5px; background: var(--cyan); box-shadow: 0 0 13px var(--cyan); }
.ontology-star:hover, .ontology-star:focus-visible, .ontology-center:hover, .ontology-center:focus-visible { border-color: rgba(231,189,97,.65); background: rgba(10,16,38,.96); outline: 0; }
.ontology-star.inferred { border-color: rgba(231,189,97,.48); }
.ontology-star.inferred i { background: transparent; border: 1px solid var(--gold); box-shadow: none; }
.ontology-leaf { position: absolute; left: 50%; top: calc(50% + 68px); width: 240px; margin: 0; color: #bbc7e2; transform: translateX(-50%); text-align: center; font-size: 10px; line-height: 1.6; }
.ontology-empty {
  position: absolute; left: 50%; top: 48%; display: grid; gap: 8px; width: min(420px, 78%); padding: 20px;
  border: 1px solid rgba(198,210,244,.18); border-radius: 18px; color: var(--ink); background: rgba(5,9,23,.84);
  transform: translate(-50%,-50%); text-align: center; pointer-events: auto; backdrop-filter: blur(14px);
}
.ontology-empty b { font: 600 17px var(--serif); }
.ontology-empty span { color: #b2c0df; font-size: 10px; line-height: 1.6; }
.ontology-scope-note { display: block; padding: 9px 11px; border-left: 1px solid rgba(231,189,97,.42); color: #c3cee7; font-size: 9px; line-height: 1.6; }
.ontology-relations { margin-top: 16px; padding-top: 13px; border-top: 1px solid var(--faint); }
.ontology-relations h3 { margin: 0 0 8px; font: 600 13px var(--serif); }
.ontology-relations button { display: block; width: 100%; padding: 7px 0; border: 0; color: #e4e9f6; background: transparent; cursor: pointer; text-align: left; font: 11px/1.45 var(--serif); }
.ontology-relations button span { display: inline-block; min-width: 76px; margin-right: 7px; color: var(--gold); font: 8px var(--sans); }

.cosmos-year-control {
  position: absolute; z-index: 11; left: 50%; bottom: 20px; display: grid; grid-template-columns: auto minmax(0,1fr);
  gap: 8px; width: min(940px, calc(100% - 40px)); min-height: var(--chronology-h); padding: 7px 10px;
  border: 1px solid rgba(198,210,244,.13); border-radius: 16px;
  background: rgba(4,7,17,.6); backdrop-filter: blur(16px); transform: translateX(-50%); pointer-events: auto;
}
.chronology-tabs { display: flex; align-items: center; gap: 2px; padding-right: 8px; border-right: 1px solid var(--faint); }
.chronology-tabs button {
  display: inline-flex; align-items: center; gap: 5px; min-height: 30px; padding: 0 9px; border: 0;
  border-radius: 999px; color: rgba(190,201,227,.72); background: transparent; cursor: pointer;
  font: 600 8px var(--serif); white-space: nowrap;
}
.chronology-tabs button[aria-selected="true"] { color: #f2cd7c; background: rgba(231,189,97,.1); }
.chronology-tabs button:focus-visible { outline: 1px solid var(--gold); outline-offset: 2px; }
.chronology-tabs span {
  display: inline-grid; place-items: center; min-width: 16px; height: 16px; padding: 0 4px;
  border-radius: 999px; color: #09101e; background: var(--gold); font: 700 7px var(--sans);
}
.chronology-panel { min-width: 0; }
.chronology-panel[hidden] { display: none; }
.era-buttons { overflow: hidden; }
.era-buttons > div { display: flex; gap: 3px; min-width: 0; overflow-x: auto; pointer-events: auto; scrollbar-width: none; scroll-snap-type: x proximity; }
.era-buttons > div::-webkit-scrollbar { display: none; }
.era-buttons button {
  flex: 1 1 72px; min-width: 68px; min-height: 30px; padding: 3px 4px; border: 0; border-bottom: 1px solid rgba(198,210,244,.16); color: rgba(202,212,237,.82); background: rgba(4,7,17,.2); cursor: pointer;
  font-size: 8px; font-weight: 550; line-height: 1.3; letter-spacing: .01em; text-align: center;
  text-shadow: 0 1px 5px rgba(0,0,0,.95); scroll-snap-align: start;
}
.era-buttons button:hover, .era-buttons button:focus-visible, .era-buttons button.active { color: #f2cd7c; border-bottom-color: var(--gold); background: rgba(231,189,97,.06); }
.year-compare{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"links links" "status years";align-items:center;gap:4px 8px;min-width:0}
.year-compare header{display:flex;align-items:center;gap:5px;min-width:0}
.year-compare header{grid-area:status}
.year-compare header span{white-space:nowrap}
.year-compare header span{min-width:0;margin-right:auto;overflow:hidden;color:rgba(190,201,227,.68);font-size:7px;text-overflow:ellipsis}
.year-compare header button{flex:0 0 auto;min-height:19px;padding:0 6px;border:1px solid rgba(198,210,244,.16);border-radius:999px;color:rgba(222,230,246,.76);background:rgba(255,255,255,.025);cursor:pointer;font-size:7px}
.year-compare header button:hover,.year-compare header button:focus-visible{color:var(--gold);border-color:rgba(231,189,97,.55)}
.year-compare header button:disabled{opacity:.34;cursor:default}
.year-options{grid-area:years;display:flex;gap:3px;min-width:0;overflow-x:auto;scrollbar-width:none}
.year-options::-webkit-scrollbar{display:none}
.year-options button {
  flex:0 0 auto;min-width:35px;min-height:23px;padding:0 5px;border:1px solid rgba(198,210,244,.11);border-radius:7px;
  color:rgba(200,211,236,.7);background:rgba(4,7,17,.24);cursor:pointer;font-size:7px
}
.year-options button:hover,.year-options button:focus-visible{color:#f1d58f;border-color:rgba(231,189,97,.42)}
.year-options button.active{color:#fff0bd;border-color:rgba(231,189,97,.72);background:rgba(231,189,97,.15)}
.year-options button:disabled{opacity:.24}
.concept-year-links {
  grid-area: links; display: flex; align-items: center; gap: 5px; min-width: 0; overflow-x: auto;
  padding-bottom: 5px; border-bottom: 1px solid rgba(198,210,244,.09); scrollbar-width: none;
}
.concept-year-links[hidden] { display: none; }
.concept-year-links::-webkit-scrollbar { display: none; }
.concept-year-links b { flex: 0 0 auto; margin-right: 3px; color: rgba(218,226,244,.72); font: 600 8px var(--serif); }
.concept-year-links button {
  flex: 0 0 auto; min-height: 22px; padding: 0 7px; border: 1px solid rgba(231,189,97,.22);
  border-radius: 999px; color: #efd48e; background: rgba(231,189,97,.055); cursor: pointer; font-size: 8px;
}
.concept-year-links button:hover, .concept-year-links button.active { border-color: rgba(231,189,97,.65); background: rgba(231,189,97,.12); }

.map-key {
  position: relative; display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 7px 10px; padding: 3px 1px;
  color: rgba(211,220,242,.72); font-size: 8px; letter-spacing: .02em; pointer-events: none;
  text-shadow: 0 1px 5px rgba(0,0,0,.95);
}
.map-key span { display: inline-flex; align-items: flex-start; line-height: 1.45; }
.map-key i { width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 10px var(--cyan); }
.map-key .key-evolution { flex: 0 0 auto; margin-top: 3px; background: var(--gold); box-shadow: 0 0 10px var(--gold); }
.map-key .key-discipline { flex: 0 0 auto; margin-top: 3px; border-radius: 1px; background: var(--cyan); box-shadow: 0 0 10px var(--cyan); transform: rotate(45deg); }

.research-dock {
  position: relative; display: grid; flex: 0 0 auto; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3px; width: 100%; padding: 3px;
  border: 1px solid rgba(198,210,244,.13); border-radius: 14px; background: rgba(4,7,17,.68); backdrop-filter: blur(18px); pointer-events: auto;
}
.research-dock a { display: flex; flex-direction: column; justify-content: center; min-height: 48px; padding: 7px; border-radius: 10px; text-decoration: none; transition: background .18s; }
.research-dock a:hover, .research-dock a.active { background: rgba(231,189,97,.09); }
.research-dock b { font: 600 11px var(--serif); letter-spacing: .04em; }
.research-dock small { margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.ocr-layer-status {
  display: grid; gap: 2px; padding: 7px 9px; border: 1px solid rgba(231,189,97,.2); border-radius: 10px;
  color: rgba(226,232,247,.92); background: rgba(21,17,16,.62); text-decoration: none; pointer-events: auto;
  box-shadow: inset 2px 0 rgba(231,189,97,.45);
}
.ocr-layer-status[hidden] { display: none; }
.ocr-layer-status b { color: var(--gold); font: 600 10px var(--serif); letter-spacing: .05em; }
.ocr-layer-status span { font-size: 9px; }
.ocr-layer-status small { color: var(--muted); font-size: 8px; line-height: 1.4; }

.star-inspector {
  --inspector-panel-alpha: .96;
  position: absolute; z-index: 18; top: 104px; width: min(370px, calc(100% - var(--left-rail-w) - 150px));
  max-height: calc(100svh - 260px); padding: 18px; border: 1px solid rgba(231,189,97,.28); border-radius: 18px;
  background: rgba(5,8,18,var(--inspector-panel-alpha)); backdrop-filter: blur(18px) saturate(1.08); overflow: auto;
  box-shadow: 0 22px 64px rgba(0,0,0,.34); animation: inspector-in .28s ease-out both;
}
.star-inspector.dock-right { right: clamp(18px, 3.8vw, 58px); }
.star-inspector.dock-left { left: clamp(18px, 3.8vw, 58px); }
.star-inspector.overlap-softened { --inspector-panel-alpha: .9; }
.star-inspector[hidden] { display: none; }
@keyframes inspector-in { from { opacity: 0; transform: translateY(10px); } }
.inspector-close { float: right; width: 30px; height: 30px; margin: -8px 0 0 12px; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 22px; }
.inspector-expand { display: none; }
.star-inspector time, .inspector-kicker { color: var(--gold); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.star-inspector h2 { margin: 9px 0 12px; font: 600 24px/1.24 var(--serif); }
.star-inspector p { margin: 9px 0; color: var(--muted); font-size: 12px; line-height: 1.75; }
.inspector-meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0; }
.inspector-meta span, .evidence-tag { padding: 4px 8px; border: 1px solid var(--line); border-radius: 999px; color: rgba(218,225,244,.8); font-size: 9px; }
.inspector-insights { margin: 18px 0 0; padding: 15px 0 0; border-top: 1px solid var(--faint); }
.inspector-insights h3 { margin: 0 0 10px; font: 600 13px var(--serif); }
.inspector-insights article { margin: 12px 0; }
.inspector-insights b { display: block; font: 600 12px/1.5 var(--serif); }
.inspector-insights small { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.concept-evidence { padding: 12px 0; border-top: 1px solid var(--faint); }
.concept-evidence:first-of-type { border-top: 0; }
.concept-evidence a, .concept-evidence b { color: var(--ink); text-decoration: none; font: 600 12px/1.5 var(--serif); }
.concept-evidence a:hover { color: var(--gold); }
.concept-evidence p { margin: 7px 0 0; color: rgba(196,205,228,.72); font-size: 10px; line-height: 1.65; }
.concept-evidence.candidate { padding-left: 10px; border-left: 1px solid rgba(231,189,97,.42); }
.evolution-chain-summary { margin: 16px 0 2px; padding: 14px; border: 1px solid rgba(118,223,255,.2); border-radius: 14px; background: rgba(12,22,43,.62); }
.evolution-chain-summary .evolution-chain-kicker { margin: 0 0 5px; color: var(--cyan); font-size: 9px; font-weight: 750; letter-spacing: .08em; }
.evolution-chain-summary h3 { margin: 0; font: 600 16px/1.35 var(--serif); }
.evolution-chain-summary > p { margin: 5px 0 9px; font-size: 10px; line-height: 1.55; }
.evolution-chain-summary > small { display: block; margin-top: 10px; color: rgba(190,203,232,.68); font-size: 8px; line-height: 1.55; }
.evolution-concept-list { display: flex; flex-wrap: wrap; gap: 5px; }
.evolution-concept-list span { display: grid; gap: 2px; padding: 5px 7px; border: 1px solid rgba(198,210,244,.15); border-radius: 8px; color: rgba(230,236,249,.82); font: 600 10px var(--serif); }
.evolution-concept-list span.current { border-color: rgba(231,189,97,.62); color: #f3d995; background: rgba(231,189,97,.08); }
.evolution-concept-list small { color: rgba(174,190,220,.66); font: 7px var(--sans); }
.discipline-relation-summary { margin: 10px 0 2px; padding: 14px; border: 1px solid rgba(118,223,255,.27); border-radius: 14px; background: rgba(7,27,39,.62); }
.discipline-relation-summary .discipline-relation-kicker { margin: 0 0 5px; color: var(--cyan); font-size: 9px; font-weight: 750; letter-spacing: .08em; }
.discipline-relation-summary h3 { margin: 0 0 9px; font: 600 15px/1.35 var(--serif); }
.discipline-relation-summary div { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 6px; padding: 7px 0; border-top: 1px solid rgba(118,223,255,.12); }
.discipline-relation-summary div b { font: 600 10px/1.35 var(--serif); }
.discipline-relation-summary div span { color: var(--cyan); font-size: 8px; white-space: nowrap; }
.discipline-relation-summary div small { grid-column: 1 / -1; color: rgba(190,208,230,.7); font-size: 8px; line-height: 1.5; }
.inspector-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.action-button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 0 13px; border: 1px solid var(--line);
  border-radius: 999px; color: var(--ink); background: rgba(255,255,255,.035); text-decoration: none; cursor: pointer; font-size: 11px;
}
.action-button.primary { color: #080a12; background: var(--gold); border-color: var(--gold); font-weight: 700; }
.action-button:hover { border-color: rgba(231,189,97,.62); }

.atlas-tooltip {
  position: fixed; z-index: 70; width: min(310px, calc(100vw - 28px)); padding: 13px 15px; border: 1px solid var(--line);
  border-radius: 12px; color: var(--ink); background: rgba(5,8,18,.94); pointer-events: none; backdrop-filter: blur(18px);
  box-shadow: 0 18px 56px rgba(0,0,0,.42);
}
.atlas-tooltip[hidden] { display: none; }
.atlas-tooltip b { display: block; font: 600 15px/1.35 var(--serif); }
.atlas-tooltip span { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; line-height: 1.55; }

.scrim { position: fixed; z-index: 79; inset: 0; background: rgba(1,3,10,.58); backdrop-filter: blur(2px); }
.scrim[hidden] { display: none; }
.workbench {
  position: fixed; z-index: 80; left: 0; right: 0; bottom: 0; width: 100%; min-width: 0; max-width: 100vw;
  height: min(72svh, 780px); padding: 0 clamp(18px, 4vw, 64px) max(18px, env(safe-area-inset-bottom));
  border-top: 1px solid rgba(231,189,97,.3); border-radius: 26px 26px 0 0; color: #182031; background: #f4f0e6;
  box-shadow: 0 -32px 90px rgba(0,0,0,.55); overflow: hidden; animation: workbench-in .34s cubic-bezier(.2,.8,.2,1) both;
}
.workbench[hidden] { display: none; }
@keyframes workbench-in { from { transform: translateY(100%); } }
.workbench-handle { width: 48px; height: 4px; margin: 10px auto 0; border-radius: 999px; background: rgba(22,30,46,.22); }
.workbench-header { height: 90px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(31,40,57,.14); }
.workbench-header p { margin: 0 0 5px; color: #936b18; font-size: 9px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.workbench-header h1 { margin: 0; font: 600 clamp(24px, 3vw, 34px)/1 var(--serif); }
.workbench-close { color: #263047; background: transparent; border-color: rgba(38,48,71,.22); backdrop-filter: none; font-size: 24px; }
.workbench-tabs { display: flex; gap: 26px; height: 48px; align-items: end; border-bottom: 1px solid rgba(31,40,57,.14); }
.workbench-tabs button { height: 48px; padding: 0 1px; border: 0; border-bottom: 2px solid transparent; color: #758096; background: transparent; cursor: pointer; font-size: 12px; }
.workbench-tabs button.active { color: #121827; border-bottom-color: #a47b28; font-weight: 700; }
.workbench-body {
  width: 100%; min-width: 0; max-width: 100%; height: calc(100% - 152px); padding: 24px 0 36px;
  overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
}

.workspace-grid {
  display: grid; width: 100%; min-width: 0; max-width: 100%;
  grid-template-columns: minmax(230px,.72fr) minmax(0,1.8fr); gap: clamp(28px,5vw,78px);
}
.workspace-grid > *, .reader-grid > *, .ai-grid > * { min-width: 0; max-width: 100%; }
.workspace-aside { position: sticky; top: 0; align-self: start; }
.workspace-main { min-width: 0; max-width: 100%; }
.workspace-aside h2, .workspace-main h2 { margin: 0 0 12px; font: 600 20px var(--serif); }
.workspace-aside p, .workspace-main p { color: #667086; line-height: 1.7; }
.work-form { display: grid; gap: 10px; }
.work-form label { color: #667086; font-size: 10px; font-weight: 700; letter-spacing: .06em; }
.work-form input, .work-form select, .work-form textarea {
  width: 100%; padding: 11px 13px; border: 1px solid rgba(38,48,71,.22); border-radius: 9px; outline: 0;
  color: #171e2e; background: rgba(255,255,255,.55);
}
.work-form input:focus, .work-form select:focus, .work-form textarea:focus { border-color: #a47b28; box-shadow: 0 0 0 3px rgba(164,123,40,.09); }
.work-form-row { display: grid; grid-template-columns: 1fr auto; gap: 9px; }
.work-button { min-height: 40px; padding: 0 16px; border: 0; border-radius: 999px; color: white; background: #161e30; cursor: pointer; font-weight: 700; }
.work-button.secondary { color: #182031; background: transparent; border: 1px solid rgba(38,48,71,.22); }
.work-button:disabled { opacity: .48; cursor: wait; }

.version-river {
  display: grid; width: 100%; min-width: 0; max-width: 100%; grid-auto-flow: column; grid-auto-columns: minmax(220px,1fr);
  overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; border-top: 1px solid rgba(38,48,71,.18);
}
.version-entry { position: relative; min-height: 240px; padding: 25px 24px 24px 0; border-right: 1px solid rgba(38,48,71,.13); }
.version-entry + .version-entry { padding-left: 24px; }
.version-entry time { color: #a07420; font: 700 12px var(--serif); }
.version-entry h3 { margin: 11px 0 9px; font: 600 17px/1.4 var(--serif); }
.version-entry p { margin: 0; color: #69738a; font-size: 11px; }
.version-entry a { position: absolute; bottom: 20px; color: #255d73; font-size: 11px; font-weight: 700; }
.insight-line { margin: 22px 0 0; padding: 17px 0; border-top: 1px solid rgba(38,48,71,.14); }
.insight-line time { color: #a07420; font-size: 10px; font-weight: 700; }
.insight-line h3 { margin: 7px 0 6px; font: 600 16px var(--serif); }
.insight-line p { margin: 0; font-size: 12px; }

.result-list, .comment-list, .citation-list { display: grid; }
.result-row, .comment-row, .citation-row { padding: 17px 0; border-top: 1px solid rgba(38,48,71,.14); }
.result-row:first-child, .comment-row:first-child, .citation-row:first-child { border-top: 0; }
.result-row a, .comment-row h3 { color: #172033; text-decoration: none; font: 600 16px var(--serif); }
.result-row small, .comment-row header, .citation-row small { display: block; margin-top: 5px; color: #798399; font-size: 10px; }
.result-row p, .comment-row p, .citation-row p { margin: 8px 0 0; color: #5d687e; font-size: 12px; line-height: 1.7; }
.result-row mark { color: inherit; background: rgba(231,189,97,.42); }
.ocr-data-summary { margin: 0 0 24px; padding: 14px 16px; border: 1px solid rgba(164,123,40,.22); border-radius: 12px; background: rgba(231,189,97,.07); }
.ocr-data-summary p { margin: 0; color: #59647a; font-size: 11px; line-height: 1.7; }
.ocr-data-summary p + p { margin-top: 5px; }
.ocr-data-summary b { margin-right: 10px; color: #7d5c1a; font: 600 14px var(--serif); }
.ocr-data-summary span { color: #374158; font-weight: 700; }
.candidate-boundary { color: #76541c; font-size: 11px; line-height: 1.7; }
.reader-candidate-boundary { margin: 18px 0 9px; padding: 13px 15px; border-left: 3px solid #b88b37; background: rgba(231,189,97,.08); }
.reader-candidate-boundary p { margin: 5px 0 0; }
.result-row.ocr-candidate-row { padding-left: 12px; border-left: 2px solid rgba(164,123,40,.35); }
.empty-state { padding: 38px 0; color: #7c869a; border-top: 1px solid rgba(38,48,71,.14); font-size: 12px; }

.reader-grid { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 50px; align-items: start; }
.reader-document h2 { margin: 0 0 7px; font: 600 clamp(24px,3vw,38px)/1.3 var(--serif); }
.reader-document > p { margin: 0 0 24px; color: #6d778c; }
.paragraph { position: relative; padding: 15px 0 15px 62px; border-top: 1px solid rgba(38,48,71,.13); font: 16px/1.95 var(--serif); }
.paragraph-number { position: absolute; left: 0; top: 19px; width: 48px; color: #9a7a3c; font: 9px/1.45 var(--sans); }
.paragraph.uncertain { border-left: 2px solid #ad682e; padding-left: 68px; }
.paragraph.ocr-candidate { border-left: 2px solid rgba(164,123,40,.34); background: linear-gradient(90deg, rgba(231,189,97,.06), transparent 34%); }
.paragraph.ocr-candidate > div { white-space: pre-wrap; }
.uncertainty-note { display: block; margin-top: 7px; color: #93491d; font: 10px/1.5 var(--sans); }
.reader-facts { position: sticky; top: 0; padding-left: 20px; border-left: 1px solid rgba(38,48,71,.18); }
.reader-facts h3 { margin: 0 0 12px; font: 600 16px var(--serif); }
.reader-facts p { color: #687289; font-size: 11px; line-height: 1.7; }
.verification-row { padding: 14px 0; border-top: 1px solid rgba(38,48,71,.14); }
.verification-row b { font: 600 13px var(--serif); }
.verification-row a { color: #255d73; }
.century-workspace { grid-template-columns: minmax(250px,.72fr) minmax(0,1.8fr); }
.century-era-list { margin: 0 0 34px; }
.century-era-list > header { display: grid; grid-template-columns: 90px 1fr auto; align-items: end; gap: 12px; padding-bottom: 11px; border-bottom: 1px solid rgba(38,48,71,.18); }
.century-era-list > header p { margin: 0; color: #a07420; font: 700 11px var(--serif); }
.century-era-list > header h2 { margin: 0; }
.century-era-list > header span { color: #7b8598; font-size: 10px; }
.century-result-list { display: grid; }
.century-result-row { display: grid; grid-template-columns: 58px minmax(0,1fr); gap: 16px; padding: 15px 0; border-bottom: 1px solid rgba(38,48,71,.1); }
.century-result-row time { color: #a07420; font: 700 12px var(--serif); }
.century-result-row a { color: #182031; text-decoration: none; font: 600 15px/1.45 var(--serif); }
.century-result-row a:hover { color: #876313; }
.century-result-row small { display: block; margin-top: 5px; color: #7b8598; font-size: 9px; }
.century-result-row p { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0 0; }
.century-result-row p span { padding: 3px 6px; border: 1px solid rgba(164,123,40,.18); border-radius: 999px; color: #765a25; font-size: 8px; }
.century-document-kicker { color: #a07420 !important; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.century-segments { margin: 0 0 30px; padding: 0; list-style: none; }
.century-segments li { padding: 13px 0; border-top: 1px solid rgba(38,48,71,.13); }
.century-segments a { color: #255d73; text-decoration: none; font: 600 12px/1.6 var(--serif); }
.century-segments a:hover { color: #7b5a19; }
.century-concepts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.century-concept-candidate { padding: 13px 14px; border: 1px solid rgba(164,123,40,.32); border-radius: 10px; background: rgba(231,189,97,.055); }
.century-concept-candidate h3 { margin: 0; font: 600 14px var(--serif); }
.century-concept-candidate p { margin: 6px 0 4px; color: #626d83; font-size: 10px; line-height: 1.55; }
.century-concept-candidate small { color: #8e6e31; font-size: 9px; }
.century-reader .reader-facts h3:not(:first-child) { margin-top: 25px; }
.century-relation-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.century-relation-list li { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 7px; font-size: 9px; }
.century-relation-list b { font: 600 10px/1.3 var(--serif); }
.century-relation-list span { color: #957126; font-size: 8px; }
.historical-reader-access { margin: 0 0 34px; border-top: 1px solid rgba(38,48,71,.14); }
.historical-reader-gate { padding: 22px 0 25px; }
.historical-reader-gate h2 { margin-bottom: 8px; font-size: 24px; }
.historical-reader-gate p:not(.century-document-kicker) { max-width: 720px; color: #667086; font-size: 11px; line-height: 1.75; }
.historical-reader-gate .work-button { display: inline-flex; align-items: center; margin-top: 8px; text-decoration: none; }
.historical-reader-shell { padding: 22px 0 28px; }
.historical-reader-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.historical-reader-heading h2 { margin-bottom: 0; font-size: clamp(22px,2.5vw,32px); }
.historical-reader-heading span { flex: 0 0 auto; padding: 5px 8px; border: 1px solid rgba(164,123,40,.25); border-radius: 999px; color: #76541c; font-size: 8px; font-weight: 700; }
.historical-page-nav { display: flex; gap: 5px; margin: 15px 0 9px; padding-bottom: 4px; overflow-x: auto; }
.historical-page-nav button { flex: 0 0 auto; min-height: 28px; padding: 0 9px; border: 1px solid rgba(38,48,71,.2); border-radius: 999px; color: #566176; background: rgba(255,255,255,.4); cursor: pointer; font-size: 8px; }
.historical-page-nav button.active { color: #fff; border-color: #182031; background: #182031; }
.historical-reader-shell iframe { display: block; width: 100%; height: min(56svh,620px); border: 1px solid rgba(38,48,71,.2); border-radius: 12px; background: #d8d8d8; }
.historical-text-pages { margin-top: 22px; }
.historical-text-pages h3 { margin: 0 0 8px; font: 600 18px var(--serif); }
.historical-text-page { border-top: 1px solid rgba(38,48,71,.14); }
.historical-text-page summary { padding: 12px 0; color: #3f4b61; cursor: pointer; font-size: 10px; font-weight: 700; }
.historical-text-page pre { max-height: 380px; margin: 0 0 16px; padding: 14px; overflow: auto; border-left: 2px solid rgba(164,123,40,.38); color: #273247; background: rgba(231,189,97,.06); white-space: pre-wrap; overflow-wrap: anywhere; font: 13px/1.8 var(--serif); }

.ai-grid { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); gap: 42px; }
.ai-answer { min-height: 210px; white-space: pre-wrap; color: #303a50; font: 15px/1.8 var(--serif); }
.login-note { padding: 28px 0; border-top: 1px solid rgba(38,48,71,.15); }
.login-note h2 { font: 600 21px var(--serif); }
.login-note a { display: inline-flex; margin-top: 10px; }
.turnstile-slot { min-height: 70px; }

.toast { position: fixed; z-index: 150; left: 50%; bottom: 92px; max-width: min(460px, calc(100% - 28px)); padding: 11px 16px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: rgba(6,9,21,.94); transform: translate(-50%,20px); opacity: 0; pointer-events: none; transition: .22s; }
.toast.show { opacity: 1; transform: translate(-50%,0); }

@media (max-width: 980px) {
  :root { --header-h: 68px; --left-rail-w: 140px; }
  .map-control-column { top: 78px; bottom: 16px; }
  .map-control-column { left: 14px; }
  .map-tools-toggle { left: 14px; top: 78px; }
  .control-section-title { gap: 4px; }
  .mode-switch button { padding-inline: 3px; font-size: 8px; }
  .subject-button { min-height: 27px; padding-inline: 7px 9px; font-size: 10px; }
  .concept-layers { inset: 94px var(--inspector-clear-right,18px) var(--inspector-clear-bottom,18px) var(--inspector-clear-left,158px); }
  .map-key { display: none; }
  .research-dock small { font-size: 8px; }
  .star-inspector { top: 92px; right: 18px; width: min(350px, calc(100% - 190px)); max-height: calc(100svh - 238px); }
  .workspace-grid, .reader-grid, .ai-grid { grid-template-columns: minmax(0,1fr); }
  .workspace-aside, .reader-facts { position: static; }
  .reader-facts { padding-left: 0; border-left: 0; border-top: 1px solid rgba(38,48,71,.16); padding-top: 20px; }
  .historical-reader-shell iframe { height: 48svh; }
}

@media (max-width: 640px) {
  :root { --left-rail-w: 104px; --mobile-dock-clearance: 142px; --chronology-h: 48px; }
  .cosmos-stage { min-height: 520px; }
  .site-header { padding-inline: 12px; }
  .brand-seal { width: 38px; height: 38px; }
  .brand b { font-size: 15px; }
  .brand small { font-size: 8px; }
  .theme-switch button { min-height: 27px; padding-inline: 7px; font-size: 8px; }
  .theme-switch button span { display: none; }
  .historical-reader-heading { align-items: start; flex-direction: column; gap: 8px; }
  .historical-reader-shell iframe { height: 42svh; min-height: 320px; }
  .map-control-column { top: 68px; bottom: max(8px, env(safe-area-inset-bottom)); }
  .map-control-column { left: 7px; }
  .map-tools-toggle { left: 7px; top: 68px; min-height: 31px; padding-inline: 9px; }
  .map-tools-toggle[aria-expanded="true"] { transform: translateX(calc(var(--left-rail-w) + 5px)); }
  .control-section-title { grid-template-columns: minmax(0,1fr) auto; }
  .control-section-title span { display: none; }
  .search-orbit { height: 35px; padding-inline: 7px; }
  .search-orbit > span { margin-right: 4px; font-size: 16px; }
  .search-orbit input { font-size: 9px; }
  .search-orbit button { width: 20px; font-size: 16px; }
  .concept-results { flex-basis: 168px; min-height: 76px; }
  #concept-result-list button { min-height: 35px; padding: 5px 6px; }
  #concept-result-list button em { display: none; }
  .mode-switch button { min-height: 27px; padding-inline: 5px; font-size: 8px; }
  .subject-orbit { gap: 2px; padding-right: 2px; }
  .subject-button { min-height: 22px; padding-inline: 5px 7px; font-size: 8px; background: rgba(6,9,21,.34); }
  .concept-layers { inset: 78px var(--inspector-clear-right,8px) var(--inspector-clear-bottom,10px) var(--inspector-clear-left,116px); }
  .ontology-breadcrumb { max-width: 96%; }
  .ontology-stage { top: 31px; }
  .ontology-center { width: 132px; min-height: 70px; padding: 10px; }
  .ontology-star { width: 90px; min-height: 50px; padding: 7px 5px; border-radius: 12px; }
  .ontology-center b, .ontology-star b { font-size: 10px; }
  .ontology-center small, .ontology-star small { font-size: 7px; }
  .ontology-stage.dense {
    display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: start; gap: 7px;
    padding: 4px 3px 10px; overflow-y: auto; scrollbar-width: none; pointer-events: auto;
  }
  .ontology-stage.dense::-webkit-scrollbar { display: none; }
  .ontology-stage.dense .ontology-edges { display: none; }
  .ontology-stage.dense .ontology-center {
    position: relative; left: auto; top: auto; grid-column: 1 / -1; width: min(190px,78%); min-height: 58px;
    margin: 3px auto 7px; border-radius: 22px; transform: none;
  }
  .ontology-stage.dense .ontology-center::before { inset: -7px; }
  .ontology-stage.dense .ontology-star {
    position: relative; left: auto; top: auto; width: 100%; min-height: 52px; transform: none;
  }
  .cosmos-year-control {
    bottom: calc(74px + env(safe-area-inset-bottom)); grid-template-columns: auto minmax(0,1fr); gap: 5px;
    width: calc(100% - 14px); padding: 5px 7px; border-radius: 13px;
  }
  .chronology-tabs { gap: 1px; padding-right: 5px; }
  .chronology-tabs button { min-height: 26px; padding-inline: 6px; font-size: 7px; }
  .chronology-tabs span { min-width: 14px; height: 14px; }
  .era-buttons > div { gap: 1px; }
  .era-buttons button { flex: 0 0 86px; min-width: 0; min-height: 24px; padding: 3px 4px; font-size: 7px; }
  .year-compare{grid-template-columns:minmax(88px,.48fr) minmax(0,1fr);width:100%;min-width:0}
  .year-compare header b,.year-compare header span{font-size:7px}
  .year-options button{min-width:34px;min-height:21px;font-size:7px}
  .year-compare:has(.concept-year-links:not([hidden])) .year-options{display:none}
  .year-compare:has(.concept-year-links:not([hidden])) .concept-year-links{
    grid-area:years;padding:0;border:0
  }
  .year-compare:has(.concept-year-links:not([hidden])) .concept-year-links b{display:none}
  .star-inspector {
    inset: auto 9px calc(var(--mobile-dock-clearance) + env(safe-area-inset-bottom)) 9px; width: auto;
    max-height: 112px;
    padding: 14px; border: 1px solid rgba(231,189,97,.28); border-radius: 15px;
    --inspector-panel-alpha: .96; overflow: hidden; overscroll-behavior: contain;
  }
  .star-inspector.is-expanded{max-height:min(36svh,calc(100svh - var(--header-h) - var(--mobile-dock-clearance) - 24px));overflow-y:auto}
  .star-inspector.dock-left, .star-inspector.dock-right { left: 9px; right: 9px; }
  .star-inspector h2 { margin: 5px 0 4px; padding-right: 66px; overflow: hidden; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }
  .star-inspector:not(.is-expanded)>:is(.inspector-meta,.inspector-insights,.inspector-actions,.evolution-chain-summary,.discipline-relation-summary,.ontology-scope-note,.ontology-relations,small){display:none}
  .star-inspector:not(.is-expanded)>p:not(.inspector-kicker){display:-webkit-box;margin:3px 0 0;overflow:hidden;font-size:10px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .star-inspector .inspector-kicker{margin:0;padding-right:76px;overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
  .inspector-close{position:absolute;top:10px;right:8px;float:none;margin:0}
  .inspector-expand{position:absolute;top:13px;right:40px;display:inline-flex;align-items:center;min-height:24px;padding:0 7px;border:1px solid rgba(231,189,97,.32);border-radius:999px;color:#efd48e;background:rgba(231,189,97,.07);cursor:pointer;font-size:7px}
  .research-dock { gap: 1px; padding: 2px; border-radius: 11px; }
  .research-dock a { min-height: 40px; padding: 5px; border-radius: 8px; }
  .research-dock b { font-size: 9px; line-height: 1.35; }
  .research-dock small { display: none; }
  .ocr-layer-status { display: none; }
  .discipline-lifecycle { max-height: 126px; padding: 5px; }
  .discipline-lifecycle header span { display: none; }
  .discipline-event { grid-template-columns: 26px minmax(0,1fr); padding: 4px; }
  .discipline-lineage { padding: 4px 5px; }
  .workbench { height: 82svh; padding-inline: 16px; border-radius: 20px 20px 0 0; }
  .workbench-header { height: 76px; }
  .workbench-header h1 { font-size: 23px; }
  .workbench-tabs { gap: 20px; }
  .workbench-body {
    height: calc(100% - 138px); padding: 18px 0 calc(var(--mobile-dock-clearance) + 24px);
    scroll-padding-bottom: calc(var(--mobile-dock-clearance) + 24px);
  }
  body:has(.workbench:not([hidden])) .map-control-column { z-index: 82; }
  body:has(.workbench:not([hidden])) .map-tools-toggle,
  body:has(.workbench:not([hidden])) .cosmos-year-control { visibility: hidden; pointer-events: none; }
  body:has(.workbench:not([hidden])) .map-control-column .subject-cluster,
  body:has(.workbench:not([hidden])) .map-control-column .search-orbit,
  body:has(.workbench:not([hidden])) .map-control-column .mode-switch,
  body:has(.workbench:not([hidden])) .map-control-column .map-key,
  body:has(.workbench:not([hidden])) .map-control-column .ocr-layer-status { visibility: hidden; pointer-events: none; }
  body:has(.workbench:not([hidden])) .research-dock { box-shadow: 0 14px 38px rgba(0,0,0,.34); }
  .work-form-row { grid-template-columns: 1fr; }
  .reader-grid { gap: 30px; }
  .century-concepts { grid-template-columns: minmax(0,1fr); }
  .paragraph { padding-left: 44px; font-size: 15px; }
  .paragraph-number { width: 36px; }
  .ai-grid { gap: 26px; }
}

[data-theme="light"] {
  color-scheme: light;
  --void: #edf1ee;
  --night: #f7f8f4;
  --night-2: #e6ebe8;
  --ink: #16213a;
  --muted: #4f5e75;
  --faint: rgba(30,49,74,.12);
  --line: rgba(30,49,74,.2);
  --gold: #8a5a12;
  --gold-soft: rgba(138,90,18,.12);
  --cyan: #056b86;
  --panel: rgba(250,251,247,.88);
}
[data-theme="light"] .site-header {
  background: linear-gradient(180deg, rgba(237,241,238,.96), rgba(237,241,238,0));
}
[data-theme="light"] .cosmos-stage { background: var(--void); }
[data-theme="light"] .cosmos-stage::after {
  background:
    linear-gradient(90deg, rgba(62,78,92,.1), transparent 18%, transparent 79%, rgba(62,78,92,.08)),
    linear-gradient(180deg, rgba(237,241,238,.12), transparent 30%, transparent 68%, rgba(224,230,226,.45));
}
[data-theme="light"] .brand-seal { border-color: rgba(138,90,18,.34); box-shadow: 0 0 24px rgba(138,90,18,.15); }
[data-theme="light"] .theme-switch,
[data-theme="light"] .map-tools-toggle,
[data-theme="light"] .subject-cluster,
[data-theme="light"] .search-orbit,
[data-theme="light"] .concept-results,
[data-theme="light"] .mode-switch,
[data-theme="light"] .discipline-lifecycle,
[data-theme="light"] .research-dock,
[data-theme="light"] .cosmos-year-control,
[data-theme="light"] .ontology-breadcrumb,
[data-theme="light"] .ontology-center,
[data-theme="light"] .ontology-star,
[data-theme="light"] .ontology-empty {
  border-color: rgba(30,49,74,.2); color: var(--ink); background: rgba(250,251,247,.88);
  box-shadow: 0 12px 34px rgba(44,60,72,.11);
}
[data-theme="light"] .map-tools-toggle,
[data-theme="light"] .map-tools-toggle:hover,
[data-theme="light"] .map-tools-toggle:focus-visible,
[data-theme="light"] .map-tools-toggle[aria-expanded="true"] { color: #263850; background: rgba(250,251,247,.92); }
[data-theme="light"] .search-orbit input,
[data-theme="light"] .control-section-title b,
[data-theme="light"] .concept-results header b,
[data-theme="light"] .subject-button,
[data-theme="light"] #concept-result-list button,
[data-theme="light"] .discipline-lineage,
[data-theme="light"] .discipline-event,
[data-theme="light"] .research-dock b { color: var(--ink); }
[data-theme="light"] .search-orbit input::placeholder,
[data-theme="light"] .control-section-title,
[data-theme="light"] .concept-results header span,
[data-theme="light"] .discipline-lifecycle header span,
[data-theme="light"] .research-dock small { color: var(--muted); }
[data-theme="light"] .subject-button {
  border-color: rgba(30,49,74,.12); background: rgba(238,242,239,.78);
}
[data-theme="light"] .subject-button:hover,
[data-theme="light"] .subject-button:focus-visible,
[data-theme="light"] .subject-button.active,
[data-theme="light"] .mode-switch button:hover,
[data-theme="light"] .mode-switch button.active { color: #152033; background: rgba(215,222,217,.78); }
[data-theme="light"] .chronology-tabs button { color: #506079; }
[data-theme="light"] .chronology-tabs button[aria-selected="true"] { color: #67420c; background: rgba(138,90,18,.13); }
[data-theme="light"] .era-buttons button {
  border-bottom-color: rgba(30,49,74,.2); color: #35465f; background: rgba(250,251,247,.3); text-shadow: none;
}
[data-theme="light"] .era-buttons button:hover,
[data-theme="light"] .era-buttons button:focus-visible,
[data-theme="light"] .era-buttons button.active { color: #67420c; border-bottom-color: #8a5a12; background: rgba(138,90,18,.1); }
[data-theme="light"] .year-compare header span,
[data-theme="light"] .concept-year-links b { color: #4f5e75; }
[data-theme="light"] .year-compare header button,
[data-theme="light"] .year-options button {
  border-color: rgba(30,49,74,.2); color: #35465f; background: rgba(238,242,239,.72);
}
[data-theme="light"] .year-options button.active,
[data-theme="light"] .concept-year-links button {
  border-color: rgba(138,90,18,.55); color: #67420c; background: rgba(138,90,18,.12);
}
[data-theme="light"] .star-inspector {
  border-color: rgba(138,90,18,.34); color: var(--ink); background: rgba(250,251,247,var(--inspector-panel-alpha));
  box-shadow: 0 22px 64px rgba(44,60,72,.2);
}
[data-theme="light"] .star-inspector p,
[data-theme="light"] .inspector-insights small,
[data-theme="light"] .inspector-close { color: var(--muted); }
[data-theme="light"] .evolution-chain-summary,
[data-theme="light"] .discipline-relation-summary {
  border-color: rgba(5,107,134,.28); color: var(--ink); background: rgba(230,235,232,.94);
}
[data-theme="light"] .evolution-chain-summary > small,
[data-theme="light"] .evolution-concept-list small,
[data-theme="light"] .discipline-relation-summary div small { color: var(--muted); }
[data-theme="light"] .evolution-concept-list span {
  border-color: rgba(30,49,74,.2); color: #27374f; background: rgba(250,251,247,.66);
}
[data-theme="light"] .evolution-concept-list span.current {
  border-color: rgba(138,90,18,.55); color: #67420c; background: rgba(138,90,18,.13);
}
[data-theme="light"] .atlas-tooltip {
  border-color: rgba(30,49,74,.24); color: var(--ink); background: rgba(250,251,247,.96);
  box-shadow: 0 18px 44px rgba(44,60,72,.18);
}
[data-theme="light"] .inspector-meta span,
[data-theme="light"] .evidence-tag { color: #35465f; }
[data-theme="light"] .ocr-layer-status { color: #27374f; background: rgba(248,244,233,.9); }
[data-theme="light"] .map-key { color: #3d4e66; text-shadow: none; }
[data-theme="light"] .toast { color: var(--ink); background: rgba(250,251,247,.96); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}

@media print {
  html, body { overflow: visible; color: #111; background: white; }
  .site-header, .cosmos-stage, .workbench-tabs, .workbench-close { display: none !important; }
  .workbench { position: static; display: block !important; height: auto; padding: 0; box-shadow: none; color: #111; background: white; }
  .workbench-body { height: auto; overflow: visible; }
}
