.core{gap:var(--s4);display:grid}.core__head{justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap;display:flex}.core__transport{align-items:center;gap:var(--s3)}.core__transport input[type=range]{width:clamp(8rem,22vw,18rem);accent-color:var(--ink)}.core__stage{aspect-ratio:16/10;border:1px solid var(--border);border-radius:var(--radius-lg);background:#04060b;position:relative;overflow:hidden}.core__stage canvas{cursor:grab;touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.core__stage.is-broken{display:none}.core__legend{font-size:var(--fs-2xs);color:#ffffffb8;pointer-events:none;gap:1rem;display:flex;position:absolute;bottom:.7rem;left:.8rem}.core__legend i{border-radius:50%;width:.6em;height:.6em;margin-right:.4em;display:inline-block}.core__chips{flex-wrap:wrap;gap:.3rem;display:flex}.core__chip i{opacity:.15;background:#1d8a8a;border-radius:50%;width:.55em;height:.55em;margin-right:.45em;display:inline-block}.core__chip .mono{opacity:.55}.core__chip{font-size:var(--fs-2xs);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--paper);color:var(--text-secondary);padding:.2em .6em}.core__chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}@media (width<=700px){.core__stage{aspect-ratio:1}}.core__read{gap:var(--s3);display:grid}.core__rule{color:var(--text-secondary);overflow-x:auto}.core__card{gap:var(--s2);padding:var(--s4);border-radius:var(--radius);background:var(--paper-sunken);display:grid}.core__table{font-size:var(--fs-xs)}.core__table td,.core__table th{padding:.25em .6em}.core__nums{gap:var(--s2);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));align-items:end;margin:0;display:grid}.core__nums>div{grid-template-rows:1fr auto;gap:.15rem;display:grid}.core__nums dt{font-family:var(--font-mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:var(--tr-wide);color:var(--text-faint)}.core__nums dd{font-size:var(--fs-sm);margin:0}.portmap[data-astro-cid-cuz3rn3o]{margin:var(--s4) 0;gap:var(--s5);display:grid}.portmap__group[data-astro-cid-cuz3rn3o] header[data-astro-cid-cuz3rn3o]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;margin-bottom:.6rem;padding-bottom:.4rem;display:flex}.portmap__title[data-astro-cid-cuz3rn3o]{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:var(--tr-wide);text-transform:uppercase;color:var(--text-faint)}.portmap__total[data-astro-cid-cuz3rn3o]{font-size:var(--fs-2xs);color:var(--text-faint)}.portmap[data-astro-cid-cuz3rn3o] ul[data-astro-cid-cuz3rn3o]{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.portmap[data-astro-cid-cuz3rn3o] li[data-astro-cid-cuz3rn3o]{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.25rem .75rem;display:grid}.portmap__name[data-astro-cid-cuz3rn3o]{font-size:var(--fs-sm)}.portmap__count[data-astro-cid-cuz3rn3o]{font-size:var(--fs-xs);color:var(--text-secondary)}.portmap__bar[data-astro-cid-cuz3rn3o]{height:8px;width:var(--w);background:var(--bar);border-radius:4px;grid-column:1/-1}.portmap__group--in[data-astro-cid-cuz3rn3o]{--bar:#1d8a8a}.portmap__group--core[data-astro-cid-cuz3rn3o]{--bar:var(--ink)}.portmap__group--out[data-astro-cid-cuz3rn3o]{--bar:#d9714a}.portmap__users[data-astro-cid-cuz3rn3o]{flex-wrap:wrap;grid-column:1/-1;gap:.3rem;display:flex}.portmap__users[data-astro-cid-cuz3rn3o] i[data-astro-cid-cuz3rn3o]{font-style:normal;font-size:var(--fs-2xs);border-radius:var(--radius-pill);background:var(--theme,var(--paper-sunken));color:var(--theme-ink,var(--ink));padding:.1em .55em}.modes{gap:var(--s4);margin:var(--s4) 0;display:grid}.modes__switch{flex-wrap:wrap;align-items:center;gap:.4rem}.modes__gap{width:.8rem}.modes .modes__stage{aspect-ratio:16/8}.modes__stage canvas{cursor:default}.modes__read{color:#fff9;font-size:var(--fs-2xs);pointer-events:none;grid-template-columns:auto auto;align-items:baseline;gap:.1rem .8rem;display:grid;position:absolute;bottom:.7rem;right:.9rem}.modes__read b{color:#fff;font-weight:500;font-size:var(--fs-sm,.95rem)}@media (width<=560px){.modes .modes__stage{aspect-ratio:3/4}.modes__read{bottom:2.4rem;left:.9rem;right:auto}}
