@font-face{font-family:'Libre Caslon Display';src:url('assets/caslon.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:Inter;src:url('assets/inter-400.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:Inter;src:url('assets/inter-500.ttf') format('truetype');font-display:swap;font-weight:500}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:var(--text-base)}button,a,output{font:inherit;color:inherit}button{cursor:pointer;background:var(--bg);border:0}a{text-underline-offset:var(--space-1)}button,a{-webkit-tap-highlight-color:transparent}.map-header{position:fixed;inset:0 0 auto;z-index:var(--z-elevated);height:var(--space-11);background:var(--bg);border-bottom:var(--bw) solid var(--line);display:flex;align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-7)}.map-brand{display:flex;align-items:center;gap:var(--space-2);text-decoration:none;flex:none}.map-brand img{width:78px;height:40px}.map-brand>span{font-family:var(--serif);font-size:var(--text-xl)}#map-back{min-width:var(--space-9);min-height:var(--space-9);border:var(--bw) solid var(--line);border-radius:var(--r-pill);font-size:var(--text-xl)}#map-back:disabled{opacity:var(--o-faint);cursor:default}#map-breadcrumb{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0;font-size:var(--text-sm)}#map-breadcrumb button{min-height:var(--space-9);text-align:left;background:transparent;white-space:nowrap}#map-current{border-left:var(--bw) solid var(--line);padding-left:var(--space-3);color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-header-links{display:flex;align-items:center;gap:var(--space-5)}.map-header-links a{font-size:var(--text-sm);white-space:nowrap;min-height:var(--space-9);display:flex;align-items:center}#map-fullscreen{min-height:var(--space-9);min-width:var(--space-9);font-size:var(--text-xl)}#event-map-stage{position:fixed;inset:var(--space-11) 0 0;overflow:hidden;touch-action:none;cursor:grab;background:var(--bg);outline-offset:-4px}#event-map-stage.is-dragging{cursor:grabbing}#event-map-world{position:absolute;left:0;top:0;transform-origin:0 0}.event-world{position:relative}.event-lines{position:absolute;inset:0;pointer-events:none;overflow:visible}.event-line{fill:none;stroke:var(--ink-soft);stroke-width:1.5;transition:stroke var(--duration-fast) var(--ease-out)}.event-line.is-active{stroke:var(--ink);stroke-width:2}.orbit-line{fill:none;stroke:var(--line-soft);stroke-width:1;stroke-dasharray:3 8}.connection-dot{fill:var(--line)}.connection-dot.is-active{fill:var(--ink)}.visual-node{position:absolute;border:var(--bw) solid var(--line);background:var(--bg);padding:var(--space-5);text-align:left;display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-3);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.visual-node .node-top{display:flex;justify-content:space-between;align-items:center}.node-number{font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--ink-soft)}.area-symbol{width:var(--space-8);height:var(--space-8);color:var(--ink)}.area-symbol svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.visual-node strong{font:var(--fw-regular) var(--text-2xl)/var(--lh-snug) var(--serif);letter-spacing:var(--tracking-tight);display:block}.visual-node small{font-size:var(--text-sm);color:var(--ink-soft);line-height:var(--lh-base);display:block}.node-drill{position:absolute;right:var(--space-5);bottom:var(--space-5);font-size:var(--text-base)}.visual-node .node-copy{padding-right:var(--space-4)}.visual-node:hover,.visual-node:focus-visible{background:var(--ink);border-color:var(--ink);color:var(--bg)}.visual-node:hover .node-number,.visual-node:hover small,.visual-node:hover .area-symbol,.visual-node:focus-visible .node-number,.visual-node:focus-visible small,.visual-node:focus-visible .area-symbol{color:var(--bg)}.project-node{position:absolute;border:var(--bw) solid var(--ink);background:var(--paper);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-6);gap:var(--space-3)}.project-node .hub-symbol{width:var(--space-7);height:var(--space-7)}.hub-symbol svg{width:100%;height:100%;stroke:var(--ink);fill:none;stroke-width:1.2}.project-node>span{font-size:var(--text-sm);color:var(--ink)}.project-node h1{font:var(--fw-regular) var(--text-4xl)/var(--lh-tight) var(--serif);letter-spacing:var(--tracking-tight);margin:0;text-wrap:balance}.project-node p{font-size:var(--text-sm);line-height:var(--lh-base);margin:0;max-width:28ch}.visual-node.entity-node strong{font-size:var(--text-2xl)}.visual-node.entity-node .area-symbol{width:var(--space-7);height:var(--space-7)}.map-note{position:fixed;left:var(--space-7);bottom:var(--space-6);z-index:var(--z-elevated);background:var(--bg);padding:var(--space-2) 0;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);pointer-events:none}.map-note small{font-size:var(--text-xs);color:var(--ink-soft)}.map-zoom{position:fixed;right:var(--space-7);bottom:var(--space-6);display:flex;align-items:center;gap:var(--space-1);border:var(--bw) solid var(--line);border-radius:var(--r-pill);padding:var(--space-1);background:var(--bg);z-index:var(--z-elevated)}.map-zoom button{min-width:var(--space-9);min-height:var(--space-9);border-radius:var(--r-pill);font-size:var(--text-base)}.map-zoom button:hover{background:var(--paper)}.map-zoom output{min-width:var(--space-9);text-align:center;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.map-hint{position:fixed;right:var(--space-7);top:calc(var(--space-11) + var(--space-4));font-size:var(--text-sm);color:var(--ink-soft);background:var(--bg);padding:var(--space-2) var(--space-3);pointer-events:none}.map-error{max-width:var(--max-w-prose);margin:var(--space-10) auto;padding:var(--space-6);line-height:var(--lh-relaxed)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#record-dialog{color:var(--ink);background:var(--bg);border:var(--bw) solid var(--ink);padding:var(--space-7);max-width:var(--max-w-prose);width:calc(100% - var(--space-8));max-height:calc(100dvh - var(--space-10));overflow-y:auto}#record-dialog::backdrop{background:color-mix(in srgb,var(--ink) 30%,transparent)}.record-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);font-size:var(--text-sm);color:var(--ink-soft)}#record-close{min-width:var(--space-9);min-height:var(--space-9);font-size:var(--text-2xl)}#record-dialog h2{font:var(--fw-regular) var(--text-4xl)/var(--lh-snug) var(--serif);margin:var(--space-4) 0 var(--space-5);letter-spacing:var(--tracking-tight)}#record-dialog p{line-height:var(--lh-relaxed);font-size:var(--text-base)}#record-dialog h3{font-size:var(--text-sm);font-weight:var(--fw-medium);margin:var(--space-6) 0 var(--space-3)}#record-fields ul{display:flex;flex-wrap:wrap;list-style:none;padding:0;gap:var(--space-2)}#record-fields li{border:var(--bw) solid var(--line);padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}#record-sources a{display:inline-flex;align-items:center;min-height:var(--space-9);font-size:var(--text-sm);margin-right:var(--space-4)}[hidden]{display:none!important}
@media(max-width:760px){.map-header{height:var(--space-10);padding:var(--space-2) var(--space-4);gap:var(--space-2)}#event-map-stage{top:var(--space-10)}.map-brand img{width:64px;height:auto}.map-brand>span{display:none}#map-back{min-width:var(--space-8);min-height:var(--space-9)}#map-breadcrumb{gap:var(--space-2);font-size:var(--text-sm)}#map-current{padding-left:var(--space-2);max-width:100px}.map-header-links{gap:var(--space-1)}.map-header-links a{font-size:0;min-width:var(--space-8);justify-content:center}.map-header-links a:before{content:'▤';font-size:var(--text-lg)}#map-fullscreen{display:none}.map-hint{top:calc(var(--space-10) + var(--space-2));right:var(--space-4);font-size:var(--text-xs);padding:var(--space-1) 0}.map-note{left:var(--space-4);bottom:var(--space-4);font-size:var(--text-xs);max-width:40%;gap:var(--space-1)}.map-note small{font-size:var(--text-2xs)}.map-zoom{right:var(--space-4);bottom:var(--space-4)}.map-zoom button{min-width:var(--space-8);min-height:var(--space-9);font-size:var(--text-sm)}.map-zoom output{min-width:var(--space-7);font-size:var(--text-xs)}.event-world.is-mobile .visual-node{padding:var(--space-3);gap:var(--space-2)}.event-world.is-mobile .visual-node .area-symbol{width:var(--space-6);height:var(--space-6)}.event-world.is-mobile .visual-node strong{font-size:var(--text-xl)}.event-world.is-mobile .visual-node small{font-size:var(--text-sm)}.event-world.is-mobile .visual-node .node-number{font-size:var(--text-xs)}.event-world.is-mobile .node-drill{right:var(--space-3);bottom:var(--space-3);font-size:var(--text-sm)}.event-world.is-mobile .project-node{padding:var(--space-4);gap:var(--space-2)}.event-world.is-mobile .project-node h1{font-size:var(--text-3xl)}.event-world.is-mobile .project-node .hub-symbol{display:none}.event-world.is-mobile .project-node p{font-size:var(--text-sm)}.event-world.is-mobile .visual-node .node-copy{padding-right:0}.event-world.is-mobile .visual-node small{max-width:20ch}.event-world.is-mobile .visual-node.entity-node strong{font-size:var(--text-xl)}#record-dialog{padding:var(--space-5)}#record-dialog h2{font-size:var(--text-3xl)}}
@media(prefers-reduced-motion:reduce){.visual-node,.event-line{transition:none}}
