.gg-page{flex-direction:column;display:flex}.gg-page-head{flex-direction:column;gap:18px;padding-block:clamp(36px,6vw,88px) clamp(28px,4vw,48px);display:flex}.gg-page-title{letter-spacing:-.035em;text-wrap:balance;max-width:20ch;margin:0;font-size:clamp(36px,5.4vw,68px);font-weight:900;line-height:1.02}.gg-page-meta{font-family:var(--font-jet), ui-monospace, monospace;color:var(--gg-grey);flex-wrap:wrap;gap:6px 18px;font-size:13px;display:flex}.gg-page-meta b{color:var(--gg-ink);font-weight:600}.gg-draft{font-family:var(--font-jet), ui-monospace, monospace;color:var(--gg-orange-deep);background:var(--gg-orange-pale);border:1px solid var(--gg-orange-edge);border-radius:4px;align-self:flex-start;padding:2px 8px;font-size:12px}.gg-page-body{grid-template-columns:minmax(0,720px);gap:40px clamp(40px,6vw,96px);padding-bottom:clamp(56px,8vw,120px);display:grid}.gg-page-body[data-rail]{grid-template-columns:minmax(0,720px) minmax(280px,400px);align-items:start}.gg-rail{flex-direction:column;gap:20px;display:flex;position:sticky;top:24px}.gg-page-body[data-wide]{grid-template-columns:minmax(0,1fr)}@media (max-width:960px){.gg-page-body[data-rail]{grid-template-columns:minmax(0,720px)}.gg-rail{order:-1;position:static}}.gg-page :is(p,.gg-page-meta) a:not([class]){color:var(--gg-blue)}.gg-page :is(p,.gg-page-meta) a:not([class]):hover{color:var(--gg-blue-deep)}.gg-page :is(h1,h2,h3,p){max-width:none}.gg-page .gg-page-title{max-width:20ch}.gg-page .gg-lede,.gg-page .gg-postlist-standfirst{max-width:62ch}.gg-prose{min-width:0;color:var(--gg-ink-2);font-size:18px;line-height:1.65}.gg-prose>*{margin:0}.gg-prose>*+*{margin-top:1.1em}.gg-prose h2{border-top:1px solid var(--gg-hair);letter-spacing:-.025em;color:var(--gg-ink);text-wrap:balance;margin-top:2.2em;padding-top:1.1em;font-size:clamp(25px,2.6vw,32px);font-weight:800;line-height:1.15}.gg-prose>h2:first-child{margin-top:0}.gg-prose h3{letter-spacing:-.015em;color:var(--gg-ink);margin-top:1.8em;font-size:21px;font-weight:800;line-height:1.25}.gg-prose h2+*,.gg-prose h3+*{margin-top:.7em}.gg-prose strong,.gg-prose b{color:var(--gg-ink);font-weight:700}.gg-prose a{color:var(--gg-blue);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--gg-blue-edge);text-decoration-color:var(--gg-blue-edge)}.gg-prose a:hover{color:var(--gg-blue-deep);text-decoration-color:currentColor}.gg-prose ul{padding-left:1.3em;list-style:none}.gg-prose ul>li{position:relative}.gg-prose ul>li:before{content:"";background:var(--gg-grey-3);border-radius:1px;width:6px;height:6px;position:absolute;top:.68em;left:-1.15em}.gg-prose ol{counter-reset:gg-step;padding-left:2.4em;list-style:none}.gg-prose ol>li{counter-increment:gg-step;position:relative}.gg-prose ol>li:before{content:counter(gg-step, decimal-leading-zero);font-family:var(--font-jet), ui-monospace, monospace;color:var(--gg-blue);font-size:13px;position:absolute;top:.2em;left:-2.4em}.gg-prose li+li,.gg-prose li>ul,.gg-prose li>ol{margin-top:.45em}.gg-prose blockquote{border-left:3px solid var(--gg-blue);color:var(--gg-grey);margin-left:0;padding:2px 0 2px 20px}.gg-prose hr{border:0;border-top:1px solid var(--gg-hair);margin-block:2.2em}.gg-prose :not(pre)>code{font-family:var(--font-jet), ui-monospace, monospace;color:var(--gg-ink);overflow-wrap:anywhere;background:#e9ecf1;border-radius:4px;padding:.12em .38em;font-size:.84em}.gg-prose a code{color:inherit}.gg-prose .table-wrap{background:var(--gg-card);border:1px solid var(--gg-edge);border-radius:10px;overflow-x:auto}.gg-prose table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:15.5px;line-height:1.45}.gg-prose th{text-align:left;font-family:var(--font-jet), ui-monospace, monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--gg-grey);border-bottom:1px solid var(--gg-edge);white-space:nowrap;background:#fafbfc;padding:12px 16px;font-size:12px;font-weight:500}.gg-prose td{border-top:1px solid var(--gg-hair);vertical-align:top;padding:12px 16px}.gg-prose tr:first-child td{border-top:0}.gg-prose td:first-child{white-space:normal;color:var(--gg-ink);font-family:inherit;font-weight:600}.gg-prose table{min-width:32rem}.gg-prose figure{margin-inline:0}.gg-prose figure img,.gg-prose figure video,.gg-prose>p>img{border:1px solid var(--gg-edge);background:var(--gg-card);border-radius:10px;max-width:100%;height:auto;display:block}.gg-prose figcaption{color:var(--gg-grey);margin-top:10px;font-size:14.5px;line-height:1.5}.gg-prose figcaption b{color:var(--gg-ink)}.gg-code{background:var(--gg-void);border-radius:10px;overflow:hidden}.gg-prose>.gg-code{margin-top:1.3em}.gg-code-head{border-bottom:1px solid var(--gg-rule);min-height:44px;font-family:var(--font-jet), ui-monospace, monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--gg-dim);justify-content:space-between;align-items:center;gap:12px;padding:0 6px 0 18px;font-size:11.5px;display:flex}.gg-code-copy{color:#7fb0ff;min-width:72px;min-height:44px;font-family:var(--font-jet), ui-monospace, monospace;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;padding:0 12px;font-size:12px}.gg-code-copy:hover{color:#fff}.gg-code-copy[data-copied]{color:var(--gg-green)}.gg-code pre{margin:0;padding:16px 20px 18px;overflow-x:auto}.gg-code code{font-family:var(--font-jet), ui-monospace, monospace;color:var(--gg-lit);white-space:pre;font-size:14px;line-height:1.55}.gg-code[data-kind=drawing] code{color:#b9c6d8}.gg-prompt .gg-setup-bubble span{font-size:16px}.gg-postlist{border-top:1px solid var(--gg-hair);flex-direction:column;display:flex}.gg-postlist a{border-bottom:1px solid var(--gg-hair);color:var(--gg-ink);grid-template-columns:150px minmax(0,1fr);gap:6px 32px;padding-block:26px;text-decoration:none;display:grid}.gg-postlist-meta{font-family:var(--font-jet), ui-monospace, monospace;color:var(--gg-grey);grid-row:span 2;padding-top:6px;font-size:13px}.gg-postlist-title{letter-spacing:-.02em;text-wrap:balance;font-size:clamp(21px,2vw,26px);font-weight:800;line-height:1.2}.gg-postlist a:hover .gg-postlist-title{color:var(--gg-blue)}.gg-postlist-standfirst{max-width:62ch;color:var(--gg-grey);font-size:17px;line-height:1.55}@media (max-width:640px){.gg-postlist a{grid-template-columns:minmax(0,1fr)}.gg-postlist-meta{grid-row:auto;padding-top:0}}.gg-sources{border-top:1px solid var(--gg-hair);margin-top:3em;padding-top:1.2em}.gg-sources h2{font-family:var(--font-jet), ui-monospace, monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--gg-grey);margin:0 0 12px;font-size:12px;font-weight:500}.gg-sources ol{margin:0;padding-left:2.2em;font-size:15px;line-height:1.5}.gg-sources li+li{margin-top:6px}.gg-postnav{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px;margin-top:3.5em;display:grid}.gg-postnav a{background:var(--gg-card);border:1px solid var(--gg-edge);color:var(--gg-ink);border-radius:10px;flex-direction:column;gap:8px;padding:18px 20px;text-decoration:none;display:flex}.gg-postnav a:hover{border-color:var(--gg-blue-edge)}.gg-postnav a[rel=next]{text-align:right}.gg-postnav-dir{font-family:var(--font-jet), ui-monospace, monospace;color:var(--gg-grey);font-size:12px}.gg-postnav b{letter-spacing:-.01em;font-size:17px;font-weight:800;line-height:1.3}.gg-callout{background:var(--gg-card);border:1px solid var(--gg-edge);border-radius:12px;padding:22px 24px}.gg-prose>.gg-callout{margin-top:2em}.gg-callout>*{margin:0}.gg-callout>*+*{margin-top:.9em}.gg-prose .gg-callout>h2{border-top:0;margin-top:0;padding-top:0;font-size:22px}.gg-callout[data-tone=bad]{background:var(--gg-orange-pale);border-color:var(--gg-orange-edge)}.gg-prose .gg-callout[data-tone=bad]>h2{color:var(--gg-orange-deep)}.gg-callout[data-tone=bad] ul>li:before{background:var(--gg-orange)}.gg-cost{background:var(--gg-card);border:1px solid var(--gg-edge);border-radius:10px;flex-direction:column;gap:14px;padding:22px;display:flex}.gg-cost-head{font-family:var(--font-jet), ui-monospace, monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--gg-grey);font-size:12px}.gg-cost-total{font-family:var(--font-jet), ui-monospace, monospace;letter-spacing:-.03em;color:var(--gg-ink);align-items:baseline;gap:8px;font-size:clamp(36px,3.6vw,46px);font-weight:600;line-height:1;display:flex}.gg-cost-total span{letter-spacing:0;color:var(--gg-grey);font-size:14px;font-weight:400}.gg-cost-lines{border-top:1px solid var(--gg-hair);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.gg-cost-lines li{border-bottom:1px solid var(--gg-hair);font-family:var(--font-jet), ui-monospace, monospace;color:var(--gg-ink-2);font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;padding-block:9px;font-size:13px;display:flex}.gg-cost-lines li span:first-child{color:var(--gg-grey)}.gg-cost-note{color:var(--gg-grey);margin:0;font-size:14px;line-height:1.5}.gg-jobs{border-top:1px solid var(--gg-hair);flex-direction:column;display:flex}.gg-job{border-bottom:1px solid var(--gg-hair);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px clamp(28px,4vw,64px);padding-block:clamp(28px,3.5vw,44px);scroll-margin-top:24px;display:grid}.gg-job h2{letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(22px,2.2vw,28px);font-weight:800;line-height:1.15}.gg-job p{color:var(--gg-ink-2);max-width:54ch;margin:12px 0 0;font-size:17px;line-height:1.6}.gg-job ul{color:var(--gg-grey);margin:14px 0 0;padding:0;font-size:15px;line-height:1.5;list-style:none}.gg-job ul li+li{margin-top:6px}.gg-job-cmds{align-self:start}@media (max-width:860px){.gg-job{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.gg-prose{font-size:17px}.gg-code code{font-size:13px}}.gg-notyet{max-width:760px;margin-top:clamp(32px,4vw,56px)}.gg-notyet h2{letter-spacing:-.02em;font-size:24px;font-weight:800}.gg-notyet p,.gg-notyet li{color:var(--gg-ink-2);font-size:17px;line-height:1.6}.gg-notyet ul{padding-left:1.3em;list-style:square}.gg-notyet a{color:var(--gg-blue)}.gg-doc-article>.stack>*{margin:0}.gg-doc-article>.stack>*+*{margin-top:1.1em}.gg-doc-article>.stack>h1{letter-spacing:-.035em;max-width:18ch;color:var(--gg-ink);text-wrap:balance;font-family:inherit;font-weight:900;line-height:1.02;font-size:clamp(36px,5.4vw,68px)!important}.gg-doc-article>.stack>h1+*{margin-top:22px}.gg-doc-article .lede{max-width:62ch;color:var(--gg-grey);font-size:clamp(17px,1.4vw,20px);line-height:1.5}.gg-doc-article>.stack>.lede+*{margin-top:2em}.gg-doc-article>.stack>.lede+h2{margin-top:1.4em}.gg-doc-article>.stack>h2{scroll-margin-top:24px}.gg-doc-article .mono{font-family:var(--font-jet), ui-monospace, monospace}.gg-doc-article .dim{color:var(--gg-grey)}.gg-doc-article td:first-child{min-width:13rem;font-family:var(--font-jet), ui-monospace, monospace;font-size:14px;font-weight:500}.gg-doc-article table{min-width:40rem}.gg-doc-article td:not(:first-child):last-child{min-width:17rem}.gg-doc-article td:first-child .dim{margin-top:2px;font-size:12.5px;font-weight:400;display:block}.gg-doc-article .panel{background:var(--gg-void);color:var(--gg-lit);font-family:var(--font-jet), ui-monospace, monospace;border-radius:10px;padding:0 20px 18px;font-size:14px;line-height:1.6;overflow:hidden}.gg-doc-article .panel-head{border-bottom:1px solid var(--gg-rule);letter-spacing:.1em;text-transform:uppercase;min-height:44px;color:var(--gg-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 18px;margin:0 -20px 16px;padding:10px 20px;font-size:11.5px;display:flex}.gg-doc-article .panel pre{font:inherit;margin-block:0;overflow-x:auto}.gg-doc-article .panel code{font:inherit;color:inherit;background:0 0;padding:0}.gg-doc-article .panel .panel-note,.gg-doc-article .panel p{border-top:1px solid var(--gg-rule);color:var(--gg-dim);margin-top:14px;padding-top:12px;font-size:13px}.gg-doc-article .figure{margin:2em 0}.gg-doc-article .figure-scroll{background:var(--gg-card);border:1px solid var(--gg-edge);border-radius:10px}.gg-doc-article .figure figcaption{color:var(--gg-grey);font-size:14.5px}.gg-doc-article .planned{font-family:var(--font-jet), ui-monospace, monospace;border-radius:4px;font-size:12px}.gg-docnav{flex-direction:column;gap:14px;max-height:calc(100vh - 48px);padding-top:8px;display:flex;overflow-y:auto}.gg-docnav-pages{border-top:1px solid var(--gg-hair);margin:0;padding:0;list-style:none}.gg-docnav-pages>li{border-bottom:1px solid var(--gg-hair)}.gg-docnav-pages>li>a{color:var(--gg-ink);border-left:3px solid #0000;flex-direction:column;gap:2px;padding:12px 0 12px 14px;text-decoration:none;display:flex}.gg-docnav-pages>li>a b{font-size:15.5px;font-weight:700;line-height:1.3}.gg-docnav-pages>li>a span{color:var(--gg-grey);font-size:13.5px;line-height:1.35}.gg-docnav-pages>li>a:hover b{color:var(--gg-blue)}.gg-docnav-pages>li[data-current]>a{border-left-color:var(--gg-blue)}.gg-docnav-pages>li[data-current]>a b{color:var(--gg-blue)}.gg-docnav-sections{margin:0;padding:0 0 12px 17px;list-style:none}.gg-docnav-sections a{border-left:1px solid var(--gg-hair);color:var(--gg-grey);padding:5px 0 5px 12px;font-size:14px;line-height:1.35;text-decoration:none;display:block}.gg-docnav-sections a:hover{color:var(--gg-ink)}.gg-docnav-sections a[data-active]{color:var(--gg-ink);border-left-color:var(--gg-ink);font-weight:600}.gg-page-body:has(.gg-doc-article){padding-top:clamp(36px,6vw,88px)}.gg-docnav-fold{display:none}@media (max-width:960px){.gg-docnav{display:none}.gg-docnav-fold{background:var(--gg-card);border:1px solid var(--gg-edge);border-radius:10px;display:block}.gg-docnav-fold>summary{cursor:pointer;align-items:center;gap:12px;min-height:52px;padding:0 16px;list-style:none;display:flex}.gg-docnav-fold>summary::-webkit-details-marker{display:none}.gg-docnav-fold>summary:after{content:"";border-right:2px solid var(--gg-grey);border-bottom:2px solid var(--gg-grey);width:8px;height:8px;margin-left:auto;transform:rotate(45deg)translateY(-2px)}.gg-docnav-fold[open]>summary:after{transform:rotate(-135deg)translateY(-2px)}.gg-docnav-fold-label{font-family:var(--font-jet), ui-monospace, monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--gg-grey);font-size:12px}.gg-docnav-fold-here{color:var(--gg-ink);font-weight:700}.gg-docnav-fold .gg-docnav-pages{padding:0 16px 6px}.gg-docnav-fold .gg-docnav-pages>li:last-child{border-bottom:0}.gg-page-body:has(.gg-doc-article){padding-top:24px}}@media (prefers-reduced-motion:no-preference){html:has(.gg-doc-article){scroll-behavior:smooth}}
