@font-face{font-family:Inter;src:url(/fonts/Inter-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-SemiBold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-SemiBold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--gm-surface:#f7f6fb;--gm-surface-raised:#fff;--gm-surface-sunken:#efeefa;--gm-line:#e4e2f0;--gm-border:#c9c6da;--gm-ink:#17152b;--gm-ink-muted:#5c5872;--gm-brand:#3d8aff;--gm-on-brand:#fff;--gm-brand-soft:#e4efff;--gm-brand-ink:#1f5fd0;--gm-accent:#0f9e8a;--gm-accent-soft:#d8f5ef;--gm-success:#1f9d55;--gm-on-success:#fff;--gm-warning:#b45309;--gm-on-warning:#fff;--gm-danger:#c62f45;--gm-danger-soft:#fbe6ea;--gm-on-danger:#fff;--gm-sponsored:#c9497e;--gm-on-sponsored:#fff;--gm-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--gm-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--gm-shadow-sm:0 1px 2px #17152b0f, 0 1px 3px #17152b14;--gm-shadow-lg:0 6px 16px -4px #17152b1f, 0 16px 40px -8px #17152b26}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--gm-surface);color:var(--gm-ink);font-family:var(--gm-sans);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;display:flex}a{color:inherit}a:hover{color:var(--gm-brand-ink)}main{flex:1}img,svg{vertical-align:middle}:focus-visible{outline:2px solid var(--gm-brand);outline-offset:2px}.gm-wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 48px}@media (width<=720px){.gm-wrap{padding:0 24px}}.gm-header{border-bottom:1px solid var(--gm-line);background:var(--gm-surface-raised)}.gm-header .gm-wrap{flex-wrap:wrap;align-items:center;gap:24px;min-height:64px;padding-top:8px;padding-bottom:8px;display:flex}.gm-wordmark{letter-spacing:-.01em;align-items:center;gap:8px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.gm-nav{flex-wrap:wrap;gap:4px;margin-left:8px;display:flex}.gm-navlink{color:var(--gm-ink-muted);border-radius:6px;align-items:center;gap:6px;padding:8px 10px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.gm-navlink:hover{color:var(--gm-ink);background:var(--gm-brand-soft)}.gm-navlink.active{color:var(--gm-brand-ink);background:var(--gm-brand-soft);font-weight:600}.gm-search{border:1px solid var(--gm-border);background:var(--gm-surface);min-width:220px;height:40px;color:var(--gm-ink-muted);border-radius:10px;align-items:center;gap:8px;padding:0 12px;font-size:14px;text-decoration:none;display:flex}.gm-search:focus-within{border-color:var(--gm-brand);box-shadow:0 0 0 3px var(--gm-brand-soft)}.gm-search input{font-family:var(--gm-sans);color:var(--gm-ink);background:0 0;border:none;outline:none;width:100%;padding:0;font-size:14px}.gm-footer{border-top:1px solid var(--gm-line);background:var(--gm-surface-raised)}.gm-footer .gm-wrap{color:var(--gm-ink-muted);font-size:13px;display:block}.gm-footsite{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:28px 32px;padding:36px 0 28px;display:grid}.gm-footcol{flex-direction:column;gap:8px;display:flex}.gm-foothead{letter-spacing:.06em;text-transform:uppercase;color:var(--gm-ink);margin-bottom:4px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.gm-footer a{color:var(--gm-ink-muted);text-decoration:none}.gm-footer a:hover{color:var(--gm-ink)}.gm-footlink{font-size:13px}.gm-footbar{border-top:1px solid var(--gm-line);flex-wrap:wrap;align-items:center;gap:16px;padding:14px 0 18px;display:flex}.gm-spacer{flex:1}.gm-crumbs{color:var(--gm-ink-muted);flex-wrap:wrap;align-items:center;gap:8px;padding:20px 0 12px;font-size:13px;display:flex}.gm-crumbs a{color:var(--gm-ink-muted);text-decoration:none}.gm-crumbs a:hover{color:var(--gm-brand-ink)}.gm-crumbs .sep{opacity:.5}.gm-crumbs .here{color:var(--gm-ink);font-weight:500}.gm-pill{white-space:nowrap;border-radius:9999px;align-items:center;gap:5px;height:24px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.gm-pill.sm{height:21px;padding:0 8px;font-size:11.5px}.gm-pill.official{background:var(--gm-accent-soft);color:var(--gm-accent)}.gm-pill.verified{background:var(--gm-brand-soft);color:var(--gm-brand-ink)}.gm-pill.sunken{background:var(--gm-surface-sunken);color:var(--gm-ink-muted)}.gm-pill.sponsored{background:var(--gm-sponsored);color:var(--gm-on-sponsored)}.gm-pill.deprecated{background:var(--gm-danger);color:var(--gm-on-danger)}.gm-pill.legacy{background:var(--gm-danger-soft);color:var(--gm-danger)}.gm-pill.feature,.gm-pill.linebadge{background:var(--gm-brand-soft);color:var(--gm-brand-ink)}.gm-pill.warn{background:var(--gm-warning);color:var(--gm-on-warning)}.gm-dot{background:var(--gm-accent);border-radius:9999px;flex:none;width:6px;height:6px}.gm-chip{border:1px solid var(--gm-line);cursor:pointer;height:36px;font-size:13px;font-weight:500;font-family:var(--gm-sans);background:var(--gm-surface-raised);color:var(--gm-ink);border-radius:9999px;align-items:center;gap:6px;padding:0 14px;transition:all .12s;display:inline-flex}.gm-chip:hover{border-color:var(--gm-border)}.gm-chip.on{background:var(--gm-brand);border-color:var(--gm-brand);color:var(--gm-on-brand)}.gm-chip .n{opacity:.55}a.gm-chip{height:32px;color:var(--gm-ink-muted);font-size:12.5px;text-decoration:none}.gm-eyebrow{letter-spacing:.02em;color:var(--gm-accent);align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.gm-eyebrow.muted{color:var(--gm-ink-muted)}.gm-eyebrow.warn{color:var(--gm-warning)}.gm-hero{border-bottom:1px solid var(--gm-line);padding:20px 0 24px}.gm-hero h1{letter-spacing:-.02em;margin:12px 0;font-size:40px;font-weight:700;line-height:46px}.gm-hero .lede{max-width:68ch;color:var(--gm-ink-muted);margin:0;font-size:18px;line-height:28px}@media (width<=860px){.gm-hero h1{font-size:32px;line-height:38px}}.gm-sechead{flex-wrap:wrap;align-items:baseline;gap:12px;margin:32px 0 16px;display:flex}.gm-sechead h2{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:600}.gm-sechead .sub{color:var(--gm-ink-muted);font-size:13px}.gm-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.gm-grid.cols3{grid-template-columns:repeat(3,1fr)}.gm-card,.gm-linecard,.gm-hub{background:var(--gm-surface-raised);border:1px solid var(--gm-line);box-shadow:var(--gm-shadow-sm);border-radius:10px;padding:20px;text-decoration:none;transition:all .12s;display:block}.gm-linecard{border-radius:16px;padding:24px}.gm-card:hover,.gm-linecard:hover,.gm-hub:hover{border-color:var(--gm-border);box-shadow:var(--gm-shadow-lg)}.gm-linecard:hover,.gm-hub:hover{transform:translateY(-1px)}.gm-card .t{align-items:center;gap:8px;margin-bottom:6px;display:flex}.gm-card h3{color:var(--gm-ink);flex:1;margin:0;font-size:17px;font-weight:600}.gm-card p{color:var(--gm-ink-muted);margin:0 0 12px;font-size:14px;line-height:22px}.gm-card .meta{color:var(--gm-ink-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.gm-card.legacy{opacity:.82}.gm-hub.dashed{border-style:dashed;border-color:var(--gm-border)}.gm-tileicon{background:var(--gm-brand-soft);color:var(--gm-brand-ink);border-radius:6px;flex:none;place-items:center;width:34px;height:34px;display:grid}.gm-tileicon.lg{border-radius:10px;width:40px;height:40px}.gm-kindlabel{letter-spacing:.02em;color:var(--gm-ink-muted);text-transform:uppercase;margin-top:10px;font-size:11.5px;font-weight:600;display:inline-block}.gm-headgrid{border-bottom:1px solid var(--gm-line);grid-template-columns:1fr 320px;gap:32px;padding-bottom:24px;display:grid}.gm-body2{grid-template-columns:1fr 300px;gap:32px;display:grid}.gm-body{grid-template-columns:1fr 320px;gap:32px;display:grid}@media (width<=900px){.gm-body2,.gm-body{grid-template-columns:1fr}.gm-rail{display:none}.gm-headgrid{grid-template-columns:1fr!important}.gm-rail.entry{order:-1;display:block}.gm-grid,.gm-grid.cols3,.gm-relrow{grid-template-columns:1fr!important}}.gm-prose{max-width:68ch;font-size:16px;line-height:27px}.gm-prose p{margin:0 0 16px}.gm-prose h2{letter-spacing:-.01em;margin:32px 0 12px;font-size:22px;font-weight:600;line-height:30px}.gm-prose h2:first-child{margin-top:0}.gm-prose h3{margin:24px 0 10px;font-size:17px;font-weight:600;line-height:24px}.gm-prose ul,.gm-prose ol{margin:0 0 16px;padding-left:22px}.gm-prose li{margin-bottom:6px}.gm-prose a{color:var(--gm-brand-ink)}.gm-prose code{font-family:var(--gm-mono);background:var(--gm-surface-sunken);border-radius:6px;padding:2px 6px;font-size:13px}.gm-prose pre{background:var(--gm-surface-sunken);border:1px solid var(--gm-line);font-family:var(--gm-mono);border-radius:10px;margin:0 0 16px;padding:16px;font-size:14px;line-height:22px;overflow-x:auto}.gm-prose pre code{font-size:inherit;background:0 0;padding:0}.gm-prose table{border-collapse:collapse;width:100%;font-size:14px}.gm-prose th{text-align:left;border-bottom:1px solid var(--gm-line);color:var(--gm-ink-muted);padding:10px 12px;font-size:12.5px;font-weight:600}.gm-prose td{border-bottom:1px solid var(--gm-line);padding:10px 12px}.gm-prose blockquote{border-left:3px solid var(--gm-line);color:var(--gm-ink-muted);margin:0 0 16px;padding:4px 16px}.gm-blocknum{color:var(--gm-brand);margin-right:10px}.gm-pre{background:var(--gm-surface-sunken);border:1px solid var(--gm-line);border-radius:10px;margin:0 0 16px;overflow:hidden}.gm-pre .gm-pre-head{border-bottom:1px solid var(--gm-line);color:var(--gm-ink-muted);font-size:12.5px;font-family:var(--gm-mono);align-items:center;gap:8px;padding:8px 12px;display:flex}.gm-pre pre{font-family:var(--gm-mono);color:var(--gm-ink);background:0 0;border:none;border-radius:0;margin:0;padding:16px;font-size:14px;line-height:22px;overflow-x:auto}.gm-copy{cursor:pointer;color:var(--gm-ink-muted);font-family:var(--gm-sans);background:0 0;border:none;align-items:center;gap:5px;margin-left:auto;font-size:12.5px;font-weight:500;display:inline-flex}.gm-copy:hover{color:var(--gm-brand-ink)}.gm-rail{background:var(--gm-surface-raised);border:1px solid var(--gm-line);box-shadow:var(--gm-shadow-sm);border-radius:10px;align-self:start;padding:16px 20px;position:sticky;top:24px}.gm-rail .rail-label{letter-spacing:.03em;text-transform:uppercase;color:var(--gm-ink-muted);margin-bottom:10px;font-size:12px;font-weight:600}.gm-rail a{color:var(--gm-ink-muted);padding:5px 0;font-size:14px;text-decoration:none;display:block}.gm-rail a:hover{color:var(--gm-brand-ink)}.gm-rail a strong{color:var(--gm-brand-ink);font-weight:600}.gm-callout{border:1px solid var(--gm-line);background:var(--gm-surface-raised);border-radius:6px;gap:12px;margin:0 0 16px;padding:16px;font-size:15px;line-height:24px;display:flex}.gm-callout .ic{flex:none;margin-top:1px}.gm-callout.warn{border-left:3px solid var(--gm-warning)}.gm-callout.warn .ic{color:var(--gm-warning)}.gm-callout.danger{background:var(--gm-danger-soft);border:1px solid var(--gm-danger);border-radius:10px;align-items:flex-start;font-size:14px;line-height:22px}.gm-callout.danger .ic,.gm-callout.danger strong{color:var(--gm-danger)}.gm-callout.danger code{font-family:var(--gm-mono);background:#ffffff80;border-radius:4px;padding:1px 5px;font-size:13px}.gm-btn{background:var(--gm-brand);height:40px;color:var(--gm-on-brand);cursor:pointer;font-size:15px;font-weight:600;font-family:var(--gm-sans);border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;transition:all .12s;display:inline-flex}.gm-btn:hover{background:var(--gm-brand-ink);color:var(--gm-on-brand)}.gm-btn.lg{height:48px;padding:0 24px}.gm-btn.fill{width:100%;display:flex}.gm-ctabox{background:var(--gm-surface-raised);border:1px solid var(--gm-line);border-radius:16px;margin:32px 0 24px;padding:24px}.gm-sponsor{background:var(--gm-brand-soft);border:1px dashed var(--gm-brand);border-radius:10px;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:48px;padding:16px 20px;font-size:14px;display:flex}.gm-disamb{background:var(--gm-brand-soft);border:1px solid var(--gm-brand);color:var(--gm-brand-ink);border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:500;display:inline-flex}.gm-disamb a{color:var(--gm-brand-ink);font-weight:700;text-decoration:none}.gm-disamb a:hover{text-decoration:underline}.gm-searchbig{border:1px solid var(--gm-border);background:var(--gm-surface-raised);height:56px;box-shadow:var(--gm-shadow-sm);border-radius:12px;align-items:center;gap:12px;padding:0 18px;display:flex}.gm-searchbig:focus-within{border-color:var(--gm-brand);box-shadow:0 0 0 3px var(--gm-brand-soft)}.gm-searchbig input{font-family:var(--gm-sans);color:var(--gm-ink);background:0 0;border:none;outline:none;width:100%;font-size:17px}.gm-row{background:var(--gm-surface-raised);border:1px solid var(--gm-line);border-radius:10px;align-items:center;gap:14px;margin-bottom:10px;padding:16px 20px;text-decoration:none;display:flex}.gm-row:hover{border-color:var(--gm-border);box-shadow:var(--gm-shadow-sm)}.gm-row .nm{color:var(--gm-ink);font-size:16px;font-weight:600;display:block}.gm-row .bl{color:var(--gm-ink-muted);margin-top:2px;font-size:13.5px;line-height:20px;display:block}.gm-empty{text-align:center;background:var(--gm-surface-raised);border:1px dashed var(--gm-border);border-radius:12px;padding:56px 20px}.gm-field{border:1px solid var(--gm-border);background:var(--gm-surface-raised);width:100%;height:44px;font-family:var(--gm-sans);color:var(--gm-ink);border-radius:10px;padding:0 14px;font-size:14.5px}textarea.gm-field{resize:vertical;height:auto;padding:12px 14px;line-height:22px}.gm-field:focus{border-color:var(--gm-brand);box-shadow:0 0 0 3px var(--gm-brand-soft);outline:none}.gm-flabel{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.gm-req{color:var(--gm-danger)}.gm-dl{grid-template-columns:auto 1fr;gap:8px 12px;margin:20px 0 0;font-size:13px;display:grid}.gm-dl dt{color:var(--gm-ink-muted)}.gm-dl dd{color:var(--gm-ink);text-align:right;margin:0;font-weight:500}.gm-stats{flex-wrap:wrap;gap:32px;display:flex}.gm-stats b{color:var(--gm-ink);font-size:22px;font-weight:700;display:block}.gm-stats b.sm{padding-top:5px;font-size:16px;font-weight:600}.gm-stats span{color:var(--gm-ink-muted);font-size:13px}.gm-relrow{grid-template-columns:1fr 1fr;gap:12px;display:grid}.gm-relatedcard{border:1px solid var(--gm-line);background:var(--gm-surface-raised);border-radius:10px;padding:16px;text-decoration:none;transition:all .12s;display:block}.gm-relatedcard:hover{border-color:var(--gm-border);box-shadow:var(--gm-shadow-lg)}.gm-relatedcard h4{color:var(--gm-ink);margin:0 0 4px;font-size:15px;font-weight:600}.gm-relatedcard p{color:var(--gm-ink-muted);margin:0;font-size:13px;line-height:20px}
