.graph{position:relative}.graph-svg{width:100%;height:auto;display:block}.graph-node circle{transform-box:fill-box;transform-origin:50%;cursor:default;transition:opacity .2s}.graph-node{animation:9s ease-in-out infinite alternate graph-drift;animation-delay:var(--d);outline:none}.graph-node:focus-visible circle{stroke:var(--accent);stroke-width:3px}.graph-name{font-family:var(--font-mono);fill:var(--ink);paint-order:stroke;stroke:var(--card);stroke-width:3.5px;stroke-linejoin:round;pointer-events:none;font-size:10.5px;transition:opacity .2s}.graph[data-active] .graph-name{opacity:.25}.graph[data-active] .graph-name[data-hot]{opacity:1}.graph-links line{transition:stroke-opacity .2s,stroke .2s}.graph[data-active] .graph-node:not([data-hot]) circle{opacity:.25}.graph[data-active] .graph-links line:not([data-hot]){stroke-opacity:.05}.graph[data-active] .graph-links line[data-hot]{stroke:var(--accent);stroke-opacity:.6;stroke-width:1.5px}.graph-label{max-width:60%;font-family:var(--font-mono);color:var(--ink);background:var(--paper);border:1px solid var(--rule);pointer-events:none;padding:.35rem .6rem;font-size:.78rem;position:absolute;bottom:.75rem;left:.75rem}.graph-label:empty{display:none}.graph-key{font-family:var(--font-mono);color:var(--ink-muted);grid-template-columns:1fr;gap:.4rem 1.5rem;margin:1rem 0 0;padding:0;font-size:.72rem;list-style:none;display:grid}@media (width>=768px){.graph-key{grid-template-columns:repeat(2,minmax(0,1fr))}}.graph-key li{align-items:baseline;gap:.5rem;min-width:0;display:flex}.graph-key-dot{border-radius:50%;flex:none;width:7px;height:7px;transform:translateY(-1px)}.graph-key-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.graph-key-meta{flex:none;margin-left:auto}@keyframes graph-drift{0%{transform:translate(0)}to{transform:translate(3px,-2px)}}@media (prefers-reduced-motion:reduce){.graph-node{animation:none}}.logo-anim{transform-origin:50%;animation:80s linear infinite logo-spin}.logo-anim path{stroke-dasharray:700;stroke-dashoffset:700px;animation:1.1s cubic-bezier(.4,0,.2,1) forwards logo-arm}.logo-anim circle{opacity:0;transform-box:fill-box;transform-origin:50%;animation:.4s ease-out forwards logo-node,3.2s ease-in-out 1.8s infinite logo-pulse}.logo-anim circle:first-of-type,.logo-anim circle:nth-of-type(12),.logo-anim circle:nth-of-type(23){animation-delay:1.25s,3.05s}.logo-anim circle:nth-of-type(2),.logo-anim circle:nth-of-type(13),.logo-anim circle:nth-of-type(24){animation-delay:1.15s,2.95s}.logo-anim circle:nth-of-type(3),.logo-anim circle:nth-of-type(14),.logo-anim circle:nth-of-type(25){animation-delay:1.05s,2.85s}.logo-anim circle:nth-of-type(4),.logo-anim circle:nth-of-type(15),.logo-anim circle:nth-of-type(26){animation-delay:.95s,2.75s}.logo-anim circle:nth-of-type(5),.logo-anim circle:nth-of-type(16),.logo-anim circle:nth-of-type(27){animation-delay:.85s,2.65s}.logo-anim circle:nth-of-type(6),.logo-anim circle:nth-of-type(17),.logo-anim circle:nth-of-type(28){animation-delay:.72s,2.52s}.logo-anim circle:nth-of-type(7),.logo-anim circle:nth-of-type(18),.logo-anim circle:nth-of-type(29){animation-delay:.58s,2.38s}.logo-anim circle:nth-of-type(8),.logo-anim circle:nth-of-type(19),.logo-anim circle:nth-of-type(30){animation-delay:.44s,2.24s}.logo-anim circle:nth-of-type(9),.logo-anim circle:nth-of-type(20),.logo-anim circle:nth-of-type(31){animation-delay:.3s,2.1s}.logo-anim circle:nth-of-type(10),.logo-anim circle:nth-of-type(21),.logo-anim circle:nth-of-type(32){animation-delay:.16s,1.96s}.logo-anim circle:nth-of-type(11),.logo-anim circle:nth-of-type(22),.logo-anim circle:nth-of-type(33){animation-delay:20ms,1.82s}.logo-anim circle:nth-of-type(34){animation:.6s ease-out 1.35s forwards logo-core,3.2s ease-in-out 2s infinite logo-breathe}.group:hover .logo-hover path{stroke-dasharray:700;stroke-dashoffset:700px;animation:.9s cubic-bezier(.4,0,.2,1) forwards logo-arm}.group:hover .logo-hover circle{transform-box:fill-box;transform-origin:50%;animation:.5s ease-out both logo-node;animation-delay:calc(.85s - var(--i,0) * 90ms)}@keyframes logo-arm{to{stroke-dashoffset:0}}@keyframes logo-spin{to{transform:rotate(360deg)}}@keyframes logo-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.45)}}@keyframes logo-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}@keyframes logo-node{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes logo-core{0%{opacity:0;transform:scale(.2)}60%{opacity:1;transform:scale(1.5)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.logo-anim,.logo-anim path,.logo-anim circle{opacity:1;stroke-dashoffset:0;animation:none!important}}.graph-card:where(.astro-ge2uvauf) noscript:where(.astro-ge2uvauf) img:where(.astro-ge2uvauf){display:block}.loop{color:var(--ink)}.loop-ring{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;display:grid}.loop-item{align-items:center;min-width:0;display:flex}.loop-node{text-align:left;border:1px solid var(--rule);background:var(--paper);min-width:0;font-family:var(--font-sans);color:var(--ink);cursor:pointer;flex:auto;padding:.85rem 1rem;font-size:.95rem;line-height:1.3;transition:border-color .15s,background .15s}.loop-node:hover,.loop-node[data-active]{border-color:var(--accent);background:var(--accent-wash)}.loop-arrow{color:var(--ink-muted);font-family:var(--font-mono);flex:none;padding-inline:.5rem}.loop-item:last-child .loop-arrow{visibility:hidden}.loop-return{width:100%;height:56px;color:var(--ink-muted);margin-top:-1px;display:block}.loop-panel{border-top:1px solid var(--rule);min-height:5.5rem;padding-top:1rem}.loop-blurb{max-width:62ch;color:var(--ink);margin:0}.loop-hint{color:var(--ink-muted)}.loop-cmd{font-family:var(--font-mono);background:var(--paper-2);border:1px solid var(--rule);margin-top:.6rem;padding:.3rem .6rem;font-size:.85rem;display:inline-block}@media (width<=767px){.loop-ring{grid-template-columns:1fr;gap:.25rem}.loop-item{flex-direction:column;align-items:stretch}.loop-arrow{text-align:center;padding:.1rem;transform:rotate(90deg)}.loop-return{display:none}}.loop:has(.loop-node:hover) .loop-node:not(:hover)[data-active]{background:var(--paper);border-color:var(--rule)}@media (prefers-reduced-motion:reduce){.loop-node{transition:none}}.note-card{border:1px solid var(--rule);background:var(--card);box-shadow:0 1px 0 var(--rule), 0 24px 60px -30px var(--shadow)}.note-bar{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:.5rem .75rem;display:flex}.note-tabs{flex-wrap:wrap;gap:.25rem;display:flex}.note-tab{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-muted);cursor:pointer;background:0 0;border:1px solid #0000;padding:.35rem .7rem;font-size:.78rem}.note-tab:hover{color:var(--ink)}.note-tab[aria-selected=true],.note-tab[aria-current=true]{color:var(--ink);background:var(--accent-wash);border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.note-file{font-family:var(--font-mono);color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.72rem;overflow:hidden}.note-body{font-family:var(--font-mono);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2;font-variant-ligatures:none;margin:0;padding:1rem 1.1rem 1.25rem;font-size:.82rem;line-height:1.6;overflow-x:auto}.note-body .fm-block{background:var(--paper-2);color:var(--ink-muted);margin:-1rem -1.1rem .9rem;padding:.9rem 1.1rem;display:block}.note-body .fence{color:var(--rule)}.note-body .fm-key{color:var(--ink)}.note-body .wikilink{color:var(--accent-text)}.note-body .heading{color:var(--ink);font-weight:500}
