.gx-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ev .gx-card{display:flex;flex-direction:column;gap:12px;min-height:280px;padding:28px 26px 30px;background:var(--e-card);color:var(--e-fg);text-decoration:none;transition:background .3s var(--e-ease);animation:gx-card-in .45s var(--e-ease) both}.ev .gx-card:hover{background:var(--e-card-2)}.gx-card .tag{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--e-fg-3)}.gx-card .ti{margin-top:8px;font-size:26px;line-height:1.1;letter-spacing:-.045em;font-weight:300}.gx-card .ds{flex:1;font-size:15px;line-height:1.45;color:var(--e-fg-3)}.gx-card .rd{align-self:flex-start;font-size:15px;font-weight:400;border-bottom:1px solid transparent;transition:border-color .3s var(--e-ease)}.gx-card:hover .rd{border-bottom-color:var(--e-fg)}@keyframes gx-card-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.gx-grid>:first-child{animation-delay:0ms}.gx-grid>:nth-child(2){animation-delay:40ms}.gx-grid>:nth-child(3){animation-delay:80ms}.gx-grid>:nth-child(4){animation-delay:.12s}.gx-grid>:nth-child(5){animation-delay:.16s}.gx-grid>:nth-child(6){animation-delay:.2s}.gx-grid>:nth-child(7){animation-delay:.24s}.gx-grid>:nth-child(8){animation-delay:.28s}.gx-grid>:nth-child(9){animation-delay:.32s}.gx-grid>:nth-child(10){animation-delay:.36s}.gx-grid>:nth-child(11){animation-delay:.4s}.gx-grid>:nth-child(12){animation-delay:.44s}.gx-grid>:nth-child(13){animation-delay:.48s}.gx-grid>:nth-child(14){animation-delay:.52s}.gx-grid>:nth-child(15){animation-delay:.56s}.gx-grid>:nth-child(16){animation-delay:.6s}.gx-grid>:nth-child(17){animation-delay:.64s}.gx-grid>:nth-child(18){animation-delay:.68s}.gx-grid>:nth-child(19){animation-delay:.72s}.gx-grid>:nth-child(20){animation-delay:.76s}.gx-grid>:nth-child(21){animation-delay:.8s}.gx-grid>:nth-child(22){animation-delay:.84s}.gx-grid>:nth-child(23){animation-delay:.88s}.gx-grid>:nth-child(24){animation-delay:.92s}@media (max-width:1000px){.gx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.gx-grid{grid-template-columns:minmax(0,1fr)}.ev .gx-card{min-height:0;padding:24px 20px 26px}.gx-card .ti{font-size:23px}}.gi-hero{padding-bottom:40px}.gi-search{width:min(360px,100%)}.gi-search .ev-input{background:var(--e-card)}.gi-list{padding:0 0 112px}.gi-pills{gap:6px;padding-bottom:24px;border-bottom:1px solid var(--e-line-2)}.gi-pills .ev-pill{font-size:14px;padding:9px 14px}.gi-count{margin:20px 0}.gi-none{margin:24px 0 0;font-size:18px;color:var(--e-fg-3)}.ev .gi-none a{color:var(--e-fg);text-decoration:underline;text-underline-offset:3px}@media (max-width:600px){.gi-list{padding-bottom:80px}}.gx-hero{background:var(--e-card)}.gx-hero .ev-wrap{padding-top:96px;padding-bottom:72px}.gx-crumb{display:inline-flex;flex-wrap:wrap;align-items:center;gap:0 .6em}.gx-hero .gx-h1{margin-top:18px;max-width:980px;font-size:clamp(34px,4.4vw,60px)}.gx-lede{margin:22px 0 0;max-width:720px;font-size:20px;line-height:1.4;letter-spacing:-.02em;color:var(--e-fg-3)}.gx-meta{margin:20px 0 0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--e-fg-4)}@media (max-width:600px){.gx-hero .ev-wrap{padding-top:64px;padding-bottom:48px}.gx-lede{font-size:18px}}.gx-layout{display:grid;grid-template-columns:240px minmax(0,1fr) 300px;gap:56px;align-items:start;padding-top:64px;padding-bottom:112px}.gx-toc-wrap{position:sticky;top:88px}.gx-toc-h{font-family:var(--e-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--e-fg-3);margin-bottom:12px}.ev .gx-toc a{display:block;padding:7px 0 7px 14px;border-left:1px solid var(--e-line);font-size:14px;line-height:1.35;color:var(--e-fg-4);text-decoration:none;transition:color .3s var(--e-ease),border-color .3s var(--e-ease)}.ev .gx-toc a.on,.ev .gx-toc a:hover{color:var(--e-fg)}.ev .gx-toc a.on{border-left:2px solid var(--e-y);padding-left:13px;font-weight:400}@media (max-width:1200px){.gx-layout{grid-template-columns:220px minmax(0,1fr)}.gx-rail{display:none!important}}@media (max-width:900px){.gx-layout{grid-template-columns:minmax(0,1fr);gap:40px;padding-top:40px;padding-bottom:80px}.gx-toc-wrap{position:static;padding-bottom:28px;border-bottom:1px solid var(--e-line-2)}}.gx-prose{max-width:760px;min-width:0;color:var(--e-fg-2)}.gx-prose [id],.gx-prose section[id]{scroll-margin-top:88px}.gx-prose p{margin:0 0 18px;font-size:18px;line-height:1.55}.gx-prose h2{margin:72px 0 18px;font-size:34px;line-height:1.07;font-weight:300;letter-spacing:-.045em;color:var(--e-fg)}.gx-prose>h2:first-child,.gx-prose>section:first-child>h2:first-child{margin-top:0}.gx-prose h3{margin:40px 0 12px;font-size:22px;line-height:1.2;font-weight:400;letter-spacing:-.03em;color:var(--e-fg)}.gx-prose ol,.gx-prose ul{margin:0 0 22px;padding-left:20px}.gx-prose li{margin-bottom:10px;font-size:18px;line-height:1.55}.gx-prose li::marker{color:var(--e-fg-4)}.gx-prose b,.gx-prose strong{color:var(--e-fg);font-weight:500}.ev .gx-prose a{color:var(--e-fg);text-decoration:underline;text-decoration-color:var(--e-fg-4);text-underline-offset:3px;transition:text-decoration-color .3s var(--e-ease)}.ev .gx-prose a:hover{text-decoration-color:var(--e-y)}.ev .gx-prose :not(pre)>code{font-family:var(--e-mono);font-size:.84em;color:var(--e-fg);background:var(--e-card);border:1px solid var(--e-line-2);border-radius:2px;padding:1px 5px;overflow-wrap:anywhere}.ev .gx-prose ol.gd-steps{counter-reset:g;list-style:none;padding:0;margin:8px 0 28px;display:block;border-top:1px solid var(--e-line)}.ev .gx-prose ol.gd-steps>li{counter-increment:g;position:relative;margin:0;padding:16px 0 16px 52px;background:none;border:0;border-bottom:1px solid var(--e-line);border-radius:0;font-size:17px}.ev .gx-prose ol.gd-steps>li:before{content:counter(g,decimal-leading-zero);position:absolute;left:0;top:18px;font-family:var(--e-mono);font-size:13px;color:var(--e-y)}@media (max-width:600px){.gx-prose li,.gx-prose p{font-size:17px}.gx-prose h2{font-size:28px;margin-top:56px}}.gx-code{margin:24px 0;min-width:0;max-width:100%}.gx-code-h{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 10px 18px;border-bottom:1px solid var(--e-line-2)}.gx-code-h .t{min-width:0;font-family:var(--e-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--e-fg-3);overflow-wrap:anywhere}.gx-code-h .n{color:var(--e-fg-4)}.gx-copy{flex:none}.gx-pre{color:#e9e9e9}.ev .gx-pre code{font:inherit;background:none;border:0;padding:0;color:inherit}.gx-pre .kw{color:var(--e-y)}.gx-pre .fn{color:#fff}.gx-pre .st{color:#c8c8c8}.gx-pre .nm{color:#fff}.gx-pre .cm{color:var(--e-fg-4)}@media (max-width:600px){.gx-pre{padding:16px;font-size:12.5px;line-height:21px}}.gx-note{margin:28px 0;padding:18px 22px;background:var(--e-card);border-left:2px solid var(--e-fg-3);font-size:16px;line-height:1.5;color:var(--e-fg-2)}.gx-note.warn{border-left-color:var(--e-y)}.gx-note>b.ev-label{display:block;margin-bottom:6px;font-weight:400;color:var(--e-fg-3)}.gx-note.warn>b.ev-label{color:var(--e-y)}.gx-note p{font-size:16px;line-height:1.5;margin:0 0 10px}.gx-note p:last-child{margin-bottom:0}.gx-panel{margin:28px 0;padding:22px 24px 18px;background:var(--e-band);min-width:0}.gx-panel-h{font-size:12px;letter-spacing:.08em;margin-bottom:14px}.gx-panel-v{min-width:0;overflow-x:auto}.gx-panel figcaption{margin-top:14px;font-size:13px;line-height:1.45;color:var(--e-fg-4)}.gx-panel .qf{font-family:var(--e-sans);color:var(--e-fg-2)}.gx-panel .qf-win{background:transparent;border:0;box-shadow:none;border-radius:0;overflow:visible}.gx-panel .qf-bar{height:auto;padding:0 0 10px;background:none;border-bottom:1px solid var(--e-line-2);font-family:var(--e-mono)}.gx-panel .qf-bar i{display:none}.gx-panel .qf-bar .t{margin-left:0;font-size:12px;letter-spacing:.06em;color:var(--e-fg-3)}.gx-panel .qf-bar .r{color:var(--e-fg-4)}.gx-panel .qf-grid th{background:none;border-color:var(--e-line-2);color:var(--e-fg-4)}.gx-panel .qf-grid td{border-color:var(--e-line-2);color:var(--e-fg-2);font-size:11.5px}.gx-panel .qf-grid td.hi{color:var(--e-y)}.gx-panel .qf-chain,.gx-panel .qf-code,.gx-panel .qf-tree{color:var(--e-fg-2);font-size:12.5px}.gx-panel .qf-kpis{background:var(--e-line-2)}.gx-panel .qf-kpi{background:var(--e-band)}.gx-panel .qf-foot{color:var(--e-fg-4);flex-wrap:wrap}.gx-panel .qf-alert,.gx-panel .qf-foot,.gx-panel .qf-head,.gx-panel .qf-target{border-color:var(--e-line-2)}.gx-panel.arm .qf-grid tbody tr,.gx-panel.arm .qf-win>:not(.qf-bar):not(table):not(.gx-mini-s){opacity:0;animation:none}.gx-panel.in .qf-grid tbody tr,.gx-panel.in .qf-win>:not(.qf-bar):not(table):not(.gx-mini-s){animation:ev-draw .5s var(--e-ease) both}.gx-panel.in .qf-win>:nth-child(2){animation-delay:.15s}.gx-panel.in .qf-win>:nth-child(3){animation-delay:.3s}.gx-panel.in .qf-win>:nth-child(4){animation-delay:.45s}.gx-panel.in .qf-win>:nth-child(5){animation-delay:.6s}.gx-panel.in .qf-win>:nth-child(n+6){animation-delay:.75s}.gx-panel.in .qf-grid tbody tr:first-child{animation-delay:.25s}.gx-panel.in .qf-grid tbody tr:nth-child(2){animation-delay:.37s}.gx-panel.in .qf-grid tbody tr:nth-child(3){animation-delay:.49s}.gx-panel.in .qf-grid tbody tr:nth-child(4){animation-delay:.61s}.gx-panel.in .qf-grid tbody tr:nth-child(5){animation-delay:.73s}.gx-panel.in .qf-grid tbody tr:nth-child(n+6){animation-delay:.85s}.qf.gx-mini{background:var(--e-band);border:1px solid var(--e-y-line);border-radius:0;box-shadow:none;font-family:var(--e-sans);color:var(--e-fg-2);max-width:100%}.gx-mini-h{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--e-line-2);font-family:var(--e-mono);font-size:12px;letter-spacing:.04em;min-width:0}.gx-mini-h .t{min-width:0;overflow:hidden}.gx-mini-h .r{margin-left:auto;flex:none;color:var(--e-fg-4);font-size:11px}.gx-mini-s{overflow-x:auto}.gx-mini .qf-grid th{background:none;border-color:var(--e-line-2);color:var(--e-fg-4)}.gx-mini .qf-grid td{border-color:var(--e-line-2);color:var(--e-fg-2);font-size:11.5px}.gx-mini .qf-grid td.hi{color:var(--e-y)}.gx-mini .qf-foot{border-color:var(--e-line-2);color:var(--e-fg-4);flex-wrap:wrap}.gx-panel .qf.gx-mini{border:0;background:transparent}.gx-panel .gx-mini-h{padding:0 0 10px}@media (max-width:600px){.gx-mini-h .r{display:none}}.gx-rail{position:sticky;top:88px;gap:16px}.gx-rail,.gx-rail-card{display:flex;flex-direction:column}.gx-rail-card{gap:14px;padding:26px 24px;background:var(--e-band);border:1px solid var(--e-line-2)}.gx-rail-card p{margin:0}.gx-rail-card .h{font-size:20px;line-height:1.25;letter-spacing:-.03em;color:var(--e-fg)}.gx-rail-card .s{font-size:15px;line-height:1.45;color:var(--e-fg-3)}.gx-rail-card .ev-btn{align-self:flex-start}.gx-rail-card .f{font-size:13px;color:var(--e-fg-3)}.ev .gx-rail-try{display:flex;flex-direction:column;gap:6px;padding:22px 24px;background:var(--e-card);color:var(--e-fg);text-decoration:none;transition:background .3s var(--e-ease)}.ev .gx-rail-try:hover{background:var(--e-card-2)}.gx-rail-try .b{font-size:18px;letter-spacing:-.025em}.gx-end{margin-top:72px;padding:32px 28px;background:var(--e-band);border:1px solid var(--e-y-line);display:flex;flex-direction:column;gap:14px}.gx-end h2.ev-h4{margin:0;font-size:26px;letter-spacing:-.04em;color:var(--e-fg)}.gx-end p{margin:0;font-size:16px;color:var(--e-fg-3)}.gx-end .s{font-size:14px}.gx-end .qs{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}.gx-end .qs-field{flex:1 1 240px;display:flex}.ev .gx-end .qs-field input{width:100%;min-width:0;font:inherit;font-size:16px;padding:13px 14px;border:1px solid var(--e-line);border-radius:2px;background:var(--e-0);color:var(--e-fg);box-shadow:none}.ev .gx-end .qs-field input::-moz-placeholder{color:var(--e-fg-4)}.ev .gx-end .qs-field input::placeholder{color:var(--e-fg-4)}.ev .gx-end .qs-field input:focus{outline:none;border-color:var(--e-y);box-shadow:none}.ev .gx-end .qs.bad .qs-field input{border-color:var(--e-y)}.ev .gx-end .qs-btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 22px;border-radius:2px;border:1px solid var(--e-y);background:var(--e-y);color:var(--e-ink);font:inherit;font-size:16px;font-weight:400;box-shadow:none;transform:none;cursor:pointer;transition:background .3s var(--e-ease),border-color .3s var(--e-ease)}.ev .gx-end .qs-btn:hover{background:#fff;border-color:#fff;transform:none}.ev .gx-end .qs-btn:disabled{opacity:.6;cursor:wait}.gx-end .qs-msg{flex-basis:100%;font-size:14px;color:var(--e-y)}.gx-end .qs-msg:empty{display:none}.ev .gx-end .qs-done{display:flex;align-items:center;gap:10px;padding:13px 16px;border:1px solid var(--e-y-line);border-left:2px solid var(--e-y);background:var(--e-card);border-radius:0;font-size:15px;color:var(--e-fg-2)}.gx-end .qs-done b{color:var(--e-fg)}.gx-end .qs-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--e-y);box-shadow:0 0 8px hsla(57,98%,78%,.6)}.ev .gx-end a{color:var(--e-fg);text-decoration:underline;text-underline-offset:3px}@media (max-width:600px){.gx-end{padding:24px 18px}.ev .gx-end .qs-btn{width:100%}}.gx-related{background:var(--e-0)}.gx-related .ev-wrap{padding-top:96px;padding-bottom:112px}.gx-related .gx-related-h{align-items:baseline;margin-bottom:32px}@media (max-width:600px){.gx-related .ev-wrap{padding-top:72px;padding-bottom:80px}}@media (prefers-reduced-motion:reduce){.ev .gx-card,.gx-panel.in .qf-grid tbody tr,.gx-panel.in .qf-win>*{animation:none!important}.gx-panel.arm .qf-grid tbody tr,.gx-panel.arm .qf-win>*{opacity:1!important}.gx-progress{display:none}.ev .gx-card,.ev .gx-toc a,.gx-card .rd{transition:none}}