.action-button.journeys-trigger{white-space:nowrap;gap:7px}.journeys-trigger>svg{color:var(--teal)}.saved-person-toggle,.directory-save-toggle,.directory-collection-switch button,.journey-current button,.journeys-dialog :where(button:not(.icon-button)){border:1px solid var(--line);color:var(--paper);cursor:pointer;font:inherit;background:0 0;border-radius:10px}.saved-person-toggle:hover,.directory-save-toggle:hover,.directory-collection-switch button:hover,.journey-current button:hover:not(:disabled),.journeys-dialog button:not(.icon-button):hover{border-color:var(--teal);background:color-mix(in srgb, var(--teal) 9%, transparent)}.saved-person-toggle{flex-shrink:0;align-items:center;gap:6px;min-height:40px;padding:8px 10px;font-size:13px;display:inline-flex}.saved-person-toggle[aria-pressed=true],.directory-save-toggle[aria-pressed=true]{color:var(--gold);border-color:color-mix(in srgb, var(--gold) 50%, transparent);background:color-mix(in srgb, var(--gold) 8%, transparent)}.saved-person-toggle[aria-pressed=true] svg,.directory-save-toggle[aria-pressed=true] svg{fill:color-mix(in srgb, var(--gold) 24%, transparent)}.saved-notice{color:var(--paper-muted);margin:8px 0 12px;font-size:12px;line-height:1.7}.saved-notice-error{border:1px solid color-mix(in srgb, var(--gold) 45%, transparent);color:var(--gold);background:color-mix(in srgb, var(--gold) 7%, transparent);border-radius:10px;padding:10px 12px}.directory-storage-error{margin:0 30px 10px}.directory-collection-bar{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:16px 30px 0;display:flex}.directory-collection-bar>p{color:var(--paper-muted);margin:0;font-size:12px}.directory-collection-switch{border:1px solid var(--line);border-radius:14px;gap:4px;padding:4px;display:flex}.directory-collection-switch button{border-color:#0000;align-items:center;gap:6px;min-height:36px;padding:6px 12px;font-size:13px;display:flex}.directory-collection-switch button[aria-pressed=true]{color:var(--teal);border-color:var(--line);background:color-mix(in srgb, var(--teal) 9%, transparent)}.directory-collection-switch button>span{background:color-mix(in srgb, var(--teal) 12%, transparent);text-align:center;border-radius:6px;min-width:20px;padding:0 4px;font-size:12px}.directory-entry{min-width:0;position:relative}.directory-entry .directory-card{grid-template-columns:40px minmax(0,1fr);gap:9px;width:100%;height:100%;padding-right:43px}.directory-entry .directory-initial{grid-row:1/3;width:40px;height:40px}.directory-entry .directory-category{grid-column:2;justify-self:start}.directory-save-toggle{place-items:center;width:34px;height:36px;display:grid;position:absolute;top:10px;right:7px}.journey-current{border:1px solid color-mix(in srgb, var(--teal) 30%, transparent);background:color-mix(in srgb, var(--teal) 6%, transparent);border-radius:14px;margin:16px 0 12px;padding:12px}.journey-current-heading{justify-content:space-between;align-items:center;gap:6px;display:flex}.journey-current-heading>span{color:var(--teal);font-size:11px}.journey-current-heading>button{min-height:28px;color:var(--paper-muted);border:0;align-items:center;gap:3px;padding:3px 5px;font-size:12px;display:flex}.journey-current h3{font-family:var(--font-display);margin:3px 0;font-size:23px;font-weight:500}.journey-current-progress{color:var(--gold);margin:3px 0;font-size:12px}.journey-current-note{color:var(--paper-muted);margin:6px 0 10px;font-size:13px;line-height:1.7}.journey-current-actions{justify-content:space-between;align-items:center;gap:6px;display:flex}.journey-current-actions button{justify-content:center;align-items:center;gap:5px;min-height:36px;padding:6px 8px;font-size:12px;display:flex}.journey-current-actions button:disabled{opacity:.4;cursor:not-allowed}.journeys-dialog{border:1px solid var(--line);background:var(--ink-raised,var(--ink));border-radius:24px;flex-direction:column;width:min(920px,100vw - 40px);max-height:min(800px,100dvh - 48px);display:flex;overflow:hidden;box-shadow:0 24px 90px #0006}.journeys-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:27px 28px 12px;display:flex}.journeys-eyebrow{color:var(--teal);letter-spacing:.12em;font-size:11px}.journeys-header h2{font-family:var(--font-display);margin:7px 0 0;font-size:clamp(24px,4vw,32px);font-weight:500}.journeys-disclaimer{color:var(--paper-muted);flex-shrink:0;align-items:flex-start;gap:8px;margin:0;padding:0 28px 22px;font-size:13px;line-height:1.7;display:flex}.journeys-disclaimer>svg{color:var(--gold);flex-shrink:0;margin-top:3px}.journeys-layout{border-top:1px solid var(--line);overscroll-behavior:contain;grid-template-columns:245px minmax(0,1fr);min-height:0;display:grid;overflow-y:auto}.journeys-choices{background:color-mix(in srgb, var(--ink) 30%, transparent);flex-direction:column;align-items:stretch;gap:8px;padding:20px 16px;display:flex}.journeys-choices>button{text-align:left;align-items:center;gap:10px;min-height:91px;padding:12px;display:flex}.journeys-choices>button[aria-pressed=true]{border-color:color-mix(in srgb, var(--teal) 55%, transparent);background:color-mix(in srgb, var(--teal) 9%, transparent)}.journeys-choices>button>span:nth-child(2){flex:1}.journeys-choice-index{color:var(--teal);align-self:flex-start;font-size:11px}.journeys-choices strong{font-size:16px;font-weight:500;display:block}.journeys-choices small{color:var(--paper-muted);margin-top:7px;font-size:12px;line-height:1.6;display:block}.journeys-choices>button>svg{color:var(--teal);flex-shrink:0}.journeys-detail{min-width:0;padding:25px 28px}.journeys-detail h3{font-family:var(--font-display);margin:7px 0 10px;font-size:30px;font-weight:500}.journeys-detail-intro>p{color:var(--paper-muted);margin:0 0 16px;font-size:14px;line-height:1.85}.journeys-dialog .journeys-start{min-height:42px;color:var(--teal);background:color-mix(in srgb, var(--teal) 9%, transparent);border-color:color-mix(in srgb, var(--teal) 40%, transparent);align-items:center;gap:18px;padding:9px 14px;font-size:14px;display:inline-flex}.journeys-stops{gap:7px;margin:24px 0 0;padding:0;list-style:none;display:grid}.journeys-stops button{text-align:left;align-items:flex-start;gap:12px;width:100%;padding:13px;display:flex}.journeys-stop-index{color:var(--teal);padding-top:3px;font-size:12px}.journeys-stops button>span:nth-child(2){flex:1;min-width:0}.journeys-stops strong{align-items:center;gap:10px;font-size:16px;font-weight:500;display:flex}.journeys-stops small{color:var(--gold);font-size:12px;font-weight:400}.journeys-stops strong+span{color:var(--paper-muted);margin-top:5px;font-size:13px;line-height:1.75;display:block}.journeys-stops button>svg{color:var(--teal);flex-shrink:0;margin-top:4px}@media (width<=700px){.action-button.journeys-trigger{width:auto;min-width:40px;padding:0 9px}.action-button.journeys-trigger>span{font-size:12px;display:inline}.directory-collection-bar{padding:14px 18px 0}.directory-storage-error{margin:10px 18px 0}.directory-entry .directory-card{min-height:95px}.directory-save-toggle{width:36px;height:40px}.journeys-dialog{border:0;border-radius:0;width:100%;height:100dvh;max-height:100dvh}.journeys-header{padding:calc(20px + var(--safe-top)) 20px 12px}.journeys-disclaimer{padding:0 20px 16px}.journeys-layout{padding-bottom:var(--safe-bottom);display:block}.journeys-choices{flex-flow:wrap;gap:6px;padding:14px 16px}.journeys-choices>button{flex:135px;gap:7px;min-height:80px;padding:10px}.journeys-choices strong{font-size:14px}.journeys-choices small{font-size:11px}.journeys-detail{padding:18px 20px 28px}.journey-current{margin-top:12px;padding:10px 12px}}@media (width<=390px){.action-button.journeys-trigger{gap:4px;padding:0 6px}.journeys-trigger>svg{width:15px}.journey-current-actions button{padding-inline:7px}}.relation-section h3 small,.scene-section h3 small{color:var(--paper-muted);letter-spacing:0;margin-left:auto;font-size:10px;font-weight:400}.ego-constellation{width:calc(100% + 16px);height:auto;margin:-2px -8px 6px;display:block;overflow:visible}.ego-orbit{fill:none;stroke:#dfc18c29;stroke-width:.8px;stroke-dasharray:2 5}.ego-orbit.faint{stroke:#9ac9b917}.ego-line{fill:none;stroke-width:1.3px;stroke-linecap:round;opacity:.72;stroke-dasharray:1;stroke-dashoffset:1px;animation:ego-draw .9s cubic-bezier(.3, .6, .2, 1) calc(var(--i) * 55ms + .12s) forwards;transition:opacity .2s,stroke-width .2s}.ego-line.dashed{stroke-dasharray:.028 .022;stroke-dashoffset:0;opacity:0;animation-name:ego-fade}.ego-line.active{stroke-width:2.2px;opacity:1}.ego-line.muted{opacity:.16!important}.ego-core-glow{transform-box:fill-box;transform-origin:50%;animation:1.6s ease-out .12s both ego-bloom}.ego-core{fill:#f4dca4;stroke:#0f201c;stroke-width:2px}.ego-core-label{fill:#f2e5c6;font-family:var(--font-display);letter-spacing:.12em;paint-order:stroke;stroke:#11231e;stroke-width:4px;font-size:13px}.ego-node{cursor:pointer;opacity:0;animation:ego-node-in .5s ease-out calc(var(--i) * 55ms + .42s) forwards;transition:opacity .2s}.ego-node text{fill:#d8dccd;paint-order:stroke;stroke:#11231e;stroke-width:3.5px;stroke-linejoin:round;font-size:10.5px;transition:fill .2s}.ego-node .ego-period{fill:#93a198;font-size:8px}.ego-hit{fill:#0000}.ego-node.active text{fill:#fff3d4}.ego-node.muted{opacity:.32!important}@keyframes ego-draw{to{stroke-dashoffset:0}}@keyframes ego-fade{to{opacity:.6}}@keyframes ego-node-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@keyframes ego-bloom{0%{opacity:0;transform:scale(.4)}55%{opacity:1;transform:scale(1.22)}to{opacity:1;transform:none}}.panel-section .relation-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.relation-list li{animation:relation-in .35s ease-out calc(var(--i) * 35ms) both}.relation-list button{border:0;border-left:2px solid color-mix(in srgb, var(--kind) 55%, transparent);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:0 8px 8px 0;grid-template-columns:50px 1fr;gap:3px 10px;padding:9px 8px 9px 10px;transition:background .2s,border-color .2s;display:grid}.relation-list li.active button,.relation-list button:hover,.relation-list button:focus-visible{border-left-color:var(--kind);background:color-mix(in srgb, var(--kind) 8%, transparent)}.relation-kind{color:var(--kind);letter-spacing:.08em;grid-row:1/3;padding-top:2px;font-size:10px}.relation-list strong{font-size:14px;font-weight:500}.relation-label{color:#c9c3ad;grid-column:2;font-size:11px}.relation-label em{color:var(--paper-muted);font-style:normal}.relation-story{color:#a9b4aa;grid-column:2;margin-top:2px;font-size:11.5px;line-height:1.7}.relation-more{color:var(--teal);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px dashed #9ac9b959;margin:8px 0 0 12px;padding:4px 0;font-size:11px;display:block}.relation-more:hover{border-bottom-style:solid}.contextual-links{border-top:1px dashed #e0ca9f1f;margin-top:16px;padding-top:12px}.contextual-links>span{color:#b8bfae;align-items:baseline;gap:8px;font-size:11px;display:flex}.contextual-links>span small{color:#88958c;font-size:10px}.contextual-links>div{flex-wrap:wrap;gap:4px 12px;margin-top:8px;display:flex}.contextual-links button{color:#c8d0c2;font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px dotted #adbab266;padding:3px 0;font-size:12px}.contextual-links button:hover,.contextual-links button:focus-visible{color:var(--gold);border-bottom-color:var(--gold)}@keyframes relation-in{0%{opacity:0;transform:translate(-4px)}}.panel-section .scene-list{gap:2px;margin:0;padding:0 0 0 12px;list-style:none;display:grid;position:relative}.scene-list:before{content:"";background:linear-gradient(#dfc18c73,#dfc18c14);width:1px;position:absolute;top:12px;bottom:12px;left:3px}.scene-list button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:56px 1fr auto auto;align-items:center;gap:8px;padding:9px 6px;display:grid;position:relative}.scene-list button:before{content:"";border:1px solid var(--gold);background:#1a2d27;border-radius:50%;width:7px;height:7px;margin-top:-3.5px;transition:background .2s,box-shadow .2s;position:absolute;top:50%;left:-12px}.scene-list button:hover,.scene-list button:focus-visible{background:#dfc18c0f}.scene-list button:hover:before,.scene-list button:focus-visible:before{background:var(--gold);box-shadow:0 0 10px var(--gold)}.scene-year{color:var(--gold);white-space:nowrap;font-size:11px}.scene-copy{gap:3px;min-width:0;display:grid}.scene-copy strong{font-size:13.5px;font-weight:500}.scene-copy small{color:#a7b2a6;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.scene-flag{color:#d0a373;border:1px solid #d0a37366;border-radius:4px;padding:1px 5px;font-size:9px}.scene-list button>svg{color:var(--teal);opacity:.5;transition:opacity .2s,transform .2s}.scene-list button:hover>svg{opacity:1;transform:translate(2px)}.scene-card{z-index:16;scrollbar-width:thin;background:linear-gradient(160deg,#282418f5,#101e1af7);border:1px solid #dfc18c57;border-radius:18px;width:340px;max-height:calc(100% - 150px);padding:16px 18px 14px;animation:.45s cubic-bezier(.2,.75,.2,1) scene-card-in;position:absolute;top:16px;left:16px;overflow-y:auto;box-shadow:0 20px 60px #00000061,inset 0 1px #ffecbe0f}.scene-card>header{justify-content:space-between;align-items:center;gap:8px;display:flex}.scene-card-kicker{color:var(--gold);letter-spacing:.06em;align-items:center;gap:6px;font-size:10.5px;display:flex}.scene-card>header .icon-button{border:0;width:28px;height:28px}.scene-card h2{font-family:var(--font-display);letter-spacing:.08em;margin:8px 0 6px;font-size:30px;font-weight:500}.scene-card-place{color:#cfc5a9;justify-content:space-between;align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.scene-card-narrative{color:#d6d9cc;margin:12px 0 14px;font-size:13px;line-height:1.85}.scene-cast{border-top:1px solid #dfc18c24;flex-wrap:wrap;gap:6px;margin:0;padding:12px 0 0;list-style:none;display:flex}.scene-cast li{animation:relation-in .4s ease-out calc(var(--i) * 60ms + .2s) both}.scene-cast button{color:inherit;font:inherit;text-align:left;cursor:pointer;background:#ffffff06;border:1px solid #ddcfaa2e;border-radius:999px;align-items:center;gap:7px;padding:5px 10px 5px 5px;transition:border-color .2s,background .2s;display:flex}.scene-cast button:hover,.scene-cast button:focus-visible{border-color:#dfc18c8c}.scene-cast button[aria-current=true]{border-color:var(--gold);background:#dfc18c1f}.scene-cast-initial{color:#f0dcb1;width:26px;height:26px;font-family:var(--font-display);background:radial-gradient(circle at 35% 30%,#7e4432,#2d2921);border-radius:50%;place-items:center;font-size:14px;display:grid}.scene-cast strong{font-size:12.5px;font-weight:500;display:block}.scene-cast small{color:#a9b19f;font-size:10px;display:block}.scene-card>footer{color:var(--paper-muted);align-items:center;gap:8px;margin-top:14px;font-size:11px;display:flex}.scene-card>footer button{border:1px solid var(--line);width:30px;height:30px;color:var(--paper);cursor:pointer;background:0 0;border-radius:8px;place-items:center;display:grid}.scene-card>footer button:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}.scene-card>footer button:disabled{opacity:.35;cursor:not-allowed}.scene-card>footer a{color:var(--teal);align-items:center;gap:3px;margin-left:auto;font-size:11px;text-decoration:none;display:flex}.scene-card>footer a:hover{text-decoration:underline}@keyframes scene-card-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}}.scene-marker{pointer-events:none;place-items:center;width:44px;height:44px;display:grid;position:relative}.scene-marker-ring{border:1px solid #f4d08ab3;border-radius:50%;animation:2.8s ease-out infinite scene-ring;position:absolute;inset:0}.scene-marker-seal{color:#fbe9c6;width:28px;height:28px;font-family:var(--font-display);background:#a8432f;border-radius:5px;place-items:center;font-size:17px;animation:.6s cubic-bezier(.3,1.4,.5,1) both scene-seal;display:grid;transform:rotate(-4deg);box-shadow:0 0 0 3px #a8432f40,0 0 24px #f4d08a8c}.scene-marker-label{color:#f6e3bd;white-space:nowrap;background:#3c1c14e6;border-radius:5px;padding:3px 7px;font-size:11px;position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%)}@keyframes scene-ring{0%{opacity:1;transform:scale(.7)}to{opacity:0;transform:scale(2.1)}}@keyframes scene-seal{0%{opacity:0;transform:scale(1.6)rotate(-14deg)}}.history-map .map-person-marker{transition:opacity .45s,filter .45s}.history-map.scene-active .map-person-marker:not(.in-scene){opacity:.26}.map-person-marker.in-scene .marker-core{box-shadow:0 0 0 5px #f4d08a38,0 0 20px #f4d08a}.map-companion-marker{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:28px;height:28px;padding:8px;animation:.5s ease-out both companion-in;display:flex;position:relative;overflow:visible;z-index:5!important}.map-companion-marker .marker-core{border:1.5px solid var(--marker-color,#d3a85e);width:10px;height:10px;box-shadow:0 0 0 4px #101e2055, 0 0 12px color-mix(in srgb, var(--marker-color) 45%, transparent);background:#0f1d1b}.map-companion-marker .marker-core:after{content:none}.map-companion-marker .marker-label{color:#d6dccd;background:#101e1edb;border-style:dashed;left:26px}.map-companion-marker .marker-label small{color:#9eaaa1;margin-left:5px;font-size:10px}.map-companion-marker.label-visible .marker-label,.map-companion-marker:hover .marker-label,.map-companion-marker:focus-visible .marker-label{visibility:visible;opacity:1;transform:translateY(-50%)scale(1)}.map-companion-marker:hover .marker-core,.map-companion-marker:focus-visible .marker-core{transform:scale(1.3)}@keyframes companion-in{0%{opacity:0}}.hero-card.bond-card{flex-direction:column;align-items:center;min-height:0;padding:26px 25px 22px;display:flex}.bond-card-stage{aspect-ratio:2;width:100%;margin:14px 0 6px;position:relative}.bond-card-stage svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.bond-card-arc{fill:none;stroke:var(--kind);stroke-width:1.4px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;filter:drop-shadow(0 0 5px var(--kind));animation:1.3s cubic-bezier(.4,.1,.2,1) .35s forwards ego-draw}.bond-card-spark{fill:#fff3cf;filter:drop-shadow(0 0 4px #fff3cf);opacity:0;animation:.4s ease-out 1.5s forwards bond-spark-in}@keyframes bond-spark-in{to{opacity:1}}.bond-card-orb{color:#efdcb2;width:50px;height:50px;font-family:var(--font-display);box-shadow:0 0 0 1px color-mix(in srgb, var(--kind) 55%, transparent), 0 0 28px color-mix(in srgb, var(--kind) 30%, transparent);background:radial-gradient(circle at 35% 30%,#7e4432,#2d2921);border-radius:50%;place-items:center;font-size:24px;font-weight:400;animation:.7s cubic-bezier(.2,.75,.2,1) both bond-orb-in;display:grid;position:absolute;top:65%;transform:translate(-50%,-50%)}.bond-card-orb.first{--from:-18px;left:18.3%}.bond-card-orb.second{--from:18px;background:radial-gradient(circle at 35% 30%,#3f6456,#1f2a26);animation-delay:.12s;left:81.7%}@keyframes bond-orb-in{0%{opacity:0;transform:translate(calc(-50% + var(--from)), -50%) scale(.8)}}.hero-card.bond-card h2.bond-card-names{letter-spacing:.1em;align-items:baseline;gap:10px;margin:0 0 6px;font-size:30px;display:flex}.bond-card-names i{color:var(--kind);font-style:normal}.hero-card.bond-card>p.bond-card-kind{color:#b1a78f;letter-spacing:.05em;font-size:11px}.hero-card.bond-card blockquote{min-height:86.4px;margin:16px 0 8px;animation:.6s ease-out .5s both bond-story-in}@keyframes bond-story-in{0%{opacity:0;transform:translateY(4px)}}.bond-card-dots{justify-content:center;gap:2px;display:flex}.bond-card-dots button{cursor:pointer;background:0 0;border:0;place-items:center;width:22px;height:22px;padding:0;display:grid}.bond-card-dots button:before{content:"";background:#dfc18c4d;border-radius:3px;width:6px;height:6px;transition:width .3s,background .3s}.bond-card-dots button[aria-pressed=true]:before{background:var(--kind);width:16px}.bond-card-dots button:hover:before{background:#dfc18cb3}.hero-card.bond-card .hero-card-action{margin-top:10px}.journeys-tabs{border:1px solid var(--line);border-radius:14px;flex-shrink:0;gap:4px;width:max-content;margin:0 28px 16px;padding:4px;display:flex}.journeys-dialog .journeys-tabs button{border-color:#0000;align-items:center;gap:6px;min-height:34px;padding:6px 14px;font-size:13px;display:flex}.journeys-dialog .journeys-tabs button[aria-pressed=true]{color:var(--gold);border-color:var(--line);background:color-mix(in srgb, var(--gold) 8%, transparent)}.journeys-tabs small{color:var(--paper-muted);font-size:11px}.scene-stops .journeys-stop-index{min-width:62px;color:var(--gold);white-space:nowrap}@media (width<=700px){.scene-card{width:auto;max-height:calc(100% - min(42vh,390px) - 60px);padding:12px 14px;top:44px;left:10px;right:10px}.scene-card h2{margin:4px 0;font-size:23px}.scene-card-narrative{margin:8px 0 10px;font-size:12px;line-height:1.75}.workspace:has(.person-panel.expanded) .scene-card{display:none}.journeys-tabs{margin:0 16px 12px}}@media (width<=560px){.hero-card.bond-card{text-align:center;grid-template-columns:none;min-height:0;display:flex}.bond-card-stage{width:min(240px,100%);margin-top:6px}.hero-card.bond-card h2.bond-card-names{margin-top:0;font-size:26px}.hero-card.bond-card .hero-card-action{justify-content:center;margin:10px auto 0}}@media (forced-colors:active){.ego-line,.bond-card-arc{stroke:canvastext}.scene-card{border:1px solid canvastext}}.map-person-marker.label-left .marker-label{left:auto;right:28px}.map-person-marker.map-person-marker:is(:hover,:focus-visible),.map-companion-marker:is(:hover,:focus-visible){z-index:10!important}:root{color:#edf0e9;font-synthesis:none;text-rendering:optimizelegibility;--ink:#0c1717;--ink-raised:#162524;--paper:#edf0e9;--paper-muted:#adbab2;--gold:#dfc18c;--gold-soft:#92784d;--vermilion:#ad4c3e;--teal:#9ac9b9;--line:#c6ddcd24;--font-display:"Zhuque Fangsong (technical preview)", FangSong, "Songti SC", SimSun, serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);background:#0c1717;font-family:ui-sans-serif,system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-behavior:smooth}html,body,#root{min-height:100%;margin:0}body{min-width:320px;overflow-x:hidden}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;transition:background .18s,border-color .18s,color .18s}button:disabled{cursor:not-allowed}::selection{color:#fff7e5;background:#517b6b}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:2px solid #f1ca7c}a{color:inherit}.skip-link{z-index:1000;color:#17140f;background:#f4e3bd;padding:10px 14px;transition:transform .2s;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:none}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.intro{min-height:100svh;padding:max(26px, var(--safe-top)) clamp(24px, 5vw, 78px) 28px;isolation:isolate;background:radial-gradient(circle at 72% 42%,#ac5d3130,#0000 19%),radial-gradient(circle at 73% 45%,#e0b86914,#0000 32%),radial-gradient(circle at 18% 72%,#38696233,#0000 28%),linear-gradient(125deg,#050b0b 0%,#091714 48%,#07100f 100%);position:relative;overflow:hidden}.intro:before{content:"";z-index:-2;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");position:absolute;inset:0}.intro:after{content:"";z-index:-1;aspect-ratio:1;border:1px solid #dbb77121;border-radius:50%;width:58vw;position:absolute;top:10%;right:-2%;box-shadow:inset 0 0 70px #b2572f14,0 0 100px #b883460d}.intro-header{z-index:5;justify-content:space-between;align-items:center;display:flex;position:relative}.intro-header>a{color:#b8ad99;letter-spacing:.13em;border-bottom:1px solid #d5ba8466;padding-bottom:5px;font-size:12px;text-decoration:none}.brand{align-items:center;gap:12px;text-decoration:none;display:flex}.brand-seal{color:#f4d79d;background:#9a3f32;border:1px solid #ffdea578;place-items:center;width:39px;height:39px;font-family:ZCOOL XiaoWei,Noto Serif SC,serif;font-size:22px;display:grid;transform:rotate(-2deg);box-shadow:inset 0 0 0 3px #34110c38}.brand>span:last-child{flex-direction:column;gap:1px;display:flex}.brand strong{font-family:var(--font-display);letter-spacing:.12em;font-size:19px;font-weight:600}.brand small{letter-spacing:.24em;color:#988f81;font-family:ui-sans-serif,system-ui,sans-serif;font-size:7px}.brand-button{cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.hero{z-index:2;width:min(650px,55vw);margin-top:clamp(90px,14vh,150px);margin-left:clamp(0px,3vw,42px);position:relative}.hero-eyebrow{color:#d1b77f;letter-spacing:.24em;align-items:center;gap:9px;margin-bottom:25px;font-size:12px;display:flex}.hero h1{font-family:var(--font-display);letter-spacing:.02em;text-shadow:0 8px 40px #00000059;margin:0;font-size:clamp(54px,6.2vw,96px);font-weight:400;line-height:1.16}.hero h1 em{color:#d6af68;font-style:normal}.hero>p{letter-spacing:.09em;color:#bcb6aa;width:min(540px,100%);margin:29px 0 34px;font-size:clamp(14px,1.3vw,17px);line-height:2}.enter-button{color:#182a25;cursor:pointer;letter-spacing:.12em;background:#dfc18c;border:1px solid #efd5a6;border-radius:12px;align-items:center;gap:32px;min-width:210px;padding:17px 22px 17px 27px;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 8px 40px #dfc18c1f}.enter-button:after{content:"";border:1px solid #efd5a221;position:absolute;inset:3px}.enter-button>*{z-index:2;position:relative}.enter-button i{z-index:1;background:linear-gradient(105deg,#0000 10%,#ffe1a32b,#0000 70%);transition:transform .65s;position:absolute;inset:0;transform:translate(-110%)}.enter-button:hover i{transform:translate(80%)}.enter-button svg{transition:transform .25s}.enter-button:hover svg{transform:translate(4px)}.hero-stats{gap:clamp(26px,4vw,60px);margin-top:44px;display:flex}.hero-stats>div{align-items:baseline;gap:8px;display:flex}.hero-stats strong{color:#d9bb80;font-variant-numeric:tabular-nums;font-size:23px;font-weight:400}.hero-stats span{color:#a6b0a6;letter-spacing:.08em;font-size:12px}.hero-card{z-index:2;width:290px;min-height:390px;color:inherit;text-align:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(145deg,#263d33d1,#0c1b1799);border:1px solid #dbd7b738;border-radius:24px;padding:30px 25px;transition:border-color .3s,transform .3s,box-shadow .3s;position:absolute;top:23%;right:clamp(50px,9vw,145px);box-shadow:0 28px 80px #0000004d}:is(.hero-card:has(.hero-card-action:hover),.hero-card:has(.hero-card-action:focus-visible)){border-color:#e9c88580;transform:translateY(-5px);box-shadow:0 34px 95px #0000006b,0 0 40px #be7e4112}.hero-card:before,.hero-card:after{content:none}.hero-card:before{border-top:1px solid;border-left:1px solid;top:-1px;left:-1px}.hero-card:after{border-bottom:1px solid;border-right:1px solid;bottom:-1px;right:-1px}.hero-card>span{letter-spacing:.22em;color:#a7987f;font-size:10px}.hero-card-orbit{border:1px solid #d4b06945;border-radius:50%;place-items:center;width:132px;height:132px;margin:30px auto 20px;display:grid;position:relative}.hero-card-orbit:before,.hero-card-orbit:after{content:"";border:1px solid #6ea49733;border-radius:50%;position:absolute}.hero-card-orbit:before{inset:11px -8px;transform:rotate(55deg)}.hero-card-orbit:after{inset:-8px 16px;transform:rotate(-35deg)}.hero-card-orbit i{background:#e0b768;border-radius:50%;width:7px;height:7px;position:absolute;top:8px;right:21px;box-shadow:0 0 16px #e0b768}.hero-card-orbit b{color:#e8d5ad;background:radial-gradient(circle at 35% 30%,#7e4432,#2d2921);border-radius:50%;place-items:center;width:83px;height:83px;font-size:39px;font-weight:400;display:grid}.hero-card h2{font-family:var(--font-display);letter-spacing:.14em;margin:0 0 5px;font-size:36px;font-weight:500}.hero-card>p{color:#a49c8e;margin:0;font-size:11px}.hero-card blockquote{color:#cdbf9e;margin:21px 0;font-size:12px;line-height:1.8}.hero-card>small{color:#adb6a8;font-size:11px}.hero-card-action{color:#d5b675;cursor:pointer;letter-spacing:.12em;opacity:.7;background:0 0;border:0;border-bottom:1px solid #d8b56e33;justify-content:center;align-items:center;gap:6px;width:max-content;margin:18px auto 0;padding:3px 0;font-size:9px;transition:opacity .2s,gap .2s,border-color .2s;display:flex}.hero-card-action:hover,.hero-card-action:focus-visible{opacity:1;border-color:#e5c17a8c;gap:10px}.intro-method{z-index:3;border-left:1px solid #dab56a59;gap:15px;width:min(400px,33vw);padding-left:17px;display:flex;position:absolute;bottom:58px;right:clamp(34px,7vw,110px)}.intro-method>span{color:#cbaa6c;padding-top:3px}.intro-method strong{letter-spacing:.1em;font-size:12px}.intro-method p{color:#858078;margin:7px 0 0;font-size:10px;line-height:1.8}.intro footer{color:#5f625e;letter-spacing:.12em;font-size:9px;position:absolute;bottom:25px;left:clamp(24px,5vw,78px)}.intro-stars i{--angle:calc(var(--star) * 22.5deg);z-index:-1;left:calc(73% + cos(var(--angle)) * 24vw);top:calc(44% + sin(var(--angle)) * 24vw);width:calc(2px + mod(var(--star), 3) * 1px);height:calc(2px + mod(var(--star), 3) * 1px);opacity:calc(.2 + mod(var(--star), 4) * .15);animation:twinkle calc(3s + mod(var(--star), 5) * 1s) ease-in-out infinite alternate;background:#e8c57e;border-radius:50%;position:absolute;box-shadow:0 0 9px #e7be6ecc}@keyframes twinkle{to{opacity:.12;transform:scale(.6)}}.app-shell{--topbar-h:56px;--timeline-h:88px;background:var(--ink);width:100%;height:100dvh;position:relative;overflow:hidden}.app-shell:after{content:"";z-index:30;pointer-events:none;border:1px solid #dfbe7d14;position:fixed;inset:0;box-shadow:inset 0 0 80px #0000003d}.topbar{z-index:40;height:var(--topbar-h);padding:var(--safe-top) 24px 0;border-bottom:1px solid var(--line);background:#101e1d;align-items:center;display:flex;position:relative}.topbar .brand{min-width:210px}.topbar .brand-seal{width:33px;height:33px;font-size:19px}.topbar-context{border-left:1px solid var(--line);align-items:baseline;gap:12px;padding-left:20px;display:flex}.topbar-context span{color:var(--active-accent);letter-spacing:.15em;font-size:14px;font-weight:600}.topbar-context strong{color:#a6b0a1;letter-spacing:.06em;font-size:11px;font-weight:400}.top-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.icon-button,.action-button,.search-action{border:1px solid var(--line);cursor:pointer;background:#edf0e109;border-radius:10px}.icon-button{place-items:center;width:38px;height:38px;padding:0;display:grid}.icon-button:hover,.action-button:hover,.search-action:hover{background:#e5c27e1a;border-color:#e2be7752}.action-button{align-items:center;gap:7px;height:38px;padding:0 13px;font-size:12px;display:flex}.search-action{color:#b0b9ae;text-align:left;align-items:center;gap:10px;width:230px;height:38px;padding:0 10px 0 13px;font-size:12px;display:flex}.search-action span{flex:1}.search-action kbd{color:#9a978e;border:1px solid #e9d9ba2e;padding:2px 5px;font:9px ui-sans-serif,sans-serif}.timeline-wrap{z-index:35;height:var(--timeline-h);border-bottom:1px solid var(--line);background:#132320;display:flex;position:relative}.timeline-heading{border-right:1px solid var(--line);flex-direction:column;flex:0 0 150px;justify-content:center;gap:4px;padding-left:22px;display:flex}.timeline-heading>span{letter-spacing:.18em;color:#c6b99e;font-size:11px}.timeline-heading small{color:#a5b0a4;font-size:10px}.period-timeline{scrollbar-width:none;flex:1;padding:0 20px;display:flex;position:relative;overflow:auto hidden}.period-timeline::-webkit-scrollbar{display:none}.period-timeline:before{content:"";background:linear-gradient(90deg,#0000,#d7b46f47 6% 94%,#0000);height:1px;position:absolute;top:34px;left:35px;right:35px}.period-node{--period-accent:#c6a665;cursor:pointer;color:#777a73;background:0 0;border:0;flex-direction:column;flex:1 0 72px;align-items:center;gap:2px;min-width:72px;padding:20px 7px 0;display:flex;position:relative}.period-dot{background:#414a44;border:1px solid #758078;border-radius:50%;width:8px;height:8px;margin:10px 0 5px;transition:all .3s;position:relative}.period-node strong{letter-spacing:.06em;white-space:nowrap;font-size:12px;font-weight:400}.period-node small{color:#a1aaa0;font-size:9px}.period-node:hover{color:#c9c1b3}.period-node.active{color:#f0e6d2}.period-node.active .period-dot{background:var(--period-accent);width:11px;height:11px;box-shadow:0 0 0 5px color-mix(in srgb, var(--period-accent) 16%, transparent), 0 0 18px var(--period-accent);border-color:#f2d59e;margin-top:8px;margin-bottom:4px}.period-node.active:after{content:"";background:var(--period-accent);width:30px;height:2px;box-shadow:0 0 12px var(--period-accent);position:absolute;bottom:0}.workspace{height:calc(100dvh - var(--topbar-h));position:relative;overflow:hidden}.history-map,.map-canvas,.map-suspense{position:absolute;inset:0}.history-map{background:#07110f}.map-canvas.maplibregl-map{z-index:1;width:100%;height:100%;position:absolute;inset:0}.three-overlay{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.constellation-canvas{width:100%;height:100%}.maplibregl-canvas{outline:none}.maplibregl-control-container{z-index:8;pointer-events:none;position:absolute;inset:0}.maplibregl-ctrl-group{border:1px solid #dbdec140;overflow:hidden;background:#122721f2!important;border-radius:10px!important;box-shadow:0 8px 22px #0003!important}.maplibregl-ctrl button{filter:invert(87%)sepia(20%)saturate(280%)}.history-map .maplibregl-ctrl-attrib{color:#dce5cd;font-size:9px;background:#0c1c15f5!important}.history-map .maplibregl-ctrl-attrib a,.history-map .maplibregl-ctrl-attrib-inner{color:#c5d1be}.history-map .maplibregl-ctrl-attrib-button{filter:invert(85%)}.history-map .maplibregl-ctrl-bottom-left{bottom:45px;left:14px}.history-map .maplibregl-ctrl-scale{color:#e4e9d5;background:#193127ed;border-color:#c1d2b3;border-radius:0 0 3px 3px;font:10px ui-sans-serif,system-ui,sans-serif;margin-top:8px!important}.history-map .maplibregl-ctrl-bottom-right{bottom:3px;right:8px}.workspace:has(.person-panel) .maplibregl-ctrl-bottom-right{right:368px}.map-person-marker{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:30px;height:30px;padding:8px;display:flex;position:relative;overflow:visible;z-index:6!important}.marker-core{background:var(--marker-color,#d3a85e);width:11px;height:11px;box-shadow:0 0 0 5px #101e2077, 0 0 16px color-mix(in srgb, var(--marker-color) 70%, transparent);border:2px solid #f1e8c8;border-radius:50%;flex:none;transition:transform .2s;display:block;position:relative}.marker-core:after{content:"";background:linear-gradient(#e7c580,#0000);width:1px;height:19px;position:absolute;top:8px;left:50%}.marker-label{visibility:hidden;opacity:0;color:#f0ecda;white-space:nowrap;text-shadow:0 2px 4px #000;background:#10231eeb;border:1px solid #dddfb940;border-radius:6px;padding:6px 9px;font-size:12px;line-height:1;transition:opacity .18s,transform .18s;position:absolute;top:50%;left:28px;transform:translate(-3px,-50%)scale(.96);box-shadow:0 4px 10px #00000080}.map-person-marker.label-visible .marker-label,.map-person-marker:hover .marker-label,.map-person-marker:focus-visible .marker-label,.map-person-marker.selected .marker-label{visibility:visible;opacity:1;transform:translateY(-50%)scale(1)}.map-person-marker.label-visible{z-index:7!important}.map-person-marker:hover .marker-core,.map-person-marker:focus-visible .marker-core{transform:scale(1.35)}.map-person-marker.selected .marker-core{background:#ad493a;width:14px;height:14px;box-shadow:0 0 0 6px #b44f3833,0 0 24px #e6a65f}.map-person-marker.selected .marker-label{color:#fff1d5;background:#5b261dde;border-color:#efc6748c;font-size:12px}.map-person-marker.selected{z-index:9!important}.map-period-stamp{z-index:6;pointer-events:none;text-shadow:0 2px 12px #000;align-items:center;gap:13px;display:flex;position:absolute;top:25px;left:28px}.map-period-stamp>span{font-family:var(--font-display);color:color-mix(in srgb, var(--active-accent) 70%, #f2dfba);font-size:56px;line-height:1}.map-period-stamp>div{border-left:1px solid #dfc08059;flex-direction:column;gap:2px;padding-left:12px;display:flex}.map-period-stamp strong{letter-spacing:.1em;font-size:13px}.map-period-stamp small{color:#d1d9c9;font-size:11px}.map-legend{z-index:6;color:#c6d0bd;background:#0d1d18e6;border:1px solid #d1e0b72e;border-radius:7px;align-items:center;gap:16px;padding:8px 11px;font:10px ui-sans-serif,system-ui,sans-serif;display:flex;position:absolute;bottom:16px;left:24px}.map-legend span{align-items:center;gap:5px;display:flex}.map-legend i{display:block}.legend-person{background:#d8ae65;border-radius:50%;width:6px;height:6px;box-shadow:0 0 7px #d8ae65}.legend-link{background:#88b4a9;width:17px;height:1px}.map-view-controls{z-index:8;background:#12241ef2;border:1px solid #d6dfb83d;border-radius:12px;display:flex;position:absolute;bottom:62px;left:70px;overflow:hidden;box-shadow:0 12px 32px #00000038}.map-view-controls button{color:#d1d8c2;cursor:pointer;white-space:nowrap;background:0 0;border:0;justify-content:center;align-items:center;gap:7px;height:40px;padding:0 13px;font-size:11px;display:flex}.map-view-controls button+button{border-left:1px solid #dbbe8421}.map-view-controls button:hover{color:#f0d6a2;background:#ddb16117}.map-view-controls button[aria-pressed=true]{color:#bce4ce;background:#8ab6a21a}.map-view-controls button:disabled{opacity:.45;cursor:not-allowed}.map-keyboard-help{z-index:8;color:#d3dcc8;letter-spacing:.03em;text-shadow:0 2px 5px #000;background:#10271eb3;border-radius:5px;margin:0;padding:4px 7px;font:10px ui-sans-serif,system-ui,sans-serif;transition:opacity .15s;position:absolute;bottom:111px;left:72px}.history-map:has(.map-person-preview) .map-keyboard-help{opacity:0}.map-person-preview{z-index:10;cursor:pointer;text-align:left;background:linear-gradient(120deg,#193025f7,#0c1c17f7);border:1px solid #d7e1b24d;border-radius:14px;grid-template-columns:45px minmax(140px,1fr) auto;align-items:center;gap:12px;width:min(360px,100% - 470px);min-width:285px;padding:14px;animation:.18s ease-out preview-in;display:grid;position:absolute;bottom:145px;left:28px;box-shadow:0 18px 50px #0000004d}@keyframes preview-in{0%{opacity:0;transform:translateY(7px)}}.preview-orbit{color:#efd9ab;background:radial-gradient(circle,#763c30 0 42%,#7a463038 44% 61%,#0000 63%);border:1px solid #e1bc7259;border-radius:50%;place-items:center;width:44px;height:44px;font-size:18px;display:grid}.preview-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.preview-copy small{color:#b49560;letter-spacing:.1em;font-size:7px}.preview-copy strong{font-size:15px;font-weight:500}.preview-copy em,.preview-copy>span{color:#92978f;text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-style:normal;overflow:hidden}.preview-copy>span{color:#777f78}.preview-action{color:#cdb279;white-space:nowrap;border-left:1px solid #ddc0861f;align-self:stretch;align-items:center;padding-left:12px;font-size:8px;display:flex}.map-loading,.map-suspense{z-index:20;background:radial-gradient(circle,#14241f,#07100f 65%);flex-direction:column;justify-content:center;align-items:center;display:flex}.map-loading span,.map-suspense span{border:1px solid #deb66933;border-top-color:#ddba75;border-radius:50%;width:42px;height:42px;margin-bottom:15px;animation:1.1s linear infinite spin}.map-loading strong{letter-spacing:.18em;font-size:13px;font-weight:400}.map-loading small,.map-suspense p{color:#717770;margin-top:6px;font-size:9px}@keyframes spin{to{transform:rotate(360deg)}}.tile-warning{z-index:11;color:#f4e2bb;background:#41311cf7;border:1px solid #dfb5694d;border-radius:9px;max-width:calc(100% - 430px);padding:9px 12px;font-size:11px;position:absolute;top:185px;left:24px}.tile-warning button{color:#f6ddb1;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin-left:9px;padding:2px;text-decoration:underline;display:inline-flex}.map-style-controls{z-index:8;align-items:center;gap:8px;display:flex;position:absolute;top:29px;right:405px}.map-theme-switch{border:1px solid var(--line);background:#132c24ed;border-radius:10px;padding:4px;display:flex}.map-theme-switch button,.connection-toggle{color:#c4cfba;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:6px;height:30px;padding:0 10px;font-size:11px;display:flex}.map-theme-switch button[aria-pressed=true]{color:#1b3227;background:#ced8b9}.connection-toggle{border:1px solid var(--line);background:#132c24ed;border-radius:10px;height:40px}.connection-toggle[aria-pressed=true]{color:#c7e7ce}.connection-toggle[aria-pressed=false]{color:#b1b9a8}.map-coordinate{z-index:6;color:#d1dfc7;text-shadow:0 1px 4px #05100d;align-items:center;gap:8px;font:10px ui-monospace,SFMono-Regular,monospace;display:flex;position:absolute;bottom:24px;right:404px}.map-coordinate span:last-child{color:#bed5bc}.map-context-note{display:none}.place-inspector{z-index:14;background:#142a23f7;border:1px solid #b9d2a547;border-radius:16px;width:340px;max-height:calc(100% - 325px);padding:16px;animation:.2s ease-out preview-in;position:absolute;bottom:145px;left:24px;overflow-y:auto;box-shadow:0 18px 60px #0005}.place-inspector>header{justify-content:space-between;align-items:center;display:flex}.place-inspector>header>span{color:#b2d2b6;align-items:center;gap:6px;font-size:11px;display:flex}.place-inspector .icon-button{background:0 0;border:0;width:26px;height:26px}.place-inspector h3{font-family:var(--font-display);margin:6px 0 9px;font-size:26px;font-weight:500}.place-inspector>p{color:#bccab1;justify-content:space-between;align-items:center;gap:5px;margin:0 0 15px;font:10px ui-monospace,monospace;display:flex}.place-inspector>p button{color:#d3e4bc;cursor:pointer;background:#a2c78a14;border:1px solid #b7c8a33b;border-radius:5px;align-items:center;gap:3px;padding:4px 6px;font:10px ui-sans-serif,system-ui,sans-serif;display:inline-flex}.nearby-heading{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding-top:13px;font-size:11px;display:flex}.nearby-heading span{color:#b6c5a9;font-size:10px}.nearby-people{gap:6px;margin:11px 0;display:grid}.nearby-people>button{text-align:left;cursor:pointer;background:#c3dba708;border:1px solid #b6c59d24;border-radius:8px;align-items:center;gap:10px;width:100%;padding:8px;display:flex}.nearby-people>button:hover{background:#c3dba71c;border-color:#c3dba74d}.nearby-initial{color:#dece9f;height:32px;font-family:var(--font-display);background:#718f6030;border-radius:50%;flex:0 0 32px;place-items:center;font-size:18px;display:grid}.nearby-people strong,.nearby-people small{display:block}.nearby-people strong{font-size:13px;font-weight:500}.nearby-people small{text-overflow:ellipsis;white-space:nowrap;color:#b3c3a7;max-width:170px;margin-top:2px;font-size:10px;overflow:hidden}.nearby-people em{color:#d5cc9e;white-space:nowrap;margin-left:auto;font:10px ui-sans-serif,system-ui,sans-serif}.place-inspector-note{color:#b8c3ac;font-size:10px;display:block}.inspection-marker{pointer-events:none;background:#d7c99933;border:2px solid #f0e4b6;border-radius:50%;width:20px;height:20px;box-shadow:0 0 0 7px #e2d5ad26,0 0 0 15px #d8d5a712}.history-map:has(.place-inspector) .map-keyboard-help{visibility:hidden}.map-theme-landscape .map-period-stamp{color:#f9f2d8}.workspace:not(:has(.person-panel)) .map-style-controls{right:24px}.workspace:not(:has(.person-panel)) .map-coordinate{right:24px}.workspace:not(:has(.person-panel)) .category-filter{max-width:calc(100% - 48px);right:24px}.category-filter{z-index:12;scrollbar-width:none;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0d1e1be6;border:1px solid #d4e4c933;border-radius:12px;width:max-content;max-width:calc(100% - 429px);padding:5px;display:flex;position:absolute;top:100px;left:24px;right:405px;overflow-x:auto;box-shadow:0 10px 30px #00000029}.category-filter button{color:#bec9bb;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:5px;min-width:max-content;height:32px;padding:0 10px;font-size:11px;display:flex}.category-filter button span{color:#a9b59f;font-size:9px}.category-filter button:hover:not(:disabled){color:#d1c6b0}.category-filter button.active{color:#182d27;background:#d9c196;box-shadow:0 2px 8px #0002}.category-filter button.active span{color:#3e5141}.category-filter button:disabled{opacity:.25;cursor:not-allowed}.map-result-count{z-index:9;color:#d4ddcd;letter-spacing:.06em;text-shadow:0 2px 6px #000;font-size:11px;position:absolute;top:154px;left:28px}.person-panel{z-index:18;overscroll-behavior:contain;width:360px;height:calc(100% - 32px);padding:27px 24px calc(26px + var(--safe-bottom));-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);scrollbar-width:thin;scrollbar-color:#cbc09c4d transparent;background:linear-gradient(150deg,#182a25f7,#0d1c19f7);border:1px solid #d0dec138;border-radius:20px;animation:.35s cubic-bezier(.2,.75,.2,1) panel-in;position:absolute;top:16px;right:16px;overflow-y:auto;box-shadow:0 18px 65px #0000004d}@keyframes panel-in{0%{opacity:.5;transform:translate(100%)}}.panel-grab{display:none}.panel-close{color:#86877f;background:0 0;border:0;position:absolute;top:17px;right:18px}.person-kicker{color:#c5bc9f;letter-spacing:.1em;align-items:center;gap:7px;font-size:11px;display:flex}.person-kicker span{width:18px;height:2px}.person-navigator{background:#ffffff06;border:1px solid #dddabe21;border-radius:10px;justify-content:space-between;align-items:stretch;gap:8px;margin:18px 0 7px;padding:7px;display:flex}.person-navigator>div:first-child{align-items:baseline;gap:8px;padding:3px 5px;display:flex}.person-navigator>div:first-child>span{color:#b3bfaf;letter-spacing:.05em;font-size:10px}.person-navigator>div:first-child strong{color:#e1c789;font:400 18px ui-serif,Georgia,serif}.person-navigator>div:first-child small{color:#676d67;font-size:8px}.person-navigator-actions{display:flex}.person-navigator-actions button{color:#898e87;cursor:pointer;background:0 0;border:0;border-left:1px solid #dec28a1a;justify-content:center;align-items:center;gap:5px;min-width:31px;padding:0 8px;font-size:8px;display:flex}.person-navigator-actions button:hover:not(:disabled){color:#f0d8a8;background:#d9b16312}.person-navigator-actions button:disabled{opacity:.3;cursor:not-allowed}.person-title-row{justify-content:space-between;align-items:center;margin-top:15px;display:flex}.person-title-row h2{font-family:var(--font-display);letter-spacing:.05em;margin:0;font-size:44px;font-weight:400}.person-title-row p{color:#b5bdac;margin:8px 0 0;font-size:11px}.name-orbit{border:1px solid #dcb87142;border-radius:50%;place-items:center;width:69px;height:69px;display:grid;position:relative}.name-orbit:after{content:"";border:1px solid #69a49633;border-radius:50%;position:absolute;inset:7px -5px;transform:rotate(54deg)}.name-orbit span{color:#ead3a5;background:#71382d;border-radius:50%;place-items:center;width:43px;height:43px;font-size:21px;display:grid}.person-tags{flex-wrap:wrap;gap:5px;margin:17px 0;display:flex}.person-tags span{color:#c4cbb7;border:1px solid #cddabd2e;border-radius:5px;padding:4px 8px;font-size:10px}.person-summary{color:#d6dece;margin:0 0 25px;font-size:13px;line-height:1.95}.person-primary-actions{margin:-8px 0 22px}.person-primary-actions>button{cursor:pointer;text-align:left;background:linear-gradient(90deg,#9748331f,#cea45409);border:1px solid #dcb76f33;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;width:100%;padding:10px 11px;display:grid}.person-primary-actions>button:hover{background:linear-gradient(90deg,#97483333,#cea45412);border-color:#e8c37a6e}.person-primary-actions>button>svg:first-child{color:#d3ad69}.person-primary-actions>button>span{flex-direction:column;gap:2px;display:flex}.person-primary-actions strong{font-size:10px;font-weight:500}.person-primary-actions small{color:#737870;font-size:7px}.panel-section{border-top:1px solid #e0ca9f1a;padding:19px 0}.panel-section h3{color:#d4c5a7;letter-spacing:.05em;align-items:center;gap:7px;margin:0 0 12px;font-size:12px;font-weight:500;display:flex}.panel-section ul{color:#bfc8b8;margin:0;padding-left:18px;font-size:12px;line-height:1.85}.panel-section li::marker{color:#b98b50}.geography-card{background:#8bbb9a12;border-radius:12px;margin:0 -9px;padding:18px 12px}.place-main{justify-content:space-between;align-items:baseline;display:flex}.place-main strong{font-size:17px;font-weight:500}.place-main span{color:#c09c5f;font-size:9px}.geography-card>p{color:#b6c2af;margin:8px 0 10px;font-size:11px;line-height:1.8}.confidence{color:#8e928c;background:#ffffff09;align-items:center;gap:6px;width:max-content;padding:3px 7px;font:8px ui-sans-serif,sans-serif;display:flex}.confidence>span{background:#77a394;border-radius:50%;width:5px;height:5px}.confidence-disputed{color:#d0a373}.confidence-disputed>span{background:#c4774c}.confidence-medium>span{background:#c4a761}.related-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.related-grid button{cursor:pointer;text-align:left;background:#ffffff06;border:1px solid #d3e0c026;border-radius:9px;flex-direction:column;align-items:flex-start;gap:5px;padding:11px;display:flex}.related-grid button:hover{background:#d6ae630f;border-color:#deb76c57}.related-grid span{font-size:13px}.related-grid small{color:#b2bba6;font-size:10px}.journey-trail{flex-wrap:wrap;gap:5px;display:flex}.journey-trail button{color:#999a92;cursor:pointer;background:#ffffff05;border:1px solid #ddbf841c;align-items:center;gap:5px;padding:5px 7px;font-size:8px;display:flex}.journey-trail button:hover{color:#e6d3aa;border-color:#ddb8704d}.journey-trail button.active{color:#f1d69e;background:#b550371f;border-color:#e1b96b57}.journey-trail button span{color:#6b706a;font:6px ui-sans-serif,sans-serif}.sources a{color:#b9a77f;border-bottom:1px dotted #d5b47133;justify-content:space-between;align-items:center;padding:7px 0;font-size:9px;text-decoration:none;display:flex}.sources a:hover{color:#f0cf91}.sources p{color:#646862;margin:10px 0 0;font-size:8px;line-height:1.6}.category-caption{color:#555d57;letter-spacing:.1em;font-size:8px}.reopen-panel{z-index:12;cursor:pointer;text-align:left;background:#12271df5;border:1px solid #dcdaaf40;border-radius:12px;grid-template-columns:auto auto;align-items:center;gap:4px 13px;padding:12px 16px;display:grid;position:absolute;bottom:64px;right:24px}.reopen-panel span{grid-column:1;font-size:13px}.reopen-panel small{color:#777c75;grid-column:1;font-size:8px}.reopen-panel svg{grid-area:1/2/3}.map-fallback{background:radial-gradient(circle at 30% 20%,#172923,#07100f 52%);padding:42px clamp(24px,5vw,70px);position:absolute;inset:0;overflow-y:auto}.map-fallback>div:first-child{max-width:560px}.map-fallback h2{margin:12px 0 7px;font-weight:500}.map-fallback p{color:#95988f;font-size:12px;line-height:1.8}.fallback-places{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;max-width:900px;margin-top:25px;display:grid}.fallback-places button{text-align:left;border:1px solid var(--line);cursor:pointer;background:#ffffff06;flex-direction:column;gap:5px;padding:13px;display:flex}.fallback-places button:hover{border-color:#91784e}.fallback-places span{color:#83877f;font-size:9px;line-height:1.5}.modal-backdrop{z-index:100;background:#020807c7;place-items:center;padding:28px;animation:.18s fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.directory{background:#132620;border:1px solid #d8e3bd3d;border-radius:20px;flex-direction:column;width:min(1080px,94vw);height:min(760px,90vh);display:flex;overflow:hidden;box-shadow:0 35px 100px #00000080}.directory-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding:25px 30px 19px;display:flex}.directory-header span,.about-kicker{color:#a88e5d;letter-spacing:.22em;font:8px ui-sans-serif,sans-serif}.directory-header h2{font-family:var(--font-display);margin:5px 0 6px;font-size:34px;font-weight:400}.directory-header p{color:#bcc6b3;margin:0;font-size:12px}.directory-controls{border-bottom:1px solid #e1ca9d14;grid-template-columns:1.7fr 1fr 1fr;gap:10px;padding:14px 30px;display:grid}.directory-controls>label{align-items:center;gap:8px;min-width:0;display:flex}.directory-controls label>span{color:#979c94;flex:none;font-size:9px}.directory-controls input,.directory-controls select{color:#dce4d1;background:#1a3028;border:1px solid #d3e1b338;border-radius:8px;width:100%;min-width:0;height:40px;padding:0 10px}.directory-controls select{font-size:10px}.search-field{background:#1a3028;border:1px solid #d3e1b338;border-radius:8px;height:40px;padding-left:10px;position:relative}.search-field input{background:0 0;border:0;outline:none;height:38px;padding-left:0;font-size:12px}.search-field button{color:#888;cursor:pointer;background:0 0;border:0;place-items:center;width:30px;height:30px;display:grid}.result-summary{color:#c1cbb4;padding:12px 30px;font-size:12px}.result-summary strong{color:#d3b778}.directory-results{scrollbar-color:#d1b16f4d transparent;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:8px;padding:5px 30px 30px;display:grid;overflow-y:auto}.directory-card{cursor:pointer;text-align:left;background:#ffffff06;border:1px solid #d6e0b229;border-radius:12px;grid-template-columns:47px 1fr auto;align-items:center;gap:11px;min-height:85px;padding:13px;display:grid}.directory-card:hover{background:#dbb2640d;border-color:#deb86d59}.directory-initial{background:color-mix(in srgb, var(--card-accent) 34%, #17201d);color:#eee0c4;border-radius:50%;place-items:center;width:45px;height:45px;font-size:20px;display:grid}.directory-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.directory-copy strong{font-size:15px;font-weight:500}.directory-copy small{color:#bdc9b3;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.directory-copy em{color:#bfc5ac;font-size:10px;font-style:normal}.directory-category{color:#cabb95;border:1px solid #d5d6a733;border-radius:5px;padding:4px 6px;font-size:10px}.empty-state{color:#777d76;text-align:center;flex-direction:column;grid-column:1/-1;align-items:center;padding:60px;display:flex}.empty-state h3{color:#c5bba9;margin-bottom:3px;font-weight:400}.empty-state p{font-size:10px}.empty-state button{cursor:pointer;background:0 0;border:1px solid #dcba7940;margin-top:12px;padding:8px 13px;font-size:10px}.compare-backdrop{padding:22px}.compare-dialog{background:linear-gradient(145deg,#192e25,#10231c);border:1px solid #d3e2b740;border-radius:20px;flex-direction:column;width:min(1180px,96vw);height:min(820px,94vh);display:flex;overflow:hidden;box-shadow:0 38px 110px #00000080}.compare-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding:23px 27px 17px;display:flex}.compare-header>div>span{color:#aa8d58;letter-spacing:.22em;font:8px ui-sans-serif,sans-serif}.compare-header h2{font-family:var(--font-display);margin:4px 0 5px;font-size:34px;font-weight:400}.compare-header p{color:#858c84;margin:0;font-size:9px}.compare-picker{background:#040c0a40;border-bottom:1px solid #e0c58f1a;grid-template-columns:330px 1fr;align-items:stretch;min-height:67px;padding:12px 27px;display:grid}.compare-search{background:#10201c;border:1px solid #e0c2872b;align-items:center;gap:8px;height:40px;padding:0 10px;display:flex}.compare-search input{color:#e3dbcd;background:0 0;border:0;outline:0;flex:1;min-width:0;height:38px;padding:0;font-size:10px}.compare-search>button{color:#888c85;cursor:pointer;background:0 0;border:0;place-items:center;width:27px;height:27px;padding:0;display:grid}.compare-suggestions{scrollbar-width:thin;gap:6px;padding-left:10px;display:flex;overflow-x:auto}.compare-suggestions>button{cursor:pointer;text-align:left;background:#ffffff05;border:1px solid #dec1861a;flex-direction:column;flex:none;justify-content:center;align-items:flex-start;min-width:108px;padding:5px 9px;display:flex}.compare-suggestions>button:hover{border-color:#e1bc734d}.compare-suggestions>button.active{background:#a44a3621;border-color:#e5bc6d6e}.compare-suggestions strong{font-size:10px;font-weight:500}.compare-suggestions small{color:#727971;margin-top:2px;font-size:7px}.compare-empty{color:#7a8079;align-self:center;padding:0 15px;font-size:9px}.compare-stage{flex:1;grid-template-columns:1fr 73px 1fr;min-height:0;padding:24px 28px;display:grid;position:relative;overflow-y:auto}.compare-person{--compare-accent:#c8a363;background:linear-gradient(145deg, color-mix(in srgb, var(--compare-accent) 8%, #0e1f1beb), #081210c7);border:1px solid #dec18721;min-width:0;padding:23px 25px}.compare-person header{border-bottom:1px solid #e0c38a1f;padding-bottom:17px}.compare-period{color:var(--compare-accent);letter-spacing:.13em;font-size:8px}.compare-person header>div{justify-content:space-between;align-items:baseline;gap:10px;margin-top:10px;display:flex}.compare-person h3{font-family:var(--font-display);letter-spacing:.08em;margin:0;font-size:clamp(28px,3vw,43px);font-weight:400}.compare-person header small{color:#888d85;font-size:9px}.compare-tags{flex-wrap:wrap;gap:5px;margin:15px 0;display:flex}.compare-tags span{color:#b7aa92;border:1px solid #ddbe8026;padding:4px 7px;font-size:8px}.compare-person>p{color:#c6c0b5;min-height:68px;margin:0 0 17px;font-size:11px;line-height:1.9}.compare-person dl{margin:0}.compare-person dl>div{border-top:1px solid #dec59217;grid-template-columns:66px 1fr;gap:10px;padding:12px 0;display:grid}.compare-person dt{color:#777d76;letter-spacing:.1em;font-size:8px}.compare-person dd{color:#aaa69c;margin:0;font-size:9px;line-height:1.7}.compare-person dd strong,.compare-person dd span{display:block}.compare-person dd strong{color:#e3d8c3;font-size:12px;font-weight:500}.compare-person dd span{color:#a78f62;font-size:8px}.compare-person ul{margin:0;padding-left:14px}.compare-person li::marker{color:var(--compare-accent)}.compare-axis{justify-content:center;align-items:center;display:flex;position:relative}.compare-axis i{background:linear-gradient(#0000,#e0bc7742 18% 82%,#0000);width:1px;position:absolute;inset:0 50%}.compare-axis span{z-index:1;color:#c6a461;background:#10221e;border:1px solid #e5c27d45;border-radius:50%;place-items:center;width:38px;height:38px;display:grid;position:relative}.compare-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;min-height:57px;padding:9px 27px;display:flex}.compare-footer>span{color:#767d75;align-items:center;gap:7px;font-size:8px;display:flex}.compare-footer>button{color:#ead8b2;cursor:pointer;background:#8b3d2f52;border:1px solid #e1bc714d;align-items:center;gap:7px;padding:9px 13px;font-size:9px;display:flex}.compare-footer>button:hover{background:#9742327a;border-color:#eeca8491}.about-dialog{background:linear-gradient(145deg,#1b3027,#11251d);border:1px solid #dde4be3d;border-radius:20px;width:min(650px,92vw);max-height:88vh;padding:40px;position:relative;overflow-y:auto;box-shadow:0 35px 100px #0000008c}.dialog-close{position:absolute;top:17px;right:17px}.about-dialog h2{font-family:var(--font-display);margin:7px 0 13px;font-size:34px;font-weight:400}.about-dialog>p{color:#a7a297;font-size:11px;line-height:1.9}.about-points{border-top:1px solid var(--line);margin:25px 0}.about-points article{border-bottom:1px solid var(--line);grid-template-columns:35px 1fr;gap:10px;padding:16px 0;display:grid}.about-points article>span{color:#a88953;font-size:10px}.about-points h3{margin:0 0 4px;font-size:12px;font-weight:500}.about-points p{color:#898e87;margin:0;font-size:10px;line-height:1.8}.about-source{align-items:center;gap:8px;display:flex;color:#b8a277!important}.fatal-screen{text-align:center;background:radial-gradient(circle,#172721,#07100f);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:30px;display:flex}.fatal-screen h1{font-weight:400}.fatal-screen p{color:#979b92;max-width:450px;line-height:1.8}.fatal-screen button{cursor:pointer;background:#4b2822;border:1px solid #90774c;padding:9px 16px}@media (width<=1180px){.hero-card{right:5vw;transform:scale(.9)}:is(.hero-card:has(.hero-card-action:hover),.hero-card:has(.hero-card-action:focus-visible)){transform:scale(.9)translateY(-5px)}.person-panel{width:340px}.workspace:has(.person-panel) .maplibregl-ctrl-bottom-right{right:348px}.category-filter{max-width:calc(100% - 405px);right:381px}.map-style-controls{right:381px}.map-coordinate,.topbar-context{display:none}.directory-results{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.intro{min-height:100svh;padding-bottom:130px;overflow-y:auto}.intro:after{width:90vw;top:12%;right:-35%}.hero{width:64vw;margin-top:11vh;margin-left:0}.hero h1{font-size:clamp(46px,9vw,70px)}.hero-card{top:23%;right:-48px;transform:scale(.69)}:is(.hero-card:has(.hero-card-action:hover),.hero-card:has(.hero-card-action:focus-visible)){transform:scale(.69)translateY(-5px)}.intro-method{width:43vw;bottom:48px;right:25px}.search-action{width:150px}.search-action kbd,.timeline-heading{display:none}.period-timeline{padding:0 10px}.person-panel{width:320px}.workspace:has(.person-panel) .maplibregl-ctrl-bottom-right{right:328px}.category-filter{max-width:calc(100% - 366px);left:14px;right:352px}.map-style-controls{right:352px}.connection-toggle span{display:none}.map-result-count{left:18px}}@media (width<=700px){.app-shell{--topbar-h:calc(57px + var(--safe-top));--timeline-h:78px}.topbar{height:var(--topbar-h);padding:var(--safe-top) 12px 0}.topbar .brand{min-width:0}.topbar .brand-seal{width:31px;height:31px}.topbar .brand strong{font-size:13px}.topbar .brand small,.search-action{display:none}.action-button{justify-content:center;width:36px;padding:0}.action-button span{display:none}.period-node{flex-basis:63px;min-width:63px}.period-timeline:before{top:30px}.period-node{padding-top:16px}.category-filter{width:auto;max-width:none;top:10px;left:10px;right:10px;overflow-x:auto;transform:none}.workspace:not(:has(.person-panel)) .category-filter{width:auto;max-width:none;top:10px;left:10px;right:10px;overflow-x:auto;transform:none}.category-filter button{padding:0 8px}.map-result-count{font-size:10px;top:61px;left:16px;transform:none}.map-period-stamp{top:87px;left:17px}.map-period-stamp>span{font-size:38px}.map-period-stamp small{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.map-legend{display:none}.workspace:has(.person-panel) .map-fallback{padding-top:82px;padding-bottom:22px;scroll-padding-block:82px 22px;bottom:min(42vh,390px)}.workspace:has(.person-panel.expanded) .map-fallback{bottom:min(72vh,620px)}.tile-warning{text-align:center;max-width:none;font-size:10px;inset:178px 10px auto;transform:none}.history-map .maplibregl-ctrl-bottom-left{bottom:calc(min(42vh,390px) + 3px);left:0}.workspace:has(.person-panel) .maplibregl-ctrl-bottom-right{bottom:calc(min(42vh,390px) + 62px);right:2px}.history-map .maplibregl-ctrl-attrib{max-width:225px;font-size:9px}.map-view-controls{max-width:calc(100% - 60px);bottom:calc(min(42vh,390px) + 20px);left:50px}.map-view-controls button{gap:5px;height:36px;padding:0 9px;font-size:10px}.map-view-controls button:last-child span{display:none}.map-style-controls{gap:6px;top:134px;left:16px;right:auto}.workspace:not(:has(.person-panel)) .map-style-controls{gap:6px;top:134px;left:16px;right:auto}.map-theme-switch{padding:3px}.map-theme-switch button{height:26px;padding:0 9px;font-size:10px}.connection-toggle{height:34px;padding:0 9px}.connection-toggle span{font-size:10px;display:inline}.map-context-note{z-index:6;color:#d1dbc1;pointer-events:none;background:#12291edb;border-radius:4px;margin:0;padding:3px 5px;font-size:9px;display:block;position:absolute;top:174px;left:17px}.maplibregl-ctrl-scale{max-width:65px;font-size:9px}.place-inspector{width:auto;max-height:calc(100% - 360px);padding:14px;bottom:160px;left:12px;right:12px}.place-inspector h3{font-size:25px}.place-inspector>p{margin-bottom:10px}.nearby-people{gap:4px;margin:8px 0}.nearby-people>button{padding:7px}.workspace:not(:has(.person-panel)) .map-view-controls{bottom:61px}.workspace:not(:has(.person-panel)) .maplibregl-ctrl-bottom-left{bottom:43px}.workspace:has(.person-panel) .place-inspector{bottom:calc(min(42vh,390px) + 64px)}.map-person-preview{grid-template-columns:42px 1fr auto;width:auto;min-width:0;bottom:calc(min(42vh,390px) + 55px);left:10px;right:10px}.preview-action{padding-left:9px;font-size:0}.preview-action:after{content:"聚焦";font-size:8px}.workspace:has(.person-panel.expanded) .tile-warning{top:178px;bottom:auto}.workspace:has(.person-panel.expanded) .maplibregl-ctrl-bottom-left{bottom:calc(min(72vh,620px) + 3px)}.workspace:has(.person-panel.expanded) .maplibregl-ctrl-bottom-right{bottom:calc(min(72vh,620px) + 3px)}.workspace:has(.person-panel.expanded) .map-view-controls{bottom:calc(min(72vh,620px) + 11px)}.workspace:has(.person-panel.expanded) .map-person-preview{bottom:calc(min(72vh,620px) + 55px)}.map-keyboard-help{display:none}.person-panel{width:100%;height:min(42vh,390px);padding:30px 20px calc(24px + var(--safe-bottom));border-top:1px solid #e0dab54d;border-left:0;border-right:0;border-radius:20px 20px 0 0;transition:height .28s cubic-bezier(.2,.75,.2,1);animation-name:sheet-in;top:auto;bottom:0;right:0;box-shadow:0 -25px 65px #00000040}.person-panel.expanded{height:min(72vh,620px)}@keyframes sheet-in{0%{opacity:.6;transform:translateY(100%)}}.panel-grab{color:#7d837c;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:7px;width:76px;height:24px;padding:0;display:flex;position:absolute;top:2px;left:50%;transform:translate(-50%)}.panel-grab>span{background:#e1d7c24d;border-radius:4px;width:38px;height:3px}.person-title-row h2{font-size:36px}.name-orbit{width:56px;height:56px}.name-orbit span{width:36px;height:36px}.reopen-panel{padding:8px 10px;top:78px;bottom:auto;right:12px}.modal-backdrop{align-items:stretch;padding:0}.directory{border:0;width:100%;height:100dvh;max-height:none}.directory-header{padding:calc(20px + var(--safe-top)) 18px 16px}.directory-controls{grid-template-columns:1fr 1fr;padding:12px 18px}.directory-controls .search-field{grid-column:1/-1}.result-summary{padding:9px 18px}.directory-results{padding:4px 18px calc(25px + var(--safe-bottom));grid-template-columns:1fr}.compare-backdrop{padding:0}.compare-dialog{border:0;width:100%;height:100dvh;max-height:none}.compare-header{padding:calc(18px + var(--safe-top)) 18px 14px}.compare-header p{max-width:260px;line-height:1.5}.compare-picker{grid-template-columns:1fr;gap:8px;padding:10px 18px}.compare-suggestions{padding-left:0}.compare-stage{grid-template-columns:1fr;gap:10px;padding:14px 18px}.compare-person{padding:18px}.compare-person>p{min-height:0}.compare-axis{height:34px}.compare-axis i{width:auto;height:1px;inset:50% 0}.compare-axis span{width:34px;height:34px}.compare-axis span svg{transform:rotate(90deg)}.compare-footer{padding:8px 18px calc(8px + var(--safe-bottom))}.compare-footer>span{display:none}.compare-footer>button{justify-content:center;width:100%}.about-dialog{width:100%;height:100dvh;max-height:none;padding:calc(55px + var(--safe-top)) 24px calc(30px + var(--safe-bottom));border:0}.directory,.compare-dialog,.about-dialog{border-radius:0}}@media (width<=560px){.intro{padding:max(18px, var(--safe-top)) 20px 145px}.intro-header>a{font-size:9px}.hero{width:100%;margin-top:10vh}.hero h1{font-size:clamp(44px,14vw,65px)}.hero>p{width:90%;font-size:13px;line-height:1.9}.hero-card{text-align:left;grid-template-rows:auto auto auto 1fr;grid-template-columns:100px 1fr;width:100%;min-height:240px;margin-top:55px;display:grid;position:relative;top:auto;right:auto;transform:none}:is(.hero-card:has(.hero-card-action:hover),.hero-card:has(.hero-card-action:focus-visible)){transform:translateY(-3px)}.hero-card>span{grid-column:1/-1}.hero-card-orbit{grid-area:2/1/5;width:90px;height:90px;margin:20px 0 0}.hero-card-orbit b{width:58px;height:58px;font-size:27px}.hero-card h2{align-self:end;margin-top:20px}.hero-card blockquote{margin:12px 0}.hero-card-action{justify-content:flex-start;margin:8px 0 0}.intro-method{width:100%;margin-top:35px;position:relative;bottom:auto;right:auto}.intro footer{text-align:center;width:calc(100% - 40px);line-height:1.6;bottom:22px;left:20px}.intro-stars{display:none}}@media (width<=390px){.brand{gap:8px}.topbar .brand strong{letter-spacing:.08em}.period-node{flex-basis:58px;min-width:58px}.category-filter button{height:29px;padding:0 7px}.category-filter button svg{display:none}.person-panel{padding-left:16px;padding-right:16px}.person-summary{font-size:11px}.directory-controls{gap:7px;padding-left:13px;padding-right:13px}.directory-results{padding-left:13px;padding-right:13px}}.map-first .topbar{gap:14px;padding-inline:16px}.map-first .topbar .brand{min-width:170px}.map-first .topbar .brand small{display:none}.map-first .search-action{width:190px}.explore-trigger{flex-shrink:0}.explore-trigger>span{align-items:baseline;gap:8px;display:flex}.explore-trigger small{color:#bac6b0;font-size:10px}.explore-trigger[aria-expanded=true]{background:#9ac9b917;border-color:#9ac9b977}.explore-trigger[aria-expanded=true]>svg:last-child{transform:rotate(180deg)}.focus-mode-toggle{flex-shrink:0}.focus-mode-toggle[aria-pressed=true]{color:#1c3329;background:#cfdfbf;border-color:#cfdfbf}.focus-context{color:#c6d3bd;font-size:12px}.focus-mode .explore-trigger,.focus-mode .top-actions>:not(.focus-mode-toggle){display:none}.explore-drawer{z-index:24;background:#142820f7;border:1px solid #b9cba33b;border-radius:16px;width:min(820px,100% - 410px);max-height:calc(100% - 24px);position:absolute;top:12px;left:16px;overflow-y:auto;box-shadow:0 18px 50px #0004}.workspace:not(.panel-visible) .explore-drawer{width:min(820px,100% - 32px)}.explore-drawer>header{justify-content:space-between;align-items:center;gap:12px;padding:16px 18px 8px;display:flex}.explore-drawer h2{margin:0;font-size:15px;font-weight:500}.explore-drawer header p{color:#bac7ad;margin:4px 0 0;font-size:11px}.explore-drawer .timeline-wrap{background:0 0;border-bottom:0}.explore-drawer .timeline-heading{display:none}.explore-drawer .period-timeline{padding-inline:8px}.explore-drawer .period-node{flex-basis:61px;min-width:61px}.map-first .explore-drawer .category-filter{width:auto;max-width:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;flex-wrap:wrap;gap:4px;margin:8px 14px 0;padding:0;display:flex;position:static}.map-first .explore-drawer .map-result-count{color:#c0ccb4;text-shadow:none;margin:12px 18px 16px;font-size:11px;position:static;transform:none}.map-toolbox{z-index:15;position:absolute;bottom:62px;left:70px}.map-tools-trigger{color:#dce7cf;min-height:38px;font:inherit;cursor:pointer;background:#142d23f5;border:1px solid #c4d7b044;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:11px;display:flex}.map-tools-trigger[aria-expanded=true]{border-color:#9ac9b9}.map-tools-panel{background:#142820fa;border:1px solid #b9cba344;border-radius:14px;width:290px;max-height:calc(100dvh - 150px);padding:12px;position:absolute;bottom:calc(100% + 8px);left:0;overflow-y:auto;box-shadow:0 16px 45px #0004}.map-tools-panel>header{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;display:flex}.map-tools-panel>header .icon-button{border:0;width:26px;height:26px}.map-first .map-tools-panel .map-style-controls{gap:6px;position:static}.map-first .map-tools-panel .connection-toggle{flex:1;padding-inline:7px}.map-first .map-tools-panel .connection-toggle span{font-size:10px;display:inline}.map-first .map-tools-panel .map-view-controls{max-width:none;box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;display:grid;position:static}.map-first .map-tools-panel .map-view-controls button{border:1px solid var(--line);border-radius:8px;min-width:0;height:36px;padding:0 6px;font-size:11px}.map-first .map-tools-panel .map-view-controls button span{display:inline}.map-first .map-tools-panel .map-coordinate{color:#bcccb0;text-shadow:none;flex-wrap:wrap;margin-top:12px;font-size:9px;display:flex;position:static}.map-first .map-context-note{z-index:6;color:#d1dbc1;pointer-events:none;background:#12291ee6;border-radius:5px;margin:0;padding:4px 7px;font-size:9px;display:block;position:absolute;top:auto;bottom:16px;left:24px}.map-first .tile-warning{top:14px}.map-first .workspace:not(.panel-visible) .maplibregl-ctrl-bottom-right{bottom:3px;right:8px}.map-first .workspace:not(.panel-visible) .maplibregl-ctrl-bottom-left{bottom:45px}.map-first .workspace:not(.panel-visible) .map-fallback{bottom:0}.map-first .reopen-panel small{color:#bac8ac;font-size:10px}.map-first .map-fallback{padding-top:28px}@media (width<=1180px){.map-first .topbar .brand{min-width:140px}.map-first .search-action{display:none}}@media (width<=700px){.map-first{--topbar-h:calc(52px + var(--safe-top))}.map-first .topbar{gap:8px;padding-inline:10px}.map-first .topbar .brand{min-width:0}.map-first .topbar .brand>span:last-child{display:none}.map-first .top-actions{gap:5px}.map-first .action-button{width:33px;height:34px;padding:0}.map-first .icon-button{width:33px;height:34px}.map-first .action-button.journeys-trigger{width:33px;min-width:33px;padding:0}.map-first .action-button.journeys-trigger>span{display:none}.map-first .explore-trigger{gap:5px;width:auto;padding-inline:8px}.map-first .explore-trigger>span{gap:6px;display:flex}.map-first .explore-trigger small{font-size:9px}.map-first .explore-trigger>svg:first-child,.map-first .focus-mode-toggle>span{display:none}.map-first.focus-mode .focus-mode-toggle{width:auto;padding-inline:10px}.map-first.focus-mode .focus-mode-toggle>span{display:inline}.map-first .explore-drawer,.map-first .workspace:not(.panel-visible) .explore-drawer{width:calc(100% - 20px);left:10px}.map-toolbox{bottom:calc(min(42vh,390px) + 20px);left:50px}.workspace.panel-visible:has(.person-panel.expanded) .map-toolbox{bottom:calc(min(72vh,620px) + 11px)}.map-first .workspace:not(.panel-visible) .map-toolbox{bottom:61px}.map-tools-panel{width:min(290px,100vw - 62px);max-height:calc(100dvh - min(42vh,390px) - 122px)}.workspace.panel-visible:has(.person-panel.expanded) .map-tools-panel{max-height:calc(100dvh - min(72vh,620px) - 112px)}.map-first .workspace:not(.panel-visible) .map-tools-panel{max-height:calc(100dvh - 156px)}.map-first .workspace:not(.panel-visible) .maplibregl-ctrl-bottom-left{bottom:43px}.map-first .workspace:not(.panel-visible) .place-inspector{max-height:calc(100% - 180px);bottom:160px}.map-first .workspace:not(.panel-visible) .map-person-preview{bottom:118px}.map-first .map-context-note{top:12px;bottom:auto;left:12px}.map-first .reopen-panel{top:36px;right:12px}.map-first .tile-warning{top:40px;bottom:auto}.map-first .workspace:has(.person-panel.expanded) .tile-warning{top:40px;bottom:auto}.map-first .workspace:has(.person-panel) .map-fallback{padding-top:24px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.marker-core,.period-dot,.confidence>span{forced-color-adjust:none}.person-panel,.directory,.about-dialog,.topbar,.timeline-wrap{border:1px solid canvastext}}
