.v2 .v2s{background:0 0;min-height:0}.v2 .v2s:after{display:none}.v2 .ge-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0;font-size:11px;font-weight:400!important}.v2 .ge-head{border-top:0;padding-top:184px;padding-bottom:72px}.v2 .ge-head:before,.v2 .ge-head:after{display:none}.v2 .ge-crumbs ol{font-family:var(--mono);letter-spacing:.02em;color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.v2 .ge-crumbs a{transition:color .2s}.v2 .ge-crumbs a:hover{color:var(--ink)}.v2 .ge-crumbs .sep{color:#0c0b0a47}.v2 .ge-crumbs .here{color:var(--ink-2)}.v2 .ge-crumbs .trunc{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.v2 .ge-kicker{margin:40px 0 0}.v2 a.ge-kicker:hover{color:var(--ink)}.v2 .ge-h1{letter-spacing:-.04em;text-wrap:balance;max-width:980px;margin:24px 0 0;font-size:max(40px,min(4.8vw,64px));font-weight:500;line-height:1.04}.v2 .ge-dek{color:var(--ink-2);text-wrap:pretty;max-width:720px;margin:24px 0 0;font-size:18px;line-height:1.6}.v2 .ge-byline{font-family:var(--mono);letter-spacing:.02em;color:var(--ink-3);flex-wrap:wrap;gap:6px 10px;margin:28px 0 0;font-size:12px;display:flex}.v2 .ge-byline .who{color:var(--ink)}.v2 .ge-back{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:12px;transition:color .2s;display:inline-flex}.v2 .ge-back:hover{color:var(--ink)}.v2 .ge-kw{margin-top:28px}.v2 .ge-kw+h1{margin-top:28px!important}.v2 .ge-body{padding-top:72px;padding-bottom:104px}.v2 .ge-layout{grid-template-columns:minmax(0,720px) minmax(200px,260px);justify-content:space-between;align-items:start;gap:64px;display:grid}.v2 .ge-layout.no-toc{grid-template-columns:minmax(0,760px)}.v2 .ge-main{min-width:0}.v2 .ge-toc{position:sticky;top:132px}.v2 .ge-toc .ge-label{margin-bottom:18px}.v2 .ge-toc ul{border-left:1px solid var(--rule);margin:0;padding:0;list-style:none}.v2 .ge-toc li{margin:0}.v2 .ge-toc a{color:var(--ink-3);border-left:1px solid #0000;margin-left:-1px;padding:6px 0 6px 14px;font-size:13.5px;line-height:1.4;transition:color .2s,border-color .2s;display:block}.v2 .ge-toc li.l3 a{padding-left:28px}.v2 .ge-toc a:hover{color:var(--ink)}.v2 .ge-toc a[aria-current=location]{color:var(--ink);border-left-color:var(--signal-ink)}.v2 .ge-tldr{border:1px solid var(--rule);background:#f6f0e4;border-radius:0;margin:0 0 56px;padding:28px 32px 30px}.v2 .ge-tldr ul,.v2 .ge-tldr ol{margin:18px 0 0;padding:0;list-style:none}.v2 .ge-tldr li{border-top:1px solid var(--rule);color:var(--ink-2);text-wrap:pretty;gap:14px;padding:12px 0;font-size:16px;line-height:1.6;display:flex}.v2 .ge-tldr li:last-child{padding-bottom:0}.v2 .ge-tldr .mk{width:18px;font-family:var(--mono);color:var(--signal-ink);flex:none;font-size:12px;line-height:26px}.v2 .ge-tldr .n{color:var(--ink-3)}.v2 .ge-main .blog-prose{color:var(--ink-2)}.v2 .ge-main .blog-prose h2{letter-spacing:-.03em;scroll-margin-top:132px;font-size:max(26px,min(2.6vw,32px));line-height:1.15}.v2 .ge-main .blog-prose h3{letter-spacing:-.02em;scroll-margin-top:132px;font-size:max(20px,min(2vw,23px))}.v2 .ge-main .blog-prose h4{color:var(--ink);letter-spacing:-.01em;margin:1.6em 0 .2em;scroll-margin-top:132px;font-size:17px;font-weight:500}.v2 .ge-main .blog-prose pre{border-color:var(--ink);background:var(--ink);border-radius:0}.v2 .ge-main .blog-prose pre.ge-pre{padding:18px 20px}.v2 .ge-main .blog-prose pre.ge-pre code{color:#f0e8d8db;white-space:pre;font-size:13.5px;display:block}.v2 .ge-main .blog-prose figure[data-rehype-pretty-code-figure] [data-rehype-pretty-code-title]{border-color:var(--ink);color:#f0e8d899;background:#1a1816;border-radius:0}.v2 .ge-main .blog-prose .table-wrap{background:var(--ink);border-color:var(--ink);padding:4px 20px}.v2 .ge-main .blog-prose thead th{color:#f0e8d880;letter-spacing:.1em;border-bottom-color:#f0e8d824;padding:14px;font-size:11px;font-weight:400}.v2 .ge-main .blog-prose tbody td{color:#f0e8d8bd;border-bottom-color:#f0e8d814;padding:14px;line-height:1.5}.v2 .ge-main .blog-prose tbody td:first-child,.v2 .ge-main .blog-prose .table-wrap strong{color:var(--bone)}.v2 .ge-main .blog-prose .table-wrap a{color:#f47a4f;text-decoration-color:#f47a4f66}.v2 .ge-main .blog-prose .table-wrap :not(pre)>code{color:var(--bone);background:#f0e8d814;border-color:#f0e8d824}.v2 .ge-main .blog-prose .blog-image{border-color:var(--rule);border-radius:0}.v2 .ge-main .blog-prose blockquote{font-style:normal}.v2 .ge-main .blog-prose blockquote .ge-attr{font-family:var(--mono);color:var(--ink-3);margin-top:.6em;font-size:12px;font-style:normal}.v2 .ge-main .blog-prose a,.v2 .ge-main .blog-prose li,.v2 .ge-main .blog-prose p{overflow-wrap:break-word}.v2 .blog-prose a.ge-artifact{border:1px solid var(--rule);color:var(--ink);background:#f6f0e4;border-radius:0;align-items:center;gap:16px;padding:18px 20px;text-decoration:none;transition:border-color .2s;display:flex}.v2 .blog-prose a.ge-artifact:hover{border-color:var(--ink);color:var(--ink)}.v2 .ge-artifact .ic{border:1px solid var(--rule);width:40px;height:40px;color:var(--ink);flex:none;justify-content:center;align-items:center;display:flex}.v2 .ge-artifact .tx{flex-direction:column;gap:2px;min-width:0;display:flex}.v2 .ge-artifact .fn{font-family:var(--mono);color:var(--ink);font-size:14px}.v2 .ge-artifact .ds{color:var(--ink-2);font-size:14px;line-height:1.5}.v2 .ge-artifact .dl{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--signal-ink);flex:none;margin-left:auto;font-size:11px}.v2 .ge-sources{border-top:1px solid var(--rule);margin-top:64px;padding-top:32px}.v2 .ge-sources ol{margin:18px 0 0;padding:0;list-style:none}.v2 .ge-sources li{border-bottom:1px solid var(--rule);font-family:var(--mono);gap:14px;padding:10px 0;font-size:12.5px;line-height:1.55;display:flex}.v2 .ge-sources .n{color:var(--ink-3);font-variant-numeric:tabular-nums;flex:none}.v2 .ge-sources a{color:var(--ink-2);overflow-wrap:anywhere;transition:color .2s}.v2 .ge-sources a:hover{color:var(--signal-ink)}.v2 .ge-sources a .arr{color:var(--ink-3);margin-left:6px}.v2 .ge-share{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:10px;margin-top:40px;padding-top:32px;display:flex}.v2 .ge-share button{cursor:pointer}.v2 .ge-share .ge-copy{height:34px;color:var(--ink-2);background:0 0;border:0;align-items:center;gap:8px;padding:0 12px;font-size:13.5px;transition:color .2s;display:inline-flex}.v2 .ge-share .ge-copy:hover{color:var(--ink)}.v2 .ge-more .h2{margin:0 0 48px}.v2 .ge-cards{margin:0;padding:0;list-style:none}.v2 .gridcards.ge-cards>li{font-size:inherit;line-height:inherit;color:inherit;border-top:0;padding:0}.v2 .gridcards.ge-cards>li:before{content:none}.v2 .ge-card{flex-direction:column;height:100%;padding:28px 28px 30px;transition:background .25s;display:flex}.v2 .ge-card:hover{background:#ffffff52}.v2 .ge-card-top{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.v2 .ge-cat{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);text-align:right;font-size:11px}.v2 .gridcards .ge-card h3{letter-spacing:-.015em;margin:22px 0 0;font-size:18px;transition:color .2s}.v2 .ge-card:hover h3{color:var(--signal-ink)}.v2 .gridcards .ge-card .src{margin-top:auto;padding-top:22px}.v2 .ge-pn{margin-top:48px}.v2 .ge-pn>*{flex-direction:column;gap:10px;display:flex}.v2 .ge-pn>span{padding:0!important}.v2 .ge-pn a{transition:background .25s}.v2 .ge-pn a:hover{background:#ffffff52}.v2 .ge-pn .dir{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:8px;font-size:11px;display:inline-flex}.v2 .ge-pn .ttl{letter-spacing:-.01em;text-wrap:pretty;font-size:17px;font-weight:500;line-height:1.35;transition:color .2s}.v2 .ge-pn a:hover .ttl{color:var(--signal-ink)}.v2 .ge-pn .next{text-align:right;align-items:flex-end}.v2 .ge-faq .h2{margin-top:0}.v2 .ge-faq summary{gap:24px;line-height:1.4}.v2 .ge-faq summary:after{flex:none}.v2 .ge-filters{margin-bottom:0}.v2 .ge-tags{border-top:1px solid var(--rule);gap:2px 4px;margin:24px 0 0;padding-top:20px}.v2 .ge-tags button{color:var(--ink-3);border-color:#0000;padding:4px 9px;font-size:11px}.v2 .ge-tags button:hover{border-color:var(--rule)}.v2 .ge-index-list{margin-top:72px}.v2 .ge-index-list>.ge-label{margin-bottom:24px}.v2 .ge-rows{margin:0;padding:0;list-style:none}.v2 .ge-rows>li{border-bottom:1px solid var(--rule);padding:28px 0}.v2 .ge-rows .meta{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.v2 .ge-rows .meta a{transition:color .2s}.v2 .ge-rows .meta a:hover{color:var(--ink)}.v2 .ge-rows .meta .dot{color:#0c0b0a47}.v2 .ge-rows h2,.v2 .ge-rows h3,.v2 .ge-rows h4{letter-spacing:-.02em;text-wrap:pretty;margin:12px 0 0;font-size:max(20px,min(2vw,26px));font-weight:500;line-height:1.25}.v2 .ge-rows h2 a,.v2 .ge-rows h3 a,.v2 .ge-rows h4 a{transition:color .2s}.v2 .ge-rows h2 a:hover,.v2 .ge-rows h3 a:hover,.v2 .ge-rows h4 a:hover{color:var(--signal-ink)}.v2 .ge-rows p{color:var(--ink-2);text-wrap:pretty;max-width:720px;margin:10px 0 0;font-size:15.5px;line-height:1.6}.v2 .ge-rows.compact>li{padding:20px 0}.v2 .ge-rows.compact>li:first-child{padding-top:0}.v2 .ge-rows.compact h4{letter-spacing:-.015em;margin:0 0 8px;font-size:18px}.v2 .rows.ge-rows.compact{border-top:0}.v2 a.ge-row{display:block}.v2 a.ge-row:hover h2,.v2 a.ge-row:hover h3{color:var(--signal-ink)}.v2 .ge-pillar{grid-template-columns:1fr 1.5fr;align-items:start;gap:72px;display:grid}.v2 .ge-pillar-head{position:sticky;top:132px}.v2 .ge-pillar-head .h2{margin-top:0}.v2 .ge-pillar-head .h2 a{transition:color .2s}.v2 .ge-pillar-head .h2 a:hover{color:var(--signal-ink)}.v2 .ge-pillar-head .lead{margin-top:18px;font-size:16px}.v2 .ge-pillar-head .text-link{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;margin-top:22px;padding:0;font-size:12px}.v2 .ge-empty{color:var(--ink-2);margin:0;font-size:16px}.v2 .gridcards .ge-lc{flex-direction:column;transition:background .25s;display:flex}.v2 .gridcards .ge-lc:hover{background:#ffffff52}.v2 .gridcards .ge-lc:hover h2{color:var(--signal-ink)}.v2 .gridcards .ge-lc h2{letter-spacing:-.02em;margin:22px 0 0;font-size:20px;font-weight:500;line-height:1.25;transition:color .2s}.v2 .gridcards .ge-lc .src{margin-top:auto;padding-top:22px}.v2 .gridcards .ge-lc p{margin-bottom:0}.v2 .ge-legal{color:var(--ink-2);font-size:16px;line-height:1.7}.v2 .ge-legal .prose{max-width:none;color:var(--ink-2)}.v2 .ge-legal h2{letter-spacing:-.025em;scroll-margin-top:132px;color:var(--ink)!important;margin:56px 0 16px!important;font-size:max(22px,min(2.2vw,26px))!important;line-height:1.25!important}.v2 .ge-legal section:first-child h2,.v2 .ge-legal .prose>h2:first-child{margin-top:0!important}.v2 .ge-legal h3{letter-spacing:-.015em;color:var(--ink)!important;margin:32px 0 10px!important;font-size:18px!important;line-height:1.35!important}.v2 .ge-legal p,.v2 .ge-legal li{font-size:16px;line-height:1.7}.v2 .ge-legal .text-lg{color:var(--ink);font-size:18px}.v2 .ge-legal strong{color:var(--ink);font-weight:500}.v2 .ge-legal ul{list-style:outside}.v2 .ge-legal li::marker{color:var(--ink-3)}.v2 .ge-legal .rounded-lg{background:#f6f0e4!important;border-radius:0!important}.v2 .ge-legal a,.v2 .ge-legal a.text-tan{text-underline-offset:.2em;-webkit-text-decoration:underline #c4401b66;text-decoration:underline #c4401b66;color:var(--signal-ink)!important}.v2 .ge-legal .uppercase{letter-spacing:.01em}.v2 .ge-progress{z-index:60;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0}.v2 .ge-progress>div{background:#e8552b;height:100%;transition:width .15s ease-out}@media (max-width:1000px){.v2 .ge-head{padding-top:160px;padding-bottom:56px}.v2 .ge-body{padding-top:56px;padding-bottom:72px}.v2 .ge-layout,.v2 .ge-layout.no-toc{grid-template-columns:minmax(0,1fr)}.v2 .ge-toc{display:none}.v2 .ge-pillar{grid-template-columns:1fr;gap:32px}.v2 .ge-pillar-head{position:static}.v2 .ge-tldr{padding:22px 20px 24px}.v2 .ge-main .blog-prose .table-wrap{padding:2px 8px}.v2 .ge-index-list{margin-top:48px}}@media (max-width:640px){.v2 .ge-pn .next{text-align:left;align-items:flex-start}.v2 .ge-crumbs .trunc{max-width:180px}.v2 .ge-tags{scrollbar-width:none;flex-wrap:nowrap;margin-right:-24px;padding-right:24px;overflow-x:auto}.v2 .ge-tags::-webkit-scrollbar{display:none}.v2 .ge-tags button{white-space:nowrap;flex:none}}
