.hub-root{--hub-paper:#fcfbf8;--hub-surface:#f4f2ec;--hub-ink:#1f1e1a;--hub-ink-dim:#6b675c;--hub-hairline:#e6e3d9;--hub-accent:#23527a;background:var(--hub-paper);color:var(--hub-ink);min-block-size:100dvh;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}.hub-root.hub-dark{--hub-paper:#16171a;--hub-surface:#1e2024;--hub-ink:#ecebe6;--hub-ink-dim:#9b988f;--hub-hairline:#2c2e33;--hub-accent:#7fa8cc}.hub-root a{color:var(--hub-accent);text-decoration:none}.hub-root a:hover{text-decoration:underline}.hub-root a:focus-visible{outline:2px solid var(--hub-accent);outline-offset:2px;border-radius:2px}.hub-header{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;max-inline-size:720px;inline-size:100%;margin-inline:auto;padding:24px 20px;-webkit-border-after:1px solid var(--hub-hairline);border-block-end:1px solid var(--hub-hairline)}.hub-wordmark{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:-.01em;color:var(--hub-ink)}.hub-wordmark:hover{text-decoration:none}.hub-logo{block-size:28px;inline-size:auto;max-inline-size:160px;object-fit:contain}.hub-header-link{font-size:13.5px;color:var(--hub-ink-dim)}.hub-main{flex:1 1;padding:48px 20px 64px}.hub-footer,.hub-main{max-inline-size:720px;inline-size:100%;margin-inline:auto}.hub-footer{padding:20px;-webkit-border-before:1px solid var(--hub-hairline);border-block-start:1px solid var(--hub-hairline);font-size:13px;color:var(--hub-ink-dim);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.hub-eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--hub-ink-dim);margin:0}.hub-title{font-size:32px;line-height:1.15;letter-spacing:-.02em;font-weight:700;margin:8px 0 0}.hub-dim,.hub-meta{color:var(--hub-ink-dim)}.hub-meta{font-size:13px}.hub-list{list-style:none;padding:0;margin:32px 0 0;display:grid;grid-gap:28px;gap:28px}.hub-list h2{font-size:20px;line-height:1.3;letter-spacing:-.01em;margin:0}.hub-list h2 a{color:var(--hub-ink)}.hub-list h2 a:hover{color:var(--hub-accent);text-decoration:none}.hub-article-body{-webkit-margin-before:32px;margin-block-start:32px;font-size:17px;line-height:1.7}.hub-article-body h2{font-size:24px;line-height:1.25;letter-spacing:-.015em;margin:40px 0 12px}.hub-article-body h3{font-size:19px;line-height:1.3;margin:32px 0 10px}.hub-article-body p{margin:0 0 18px}.hub-article-body ol,.hub-article-body ul{margin:0 0 18px;-webkit-padding-start:26px;padding-inline-start:26px}.hub-article-body li{-webkit-margin-after:6px;margin-block-end:6px}.hub-article-body img{max-inline-size:100%;block-size:auto;border-radius:6px;margin-block:8px}.hub-article-body blockquote{margin:24px 0;padding:4px 0 4px 18px;-webkit-border-start:3px solid var(--hub-accent);border-inline-start:3px solid var(--hub-accent);color:var(--hub-ink-dim);font-style:italic}.hub-article-body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;background:var(--hub-surface);padding:1px 5px;border-radius:4px}.hub-article-body pre{background:var(--hub-surface);padding:14px 16px;border-radius:8px;overflow-x:auto;margin:0 0 18px}.hub-article-body pre code{background:none;padding:0}.hub-article-body table{border-collapse:collapse;inline-size:100%;margin:0 0 18px;font-size:15px;display:block;overflow-x:auto}.hub-article-body td,.hub-article-body th{border:1px solid var(--hub-hairline);padding:8px 10px;text-align:start}.hub-article-body th{background:var(--hub-surface)}.hub-article-body hr{border:0;-webkit-border-before:1px solid var(--hub-hairline);border-block-start:1px solid var(--hub-hairline);margin:32px 0}@media (max-width:480px){.hub-title{font-size:26px}.hub-main{-webkit-padding-before:32px;padding-block-start:32px}}.hub-root [dir=rtl],.hub-root [dir=rtl] .hub-title,.hub-root [dir=rtl].hub-title{letter-spacing:0}.hub-article-body[dir=rtl]{line-height:1.85}.hub-article-body[dir=rtl] h2,.hub-article-body[dir=rtl] h3{letter-spacing:0}