.latent .hero{display:grid;grid-template-columns:minmax(340px,4.4fr) 7.6fr;grid-template-areas:"lede plot" "query plot";grid-template-rows:auto 1fr;column-gap:clamp(24px,3.4vw,52px);row-gap:28px;padding-block:clamp(28px,4vw,52px) clamp(48px,6vw,80px)}.latent .lede{grid-area:lede}.latent .lede h1{font-family:var(--font-display);font-weight:400;font-size:clamp(40px,4.4vw,64px);line-height:1.01;letter-spacing:-.022em;margin:14px 0 20px;text-wrap:balance}.latent em{font-style:italic;color:var(--cobalt)}.latent .lede p{margin:0;color:var(--ink-2);font-size:16.5px;max-width:48ch;text-wrap:pretty}.latent .lede p b{color:var(--ink);font-weight:500}.latent .facts{display:grid;grid-template-columns:auto auto auto 1fr;gap:0;margin:26px 0 0;border-top:1px solid var(--ink)}.latent .facts div{padding:10px 18px 0 0;margin-right:18px;border-right:1px solid var(--line)}.latent .facts div:last-child{border-right:0;margin-right:0}.latent .facts dt{color:var(--ink-3);font-size:10px}.latent .facts dd{margin:2px 0 0;font-family:var(--font-display);font-size:30px;line-height:1.1;font-variant-numeric:lining-nums}.latent .facts dd small{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);margin-left:3px}.latent .facts dd.now{font-size:17px;line-height:1.2;font-style:italic;padding-top:6px}.latent .query{grid-area:query;align-self:start;border-radius:6px;padding:16px;display:grid;gap:12px}.latent .query label{display:flex;justify-content:space-between;color:var(--ink-3)}.latent .q-input{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--paper);border-radius:4px;padding:0 10px;color:var(--ink-3);transition:border-color .2s,box-shadow .2s}.latent .q-input:focus-within{border-color:var(--cobalt);box-shadow:0 0 0 3px var(--cobalt-soft)}.latent .q-input input{flex:1;border:0;background:transparent;font:inherit;font-size:15px;padding:11px 0;color:var(--ink);outline:none;min-width:0}.latent .q-input input::placeholder{color:var(--ink-3)}.latent kbd{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);border:1px solid var(--line);border-radius:3px;padding:1px 6px}.latent .presets{display:flex;flex-wrap:wrap;gap:6px}.latent .presets button{font:inherit;font-size:13px;color:var(--ink-2);background:transparent;border:1px solid var(--line);border-radius:99px;padding:3px 11px;transition:all .2s}.latent .presets button:hover{border-color:var(--ink-3);color:var(--ink)}.latent .presets button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.latent .results{list-style:none;margin:0;padding:0;display:grid}.latent .results li>*{display:grid;grid-template-columns:22px 1fr 84px;gap:10px;align-items:center;padding:9px 2px;border-top:1px solid var(--line-2);font-size:14px;line-height:1.3}.latent .results a:hover .r-t{color:var(--cobalt)}.latent .results .rank{font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.latent .results .r-t small{display:block;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);margin-top:2px}.latent .bar{position:relative;height:4px;background:var(--line-2);border-radius:2px}.latent .bar i{position:absolute;inset:0 auto 0 0;background:var(--cobalt);border-radius:2px}.latent .bar b{position:absolute;right:0;top:-16px;font-family:var(--font-mono);font-size:10px;font-weight:400;color:var(--ink-2)}.latent .results .empty{color:var(--ink-3);font-size:13.5px;padding:10px 2px 2px;border-top:1px solid var(--line-2);text-wrap:pretty}.latent .plot{grid-area:plot;position:sticky;top:88px;align-self:start;margin:0;height:min(740px,calc(100svh - 112px));min-height:560px;border-radius:6px;overflow:hidden;background:var(--card)}.latent .plot>svg{position:absolute;inset:0;width:100%;height:100%;display:block}.latent .cap{position:absolute;z-index:2;color:var(--ink-3);pointer-events:none}.latent .cap.tl{top:16px;left:18px}.latent .cap.tl b,.latent .cap.tr b{color:var(--ink);font-weight:500}.latent .cap.tr{top:16px;right:18px;white-space:pre;font-variant-numeric:tabular-nums}.latent .cap.bl{bottom:16px;left:18px}.latent .cap.br{bottom:14px;right:14px;display:flex;align-items:center;gap:14px}.latent .cap.br button{pointer-events:auto;font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--ink-2);background:var(--card);border:1px solid var(--line);border-radius:3px;padding:4px 8px}.latent .cap.br button[aria-pressed=true]{color:var(--signal);border-color:var(--signal)}.latent .cap.br button:disabled{opacity:.4;pointer-events:none}.latent .plot.is-3d>svg,.latent .plot.is-3d #iter{visibility:hidden}.latent .plot>canvas.gl{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none}.latent .plot>canvas.gl:active{cursor:grabbing}.latent .labels3d{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.latent .labels3d span{position:absolute;left:0;top:0;white-space:nowrap;font-size:11.5px;color:var(--ink-2);text-shadow:0 0 3px var(--card),0 0 3px var(--card),0 0 2px var(--card);transition:opacity .2s}.latent .labels3d span.lit{color:var(--ink)}.latent .labels3d span.c{font-family:var(--font-display);font-style:italic;font-size:16px;color:var(--cobalt)}.latent .labels3d span.c small{margin-left:6px;font-family:var(--font-mono);font-style:normal;font-size:9.5px;color:var(--ink-3)}.latent .labels3d span.hide{opacity:0}.latent .cap.br button:hover{color:var(--ink);border-color:var(--ink-3)}.latent .legend{display:flex;flex-wrap:wrap;gap:6px 14px;max-width:62%}.latent .legend>span{display:inline-flex;align-items:center;gap:6px}#svg .dot{fill:var(--line)}#svg .regions,#svg .region-labels,#svg .edges,#svg .query{pointer-events:none}#svg .frame path{fill:none;stroke:var(--ink-3);stroke-width:1}#svg .region .rim circle{fill:none;stroke:var(--cobalt);stroke-opacity:.35;stroke-width:1;stroke-dasharray:3 3}#svg .region .disc circle{fill:#f2f2f4;transition:fill .3s}#svg .region.on .disc circle{fill:#e9eaf3}#svg .region.on .rim circle{stroke-opacity:.75}#svg .region-label{font-family:var(--font-display);font-style:italic;font-size:16px;fill:var(--cobalt);paint-order:stroke;stroke:var(--card);stroke-width:5px;stroke-linejoin:round}#svg .region-label .n{font-family:var(--font-mono);font-style:normal;font-size:9.5px;fill:var(--ink-3)}#svg .regions,#svg .region-labels,#svg .edges{opacity:0;transition:opacity .9s}#svg.settled .regions,#svg.settled .region-labels,#svg.settled .edges{opacity:1}#svg .knn{stroke:var(--ink);stroke-opacity:.13;stroke-width:1;transition:stroke-opacity .25s}#svg .knn.on{stroke-opacity:.6}#svg .pt{cursor:pointer;transition:opacity .25s}#svg .pt:focus{outline:none}#svg .pt .mark{fill:var(--ink);opacity:calc(.45 + .55 * var(--near, 1));transition:fill .2s,opacity .2s}#svg .pt.on .mark,#svg .pt.self .mark{opacity:1}#svg .pt.product .mark{fill:var(--card);stroke:var(--ink);stroke-width:1.4}#svg .pt.work .mark,#svg .pt.repo .mark{fill:var(--ink-2)}#svg .pt .halo{fill:none;stroke:var(--signal);stroke-width:1.3;opacity:0;transition:opacity .2s}#svg .pt text{font-size:11.5px;fill:var(--ink-2);paint-order:stroke;stroke:var(--card);stroke-width:4px;stroke-linejoin:round;pointer-events:none;opacity:0;transition:opacity .4s,fill .2s}#svg.settled .pt:not(.quiet) text,#svg .pt.on text{opacity:1}#svg .pt.self .halo,#svg .pt:focus-visible .halo{opacity:1}#svg .pt.on text{fill:var(--ink)}#svg .pt.self .mark{fill:var(--signal);stroke:var(--signal)}#svg.dim .pt:not(.on){opacity:.25}#svg.dim .knn:not(.on){stroke-opacity:.04}#svg .qline{stroke:var(--signal);stroke-width:1.2;stroke-dasharray:2 3}#svg .qscore{font-family:var(--font-mono);font-size:9.5px;fill:var(--signal);paint-order:stroke;stroke:var(--card);stroke-width:4px}#svg .qpt .core{fill:var(--signal)}#svg .qpt .pulse{fill:none;stroke:var(--signal)}#svg .qpt text{font-family:var(--font-mono);font-size:10px;fill:var(--signal);paint-order:stroke;stroke:var(--card);stroke-width:4px;text-transform:uppercase;letter-spacing:.06em}.latent .tip{position:absolute;left:0;top:0;z-index:5;pointer-events:none;width:290px;background:var(--ink);color:#dcdde0;border-radius:5px;padding:13px 15px;font-size:13px;line-height:1.45;opacity:0;transition:opacity .15s;box-shadow:0 24px 40px -24px #00000080}.latent .tip.show{opacity:1}.latent .tip .mono{color:#9ea3ad;font-size:10px}.latent .tip b{display:block;font-family:var(--font-display);font-weight:400;font-size:19px;line-height:1.12;margin:5px 0 6px;color:#fff}.latent .tip p{margin:0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.latent .tip .nn{margin-top:10px;padding-top:9px;border-top:1px solid #33363d;display:grid;gap:3px;font-size:12.5px}.latent .tip .nn em{font-style:normal;font-family:var(--font-mono);font-size:10.5px;color:#f0a17e;margin-right:8px}.latent .band{border-top:1px solid var(--line);padding-block:clamp(52px,7vw,96px)}.latent .band-head{display:grid;grid-template-columns:4.4fr 7.6fr;gap:clamp(24px,3.4vw,52px);margin-bottom:38px;align-items:end}.latent .band-head h2{font-family:var(--font-display);font-weight:400;font-size:clamp(36px,3.8vw,56px);line-height:1;letter-spacing:-.02em;margin:12px 0 0;text-wrap:balance}.latent .band-head p{margin:0;color:var(--ink-2);max-width:62ch;text-wrap:pretty}.latent .band-head p b{color:var(--ink);font-weight:600}.latent .clusters{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));border-top:1px solid var(--ink)}.latent .cluster{padding:20px 22px 26px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:12px}.latent .cluster:first-child{padding-left:0}.latent .cluster:last-child{border-right:0;padding-right:0}.latent .cluster .k{display:flex;justify-content:space-between;color:var(--ink-3)}.latent .cluster h3{margin:0;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:27px;line-height:1.05;color:var(--cobalt)}.latent .cluster .seed{color:var(--ink-3);font-size:10px;margin-top:-6px}.latent .terms{display:flex;flex-wrap:wrap;gap:4px 12px}.latent .terms span{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-2)}.latent .terms i{display:inline-block;height:6px;background:var(--cobalt);opacity:.55;margin-right:5px;vertical-align:1px;border-radius:1px}.latent .members{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:9px;font-size:14px;line-height:1.3}.latent .members li{display:grid;grid-template-columns:12px 1fr;gap:8px;align-items:start}.latent .members li>svg{margin-top:4px}.latent .members a:hover{color:var(--cobalt)}.latent .members small{display:block;font-family:var(--font-mono);font-size:10px;color:var(--ink-3);margin-top:1px}.latent .members small em{color:var(--signal);font-style:normal}.latent .disagree{margin-top:44px;display:grid;grid-template-columns:4.4fr 7.6fr;gap:clamp(24px,3.4vw,52px);padding-top:22px;border-top:1px solid var(--line)}.latent .verdicts{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:12px;font-family:var(--font-display);font-size:21px;line-height:1.25;color:var(--ink-2)}.latent .verdicts b{font-weight:400;color:var(--ink)}.latent .moves{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}.latent .moves li{display:grid;grid-template-columns:14px 1fr auto;gap:10px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}.latent .moves li b{font-weight:400}.latent .moves .mono{color:var(--ink-3);font-size:10.5px;text-align:right}.latent .moves .mono i{font-style:normal;color:var(--signal);margin:0 4px}.latent .moves .mono em{font-family:var(--font-display);text-transform:none;letter-spacing:0;font-size:15px}.latent .disagree p{color:var(--ink-2);margin:0}.latent .filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.latent .filters button{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-2);border:1px solid var(--line);border-radius:99px;padding:4px 12px;background:transparent;transition:all .2s}.latent .filters button span{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3)}.latent .filters button:hover{border-color:var(--ink-3);color:var(--ink)}.latent .filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.latent .filters button[aria-pressed=true] span{color:var(--ink-3)}.latent .filters button[aria-pressed=true] svg *{fill:var(--paper);stroke:var(--paper)}.latent table.idx{width:100%;border-collapse:collapse;font-size:14.5px}.latent .idx th{font-family:var(--font-mono);font-size:10.5px;font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);text-align:left;padding:10px 14px 10px 0;border-bottom:1px solid var(--ink);white-space:nowrap}.latent .idx th button{font:inherit;color:inherit;background:none;border:0;padding:0;letter-spacing:inherit;text-transform:inherit}.latent .idx th button:hover,.latent .idx th button[data-on]{color:var(--ink)}.latent .idx th button[data-on]:after{content:" ↓"}.latent .idx td{padding:15px 14px 15px 0;border-bottom:1px solid var(--line);vertical-align:top}.latent .idx tbody tr{transition:background .2s}.latent .idx tbody tr:hover{background:var(--paper-2)}.latent .idx .t{width:44%}.latent .idx .t>a,.latent .idx .t>span{font-family:var(--font-display);font-size:21px;line-height:1.15}.latent .idx .t a:hover{color:var(--cobalt)}.latent .idx .t .ext{font-family:var(--font-mono);font-size:12px;color:var(--ink-3)}.latent .idx .t p{margin:5px 0 0;color:var(--ink-2);font-size:13.5px;max-width:62ch}.latent .idx .num,.latent .idx .yr{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-3);white-space:nowrap}.latent .idx .num .kind{display:flex;align-items:center;gap:7px;color:var(--ink-2);margin-bottom:2px}.latent .idx .yr{color:var(--ink-2)}.latent .idx .cl{font-family:var(--font-display);font-style:italic;color:var(--cobalt);font-size:16px;white-space:nowrap}.latent .idx .nb{font-size:13px;color:var(--ink-2)}.latent .idx .nb span{display:block;line-height:1.35;margin-bottom:3px}.latent .idx .nb b{font-family:var(--font-mono);font-weight:400;font-size:10.5px;color:var(--signal);margin-right:7px}.latent .products-rail{--per: 4;--gap: 20px;container-type:inline-size}.latent .products{grid-auto-columns:calc((100% - (var(--per) - 1) * var(--gap)) / var(--per));gap:var(--gap)}.latent .products-rail .rail-btn{top:calc((100cqw - (var(--per) - 1) * var(--gap)) / var(--per) * 11 / 16 / 2)}.latent .products a{display:grid;gap:10px;align-content:start}.latent .products .img{aspect-ratio:16 / 11;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--paper-2)}.latent .products img{width:100%;height:100%;object-fit:cover;object-position:top;filter:grayscale(1) contrast(1.05);transition:filter .5s,transform .8s}@media (hover: none){.latent .products img{filter:none}}.latent .products a:hover img{filter:none;transform:scale(1.025)}.latent .products .mono{color:var(--ink-3);margin-top:4px}.latent .products h3{margin:0;font-family:var(--font-display);font-weight:400;font-size:25px;line-height:1.1}.latent .products a:hover h3{color:var(--cobalt)}.latent .products p{margin:0;color:var(--ink-2);font-size:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.latent .more{display:inline-block;margin-top:28px;color:var(--ink)}.latent .more:hover{color:var(--cobalt)}.latent .rail{position:relative}.latent .rail-btn{position:absolute;top:calc(50% - 7px);z-index:2;width:38px;height:38px;display:grid;place-items:center;transform:translateY(-50%);font-family:var(--font-mono);font-size:15px;color:var(--ink-2);background:var(--card);border:1px solid var(--line);border-radius:3px;box-shadow:0 10px 24px -14px #00000059;transition:color .2s,border-color .2s}.latent .rail-btn:hover{color:var(--ink);border-color:var(--ink-3)}.latent .rail-btn[hidden]{display:none}.latent .rail-btn.prev{left:-19px}.latent .rail-btn.next{right:-19px}.latent .rail-track{display:grid;grid-auto-flow:column;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}.latent .rail-track::-webkit-scrollbar{display:none}.latent .rail-track>*{scroll-snap-align:start}.latent .rail-track:focus-visible{outline:2px solid var(--cobalt);outline-offset:4px}.latent .latest{list-style:none;margin:0;padding:0 0 14px;grid-auto-columns:calc(100% / 3);border-top:1px solid var(--ink)}.latent .latest li{padding:20px 22px 4px;border-right:1px solid var(--line)}.latent .latest li:first-child{padding-left:0}.latent .latest li:last-child{border-right:0;padding-right:0}.latent .latest a{display:grid;gap:10px}.latent .latest .mono{color:var(--ink-3)}.latent .latest h3{margin:0;font-family:var(--font-display);font-weight:400;font-size:25px;line-height:1.12;text-wrap:balance;transition:color .2s}.latent .latest a:hover h3{color:var(--cobalt)}.latent .latest p{margin:0;color:var(--ink-2);font-size:14.5px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.latent .method{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:6px;background:var(--card)}.latent .method li{padding:22px;border-right:1px solid var(--line)}.latent .method li:last-child{border-right:0}.latent .method h3{margin:10px 0 8px;font-size:15.5px;font-weight:600;line-height:1.3}.latent .method p{margin:0;color:var(--ink-2);font-size:13.5px}.latent code{font-family:var(--font-mono);font-size:11.5px;background:var(--paper-2);padding:1px 5px;border-radius:3px;color:var(--ink)}.latent .contact-grid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,5vw,72px);align-items:end}.latent .contact h2{font-family:var(--font-display);font-weight:400;font-size:clamp(44px,6vw,92px);letter-spacing:-.025em;line-height:.96;margin:14px 0 22px;text-wrap:balance}.latent .contact-grid p{color:var(--ink-2);max-width:52ch;margin:0}.latent .links{border-top:1px solid var(--ink)}.latent .links a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-family:var(--font-display);font-size:22px;transition:padding .2s,color .2s}.latent .links a:hover{padding-left:8px;color:var(--cobalt)}.latent .links small{color:var(--ink-3)}.latent .edu{margin-top:56px;color:var(--ink-3)}@media (prefers-reduced-motion: no-preference){.latent .results li{animation:rise .45s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:var(--d)}#svg .qline{animation:draw .6s ease-out backwards}@keyframes draw{0%{stroke-opacity:0}}#svg .qpt .pulse{animation:pulse 1.8s ease-out infinite}@keyframes pulse{0%{r:5;opacity:.9}to{r:24;opacity:0}}}@media (max-width: 1100px){.latent .hero{grid-template-columns:1fr;grid-template-areas:"lede" "plot" "query"}.latent .plot{position:relative;top:0;height:560px;min-height:0}.latent .band-head,.latent .disagree,.latent .contact-grid{grid-template-columns:1fr}.latent .method{grid-template-columns:repeat(2,1fr)}.latent .products-rail{--per: 2}.latent .method li:nth-child(2){border-right:0}.latent .method li:nth-child(-n+2){border-bottom:1px solid var(--line)}.latent .clusters{grid-template-columns:repeat(2,1fr)}.latent .cluster,.latent .cluster:first-child,.latent .cluster:last-child{padding:20px 20px 24px 0;border-right:0;border-bottom:1px solid var(--line)}.latent .cluster:nth-child(2n){padding-left:20px;border-left:1px solid var(--line)}.latent .idx .nb,.latent .idx th:nth-child(5){display:none}}@media (max-width: 640px){.latent .hero{grid-template-areas:"lede" "query" "plot"}.latent .plot{height:400px}#svg .pt:not(.on) text{display:none}.latent .members,.latent .terms,.latent .legend,.latent .cap.br .hint,.latent .cap .wide{display:none}.latent .facts{grid-template-columns:repeat(3,auto)}.latent .facts div:last-child{grid-column:1 / -1;border-top:1px solid var(--line);margin-top:10px}.latent .clusters,.latent .method{grid-template-columns:1fr}.latent .latest{grid-auto-columns:86%}.latent .products-rail{--per: 1.16}.latent .rail-btn.prev{left:-6px}.latent .rail-btn.next{right:-6px}.latent .cluster:nth-child(2n){padding-left:0;border-left:0}.latent .method li{border-right:0;border-bottom:1px solid var(--line)}.latent .idx .cl,.latent .idx th:nth-child(4),.latent .idx .yr,.latent .idx th:nth-child(3){display:none}.latent .idx .t>a,.latent .idx .t>span{font-size:19px}}
