:root{--gd-chart-bg:#f7f7f5;--gd-chart-fg:#1a1a1a;--gd-chart-muted:#525252;--gd-chart-line:#000;--gd-c1:#2b59c3;--gd-c2:#c2521a;--gd-c3:#2f7d56;--gd-c4:#7a4fb5;--gd-c5:#8a7a00;--gd-c6:#b0305f;--gd-c7:#4d4d4d;--gd-c8:#0f7f7f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--gd-chart-bg:#171717;--gd-chart-fg:#f7f7f5;--gd-chart-muted:#c7c7c7;--gd-chart-line:#3a3a3a;--gd-c1:#7aa2f7;--gd-c2:#f0996b;--gd-c3:#6cc496;--gd-c4:#b79bf0;--gd-c5:#d9c44a;--gd-c6:#ee7fa4;--gd-c7:#b5b5b5;--gd-c8:#55cfcf}}:root[data-theme=dark]{--gd-chart-bg:#171717;--gd-chart-fg:#f7f7f5;--gd-chart-muted:#c7c7c7;--gd-chart-line:#3a3a3a;--gd-c1:#7aa2f7;--gd-c2:#f0996b;--gd-c3:#6cc496;--gd-c4:#b79bf0;--gd-c5:#d9c44a;--gd-c6:#ee7fa4;--gd-c7:#b5b5b5;--gd-c8:#55cfcf}.gd-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.gd-page{grid-template-columns:minmax(0,1fr);gap:32px 56px;max-width:1200px;margin:0 auto;padding:56px 24px 120px;display:grid}@media (width>=1100px){.gd-page--article{grid-template-columns:minmax(0,760px) 280px;justify-content:space-between}}.gd-main{flex-direction:column;gap:36px;min-width:0;display:flex}.gd-head{flex-direction:column;gap:16px;display:flex}.gd-head h1{letter-spacing:-.035em;overflow-wrap:break-word;text-wrap:balance;margin:0;font-size:clamp(32px,5vw,52px);font-weight:700;line-height:1.05}.gd-head__desc{max-width:640px;color:var(--ld-text-secondary);margin:0;font-size:19px;line-height:1.55}.gd-chips{font-family:var(--ld-font-mono);color:var(--ld-text-secondary);flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12.5px;display:flex}.gd-chips b{color:var(--ld-text)}.gd-chip{border:1.5px solid var(--ld-black);background:var(--ld-yellow);color:#000;font-family:var(--ld-font-mono);letter-spacing:.02em;white-space:nowrap;padding:1px 7px;font-size:11.5px;font-weight:500;display:inline-block}.gd-notice{border:1.5px solid var(--ld-black);background:var(--ld-field-bg);flex-direction:column;gap:6px;padding:12px 14px;font-size:15px;line-height:1.5;display:flex}.gd-notice p{margin:0}.gd-label{font-family:var(--ld-font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:700}.gd-short{border:2px solid var(--ld-black);background:var(--ld-lime);color:#000;flex-direction:column;gap:8px;padding:16px 18px;display:flex}.gd-short p{margin:0;font-size:18px;line-height:1.55}.gd-section{flex-direction:column;gap:16px;scroll-margin-top:24px;display:flex}.gd-section>h2{letter-spacing:-.02em;margin:0;font-size:clamp(24px,3.4vw,32px);font-weight:700;line-height:1.12}.gd-anchor,.gd-fact-link{font-family:var(--ld-font-mono);color:var(--ld-text-faint);opacity:0;margin-left:8px;font-size:.7em;font-weight:400;text-decoration:none}.gd-section>h2:hover .gd-anchor,.gd-anchor:focus-visible,li:hover>.gd-fact-link,.gd-fact-link:focus-visible{opacity:1}.gd-prose,.gd-prose-inner{flex-direction:column;gap:16px;min-width:0;display:flex}.gd-section :where(p,ul,ol,h3){margin:0}.gd-section :where(p,li){color:var(--ld-text-secondary);font-size:17px;line-height:1.65}.gd-section :where(p,li) strong{color:var(--ld-text)}.gd-section :where(ul,ol){flex-direction:column;gap:8px;padding-left:24px;display:flex}.gd-section h3{letter-spacing:-.01em;padding-top:8px;font-size:21px;line-height:1.2}.gd-section a{color:var(--ld-text);text-underline-offset:3px;text-decoration-thickness:1.5px}.gd-section :where(code){font-family:var(--ld-font-mono);background:var(--ld-field-bg);border:1px solid var(--ld-black);overflow-wrap:anywhere;padding:1px 5px;font-size:.88em}.gd-section pre code{background:0 0;border:0;padding:0}a.gd-cite{font-family:var(--ld-font-mono);padding:0 1px;font-size:.82em;text-decoration:none}a.gd-cite:hover{text-decoration:underline}.gd-keyfacts>ul{border:2px solid var(--ld-black);background:var(--ld-white);gap:0;padding:0;list-style:none}.gd-keyfacts>ul>li{border-top:1px solid var(--ld-dot-grid);padding:12px 16px;scroll-margin-top:24px}.gd-keyfacts>ul>li:first-child{border-top:0}.gd-keyfacts>ul>li:target{background:var(--ld-yellow)}.gd-sources ol>li:target{background:var(--ld-yellow);outline:6px solid var(--ld-yellow)}.gd-method>ul{border:1.5px solid var(--ld-black);background:var(--ld-field-bg);padding:14px 16px 14px 36px}.gd-sources ol{font-size:15px}.gd-sources li{overflow-wrap:anywhere;font-size:15px}.gd-worked{border:2px solid var(--ld-black);background:var(--ld-blue);box-shadow:4px 4px 0 var(--ld-black);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.gd-worked p{margin:0;color:#000!important}.gd-worked__label{font-family:var(--ld-font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:700}.gd-worked code{background:var(--ld-white)}.gd-table{flex-direction:column;gap:8px;min-width:0;display:flex}.gd-table__scroll{border:2px solid var(--ld-black);background:var(--ld-white);overflow-x:auto}.gd-table--tall .gd-table__scroll{max-height:560px;overflow:auto}.gd-table table{border-collapse:separate;border-spacing:0;width:100%;font-size:15px}.gd-table th,.gd-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--ld-dot-grid);overflow-wrap:break-word;color:var(--ld-text);padding:9px 12px}.gd-table code{overflow-wrap:anywhere}.gd-table thead th{z-index:2;background:var(--ld-field-bg);font-family:var(--ld-font-mono);letter-spacing:.08em;text-transform:uppercase;border-bottom:2px solid var(--ld-black);white-space:nowrap;font-size:11.5px;position:sticky;top:0}.gd-table tr:last-child td{border-bottom:0}.gd-row--us td{background:var(--ld-yellow)}.gd-badge{border:1.5px solid var(--ld-black);background:var(--ld-white);font-family:var(--ld-font-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;margin-left:6px;padding:0 6px;font-size:10.5px;font-weight:700;display:inline-block}.gd-filter{font-family:var(--ld-font-mono);flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:13px;display:flex}.gd-filter[hidden]{display:none}.gd-filter label{align-items:center;gap:8px;display:flex}.gd-filter__input{font:inherit;border:2px solid var(--ld-black);background:var(--ld-white);width:min(260px,60vw);min-width:0;padding:7px 10px}@media (width>=641px){.gd-table--scroll table{min-width:560px}}@media (width<=640px){.gd-table--cards .gd-table__scroll{background:0 0;border:0;overflow:visible}.gd-table--cards thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.gd-table--cards table,.gd-table--cards tbody,.gd-table--cards tr,.gd-table--cards td{display:block}.gd-table--cards tr{border:2px solid var(--ld-black);background:var(--ld-white);margin-bottom:12px}.gd-table--cards td{border-bottom:1px solid var(--ld-dot-grid);grid-template-columns:minmax(84px,34%) minmax(0,1fr);gap:10px;display:grid}.gd-table--cards td:last-child{border-bottom:0}.gd-table--cards td:before{content:attr(data-label);font-family:var(--ld-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ld-text-faint);padding-top:2px;font-size:11px}.gd-table--cards .gd-row--us{background:var(--ld-yellow)}.gd-table--scroll table{min-width:620px}.gd-table--scroll th:first-child,.gd-table--scroll td:first-child{z-index:1;background:var(--ld-white);box-shadow:2px 0 0 var(--ld-dot-grid);position:sticky;left:0}.gd-table--scroll thead th:first-child{z-index:3;background:var(--ld-field-bg)}}.gd-code{min-width:0;position:relative}.gd-code pre{border:2px solid var(--ld-black);font-family:var(--ld-font-mono);margin:0;padding:40px 16px 16px;font-size:13.5px;line-height:1.6;overflow-x:auto}.gd-copy{z-index:1;font-family:var(--ld-font-mono);color:#f0f0f0;cursor:pointer;background:0 0;border:1px solid #5a5a5a;padding:3px 10px;font-size:11.5px;position:absolute;top:6px;right:6px}.gd-copy:hover{background:#2e2e2e}.gd-copy:focus-visible{outline:3px solid var(--ld-lime);outline-offset:2px}.gd-chart{border:2px solid var(--gd-chart-line);background:var(--gd-chart-bg);color:var(--gd-chart-fg);flex-direction:column;gap:10px;min-width:0;margin:0;padding:14px 16px 16px;display:flex}.gd-chart__cap{flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:15px;display:flex}.gd-chart__svg--narrow{display:none}@media (width<=640px){.gd-chart__svg--wide{display:none}.gd-chart__svg--narrow{display:block}}.gd-chart svg{width:100%;height:auto;color:var(--gd-chart-muted);font-family:var(--ld-font-sans);display:block}.gd-chart__legend{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:6px 16px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.gd-chart__legend li{color:var(--gd-chart-fg);flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:14px;line-height:1.4;display:flex}.gd-chart__swatch{flex:none;align-self:center;width:12px;height:12px}.gd-chart__note{color:var(--gd-chart-muted);font-family:var(--ld-font-mono);font-size:12.5px}.gd-aside{flex-direction:column;align-self:start;gap:24px;min-width:0;display:flex}@media (width>=1100px){.gd-aside{position:sticky;top:24px}}.gd-toc{flex-direction:column;gap:8px;display:flex}.gd-toc summary{cursor:pointer;list-style:none}.gd-toc summary::-webkit-details-marker{display:none}.gd-toc nav{border-left:2px solid var(--ld-black);flex-direction:column;margin-top:8px;display:flex}.gd-toc a,.gd-links a{color:var(--ld-text-secondary);padding:5px 0 5px 12px;font-size:14.5px;line-height:1.35;text-decoration:none}.gd-toc a:hover,.gd-links a:hover{color:var(--ld-text);text-decoration:underline}.gd-links{flex-direction:column;gap:4px;display:flex}.gd-links a.gd-mono{font-family:var(--ld-font-mono);overflow-wrap:anywhere;font-size:12.5px}.gd-toc--aside{display:none}.gd-toc--mobile summary{justify-content:space-between;align-items:center;display:flex}.gd-toc__chev{border-right:2px solid var(--ld-black);border-bottom:2px solid var(--ld-black);width:8px;height:8px;margin-right:4px;transform:rotate(45deg)}.gd-toc[open] .gd-toc__chev{transform:rotate(-135deg)}.gd-toc--mobile{border:1.5px solid var(--ld-black);background:var(--ld-white);padding:12px 14px}@media (width>=1100px){.gd-toc--aside{display:flex}.gd-toc--mobile{display:none}.gd-toc--aside summary{pointer-events:none}}.gd-toolcard{border:2px solid var(--ld-black);background:var(--ld-green);box-shadow:4px 4px 0 var(--ld-black);flex-direction:column;gap:10px;padding:18px;display:flex}.gd-toolcard h2{letter-spacing:-.01em;margin:0;font-size:22px}.gd-toolcard p{color:#000;margin:0;font-size:16px;line-height:1.5}.gd-toolcard__row{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.gd-waitlist{flex-direction:column;gap:12px;display:flex}.gd-waitlist h2{letter-spacing:-.02em;margin:0;font-size:24px}.gd-waitlist>p{margin:0;font-size:16px;line-height:1.5}.gd-related{flex-direction:column;gap:14px;display:flex}.gd-related h2{letter-spacing:-.02em;margin:0;font-size:24px}.gd-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}a.gd-card{border:2px solid var(--ld-black);background:var(--ld-white);color:var(--ld-text);flex-direction:column;gap:8px;padding:14px 16px;text-decoration:none;display:flex}a.gd-card:hover{box-shadow:4px 4px 0 var(--ld-black)}a.gd-card:focus-visible{outline:3px solid var(--ld-lime);outline-offset:2px}.gd-card__kind{font-family:var(--ld-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ld-text-faint);font-size:11px;font-weight:700}.gd-card__title{letter-spacing:-.01em;font-size:18px;font-weight:700;line-height:1.25}.gd-card__desc{color:var(--ld-text-secondary);font-size:14.5px;line-height:1.5}.gd-card__date{font-family:var(--ld-font-mono);color:var(--ld-text-faint);margin-top:auto;font-size:12px}.gd-jump{flex-wrap:wrap;gap:8px;display:flex}.gd-jump a{border:2px solid var(--ld-black);background:var(--ld-white);color:var(--ld-text);align-items:baseline;gap:8px;padding:7px 12px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.gd-jump a:hover{background:var(--ld-lime)}.gd-jump span{font-family:var(--ld-font-mono);font-size:12px;font-weight:400}.gd-topic{flex-direction:column;gap:14px;scroll-margin-top:24px;display:flex}.gd-topic__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;display:flex}.gd-topic h2{letter-spacing:-.02em;margin:0;font-size:28px}.gd-topic__tools{font-family:var(--ld-font-mono);color:var(--ld-text-faint);flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12px;display:flex}.gd-topic__tools a{color:var(--ld-text);border:1.5px solid var(--ld-black);background:var(--ld-white);padding:1px 7px;text-decoration:none}.gd-topic__note{color:var(--ld-text-secondary);margin:0;font-size:15px}.gd-about{max-width:1200px;margin:0 auto;padding:0 24px 72px}.gd-about__inner{flex-direction:column;gap:14px;display:flex}.gd-about__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.gd-about h2{letter-spacing:-.02em;margin:0;font-size:28px}.gd-anim{border:2px solid var(--ld-black);background:var(--ld-field-bg);flex-direction:column;gap:14px;min-width:0;padding:16px;display:flex}.gd-anim__tabs{flex-wrap:wrap;gap:8px;display:flex}.gd-anim__tabs[hidden],.gd-anim__controls[hidden],.gd-anim__panel[hidden]{display:none}.gd-anim__tab{font:500 14px var(--ld-font-sans);border:1.5px solid var(--ld-black);color:var(--ld-text);cursor:pointer;background:0 0;border-radius:999px;padding:8px 14px}.gd-anim__tab[aria-selected=true]{background:var(--ld-black);color:var(--ld-white)}.gd-anim__tab:focus-visible,.gd-anim__btn:focus-visible{outline:3px solid var(--ld-lime);outline-offset:2px}.gd-anim__panel{gap:16px;display:grid}.gd-anim__summary{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.gd-anim__sum{gap:2px;min-width:0;display:grid}.gd-anim__sum b{font:600 12px var(--ld-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ld-text-faint)}.gd-anim__sum span{font-family:var(--ld-font-mono);overflow-wrap:anywhere;font-size:13px}.gd-anim__sum--alert span{background:var(--ld-salmon);color:#5a1a0a;justify-self:start;padding:2px 6px}.gd-anim__track{position:relative}.gd-anim__chain{gap:14px;margin:0;padding:0 0 0 36px;list-style:none;display:grid;position:relative}.gd-anim__chain:before{content:"";background:var(--ld-dot-grid);width:2px;position:absolute;top:14px;bottom:14px;left:11px}.gd-anim__hop{gap:6px;min-width:0;transition:opacity .35s;display:grid;position:relative}.gd-anim__node{border:2px solid var(--ld-black);background:var(--ld-white);width:24px;height:24px;font:600 11px var(--ld-font-mono);border-radius:50%;place-items:center;display:grid;position:absolute;top:4px;left:-36px}.gd-anim__hop--final .gd-anim__node{background:var(--ld-lime)}.gd-anim__hop--dim{opacity:.28}.gd-anim__row{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.gd-anim__url{font-family:var(--ld-font-mono);overflow-wrap:anywhere;min-width:0;font-size:13.5px}.gd-anim__code{font:600 12px var(--ld-font-mono);border:1.5px solid var(--ld-black);white-space:nowrap;padding:2px 7px}.gd-anim__code--r{background:var(--ld-blue)}.gd-anim__code--ok{background:var(--ld-green)}.gd-anim__code--meta{background:var(--ld-salmon);color:#5a1a0a;border-color:#5a1a0a}.gd-anim__hdr{font-family:var(--ld-font-mono);color:var(--ld-text-faint);overflow-wrap:anywhere;font-size:12.5px}.gd-anim .gd-anim__note{color:var(--ld-text-secondary);margin:0;font-size:14.5px;line-height:1.5}.gd-anim .gd-anim__flag{background:var(--ld-salmon);color:#5a1a0a;border-left:4px solid #5a1a0a;margin:4px 0 0;padding:8px 10px;font-size:14px;line-height:1.45}.gd-anim__dot{background:var(--ld-lime);border:2px solid var(--ld-black);width:12px;height:12px;box-shadow:0 0 0 4px color-mix(in srgb, var(--ld-lime) 35%, transparent);transform:translateY(var(--y,10px));opacity:0;z-index:2;border-radius:50%;transition:transform .7s cubic-bezier(.6,.05,.3,1),opacity .2s;position:absolute;top:0;left:6px}.gd-anim--playing .gd-anim__dot{opacity:1}.gd-anim__controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gd-anim__btn{font:600 14px var(--ld-font-sans);border:1.5px solid var(--ld-black);background:var(--ld-white);color:var(--ld-text);cursor:pointer;padding:9px 16px}.gd-anim__btn--primary{background:var(--ld-lime)}.gd-anim__btn:disabled{opacity:.4;cursor:default}.gd-anim__status{font-family:var(--ld-font-mono);color:var(--ld-text-faint);margin-left:auto;font-size:12.5px}.gd-anim .gd-anim__small{color:var(--ld-text-faint);margin:0;font-size:13px;line-height:1.5}@media (prefers-reduced-motion:reduce){.gd-anim__dot,.gd-anim__hop{transition:none}}.gd-chart strong{color:var(--gd-chart-fg)!important}
