@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&family=IBM+Plex+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;text-rendering:optimizelegibility;--paper:#f3ecdf;--paper-deep:#eadfce;--paper-line:#583e212e;--ink:#201711;--ink-soft:#5d4b3f;--ink-quiet:#8d7767;--accent:#9d5f2d;--accent-soft:#9d5f2d1f;--midnight:#07131f;--midnight-deep:#040c14;--midnight-line:#bad6ee29;--midnight-ink:#f2f6fa;--midnight-soft:#8aa4bb;--midnight-accent:#8db7da;--midnight-outgoing:#8db7da;--midnight-incoming:#6f91aa;--midnight-mutual:#f0c28b;--shadow:0 18px 50px #0b131c24;font-family:Manrope,Helvetica Neue,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100dvh;color:var(--ink);background:radial-gradient(circle at 0 0,#eadfced9,#0000 26%),linear-gradient(#f8f3ea 0%,#efe5d6 100%)}button,input{font:inherit}button{color:inherit;background:0 0;border:0;padding:0}a{color:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:#9d5f2d2e}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:50;background:var(--midnight);color:var(--midnight-ink);border-radius:999px;padding:10px 14px;text-decoration:none;transition:transform .14s;position:fixed;top:16px;left:16px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.app-shell{grid-template-rows:auto 1fr;min-height:100dvh;display:grid}.app-header{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f8f3eae6;border-bottom:1px solid #583e211f;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr) auto;align-items:center;gap:18px;padding:18px 24px;display:grid;position:sticky;top:0}.brand-reset{text-align:left;justify-items:start;gap:8px;display:grid}.brand-wordmark{letter-spacing:-.03em;font-family:Fraunces,Georgia,serif;font-size:1.5rem;font-weight:600}.brand-wordmark span{color:var(--accent);letter-spacing:0;vertical-align:super;margin-left:4px;font-family:IBM Plex Mono,monospace;font-size:.56em}.brand-tagline{max-width:34rem;color:var(--ink-soft);font-size:.94rem;line-height:1.4}.search-area{position:relative}.search-form{background:#ffffffb8;border:1px solid #583e2129;border-radius:16px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:52px;padding:0 14px;display:grid;box-shadow:inset 0 1px #fff9}.search-form svg{color:var(--ink-quiet)}.search-form input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-size:.98rem}.search-form input::placeholder{color:#7d6550}.search-clear{width:28px;height:28px;color:var(--ink-quiet);border-radius:999px;place-items:center;display:grid}.search-results{max-height:min(28rem,100dvh - 8rem);box-shadow:var(--shadow);background:#fcf9f4fa;border:1px solid #583e2129;border-radius:18px;position:absolute;top:calc(100% + 10px);left:0;right:0;overflow:auto}.search-results ul{margin:0;padding:10px;list-style:none}.search-results li+li{border-top:1px solid #583e2114}.search-results li button{text-align:left;border-radius:14px;gap:5px;width:100%;padding:14px;display:grid}.search-results li button:hover,.search-results li button:focus-visible{background:#9d5f2d14}.search-results strong{font-size:.97rem}.search-results span{color:var(--ink-soft);font-size:.9rem;line-height:1.45}.search-results small{color:var(--ink-quiet);text-transform:lowercase;font-family:IBM Plex Mono,monospace;font-size:.72rem}.search-empty{color:var(--ink-soft);margin:0;padding:18px 16px}.header-meta{color:var(--ink-quiet);text-transform:uppercase;align-items:center;gap:12px;font-family:IBM Plex Mono,monospace;font-size:.76rem;display:flex}.article-toggle{border:1px solid var(--midnight-line);min-height:40px;color:var(--midnight-ink);cursor:pointer;background:#0d1a26b8;border-radius:999px;padding:0 14px}.article-toggle--header{display:none}.app-content{grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);min-height:0;display:grid}.article-shell{background:radial-gradient(circle at 100% 0,#9d5f2d14,#0000 30%),linear-gradient(#f3ecdffa,#eee4d4fa);min-width:0;min-height:0;position:relative;overflow:auto}.article-frame{grid-template-columns:minmax(0,1.1fr) minmax(240px,.52fr);min-height:100%;display:grid}.article-main{padding:32px 32px 52px}.article-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.section-kicker{color:var(--ink-quiet);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-family:IBM Plex Mono,monospace;font-size:.74rem}.article-header h1{letter-spacing:-.04em;margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(2.2rem,3vw,3.2rem);font-weight:600;line-height:.96}.article-summary{max-width:46rem;color:var(--ink-soft);margin:16px 0 0;font-size:1rem;line-height:1.65}.article-close{border:1px solid var(--paper-line);background:#ffffff8c;border-radius:999px;flex:none;place-items:center;width:40px;height:40px;display:none}.article-body{max-width:44rem}.article-body--missing{max-width:30rem}.markdown-content h2,.markdown-content h3,.markdown-content h4{letter-spacing:-.02em;margin:2rem 0 .85rem;font-family:Fraunces,Georgia,serif;font-weight:500}.markdown-content h2{font-size:1.45rem}.markdown-content h3{font-size:1.2rem}.markdown-content h4{font-size:1.05rem}.markdown-content p,.markdown-content li{color:var(--ink);margin:0 0 1rem;font-size:1rem;line-height:1.82}.markdown-content ul,.markdown-content ol{margin:0 0 1.5rem;padding-left:1.25rem}.markdown-content a,.inline-link-button{color:var(--accent);text-underline-offset:.18em;text-decoration-color:#9d5f2d66}.inline-link-button{cursor:pointer}.markdown-content code{background:#9d5f2d14;border-radius:.4rem;padding:.1rem .34rem;font-family:IBM Plex Mono,monospace;font-size:.92em}.article-sidebar{background:#ffffff52;border-left:1px solid #583e2114;align-content:start;gap:16px;padding:32px 24px 48px;display:grid}.sidebar-card{background:#ffffff94;border:1px solid #583e211f;border-radius:18px;padding:18px}.sidebar-card h2{letter-spacing:.07em;text-transform:uppercase;margin:0 0 14px;font-family:IBM Plex Mono,monospace;font-size:.76rem}.fact-list{gap:12px;margin:0;display:grid}.fact-list div{gap:4px;display:grid}.fact-list dt{color:var(--ink-quiet);font-size:.83rem}.fact-list dd{color:var(--ink);margin:0;font-size:.93rem}.tag-list,.page-list,.source-list{margin:0;padding:0;list-style:none}.tag-list{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.tag-list li{background:var(--accent-soft);color:var(--ink-soft);border-radius:999px;padding:6px 10px;font-size:.84rem}.page-list li+li,.source-list li+li{margin-top:8px}.page-list button,.source-list a,.source-list span{width:100%;color:var(--ink);text-align:left;background:#ffffff85;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;display:flex}.page-list button:hover,.page-list button:focus-visible,.source-list a:hover,.source-list a:focus-visible{background:#9d5f2d17}.card-empty{color:var(--ink-soft);margin:0;font-size:.9rem;line-height:1.55}.graph-shell{background:radial-gradient(circle at top right, #8db7da1f, transparent 24%), radial-gradient(circle at bottom left, #6f91aa1a, transparent 24%), linear-gradient(180deg, var(--midnight) 0%, var(--midnight-deep) 100%);min-width:0;height:calc(100dvh - 95px);min-height:0;color:var(--midnight-ink);grid-template-rows:auto 1fr;align-self:start;display:grid;position:sticky;top:95px}.graph-header{justify-content:space-between;align-items:flex-start;gap:18px;padding:28px 28px 16px;display:flex}.graph-header h2{letter-spacing:-.03em;margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(1.8rem,2.3vw,2.5rem);font-weight:500}.graph-subtitle{max-width:34rem;color:var(--midnight-soft);margin:12px 0 0;line-height:1.6}.graph-header__meta{color:var(--midnight-soft);text-transform:uppercase;justify-items:end;gap:10px;font-family:IBM Plex Mono,monospace;font-size:.76rem;display:grid}.graph-field{background:linear-gradient(#ffffff05,#0000),#050c148c;border:1px solid #bad6ee1f;border-radius:28px;min-height:0;margin:14px 24px 24px;position:relative;overflow:hidden}.graph-field:before{content:"";background-image:linear-gradient(#bad6ee0d 1px,#0000 1px),linear-gradient(90deg,#bad6ee0d 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0}.graph-lines,.graph-nodes{position:absolute;inset:0}.graph-lines{z-index:1}.graph-edge{stroke-width:.35px;stroke-linecap:round}.graph-edge--outgoing{stroke:#8db7dacc}.graph-edge--incoming{stroke:#6f91aae6;stroke-dasharray:1.4 1}.graph-edge--mutual{stroke:#f0c28beb;stroke-width:.44px}.graph-node{z-index:2;min-width:8rem;max-width:11.5rem;color:var(--midnight-ink);text-align:left;background:#07131fd9;border:1px solid #bad6ee1f;border-radius:18px;padding:.95rem 1rem;position:absolute;transform:translate(-50%,-50%);box-shadow:0 16px 36px #00000038}.graph-node strong{font-size:.94rem;line-height:1.35;display:block}.graph-node span{color:var(--midnight-soft);text-transform:uppercase;margin-top:.42rem;font-size:.72rem;line-height:1.4;display:block}.graph-node--selected{background:#102231eb;border-color:#f0c28b80;min-width:12rem;padding:1.2rem 1.25rem}.graph-node--selected strong{font-size:1rem}.graph-node--outgoing{border-color:#8db7da4d}.graph-node--incoming{border-color:#6f91aa42}.graph-node--mutual{border-color:#f0c28b57}.graph-node:hover,.graph-node:focus-visible{background:#122739f2}.graph-legend{z-index:2;max-width:18rem;color:var(--midnight-soft);margin:0;font-size:.8rem;line-height:1.55;position:absolute;bottom:18px;right:22px}.graph-empty{z-index:2;color:var(--midnight-soft);text-align:center;place-content:center;justify-items:center;gap:10px;padding:24px;display:grid;position:absolute;inset:0}.graph-empty strong{color:var(--midnight-ink)}.article-backdrop{z-index:29;background:#03080e8a;position:fixed;inset:0}.state-screen{text-align:center;place-content:center;justify-items:center;gap:12px;min-height:100dvh;padding:24px;display:grid}.state-screen h1{letter-spacing:-.03em;margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(2rem,4vw,2.8rem);font-weight:500}.state-screen p{max-width:34rem;color:var(--ink-soft);margin:0;line-height:1.6}.state-screen button{background:var(--ink);color:#fff8ef;cursor:pointer;border-radius:999px;min-height:44px;padding:0 18px}.state-screen__spinner{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:1190px){.article-frame{grid-template-columns:1fr}.article-sidebar{border-top:1px solid #583e2114;border-left:0}}@media (max-width:960px){body{overflow:hidden}.app-header{grid-template-columns:minmax(0,1fr);gap:14px;padding:16px}.header-meta{justify-content:space-between}.brand-tagline,.header-meta>span{display:none}.article-toggle--header,.article-close{place-items:center;display:grid}.app-content{grid-template-columns:1fr}.graph-shell{height:auto;min-height:calc(100dvh - 9rem);position:relative;top:auto}.graph-header{padding:18px 16px 12px}.graph-field{margin:12px 16px 16px}.graph-node{border-radius:14px;width:6rem;min-width:0;max-width:6rem;padding:.7rem .75rem}.graph-node strong{font-size:.78rem;line-height:1.25}.graph-node span{display:none}.graph-node--selected{width:7.5rem;min-width:0;padding:.8rem .85rem}.graph-node--selected strong{font-size:.84rem}.graph-legend{text-align:center;max-width:none;font-size:.72rem;bottom:10px;left:14px;right:14px}.graph-header__meta .article-toggle{display:none}.article-shell.is-mobile{z-index:30;border-radius:28px 28px 0 0;max-height:min(82dvh,48rem);position:fixed;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -18px 42px #0000003d}.article-main{padding:24px 20px 28px}.article-sidebar{background:0 0;padding:0 20px 24px}.article-close{flex:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
