.SoftwareLabPage_root__ZMkaB{--lab-bridge-accent:#ff8d90;overflow:clip;background:var(--paper);color:var(--ink)}.SoftwareLabPage_root__ZMkaB *,.SoftwareLabPage_root__ZMkaB :after,.SoftwareLabPage_root__ZMkaB :before{min-width:0}.SoftwareLabPage_root__ZMkaB h1,.SoftwareLabPage_root__ZMkaB h2,.SoftwareLabPage_root__ZMkaB h3{overflow-wrap:normal;word-break:normal;hyphens:none}.SoftwareLabPage_root__ZMkaB figure{margin:0}.SoftwareLabPage_root__ZMkaB .eyebrow{font-size:12px;line-height:1.4}.SoftwareLabPage_hero__DRFkY{padding:clamp(34px,5vw,76px) 0 clamp(54px,7vw,102px);background:var(--sand)}.SoftwareLabPage_heroGrid__74VRk{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,4vw,60px);align-items:center}.SoftwareLabPage_heroCopy__5KCzC{container-type:inline-size;position:relative;z-index:1}.SoftwareLabPage_heroCopy__5KCzC h1{--lab-hero-heading-base:clamp(30px,11cqi,64px);--lab-hero-heading-fit:clamp(30px,9.6cqi,52px);max-width:100%;margin:18px 0 24px;font-size:min(var(--lab-hero-heading-base),var(--lab-hero-heading-fit));line-height:.96;letter-spacing:-.055em;text-wrap:balance}.SoftwareLabPage_heroCopy__5KCzC>p{max-width:44ch;margin:0;color:var(--fg2);font-size:clamp(17px,1.55vw,22px);line-height:1.55}.SoftwareLabPage_actionLinks__PYzo_,.SoftwareLabPage_heroActions__FF422{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}.SoftwareLabPage_heroActions__FF422{margin-top:32px}.SoftwareLabPage_primaryLink__YMesM,.SoftwareLabPage_textLink__WVjY5{display:inline-flex;gap:18px;align-items:center;justify-content:space-between;min-height:48px;color:inherit;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.08em;line-height:1.4;text-decoration:none;text-transform:uppercase}.SoftwareLabPage_primaryLink__YMesM{min-width:210px;padding:0 17px;background:var(--redp);color:#fff}.SoftwareLabPage_textLink__WVjY5{padding:0 2px;border-bottom:1px solid}.SoftwareLabPage_primaryLink__YMesM:focus-visible,.SoftwareLabPage_primaryLink__YMesM:hover{background:var(--ink)}.SoftwareLabPage_textLink__WVjY5:focus-visible,.SoftwareLabPage_textLink__WVjY5:hover{color:var(--redp)}.SoftwareLabPage_primaryLink__YMesM:focus-visible,.SoftwareLabPage_textLink__WVjY5:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.SoftwareLabPage_heroVisual__FF3JK{position:relative;min-height:clamp(400px,48vw,650px);overflow:hidden;background:#c9bfb3;box-shadow:18px 18px 0 var(--red)}.SoftwareLabPage_heroVisual__FF3JK img,.SoftwareLabPage_labDetailVisual__Rk5Ug img,.SoftwareLabPage_labMainVisual__CdbcI img{object-fit:cover}.SoftwareLabPage_heroVisual__FF3JK img{object-position:59% center}.SoftwareLabPage_heroVisual__FF3JK>span{position:absolute;right:0;bottom:0;z-index:1;padding:12px 15px;background:var(--ink);color:#fff;font-family:var(--mono);font-size:12px;line-height:1.4;letter-spacing:.1em;text-transform:uppercase}.SoftwareLabPage_physical__SI4Iz,.SoftwareLabPage_software__cpnDR{padding:clamp(76px,10vw,148px) 0}.SoftwareLabPage_physical__SI4Iz{scroll-margin-top:20px;background:#fff}.SoftwareLabPage_chapterIntro__UNaJB{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(260px,.58fr);gap:clamp(30px,8vw,130px);align-items:end;margin-bottom:clamp(42px,7vw,92px)}.SoftwareLabPage_bridgeIntro__r14nI,.SoftwareLabPage_chapterIntro__UNaJB>div,.SoftwareLabPage_closingGrid__AesJp>div:first-child{container-type:inline-size}.SoftwareLabPage_bridgeIntro__r14nI h2,.SoftwareLabPage_chapterIntro__UNaJB h2,.SoftwareLabPage_closing__ZvHdk h2{max-width:13ch;margin:15px 0 0;font-size:clamp(39px,5vw,72px);line-height:.97;letter-spacing:-.055em}.SoftwareLabPage_bridgeIntro__r14nI p,.SoftwareLabPage_chapterIntro__UNaJB>p,.SoftwareLabPage_closing__ZvHdk p{max-width:38ch;margin:0;color:var(--fg2);font-size:clamp(17px,1.65vw,22px);line-height:1.55}.SoftwareLabPage_labVisuals__Yv_j_{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(260px,.62fr);gap:14px;margin-bottom:clamp(42px,6vw,78px)}.SoftwareLabPage_labDetailVisual__Rk5Ug,.SoftwareLabPage_labMainVisual__CdbcI{position:relative;overflow:hidden;background:#d4cec7}.SoftwareLabPage_labMainVisual__CdbcI{min-height:clamp(410px,50vw,680px)}.SoftwareLabPage_labDetailVisual__Rk5Ug{min-height:clamp(280px,50vw,680px)}.SoftwareLabPage_labMainVisual__CdbcI img{object-position:center}.SoftwareLabPage_labDetailVisual__Rk5Ug img{object-position:54% center}.SoftwareLabPage_labPaths__z9BDA{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line-strong)}.SoftwareLabPage_labPaths__z9BDA>article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;padding:30px 26px 12px 0;border-right:1px solid var(--line-strong)}.SoftwareLabPage_labPaths__z9BDA>article:not(:first-child){padding-left:26px}.SoftwareLabPage_labPaths__z9BDA>article:last-child{padding-right:0;border-right:0}.SoftwareLabPage_labPaths__z9BDA>article>span,.SoftwareLabPage_productMeta__nQ_zQ{color:var(--redp);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.1em;line-height:1.4}.SoftwareLabPage_labPaths__z9BDA h3{max-width:16ch;margin:0 0 12px;font-size:clamp(24px,2.3vw,34px);line-height:1;letter-spacing:-.04em}.SoftwareLabPage_labPaths__z9BDA p{max-width:34ch;margin:0 0 22px;color:var(--fg2);font-size:15px;line-height:1.55}.SoftwareLabPage_labPaths__z9BDA .SoftwareLabPage_actionLinks__PYzo_{display:grid;justify-items:start}.SoftwareLabPage_labPaths__z9BDA .SoftwareLabPage_primaryLink__YMesM,.SoftwareLabPage_labPaths__z9BDA .SoftwareLabPage_textLink__WVjY5,.SoftwareLabPage_product__1GYfL .SoftwareLabPage_primaryLink__YMesM,.SoftwareLabPage_product__1GYfL .SoftwareLabPage_textLink__WVjY5{min-width:0;min-height:44px;padding:0;background:transparent;color:inherit}.SoftwareLabPage_labPaths__z9BDA .SoftwareLabPage_primaryLink__YMesM,.SoftwareLabPage_product__1GYfL .SoftwareLabPage_primaryLink__YMesM{border-bottom:1px solid}.SoftwareLabPage_labPaths__z9BDA .SoftwareLabPage_primaryLink__YMesM:focus-visible,.SoftwareLabPage_labPaths__z9BDA .SoftwareLabPage_primaryLink__YMesM:hover,.SoftwareLabPage_product__1GYfL .SoftwareLabPage_primaryLink__YMesM:focus-visible,.SoftwareLabPage_product__1GYfL .SoftwareLabPage_primaryLink__YMesM:hover{color:var(--redp)}.SoftwareLabPage_bridge__HRqn_{padding:clamp(72px,9vw,126px) 0;background:var(--ink);color:#fff}.SoftwareLabPage_bridgeSteps__ouHXH span,.SoftwareLabPage_bridge__HRqn_ .eyebrow{color:var(--lab-bridge-accent);font-size:12px;line-height:1.4}.SoftwareLabPage_bridgeIntro__r14nI{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(270px,.55fr);column-gap:clamp(30px,8vw,120px);align-items:end}.SoftwareLabPage_bridgeIntro__r14nI>span{grid-column:1/-1}.SoftwareLabPage_bridgeIntro__r14nI h2{max-width:12ch}.SoftwareLabPage_bridgeIntro__r14nI p{color:#d8d2cd}.SoftwareLabPage_bridgeSteps__ouHXH{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:clamp(46px,7vw,88px) 0 0;padding:0;border-top:1px solid #625e5a;list-style:none}.SoftwareLabPage_bridgeSteps__ouHXH li{position:relative;display:grid;gap:42px;min-height:150px;padding:22px 24px 24px 0;border-right:1px solid #625e5a}.SoftwareLabPage_bridgeSteps__ouHXH li:not(:first-child){padding-left:24px}.SoftwareLabPage_bridgeSteps__ouHXH li:last-child{border-right:0}.SoftwareLabPage_bridgeSteps__ouHXH li:before{position:absolute;top:-5px;left:0;width:9px;height:9px;background:var(--red);content:""}.SoftwareLabPage_bridgeSteps__ouHXH li:not(:first-child):before{left:24px}.SoftwareLabPage_bridgeSteps__ouHXH strong{max-width:18ch;align-self:end;font-size:clamp(18px,2vw,25px);line-height:1.15}.SoftwareLabPage_software__cpnDR{scroll-margin-top:20px}.SoftwareLabPage_products__s_fsL{border-top:1px solid var(--line-strong)}.SoftwareLabPage_product__1GYfL{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:clamp(30px,6vw,92px);align-items:center;padding:clamp(42px,7vw,92px) 0;border-bottom:1px solid var(--line-strong)}.SoftwareLabPage_product__1GYfL:nth-child(2n){grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr)}.SoftwareLabPage_product__1GYfL:nth-child(2n) .SoftwareLabPage_productCopy__YyTAM{order:2}.SoftwareLabPage_productCopy__YyTAM{container-type:inline-size}.SoftwareLabPage_productMeta__nQ_zQ{display:flex;gap:12px;align-items:center}.SoftwareLabPage_productMeta__nQ_zQ span+span:before{margin-right:12px;color:var(--line-strong);content:"/"}.SoftwareLabPage_productName__tVYpK{margin:28px 0 10px;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.08em;line-height:1.4;text-transform:uppercase}.SoftwareLabPage_productCopy__YyTAM h3{--lab-product-heading-base:clamp(30px,6.5cqi,52px);--lab-product-heading-fit:clamp(26px,10.2cqi,44px);max-width:100%;margin:0 0 18px;font-family:var(--body);font-weight:700;font-size:min(var(--lab-product-heading-base),var(--lab-product-heading-fit));line-height:.98;letter-spacing:-.02em;text-transform:none}.SoftwareLabPage_productCopy__YyTAM>p:not(.SoftwareLabPage_productName__tVYpK){max-width:42ch;margin:0;color:var(--fg2);font-size:16px;line-height:1.6}.SoftwareLabPage_product__1GYfL .SoftwareLabPage_actionLinks__PYzo_{margin-top:27px}.SoftwareLabPage_productVisual__9ig6k{overflow:hidden;border:1px solid var(--line-strong);background:#d8d4ce;box-shadow:14px 14px 0 var(--red)}.SoftwareLabPage_productVisual__9ig6k img{display:block;width:100%;height:auto}.SoftwareLabPage_closing__ZvHdk{padding:clamp(72px,10vw,138px) 0;background:var(--redp);color:#fff}.SoftwareLabPage_closingGrid__AesJp{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.62fr);gap:clamp(32px,9vw,140px);align-items:end}.SoftwareLabPage_closing__ZvHdk h2{max-width:12ch}.SoftwareLabPage_closing__ZvHdk .eyebrow{color:#fff;font-size:12px;line-height:1.4}.SoftwareLabPage_closing__ZvHdk p{color:#fff}.SoftwareLabPage_closing__ZvHdk .SoftwareLabPage_actionLinks__PYzo_{margin-top:28px}.SoftwareLabPage_closing__ZvHdk .SoftwareLabPage_primaryLink__YMesM{background:#fff;color:var(--ink)}.SoftwareLabPage_closing__ZvHdk .SoftwareLabPage_primaryLink__YMesM:focus-visible,.SoftwareLabPage_closing__ZvHdk .SoftwareLabPage_primaryLink__YMesM:hover{background:var(--ink);color:#fff}.SoftwareLabPage_closing__ZvHdk .SoftwareLabPage_textLink__WVjY5{color:#fff}.SoftwareLabPage_closing__ZvHdk .SoftwareLabPage_textLink__WVjY5:focus-visible,.SoftwareLabPage_closing__ZvHdk .SoftwareLabPage_textLink__WVjY5:hover{color:#fff}.SoftwareLabPage_closing__ZvHdk .SoftwareLabPage_primaryLink__YMesM:focus-visible,.SoftwareLabPage_closing__ZvHdk .SoftwareLabPage_textLink__WVjY5:focus-visible{outline:2px solid var(--paper);outline-offset:3px}@media (max-width:960px){.SoftwareLabPage_bridgeIntro__r14nI,.SoftwareLabPage_chapterIntro__UNaJB,.SoftwareLabPage_closingGrid__AesJp,.SoftwareLabPage_heroGrid__74VRk{grid-template-columns:minmax(0,1fr)}.SoftwareLabPage_heroVisual__FF3JK{min-height:clamp(380px,72vw,610px)}.SoftwareLabPage_heroVisual__FF3JK img{object-position:center}.SoftwareLabPage_labVisuals__Yv_j_{grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr)}.SoftwareLabPage_labPaths__z9BDA{grid-template-columns:minmax(0,1fr)}.SoftwareLabPage_labPaths__z9BDA>article,.SoftwareLabPage_labPaths__z9BDA>article:not(:first-child){padding:28px 0;border-right:0;border-bottom:1px solid var(--line-strong)}.SoftwareLabPage_labPaths__z9BDA>article:last-child{border-bottom:0}.SoftwareLabPage_product__1GYfL,.SoftwareLabPage_product__1GYfL:nth-child(2n){grid-template-columns:minmax(0,1fr)}.SoftwareLabPage_product__1GYfL:nth-child(2n) .SoftwareLabPage_productCopy__YyTAM{order:0}.SoftwareLabPage_productVisual__9ig6k{max-width:840px}}@media (max-width:680px){.SoftwareLabPage_hero__DRFkY{padding-top:42px}.SoftwareLabPage_heroCopy__5KCzC h1{--lab-hero-heading-base:clamp(30px,10.4cqi,46px)}.SoftwareLabPage_heroCopy__5KCzC h1.software-lab-intro-heading{--heading-fit-base:clamp(24px,10.4cqi,46px);--heading-length-fit:clamp(24px,9.6cqi,46px);--heading-word-fit:clamp(24px,9.6cqi,46px);font-size:min(var(--heading-fit-base),var(--heading-length-fit),var(--heading-word-fit))}.SoftwareLabPage_actionLinks__PYzo_,.SoftwareLabPage_heroActions__FF422{align-items:stretch}.SoftwareLabPage_heroActions__FF422{display:grid}.SoftwareLabPage_heroActions__FF422 .SoftwareLabPage_primaryLink__YMesM,.SoftwareLabPage_heroActions__FF422 .SoftwareLabPage_textLink__WVjY5{width:100%}.SoftwareLabPage_heroVisual__FF3JK{min-height:390px;box-shadow:10px 10px 0 var(--red)}.SoftwareLabPage_heroVisual__FF3JK img{object-position:54% center}.SoftwareLabPage_bridgeIntro__r14nI h2,.SoftwareLabPage_chapterIntro__UNaJB h2,.SoftwareLabPage_closing__ZvHdk h2{max-width:100%;font-size:clamp(22px,6.4cqi,52px)}.SoftwareLabPage_labVisuals__Yv_j_{grid-template-columns:minmax(0,1fr)}.SoftwareLabPage_labMainVisual__CdbcI{min-height:390px}.SoftwareLabPage_labDetailVisual__Rk5Ug{min-height:260px}.SoftwareLabPage_bridgeSteps__ouHXH,.SoftwareLabPage_labPaths__z9BDA>article{grid-template-columns:minmax(0,1fr)}.SoftwareLabPage_bridgeSteps__ouHXH li,.SoftwareLabPage_bridgeSteps__ouHXH li:not(:first-child){grid-template-columns:36px minmax(0,1fr);gap:10px;min-height:0;padding:23px 0;border-right:0;border-bottom:1px solid #625e5a}.SoftwareLabPage_bridgeSteps__ouHXH li:before,.SoftwareLabPage_bridgeSteps__ouHXH li:not(:first-child):before{top:-5px;left:0}.SoftwareLabPage_bridgeSteps__ouHXH strong{align-self:auto}.SoftwareLabPage_product__1GYfL{padding:52px 0 62px}.SoftwareLabPage_productCopy__YyTAM h3{--lab-product-heading-base:clamp(18px,8.2cqi,19px);--lab-product-heading-fit:clamp(18px,10.2cqi,19px)}.SoftwareLabPage_closing__ZvHdk .SoftwareLabPage_actionLinks__PYzo_,.SoftwareLabPage_product__1GYfL .SoftwareLabPage_actionLinks__PYzo_{display:grid;justify-items:stretch}.SoftwareLabPage_closing__ZvHdk .SoftwareLabPage_primaryLink__YMesM,.SoftwareLabPage_closing__ZvHdk .SoftwareLabPage_textLink__WVjY5,.SoftwareLabPage_product__1GYfL .SoftwareLabPage_primaryLink__YMesM,.SoftwareLabPage_product__1GYfL .SoftwareLabPage_textLink__WVjY5{width:100%}.SoftwareLabPage_productVisual__9ig6k{box-shadow:9px 9px 0 var(--red)}}@media (prefers-reduced-motion:reduce){.SoftwareLabPage_root__ZMkaB *,.SoftwareLabPage_root__ZMkaB :after,.SoftwareLabPage_root__ZMkaB :before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.AgoraTaskExample_example__IpjLP{background:var(--paper);color:var(--ink);border:1px solid;padding:clamp(18px,3vw,36px);min-width:0}.AgoraTaskExample_example__IpjLP h3{font:700 clamp(1.2rem,2vw,1.7rem)/1.2 var(--body);margin:0 0 24px}.AgoraTaskExample_example__IpjLP ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.AgoraTaskExample_example__IpjLP li{border-top:1px solid var(--line);padding-top:12px;min-width:0}.AgoraTaskExample_example__IpjLP li>span{display:block;font:12px var(--mono);margin-bottom:8px}.AgoraTaskExample_example__IpjLP strong{display:block;font:700 1rem/1.3 var(--body)}.AgoraTaskExample_example__IpjLP p{font:400 1rem/1.55 var(--body);margin:12px 0 0}.AgoraTaskExample_example__IpjLP>p{margin-top:24px}@media(max-width:560px){.AgoraTaskExample_example__IpjLP ol{grid-template-columns:minmax(0,1fr)}}.SoftwareTaskMedia_media__IsBRq{margin:32px 0;border:1px solid var(--line-strong);background:#fff;color:var(--ink);min-width:0}.SoftwareTaskMedia_media__IsBRq picture{display:block}.SoftwareTaskMedia_media__IsBRq img{display:block;width:100%;height:auto;object-fit:contain}.SoftwareTaskMedia_media__IsBRq figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:20px 24px;font-size:16px;line-height:1.6}.SoftwareTaskMedia_media__IsBRq p{margin:0;max-width:70ch}.SoftwareTaskMedia_media__IsBRq>figcaption p strong{display:block;font-size:18px;line-height:1.4;text-transform:none;margin-bottom:6px}.SoftwareTaskMedia_media__IsBRq a{flex:0 0 auto;max-width:24ch;color:inherit;text-decoration:underline;text-underline-offset:4px}.SoftwareTaskMedia_media__IsBRq a:focus-visible{outline:2px solid var(--red);outline-offset:5px}@media (max-width:900px){.SoftwareTaskMedia_media__IsBRq figcaption{flex-direction:column;gap:16px;padding:18px}}.AgoraBreadcrumbs_breadcrumb__L7Wjl{--breadcrumb-border:rgba(21,23,22,0.24);--breadcrumb-muted:#68635d;background:#f4f1ea;border-bottom:1px solid var(--breadcrumb-border);color:#151716}.AgoraBreadcrumbs_breadcrumb__L7Wjl ol{align-items:center;box-sizing:border-box;display:flex;gap:0;list-style:none;margin:0 auto;min-height:42px;padding:0;width:min(1168px,calc(100% - 72px))}@media (max-width:960px){.AgoraBreadcrumbs_breadcrumb__L7Wjl ol{width:calc(100% - 44px)}}.AgoraBreadcrumbs_breadcrumb__L7Wjl li{align-items:center;display:inline-flex;min-width:0;color:var(--breadcrumb-muted);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.075em;line-height:1.35;text-transform:uppercase;white-space:nowrap}.AgoraBreadcrumbs_breadcrumb__L7Wjl li+li:before{color:var(--redp);content:"/";margin-inline:10px}.AgoraBreadcrumbs_breadcrumb__L7Wjl a{color:inherit;text-decoration-color:rgba(196,20,28,.55);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:4px}.AgoraBreadcrumbs_breadcrumb__L7Wjl a:hover{color:#151716}.AgoraBreadcrumbs_breadcrumb__L7Wjl a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.AgoraBreadcrumbs_breadcrumb__L7Wjl li[aria-current=page]{color:#151716;overflow:hidden;text-overflow:ellipsis}.AgoraBreadcrumbs_chapter__AN0TZ{--breadcrumb-border:rgba(255,255,255,0.18);--breadcrumb-muted:#a9a39b;background:transparent;border:0;color:#fff}.AgoraBreadcrumbs_chapter__AN0TZ ol{min-height:20px;padding:0;width:auto}.AgoraBreadcrumbs_chapter__AN0TZ a:hover,.AgoraBreadcrumbs_chapter__AN0TZ li[aria-current=page]{color:#fff}.AgoraBreadcrumbs_chapter__AN0TZ a:focus-visible{outline-color:var(--paper)}@media (max-width:560px){.AgoraBreadcrumbs_breadcrumb__L7Wjl ol{overflow-x:auto;width:calc(100% - 44px);padding-inline:0;scrollbar-width:none}.AgoraBreadcrumbs_breadcrumb__L7Wjl ol::-webkit-scrollbar{display:none}.AgoraBreadcrumbs_breadcrumb__L7Wjl li{font-size:12px}.AgoraBreadcrumbs_breadcrumb__L7Wjl li+li:before{margin-inline:8px}.AgoraBreadcrumbs_chapter__AN0TZ ol{padding:0}}