@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;0,8..60,700;1,8..60,400&family=Inter:wght@400;600;700;800&family=Playfair+Display:wght@700;800&family=JetBrains+Mono:wght@400;500&display=swap");*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:#fcfbf9}.mono{font-family:JetBrains Mono,SF Mono,monospace}.disp,.logo{font-family:Playfair Display,Georgia,serif}.tab{cursor:pointer;transition:color .15s,border-color .2s;border-bottom:2px solid transparent;padding:14px 2px;font-size:15px}.tab.on,.tab:hover{color:var(--ink)}.tab.on{border-color:var(--amber)}.node{cursor:-webkit-grab;cursor:grab;transition:opacity .25s}.node:active{cursor:-webkit-grabbing;cursor:grabbing}.edge{transition:opacity .25s,stroke-width .2s}.fin{animation:fin .5s cubic-bezier(.2,.7,.2,1) both}@keyframes fin{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.stat{animation:pop .6s cubic-bezier(.2,.7,.2,1) both}@keyframes pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.bar{transition:width 1s cubic-bezier(.2,.7,.2,1)}.spin{animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.fin,.stat{animation:none}.bar{transition:none}.spin{animation:none}}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--line2);border-radius:5px}input::placeholder{color:var(--faint)}.card{background:var(--bg2);border-radius:14px;padding:22px 24px}.seg{background:none;border:none;padding:7px 14px;font-size:12px;cursor:pointer}.grain{position:fixed;inset:0;pointer-events:none;opacity:.025;z-index:1;background-image:var(--grain)}