:root { color-scheme: dark; --field:#080909; --ink:#efe9dc; --quiet:#a9a399; --faint:#5f5d58; --red-deep:#8f2421; --red:#b62f2b; --red-bright:#da3833; --red-light:#ef716a; --edge:rgba(239,233,220,.17); font-family:ui-serif,Georgia,"Times New Roman",serif; }
* { box-sizing:border-box; }
html,body,#app,#map { min-height:100%; height:100%; margin:0; }
body { overflow:hidden; background:var(--field); color:var(--ink); }
button,a { font:inherit; }
button { color:inherit; background:none; border:0; cursor:pointer; }
button:focus-visible,a:focus-visible { outline:1px solid var(--ink); outline-offset:4px; }
.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left { display:none; }
#map,#map.field-cored { position:fixed; z-index:0; inset:0; filter:none; }
.book-entry { position:fixed; z-index:7; inset:0; color:var(--ink); opacity:1; pointer-events:auto; transition:opacity 650ms ease,transform 650ms cubic-bezier(.22,.61,.36,1); }
.book-entry.is-dismissing { opacity:0; pointer-events:none; transform:translateY(-9px); }
.book-entry-dismiss { position:absolute; z-index:1; inset:0; width:100%; height:100%; padding:0; cursor:pointer; }
.book-entry-dismiss:focus-visible { outline:1px solid rgba(239,233,220,.72); outline-offset:-12px; }
.book-entry-copy { position:absolute; z-index:2; top:clamp(360px,60vh,650px); left:clamp(28px,9.6vw,148px); width:min(620px,calc(100vw - 96px)); pointer-events:none; }
.book-entry blockquote { display:inline; margin:0; color:rgba(239,233,220,.9); font-size:clamp(20px,2vw,33px); font-style:italic; font-weight:400; letter-spacing:-.018em; line-height:1.28; text-wrap:balance; }
.book-entry-read { position:relative; z-index:3; display:inline; margin-left:.48em; padding:0; color:var(--red-bright); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; letter-spacing:.14em; line-height:1.3; vertical-align:baseline; pointer-events:auto; }
.book-entry-read:hover,.book-entry-read:focus-visible { color:var(--ink); }
.book-entry-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 30px; margin-top:26px; pointer-events:auto; }
.book-entry-actions button { display:inline-flex; align-items:center; gap:9px; padding:6px 0; color:rgba(239,233,220,.62); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; font-weight:600; letter-spacing:.18em; white-space:nowrap; transition:color 180ms ease; }
.book-entry-actions button:hover,.book-entry-actions button:focus-visible { color:var(--ink); }
.book-entry-actions .book-entry-next { color:var(--red-light); }
.book-entry-next svg { width:35px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-dasharray:1 4; }
.book-entry-enter span { color:var(--red-light); font-size:16px; line-height:0; }
/* The MapLibre field is one stack below the independent deck.gl TimeWell.
   This prevents late-drawn country borders from visually cutting across a
   hovering well, without letting the well obscure its textual interface. */
#core-renderer { position:fixed; z-index:4; isolation:isolate; top:calc(54% + 96px); right:0; width:min(48vw,680px); min-width:420px; height:min(105.6dvh,1104px); opacity:0; pointer-events:none; transform:translateY(-50%); background:transparent; }
#core-renderer.is-preview { opacity:.92; pointer-events:none; }
#core-renderer.is-active { opacity:1; pointer-events:auto; }
#core-renderer canvas { outline:0; cursor:pointer; }
#core-renderer.is-compact { top:auto; right:12px; bottom:-78px; width:228px; min-width:0; height:320px; transform:none; pointer-events:none; }
.timewell-size { position:fixed; z-index:7; right:16px; bottom:22px; display:flex; flex-direction:column; align-items:flex-end; justify-content:space-between; width:220px; height:312px; padding:6px 8px; color:var(--red-light); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.11em; text-align:right; }
.timewell-size[hidden] { display:none; }
.timewell-size:not(.is-compact) { width:auto; height:auto; padding:6px 8px; background:rgba(8,9,9,.6); }
.timewell-size.is-compact { right:13px; bottom:28px; justify-content:flex-end; width:158px; height:200px; padding:4px 3px; }
.timewell-size:hover { color:var(--ink); }
.well-caption { position:fixed; z-index:6; top:calc(54% - min(44dvh, 460px) + 178px); right:clamp(24px,4.5vw,52px); margin:0; padding-left:8px; color:var(--red-bright); border-left:1px solid rgba(218,56,51,.72); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; letter-spacing:.14em; line-height:1.25; text-transform:uppercase; pointer-events:none; transition:opacity 220ms ease; }
.well-caption.is-preview { opacity:.74; }
.masthead { position:fixed; z-index:6; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 24px; pointer-events:none; }
.masthead-left { display:flex; align-items:center; gap:18px; pointer-events:auto; }
.masthead-actions { display:flex; align-items:center; gap:14px; pointer-events:auto; }
.wordmark,.index-toggle,.ground-toggle,.help-toggle,.surface { pointer-events:auto; }
.wordmark { color:var(--ink); font-family:ui-sans-serif,system-ui,sans-serif; font-size:11px; font-weight:600; letter-spacing:.19em; line-height:1; text-decoration:none; }
.index-toggle { padding:0; color:var(--faint); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.16em; line-height:1; }
.index-toggle:hover,.index-toggle[aria-expanded="true"] { color:var(--ink); }
.ground-toggle { display:inline-flex; align-items:center; gap:6px; padding:0; color:var(--faint); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.15em; line-height:1; }
.ground-toggle i { position:relative; display:block; width:10px; height:7px; border:1px solid currentColor; }
.ground-toggle i::after { position:absolute; top:-3px; left:3px; width:8px; height:5px; border:1px solid currentColor; content:""; opacity:.55; }
.ground-toggle:hover,.ground-toggle[aria-expanded="true"] { color:var(--ink); }
.help-toggle { width:25px; height:25px; padding:0; border:1px solid var(--edge); border-radius:50%; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:13px; }
.surface { padding:0; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.14em; line-height:1; }
.surface:hover { color:var(--ink); }
.explore-open .surface { display:none; }
.ground-control { position:fixed; z-index:6; top:63px; right:24px; width:244px; padding:13px 18px; color:var(--ink); background:rgba(8,9,9,.82); -webkit-backdrop-filter:blur(9px) brightness(.7); backdrop-filter:blur(9px) brightness(.7); }
.ground-control::before { position:absolute; top:12px; bottom:12px; left:3px; border-left:1px dashed rgba(218,56,51,.66); content:""; }
.ground-kicker { margin:0 0 7px; color:var(--red-bright); font-family:ui-sans-serif,system-ui,sans-serif; font-size:8px; font-weight:600; letter-spacing:.16em; line-height:1.2; }
.ground-switch { display:flex; justify-content:space-between; gap:7px; }
.ground-switch button { padding:0; color:var(--faint); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.12em; line-height:1.3; }
.ground-switch button[aria-pressed="true"] { color:var(--ink); }
.ground-switch button[aria-pressed="true"]::before { display:inline-block; width:4px; height:4px; margin:0 5px 1px 0; border-radius:50%; background:var(--red-bright); content:""; }
.ground-switch button:hover { color:var(--red-light); }
.ground-veil { display:flex; justify-content:space-between; align-items:baseline; margin-top:15px; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.1em; line-height:1.2; }
.ground-veil output { color:var(--red-light); font-variant-numeric:tabular-nums; }
.ground-opacity { display:block; width:calc(100% - 12px); height:16px; margin:8px 6px 0; padding:0; color:var(--red-bright); background:transparent; -webkit-appearance:none; appearance:none; cursor:pointer; }
.ground-opacity:disabled { cursor:default; opacity:.3; }
.ground-opacity::-webkit-slider-runnable-track { height:2px; border-radius:2px; background:rgba(239,233,220,.42); }
.ground-opacity::-webkit-slider-thumb { width:12px; height:12px; margin-top:-5px; border:0; border-radius:50%; background:var(--red-bright); -webkit-appearance:none; }
.ground-opacity::-moz-range-track { height:2px; border-radius:2px; background:rgba(239,233,220,.42); }
.ground-opacity::-moz-range-thumb { width:12px; height:12px; border:0; border-radius:50%; background:var(--red-bright); }
.satellite-credit { margin:9px 0 0; color:var(--faint); font-family:ui-sans-serif,system-ui,sans-serif; font-size:7px; letter-spacing:.1em; line-height:1.25; }
.depth-indicator { position:fixed; z-index:6; top:72px; left:24px; padding:7px 9px; color:var(--ink); background:rgba(16,17,17,.84); border-left:2px solid var(--red); font-family:ui-sans-serif,system-ui,sans-serif; font-size:11px; letter-spacing:.07em; text-transform:uppercase; }
.field-prompt { position:fixed; z-index:6; left:24px; bottom:24px; width:min(350px,calc(100vw - 48px)); margin:0; color:var(--quiet); font-size:clamp(20px,2.1vw,31px); line-height:1.08; pointer-events:none; }
.field-prompt p { margin:0; }
.field-encounter { position:fixed; z-index:6; width:min(330px,calc(100vw - 60px)); color:var(--ink); pointer-events:none; text-shadow:0 1px 14px #080909; animation:fragment-arrives 320ms ease-out both; }
.field-encounter p { margin:7px 0 0; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; letter-spacing:.08em; line-height:1.35; text-transform:uppercase; }
.field-encounter .field-fragment-quote { margin:0; color:var(--ink); font-family:inherit; font-size:clamp(19px,2vw,28px); font-style:italic; letter-spacing:normal; line-height:1.06; text-transform:none; }
.field-encounter .field-fragment-name { margin:0; color:var(--ink); font-family:inherit; font-size:clamp(20px,2vw,28px); letter-spacing:-.02em; line-height:1.03; text-transform:none; }
.field-fragment-quote,.fragment-quote { display:block; max-width:100%; padding:0; color:var(--ink); font-size:clamp(19px,2vw,28px); font-style:italic; line-height:1.06; text-align:left; }
.fragment-quote,.fragment-name { cursor:zoom-in; }.fragment-quote .quote-text { display:block; }.quote-aperture { display:block; margin-top:10px; color:var(--red-bright); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-style:normal; font-weight:600; letter-spacing:.14em; line-height:1.2; text-transform:uppercase; }.field-fragment-quote:hover,.fragment-quote:hover,.fragment-name:hover { color:#fffaf0; }.fragment-quote:hover .quote-aperture,.fragment-name:hover .quote-aperture { color:var(--ink); }
.field-fragment-path,.fragment-paths button,.lateral-offer { padding:0; color:var(--red-bright); border-bottom:1px solid rgba(218,56,51,.5); font-family:ui-sans-serif,system-ui,sans-serif; font-size:12px; letter-spacing:.05em; line-height:1.5; text-align:left; }
.field-fragment-path { margin-top:10px; }
.encounter { position:fixed; z-index:6; bottom:28px; left:30px; width:min(348px,calc(46vw - 54px)); max-height:min(38dvh,330px); overflow-y:auto; padding:14px 16px 15px; background:rgba(8,9,9,.66); box-shadow:0 8px 26px rgba(0,0,0,.2); scrollbar-width:thin; text-shadow:0 1px 2px rgba(0,0,0,.82); -webkit-backdrop-filter:blur(10px) brightness(.52) saturate(.62); backdrop-filter:blur(10px) brightness(.52) saturate(.62); }
.take-prompt { position:fixed; z-index:6; bottom:30px; left:30px; width:min(310px,calc(100vw - 60px)); margin:0; color:var(--ink); font-family:ui-sans-serif,system-ui,sans-serif; }
.take-prompt p { margin:0 0 8px; color:var(--red-bright); font-size:10px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.take-prompt span { display:block; color:var(--quiet); font-family:ui-serif,Georgia,"Times New Roman",serif; font-size:clamp(20px,2vw,28px); line-height:1.03; }
.eyebrow,.map-year,.journey button,.relation-note,.temporal-nav button,.stray-offer,.drift-offer,summary { font-family:ui-sans-serif,system-ui,sans-serif; font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.eyebrow { margin:0 0 9px; color:var(--red-bright); }
.map-year { margin:0 0 5px; color:var(--quiet); }
.encounter h1 { margin:0; max-width:390px; font-size:clamp(23px,2.3vw,34px); font-weight:400; letter-spacing:-.025em; line-height:.98; }
.encounter .summary { margin:12px 0 0; color:var(--ink); font-size:15px; line-height:1.32; }
.encounter .quotation { margin:15px 0 0; padding-left:12px; border-left:1px solid var(--red); color:var(--quiet); font-size:15px; font-style:italic; line-height:1.27; }
.map-marker { margin:0 0 8px; color:var(--red-bright); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; letter-spacing:.14em; line-height:1.2; text-transform:uppercase; }
.encounter-route { margin:0 0 7px; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; letter-spacing:.09em; line-height:1.25; text-transform:uppercase; }
.fragment-name { display:block; max-width:390px; padding:0; color:var(--ink); font-size:clamp(24px,2.5vw,36px); font-weight:400; letter-spacing:-.03em; line-height:.96; text-align:left; }
.fragment-source { margin:8px 0 0; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; letter-spacing:.08em; line-height:1.35; text-transform:uppercase; }
.fragment-paths { display:flex; flex-wrap:wrap; gap:7px 17px; margin:15px 0 0; }
.fragment-paths button:hover,.field-fragment-path:hover,.lateral-offer:hover { color:var(--ink); border-color:var(--ink); }
.take-map-offer { display:inline-flex; align-items:center; gap:8px; margin-top:17px; padding:5px 7px 5px 6px; color:var(--red-bright); border:1px solid rgba(218,56,51,.52); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.14em; line-height:1.1; text-transform:uppercase; }
.take-map-offer i { display:block; width:9px; height:7px; box-sizing:border-box; border:1px solid currentColor; box-shadow:2px -2px 0 -1px rgba(218,56,51,.52); }
.take-map-offer:hover { color:var(--ink); border-color:var(--ink); }.take-map-offer:hover i { box-shadow:2px -2px 0 -1px rgba(239,233,220,.62); }
.encounter .fragment-quote { font-size:clamp(18px,1.55vw,26px); line-height:1.08; }
.encounter .fragment-quote .quote-text { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:4; }
.encounter .fragment-name { font-size:clamp(20px,1.8vw,28px); line-height:1; }
.encounter .quote-aperture { margin-top:7px; font-size:8px; letter-spacing:.12em; }
.encounter .fragment-source,.encounter .encounter-route,.encounter .data-details,.encounter .temporal-nav { display:none; }
.encounter .fragment-paths { margin-top:12px; }
.encounter .fragment-paths button,.encounter .lateral-offer { font-size:10px; letter-spacing:.08em; }
.encounter .lateral-offer { display:inline-block; margin-top:12px; }
.encounter .take-map-offer { margin-top:12px; }
.concepts { display:flex; flex-wrap:wrap; gap:5px 12px; margin-top:16px; }
.concept-link { padding:0; color:var(--ink); border-bottom:1px solid rgba(239,233,220,.34); font-size:16px; line-height:1.32; text-align:left; }
.concept-link::after { content:" →"; color:var(--red-bright); }
.network-thread { display:flex; flex-wrap:wrap; gap:0; margin:17px 0 0; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:12px; letter-spacing:.03em; line-height:1.45; }
.network-thread button { padding:0; color:var(--ink); border-bottom:1px solid rgba(239,233,220,.38); text-align:left; }
.network-thread button:hover { color:var(--red-bright); }
.temporal-nav { display:flex; gap:13px; margin:18px 0 0; }
.temporal-nav button,.stray-offer,.drift-offer { padding:0; color:var(--quiet); text-align:left; }
.temporal-nav button:hover,.stray-offer:hover,.drift-offer:hover,.concept-link:hover { color:var(--red-bright); }
.sideways { display:grid; gap:8px; margin-top:18px; }
.data-details { margin-top:18px; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:11px; line-height:1.45; }
.data-details summary { cursor:pointer; color:var(--quiet); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }.data-details p { margin:9px 0 0; }.data-details code { overflow-wrap:anywhere; color:var(--faint); }.data-details .evidence { color:var(--quiet); }
.journey { position:fixed; z-index:7; top:72px; left:24px; max-width:min(420px,calc(56vw - 48px)); color:var(--quiet); text-align:left; }.journey>button { padding:0; color:var(--faint); }.journey-content { width:min(395px,calc(56vw - 48px)); margin-top:6px; color:var(--quiet); }.journey-wander { display:flex; flex-wrap:wrap; align-items:baseline; gap:7px 16px; padding:4px 8px 12px 2px; }.journey-item { display:inline-flex; align-items:baseline; gap:7px; max-width:calc(100% - 18px); color:var(--quiet); font-size:14px; font-style:italic; line-height:1.1; opacity:.42; transition:opacity 240ms ease,color 240ms ease; }.journey-item i { display:block; flex:0 0 auto; width:4px; height:4px; border:1px solid currentColor; border-radius:50%; transform:translateY(-1px); }.journey-item--age-0 { color:var(--ink); font-size:16px; opacity:1; }.journey-item--age-0 i { width:6px; height:6px; color:var(--red-bright); background:var(--red-bright); }.journey-item--age-1 { color:#c6bfb4; font-size:14px; opacity:.8; }.journey-item--age-2 { font-size:13px; opacity:.66; }.journey-item--age-3 { font-size:12px; opacity:.53; }.journey-item--age-4 { font-size:11px; opacity:.4; }.journey-item--age-5 { font-size:10px; opacity:.28; }.journey-why { display:block; margin-top:8px; color:var(--faint); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; line-height:1.5; }
.touch-navigation { display:none; }
.help-dialog { width:min(460px,calc(100vw - 32px)); max-height:calc(100dvh - 28px); margin:auto; padding:22px 38px 22px 24px; overflow:auto; color:var(--ink); background:#171817; border:1px solid var(--edge); box-shadow:none; scrollbar-width:thin; }
.help-dialog::backdrop { background:rgba(0,0,0,.66); }
.help-dialog h1 { max-width:380px; margin:0 0 10px; font-size:clamp(22px,2.55vw,30px); font-weight:400; letter-spacing:-.035em; line-height:1.02; }
.help-dialog p { margin:0 0 9px; font-size:14px; line-height:1.3; }
.help-dialog .help-overview { color:var(--quiet); font-size:13px; }
.help-ideas { display:grid; gap:6px; margin:13px 0 14px; }
.help-ideas div { display:grid; grid-template-columns:70px minmax(0,1fr); gap:8px; }
.help-ideas dt { color:var(--red-bright); font-family:ui-sans-serif,system-ui,sans-serif; font-size:8px; font-weight:600; letter-spacing:.15em; line-height:1.38; }
.help-ideas dd { margin:0; color:var(--ink); font-size:13px; line-height:1.22; }
.help-kicker { margin:0 0 5px !important; color:var(--red-bright); font-family:ui-sans-serif,system-ui,sans-serif; font-size:8px !important; font-weight:600; letter-spacing:.15em; line-height:1.35 !important; text-transform:uppercase; }
.help-grammar { font-size:13px !important; }
.help-dialog .quiet { margin-top:11px; color:var(--quiet); font-size:11px; }
.help-github { display:inline-block; margin-top:3px; color:var(--red-bright); border-bottom:1px solid rgba(218,56,51,.5); font-family:ui-sans-serif,system-ui,sans-serif; font-size:8px; font-weight:600; letter-spacing:.13em; line-height:1.45; text-decoration:none; }
.help-github:hover { color:var(--ink); border-color:var(--ink); }
.dialog-close { position:absolute; top:9px; right:12px; color:var(--quiet); font-size:22px; }
.no-context { color:var(--quiet); font-size:16px; line-height:1.3; }
.site-index { position:fixed; z-index:8; inset:0; width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:0; overflow:hidden; color:var(--ink); background:rgba(8,9,9,.78); border:0; }
.index-drift { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.index-drift path { fill:none; stroke:rgba(218,56,51,.66); stroke-width:1.35; stroke-dasharray:2 11; stroke-linecap:round; }
.index-drift circle { fill:var(--red-bright); opacity:.8; }
.site-index-nav { position:relative; width:100%; height:100%; font-family:ui-sans-serif,system-ui,sans-serif; }
.index-close { position:absolute; top:21px; right:25px; z-index:1; padding:0; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:22px; line-height:1; }
.index-close:hover { color:var(--ink); }
.index-intro { position:absolute; top:15.5%; left:clamp(28px,10vw,150px); margin:0; color:var(--quiet); font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
.index-route { position:absolute; display:flex; flex-direction:column; align-items:flex-start; gap:5px; margin:0; padding:0; color:var(--ink); font-family:ui-sans-serif,system-ui,sans-serif; text-align:left; }
.index-route:link,.index-route:visited { color:var(--ink); text-decoration:none; }
.index-route span { font-family:ui-serif,Georgia,"Times New Roman",serif; font-size:clamp(27px,4vw,55px); font-weight:400; letter-spacing:-.045em; line-height:.9; }
.index-route small { color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; letter-spacing:.08em; line-height:1.25; text-transform:uppercase; }
.index-route--field { top:23%; left:clamp(28px,10vw,150px); cursor:pointer; }
.index-route--field::before { position:absolute; top:4px; left:-15px; width:5px; height:5px; content:""; background:var(--red-bright); border-radius:50%; box-shadow:0 0 0 4px rgba(218,56,51,.12); }
.index-route--field:hover span,.index-route--field:focus-visible span { color:#fffaf0; }
.index-route--field:hover small { color:var(--red-bright); }
.index-route--take { top:66%; left:42%; cursor:pointer; }
.index-route--take:hover span,.index-route--take:focus-visible span { color:#fffaf0; }
.index-route--take:hover small { color:var(--red-bright); }
.index-route--annotations { top:58%; left:72%; cursor:pointer; }
.index-route--annotations:hover span,.index-route--annotations:focus-visible span { color:#fffaf0; }
.index-route--annotations:hover small { color:var(--red-bright); }
.index-route--future { color:rgba(239,233,220,.62); pointer-events:none; }
.index-route--future small { color:rgba(169,163,153,.68); }
.index-route--read { top:19%; left:53%; cursor:pointer; }
.index-route--read:hover span,.index-route--read:focus-visible span { color:#fffaf0; }
.index-route--read:hover small { color:var(--red-bright); }
.index-route--windows { top:43%; left:68%; }
.index-route--origins { top:72%; left:12%; }
.hyperbook-window { width:min(610px,calc(100vw - 42px)); max-height:min(760px,calc(100dvh - 58px)); overflow:auto; margin:auto; padding:42px clamp(26px,6vw,62px) 46px; color:#171615; background:#efe9dc; border:0; box-shadow:0 14px 55px rgba(0,0,0,.34); }
.hyperbook-window::backdrop { background:rgba(0,0,0,.42); }
.hyperbook-window.is-book-page { width:min(48dvh,calc(100vw - 48px)); height:72dvh; max-height:calc(100dvh - 48px); overflow:visible; padding:0; color:#ddd9d1; background:transparent; box-shadow:none; }
.hyperbook-window.is-book-page.is-book-spread { width:min(102dvh,calc(100vw - 92px)); }
.hyperbook-window.is-book-page::backdrop { background:rgba(0,0,0,.62); }
.hyperbook-window.is-book-page .window-close { z-index:2; top:-28px; right:-30px; color:#eee9df; text-shadow:0 1px 10px #000; }
.hyperbook-window.is-book-page #hyperbook-window-content { height:100%; min-height:0; }
.book-page-viewer { position:relative; height:100%; margin:0; }
.book-page-spread { display:flex; align-items:stretch; justify-content:center; width:100%; height:100%; gap:1px; }
.book-page-frame { position:relative; width:100%; height:100%; max-width:100%; min-height:0; aspect-ratio:2 / 3; margin:auto; background:#f7f1e5; box-shadow:0 8px 30px rgba(0,0,0,.38); }
.book-page-viewer.is-spread .book-page-frame { flex:0 0 auto; width:auto; min-width:0; }
.book-page-viewer.is-spread .book-page-frame + .book-page-frame { box-shadow:8px 8px 30px rgba(0,0,0,.38); }
.book-page-frame img { display:block; width:100%; height:100%; object-fit:contain; }
.book-page-highlight { position:absolute; z-index:1; left:var(--highlight-left); top:var(--highlight-top); width:var(--highlight-width); height:var(--highlight-height); box-sizing:border-box; border:1.5px solid rgba(218,56,51,.95); background:rgba(218,56,51,.26); box-shadow:0 0 0 1px rgba(255,239,211,.5) inset; pointer-events:none; }
.book-page-controls { position:absolute; z-index:3; bottom:-39px; left:50%; display:flex; align-items:center; justify-content:center; gap:15px; width:max-content; margin:0; color:rgba(239,233,220,.9); font-family:ui-sans-serif,system-ui,sans-serif; transform:translateX(-50%); }
.book-page-controls p { min-width:54px; margin:0; color:rgba(239,233,220,.82); font-size:10px; letter-spacing:.14em; line-height:1; text-align:center; }
.book-page-controls p span { color:var(--red-bright); }
.book-page-turn { display:inline-flex; align-items:center; gap:6px; padding:4px 0; color:rgba(239,233,220,.9); font-family:ui-sans-serif,system-ui,sans-serif; font-size:12px; line-height:1; }
.book-page-turn small { font-size:9px; font-weight:600; letter-spacing:.14em; }
.book-page-turn:hover:not(:disabled),.book-page-turn:focus-visible { color:var(--red-bright); }
.book-page-turn:disabled { cursor:default; opacity:.25; }
.window-close { position:absolute; top:12px; right:17px; color:var(--red-deep); font-family:ui-sans-serif,system-ui,sans-serif; font-size:28px; line-height:1; }
.window-kind { margin:0 0 14px; color:var(--red); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.hyperbook-window h1 { max-width:470px; margin:0; font-size:clamp(37px,6vw,62px); font-weight:400; letter-spacing:-.045em; line-height:.89; }
.hyperbook-window blockquote { max-width:470px; margin:34px 0 0; color:#24211f; font-size:clamp(22px,3.1vw,32px); font-style:italic; line-height:1.11; }
.window-source { margin:18px 0 0; color:#73322e; font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; letter-spacing:.09em; line-height:1.45; text-transform:uppercase; }
.window-figure { margin:28px 0 0; padding-top:14px; border-top:1px solid rgba(72,61,56,.28); color:#332c29; font-size:17px; line-height:1.24; }
.window-figure span { display:block; margin-bottom:7px; color:var(--red); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.window-figure small { display:block; margin-top:7px; color:#675b55; font-family:ui-sans-serif,system-ui,sans-serif; font-size:11px; line-height:1.4; }
.hyperbook-window .data-details { color:#675b55; }.hyperbook-window .data-details summary,.hyperbook-window .data-details .evidence { color:#675b55; }.hyperbook-window .data-details code { color:#776961; }
.take-map-window { width:min(900px,calc(100vw - 46px)); max-height:min(860px,calc(100dvh - 56px)); overflow:auto; margin:auto; padding:39px clamp(24px,4.5vw,58px) 46px; color:var(--ink); background:#1b1c1b; border:0; box-shadow:0 18px 70px rgba(0,0,0,.78); scrollbar-color:rgba(239,233,220,.34) transparent; }
.take-map-window::backdrop { background:rgba(0,0,0,.7); }
.take-map-window .window-close { z-index:7; color:var(--quiet); }
.take-map-sticky { position:sticky; z-index:5; top:-39px; margin:0 -1px; padding:39px 1px 1px; background:#1b1c1b; box-shadow:0 12px 17px #1b1c1b; }
.take-map-header { max-width:720px; padding-right:34px; }
.take-map-header h1 { max-width:760px; margin:0; font-size:clamp(37px,5.5vw,62px); font-weight:400; letter-spacing:-.05em; line-height:.89; }
.take-map-header>p:not(.window-kind) { margin:14px 0 0; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; letter-spacing:.1em; line-height:1.4; text-transform:uppercase; }
.take-map-header .take-map-source { color:var(--faint); letter-spacing:normal; text-transform:none; }
.take-map-tabs { display:flex; flex-wrap:wrap; gap:0 clamp(15px,3vw,28px); margin-top:31px; border-top:1px solid var(--edge); border-bottom:1px solid var(--edge); }
.take-map-tabs button { padding:12px 0 10px; color:var(--faint); border-bottom:2px solid transparent; font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; font-weight:600; letter-spacing:.13em; line-height:1.2; text-transform:uppercase; }
.take-map-tabs button:hover { color:var(--red-bright); }.take-map-tabs button[aria-selected="true"] { color:var(--ink); border-bottom-color:var(--red-bright); }
.take-tab-panel { max-width:700px; margin-top:27px; }
.take-tab-panel.take-platform { padding-top:0; border-top:0; }
.take-web-map { min-width:0; }
.take-platform-kicker { margin:0 0 8px; color:var(--red-bright); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; font-weight:600; letter-spacing:.16em; line-height:1.3; text-transform:uppercase; }
.take-web-map h2,.take-platform h2 { margin:0; font-size:clamp(22px,2.4vw,31px); font-weight:400; letter-spacing:-.03em; line-height:1; }
.take-web-map iframe { display:block; width:100%; height:clamp(270px,48vw,430px); margin-top:19px; background:#080909; border:1px solid rgba(239,233,220,.14); }
.take-platform-note { margin:11px 0 0; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; line-height:1.48; }
.take-code { margin-top:22px; padding-top:15px; border-top:1px solid var(--edge); }
.take-code summary { cursor:pointer; color:var(--quiet); font-size:10px; letter-spacing:.14em; }
.take-code-intro { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-top:10px; }
.take-code-intro p { max-width:515px; margin:0; color:var(--quiet); font-size:14px; line-height:1.28; }
.take-code-copy { flex:0 0 auto; padding:6px 8px; color:var(--red-bright); border:1px solid rgba(218,56,51,.54); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.13em; line-height:1; text-transform:uppercase; }
.take-code-copy:hover { color:var(--ink); border-color:var(--ink); }
.take-code pre { max-height:280px; margin:12px 0 0; padding:14px; overflow:auto; color:#eee7d9; background:#070808; border:1px solid rgba(239,233,220,.1); font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre; }
.take-code code { color:inherit; }
.take-platform { padding-top:16px; border-top:1px solid var(--edge); }
.take-platform h2 { font-size:23px; }
.take-platform>p:not(.take-platform-kicker):not(.take-platform-note) { margin:12px 0 0; color:var(--ink); font-size:16px; line-height:1.28; }
.take-platform ol { display:grid; gap:8px; margin:14px 0 0; padding-left:20px; color:var(--ink); font-size:15px; line-height:1.28; }
.take-platform code { display:block; margin-top:14px; padding:9px 10px; overflow-wrap:anywhere; color:var(--red-bright); background:rgba(218,56,51,.08); border-left:1px solid rgba(218,56,51,.5); font:10px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace; }
.take-network-steps { max-width:610px; }
.take-network-url { display:flex; align-items:stretch; gap:9px; margin-top:15px; }
.take-network-url code { flex:1; min-width:0; margin:0; }
.take-network-url .take-code-copy { align-self:center; }
.take-download { display:flex; justify-content:space-between; width:100%; margin-top:17px; padding:9px 0; color:var(--ink); border-top:1px solid var(--edge); border-bottom:1px solid var(--edge); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; font-weight:600; letter-spacing:.13em; text-align:left; }
.take-download span:last-child { color:var(--red-bright); }.take-download:hover { color:var(--red-bright); }.take-download:hover span:last-child { color:var(--ink); }
.take-source-note { max-width:700px; margin-top:30px; padding-top:13px; color:var(--quiet); border-top:1px solid var(--edge); }
.take-source-note>p:last-child { margin:8px 0 0; font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; line-height:1.48; }
@keyframes fragment-arrives { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@media (min-width:781px) and (max-width:1100px) { #core-renderer { right:-5vw; width:min(56vw,620px); min-width:390px; } }
@media (max-width:780px) { #core-renderer { top:auto; right:-3%; bottom:0; width:94%; min-width:0; height:84dvh; background:transparent; transform:none; } .well-caption { top:auto; right:16px; bottom:calc(84dvh + 8px); font-size:9px; letter-spacing:.1em; }.masthead { padding:17px 16px; }.masthead-left { gap:14px; }.surface { top:18px; left:142px; }.depth-indicator { display:none; }.encounter { right:16px; bottom:calc(84dvh + 20px); left:16px; width:min(420px,calc(100vw - 32px)); max-height:24dvh; padding:13px 14px 14px; }.take-prompt { bottom:30px; left:16px; width:min(300px,calc(100vw - 32px)); }.map-slip { bottom:calc(84dvh + 20px); left:16px; width:min(350px,calc(100vw - 32px)); max-height:27dvh; padding-left:13px; }.map-slip h2 { font-size:27px; }.map-slip-source { font-size:13px; }.map-slip-actions { display:flex; flex-wrap:wrap; gap:0 14px; border-top:0; margin-top:12px; }.map-slip-actions button { padding:4px 0; border-bottom:0; font-size:9px; }.map-slip-note,.map-slip details { display:none; }.field-encounter { width:min(290px,calc(100vw - 48px)); }.field-prompt { display:none; }.journey { top:57px; left:16px; max-width:calc(100vw - 32px); }.journey-content { width:calc(100vw - 32px); max-height:94px; overflow:auto; }.journey-wander { gap:6px 13px; padding-right:18px; padding-bottom:15px; }.journey-item { font-size:13px; }.journey-item--age-0 { font-size:15px; }.encounter h1 { font-size:27px; }.site-index-nav { overflow:hidden; }.index-intro { top:17%; left:27px; }.index-route span { font-size:clamp(25px,8vw,38px); }.index-route small { max-width:160px; font-size:8px; }.index-route--field { top:25%; left:27px; }.index-route--read { top:22%; left:55%; }.index-route--windows { top:44%; left:51%; }.index-route--take { top:63%; left:26%; }.index-route--annotations { top:54%; left:46%; }.index-route--origins { top:76%; left:27px; }.hyperbook-window { width:calc(100vw - 28px); padding:38px 25px 34px; }.hyperbook-window.is-book-page { width:min(48dvh,calc(100vw - 38px)); height:72dvh; max-height:calc(100dvh - 38px); padding:0; }.hyperbook-window.is-book-page .window-close { top:-27px; right:-20px; } }
@media (max-width:780px) { .book-entry-copy { top:clamp(210px,47dvh,380px); left:24px; width:calc(100vw - 48px); }.book-entry blockquote { font-size:clamp(19px,5vw,25px); line-height:1.34; }.book-entry-read { margin-left:.44em; font-size:9px; letter-spacing:.1em; }.book-entry-actions { gap:8px 22px; margin-top:20px; } }
@media (prefers-reduced-motion:reduce) { .book-entry { transition-duration:1ms; } }
@media (max-width:780px) { .take-map-window { width:calc(100vw - 28px); max-height:calc(100dvh - 28px); padding:35px 22px 31px; }.take-map-sticky { top:-35px; padding-top:35px; }.take-map-tabs { gap:0 16px; margin-top:25px; }.take-map-tabs button { font-size:9px; }.take-tab-panel { margin-top:25px; }.take-web-map iframe { height:250px; }.take-code-intro { gap:12px; }.take-code-intro p { font-size:13px; }.take-code pre { max-height:210px; font-size:10px; }.take-network-url { align-items:flex-start; flex-direction:column; }.take-network-url .take-code-copy { align-self:flex-start; } }
@media (max-width:780px) {
  .masthead-actions { gap:10px; }
  .ground-toggle { font-size:8px; }
  .masthead .surface { position:absolute; top:52px; right:16px; left:auto; }
  .ground-control { top:55px; right:14px; width:min(244px,calc(100vw - 28px)); }
}
@media (max-width:780px) {
  .encounter { z-index:7; top:62px; right:16px; bottom:auto; left:16px; width:auto; max-height:154px; padding:10px 12px 11px; background:rgba(8,9,9,.82); -webkit-backdrop-filter:blur(12px) brightness(.48) saturate(.56); backdrop-filter:blur(12px) brightness(.48) saturate(.56); }
  .encounter .map-marker { margin-bottom:5px; font-size:9px; }
  .encounter .fragment-quote { font-size:clamp(17px,5vw,21px); line-height:1.1; }
  .encounter .fragment-quote .quote-text { -webkit-line-clamp:2; }
  .encounter .fragment-name { max-width:100%; font-size:clamp(20px,5.7vw,25px); }
  .encounter .fragment-name>span:first-child { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
  .encounter .fragment-paths { margin-top:8px; }
  .encounter .lateral-offer,.encounter .take-map-offer { margin-top:8px; }
  .journey { top:auto; right:16px; bottom:max(19px,env(safe-area-inset-bottom)); left:auto; max-width:180px; text-align:right; }
  .journey-content { position:absolute; right:0; bottom:28px; width:min(230px,calc(100vw - 32px)); max-height:142px; margin:0; overflow:auto; background:rgba(8,9,9,.76); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
  .journey-wander { justify-content:flex-end; padding:9px 8px 10px; }
  .touch-navigation { position:fixed; z-index:7; bottom:max(16px,env(safe-area-inset-bottom)); left:14px; display:grid; grid-template-areas:". newer ." "back . stray" ". older ."; grid-template-columns:repeat(3,42px); grid-template-rows:repeat(3,42px); gap:2px; pointer-events:none; }
  .touch-navigation[hidden] { display:none; }
  .touch-navigation button { display:grid; width:42px; height:42px; padding:0; color:var(--ink); background:rgba(8,9,9,.74); border:1px solid rgba(239,233,220,.2); border-radius:50%; font-family:ui-sans-serif,system-ui,sans-serif; font-size:19px; line-height:1; place-items:center; pointer-events:auto; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
  .touch-navigation button:active { color:var(--field); background:var(--ink); }
  .touch-navigation button:disabled { cursor:default; opacity:.22; }
  .touch-navigation button[data-touch-move="newer"] { grid-area:newer; }
  .touch-navigation button[data-touch-move="older"] { grid-area:older; }
  .touch-navigation button[data-touch-move="back"] { grid-area:back; color:var(--quiet); }
  .touch-navigation button[data-touch-move="stray"] { grid-area:stray; color:var(--red-bright); }
}

/* A selected layer, its book encounter, its offered side street, and the
   visitor's own residue are one continuous movement—not separate widgets. */
.encounter { max-height:min(56dvh,520px); padding:18px 19px 16px; }
.encounter.is-note-mode { width:min(290px,calc(100vw - 36px)); max-height:180px; padding:13px 16px; }
.encounter.is-note-mode .book-stage,.encounter.is-note-mode .stray-stage,.encounter.is-note-mode .map-record,.encounter.is-note-mode .journey,.encounter.is-note-mode .take-map-quiet { display:none; }
.encounter.is-note-open .annotation-switch { display:none; }
.encounter.is-note-mode .encounter-flow::before { bottom:5px; }
.encounter.is-note-mode .map-stage h2 { font-size:19px; line-height:1.05; }
.encounter-flow { position:relative; padding-left:24px; }
.encounter-flow::before { position:absolute; top:7px; bottom:14px; left:5px; border-left:1px dashed rgba(218,56,51,.48); content:""; }
.encounter-stage { position:relative; }
.encounter-stage::before { position:absolute; z-index:1; top:4px; left:-23px; width:8px; height:8px; box-sizing:border-box; border:1px solid var(--red-light); border-radius:50%; background:var(--field); content:""; }
.encounter-stage + .encounter-stage { margin-top:15px; }
.map-stage::before { background:var(--red-bright); border-color:var(--red-bright); box-shadow:0 0 0 3px rgba(218,56,51,.13); }
.book-stage::before { width:9px; height:9px; border-color:var(--ink); }
.stray-stage::before { top:12px; width:7px; height:7px; background:var(--red-light); border-color:var(--red-light); }
.stage-kicker { margin:0 0 5px; color:var(--faint); font-family:ui-sans-serif,system-ui,sans-serif; font-size:8px; font-weight:600; letter-spacing:.15em; line-height:1.2; text-transform:uppercase; }
.stage-kicker span { color:var(--quiet); font-weight:400; letter-spacing:.06em; }
.encounter .map-marker { margin:0; color:var(--red-bright); font-size:10px; }
.map-title-row { display:flex; align-items:flex-start; gap:10px; }.map-stage h2 { flex:1 1 auto; max-width:390px; margin:4px 0 0; color:var(--ink); font-size:clamp(17px,1.55vw,23px); font-weight:400; letter-spacing:-.018em; line-height:1.04; }
.map-quiet-actions { display:flex; flex:0 0 auto; align-items:flex-start; gap:9px; }
.map-record { margin-top:7px; color:var(--faint); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; letter-spacing:.1em; line-height:1.3; text-transform:uppercase; }
.map-record summary { color:var(--quiet); cursor:pointer; font-size:8px; letter-spacing:.13em; }
.map-record[open] summary { color:var(--red-light); }
.map-record dl { display:grid; gap:4px; margin:8px 0 0; letter-spacing:normal; text-transform:none; }
.map-record dl div { display:grid; grid-template-columns:72px minmax(0,1fr); gap:8px; }
.map-record dt { color:var(--faint); }.map-record dd { margin:0; color:var(--quiet); overflow-wrap:anywhere; }
.book-stage .fragment-quote,.book-stage .fragment-name { max-width:100%; }
.book-stage .fragment-quote { font-size:clamp(18px,1.55vw,25px); }
.book-stage .fragment-name { font-size:clamp(21px,1.8vw,28px); }
.stray-path { display:grid; grid-template-columns:25px minmax(0,1fr) auto; align-items:center; width:100%; gap:8px; padding:1px 0; color:var(--ink); text-align:left; }
.stray-path:hover .stray-copy strong,.stray-path:hover .stray-arrow { color:var(--red-light); }
.stray-symbol { position:relative; display:flex; align-items:center; width:23px; height:13px; overflow:hidden; }
.stray-symbol::before { position:absolute; top:6px; left:0; width:21px; border-top:1px dashed rgba(239,233,220,.66); content:""; transform:rotate(-9deg); }
.stray-symbol i { position:absolute; z-index:1; width:3px; height:3px; border-radius:50%; background:var(--red-light); }
.stray-symbol i:nth-child(1) { top:1px; left:2px; }.stray-symbol i:nth-child(2) { top:8px; left:10px; }.stray-symbol i:nth-child(3) { top:3px; left:19px; }
.stray-copy { min-width:0; }.stray-copy small,.stray-copy strong,.stray-copy em { display:block; }
.stray-copy small { color:var(--red-bright); font-family:ui-sans-serif,system-ui,sans-serif; font-size:8px; font-style:normal; font-weight:600; letter-spacing:.15em; line-height:1.1; }
.stray-copy strong { margin-top:2px; overflow:hidden; color:var(--ink); font-family:ui-serif,Georgia,"Times New Roman",serif; font-size:18px; font-weight:400; letter-spacing:-.015em; line-height:1.05; text-overflow:ellipsis; white-space:nowrap; }
.stray-copy em { margin-top:4px; color:var(--faint); font-family:ui-sans-serif,system-ui,sans-serif; font-size:8px; font-style:normal; letter-spacing:.09em; line-height:1.15; text-transform:uppercase; }
.stray-arrow { align-self:center; color:var(--red-bright); font-family:ui-sans-serif,system-ui,sans-serif; font-size:20px; line-height:1; }
.drift-path .stray-copy small,.drift-path .stray-arrow { color:var(--quiet); }
.take-map-quiet { display:inline-flex; flex:0 0 auto; align-items:center; gap:5px; margin-top:5px; padding:2px 0; color:var(--faint); font-family:ui-sans-serif,system-ui,sans-serif; font-size:7px; font-weight:600; letter-spacing:.12em; line-height:1.1; text-transform:uppercase; white-space:nowrap; }
.take-map-quiet i { display:block; width:8px; height:6px; box-sizing:border-box; border:1px solid currentColor; box-shadow:2px -2px 0 -1px rgba(239,233,220,.28); }.take-map-quiet:hover { color:var(--red-light); }
.map-annotations { margin-top:11px; }
.annotation-switch { display:inline-flex; align-items:center; gap:8px; padding:5px 0; color:var(--ink); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.13em; line-height:1; }
.annotation-switch:hover,.annotation-switch.is-active { color:var(--red-light); }
.annotation-switch:disabled { color:var(--quiet); cursor:default; opacity:.65; }
.annotation-switch em { margin-left:5px; color:var(--faint); font-size:8px; font-style:normal; letter-spacing:.1em; }
.annotation-switch.is-active em { color:var(--red-light); }
.note-glyph { position:relative; display:inline-flex; flex:0 0 auto; flex-direction:column; align-items:center; justify-content:center; gap:2px; width:18px; height:18px; border:1px solid var(--red-light); border-radius:50%; background:var(--red-bright); }
.note-glyph b { width:9px; height:1px; background:#fffaf0; }.note-glyph b:last-child { width:6px; margin-right:3px; }
.annotation-mode-prompt { max-width:310px; margin:5px 0 2px; color:var(--quiet); font-size:13px; font-style:italic; line-height:1.2; }
.annotation-summary { display:inline-flex; align-items:center; gap:7px; margin:0; padding:4px 0; color:var(--ink); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.12em; text-align:left; }.annotation-summary:hover { color:var(--red-light); }
.annotation-summary i { width:15px; height:8px; border:1px solid currentColor; border-radius:8px; }.annotation-summary i::after { display:block; width:6px; height:6px; margin:0; background:currentColor; border-radius:50%; content:""; transform:translateX(0); transition:transform 150ms ease; }.annotation-summary[aria-checked="true"] i { color:var(--red-light); }.annotation-summary[aria-checked="true"] i::after { transform:translateX(7px); }.annotation-summary small { color:var(--faint); font-size:8px; font-weight:400; }.annotation-summary em { color:var(--red-light); font-size:8px; font-style:normal; }.annotation-summary[aria-checked="false"] em { color:var(--faint); }
.annotation-note-controls { display:flex; flex-wrap:wrap; align-items:center; gap:7px 17px; }.annotation-open { padding:0; color:var(--red-light); font-family:ui-sans-serif,system-ui,sans-serif; font-size:8px; font-weight:600; letter-spacing:.11em; white-space:nowrap; }.annotation-open:hover { color:var(--ink); }
#map.annotation-mode canvas { cursor:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%3E%3Ccircle%20cx='16'%20cy='16'%20r='13'%20fill='%23da3833'/%3E%3Cpath%20d='M9%2012h14M9%2016h14M9%2020h10'%20stroke='white'%20stroke-width='2'/%3E%3C/svg%3E") 16 16,crosshair !important; }
.annotation-float { position:fixed; z-index:8; width:min(340px,calc(100vw - 36px)); max-height:min(430px,calc(100dvh - 120px)); overflow:auto; padding:17px 19px 18px; color:var(--ink); background:rgba(13,14,14,.94); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); box-shadow:0 18px 42px rgba(0,0,0,.34); }
.annotation-float.is-composing { max-height:min(560px,calc(100dvh - 100px)); }
.annotation-float-head { display:flex; align-items:center; gap:9px; color:var(--red-light); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.15em; }.annotation-float-head .note-glyph { width:15px; height:15px; }.annotation-float-head .note-glyph b { width:7px; }.annotation-float-head button { margin-left:auto; padding:0; color:var(--quiet); font-size:20px; line-height:1; }
.annotation-float-map { margin:16px 0 0; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; letter-spacing:.13em; text-transform:uppercase; }
.annotation-float-title { margin:5px 0 0; overflow:hidden; color:var(--ink); font-size:18px; text-overflow:ellipsis; white-space:nowrap; }
.annotation-float blockquote { margin:12px 0 18px; color:var(--ink); font-size:clamp(19px,2.1vw,25px); font-style:italic; line-height:1.17; overflow-wrap:anywhere; }
.annotation-float-coordinate { margin:9px 0 0; color:var(--ink); font-size:19px; font-variant-numeric:tabular-nums; }.annotation-float-hint { margin:12px 0 19px; color:var(--quiet); font-size:14px; line-height:1.2; }
.annotation-float-foot { display:flex; align-items:center; justify-content:space-between; gap:16px; color:var(--red-light); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.12em; }.annotation-float-foot a { color:var(--red-light); text-decoration:none; }.annotation-float-foot a:hover,.annotation-float-foot button:hover { color:var(--ink); }.annotation-float-foot nav { display:flex; gap:20px; margin-left:auto; }.annotation-float-foot nav button { padding:0; color:var(--red-light); font-size:20px; line-height:1; }.annotation-float-foot nav button:disabled { color:var(--faint); opacity:.4; cursor:default; }.annotation-float-tag { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.annotation-float-byline { display:block; margin:-7px 0 14px; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:11px; }
.annotation-compose { display:grid; gap:10px; margin-top:18px; }.annotation-compose label { display:grid; gap:5px; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }.annotation-compose label span { color:var(--faint); text-transform:none; }.annotation-compose input,.annotation-compose textarea { box-sizing:border-box; width:100%; border:0; border-bottom:1px solid rgba(255,255,255,.22); border-radius:0; padding:8px 0; background:transparent; color:var(--ink); font:14px/1.4 ui-sans-serif,system-ui,sans-serif; letter-spacing:normal; resize:vertical; }.annotation-compose textarea { min-height:68px; max-height:170px; }.annotation-compose input:focus,.annotation-compose textarea:focus { outline:none; border-bottom-color:var(--red-light); }.annotation-compose-help { margin:-5px 0 1px; color:var(--faint); font:11px/1.35 ui-sans-serif,system-ui,sans-serif; }.annotation-compose .annotation-float-foot { margin-top:8px; }.annotation-compose button[type="submit"] { color:var(--red-light); }

.annotations-page { overflow:auto; min-height:100%; background:#111212; }
.annotations-shell { width:min(1120px,calc(100vw - 64px)); min-height:100vh; margin:0 auto; padding:25px 0 80px; }
.annotations-header { position:sticky; z-index:2; top:0; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:2px 0 18px; background:#111212; }
.annotations-header-left { display:flex; align-items:center; gap:20px; min-width:0; }
.annotations-back { color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.14em; text-decoration:none; white-space:nowrap; }.annotations-back:hover { color:var(--ink); }
.annotations-header>p { margin:0; color:var(--faint); font-family:ui-sans-serif,system-ui,sans-serif; font-size:8px; font-weight:600; letter-spacing:.18em; text-align:center; }
.annotations-header button { justify-self:end; padding:0; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:8px; font-weight:600; letter-spacing:.14em; }.annotations-header button:hover { color:var(--red-light); }.annotations-header button:disabled { opacity:.3; }
.annotations-intro { max-width:590px; margin:12vh 0 56px; }.annotations-kicker { margin:0 0 10px; color:var(--red-bright); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }.annotations-intro h1 { margin:0; color:var(--ink); font-size:clamp(42px,7vw,78px); font-weight:400; letter-spacing:-.065em; line-height:.86; }.annotations-intro>p:last-child { max-width:405px; margin:21px 0 0; color:var(--quiet); font-size:17px; line-height:1.23; }
.annotations-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 55px; border-top:1px solid var(--edge); }.annotation-card { min-width:0; padding:25px 0 27px; border-bottom:1px solid var(--edge); }.annotation-card-map { margin:0; color:var(--red-bright); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.16em; line-height:1.2; text-transform:uppercase; }.annotation-card h2 { max-width:480px; margin:8px 0 0; font-size:clamp(20px,2.5vw,31px); font-weight:400; letter-spacing:-.035em; line-height:1.01; }.annotation-card blockquote { max-width:490px; margin:19px 0 0; color:var(--ink); font-size:clamp(20px,2.2vw,27px); font-style:italic; line-height:1.12; }.annotation-card footer { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 14px; margin-top:19px; color:var(--faint); font-family:ui-sans-serif,system-ui,sans-serif; font-size:8px; letter-spacing:.11em; line-height:1.35; text-transform:uppercase; }.annotation-card footer a { margin-left:auto; color:var(--red-light); text-decoration:none; }.annotation-card footer a:hover { color:var(--ink); }.annotations-tag { color:var(--red-light); }.annotations-state { grid-column:1 / -1; max-width:440px; margin:28px 0 0; color:var(--quiet); font-size:20px; line-height:1.25; }.annotations-state em { color:var(--red-light); }
@media (max-width:780px) { .annotations-shell { width:calc(100vw - 36px); padding-top:19px; }.annotations-header { grid-template-columns:1fr auto; padding-bottom:14px; }.annotations-header-left { gap:12px; }.annotations-header .wordmark { font-size:9px; }.annotations-header>p { display:none; }.annotations-intro { margin:16vh 0 40px; }.annotations-intro h1 { font-size:clamp(39px,13vw,59px); }.annotations-intro>p:last-child { font-size:16px; }.annotations-list { grid-template-columns:1fr; }.annotation-card { padding:22px 0 24px; }.annotation-card blockquote { font-size:22px; }.annotation-card footer a { width:100%; margin-left:0; } }
.encounter .journey { position:relative; z-index:auto; top:auto; left:auto; max-width:none; margin:15px 0 0 24px; padding-top:10px; color:var(--quiet); border-top:1px solid rgba(239,233,220,.12); text-align:left; }
.encounter .journey > button { display:inline-flex; align-items:center; gap:8px; padding:0; color:var(--quiet); font-size:8px; letter-spacing:.15em; }
.encounter .journey > button::before { width:16px; height:7px; border-top:1px dashed rgba(218,56,51,.76); content:""; transform:rotate(-7deg); }
.encounter .journey > button[aria-expanded="true"] { color:var(--ink); }
.encounter .journey-content { width:auto; max-width:none; margin-top:7px; }
.encounter .journey-wander { gap:5px 11px; padding:1px 0 3px; }
.encounter .journey-item { font-size:11px; }.encounter .journey-item--age-0 { font-size:13px; }

@media (max-width:780px) {
  .encounter { max-height:216px; padding:10px 12px 11px; }
  .encounter-flow { padding-left:20px; }
  .encounter-flow::before { left:4px; top:6px; bottom:10px; }
  .encounter-stage::before { top:3px; left:-19px; width:7px; height:7px; }
  .book-stage::before { width:8px; height:8px; }.stray-stage::before { top:11px; width:6px; height:6px; }
  .encounter-stage + .encounter-stage { margin-top:10px; }
  .stage-kicker { margin-bottom:3px; font-size:7px; }
  .encounter .map-marker { font-size:8px; }
  .map-stage h2 { margin-top:3px; font-size:16px; line-height:1.02; }.map-title-row { gap:7px; }.map-quiet-actions { gap:7px; }.take-map-quiet,.annotation-quiet { margin-top:3px; font-size:6px; }
  .map-record { margin-top:5px; }.map-record:not([open]) { display:none; }
  .map-annotations { margin-top:5px; }.annotation-switch { font-size:8px; }.annotation-summary { font-size:7px; }.annotation-mode-prompt { font-size:11px; }
  .book-stage .fragment-quote { font-size:clamp(16px,4.45vw,19px); line-height:1.08; }
  .book-stage .fragment-quote .quote-text { -webkit-line-clamp:2; }
  .book-stage .fragment-name { font-size:20px; }
  .book-stage .quote-aperture { display:inline; margin-left:7px; font-size:7px; vertical-align:baseline; }
  .stray-path { grid-template-columns:21px minmax(0,1fr) auto; gap:6px; }.stray-symbol { transform:scale(.85); transform-origin:left center; }
  .stray-copy strong { font-size:16px; }.stray-copy em { margin-top:2px; font-size:7px; }
  .encounter .journey { margin:10px 0 0 20px; padding-top:7px; }.encounter .journey-content { max-height:74px; overflow:auto; }
  .encounter .journey-wander { padding-bottom:3px; }.encounter .journey-item { font-size:10px; }.encounter .journey-item--age-0 { font-size:11px; }
}
@media (max-width:780px) { .annotation-float { width:calc(100vw - 32px); max-height:min(40dvh,310px); padding:14px 16px 16px; }.annotation-float.is-composing { max-height:calc(100dvh - 110px); }.annotation-float blockquote { font-size:21px; } }
.annotations-search-label { display:block; margin-top:34px; color:var(--faint); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.15em; }
.annotations-simulation { max-width:530px !important; color:var(--red-light) !important; font-size:13px !important; line-height:1.35 !important; }.annotations-simulation a { color:var(--ink); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; letter-spacing:.12em; text-decoration:none; white-space:nowrap; }
@media (max-width:780px) { #core-renderer.is-compact { right:6px; bottom:65px; width:178px; height:245px; }.timewell-size.is-compact { right:8px; bottom:97px; width:138px; height:190px; font-size:8px; } }
.annotations-search { width:min(410px,100%); margin-top:9px; padding:8px 0 11px; border:0; border-bottom:1px solid var(--edge); border-radius:0; outline:none; color:var(--ink); background:transparent; font-family:ui-serif,Georgia,serif; font-size:19px; }.annotations-search::placeholder { color:var(--faint); }.annotations-search:focus { border-bottom-color:var(--red-light); }
.annotations-list { display:block; }.annotation-group { border-bottom:1px solid var(--edge); }.annotation-group details>summary { display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:86px; padding:19px 0; cursor:pointer; list-style:none; }.annotation-group details>summary::-webkit-details-marker { display:none; }.annotation-group details>summary:hover strong { color:var(--red-light); }
.annotation-group-identity { display:block; min-width:0; }.annotation-group-identity small { display:block; color:var(--red-bright); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.15em; line-height:1.2; text-transform:uppercase; }.annotation-group-identity strong { display:block; margin-top:7px; color:var(--ink); font-size:clamp(22px,2.7vw,31px); font-weight:400; letter-spacing:-.035em; line-height:1.04; }
.annotation-group-count { flex:0 0 auto; color:var(--quiet); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.13em; white-space:nowrap; }.annotation-group-count i { display:inline-block; margin-left:8px; color:var(--red-light); font-size:15px; font-style:normal; transition:transform 180ms ease; }.annotation-group details[open] .annotation-group-count i { transform:rotate(180deg); }
.annotation-group-notes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 45px; padding:3px 0 23px; }.annotation-group .annotation-card { padding:20px 0 21px; }.annotation-group .annotation-card blockquote { margin:0; font-size:clamp(20px,2.1vw,26px); }.annotation-group .annotation-card footer { margin-top:12px; }
.annotations-more,.annotations-more-maps { padding:16px 0; color:var(--red-light); font-family:ui-sans-serif,system-ui,sans-serif; font-size:9px; font-weight:600; letter-spacing:.13em; text-align:left; }.annotations-more-maps { display:flex; width:100%; justify-content:space-between; border-bottom:1px solid var(--edge); }.annotations-more-maps span { color:var(--faint); }
@media (max-width:780px) { .annotations-search-label { margin-top:26px; }.annotation-group details>summary { min-height:76px; }.annotation-group-count { font-size:8px; }.annotation-group-notes { grid-template-columns:1fr; }.annotation-group .annotation-card blockquote { font-size:21px; } }
