:root{--paper: #10183a;--surface: #0c1331;--ink: #aaccee;--ink-soft: #8fb2d4;--bright: #ffffff;--muted: #9aa0ad;--hair: #2c3d68;--accent: #ffe94d;--text-face: "Nunito Sans", "Avenir Next", Avenir, ui-sans-serif, system-ui, -apple-system, sans-serif;--label-face: var(--text-face)}body.graph{--dur: .22s;--ease: cubic-bezier(.2, .6, .2, 1);color-scheme:dark;background:var(--paper);color:var(--ink);font-family:var(--text-face);overflow:hidden}.edge,.letter__go,.card__meta,.card__near-head,.card__actions{font-family:var(--label-face);font-size:12px;font-weight:500;line-height:1;letter-spacing:.08em;text-transform:uppercase}.letter{display:none;position:fixed;inset:0;z-index:3;pointer-events:none}html.letter-first .letter,body.is-letter .letter,body.is-moving .letter{display:block}.letter__art{position:absolute;top:clamp(40px,9vh,110px);left:50%;width:min(600px,calc(100% - (2*clamp(20px,4vw,40px))));translate:-50% 0;pointer-events:none}.letter__art img{position:absolute;display:block;height:auto}.letter__art--ship{top:-30px;right:-330px;width:380px}.letter__art--road{top:300px;left:-360px;width:330px}@media(max-width:1100px){.letter__art{display:none}}.letter .lead{position:relative;width:min(600px,calc(100% - (2*clamp(20px,4vw,40px))));margin:clamp(90px,17vh,160px) auto 0;font-size:clamp(21px,2.7vw,27px);line-height:1.32;letter-spacing:-.012em;text-wrap:pretty;counter-reset:ref;pointer-events:auto}.letter strong,.letter a{font-weight:700;color:var(--bright)}.letter a{text-decoration:none;transition:color var(--dur) var(--ease)}.letter a:hover{color:var(--accent)}.letter .ref:after{counter-increment:ref;content:counter(ref);margin-left:3px;font-family:var(--label-face);font-size:11px;font-weight:500;line-height:0;letter-spacing:.02em;vertical-align:super;color:var(--accent)}.letter__go{position:fixed;bottom:52px;left:50%;translate:-50% 0;padding:8px;border:0;background:none;color:var(--accent);cursor:pointer;pointer-events:auto}.letter__go:after{content:" ↓"}body.is-moving .letter,body.is-moving .letter *{pointer-events:none}html.letter-first .net{opacity:0}html.letter-first :is(.edge,.caption),body.is-letter :is(.edge,.caption){opacity:0;pointer-events:none}body.is-letter .net,body.is-moving .net{pointer-events:none}html.intro .lead__hi{opacity:0}html.intro .lead__hi.is-typing{opacity:1}html.intro .lead__hi.is-typing:after{content:"";display:inline-block;width:.06em;height:.9em;margin-left:.08em;vertical-align:-.08em;background:var(--accent);animation:caret 1s steps(1) infinite}html.intro .lead__hi.is-typed:after{display:none}@keyframes caret{50%{opacity:0}}html.intro :is(.lead__rest,.letter__go){opacity:0}html.intro-reveal .lead__rest{opacity:1;transition:opacity .7s var(--ease)}html.intro-reveal .letter__go{opacity:1;transition:opacity .6s var(--ease) .6s}.flier{position:fixed;left:0;top:0;z-index:5;pointer-events:none}.flier>span{position:absolute;left:0;top:0;translate:-50% -50%;white-space:nowrap;line-height:1}.flier__src.is-ref{font-weight:700}.sheet{position:fixed;inset:0}.net{display:block;width:100%;height:100%;max-width:none;touch-action:none;cursor:grab}.net.is-panning{cursor:grabbing}.edge{position:fixed;z-index:2;padding:6px;color:var(--ink);text-decoration:none;transition:color var(--dur) var(--ease)}.edge:hover,.edge:focus-visible{color:var(--accent)}.edge--0{top:14px;left:14px}.edge--1{top:14px;right:14px}.edge--2{top:50%;right:14px;writing-mode:vertical-rl;translate:0 -50%}.edge--3{bottom:14px;right:14px}.edge--4{bottom:14px;left:14px}.edge--5{top:50%;left:14px;writing-mode:vertical-rl;rotate:180deg;translate:0 -50%}@media(max-width:720px){.caption{display:none}}.caption{position:fixed;bottom:18px;left:50%;translate:-50% 0;margin:0;max-width:calc(100vw - 280px);text-align:center;font-size:15px;font-style:italic;color:var(--muted);pointer-events:none}.preview{position:fixed;z-index:3;top:0;right:0;bottom:0;display:grid;place-items:center;width:36vw;padding:6vh 3vw;background:#00000038;opacity:0;pointer-events:none;transition:opacity .25s var(--ease)}.preview--left{right:auto;left:0}.preview.is-on{opacity:1}.preview img{display:block;max-width:100%;max-height:80vh;object-fit:contain}@media(max-width:720px){.preview{display:none}}.links line{stroke:var(--ink);stroke-opacity:.2;stroke-width:.8;transition:stroke-opacity var(--dur) var(--ease)}.net.is-hot .links line{stroke-opacity:.05}.net.is-hot .links line.is-near{stroke-opacity:.7}.node{cursor:pointer;text-decoration:none;outline:none;transition:opacity var(--dur) var(--ease)}.net.is-staged :is(.node,.links line){transition:none}.net.is-hot .node:not(.is-near){opacity:.18}.node__dot{fill:var(--bright)}.node--place .node__dot,.node--theme .node__dot{fill:var(--paper);stroke:var(--ink-soft);stroke-width:1.2}.node--book .node__dot,.node--podcast .node__dot{fill:var(--ink)}.node.is-live .node__dot{fill:var(--accent)}.node--place.is-live .node__dot{fill:var(--paper);stroke:var(--accent)}.node__pulse{fill:none;stroke:var(--accent);stroke-width:1;transform-box:fill-box;transform-origin:center;animation:pulse 2.6s var(--ease) infinite;pointer-events:none}@keyframes pulse{0%{opacity:.8;scale:1}to{opacity:0;scale:2.6}}.node__label{font-family:var(--text-face);fill:var(--bright);paint-order:stroke;stroke:var(--paper);stroke-width:5px;stroke-linejoin:round;transition:fill var(--dur) var(--ease)}.node--me .node__label{font-size:44px;letter-spacing:-.012em;stroke-width:8px}.node--idea .node__label{font-size:21px;font-style:italic}.node.is-live .node__label{fill:var(--accent)}.node--work .node__label,.node--study .node__label,.node--project .node__label{font-size:18px}.node--hub .node__label{font-size:16px;font-style:italic;fill:var(--ink)}.node--place .node__label,.node--theme .node__label{font-family:var(--label-face);font-weight:500;letter-spacing:.1em;text-transform:uppercase}.node--place .node__label{font-size:11px;fill:var(--muted)}.node--theme .node__label{font-size:10.5px;fill:var(--muted)}.node--book .node__label,.node--podcast .node__label{font-size:13.5px;font-style:italic;fill:var(--ink)}.node--book.is-fav .node__label{font-size:14.5px;fill:var(--accent)}.node:hover .node__label,.node:focus-visible .node__label,.node.is-open .node__label{fill:var(--accent)}.card{position:fixed;z-index:4;top:50%;right:56px;translate:0 -50%;width:min(380px,calc(100vw - 48px));max-height:calc(100svh - 120px);overflow-y:auto;margin:0;padding:22px 24px 20px;background:var(--surface);border:1px solid var(--hair);border-radius:2px}@media(max-width:720px){.card{inset:auto 12px 56px;translate:none;width:auto;max-height:52svh}}.card__meta{margin:0;color:var(--muted);line-height:1.5}.card__title{margin:10px 0 0;font-size:28px;font-weight:400;line-height:1.15}.card__title.is-title{font-style:italic}.card__detail{margin:10px 0 0;font-size:17px;line-height:1.45;color:var(--ink-soft);text-wrap:pretty}.card__detail strong{font-weight:700;color:var(--bright)}.card__near-head{margin:18px 0 0;color:var(--muted)}.card__near{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 0;padding:0;list-style:none}.card__near button{padding:0;border:0;background:none;color:var(--bright);font:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:color var(--dur) var(--ease)}.card__near button.is-title{font-style:italic}.card__near button:hover,.card__near button:focus-visible{color:var(--accent)}.card__actions{display:flex;justify-content:space-between;margin:22px 0 0}.card__go{color:var(--accent);text-decoration:none}.card__go:after{content:" →"}.card__close{padding:0;border:0;background:none;color:var(--muted);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.card__close:hover{color:var(--ink)}.as-list{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){.node__pulse{animation:none}}
