:root{color-scheme:dark;--night:#0b0d1d;--surface:#14173a;--surface-2:#1a1e47;--line:#2a2e5c;--text:#e8eaff;--muted:#a0a6d8;--role:#8f95ff;--work:#5be0c4;--person:#f5b96b;--skill:#c79bff;--f-display:"Manrope", system-ui, sans-serif;--f-mono:"JetBrains Mono", ui-monospace, Menlo, monospace}*{box-sizing:border-box}html,body{background:var(--night)}body{color:var(--text);font-family:var(--f-display);margin:0;font-size:1.03rem;line-height:1.6;overflow-x:hidden}a{color:var(--work);text-underline-offset:3px}h1,h2,h3,p{margin:0}button{font-family:inherit}:focus-visible{outline:2px solid var(--work);outline-offset:3px;border-radius:4px}#sky{z-index:0;width:100%;height:100%;display:block;position:fixed;inset:0}#sky .drift{animation:80s ease-in-out infinite alternate drift}@keyframes drift{0%{transform:translate(0)}to{transform:translate(-18px,12px)}}.edge{stroke:#3a3f86;stroke-width:1px;opacity:.32;transition:opacity .5s,stroke .3s}.node{transition:opacity .5s}.node circle{transition:r .4s,opacity .5s,fill .3s}.node .halo{fill:none;stroke-width:1.5px;opacity:0;transition:opacity .5s}.node text{font:500 11px var(--f-display);fill:#c8ccf5;paint-order:stroke;stroke:var(--night);stroke-width:3px;pointer-events:none;opacity:0;transition:opacity .4s}body.read .node.glow circle.dot{opacity:1}body.read .node.glow .halo{opacity:.5}body.read .edge.glow{opacity:.85;stroke:var(--work)}body.explore #sky .drift{animation:none}body.read #sky{pointer-events:none}.dock{width:var(--dock-w);z-index:0;border-left:1px solid var(--line);padding:calc(env(safe-area-inset-top,0px) + 22px) 22px calc(env(safe-area-inset-bottom,0px) + 20px);pointer-events:none;background:radial-gradient(#8f95ff17,#0b0d1d00 70%);flex-direction:column;justify-content:space-between;transition:opacity .45s;display:flex;position:fixed;top:0;bottom:0;right:0}.dock .now{white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 15rem);font-family:var(--f-mono);letter-spacing:.05em;color:var(--muted);z-index:3;font-size:.72rem;position:relative;overflow:hidden}.dock .now b{color:var(--work);font-weight:500}.dock .legend{color:var(--muted);flex-wrap:wrap;gap:.9rem;font-size:.78rem;display:flex}.dock .legend span{align-items:center;gap:.35rem;display:inline-flex}.dock .legend i{border-radius:50%;width:.5rem;height:.5rem;display:inline-block}body.explore .dock{opacity:0}:root{--dock-w:44vw;--band-h:0px}body.read .node circle.dot{opacity:.45}body.read .node.big circle.dot{opacity:.6}body.read .node.big text{opacity:.8;font-weight:700}body.read .edge{opacity:.22}body.read .node.glow text,body.read .node.pre text{opacity:1}@media (width<=899px){body.read .node text{font-size:14px}}body.read .node.pre circle.dot{opacity:.95}body.read.lit .node:not(.glow):not(.pre) circle.dot{opacity:.2}body.read.lit .node:not(.glow):not(.pre).big text{opacity:.35}.spark{fill:var(--work)}#sky .node circle,#sky .node text{transform:scale(var(--inv,1))}#sky .edge{vector-effect:non-scaling-stroke}@media (width<=899px){:root{--dock-w:100vw;--band-h:230px}.dock{height:calc(var(--band-h) + env(safe-area-inset-top,0px));border-left:0;border-bottom:1px solid var(--line);background:var(--night);z-index:4;padding-top:calc(env(safe-area-inset-top,0px) + 18px);bottom:auto}.dock .legend{display:none}body.read #sky{height:calc(var(--band-h) + env(safe-area-inset-top,0px));z-index:5}}body.explore .node{cursor:pointer}body.explore .node text{opacity:1}body.explore .node.big text{fill:#fff;font-size:13px;font-weight:800}body.explore .edge{opacity:.55}body.explore .edge.hot{stroke:var(--work);opacity:1;stroke-width:1.8px}body.explore .dim{opacity:.1!important}body.explore .node.focus .halo{opacity:.9}.node.placeholder circle.dot{stroke-dasharray:3 3;stroke-width:1.5px;fill:#0000!important}.modebar{z-index:20;top:calc(env(safe-area-inset-top,0px) + 14px);backdrop-filter:blur(8px);border:1px solid var(--line);background:#14173ad9;border-radius:999px;padding:3px;display:flex;position:fixed;right:16px}.modebar button{color:var(--muted);font:600 .85rem var(--f-display);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.4rem .95rem}.modebar button[aria-pressed=true]{background:var(--role);color:var(--night)}.page{z-index:1;padding-block:0 72px;padding-inline:20px;transition:opacity .45s;position:relative}@media (width>=900px){.page{padding-right:calc(var(--dock-w) + 3vw);padding-left:4vw}.page .col{max-width:40rem}}@media (width<=899px){.page{padding-top:calc(var(--band-h) + env(safe-area-inset-top,0px))}}body.explore .page{opacity:0;pointer-events:none}.col{gap:4.5rem;max-width:46rem;margin-inline:auto;display:grid}.topnav{padding-block:1.1rem;flex-wrap:wrap;align-items:center;gap:1.25rem;padding-right:0;font-size:.92rem;display:flex}.topnav .name{color:var(--text);font-weight:800;text-decoration:none}.topnav a:not(.name){color:var(--muted);text-decoration:none}.topnav a:not(.name):hover{color:var(--work)}@media (width<=640px){.topnav a:not(.name){display:none}}.eyebrow{font-family:var(--f-mono);letter-spacing:.08em;color:#8288c9;text-transform:uppercase;font-size:.72rem}section{gap:1.4rem;scroll-margin-top:4rem;display:grid}h2.eyebrow{font-weight:500}.hero-head{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.photo{object-fit:cover;border:2px solid var(--role);border-radius:50%;flex:none;width:120px;height:120px;box-shadow:0 0 0 6px #8f95ff1f,0 0 40px #8f95ff40}.hero-head .meta{flex:20rem;gap:.6rem;min-width:0;display:grid}.who{font-family:var(--f-mono);color:var(--muted);font-size:.8rem}.open{width:fit-content;max-width:100%;color:var(--text);background:#5be0c41a;border:1px solid #5be0c459;border-radius:999px;align-items:center;gap:.5rem;padding:.3rem .85rem;font-size:.9rem;display:inline-flex}.open:before{content:"";background:var(--work);width:.5rem;height:.5rem;box-shadow:0 0 10px var(--work);border-radius:50%;flex:none}.hero h1{letter-spacing:-.025em;text-wrap:balance;font-size:clamp(2.2rem,6vw,3.4rem);font-weight:800;line-height:1.06}.hero h1 span{background:linear-gradient(90deg, var(--role), var(--work));color:#0000;-webkit-background-clip:text;background-clip:text}.lede{color:var(--muted);max-width:40rem;font-size:1.1rem}.cta{flex-wrap:wrap;gap:.7rem;display:flex}.btn{font:600 .92rem var(--f-display);border:1px solid var(--role);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.6rem 1.1rem;text-decoration:none;display:inline-flex}.btn.primary{background:var(--role);color:var(--night)}.btn.ghost{color:var(--text);background:#0b0d1d99}.ask{backdrop-filter:blur(6px);background:linear-gradient(160deg,#1a1e47eb,#14173aeb);border:1px solid #3b4090;border-radius:16px;gap:1rem;padding:1.4rem;display:grid}.ask h2{font-size:1.35rem;font-weight:800}.ask p.sub{color:var(--muted);font-size:.92rem}.askrow{gap:.5rem;display:flex}.askrow input{min-width:0;font:500 1rem var(--f-display);color:var(--text);background:var(--night);border:1px solid var(--line);border-radius:10px;flex:1;padding:.7rem .9rem}.askrow input::placeholder{color:#6d73b5}.askrow button{flex:none}.suggest{flex-wrap:wrap;gap:.4rem;display:flex}.suggest button{font:500 .82rem var(--f-display);color:var(--text);cursor:pointer;background:#8f95ff1f;border:1px solid #3b4090;border-radius:999px;padding:.3rem .75rem}.answer{border-top:1px solid var(--line);gap:.75rem;padding-top:1rem;display:grid}.answer .q{font-family:var(--f-mono);color:var(--work);font-size:.75rem}.answer h3{font-size:1.1rem;font-weight:700}.answer q{quotes:"“" "”";color:var(--muted);border-left:2px solid var(--person);padding-left:.75rem;font-size:.95rem;display:block}.answer .ev{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.answer .ev span{font-family:var(--f-mono);color:#8288c9;margin-right:.2rem;font-size:.7rem}.answer .ev button,.panel .links button{font:500 .8rem var(--f-display);color:var(--text);background:var(--night);border:1px solid var(--line);cursor:pointer;border-radius:6px;align-items:center;gap:.35rem;padding:.25rem .55rem;display:inline-flex}.answer .ev button i,.panel .links button i,.chip i{border-radius:50%;flex:none;width:.5rem;height:.5rem;display:inline-block}.answer .speed{font-family:var(--f-mono);color:#6d73b5;align-items:center;gap:.45rem;font-size:.7rem;display:inline-flex}.answer .speed:before{content:"";background:var(--work);border-radius:50%;width:6px;height:6px}.answer .speed.matching:before{background:var(--skill);animation:.9s infinite blink}.answer .suggest{margin-top:.1rem}.answer p a{color:var(--work)}@keyframes blink{0%,to{opacity:.25}50%{opacity:1}}.ask .live{font-family:var(--f-mono);color:#6d73b5;min-height:1.2em;margin-top:-.4rem;font-size:.72rem}.ask .live b{color:var(--work);font-weight:500}.roles li{transition:background .25s}.roles li:hover,.roles li.lit{background:#8f95ff12}.cases{gap:1rem;display:grid}.case{backdrop-filter:blur(6px);border:1px solid var(--line);background:#14173ae6;border-radius:14px;gap:.6rem;min-width:0;padding:1.3rem 1.4rem;transition:border-color .3s;display:grid}.case:focus-visible{outline-offset:2px}.case>.result:before{content:"";background:var(--work);width:.5rem;height:.5rem;box-shadow:0 0 8px var(--work);vertical-align:.1em;border-radius:50%;margin-right:.5rem;display:inline-block}.case details summary{cursor:pointer;color:var(--work);width:fit-content;font-size:.9rem;font-weight:600;list-style:none}.case details summary::-webkit-details-marker{display:none}.case details summary:after{content:" +"}.case details[open] summary:after{content:" −"}.case details[open]{gap:1rem;display:grid}.case details[open] summary{margin-bottom:.2rem}.case h3{font-size:1.35rem;font-weight:800;line-height:1.2}.case dl{grid-template-columns:6.5rem minmax(0,1fr);gap:.6rem 1rem;margin:0;display:grid}.case dt{font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:#8288c9;padding-top:.25rem;font-size:.72rem}.case dd{margin:0}.case dd.result{color:#fff;font-weight:600}.case dd.result:before{content:"";background:var(--work);width:.5rem;height:.5rem;box-shadow:0 0 8px var(--work);vertical-align:.1em;border-radius:50%;margin-right:.5rem;display:inline-block}@media (width<=520px){.case dl{grid-template-columns:minmax(0,1fr);gap:.15rem}.case dd{margin-bottom:.6rem}}figure.shot{gap:.4rem;margin:0;display:grid}figure.shot img{border:1px solid var(--line);border-radius:8px;width:100%;display:block}figure.shot figcaption{color:var(--muted);font-size:.8rem}.quotes{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.quote{backdrop-filter:blur(6px);border:1px solid var(--line);background:#14173ae0;border-radius:14px;align-content:start;gap:.6rem;padding:1.2rem;display:grid}.quote.lead{grid-column:1/-1}.quote blockquote{margin:0;font-size:1.05rem;line-height:1.5}.quote.lead blockquote{font-size:1.3rem}.quote .by{color:var(--muted);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.quote .by:before{content:"";background:var(--person);border-radius:50%;flex:none;width:.5rem;height:.5rem}.quote .by b{color:var(--text);font-weight:600}@media (width<=620px){.quotes{grid-template-columns:minmax(0,1fr)}}.roles{backdrop-filter:blur(6px);border:1px solid var(--line);background:#14173ad9;border-radius:14px;margin:0;padding:0;list-style:none;display:grid}.roles li{grid-template-columns:9.5rem minmax(0,1fr);gap:1rem;padding:.95rem 1.2rem;display:grid}.roles li+li{border-top:1px solid var(--line)}.roles .when{font-family:var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums;padding-top:.2rem;font-size:.78rem}.roles b{font-weight:700}.roles .what .prods{flex-wrap:wrap;gap:.4rem;margin-top:.55rem;display:flex}.roles .prods button{font:500 .78rem var(--f-mono);color:var(--work);cursor:pointer;background:0 0;border:1px solid #5be0c459;border-radius:999px;padding:.2rem .65rem}.roles .prods button:hover,.roles .prods button:focus-visible{border-color:var(--work);color:#fff}.roles .what span{color:var(--muted);font-size:.93rem;display:block}@media (width<=520px){.roles li{grid-template-columns:minmax(0,1fr);gap:.15rem}}.fine{color:var(--muted);font-size:.92rem}.fine b{color:var(--text)}.contact{background:linear-gradient(160deg,#5be0c41f,#8f95ff1f);border:1px solid #3b4090;border-radius:16px;padding:1.6rem}.contact h3{font-size:1.5rem;font-weight:800}.contact .row{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.contact code{font-family:var(--f-mono);user-select:all;overflow-wrap:anywhere}.copy{font:600 .82rem var(--f-display);border:1px solid var(--work);color:var(--work);cursor:pointer;background:0 0;border-radius:999px;padding:.3rem .8rem}footer{color:var(--muted);font-size:.85rem}.xui{z-index:10;pointer-events:none;opacity:0;transition:opacity .45s;position:fixed;inset:0}body.explore .xui{opacity:1}body.explore .xui>*{pointer-events:auto}.xbar{left:16px;top:calc(env(safe-area-inset-top,0px) + 14px);gap:.5rem;display:grid;position:absolute;right:13rem}.xbar h2{font-size:1.15rem;font-weight:800}.xbar .groups{flex-wrap:wrap;gap:.4rem 1rem;display:flex}.group{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.group>span{font-family:var(--f-mono);color:#8288c9;font-size:.68rem}.chip{font:500 .8rem var(--f-display);color:var(--text);border:1px solid var(--line);cursor:pointer;background:#14173ad9;border-radius:999px;align-items:center;gap:.4rem;padding:.25rem .7rem;display:inline-flex}.chip[aria-pressed=false]{opacity:.45}.chip.sel[aria-pressed=true]{background:var(--role);color:var(--night);border-color:var(--role)}.chip.sel[aria-pressed=false]{opacity:1}.panel{right:16px;top:calc(env(safe-area-inset-top,0px) + 72px);backdrop-filter:blur(8px);border:1px solid var(--line);background:#14173af0;border-radius:14px;align-content:start;gap:.75rem;width:22rem;max-height:calc(100% - 100px);padding:1.1rem;display:grid;position:absolute;overflow:auto}.panel .type{font-family:var(--f-mono);letter-spacing:.06em;font-size:.7rem}.panel h3{font-size:1.2rem;font-weight:800;line-height:1.25}.panel .sub{color:var(--muted);font-size:.85rem}.panel q{quotes:"“" "”";display:block}.panel .result{border-left:2px solid var(--work);padding-left:.7rem}.panel a.ext{color:var(--work);border-bottom:1px solid;font-family:IBM Plex Mono,monospace;font-size:.8rem;text-decoration:none}.panel a.ext:hover,.panel a.ext:focus-visible{color:#fff}.panel h4{font-family:var(--f-mono);color:#8288c9;letter-spacing:.06em;margin:.2rem 0 0;font-size:.68rem;font-weight:500}.panel .links{flex-wrap:wrap;gap:.35rem;display:flex}.panel .todo{color:var(--person);border:1px dashed #f5b96b80;border-radius:8px;padding:.45rem .6rem;font-size:.8rem}.panel .reset{font:600 .8rem var(--f-display);color:var(--work);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0}.xhint{left:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);font-family:var(--f-mono);color:#6d73b5;font-size:.68rem;position:absolute}@media (width<=760px){.xbar{right:16px;top:calc(env(safe-area-inset-top,0px) + 62px)}.panel{width:auto;top:auto;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);max-height:42%}.xhint{display:none}}@media (prefers-reduced-motion:reduce){.answer .speed.matching:before,#sky .drift{animation:none}.page,.xui,.node,.edge,.node circle{transition:none}.cases{scroll-behavior:auto}}#dust{z-index:0;pointer-events:none;width:100%;height:100%;display:block;position:fixed;top:0;left:0}@media (width<=899px){body.read #dust{height:calc(var(--band-h) + env(safe-area-inset-top,0px));z-index:5}}.dock{background:0 0;border-left-color:#ffffff0f}@media (width<=899px){.dock{background:var(--night)}}#intro{z-index:50;cursor:pointer;padding:0 20px calc(env(safe-area-inset-bottom,0px) + 11vh);display:none;position:fixed;inset:0}html.intro #intro{place-items:end center;display:grid}html.intro #dust{z-index:40;height:100%}html.intro .page,html.intro .dock,html.intro #sky,html.intro .modebar{opacity:0;pointer-events:none}html.intro .page{transform:scale(1.02)}html.intro.intro-out #sky{opacity:1;transition:opacity 1.4s .6s}html.intro.intro-out .page,html.intro.intro-out .dock,html.intro.intro-out .modebar{opacity:1;transition:opacity 1.2s 1.5s,transform 1.6s cubic-bezier(.2,.7,.2,1) 1.4s;transform:none}html.intro.intro-out #intro{pointer-events:none}.intro-copy{text-align:center;justify-items:center;gap:.6rem;transition:opacity .5s,transform .7s;display:grid}html.intro-go .intro-copy{opacity:0;transform:scale(.97)translateY(6px)}.intro-name{letter-spacing:-.045em;background:linear-gradient(#fff 30%,#b9bff0);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 -.1em -.12em;padding:.02em .1em .12em;font-size:clamp(2.6rem,7vw,5.2rem);font-weight:700;line-height:1.12}.intro-line{color:var(--muted);letter-spacing:-.01em;font-size:clamp(1.05rem,2vw,1.3rem)}.intro-enter{font:600 .95rem var(--f-display);color:var(--night);cursor:pointer;background:#fff;border:0;border-radius:999px;margin-top:1.1rem;padding:.7rem 1.6rem;transition:transform .2s,box-shadow .3s;box-shadow:0 0 #ffffff59}.intro-enter:hover{transform:scale(1.04);box-shadow:0 0 34px 2px #a0beff59}.intro-skip{right:20px;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);font:500 .78rem var(--f-display);color:var(--muted);cursor:pointer;background:0 0;border:0;padding:.4rem;position:absolute}.intro-skip:hover{color:var(--text)}html.intro-go .intro-skip{opacity:0;transition:opacity .4s}:root{--night:#060918;--hair:#ffffff14}html,body{background-color:#05071a;background-image:radial-gradient(1400px 900px at 78% 38%,#0c1340 0%,#070a1f 52%,#05071a 100%);background-attachment:fixed}.col{gap:6.5rem}.topnav{letter-spacing:-.005em;font-size:.86rem}.topnav a:not(.name){color:#8e94c4}.photo{border:1px solid #ffffff2e;width:84px;height:84px;box-shadow:0 0 0 6px #8f95ff0f}.who{font-family:var(--f-display);letter-spacing:0;font-size:.86rem}.open{background:#5be0c412;border-color:#5be0c440;font-size:.82rem}.hero{gap:1.6rem;padding-top:3rem}.hero h1{letter-spacing:-.045em;background:linear-gradient(#fff 40%,#c3c8f3);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.6rem,5.2vw,4.5rem);font-weight:700;line-height:1.02}.hero h1 span{background:linear-gradient(90deg, #a3a8ff, var(--work));-webkit-background-clip:text;background-clip:text}.lede{color:#a7acd6;letter-spacing:-.005em;font-size:1.16rem;line-height:1.55}.btn{letter-spacing:-.005em;padding:.7rem 1.3rem;font-weight:600;transition:transform .2s,background .2s}.btn:hover{transform:translateY(-1px)}.btn.primary{color:var(--night);background:#fff;border-color:#fff}.btn.ghost{background:0 0;border-color:#ffffff38}.eyebrow,h2.eyebrow{font-family:var(--f-display);letter-spacing:.02em;text-transform:none;color:var(--work);font-size:.8rem;font-weight:600}.ask{backdrop-filter:blur(18px);border:1px solid var(--hair);background:#ffffff06;border-radius:24px;padding:clamp(1.3rem,3vw,2rem)}.ask h2{letter-spacing:-.035em;font-size:clamp(1.6rem,3vw,2.1rem);font-weight:700}.askrow input{background:#05071ab3;border-color:#ffffff1f;border-radius:999px;padding:.85rem 1.2rem}.askrow input:focus-visible{border-color:var(--work);outline:none;box-shadow:0 0 0 4px #5be0c426}.suggest button{color:#c9cdf2;background:0 0;border-color:#ffffff24}.suggest button:hover{border-color:var(--work);color:#fff}.answer{border-top-color:var(--hair)}.cases{border-top:1px solid var(--hair);gap:0}.case{backdrop-filter:none;border:0;border-bottom:1px solid var(--hair);background:0 0;border-radius:0;gap:.7rem;padding:2rem 0}.case:hover,.case:focus-within,.case.lit{border-color:var(--hair)}.case h3{letter-spacing:-.03em;font-size:clamp(1.5rem,2.6vw,1.9rem);font-weight:700}.case.lit h3{color:#fff}.case>.result{color:#d9dcf7;font-weight:500}.case .where{font-family:var(--f-display);color:#8187b8;font-size:.82rem}.quotes{border-top:1px solid var(--hair);gap:0}.quote{backdrop-filter:none;border:0;border-bottom:1px solid var(--hair);background:0 0;border-radius:0;padding:1.6rem 0}.quote blockquote{letter-spacing:-.01em;font-size:1.15rem}.quote.lead blockquote{letter-spacing:-.025em;font-size:clamp(1.4rem,2.6vw,1.8rem);font-weight:600;line-height:1.3}.roles{backdrop-filter:none;border:0;border-top:1px solid var(--hair);background:0 0;border-radius:0}.roles li{padding:1.1rem .4rem}.roles li+li{border-top-color:var(--hair)}.roles .when{font-family:var(--f-display);color:#8187b8}.contact{border-color:var(--hair);background:#ffffff06;border-radius:24px;padding:clamp(1.4rem,4vw,2.4rem)}.contact h3{letter-spacing:-.04em;font-size:clamp(1.8rem,3.6vw,2.6rem);font-weight:700}.modebar{border-color:var(--hair);backdrop-filter:blur(14px);background:#0a0d2699}.modebar button[aria-pressed=true]{color:var(--night);background:#fff}#sky .node circle.dot{filter:drop-shadow(0 0 4px)}body.read .edge{stroke:#8f9cff;opacity:.12}body.read .edge.glow{stroke:var(--work);opacity:.7}
