:root{--base:#0c1211;--white:#111a18;--ink:#e4edeb;--body-text:#b4c0bd;--muted:#93a09c;--faint:#6d7c78;--card-bd:#223230;--divider:#17211f;--divider-2:#17211f;--band-tint:#070c0b;--soft-teal:#0d8c7e29;--deep-teal:#14a493;--teal:#0d8c7e;--teal-hover:#0b7c70;--font-mono:"JetBrains Mono", monospace;color-scheme:dark}:root[data-theme=light]{--base:#f3f6f5;--white:#fff;--ink:#0d1413;--body-text:#38433f;--muted:#53605c;--faint:#79857f;--card-bd:#cfd6d3;--divider:#dce2e0;--divider-2:#dce2e0;--band-tint:#e8edeb;--soft-teal:#e0f2f1;--deep-teal:#0a6f63;color-scheme:light}html,body{background:var(--base)}.topbar[data-astro-cid-d4icjdwz]{justify-content:space-between;align-items:center;padding-top:22px;padding-bottom:22px;display:flex}.brand[data-astro-cid-d4icjdwz]{color:inherit;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.wordmark[data-astro-cid-d4icjdwz]{font-size:20px;font-weight:600}.tag[data-astro-cid-d4icjdwz]{letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-size:11px}.topbar-right[data-astro-cid-d4icjdwz]{align-items:center;gap:14px;display:flex}.theme-toggle[data-astro-cid-d4icjdwz]{border:1px solid var(--card-bd);border-radius:var(--btn-radius);width:32px;height:32px;color:var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:border-color .15s,color .15s;display:inline-flex}.theme-toggle[data-astro-cid-d4icjdwz]:hover{border-color:var(--teal);color:var(--deep-teal)}.theme-toggle[data-astro-cid-d4icjdwz] .ic-moon,html[data-theme=light] .theme-toggle[data-astro-cid-d4icjdwz] .ic-sun{display:none}html[data-theme=light] .theme-toggle[data-astro-cid-d4icjdwz] .ic-moon{display:inline-flex}.topbar-gh[data-astro-cid-d4icjdwz]{color:var(--ink);transition:color .15s;display:inline-flex}.topbar-gh[data-astro-cid-d4icjdwz]:hover{color:var(--deep-teal)}.catalog{max-width:1300px;color:var(--body-text);padding-top:6px;padding-bottom:96px}.catalog .cat-hero{flex-direction:column;gap:8px;max-width:720px;margin-bottom:26px;display:flex}.catalog .cat-title{font-family:var(--font-display);letter-spacing:-.6px;color:var(--ink);font-size:30px;font-weight:600;line-height:1.08}.catalog .cat-sub{color:var(--muted);text-wrap:pretty;font-size:15px;line-height:1.55}.catalog .cat-offline{border:1px solid var(--card-bd);background:var(--white);color:var(--muted);border-radius:6px;margin-bottom:20px;padding:12px 14px;font-size:13.5px}.catalog .cat-offline a{color:var(--deep-teal)}.catalog .cat-body{grid-template-columns:232px minmax(0,1fr);align-items:start;gap:24px;display:grid}.catalog .cat-rail{position:sticky;top:18px}.catalog .cat-railcard{background:var(--white);border:1px solid var(--card-bd);border-radius:8px;flex-direction:column;gap:22px;padding:18px 16px;display:flex}.catalog .cat-seclabel,.catalog .cat-seclabel-row .cat-seclabel{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:10px;font-size:11px;font-weight:500}.catalog .cat-seclabel-row{justify-content:space-between;align-items:baseline;display:flex}.catalog .cat-clear{font-family:var(--font-mono);color:var(--deep-teal);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.catalog .cat-clear:hover{color:var(--teal)}.catalog .cat-typelist{flex-direction:column;gap:4px;display:flex}.catalog .cat-type{color:var(--body-text);font-family:var(--font-display);cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;font-size:14px;transition:background .12s,color .12s;display:flex}.catalog .cat-type:hover{background:var(--band-tint)}.catalog .cat-type.is-active{background:var(--soft-teal);color:var(--deep-teal);font-weight:600}.catalog .cat-count{color:var(--faint);font-size:12px}.catalog .cat-type.is-active .cat-count{color:var(--deep-teal)}.catalog .cat-chips{flex-wrap:wrap;gap:5px;display:flex}.catalog .cat-chip{border:1px solid var(--card-bd);background:var(--white);color:var(--muted);font-family:var(--font-mono);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:12px;transition:background .12s,color .12s,border-color .12s}.catalog .cat-chip:hover{border-color:var(--teal);color:var(--ink)}.catalog .cat-chip.is-active{background:var(--teal);border-color:var(--teal);color:#04110f;font-weight:500}.catalog .cat-sec--verified{border-top:1px solid var(--divider);flex-direction:column;gap:8px;padding-top:18px;display:flex}.catalog .cat-check{color:var(--body-text);cursor:pointer;align-items:center;gap:9px;font-size:13.5px;display:flex}.catalog .cat-check input{width:15px;height:15px;accent-color:var(--teal);flex:none;margin:0}.catalog .cat-checknote{color:var(--faint);font-size:11.5px;line-height:1.45}.catalog .cat-toolbar{background:var(--white);border:1px solid var(--card-bd);border-radius:8px;align-items:center;gap:10px;margin-bottom:20px;padding:9px 12px;display:flex}.catalog .cat-searchic{color:var(--faint);flex:none}.catalog .cat-search{min-width:0;color:var(--ink);font-family:var(--font-display);background:0 0;border:0;outline:none;flex:1;font-size:15.5px}.catalog .cat-search::placeholder{color:var(--faint)}.catalog .cat-divider{background:var(--divider);flex:none;width:1px;height:20px}.catalog .cat-shown{color:var(--muted);white-space:nowrap;font-size:12.5px}.catalog .cat-selectwrap{align-items:center;display:inline-flex;position:relative}.catalog .cat-sort{appearance:none;border:1px solid var(--card-bd);background:var(--band-tint);color:var(--body-text);font-family:var(--font-display);cursor:pointer;border-radius:6px;padding:7px 30px 7px 11px;font-size:13.5px}.catalog .cat-sort:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.catalog .cat-caret{color:var(--faint);pointer-events:none;position:absolute;right:10px}.catalog .cat-list{flex-direction:column;gap:24px;display:flex}.catalog .cat-group{flex-direction:column;gap:10px;display:flex}.catalog .cat-grouphead{flex-wrap:wrap;align-items:baseline;gap:12px;padding-left:2px;display:flex}.catalog .cat-groupres{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--ink);font-size:17px;font-weight:600}.catalog .cat-groupsub{color:var(--faint);font-size:12.5px}.catalog .cat-rows{background:var(--divider);border:1px solid var(--card-bd);border-radius:8px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.catalog .cat-row{background:var(--white);cursor:pointer;grid-template-columns:168px minmax(0,1fr) auto;align-items:center;gap:18px;padding:14px 18px;scroll-margin-top:90px;transition:background .12s;display:grid}.catalog .cat-row:hover{background:color-mix(in srgb, var(--teal) 6%, var(--white))}.catalog .cat-row:focus-visible{outline:2px solid var(--teal);outline-offset:-2px}.catalog .cat-thumb{border:1px solid var(--card-bd);background:var(--band-tint);cursor:zoom-in;border-radius:6px;flex:none;width:168px;height:112px;position:relative;overflow:hidden}.catalog .cat-thumb img{object-fit:cover;width:100%;height:100%;display:block}.catalog .cat-thumb:after{content:"";opacity:0;background:radial-gradient(circle,#040a0947,#0000 62%);transition:opacity .15s;position:absolute;inset:0}.catalog .cat-thumb:hover:after{opacity:1}.catalog .cat-rowmain{flex-direction:column;gap:5px;min-width:0;display:flex}.catalog .cat-rowline1{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.catalog .cat-name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:18.5px;font-weight:600}.catalog .cat-name mark{background:var(--soft-teal);color:inherit;border-radius:2px}.cat-verified{font-family:var(--font-mono);color:var(--deep-teal);white-space:nowrap;align-items:center;gap:3px;font-size:12.5px;display:inline-flex}.cat-verified svg{flex:none;width:13px;height:13px}.catalog .cat-kind{background:var(--band-tint);border:1px solid var(--divider);color:var(--faint);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;border-radius:3px;padding:2px 7px;font-size:11px;font-weight:500}.catalog .cat-desc{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:15.5px;line-height:1.5;overflow:hidden}.catalog .cat-desc mark{background:var(--soft-teal);color:inherit;border-radius:2px}.catalog .cat-meta{color:var(--faint);flex-wrap:wrap;gap:11px;font-size:13px;display:flex}.catalog .cat-meta svg{vertical-align:-1px;width:11px;height:11px}.catalog .cat-empty{background:var(--white);border:1px dashed var(--card-bd);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:52px 20px;display:flex}.catalog .cat-empty h2{font-family:var(--font-display);color:var(--ink);margin:0;font-size:16px;font-weight:600}.catalog .cat-empty p{color:var(--muted);margin:0;font-size:13.5px}.catalog .cat-empty button{border:1px solid var(--card-bd);background:var(--band-tint);color:var(--ink);cursor:pointer;border-radius:6px;margin-top:6px;padding:7px 14px;font-size:13.5px}.catalog .cat-empty button:hover{border-color:var(--teal)}.cat-sheet-root{z-index:60;position:fixed;inset:0}.cat-sheet-root[hidden]{display:none}.cat-scrim{background:#0408078c;position:absolute;inset:0}.cat-sheet{background:var(--white);border-left:1px solid var(--card-bd);flex-direction:column;gap:18px;width:484px;max-width:92vw;padding:22px 24px 30px;animation:.18s cat-slide;display:flex;position:absolute;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-14px 0 44px #00000057}@keyframes cat-slide{0%{transform:translate(24px)}}@media (prefers-reduced-motion:reduce){.cat-scrim,.cat-sheet{animation:none}}.cat-sheet .sh-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.cat-sheet .sh-name{font-family:var(--font-display);letter-spacing:-.015em;color:var(--ink);flex-wrap:wrap;align-items:center;gap:8px;font-size:20px;font-weight:600;display:inline-flex}.cat-sheet .sh-meta{font-family:var(--font-mono);color:var(--faint);flex-wrap:wrap;gap:9px;margin-top:6px;font-size:12px;display:flex}.cat-sheet .sh-meta svg{vertical-align:-1px;width:11px;height:11px}.cat-sheet .sh-close{border:1px solid var(--card-bd);background:var(--band-tint);width:30px;height:30px;color:var(--muted);cursor:pointer;border-radius:6px;flex:none;font-size:16px;line-height:1}.cat-sheet .sh-close:hover{color:var(--ink);border-color:var(--teal)}.cat-sheet .sh-preview{border:1px solid var(--card-bd);background:var(--band-tint);aspect-ratio:3/2;cursor:zoom-in;border-radius:8px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.cat-sheet .sh-preview:hover{border-color:var(--teal)}.cat-sheet .sh-preview img{object-fit:cover;width:100%;height:100%;display:block}.cat-sheet .sh-preview-hint{color:#eaf1ef;background:#060a09b8;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:11px;display:inline-flex;position:absolute;bottom:8px;right:8px}.cat-sheet .sh-preview-hint svg{width:13px;height:13px}.cat-sheet .sh-desc{color:var(--body-text);text-wrap:pretty;font-size:15px;line-height:1.6}.cat-sheet .sh-seclabel{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:4px;font-size:11.5px;font-weight:500}.cat-sheet .sh-table{flex-direction:column;display:flex}.cat-sheet .sh-trow{border-bottom:1px solid var(--divider);grid-template-columns:118px minmax(0,1fr);gap:12px;padding:7px 0;display:grid}.cat-sheet .sh-key{color:var(--faint);font-size:13px}.cat-sheet .sh-val{font-family:var(--font-mono);color:var(--body-text);word-break:break-word;font-size:13px}.cat-sheet .sh-install{background:var(--band-tint);border:1px solid var(--divider);color:var(--body-text);border-radius:8px;padding:13px 14px;font-size:14.5px;line-height:1.55}.cat-sheet .sh-install strong{color:var(--ink);font-weight:600}.cat-sheet .sh-id{font-family:var(--font-mono);background:var(--white);border:1px solid var(--card-bd);color:var(--deep-teal);cursor:pointer;border-radius:4px;padding:1px 6px;font-size:13px}.cat-sheet .sh-id:hover{border-color:var(--teal)}.cat-sheet .sh-actions{gap:10px;display:flex}.cat-sheet .sh-source{border:1px solid var(--card-bd);background:var(--band-tint);color:var(--ink);white-space:nowrap;border-radius:8px;align-items:center;gap:7px;padding:10px 15px;font-size:14px;text-decoration:none;display:inline-flex}.cat-sheet .sh-source:hover{border-color:var(--teal);color:var(--deep-teal)}.cat-sheet .sh-source svg{width:14px;height:14px}.cat-lb-root{z-index:80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cat-lb-root[hidden]{display:none}.cat-lb-scrim{background:#020504e0;position:absolute;inset:0}.cat-lb-fig{z-index:1;flex-direction:column;align-items:center;gap:12px;max-width:92vw;max-height:90vh;margin:0;display:flex;position:relative}.cat-lb-img{object-fit:contain;background:var(--band-tint);cursor:zoom-out;border-radius:6px;max-width:92vw;max-height:74vh;box-shadow:0 24px 70px #0000008c}.cat-lb-thumbs{gap:8px;max-width:92vw;padding:2px;display:flex;overflow-x:auto}.cat-lb-thumbs[hidden]{display:none}.cat-lb-thumb{background:var(--band-tint);cursor:pointer;opacity:.5;border:2px solid #0000;border-radius:4px;flex:none;width:88px;height:58px;padding:0;transition:opacity .15s,border-color .15s;overflow:hidden}.cat-lb-thumb img{object-fit:cover;width:100%;height:100%;display:block}.cat-lb-thumb:hover{opacity:.85}.cat-lb-thumb.is-active{opacity:1;border-color:var(--teal)}.cat-lb-cap{color:#b9c4c0;letter-spacing:.02em;font-size:12px}.cat-lb-nav,.cat-lb-close{z-index:2;color:#eaf1ef;cursor:pointer;background:#0a100e9e;border:1px solid #fff3;justify-content:center;align-items:center;transition:border-color .15s,background .15s;display:flex;position:absolute}.cat-lb-nav:hover,.cat-lb-close:hover{border-color:var(--teal);background:#101a16e6}.cat-lb-nav{border-radius:999px;width:46px;height:46px;padding-bottom:3px;font-size:26px;line-height:1;top:50%;transform:translateY(-50%)}.cat-lb-nav[hidden]{display:none}.cat-lb-prev{left:3vw}.cat-lb-next{right:3vw}.cat-lb-close{border-radius:999px;width:40px;height:40px;font-size:17px;top:18px;right:20px}@media (width<=560px){.cat-lb-prev{left:8px}.cat-lb-next{right:8px}}@media (width<=900px){.catalog .cat-body{grid-template-columns:minmax(0,1fr)}.catalog .cat-rail{position:static}.catalog .cat-railcard{flex-flow:wrap;gap:18px 24px}.catalog .cat-typelist{flex-flow:wrap}.catalog .cat-type{background:var(--band-tint)}}@media (width<=560px){.catalog .cat-row{grid-template-columns:112px minmax(0,1fr)}.catalog .cat-thumb{width:112px;height:75px}.cat-sheet{width:100%;max-width:100%}}
