.matrix[data-cid-gpb6g6ec]{margin-top:var(--sp-5);max-width:620px}svg[data-cid-gpb6g6ec]{width:100%;height:auto;overflow:visible}@media (width<=640px){.matrix[data-cid-gpb6g6ec]{overscroll-behavior-x:contain;overflow-x:auto}svg[data-cid-gpb6g6ec]{min-width:520px}}.col-label[data-cid-gpb6g6ec]{font-family:var(--type-mono);fill:var(--ink-2);font-size:10px;transition:fill .12s,opacity .12s}.row-label[data-cid-gpb6g6ec]{font-family:var(--type-mono);fill:var(--ink-2);font-size:10.5px;transition:fill .12s,opacity .12s}.row-link[data-cid-gpb6g6ec]{cursor:pointer}.row-link[data-cid-gpb6g6ec]:hover .row-label[data-cid-gpb6g6ec],.row-link[data-cid-gpb6g6ec]:focus-visible .row-label[data-cid-gpb6g6ec]{fill:var(--teal-deep);font-weight:500}.row-dot[data-cid-gpb6g6ec][data-type=app]{fill:var(--teal)}.row-dot[data-cid-gpb6g6ec][data-type=package]{fill:var(--node-gold)}.row-dot[data-cid-gpb6g6ec][data-type=template]{fill:var(--moss)}.row-dot[data-cid-gpb6g6ec][data-type=teaching]{fill:var(--moss-text)}.row-dot[data-cid-gpb6g6ec][data-type=database]{fill:var(--node-slate)}.cell[data-cid-gpb6g6ec]{fill:var(--ink-faint);opacity:.2;cursor:pointer;transition:opacity .12s}.cell[data-cid-gpb6g6ec].on[data-type=app]{fill:var(--teal)}.cell[data-cid-gpb6g6ec].on[data-type=package]{fill:var(--node-gold)}.cell[data-cid-gpb6g6ec].on[data-type=template]{fill:var(--moss)}.cell[data-cid-gpb6g6ec].on[data-type=teaching]{fill:var(--moss-text)}.cell[data-cid-gpb6g6ec].on[data-type=database]{fill:var(--node-slate)}.cell[data-cid-gpb6g6ec].on{opacity:.8;animation:5s ease-in-out infinite breathe}@keyframes breathe{0%,to{opacity:.72}50%{opacity:.9}}.matrix[data-cid-gpb6g6ec][data-tracing] .cell[data-cid-gpb6g6ec]:not(.hl){opacity:.08;animation:none}.matrix[data-cid-gpb6g6ec][data-tracing] .cell[data-cid-gpb6g6ec].on.hl{opacity:1;animation:none}.matrix[data-cid-gpb6g6ec][data-tracing] .cell[data-cid-gpb6g6ec].hl:not(.on){opacity:.45}.matrix[data-cid-gpb6g6ec][data-tracing] .col-label[data-cid-gpb6g6ec]:not(.hl),.matrix[data-cid-gpb6g6ec][data-tracing] .row-label[data-cid-gpb6g6ec]:not(.hl){opacity:.4}.col-label[data-cid-gpb6g6ec].hl,.row-label[data-cid-gpb6g6ec].hl{fill:var(--teal-deep);font-weight:500}.mx-foot[data-cid-gpb6g6ec]{margin-top:var(--sp-3);justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.legend[data-cid-gpb6g6ec]{font-family:var(--type-mono);color:var(--ink-2);gap:16px;font-size:.7rem;display:flex}.lg[data-cid-gpb6g6ec]{align-items:center;gap:6px;display:inline-flex}.lg[data-cid-gpb6g6ec] .d[data-cid-gpb6g6ec]{border-radius:2px;width:8px;height:8px}.d[data-cid-gpb6g6ec][data-type=app]{background:var(--teal)}.d[data-cid-gpb6g6ec][data-type=package]{background:var(--node-gold)}.d[data-cid-gpb6g6ec][data-type=template]{background:var(--moss)}.d[data-cid-gpb6g6ec][data-type=teaching]{background:var(--moss-text)}.d[data-cid-gpb6g6ec][data-type=database]{background:var(--node-slate)}.readout[data-cid-gpb6g6ec]{font-family:var(--type-mono);color:var(--ink-faint);text-align:right;flex:220px;min-width:0;font-size:.72rem}@media (prefers-reduced-motion:reduce){.cell[data-cid-gpb6g6ec].on{animation:none}}.glyph[data-cid-ajukymad]{opacity:.85;pointer-events:none;position:absolute;top:15px;right:15px}.card[data-cid-ryuh4v2g]{background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--r-card);scroll-margin-top:calc(var(--nav-h) + 16px);flex-direction:column;gap:8px;padding:18px 20px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:relative}.card[data-cid-ryuh4v2g][hidden]{display:none}.card[data-cid-ryuh4v2g]:after{content:"";background:var(--teal);opacity:0;border-radius:50%;width:7px;height:7px;transition:opacity .15s;position:absolute;top:-4px;right:18px}.card[data-cid-ryuh4v2g]:hover{border-color:var(--teal);box-shadow:var(--shadow-lift);transform:translateY(-1px)}.card[data-cid-ryuh4v2g]:hover:after{opacity:1}.card[data-cid-ryuh4v2g]:target{border-color:var(--teal);box-shadow:var(--shadow-lift)}.card[data-cid-ryuh4v2g].compact{gap:6px;padding:14px 16px}.card[data-cid-ryuh4v2g].compact .title[data-cid-ryuh4v2g]{padding-right:46px;font-size:.95rem}.card[data-cid-ryuh4v2g].compact .hex[data-cid-ryuh4v2g]{width:38px;top:12px;right:14px}.card[data-cid-ryuh4v2g].compact .desc[data-cid-ryuh4v2g]{font-size:.85rem}.wtype[data-cid-ryuh4v2g]{font-family:var(--type-mono);letter-spacing:.12em;text-transform:uppercase;border-radius:var(--r-chip);border:1px solid;align-self:flex-start;padding:3px 8px;font-size:.6rem}.hex[data-cid-ryuh4v2g]{pointer-events:none;width:46px;height:auto;position:absolute;top:14px;right:16px}.title[data-cid-ryuh4v2g]{font-family:var(--type-display);padding-right:60px;font-size:1.0625rem;font-weight:700;line-height:1.25}.title[data-cid-ryuh4v2g] a[data-cid-ryuh4v2g]{color:inherit;text-decoration:none}.title[data-cid-ryuh4v2g] a[data-cid-ryuh4v2g]:after{content:"";z-index:1;position:absolute;inset:0}.card[data-cid-ryuh4v2g]:hover .title[data-cid-ryuh4v2g] a[data-cid-ryuh4v2g],.title[data-cid-ryuh4v2g] a[data-cid-ryuh4v2g]:hover{color:var(--teal)}.org[data-cid-ryuh4v2g]{font-family:var(--type-mono);color:var(--ink-faint);font-size:.7rem;display:block}.tags[data-cid-ryuh4v2g]{font-family:var(--type-mono);color:var(--moss-text);font-size:.68rem}.desc[data-cid-ryuh4v2g]{color:var(--ink-2);flex-grow:1;font-size:.9rem;line-height:1.55}.tech[data-cid-ryuh4v2g]{font-family:var(--type-mono);color:var(--clay-text);font-size:.7rem;line-height:1.4}.foot[data-cid-ryuh4v2g]{flex-direction:column;gap:9px;margin-top:4px;display:flex}.internal[data-cid-ryuh4v2g]{font-family:var(--type-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--clay-text);border:1px solid var(--clay-text);border-radius:var(--r-chip);align-self:flex-start;padding:3px 8px;font-size:.6rem}.links[data-cid-ryuh4v2g]{font-family:var(--type-mono);z-index:2;flex-wrap:wrap;gap:14px;font-size:.72rem;display:flex;position:relative}.links[data-cid-ryuh4v2g] a[data-cid-ryuh4v2g]{text-decoration:none}.work[data-cid-r3bc3sjw]{padding-block:var(--sp-8) var(--sp-7)}.head[data-cid-r3bc3sjw]{gap:var(--sp-2);flex-direction:column;max-width:50rem;display:flex}.head[data-cid-r3bc3sjw] h1[data-cid-r3bc3sjw]{font-size:var(--fs-h1);margin-top:var(--sp-1)}.lead[data-cid-r3bc3sjw]{font-size:var(--fs-lead);color:var(--ink-2);margin-top:var(--sp-1);line-height:1.55}.mx-intro[data-cid-r3bc3sjw]{max-width:60ch;color:var(--ink-2);line-height:1.55}.mx-frame[data-cid-r3bc3sjw]{margin-top:var(--sp-4);background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--r-card);max-width:700px;padding:clamp(16px,3vw,30px)}.mx-frame[data-cid-r3bc3sjw] .matrix{max-width:none;margin-top:0}.all[data-cid-r3bc3sjw]{margin-top:var(--sp-8)}.view-toggle[data-cid-r3bc3sjw]{background:var(--paper-sunken);border:1px solid var(--border);border-radius:var(--r-btn);gap:2px;padding:3px;display:inline-flex}.vtab[data-cid-r3bc3sjw]{font-family:var(--type-mono);letter-spacing:.04em;color:var(--ink-2);border-radius:calc(var(--r-btn) - 3px);cursor:pointer;background:0 0;border:none;padding:6px 16px;font-size:.78rem;transition:background .15s,color .15s}.vtab[data-cid-r3bc3sjw]:hover{color:var(--ink)}.vtab[data-cid-r3bc3sjw][aria-pressed=true]{background:var(--paper-raised);color:var(--teal);box-shadow:var(--shadow-lift)}.view-panel[data-cid-r3bc3sjw]{margin-top:var(--sp-5)}.chips[data-cid-r3bc3sjw]{flex-wrap:wrap;gap:8px;display:flex}.chip[data-cid-r3bc3sjw]{font-family:var(--type-mono);letter-spacing:.06em;color:var(--ink-2);background:var(--paper-raised);border:1px solid var(--border-strong);border-radius:var(--r-btn);cursor:pointer;padding:6px 13px;font-size:.75rem;transition:border-color .15s,color .15s,background .15s}.chip[data-cid-r3bc3sjw]:hover{border-color:var(--teal);color:var(--teal)}.chip[data-cid-r3bc3sjw][aria-pressed=true]{color:var(--paper-raised);background:var(--teal);border-color:var(--teal)}.grid[data-cid-r3bc3sjw]{gap:var(--sp-4);margin-top:var(--sp-5);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width<=980px){.grid[data-cid-r3bc3sjw]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=700px){.grid[data-cid-r3bc3sjw]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.grid[data-cid-r3bc3sjw]{grid-template-columns:1fr}}
