.hub-module__O8Glpq__root{--green:#007d31;--green-deep:#005a23;--green-bright:#2dc26b;--green-tint:#cce5d6;--green-tint-soft:#e8f3ec;--gray:#28292b;--gray-soft:#6b6e73;--line:#d6d8db;--paper:#fafaf7;--white:#fff;--ink:#0a0b0e;--ink-2:#14161b;--ink-3:#1f2229;--code-pink:#f58fb7;--code-blue:#7dc3ff;--code-amber:#f0b86e;background:var(--white);color:var(--gray);font-family:var(--font-poppins), "Poppins", system-ui, sans-serif;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6}.hub-module__O8Glpq__root a{color:var(--green);text-decoration:none}.hub-module__O8Glpq__root a:hover{text-decoration:underline}.hub-module__O8Glpq__root a.hub-module__O8Glpq__heroCta,.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnPrimary,.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnPrimaryBright,.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnSecondary,.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnTertiary,.hub-module__O8Glpq__root a.hub-module__O8Glpq__relatedCard,.hub-module__O8Glpq__root a.hub-module__O8Glpq__card,.hub-module__O8Glpq__root a.hub-module__O8Glpq__heroCta:hover,.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnPrimary:hover,.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnPrimaryBright:hover,.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnSecondary:hover,.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnTertiary:hover,.hub-module__O8Glpq__root a.hub-module__O8Glpq__relatedCard:hover,.hub-module__O8Glpq__root a.hub-module__O8Glpq__card:hover{text-decoration:none}.hub-module__O8Glpq__root a.hub-module__O8Glpq__heroCtaWhite{color:var(--gray)}.hub-module__O8Glpq__root a.hub-module__O8Glpq__heroCtaGreen{color:#fff}.hub-module__O8Glpq__root a.hub-module__O8Glpq__heroCtaBright{color:var(--ink)}.hub-module__O8Glpq__root a.hub-module__O8Glpq__heroCtaOutline{color:#fff}.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnPrimary{color:var(--gray)}.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnPrimaryBright{color:var(--ink)}.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnSecondary{color:#fff}.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnTertiary{color:#ffffffb3}.hub-module__O8Glpq__root a.hub-module__O8Glpq__btnTertiary:hover{color:#fff}.hub-module__O8Glpq__mono{font-family:var(--font-jetbrains-mono), "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}.hub-module__O8Glpq__wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}.hub-module__O8Glpq__wrapNarrow{max-width:720px;margin:0 auto;padding:0 24px}.hub-module__O8Glpq__hero{padding:96px 0 112px;position:relative;overflow:hidden}.hub-module__O8Glpq__heroGreen{background:var(--green);color:#fff}.hub-module__O8Glpq__heroGreen:before{content:"";opacity:.06;pointer-events:none;background-image:radial-gradient(#ffffffe6 1px,#0000 1px);background-size:3px 3px;position:absolute;inset:0}.hub-module__O8Glpq__heroPaper{background:var(--paper);color:var(--gray)}.hub-module__O8Glpq__heroPaper:before{content:"";opacity:.5;pointer-events:none;background-image:radial-gradient(#007d312e 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0}.hub-module__O8Glpq__heroDarkGreen{color:#fff;background:#0d1411}.hub-module__O8Glpq__heroDarkGreen:before{content:"";opacity:.55;pointer-events:none;background:radial-gradient(circle at 70%,#007d3166,#0000 55%);position:absolute;inset:0}.hub-module__O8Glpq__heroDev{background:var(--ink);color:#fff}.hub-module__O8Glpq__heroDev:before{content:"";opacity:.4;pointer-events:none;background-image:linear-gradient(#007d3112 1px,#0000 1px),linear-gradient(90deg,#007d3112 1px,#0000 1px);background-size:36px 36px;position:absolute;inset:0}.hub-module__O8Glpq__heroDev:after{content:"";pointer-events:none;background:radial-gradient(circle,#007d3159 0%,#007d3100 65%);width:540px;height:540px;position:absolute;top:-120px;right:-100px}.hub-module__O8Glpq__heroGrid{z-index:1;grid-template-columns:1.05fr 1fr;align-items:center;gap:56px;display:grid;position:relative}.hub-module__O8Glpq__heroGridGreen{grid-template-columns:1.1fr 1fr}.hub-module__O8Glpq__heroGridDev{grid-template-columns:1fr 1.05fr}@media (max-width:960px){.hub-module__O8Glpq__heroGrid,.hub-module__O8Glpq__heroGridGreen,.hub-module__O8Glpq__heroGridDev{grid-template-columns:1fr;gap:40px}}.hub-module__O8Glpq__eyebrow{font-family:var(--font-jetbrains-mono), "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;letter-spacing:2px;text-transform:uppercase;margin-bottom:20px;font-size:12px}.hub-module__O8Glpq__eyebrowGreen{color:var(--green-tint)}.hub-module__O8Glpq__eyebrowPaper{color:var(--green)}.hub-module__O8Glpq__eyebrowDev{color:var(--green-bright)}.hub-module__O8Glpq__hero h1{letter-spacing:-.02em;margin:0 0 20px;font-size:56px;font-weight:600;line-height:1.08}.hub-module__O8Glpq__hero h1 em{color:var(--green-bright);font-style:normal;font-family:var(--font-jetbrains-mono), "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;letter-spacing:-.01em;font-weight:600}@media (max-width:720px){.hub-module__O8Glpq__hero h1{font-size:40px}.hub-module__O8Glpq__heroDev h1{font-size:38px}}.hub-module__O8Glpq__subhead{max-width:540px;margin:0 0 32px;font-size:18px;line-height:1.6}.hub-module__O8Glpq__subheadGreen{color:#ffffffe0}.hub-module__O8Glpq__subheadPaper{color:var(--gray-soft)}.hub-module__O8Glpq__subheadDark{color:#ffffffc7}.hub-module__O8Glpq__subheadDev{color:#ffffffb8}.hub-module__O8Glpq__heroCta{cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:10px;padding:14px 26px;font-family:inherit;font-size:15px;font-weight:600;transition:all .15s;display:inline-flex}.hub-module__O8Glpq__heroCta svg{width:16px;height:16px}.hub-module__O8Glpq__heroCtaWhite{color:var(--gray);background:#fff}.hub-module__O8Glpq__heroCtaWhite:hover{background:var(--green-tint);text-decoration:none}.hub-module__O8Glpq__heroCtaGreen{background:var(--green);color:#fff}.hub-module__O8Glpq__heroCtaGreen:hover{background:var(--green-deep);text-decoration:none}.hub-module__O8Glpq__heroCtaBright{background:var(--green-bright);color:var(--ink)}.hub-module__O8Glpq__heroCtaBright:hover{background:#65d893;text-decoration:none}.hub-module__O8Glpq__heroCtaOutline{color:#fff;background:0 0;border:1.5px solid #ffffff4d}.hub-module__O8Glpq__heroCtaOutline:hover{border-color:#ffffffb3;text-decoration:none}.hub-module__O8Glpq__heroCtas{flex-wrap:wrap;gap:12px;display:flex}.hub-module__O8Glpq__heroArt{aspect-ratio:1;position:relative}.hub-module__O8Glpq__heroArt>svg{width:100%;height:100%;display:block}.hub-module__O8Glpq__heroGridDev .hub-module__O8Glpq__heroArt{justify-content:center;align-items:center;display:flex}.hub-module__O8Glpq__heroGridDev .hub-module__O8Glpq__heroArt>*{width:100%}.hub-module__O8Glpq__intro{padding:80px 0 48px}.hub-module__O8Glpq__intro p{color:var(--gray);margin:0 0 18px;font-size:17px;line-height:1.75}.hub-module__O8Glpq__intro p.hub-module__O8Glpq__lead,.hub-module__O8Glpq__lead{color:var(--gray);font-size:19px;font-weight:600}.hub-module__O8Glpq__expandRegion{max-height:0;transition:max-height .45s;position:relative;overflow:hidden}.hub-module__O8Glpq__expandRegionOpen{max-height:16000px;transition:max-height .8s}.hub-module__O8Glpq__expandInner{padding-top:28px}.hub-module__O8Glpq__guideH2{letter-spacing:-.01em;color:var(--gray);margin:36px 0 14px;font-size:26px;font-weight:600;line-height:1.25}.hub-module__O8Glpq__guideH2:first-child{margin-top:12px}.hub-module__O8Glpq__guideH3{color:var(--gray);margin:24px 0 8px;font-size:18px;font-weight:600;line-height:1.4}.hub-module__O8Glpq__guideList{color:var(--gray);margin:0 0 18px;padding-left:22px;font-size:17px;line-height:1.75}.hub-module__O8Glpq__guideList li{margin-bottom:8px}.hub-module__O8Glpq__expandToggleWrap{justify-content:center;margin-top:28px;display:flex}.hub-module__O8Glpq__expandToggle{border:1px solid var(--green-tint);background:var(--green-tint-soft);color:var(--green);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:12px 22px;font-family:inherit;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex}.hub-module__O8Glpq__expandToggle:hover{background:var(--green-tint);border-color:var(--green)}.hub-module__O8Glpq__expandToggle svg{width:14px;height:14px;transition:transform .2s}.hub-module__O8Glpq__expandIconOpen{transform:rotate(180deg)}.hub-module__O8Glpq__section{padding:80px 0}.hub-module__O8Glpq__sectionHead{margin-bottom:40px}.hub-module__O8Glpq__sectionHeadCentered{text-align:center}.hub-module__O8Glpq__kicker{font-family:var(--font-jetbrains-mono), "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;letter-spacing:2px;text-transform:uppercase;color:var(--green);margin-bottom:14px;font-size:12px}.hub-module__O8Glpq__sectionHead h2{letter-spacing:-.01em;margin:0;font-size:40px;font-weight:600;line-height:1.15}.hub-module__O8Glpq__featured{background:var(--paper)}.hub-module__O8Glpq__articles{grid-template-columns:repeat(3,1fr);gap:28px;display:grid}.hub-module__O8Glpq__articlesTwoCol{grid-template-columns:repeat(2,1fr)}@media (max-width:960px){.hub-module__O8Glpq__articles{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.hub-module__O8Glpq__articlesTwoCol{grid-template-columns:1fr}}@media (max-width:640px){.hub-module__O8Glpq__articles{grid-template-columns:1fr}}.hub-module__O8Glpq__card{border:1px solid var(--line);background:#fff;border-radius:16px;flex-direction:column;transition:all .18s;display:flex;overflow:hidden}.hub-module__O8Glpq__card:hover{border-color:var(--green-tint);text-decoration:none;transform:translateY(-3px);box-shadow:0 12px 28px #28292b14}.hub-module__O8Glpq__cardThumb{aspect-ratio:16/10;position:relative;overflow:hidden}.hub-module__O8Glpq__cardThumbWide{aspect-ratio:16/9}.hub-module__O8Glpq__cardThumb svg{width:100%;height:100%;display:block}.hub-module__O8Glpq__cardBody{flex-direction:column;flex:1;gap:12px;padding:22px 24px 26px;display:flex}.hub-module__O8Glpq__cardBodyDev{padding:22px 26px 28px}.hub-module__O8Glpq__cardTag{font-family:var(--font-jetbrains-mono), "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;letter-spacing:2px;color:var(--green);font-size:11px;font-weight:500}.hub-module__O8Glpq__card h3{letter-spacing:-.01em;color:var(--gray);margin:0;font-size:20px;font-weight:600;line-height:1.3}.hub-module__O8Glpq__cardBodyDev h3{font-size:22px}.hub-module__O8Glpq__card p{color:var(--gray-soft);flex:1;margin:0;font-size:14px;line-height:1.55}.hub-module__O8Glpq__cardBodyDev p{font-size:14.5px;line-height:1.6}.hub-module__O8Glpq__cardLink{color:var(--green);align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.hub-module__O8Glpq__faqList{max-width:860px;margin:0 auto}.hub-module__O8Glpq__faqItem{border-bottom:1px solid var(--line)}.hub-module__O8Glpq__faqItem:first-child{border-top:1px solid var(--line)}.hub-module__O8Glpq__faqQ{width:100%;color:var(--gray);text-align:left;cursor:pointer;letter-spacing:-.005em;background:0 0;border:0;justify-content:space-between;align-items:center;gap:20px;padding:26px 0;font-family:inherit;font-size:18px;font-weight:600;display:flex}.hub-module__O8Glpq__faqIcon{background:var(--green-tint-soft);width:28px;height:28px;color:var(--green);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:500;transition:all .2s;display:flex}.hub-module__O8Glpq__faqItemOpen .hub-module__O8Glpq__faqIcon{background:var(--green);color:#fff;transform:rotate(45deg)}.hub-module__O8Glpq__faqA{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.hub-module__O8Glpq__faqItemOpen .hub-module__O8Glpq__faqA{grid-template-rows:1fr}.hub-module__O8Glpq__faqA>div{overflow:hidden}.hub-module__O8Glpq__faqA p{color:var(--gray-soft);max-width:720px;margin:0;padding:0 0 28px;font-size:16px;line-height:1.7}.hub-module__O8Glpq__bottomCta{background:var(--green);color:#fff;text-align:center;padding:88px 24px;position:relative;overflow:hidden}.hub-module__O8Glpq__bottomCta:before{content:"";opacity:.06;pointer-events:none;background-image:radial-gradient(#ffffffe6 1px,#0000 1px);background-size:3px 3px;position:absolute;inset:0}.hub-module__O8Glpq__bottomCtaDev{background:var(--ink)}.hub-module__O8Glpq__bottomCtaDev:before{opacity:.3;background-image:linear-gradient(#007d310f 1px,#0000 1px),linear-gradient(90deg,#007d310f 1px,#0000 1px);background-size:36px 36px}.hub-module__O8Glpq__bottomCtaDev:after{content:"";pointer-events:none;background:radial-gradient(#2dc26b2e 0%,#2dc26b00 70%);width:560px;height:360px;position:absolute;top:-60px;left:50%;transform:translate(-50%)}.hub-module__O8Glpq__bottomCta h2{letter-spacing:-.02em;margin:0 0 14px;font-size:44px;font-weight:600;line-height:1.1;position:relative}.hub-module__O8Glpq__bottomCta>p{color:#ffffffe0;max-width:620px;margin:0 auto 32px;font-size:17px;position:relative}.hub-module__O8Glpq__bottomCtaDev>p{color:#ffffffa6}.hub-module__O8Glpq__actions{flex-wrap:wrap;justify-content:center;gap:14px;display:flex;position:relative}.hub-module__O8Glpq__btnPrimary,.hub-module__O8Glpq__btnPrimaryBright,.hub-module__O8Glpq__btnSecondary,.hub-module__O8Glpq__btnTertiary{cursor:pointer;border:0;border-radius:999px;align-items:center;gap:8px;padding:14px 28px;font-family:inherit;font-size:15px;font-weight:600;display:inline-flex}.hub-module__O8Glpq__btnPrimary{color:var(--gray);background:#fff}.hub-module__O8Glpq__btnPrimary:hover{background:var(--green-tint);text-decoration:none}.hub-module__O8Glpq__btnPrimaryBright{background:var(--green-bright);color:var(--ink)}.hub-module__O8Glpq__btnPrimaryBright:hover{background:#65d893;text-decoration:none}.hub-module__O8Glpq__btnSecondary{color:#fff;background:0 0;border:1.5px solid #ffffff8c}.hub-module__O8Glpq__btnSecondary:hover{border-color:#fff;text-decoration:none}.hub-module__O8Glpq__btnSecondaryDim{border-color:#ffffff4d}.hub-module__O8Glpq__btnSecondaryDim:hover{border-color:#ffffffb3}.hub-module__O8Glpq__btnTertiary{color:#ffffffb3;background:0 0}.hub-module__O8Glpq__btnTertiary:hover{color:#fff;text-decoration:none}.hub-module__O8Glpq__related{background:var(--paper);padding:64px 0}.hub-module__O8Glpq__related h2{letter-spacing:2px;text-transform:uppercase;color:var(--gray-soft);font-size:13px;font-family:var(--font-jetbrains-mono), "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;margin:0 0 24px;font-weight:500}.hub-module__O8Glpq__relatedGrid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (max-width:760px){.hub-module__O8Glpq__relatedGrid{grid-template-columns:1fr}}.hub-module__O8Glpq__relatedCard{border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:24px 26px;transition:all .15s;display:flex}.hub-module__O8Glpq__relatedCard:hover{border-color:var(--green);text-decoration:none}.hub-module__O8Glpq__relatedCard h3{color:var(--gray);margin:0 0 4px;font-size:16px;font-weight:600}.hub-module__O8Glpq__relatedCard p{color:var(--gray-soft);margin:0;font-size:13px}.hub-module__O8Glpq__relatedArrow{color:var(--green);flex-shrink:0;font-size:18px}.hub-module__O8Glpq__relatedBadge{font-family:var(--font-jetbrains-mono), "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-soft);background:var(--green-tint-soft);border:1px solid var(--green-tint);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:6px 12px;font-size:11px;font-weight:500}.hub-module__O8Glpq__relatedCardDisabled{cursor:default}.hub-module__O8Glpq__relatedCardDisabled:hover{border-color:var(--line)}.hub-module__O8Glpq__snippetSection{background:var(--ink);color:#fff;padding:96px 0;position:relative;overflow:hidden}.hub-module__O8Glpq__snippetSection:before{content:"";opacity:.3;pointer-events:none;background-image:linear-gradient(#007d310f 1px,#0000 1px),linear-gradient(90deg,#007d310f 1px,#0000 1px);background-size:36px 36px;position:absolute;inset:0}.hub-module__O8Glpq__snippetWrap{position:relative}.hub-module__O8Glpq__snippetSection .hub-module__O8Glpq__kicker{color:var(--green-bright)}.hub-module__O8Glpq__snippetSection h2{color:#fff}.hub-module__O8Glpq__snippetSection .hub-module__O8Glpq__sectionHead p{color:#ffffffa6;max-width:540px;margin-top:12px;font-size:16px}.hub-module__O8Glpq__snippetCard{background:var(--ink-2);border:1px solid #ffffff14;border-radius:16px;max-width:920px;margin:0 auto;overflow:hidden;box-shadow:0 30px 80px #00000080}.hub-module__O8Glpq__snippetTabs{border-bottom:1px solid #ffffff0f;align-items:center;gap:4px;padding:8px 8px 0;display:flex;position:relative}.hub-module__O8Glpq__snippetTabs button{font-family:var(--font-jetbrains-mono), "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;color:#ffffff8c;cursor:pointer;background:0 0;border:0;border-radius:8px 8px 0 0;padding:12px 20px;font-size:13px;transition:all .15s}.hub-module__O8Glpq__snippetTabs button:hover{color:#ffffffd9}.hub-module__O8Glpq__snippetTabs button.hub-module__O8Glpq__active{color:#fff;background:var(--ink-3)}.hub-module__O8Glpq__copyBtn{font-family:var(--font-jetbrains-mono), "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;color:#ffffff80;border-radius:8px;margin-left:auto;padding:8px 14px;font-size:11px;transition:all .15s}.hub-module__O8Glpq__copyBtn:hover{color:var(--green-bright);background:#2dc26b14}.hub-module__O8Glpq__copyBtnCopied{color:var(--green-bright)}.hub-module__O8Glpq__snippetPane{font-family:var(--font-jetbrains-mono), "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;color:#d8dbe0;white-space:pre;min-height:240px;margin:0;padding:26px 30px 30px;font-size:14px;line-height:1.75;overflow-x:auto}.hub-module__O8Glpq__snippetPane .hub-module__O8Glpq__kw{color:#c084fc}.hub-module__O8Glpq__snippetPane .hub-module__O8Glpq__fn{color:var(--code-blue)}.hub-module__O8Glpq__snippetPane .hub-module__O8Glpq__str{color:var(--green-bright)}.hub-module__O8Glpq__snippetPane .hub-module__O8Glpq__num{color:var(--code-amber)}.hub-module__O8Glpq__snippetPane .hub-module__O8Glpq__com{color:#ffffff59;font-style:italic}.hub-module__O8Glpq__snippetPane .hub-module__O8Glpq__pun{color:#fff9}@keyframes hub-module__O8Glpq__pulseFlow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-40px}}.hub-module__O8Glpq__flowLine{stroke-dasharray:4 6;animation:2s linear infinite hub-module__O8Glpq__pulseFlow}@keyframes hub-module__O8Glpq__nodePulse{0%,to{r:5;opacity:1}50%{r:7.5;opacity:.7}}.hub-module__O8Glpq__flowNode{transform-origin:50%;animation:2.4s ease-in-out infinite hub-module__O8Glpq__nodePulse}@media (prefers-reduced-motion:reduce){.hub-module__O8Glpq__flowLine,.hub-module__O8Glpq__flowNode,.hub-module__O8Glpq__cursor{animation:none}}