@keyframes cat-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.cat-mast{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:end;gap:3rem 3.5rem;padding-block:1rem 2.5rem;display:grid}.cat-mast__copy>*{animation:.55s cubic-bezier(.2,.7,.2,1) both cat-rise}.cat-mast__copy>:nth-child(2){animation-delay:70ms}.cat-mast__copy>:nth-child(3){animation-delay:.14s}.cat-mast__title{font-family:var(--font-display);letter-spacing:-.02em;margin:1rem 0 .9rem;font-size:clamp(2.6rem,5.2vw,4.1rem);font-weight:500;line-height:1.02}.cat-mast__lede{max-width:52ch;color:var(--fg-muted);margin:0;font-size:1.0625rem}.cat-stats{justify-content:flex-end;gap:2.6rem;margin:0;animation:.55s cubic-bezier(.2,.7,.2,1) .2s both cat-rise;display:flex}.cat-stats__item{text-align:right}.cat-stats__value{font-family:var(--font-mono);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:0;font-size:2rem;font-weight:500}.cat-stats__label{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);font-size:.75rem;font-weight:600}.cat-controls{z-index:20;border-block:1px solid var(--line);background:color-mix(in oklab, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);align-items:center;gap:1rem;padding-block:.85rem;display:flex;position:sticky;top:0}.cat-search{flex:0 21rem;align-items:center;min-width:12rem;display:flex;position:relative}.cat-search__icon{color:var(--fg-muted);pointer-events:none;position:absolute;left:.95rem}.cat-search__input{width:100%;font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--line-strong);border-radius:999px;padding:.6rem 2.3rem .6rem 2.5rem;font-size:.9375rem;transition:border-color .16s,box-shadow .16s}.cat-search__input::placeholder{color:var(--fg-muted)}.cat-search__input::-webkit-search-cancel-button{display:none}.cat-search__input:focus-visible{border-color:var(--line-focus);box-shadow:0 0 0 3px color-mix(in oklab, var(--line-focus) 28%, transparent);outline:none}.cat-search__clear{width:1.5rem;height:1.5rem;color:var(--fg-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;transition:color .16s,background-color .16s;display:inline-flex;position:absolute;right:.55rem}.cat-search__clear:hover{color:var(--fg);background:var(--line)}.cat-chips{scrollbar-width:none;gap:.5rem;display:flex;overflow-x:auto}.cat-chips::-webkit-scrollbar{display:none}.cat-chip{font:600 .8125rem var(--font-sans,inherit);color:var(--fg-muted);border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:.42rem .85rem;transition:color .16s,background-color .16s,border-color .16s}.cat-chip:hover{color:var(--fg);border-color:var(--moss-400)}.cat-chip[aria-pressed=true]{color:var(--bg);background:var(--fg);border-color:var(--fg)}.cat-chip:focus-visible{outline:2px solid var(--line-focus);outline-offset:2px}.cat-live{padding-block:2.4rem .5rem}.cat-live__head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.1rem;animation:.5s cubic-bezier(.2,.7,.2,1) both cat-rise;display:flex}.cat-live__title{letter-spacing:.13em;text-transform:uppercase;color:var(--fg-muted);align-items:center;gap:.6rem;margin:0;font-size:.8125rem;font-weight:600;display:flex}.cat-live__dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in oklab, var(--accent) 28%, transparent);border-radius:999px}.cat-live__legend{font-family:var(--font-mono);color:var(--fg-muted);font-size:.75rem}.cat-mosaic{grid-template-columns:repeat(4,1fr);grid-auto-rows:9.2rem;grid-auto-flow:dense;gap:.75rem;display:grid}.cat-tile{background:var(--c);color:var(--bg);animation:.55s cubic-bezier(.2,.7,.2,1) both cat-rise;animation-delay:calc(80ms + var(--i) * 45ms);border-radius:1rem;flex-direction:column;justify-content:space-between;padding:1.3rem 1.4rem;text-decoration:none;transition:transform .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.cat-tile:after{content:"";pointer-events:none;background:radial-gradient(circle at 85% -10%,#ffffff42,#0000 55%);position:absolute;inset:0}.cat-tile:hover{box-shadow:0 18px 38px -22px color-mix(in oklab, var(--c) 65%, var(--fg));transform:translateY(-3px)}.cat-tile:focus-visible{outline:2px solid var(--line-focus);outline-offset:3px}.cat-tile--lead{grid-area:span 2/span 2;padding:1.9rem 2rem}.cat-tile__name{letter-spacing:-.01em;max-width:12em;margin:0;font-size:1.125rem;font-weight:600;line-height:1.18;position:relative}.cat-tile--lead .cat-tile__name{font-size:1.8rem}.cat-tile__n{font-family:var(--font-mono);letter-spacing:-.03em;font-variant-numeric:tabular-nums;flex-direction:column;gap:.15rem;margin:0;font-size:1.8rem;font-weight:500;display:flex;position:relative}.cat-tile--lead .cat-tile__n{font-size:3.4rem}.cat-tile__sub{letter-spacing:.02em;opacity:.85;font-size:.75rem}.cat-tile__go{opacity:0;transition:opacity .16s,transform .16s;position:absolute;bottom:1.15rem;right:1.25rem;transform:translate(-6px)}.cat-tile:hover .cat-tile__go,.cat-tile:focus-visible .cat-tile__go{opacity:.9;transform:none}.cat-tile--ghost{border:1.5px dashed var(--line-strong);color:var(--fg-muted);background:0 0;transition:transform .16s,border-color .16s,color .16s}.cat-tile--ghost:after{display:none}.cat-tile--ghost:hover{box-shadow:none;border-color:var(--fg);color:var(--fg);transform:none}.cat-tile--ghost .cat-tile__n{font-size:1.6rem}.cat-index{padding-block:1.6rem 4rem;scroll-margin-top:4.5rem}.cat-family{margin-top:2.6rem}.cat-family__head{border-bottom:2px solid var(--fg);align-items:baseline;gap:1rem;padding-bottom:.6rem;animation:.5s cubic-bezier(.2,.7,.2,1) both cat-rise;display:flex}.cat-family__title{font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-size:1.4rem;font-weight:600}.cat-family__meta{font-family:var(--font-mono);color:var(--fg-muted);font-size:.75rem}.cat-row{border-bottom:1px solid var(--line);color:inherit;animation:.45s cubic-bezier(.2,.7,.2,1) both cat-rise;animation-delay:min(calc(var(--i) * 25ms), .25s);grid-template-columns:1.7rem minmax(14rem,18rem) minmax(0,1fr) auto;align-items:center;gap:1.1rem;padding:1.05rem .5rem 1.05rem .35rem;text-decoration:none;transition:background-color .14s;display:grid;position:relative}.cat-row:before{content:"";background:var(--c);border-radius:3px;width:3px;transition:transform .16s;position:absolute;top:.7rem;bottom:.7rem;left:-.85rem;transform:scaleY(0)}.cat-row:hover{background:color-mix(in oklab, var(--c) 5%, transparent)}.cat-row:hover:before{transform:none}.cat-row:focus-visible{outline:2px solid var(--line-focus);outline-offset:2px;border-radius:.4rem}.cat-row__icon{color:var(--c);transition:transform .16s;display:inline-flex}.cat-row:hover .cat-row__icon{transform:scale(1.12)}.cat-row__name{letter-spacing:-.01em;margin:0;font-size:1.0625rem;font-weight:600}.cat-row__desc{color:var(--fg-muted);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.9375rem;overflow:hidden}.cat-row__meta{align-items:center;gap:.85rem;display:flex}.cat-row__roles{color:var(--fg-muted);white-space:nowrap;font-size:.8125rem}.cat-row__pill{font-family:var(--font-mono);color:color-mix(in oklab, var(--c) 72%, var(--fg));background:color-mix(in oklab, var(--c) 12%, var(--card));white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;padding:.22rem .6rem;font-size:.75rem;font-weight:500}.cat-row__go{color:var(--fg-muted);opacity:0;transition:opacity .16s,transform .16s;transform:translate(-5px)}.cat-row:hover .cat-row__go,.cat-row:focus-visible .cat-row__go{opacity:1;transform:none}.cat-empty{text-align:center;color:var(--fg-muted);border:1.5px dashed var(--line-strong);border-radius:1rem;margin:2.6rem 0;padding:2.5rem 1.5rem}@media (max-width:1023px){.cat-mast{grid-template-columns:1fr;align-items:start}.cat-stats{justify-content:flex-start}.cat-mosaic{grid-template-columns:repeat(2,1fr)}.cat-row{grid-template-columns:1.6rem minmax(0,1fr) auto}.cat-row__desc,.cat-row__roles{display:none}}@media (max-width:639px){.cat-controls{flex-wrap:wrap}.cat-search{flex-basis:100%}.cat-mosaic{grid-auto-rows:8rem}.cat-tile--lead{grid-area:span 1/span 2}.cat-tile--lead .cat-tile__n{font-size:2.2rem}.cat-tile--lead .cat-tile__name{font-size:1.25rem}.cat-stats{gap:1.8rem}.cat-stats__value{font-size:1.6rem}}@media (prefers-reduced-motion:reduce){.cat-mast__copy>*,.cat-stats,.cat-live__head,.cat-family__head,.cat-tile,.cat-row{animation:none}.cat-tile,.cat-row,.cat-row:before,.cat-row__icon,.cat-tile__go,.cat-row__go,.cat-chip,.cat-search__input{transition:none}.cat-tile:hover{transform:none}}
