:root{--bs-primary: #4f46c6;--bs-primary-rgb: 79, 70, 198;--bs-link-color: var(--bs-primary);--bs-link-color-rgb: var(--bs-primary-rgb);--bs-link-hover-color: #3730a3;--bs-link-hover-color-rgb: 55, 48, 163;--site-button-bg: #4f46c6;--site-button-hover: #4f52d9;--site-outline-secondary: #535b65;--site-card-bg: #fff;--site-card-padding: 24px;--site-radius: .75rem;--site-section-space: 3rem;--site-reading-width: 56rem;--site-hero-surface: #0d0b1e;--site-hero-overlay: rgba(13, 11, 30, .88)}[data-bs-theme=dark]{--bs-primary: #b5b8ff;--bs-link-color: var(--bs-primary);--bs-link-color-rgb: 181, 184, 255;--bs-link-hover-color: #d5d7ff;--bs-link-hover-color-rgb: 213, 215, 255;--bs-body-bg: #0f0d1e;--bs-body-bg-rgb: 15, 13, 30;--bs-heading-color: var(--bs-body-color);--site-outline-secondary: #c4c7d5;--site-card-bg: #1c1830}.page-intro{padding-block:var(--site-section-space) 2rem}.page-intro-title{font-size:clamp(2rem,3.5vw,3rem);line-height:1.2;margin-bottom:1rem;text-wrap:balance;overflow-wrap:anywhere;hyphens:auto}.page-intro-description{max-width:48rem;margin-bottom:0}.page-intro-image{width:100%;aspect-ratio:4;object-fit:cover;border-radius:var(--site-radius);margin-bottom:1.5rem}.catalog-card-image{aspect-ratio:16/5;object-fit:cover}.card{--bs-card-spacer-x: var(--site-card-padding);--bs-card-spacer-y: var(--site-card-padding);--bs-card-border-radius: var(--site-radius);--bs-card-bg: var(--site-card-bg)}.card-title{line-height:1.4;overflow-wrap:anywhere}.media-hero{color:var(--bs-body-color);background-color:var(--site-hero-surface);background-size:cover;background-position:center}html{font-size:14px}.btn-outline-secondary{--bs-btn-color: var(--site-outline-secondary);--bs-btn-border-color: var(--site-outline-secondary);--bs-btn-hover-color: var(--bs-body-bg);--bs-btn-hover-bg: var(--site-outline-secondary);--bs-btn-hover-border-color: var(--site-outline-secondary);--bs-btn-active-color: var(--bs-body-bg);--bs-btn-active-bg: var(--site-outline-secondary);--bs-btn-active-border-color: var(--site-outline-secondary)}.btn-primary{--bs-btn-bg: var(--site-button-bg);--bs-btn-border-color: var(--site-button-bg);--bs-btn-hover-bg: var(--site-button-hover);--bs-btn-hover-border-color: var(--site-button-hover);--bs-btn-active-bg: #3730a3;--bs-btn-active-border-color: #3730a3;--bs-btn-focus-shadow-rgb: var(--bs-primary-rgb)}.btn-outline-primary{--bs-btn-color: var(--bs-link-color);--bs-btn-border-color: var(--bs-link-color);--bs-btn-hover-color: var(--bs-body-bg);--bs-btn-hover-bg: var(--bs-link-color);--bs-btn-hover-border-color: var(--bs-link-color);--bs-btn-active-color: var(--bs-body-bg);--bs-btn-active-bg: var(--bs-link-color);--bs-btn-active-border-color: var(--bs-link-color)}.breadcrumb{--bs-breadcrumb-item-active-color: var(--bs-body-color)}@media(min-width:1200px){.container{max-width:1080px}}[data-bs-theme=dark] .site-header{background-color:var(--bs-body-bg)!important}[data-bs-theme=dark] .card.shadow-sm{box-shadow:0 0 0 1px #ffffff12!important}.event-card-meta a{color:inherit;text-underline-offset:.2em}.event-card-action a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;text-underline-offset:.25em}.card :is(h2,h3,h4,h5,h6) a{color:var(--bs-body-color);font-weight:600;text-decoration:none}.site-footer-legal a:is(:hover,:focus-visible){color:var(--bs-link-color)!important}.card :is(h2,h3,h4,h5,h6) a:hover{color:var(--bs-link-color)}.site-footer-tagline{max-width:30rem;line-height:1.6}[data-bs-theme=light] .dark-mode-img,[data-bs-theme=dark] .light-mode-img{display:none}.skip-link{position:fixed;top:.5rem;left:.5rem;z-index:2000;padding:.75rem 1rem;background:var(--bs-body-bg);color:var(--bs-body-color);border:2px solid currentColor;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}:focus-visible,.btn:focus-visible,.btn-close:focus-visible,.form-control:focus-visible,.form-select:focus-visible,.form-check-input:focus-visible{outline:3px solid var(--bs-emphasis-color);outline-offset:3px}.legal-content{max-width:var(--site-reading-width);overflow-wrap:anywhere}.legal-content h2{margin-top:2rem}.legal-content p,.legal-content li{line-height:1.7}.legal-toc ul{margin-bottom:0}.offcanvas-header.border-top{flex-direction:column;align-items:stretch}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.technology-use-case-icon,.topic-prerequisite-icon{color:var(--bs-link-color)}.home-intro{--bs-border-color: rgba(214, 206, 255, .3);color:#fff;background:radial-gradient(ellipse at 15% 20%,rgba(79,70,198,.28),transparent 65%),radial-gradient(ellipse at 100% 100%,rgba(161,137,228,.12),transparent 55%),#0d0b1e}.home-intro-copy{max-width:42rem}.home-intro-identity{color:#cbc4f0;letter-spacing:.035em}.home-intro-title{font-size:clamp(3rem,5.5vw,6rem);line-height:1.05;letter-spacing:-.045em;text-wrap:balance}.home-intro-prose>:first-child{color:#d6ceff;font-size:1.25rem;font-weight:600;line-height:1.5;max-width:34rem}.home-intro-prose>:not(:first-child){color:#d1cedf;font-size:1.125rem;line-height:1.7;max-width:32rem;margin-bottom:1.5rem}.home-intro-team{display:inline-flex;align-items:center;gap:.75rem;min-height:44px;color:#d6ceff;text-underline-offset:.25em}.home-intro-team:hover{color:#fff}.home-intro-activity{align-items:baseline;gap:1.25rem;padding:1.75rem .75rem;color:#fff}.home-intro-activity-copy{min-width:0;hyphens:auto}.home-intro-activity h2{color:#fff;font-weight:600;line-height:1.3}.home-intro-number{color:#bdb3eb;font-size:.875rem;font-variant-numeric:tabular-nums}.home-intro-activity-description{color:#d1cedf;line-height:1.6}.home-intro-action{color:#d6ceff;font-weight:600}.home-intro-activity:hover,.home-intro-activity:focus-visible{color:#fff;background-color:#d6ceff14}@media(min-width:992px){.home-intro{display:flex;align-items:center;min-height:67svh}.home-intro-copy{padding-inline-end:2rem}}.feature-icon{width:2rem;height:2rem;margin-top:.25rem}.editorial-copy>:last-child,.milestone-copy>:last-child,.office-copy>:last-child,.office-network-copy>:last-child,.topic-catalog-intro>:last-child{margin-bottom:0}.example-copy>blockquote{color:var(--bs-body-color);margin-bottom:1rem}.example-copy>blockquote>:last-child{margin-bottom:0}.topic-sidebar-copy>p{font-size:.875em}[data-bs-theme=light] .example-card{--bs-card-bg: var(--bs-tertiary-bg)}.example-card blockquote,.example-card .badge{font-size:.875rem}.steps .step-number{width:2rem;height:2rem}@media(min-width:768px){.steps>li:before{content:"";position:absolute;top:1rem;left:0;right:0;height:2px;background:var(--bs-border-color)}.steps>li:first-child:before{left:50%}.steps>li:last-child:before{right:50%}}.upcoming-events-swiper{margin-top:-.5rem;padding-top:.5rem}#upcoming-events,#topic-events,.topic-events-scroll>.col{scroll-margin-top:6rem}.community-intro h1,.community-outro h2{text-align:center}.community-program-icon{width:3.5rem;height:3.5rem;font-size:1.25rem}.community-approach .container{padding-inline:3rem}[data-bs-theme=dark] .team-photo{box-shadow:0 0 0 1px #ffffff12!important}[data-bs-theme=dark] .team-band{background-color:var(--site-card-bg)!important}.team-icon{color:var(--bs-link-color)}.project-hero .project-links{display:flex!important;flex-wrap:wrap}.project-detail aside>:is(.project-use-cases,.project-technologies){padding:var(--site-card-padding);border-radius:var(--site-radius);background:var(--site-card-bg);box-shadow:var(--bs-box-shadow-sm)}.project-detail .project-use-case-list{padding:0;list-style:none}.project-detail .project-use-case-list li{display:flex;gap:.5rem;margin-bottom:.5rem}.project-catalog .project-use-case-list .bi{display:none}.project-catalog :is(.project-use-cases,.project-technologies) h3{font-size:1rem}.project-use-case-icon{color:var(--bs-link-color)}@media(min-width:1400px){.container.topic-catalog-layout{max-width:1320px}}.topic-card-title-link>span:last-child,.topic-hero-copy{min-width:0}.topic-card-icon{display:block;width:36px;height:36px;flex:0 0 36px}.technology-indicators{gap:4px 12px;color:var(--bs-secondary-color)}.technology-indicator{gap:6px;min-height:24px;color:inherit;font-size:12px;line-height:1.5;text-decoration:none}.technology-indicator:hover{color:var(--bs-link-color);text-decoration:underline}.technology-icon{display:inline-block;width:16px;height:16px;flex:0 0 16px;font-size:16px;line-height:1}.topic-logo{display:block;flex-shrink:0;font-size:36px;color:var(--bs-link-color);white-space:nowrap}.topic-logo-panel{display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--site-radius);background-color:var(--site-card-bg)}.topic-logo-panel--hero{width:14rem;height:14rem}.topic-logo-panel--hero .topic-logo{font-size:13rem}.topic-logo-panel--event{width:4rem;height:4rem}.topic-logo-panel--event .topic-logo{font-size:3.5rem}.topic-events-jump{min-height:44px}.topic-events-jump:hover{background-color:var(--bs-tertiary-bg)}.topic-events-jump:hover .topic-events-jump-label{text-decoration:underline}.topic-events-scroll{overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin}.topic-events-scroll>.col{flex:0 0 calc(100% - 4.5rem);width:auto;scroll-snap-align:start}@media(min-width:768px){.topic-events-scroll>.col{flex-basis:calc((100% - 6rem)/2)}}@media(min-width:1200px){.topic-events-scroll>.col{flex-basis:calc((100% - 7.5rem) / 3)}}.event-hero h1{overflow-wrap:anywhere}.event-details-list{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.75rem 1rem;overflow-wrap:anywhere}.event-details-list dd{margin-bottom:0}.event-card-date{color:var(--bs-link-color);font-variant-numeric:tabular-nums}.event-calendar-group+.event-calendar-group{margin-top:var(--site-section-space)}.event-archive:last-child{border-block-end:1px solid var(--bs-border-color)}.event-archive>summary{cursor:pointer}.event-archive>summary::marker{color:var(--bs-link-color)}.event-archive-year{width:calc(100% - 2rem);vertical-align:middle}.event-archive[open]>.event-card-grid{padding-bottom:1.5rem}[data-bs-theme=light] .bg{background-color:#fff}[data-bs-theme=light] .chroma{background-color:#fff;-webkit-text-size-adjust:none}[data-bs-theme=light] .chroma .err{color:#000}[data-bs-theme=light] .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}[data-bs-theme=light] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}[data-bs-theme=light] .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}[data-bs-theme=light] .chroma .hl{background-color:#e5e5e5}[data-bs-theme=light] .chroma .lnt,[data-bs-theme=light] .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}[data-bs-theme=light] .chroma .line{display:flex}[data-bs-theme=light] .chroma .k,[data-bs-theme=light] .chroma .kc,[data-bs-theme=light] .chroma .kd,[data-bs-theme=light] .chroma .kn,[data-bs-theme=light] .chroma .kp,[data-bs-theme=light] .chroma .kr,[data-bs-theme=light] .chroma .kt{color:#a90d91}[data-bs-theme=light] .chroma .n{color:#000}[data-bs-theme=light] .chroma .na{color:#836c28}[data-bs-theme=light] .chroma .nc{color:#3f6e75}[data-bs-theme=light] .chroma .no,[data-bs-theme=light] .chroma .nd,[data-bs-theme=light] .chroma .ni,[data-bs-theme=light] .chroma .ne,[data-bs-theme=light] .chroma .nl,[data-bs-theme=light] .chroma .nn,[data-bs-theme=light] .chroma .nx,[data-bs-theme=light] .chroma .py,[data-bs-theme=light] .chroma .nt{color:#000}[data-bs-theme=light] .chroma .nb{color:#a90d91}[data-bs-theme=light] .chroma .bp{color:#5b269a}[data-bs-theme=light] .chroma .nv,[data-bs-theme=light] .chroma .vc,[data-bs-theme=light] .chroma .vg,[data-bs-theme=light] .chroma .vi,[data-bs-theme=light] .chroma .vm,[data-bs-theme=light] .chroma .nf,[data-bs-theme=light] .chroma .fm{color:#000}[data-bs-theme=light] .chroma .l,[data-bs-theme=light] .chroma .ld{color:#1c01ce}[data-bs-theme=light] .chroma .s,[data-bs-theme=light] .chroma .sa,[data-bs-theme=light] .chroma .sb{color:#c41a16}[data-bs-theme=light] .chroma .sc{color:#2300ce}[data-bs-theme=light] .chroma .dl,[data-bs-theme=light] .chroma .sd,[data-bs-theme=light] .chroma .s2,[data-bs-theme=light] .chroma .se,[data-bs-theme=light] .chroma .sh,[data-bs-theme=light] .chroma .si,[data-bs-theme=light] .chroma .sx,[data-bs-theme=light] .chroma .sr,[data-bs-theme=light] .chroma .s1,[data-bs-theme=light] .chroma .ss{color:#c41a16}[data-bs-theme=light] .chroma .m,[data-bs-theme=light] .chroma .mb,[data-bs-theme=light] .chroma .mf,[data-bs-theme=light] .chroma .mh,[data-bs-theme=light] .chroma .mi,[data-bs-theme=light] .chroma .il,[data-bs-theme=light] .chroma .mo{color:#1c01ce}[data-bs-theme=light] .chroma .o,[data-bs-theme=light] .chroma .ow,[data-bs-theme=light] .chroma .or{color:#000}[data-bs-theme=light] .chroma .c,[data-bs-theme=light] .chroma .ch,[data-bs-theme=light] .chroma .cm,[data-bs-theme=light] .chroma .c1,[data-bs-theme=light] .chroma .cs{color:#177500}[data-bs-theme=light] .chroma .cp,[data-bs-theme=light] .chroma .cpf{color:#633820}[data-bs-theme=dark] .bg{color:#e6edf3;background-color:#0d1117}[data-bs-theme=dark] .chroma{color:#e6edf3;background-color:#0d1117;-webkit-text-size-adjust:none}[data-bs-theme=dark] .chroma .err{color:#f85149}[data-bs-theme=dark] .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}[data-bs-theme=dark] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}[data-bs-theme=dark] .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}[data-bs-theme=dark] .chroma .hl{background-color:#6e7681}[data-bs-theme=dark] .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#737679}[data-bs-theme=dark] .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e7681}[data-bs-theme=dark] .chroma .line{display:flex}[data-bs-theme=dark] .chroma .k{color:#ff7b72}[data-bs-theme=dark] .chroma .kc{color:#79c0ff}[data-bs-theme=dark] .chroma .kd,[data-bs-theme=dark] .chroma .kn{color:#ff7b72}[data-bs-theme=dark] .chroma .kp{color:#79c0ff}[data-bs-theme=dark] .chroma .kr,[data-bs-theme=dark] .chroma .kt{color:#ff7b72}[data-bs-theme=dark] .chroma .nc{color:#f0883e;font-weight:700}[data-bs-theme=dark] .chroma .no{color:#79c0ff;font-weight:700}[data-bs-theme=dark] .chroma .nd{color:#d2a8ff;font-weight:700}[data-bs-theme=dark] .chroma .ni{color:#ffa657}[data-bs-theme=dark] .chroma .ne{color:#f0883e;font-weight:700}[data-bs-theme=dark] .chroma .nl{color:#79c0ff;font-weight:700}[data-bs-theme=dark] .chroma .nn{color:#ff7b72}[data-bs-theme=dark] .chroma .nx{color:#e6edf3}[data-bs-theme=dark] .chroma .py{color:#79c0ff}[data-bs-theme=dark] .chroma .nt{color:#7ee787}[data-bs-theme=dark] .chroma .nv,[data-bs-theme=dark] .chroma .vc,[data-bs-theme=dark] .chroma .vg,[data-bs-theme=dark] .chroma .vi,[data-bs-theme=dark] .chroma .vm{color:#79c0ff}[data-bs-theme=dark] .chroma .nf,[data-bs-theme=dark] .chroma .fm{color:#d2a8ff;font-weight:700}[data-bs-theme=dark] .chroma .l{color:#a5d6ff}[data-bs-theme=dark] .chroma .ld{color:#79c0ff}[data-bs-theme=dark] .chroma .s{color:#a5d6ff}[data-bs-theme=dark] .chroma .sa{color:#79c0ff}[data-bs-theme=dark] .chroma .sb,[data-bs-theme=dark] .chroma .sc{color:#a5d6ff}[data-bs-theme=dark] .chroma .dl{color:#79c0ff}[data-bs-theme=dark] .chroma .sd,[data-bs-theme=dark] .chroma .s2{color:#a5d6ff}[data-bs-theme=dark] .chroma .se,[data-bs-theme=dark] .chroma .sh{color:#79c0ff}[data-bs-theme=dark] .chroma .si,[data-bs-theme=dark] .chroma .sx{color:#a5d6ff}[data-bs-theme=dark] .chroma .sr{color:#79c0ff}[data-bs-theme=dark] .chroma .s1,[data-bs-theme=dark] .chroma .ss,[data-bs-theme=dark] .chroma .m,[data-bs-theme=dark] .chroma .mb,[data-bs-theme=dark] .chroma .mf,[data-bs-theme=dark] .chroma .mh,[data-bs-theme=dark] .chroma .mi,[data-bs-theme=dark] .chroma .il,[data-bs-theme=dark] .chroma .mo{color:#a5d6ff}[data-bs-theme=dark] .chroma .o,[data-bs-theme=dark] .chroma .ow,[data-bs-theme=dark] .chroma .or{color:#ff7b72;font-weight:700}[data-bs-theme=dark] .chroma .c,[data-bs-theme=dark] .chroma .ch,[data-bs-theme=dark] .chroma .cm,[data-bs-theme=dark] .chroma .c1{color:#8b949e;font-style:italic}[data-bs-theme=dark] .chroma .cs,[data-bs-theme=dark] .chroma .cp,[data-bs-theme=dark] .chroma .cpf{color:#8b949e;font-weight:700;font-style:italic}[data-bs-theme=dark] .chroma .gd{color:#ffa198;background-color:#490202}[data-bs-theme=dark] .chroma .ge{font-style:italic}[data-bs-theme=dark] .chroma .gr{color:#ffa198}[data-bs-theme=dark] .chroma .gh{color:#79c0ff;font-weight:700}[data-bs-theme=dark] .chroma .gi{color:#56d364;background-color:#0f5323}[data-bs-theme=dark] .chroma .go,[data-bs-theme=dark] .chroma .gp{color:#8b949e}[data-bs-theme=dark] .chroma .gs{font-weight:700}[data-bs-theme=dark] .chroma .gu{color:#79c0ff}[data-bs-theme=dark] .chroma .gt{color:#ff7b72}[data-bs-theme=dark] .chroma .gl{text-decoration:underline}[data-bs-theme=dark] .chroma .w{color:#6e7681}.technology-radar [hidden]{display:none!important}.technology-radar{scroll-margin-top:6rem}.radar-search-wrap{max-width:26rem}.radar-plot svg{display:block;width:100%;height:auto}.radar-node{cursor:pointer;outline:none}.radar-node circle{stroke:var(--bs-body-color);stroke-width:2}.radar-node:hover circle,.radar-node:focus circle,.radar-node[aria-pressed=true] circle{stroke:var(--bs-body-color);stroke-width:4}.radar-node text{fill:#fff;font-size:12px;font-weight:700;pointer-events:none}.radar-ring{fill:var(--bs-secondary-bg);stroke:var(--bs-secondary-color);stroke-width:1;pointer-events:none}.radar-ring:nth-child(2n){fill:var(--bs-tertiary-bg)}.radar-ring-label{fill:var(--bs-body-color);font-size:17px;font-weight:600;pointer-events:none;stroke:var(--bs-body-bg);stroke-width:4;paint-order:stroke}.radar-wedge-boundary{stroke:var(--bs-secondary-color);stroke-width:1}.radar-wedge-control{cursor:pointer;outline:none}.radar-wedge-control:hover .radar-wedge,.radar-wedge-control:focus-visible .radar-wedge,.radar-wedge-control[aria-pressed=true] .radar-wedge{fill-opacity:.16;stroke:var(--bs-link-color);stroke-width:3}.radar-wedge-label{fill:var(--bs-body-color);font-weight:600}.radar-wedge-control:hover .radar-wedge-label,.radar-wedge-control:focus-visible .radar-wedge-label,.radar-wedge-control[aria-pressed=true] .radar-wedge-label{fill:var(--bs-link-color);text-decoration:underline}.radar-swatch{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;margin-right:.5rem}.radar-kind-library{background-color:#2867b2}.radar-kind-language-framework{background-color:#9254a6}.radar-kind-tool-platform{background-color:#a74f18}.radar-kind-practice{background-color:#18765d}.radar-kind-data-format{background-color:#a3335c}.radar-detail{overflow-wrap:anywhere}.radar-detail .radar-item-name{font-size:1.1rem}.radar-detail details>summary{display:none}@media(max-width:575px){.radar-plot{overflow-x:auto}.radar-plot svg{min-width:32rem}}
