html,body,#root{margin:0;min-height:100%}body{background:#141414}.pf{--bg: #141414;--ink: #d8d8d2;--dim: #a6a69f;--faint: #3a3a36;--accent: #e5484d;background:var(--bg);color:var(--ink);font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.65;padding:56px 24px 40px;margin:0;min-height:100vh;box-sizing:border-box}.pf.light{--bg: #f2f0e9;--ink: #1d1d1a;--dim: #5c5c55;--faint: #d5d2c6;--accent: #c2242a}.pf-outer{max-width:1080px;margin:0 auto}.pf-col{max-width:600px}.pf-col>*{max-width:600px}.pf,.pf *{font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,Liberation Mono,DejaVu Sans Mono,monospace}.pf a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--dim)}.pf a:hover{text-decoration-color:var(--ink)}.pf-nav{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:72px;flex-wrap:wrap;gap:12px}.pf-name{font-weight:600;letter-spacing:.02em}.pf-nav nav{display:flex;gap:18px;flex-wrap:wrap}.pf-nav nav a{font-size:13px}.pf-headline{font-size:20px;font-weight:600;margin:0 0 24px;letter-spacing:.01em}.pf-intro{margin:0 0 28px}.pf-strip{color:var(--dim);font-size:12.5px;margin:0 0 10px}.pf-meta{color:var(--dim);font-size:12.5px;margin:0 0 6px}.pf-hero-text{margin-bottom:48px}.pf-graph-wrap{margin:0 0 24px;max-width:600px}.pf-graph{width:100%;height:auto;display:block}.edge{stroke:var(--faint);stroke-width:1;transition:stroke .15s}.edge.active{stroke:var(--dim)}.dot{fill:var(--ink);transition:r .15s}.dot.selected{fill:var(--accent)}.node{cursor:pointer}.nodelabel{fill:var(--ink);opacity:.72;font-size:11px;font-family:inherit}.node:hover .nodelabel{fill:var(--ink)}.pf-graph-wrap figcaption{color:var(--dim);font-size:12px;margin-top:8px;text-align:center}.pf-tip{position:sticky;bottom:8px;color:var(--ink);font-size:12px;padding:6px 0}.pf-panel{border:1px solid var(--faint);padding:14px 16px;margin:0 0 32px;font-size:13px}.pf-panel-head{display:flex;justify-content:space-between;margin-bottom:4px}.pf-panel-head button{background:none;border:none;color:var(--dim);font:inherit;cursor:pointer;padding:0 4px}.pf-panel-head button:hover{color:var(--ink)}.pf-panel-blurb{color:var(--dim);margin:0 0 10px}.pf-story{margin:0 0 10px}.pf-panel-link{font-size:12.5px}.pf section{margin-bottom:56px}.pf h2{font-size:12px;font-weight:400;letter-spacing:.18em;color:var(--dim);margin:0 0 28px}.pf h3.pf-sub{font-size:12px;font-weight:400;letter-spacing:.14em;color:var(--dim);margin:36px 0 20px}.pf section p{margin:0 0 16px}.pf-proj{display:block;margin-bottom:28px}.pf-proj-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.pf-rank{color:var(--dim);font-size:12px;margin-right:12px}.pf-proj-name{font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--dim)}.pf-proj-name:hover{text-decoration-color:var(--ink)}.pf-feature .pf-proj-name{flex:1}.pf-proj-date{color:var(--dim);font-size:12px;white-space:nowrap}.pf-proj p{margin:4px 0 0;color:var(--dim)}.pf-proj-intro{color:var(--ink)!important;margin:6px 0 10px!important}.pf-feature ul{list-style:none;margin:0 0 10px;padding:0;color:var(--dim)}.pf-feature li{margin-bottom:6px;padding-left:16px;text-indent:-16px}.pf-feature li:before{content:"-  ";color:var(--faint)}.pf.light .pf-feature li:before{color:var(--dim)}.pf-status{font-size:12.5px;color:var(--dim)}.pf-status:before{content:""}.pf-more{display:inline-block;font-size:13px}.pf-note{color:var(--dim);font-size:12.5px}.pf-theme-note{color:var(--dim);font-size:12.5px;margin:-12px 0 16px!important}.pf-read-theme{margin-bottom:8px}.pf-plain-name{text-decoration:none;font-weight:700;color:var(--ink)}.pf-exp-tags{color:var(--dim);font-size:12.5px;margin:-6px 0 18px!important}.pf footer{border-top:1px solid var(--faint);padding-top:20px}.pf-links{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:14px;font-size:13px}.pf-foot{display:flex;justify-content:space-between;align-items:center;color:var(--dim);font-size:12px}.pf-toggle{background:none;border:none;color:var(--dim);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:8px 0}.pf-toggle:hover{color:var(--ink)}.pf .pf-home-link{text-decoration:none}.pf-screen-return{margin:0 0 32px;font-size:12px}.pf-screen-foot{border-top:1px solid var(--faint);text-align:right}.pf-nav a[aria-current=page]{text-decoration-color:var(--ink)}.nodelabel.small{font-size:12.5px;opacity:.85}@media(min-width:1024px){.pf{font-size:15.5px;padding:64px 48px 48px}.pf-outer{max-width:1180px}.pf-col,.pf-col>*{max-width:none}.pf-name{color:#eceae2}.pf.light .pf-name{color:#111110}.pf a:hover{text-decoration-color:var(--accent)}.pf-nav{margin-bottom:96px}.pf-nav nav a.pf-current,.pf-nav a[aria-current=page]{text-decoration-color:var(--accent);text-decoration-thickness:1.5px}.pf-hero{display:grid;grid-template-columns:minmax(0,42ch) minmax(0,1fr);column-gap:64px;align-items:center;margin-bottom:80px}.pf-hero-text{margin:0}.pf-headline{font-size:24px;margin-bottom:28px}.pf-intro{margin:0;font-size:16px}.pf-strip{margin-top:28px}.pf-graph-wrap{max-width:none;margin:0}.nodelabel{font-size:13px;opacity:.8}.pf-tip{font-size:12.5px}.pf section,.pf-panel,.pf footer{max-width:640px}.pf h2{font-size:12.5px;color:var(--ink);letter-spacing:.2em}.pf h3.pf-sub{color:var(--ink)}.pf-proj-date,.pf-screen-return{font-size:12.5px}}.pf.pf-mob{padding:28px 20px;margin:0;font-size:14px;line-height:1.65}.pf.pf-mob .pf-nav{flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:52px}.pf.pf-mob .pf-name{font-size:15px}.pf.pf-mob .pf-nav nav{width:100%;flex-wrap:nowrap;justify-content:space-between;gap:5px}.pf.pf-mob .pf-nav nav a{font-size:clamp(9px,2.75vw,11.5px);white-space:nowrap;padding:4px 0}.pf.pf-mob .pf-headline{font-size:18px;margin-bottom:20px}.pf.pf-mob .pf-intro{margin-bottom:24px}.pf.pf-mob .pf-hero-text{margin-bottom:40px}.pf.pf-mob .pf-strip,.pf.pf-mob .pf-meta{font-size:12.5px}.pf.pf-mob h2{font-size:13px;margin-bottom:24px}.pf.pf-mob h3.pf-sub{font-size:13px}.pf.pf-mob section p{margin-bottom:18px}.pf.pf-mob .pf-proj{margin-bottom:32px}.pf.pf-mob .pf-proj-date,.pf.pf-mob .pf-rank{font-size:13px}.pf.pf-mob .pf-status,.pf.pf-mob .pf-note,.pf.pf-mob .pf-theme-note{font-size:14px}.pf.pf-mob .pf-more{font-size:15px}.pf.pf-mob .pf-panel{font-size:15px;padding:16px}.pf.pf-mob .pf-panel-link{font-size:14px}.pf.pf-mob .pf-tip{font-size:13.5px;position:static}.pf.pf-mob .pf-graph-wrap figcaption{font-size:13.5px}.pf.pf-mob .nodelabel,.pf.pf-mob .nodelabel.small{font-size:12.5px;opacity:.9}.pf.pf-mob .dot{r:4}.pf.pf-mob .pf-links{font-size:13.5px;gap:14px 22px}.pf.pf-mob .pf-foot{font-size:13px}.pf.pf-mob .pf-screen-return{font-size:14px}@media(max-width:440px){.pf-screen .pf-proj-top{flex-wrap:wrap;gap:2px 16px}}.pf.pf-mob .pf-hero{display:block}.pf.pf-mob .pf-col,.pf.pf-mob .pf-col>*{max-width:100%}.pf.pf-mob .pf-proj-top{flex-wrap:wrap}.pf .pf-home-link{display:inline-flex;align-items:center;gap:10px}.pf-avatar-slot:empty{display:none}.pf-avatar-slot img{display:block;width:30px;height:30px;border-radius:50%;object-fit:cover}.pf.pf-mob .pf-avatar-slot img{width:26px;height:26px}
