:root{--ink: #15171c;--text-2: #2b2f36;--muted: #4a505c;--subtle: #6b7280;--placeholder: #7a808c;--border: #d5d8de;--line: #eceef1;--line-2: #e5e7eb;--soft: #f7f8fa;--chip: #f1f2f5;--chip-hover: #e8eaee;--chip-on: #eef0f4;--code: #f4f5f7;--faint: #fafafb;--accent: #2347d1;--accent-hover: #1a36a3;--hdj: #c2610c;--ovale: #0f766e;--rdj: #9aa0aa;--danger: #b42318;--sans: "Instrument Sans", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--gutter: 32px}@media(max-width:640px){:root{--gutter: 16px}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{overflow-x:clip}body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent)}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button,input,select{font:inherit;color:inherit}button{cursor:pointer}code,.mono{font-family:var(--mono)}h1,h2,h3,p{margin:0}.wrap{max-width:1320px;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--rdj)}.dot.online{background:var(--accent)}.dot.hdj{background:var(--hdj)}.dot.ovale{background:var(--ovale)}.skeleton{display:inline-block;border-radius:6px;background:linear-gradient(90deg,var(--chip) 0%,var(--line) 50%,var(--chip) 100%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 16px;border:0;border-radius:10px;background:var(--ink);color:#fff;font-size:15px;font-weight:600;text-decoration:none}.btn:hover{color:#fff;background:#2b2f36}.btn.ghost{border:1px solid var(--border);background:#fff;color:var(--ink);font-weight:500}.btn.ghost:hover{background:var(--code);color:var(--ink)}.btn.accent{background:var(--accent)}.btn.accent:hover{background:var(--accent-hover)}.linklike{border:0;background:none;padding:4px 0;color:var(--accent);font-size:14px;font-weight:500}.linklike:hover{color:var(--accent-hover);text-decoration:underline}
