.site-frame{width:calc(100% - 64px);max-width:var(--content-width);margin-inline:auto}.skip-link{z-index:10;color:#fff;background:var(--color-ink);border-radius:4px;padding:12px 16px;text-decoration:none;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{border-bottom:1px solid var(--color-line);height:88px}.header-inner,.primary-nav,.site-footer{align-items:center;display:flex}.header-inner{justify-content:space-between;height:100%}.wordmark{letter-spacing:-.09em;font-size:1.7rem;font-weight:720;line-height:1;text-decoration:none}.wordmark span{color:var(--color-accent)}.primary-nav{gap:36px;font-size:.9rem;font-weight:560}.nav-link,.text-link{text-underline-offset:5px;text-decoration-color:#0000;transition:color .16s,text-decoration-color .16s}.nav-link:hover,.text-link:hover{color:var(--color-accent);text-decoration-color:currentColor}.nav-action,.button-primary{border:1px solid var(--color-accent);color:#fff;background:var(--color-accent);border-radius:5px;justify-content:center;align-items:center;gap:16px;min-height:46px;padding:0 18px;font-size:.9rem;font-weight:580;text-decoration:none;transition:background-color .16s,border-color .16s,transform .16s;display:inline-flex}.nav-action:hover,.button-primary:hover{border-color:var(--color-accent-hover);background:var(--color-accent-hover);transform:translateY(-1px)}.nav-action span,.button-primary span{font-size:1rem}.nav-action.is-current{border-color:var(--color-line);color:var(--color-ink);background:0 0}.intro-section{grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);align-items:center;gap:clamp(24px,4vw,64px);min-height:650px;padding-block:64px 74px;display:grid}.intro-copy{z-index:1;padding-block:16px;position:relative}.eyebrow{color:var(--color-muted);letter-spacing:.105em;text-transform:uppercase;align-items:center;gap:11px;margin:0;font-size:.7rem;font-weight:650;line-height:1.4;display:flex}.eyebrow-line{background:var(--color-accent);flex:none;width:22px;height:1px}.intro-copy h1,.placeholder-page h1{color:var(--color-ink);letter-spacing:-.075em;margin:27px 0 22px;font-size:clamp(3.2rem,5.3vw,5rem);font-weight:590;line-height:.99}.intro-copy h1 span{color:var(--color-accent)}.intro-description{max-width:465px;color:var(--color-muted);margin:0;font-size:clamp(1rem,1.4vw,1.13rem);line-height:1.7}.intro-actions{align-items:center;gap:25px;margin-top:32px;display:flex}.text-link{font-size:.92rem;font-weight:560}.development-note{max-width:420px;color:var(--color-muted);margin:25px 0 0;font-size:.78rem;line-height:1.6}.ecosystem-figure{width:100%;max-width:570px;margin:0 0 0 auto}.ecosystem-map{aspect-ratio:1.18;background:radial-gradient(at 50% 49%,#d4e39461,#0000 42%),linear-gradient(145deg,#eff2eb,#f9faf7 65%);border:1px solid #e4e8e2;border-radius:48% 52% 46% 54%/49% 46% 54% 51%;width:100%;position:relative;overflow:hidden}.ecosystem-map:before,.ecosystem-map:after{content:"";border:1px solid #285c4c1a;border-radius:50%;position:absolute;inset:9%}.ecosystem-map:after{border-color:#285c4c14;inset:19%}.map-connections{fill:none;stroke:#285c4c6b;stroke-width:1.1px;width:94%;height:94%;position:absolute;inset:3%;overflow:visible}.map-connections circle{fill:var(--color-accent);stroke:none}.map-connections .connection-secondary{stroke:#285c4c2b;stroke-dasharray:3 6}.map-orbit,.map-core{text-align:center;border-radius:999px;place-items:center;display:grid;position:absolute}.map-orbit{color:#45574e;background:#ffffffdb;border:1px solid #dbe2d9;min-height:41px;padding:0 16px;font-size:.79rem;font-weight:560;box-shadow:0 5px 18px #23382d09}.orbit-top{top:9%;left:50%;transform:translate(-50%)}.orbit-left{top:43%;left:3%}.orbit-right{top:43%;right:2%}.orbit-bottom{bottom:7%;left:50%;transform:translate(-50%)}.map-core{aspect-ratio:1;color:#fff;background:var(--color-accent);letter-spacing:-.02em;border:1px solid #ffffff7a;width:130px;font-size:1rem;font-weight:600;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 13px 35px #1c4c3c33}.ecosystem-figure figcaption{color:var(--color-muted);text-align:center;margin-top:19px;font-size:.8rem}.approach-section{border-top:1px solid var(--color-line);grid-template-columns:minmax(0,.9fr) minmax(280px,.6fr);column-gap:clamp(42px,10vw,145px);padding:88px 0 92px;display:grid}.approach-heading h2{letter-spacing:-.055em;max-width:520px;margin:21px 0 0;font-size:clamp(2rem,3.1vw,2.8rem);font-weight:550;line-height:1.1}.approach-body{align-self:end;padding-bottom:4px}.approach-body p{max-width:390px;color:var(--color-muted);margin:0 0 21px;font-size:.97rem;line-height:1.75}.approach-body .text-link span{margin-left:7px}.concept-sequence{border-top:1px solid var(--color-line);grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:75px;padding:0;list-style:none;display:grid}.concept-item{padding:22px 22px 0 0;position:relative}.concept-item+.concept-item{border-left:1px solid var(--color-line);padding-left:23px}.concept-mark{background:var(--color-accent);width:16px;height:2px;margin-bottom:28px;display:block}.concept-item h3{letter-spacing:-.025em;margin:0 0 8px;font-size:1.04rem;font-weight:600}.concept-item p{color:var(--color-muted);margin:0;font-size:.85rem;line-height:1.55}.placeholder-page{flex-direction:column;justify-content:center;align-items:flex-start;min-height:min(680px,100dvh - 170px);padding-block:80px;display:flex}.placeholder-page h1{max-width:790px;font-size:clamp(3rem,6.8vw,6rem)}.placeholder-page>p:not(.eyebrow){max-width:610px;color:var(--color-muted);margin:0 0 30px;font-size:1.08rem;line-height:1.75}.site-footer{border-top:1px solid var(--color-line);justify-content:space-between;gap:24px;min-height:92px}.footer-wordmark{font-size:1.25rem}.site-footer p,.site-footer p{margin:0}@media (width<=900px){.site-frame{width:calc(100% - 48px)}.intro-section{grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);gap:25px;min-height:590px}.intro-copy h1{font-size:clamp(3rem,6.2vw,4.5rem)}.ecosystem-map{aspect-ratio:.98}.map-orbit{min-height:37px;padding-inline:12px;font-size:.7rem}.orbit-left{left:0}.orbit-right{right:0}.map-core{width:110px}}@media (width<=680px){.site-frame{width:calc(100% - 40px)}.site-header{height:72px}.primary-nav{gap:17px;font-size:.82rem}.nav-action{gap:9px;min-height:42px;padding-inline:13px}.intro-section{grid-template-columns:1fr;gap:42px;min-height:0;padding-block:67px 56px}.intro-copy,.ecosystem-figure{min-width:0}.intro-description,.development-note{max-width:100%}.intro-copy h1{margin-top:22px;font-size:clamp(3.1rem,11.8vw,4.6rem)}.intro-copy h1 br{display:none}.intro-copy h1 span{display:block}.intro-description{max-width:470px;font-size:1rem}.intro-actions{flex-wrap:wrap;gap:18px 22px;margin-top:26px}.development-note{margin-top:19px}.ecosystem-figure{max-width:490px;margin-inline:auto}.ecosystem-map{aspect-ratio:1.05}.approach-section{grid-template-columns:1fr;row-gap:22px;padding-block:61px 67px}.approach-heading h2{max-width:480px}.approach-body{align-self:auto}.concept-sequence{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:27px;margin-top:45px}.concept-item{padding-top:17px}.concept-item+.concept-item{padding-left:15px}.concept-item:nth-child(3){border-left:0;padding-left:0}.concept-mark{margin-bottom:17px}.placeholder-page{min-height:min(620px,100dvh - 145px);padding-block:70px}.placeholder-page h1{font-size:clamp(3rem,12vw,4.8rem)}.placeholder-page>p:not(.eyebrow){font-size:1rem}}@media (width<=430px){.site-frame{width:calc(100% - 32px)}.wordmark{font-size:1.5rem}.primary-nav{gap:0}.nav-link{display:none}.intro-copy h1{font-size:clamp(2.55rem,11vw,3.35rem)}.ecosystem-map{aspect-ratio:.98}.map-orbit{min-height:34px;padding-inline:10px;font-size:.64rem}.orbit-left{left:-1%}.orbit-right{right:-1%}.map-core{width:94px;font-size:.86rem}.site-footer{flex-wrap:wrap;justify-content:space-between;gap:7px 15px;min-height:82px;padding-block:18px}.site-footer p{order:3;width:100%}}.explore-page{padding:66px 0 88px}.explore-intro{max-width:760px;padding-bottom:41px}.explore-intro h1{color:var(--color-ink);letter-spacing:-.075em;margin:21px 0 13px;font-size:clamp(3rem,5.5vw,4.7rem);font-weight:590;line-height:1}.explore-intro>p:last-child{max-width:620px;color:var(--color-muted);margin:0;font-size:1.02rem;line-height:1.7}.explore-toolbar{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);grid-template-columns:minmax(230px,.85fr) minmax(0,1.9fr) auto;grid-template-areas:"search category sort";align-items:end;gap:24px;padding:23px 0 25px;display:grid}.search-control{grid-area:search;min-width:0}.search-control label,.sort-control label,.category-control legend{color:var(--color-ink);margin-bottom:9px;font-size:.79rem;font-weight:600;display:block}.search-input-wrap input,.sort-control select{width:100%;min-height:46px;color:var(--color-ink);background:var(--color-surface);font:inherit;border:1px solid #cbd5ce;border-radius:5px;font-size:.87rem}.search-input-wrap input{padding:0 13px}.search-input-wrap input::placeholder{color:#78847d;opacity:1}.search-input-wrap input:focus-visible,.sort-control select:focus-visible{border-color:var(--color-accent);outline-color:#b05636}.category-control{border:0;grid-area:category;min-width:0;margin:0;padding:0}.category-options{flex-wrap:wrap;gap:7px;display:flex}.category-option{color:#45574e;cursor:pointer;background:0 0;border:1px solid #cbd5ce;border-radius:999px;min-height:36px;padding:0 11px;font-size:.75rem;font-weight:540;transition:color .15s,border-color .15s,background-color .15s}.category-option:hover{border-color:var(--color-accent);color:var(--color-accent)}.category-option[aria-pressed=true]{border-color:var(--color-accent);color:#fff;background:var(--color-accent)}.sort-control{grid-area:sort;min-width:145px}.sort-control select{cursor:pointer;padding:0 32px 0 12px}.explore-results-heading{justify-content:space-between;align-items:center;gap:16px;min-height:64px;display:flex}.results-count,.sort-summary{color:var(--color-muted);margin:0;font-size:.82rem}.results-count{color:var(--color-ink);font-weight:560}.technology-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.technology-grid>li{min-width:0}.technology-card{border:1px solid var(--color-line);background:var(--color-surface);border-radius:7px;flex-direction:column;height:100%;min-height:266px;padding:20px 21px 17px;transition:border-color .16s;display:flex}.technology-card:hover{border-color:#a8b9ad}.technology-card-meta{flex-wrap:wrap;align-items:center;gap:8px;min-height:26px;display:flex}.technology-card-meta>span:first-child{color:var(--color-accent);background:#e9f0eb;border-radius:3px;padding:5px 8px;font-size:.67rem;font-weight:620}.technology-card-type{color:var(--color-muted);font-size:.7rem}.technology-card-title{color:var(--color-ink);letter-spacing:-.045em;overflow-wrap:anywhere;margin:18px 0 9px;font-size:1.18rem;font-weight:610;line-height:1.22}.technology-card-description{color:var(--color-muted);margin:0;font-size:.85rem;line-height:1.62}.technology-card-ecosystem{color:#45574e;flex-wrap:wrap;gap:7px;margin:auto 0 0;padding-top:17px;font-size:.74rem;line-height:1.5;display:flex}.technology-card-ecosystem span{color:var(--color-muted)}.technology-card-link{min-height:42px;color:var(--color-accent);text-underline-offset:4px;align-self:flex-start;align-items:center;gap:8px;margin-top:auto;padding-top:14px;font-size:.8rem;font-weight:620;text-decoration-color:#0000;transition:color .15s,text-decoration-color .15s;display:inline-flex}.technology-card-ecosystem+.technology-card-link{margin-top:0}.technology-card-link:hover{color:var(--color-accent-hover);text-decoration-color:currentColor}.explore-pagination{justify-content:center;align-items:center;gap:22px;margin-top:34px;display:flex}.pagination-button{border:1px solid var(--color-line);min-width:100px;min-height:44px;color:var(--color-ink);background:var(--color-surface);font:inherit;cursor:pointer;border-radius:5px;padding:0 14px;font-size:.82rem;font-weight:560;transition:border-color .15s,color .15s,background-color .15s}.pagination-button:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.pagination-button:disabled{color:#78847d;cursor:not-allowed;background:#eff2ee}.pagination-status{min-width:93px;color:var(--color-muted);text-align:center;font-size:.82rem}.explore-empty-state{border-top:1px solid var(--color-line);padding:52px 0 64px}.explore-empty-state h2{max-width:620px;color:var(--color-ink);letter-spacing:-.055em;margin:21px 0 10px;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:550;line-height:1.12}.explore-empty-state>p:not(.eyebrow){max-width:530px;color:var(--color-muted);margin:0;font-size:.95rem;line-height:1.7}.empty-state-actions{flex-wrap:wrap;gap:11px 21px;margin-top:23px;display:flex}.text-button{min-height:42px;color:var(--color-accent);font:inherit;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:0;font-size:.84rem;font-weight:600;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.text-button:hover{text-decoration-color:currentColor}@media (width<=1000px){.explore-toolbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"search sort""category category";align-items:end;gap:21px 18px}.technology-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.explore-page{padding:52px 0 67px}.explore-intro{padding-bottom:30px}.explore-intro h1{font-size:clamp(2.65rem,10vw,4rem)}.explore-intro>p:last-child{font-size:.96rem}.explore-toolbar{grid-template-columns:minmax(0,1fr);grid-template-areas:"search""category""sort";gap:20px;padding-block:21px}.sort-control{width:min(100%,230px)}.explore-results-heading{min-height:58px}.technology-grid{grid-template-columns:minmax(0,1fr);gap:10px}.technology-card{min-height:235px;padding:18px 18px 14px}.explore-pagination{gap:12px}.pagination-button{min-width:84px}}@media (width<=390px){.explore-results-heading{flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;padding-block:12px}.category-option{min-height:40px;padding-inline:10px}}.compare-page{padding:66px 0 90px}.compare-intro{max-width:790px;padding-bottom:41px}.compare-intro h1{color:var(--color-ink);letter-spacing:-.075em;margin:21px 0 14px;font-size:clamp(3rem,5.5vw,4.7rem);font-weight:590;line-height:1}.compare-intro>p:last-child{max-width:660px;color:var(--color-muted);margin:0;font-size:1.02rem;line-height:1.7}.nav-compare[aria-current=page],.nav-ecosystem[aria-current=page]{color:var(--color-accent);font-weight:650}.technology-compare-link{min-height:44px;color:var(--color-accent);text-underline-offset:5px;align-items:center;gap:8px;margin-top:17px;font-size:.87rem;font-weight:600;text-decoration-color:#0000;transition:text-decoration-color .15s;display:inline-flex}.technology-compare-link:hover{text-decoration-color:currentColor}.technology-ecosystem-link{min-height:44px;color:var(--color-accent);text-underline-offset:5px;align-items:center;gap:8px;margin:13px 18px 0 0;font-size:.87rem;font-weight:600;text-decoration-color:#0000;transition:text-decoration-color .15s;display:inline-flex}.technology-ecosystem-link:hover{text-decoration-color:currentColor}.compare-url-notice{border-left:2px solid var(--color-accent);color:var(--color-ink);background:#eef2ed;margin-bottom:24px;padding:13px 16px;font-size:.84rem;line-height:1.6}.compare-url-notice p{margin:0}.compare-url-notice p+p{margin-top:5px}.compare-selector{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);padding:25px 0 28px}.compare-selector-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.compare-selector-heading h2{letter-spacing:-.04em;margin:0;font-size:1.25rem;font-weight:600}.compare-selector-heading p{color:var(--color-muted);margin:7px 0 0;font-size:.84rem;line-height:1.55}.compare-clear-button{flex:none}.comparison-selection{flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none;display:flex}.comparison-selection li{min-height:38px;color:var(--color-ink);background:var(--color-surface);border:1px solid #cbd5ce;border-radius:4px;align-items:center;gap:10px;padding:0 7px 0 12px;font-size:.81rem;font-weight:560;display:inline-flex}.comparison-selection li span{overflow-wrap:anywhere}.comparison-selection button{width:30px;height:30px;color:var(--color-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:3px;flex:none;place-items:center;font-size:1.2rem;line-height:1;display:grid}.comparison-selection button:hover{color:var(--color-accent);background:#eef2ed}.compare-search-control{grid-template-columns:minmax(220px,.42fr) minmax(0,1fr);align-items:center;gap:8px 20px;margin-top:21px;display:grid}.compare-search-control label{color:var(--color-ink);font-size:.8rem;font-weight:600}.compare-search-control input{width:100%;min-height:46px;color:var(--color-ink);background:var(--color-surface);font:inherit;border:1px solid #cbd5ce;border-radius:5px;padding:0 13px;font-size:.87rem}.compare-search-control input:focus-visible{border-color:var(--color-accent);outline-color:#b05636}.compare-search-control input:disabled{color:var(--color-muted);cursor:not-allowed;background:#eff2ee}.compare-search-help,.compare-limit-message{color:var(--color-muted);grid-column:2;margin:-2px 0 0;font-size:.74rem;line-height:1.5}.compare-limit-message{color:var(--color-ink)}.compare-search-results{border-top:1px solid var(--color-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:20px 0 0;padding:0;list-style:none;display:grid}.compare-search-results li{border-bottom:1px solid var(--color-line);min-width:0}.compare-search-results button{width:100%;min-height:66px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-content:center;gap:4px;padding:11px 58px 11px 0;display:grid;position:relative}.compare-search-results button:hover .compare-result-name{color:var(--color-accent);text-underline-offset:4px;text-decoration:underline}.compare-search-results button:disabled{color:var(--color-muted);cursor:not-allowed}.compare-result-name{color:var(--color-ink);overflow-wrap:anywhere;font-size:.87rem;font-weight:600;line-height:1.35}.compare-result-meta{color:var(--color-muted);font-size:.72rem}.compare-result-action{color:var(--color-accent);font-size:.76rem;font-weight:600;position:absolute;top:50%;right:3px;transform:translateY(-50%)}.compare-selector-empty{color:var(--color-muted);margin:18px 0 0;font-size:.87rem}.compare-prompt{border-bottom:1px solid var(--color-line);padding:43px 0 50px}.compare-prompt h2{color:var(--color-ink);letter-spacing:-.055em;margin:16px 0 10px;font-size:clamp(1.8rem,3.3vw,2.5rem);font-weight:560;line-height:1.12}.compare-prompt>p:last-child{max-width:620px;color:var(--color-muted);margin:0;font-size:.92rem;line-height:1.65}.compare-url-hint{color:var(--color-muted);margin:20px 0 0;font-size:.76rem;line-height:1.55}.comparison-results{padding-top:43px}.comparison-results-heading{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:21px;display:flex}.comparison-results-heading h2{color:var(--color-ink);letter-spacing:-.055em;margin:14px 0 0;font-size:clamp(1.8rem,3.2vw,2.45rem);font-weight:560;line-height:1.1}.comparison-results-heading>p{max-width:330px;color:var(--color-muted);margin:0;font-size:.78rem;line-height:1.6}.comparison-scroll-region{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);background:var(--color-surface);scrollbar-color:#9aa89e #eef2ed;scrollbar-width:thin;max-width:100%;overflow:auto}.comparison-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:48rem;color:var(--color-ink);font-size:.83rem;line-height:1.55}.comparison-table th,.comparison-table td{border-bottom:1px solid var(--color-line);text-align:left;vertical-align:top;overflow-wrap:anywhere;min-width:0;padding:15px 16px}.comparison-table thead th{z-index:2;background:#f4f6f2;position:sticky;top:0}.comparison-table thead th:first-child,.comparison-table tbody th{z-index:1;background:#f4f6f2;width:12rem;position:sticky;left:0}.comparison-table thead th:first-child{z-index:3}.comparison-table tbody th{color:var(--color-ink);font-size:.77rem;font-weight:610}.comparison-table tbody tr:last-child th,.comparison-table tbody tr:last-child td{border-bottom:0}.comparison-technology-heading{min-height:52px;color:var(--color-ink);text-underline-offset:4px;align-content:center;gap:5px;text-decoration-color:#0000;display:grid}.comparison-technology-heading:hover{color:var(--color-accent);text-decoration-color:currentColor}.comparison-technology-heading span{letter-spacing:-.025em;overflow-wrap:anywhere;font-size:.94rem;font-weight:650;line-height:1.3}.comparison-technology-heading small{color:var(--color-muted);font-size:.69rem;font-weight:500;line-height:1.4}.comparison-cell-shared{background:#fbfcfa}.comparison-cell-different{background:#f4f7f3;border-left:2px solid #a9b8ae!important}.comparison-description{max-width:34ch;margin:0;line-height:1.6}.comparison-long-description summary{max-width:36ch;color:var(--color-ink);cursor:pointer;line-height:1.6}.comparison-long-description summary::marker{color:var(--color-accent)}.comparison-long-description p{max-width:36ch;color:var(--color-muted);margin:10px 0 0;line-height:1.6}.comparison-value-list,.comparison-link-list{gap:7px;margin:0;padding-left:17px;display:grid}.comparison-link-list a{color:var(--color-accent);text-underline-offset:3px;font-weight:560;text-decoration-color:#0000}.comparison-link-list a:hover{text-decoration-color:currentColor}.comparison-not-listed{color:var(--color-muted);font-size:.78rem}.ecosystem-page{padding:66px 0 96px}.ecosystem-intro{max-width:790px;padding-bottom:42px}.ecosystem-intro h1{color:var(--color-ink);letter-spacing:-.075em;text-wrap:balance;margin:25px 0 18px;font-size:clamp(3rem,7vw,5.4rem);font-weight:570;line-height:.99}.ecosystem-intro>p:last-child{max-width:630px;color:var(--color-muted);margin:0;font-size:1.03rem;line-height:1.7}.ecosystem-picker{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);padding:28px 0 30px}.ecosystem-picker-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px;display:flex}.ecosystem-picker-heading h2,.ecosystem-start-state h2,.ecosystem-focus h2{color:var(--color-ink);letter-spacing:-.055em;overflow-wrap:anywhere;margin:13px 0 0;font-size:clamp(1.65rem,3vw,2.2rem);font-weight:570;line-height:1.1}.ecosystem-picker-heading>a{min-height:44px;color:var(--color-accent);align-items:center;font-size:.83rem;font-weight:600;text-decoration-color:#0000;display:inline-flex}.ecosystem-picker-heading>a:hover{text-decoration-color:currentColor}.ecosystem-picker>label{color:var(--color-ink);margin-bottom:8px;font-size:.78rem;font-weight:600;display:block}.ecosystem-picker input[type=search]{width:min(100%,610px);min-height:48px;color:var(--color-ink);background:var(--color-surface);font:inherit;border:1px solid #c7d0c8;border-radius:5px;padding:0 14px}.ecosystem-picker input[type=search]:focus-visible{outline-offset:2px;outline:3px solid #527d6d}.ecosystem-search-results{border-top:1px solid var(--color-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px;width:min(100%,900px);margin:18px 0 0;padding:0;list-style:none;display:grid}.ecosystem-search-results li{border-bottom:1px solid var(--color-line);min-width:0}.ecosystem-search-results a{min-height:62px;color:var(--color-ink);align-content:center;gap:4px;text-decoration:none;display:grid}.ecosystem-search-results a:hover span{color:var(--color-accent);text-underline-offset:3px;text-decoration:underline}.ecosystem-search-results span{overflow-wrap:anywhere;font-size:.87rem;font-weight:620}.ecosystem-search-results small{color:var(--color-muted);font-size:.72rem}.ecosystem-search-empty,.ecosystem-notice{color:var(--color-muted);margin:13px 0 0;font-size:.84rem;line-height:1.6}.api-loading-state,.api-error-state,.technology-request-state{border:1px solid var(--color-line);color:var(--color-muted);background:var(--color-surface);margin:28px 0;padding:22px 24px;line-height:1.6}.api-error-state p,.technology-request-state p{margin:0 0 8px}.ecosystem-search-empty[role=alert] p{margin:0 0 5px}.ecosystem-notice{border-left:2px solid var(--color-accent);color:var(--color-ink);background:#eef2ed;padding:14px 16px}.ecosystem-start-state{max-width:720px;padding:54px 0 30px}.ecosystem-start-state h2{margin-top:17px}.ecosystem-start-state>p:last-child{max-width:590px;color:var(--color-muted);margin:12px 0 0;font-size:.93rem;line-height:1.65}.ecosystem-exploration{padding-top:36px}.ecosystem-relationship-map{padding:30px 0 10px}.ecosystem-map-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px;display:flex}.ecosystem-map-heading h2{color:var(--color-ink);letter-spacing:-.045em;margin:10px 0 0;font-size:clamp(1.4rem,2.5vw,1.8rem);font-weight:580}.ecosystem-map-heading>p{max-width:320px;color:var(--color-muted);margin:0 0 2px;font-size:.76rem;line-height:1.55}.ecosystem-map-scroll{border:1px solid var(--color-line);scrollbar-color:#9aa79e #edf0eb;background:#f7f8f5;overflow:auto}.ecosystem-map-scroll:focus-visible{outline-offset:3px;outline:3px solid #527d6d}.ecosystem-graph-canvas{width:100%;min-width:900px;position:relative;overflow:hidden}.ecosystem-graph-edges{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ecosystem-graph-edge{fill:none;stroke:#97a39a;stroke-width:1.6px;vector-effect:non-scaling-stroke}.ecosystem-graph-edge.is-directional{stroke:#587564}.ecosystem-graph-edges marker path{fill:#587564}.ecosystem-graph-edge-label-bg{fill:#f7f8f5;stroke:#d9dfd8;stroke-width:1px}.ecosystem-graph-edge-label{fill:#43574b;font-family:inherit;font-size:12px;font-weight:560}.ecosystem-graph-node{z-index:1;width:190px;position:absolute;transform:translate(-50%,-50%)}.ecosystem-graph-node.is-focused{z-index:2;width:218px}.ecosystem-graph-node-body{width:100%;min-height:74px;color:var(--color-ink);text-align:left;overflow-wrap:anywhere;background:#fff;border:1px solid #cbd4cd;border-radius:5px;flex-direction:column;justify-content:center;gap:5px;padding:12px 14px;text-decoration:none;display:flex}button.ecosystem-graph-node-body{font:inherit;cursor:pointer;transition:border-color .14s,background-color .14s,transform .14s}button.ecosystem-graph-node-body:hover{background:#fbfcfa;border-color:#668371;transform:translateY(-2px)}button.ecosystem-graph-node-body:focus-visible{outline-offset:3px;outline:3px solid #527d6d}.ecosystem-graph-node.is-focused .ecosystem-graph-node-body{color:#fff;text-align:center;background:#274237;border-color:#405c4d;min-height:88px}.ecosystem-graph-node-name{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.86rem;font-weight:650;line-height:1.3;display:-webkit-box;overflow:hidden}.ecosystem-graph-node-meta{color:var(--color-muted);text-overflow:ellipsis;-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:.68rem;line-height:1.35;display:-webkit-box;overflow:hidden}.ecosystem-graph-node.is-focused .ecosystem-graph-node-meta{color:#dce7df}.ecosystem-map-empty{border:1px solid var(--color-line);color:var(--color-muted);background:#f7f8f5;margin:0;padding:24px;font-size:.86rem;line-height:1.6}.ecosystem-focus{border-bottom:1px solid var(--color-line);grid-template-columns:minmax(0,1fr) minmax(160px,.35fr);align-items:end;gap:32px;padding:27px 0 31px;display:grid}.ecosystem-focus h2{margin-top:12px;font-size:clamp(2rem,4vw,3.2rem)}.ecosystem-focus>div>p:not(.eyebrow){max-width:700px;color:var(--color-muted);margin:12px 0 0;font-size:.92rem;line-height:1.65}.ecosystem-focus .technology-ecosystem-link{margin-top:10px}.ecosystem-focus-meta{color:var(--color-muted);text-align:right;margin:0 0 4px;font-size:.78rem;line-height:1.55}.ecosystem-filters{border:0;flex-wrap:wrap;gap:8px 10px;margin:26px 0 3px;padding:0;display:flex}.ecosystem-filters legend{width:100%;color:var(--color-ink);margin-bottom:9px;font-size:.79rem;font-weight:650}.ecosystem-filters label{border:1px solid var(--color-line);min-height:42px;color:var(--color-ink);background:var(--color-surface);cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:0 12px;font-size:.76rem;display:inline-flex}.ecosystem-filters input{width:16px;height:16px;accent-color:var(--color-accent)}.ecosystem-filter-empty{border-top:1px solid var(--color-line);padding-block:26px}.relationship-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 42px;padding-top:17px;display:grid}.relationship-group{min-width:0}.relationship-group h3{color:var(--color-ink);letter-spacing:-.025em;margin:0 0 6px;font-size:1.05rem;font-weight:630}.relationship-group>p,.relationship-intro{color:var(--color-muted);margin:0 0 10px;font-size:.77rem;line-height:1.55}.relationship-group .relation-list a{grid-template-columns:22px minmax(0,1fr);column-gap:6px}.relationship-connector{color:var(--color-accent);grid-row:1/span 3;align-self:center;font-size:1.1rem}.relationship-group .relation-description,.relationship-group .relation-type{grid-column:2}.relationship-group .relation-description{font-size:.76rem}.relationship-group .relation-type{color:var(--color-muted);font-size:.7rem}.relationship-unavailable{border-left:2px solid var(--color-line);color:var(--color-muted);background:#f2f4f0;margin:16px 0 0;padding:12px 14px;font-size:.79rem;line-height:1.55}.nav-ecosystem[aria-current=page]{color:var(--color-accent);font-weight:650}@media (width<=680px){.ecosystem-page{padding:52px 0 68px}.ecosystem-intro{padding-bottom:31px}.ecosystem-intro h1{font-size:clamp(2.65rem,10vw,4rem)}.ecosystem-intro>p:last-child{font-size:.96rem}.ecosystem-focus{grid-template-columns:minmax(0,1fr);gap:7px}.ecosystem-focus-meta{text-align:left}.ecosystem-map-heading{flex-direction:column;align-items:flex-start;gap:8px}.ecosystem-map-heading>p{max-width:100%}.relationship-groups{grid-template-columns:minmax(0,1fr);gap:20px}}@media (width<=430px){.ecosystem-search-results{grid-template-columns:minmax(0,1fr)}.ecosystem-picker-heading{flex-direction:column;align-items:flex-start;gap:8px}.primary-nav .nav-link.nav-compare,.primary-nav .nav-link.nav-ecosystem{white-space:nowrap;align-items:center;min-height:42px;margin-left:10px;font-size:.72rem;display:inline-flex}}@media (width<=680px){.compare-page{padding:52px 0 68px}.compare-intro{padding-bottom:30px}.compare-intro h1{font-size:clamp(2.65rem,10vw,4rem)}.compare-intro>p:last-child{font-size:.96rem}.compare-selector-heading{flex-direction:column;gap:10px}.compare-clear-button{align-self:flex-start}.compare-search-control{grid-template-columns:minmax(0,1fr);gap:8px}.compare-search-help,.compare-limit-message{grid-column:1}.compare-search-results{grid-template-columns:minmax(0,1fr);gap:0}.comparison-results-heading{flex-direction:column;align-items:flex-start;gap:12px}.comparison-table{min-width:45rem}.comparison-table thead th:first-child,.comparison-table tbody th{width:9rem}.comparison-table th,.comparison-table td{padding:12px 13px}.technology-compare-link{margin-top:13px}}@media (width<=430px){.primary-nav{gap:0}.nav-link.nav-compare{align-items:center;min-height:42px;margin-left:12px;font-size:.8rem;display:inline-flex}.compare-intro h1{font-size:clamp(2.45rem,10.5vw,3.25rem)}.comparison-table{min-width:42rem}}.technology-detail{padding:33px 0 96px}.detail-breadcrumb{min-height:44px;color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:.82rem;display:flex}.detail-breadcrumb a{min-height:42px;color:var(--color-accent);text-underline-offset:4px;align-items:center;gap:8px;font-weight:600;text-decoration-color:#0000;display:inline-flex}.detail-breadcrumb a:hover{text-decoration-color:currentColor}.detail-breadcrumb [aria-current=page]{max-width:min(58vw,560px);color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.technology-detail-header{border-bottom:1px solid var(--color-line);grid-template-columns:minmax(0,1.4fr) minmax(230px,.6fr);align-items:end;gap:clamp(36px,8vw,110px);padding:50px 0 54px;display:grid}.technology-identity,.technology-placement{min-width:0}.technology-identity h1,.technology-not-found h1{max-width:850px;color:var(--color-ink);letter-spacing:-.078em;overflow-wrap:anywhere;margin:22px 0 16px;font-size:clamp(3.2rem,7.6vw,6.8rem);font-weight:590;line-height:.99}.technology-identity h1.technology-detail-title-long{overflow-wrap:normal;font-size:clamp(3rem,4.5vw,4.2rem);line-height:1.06}.technology-detail-description{max-width:690px;color:var(--color-muted);overflow-wrap:anywhere;margin:0;font-size:clamp(1.05rem,1.7vw,1.22rem);line-height:1.65}.technology-placement{border-left:1px solid var(--color-line);padding:4px 0 4px 25px}.technology-placement h2{letter-spacing:-.035em;margin:15px 0 18px;font-size:1.14rem;font-weight:600}.placement-sequence{gap:0;margin:0;padding:0;list-style:none;display:grid}.placement-sequence li{min-height:55px;color:var(--color-ink);overflow-wrap:anywhere;align-content:center;gap:3px;padding:8px 0;font-size:.9rem;font-weight:560;display:grid}.placement-sequence li+li{border-top:1px solid var(--color-line)}.placement-sequence li span{color:var(--color-muted);font-size:.71rem;font-weight:500}.technology-detail-content{grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:clamp(42px,8vw,108px);display:grid}.detail-primary-column,.detail-secondary-column{min-width:0}.detail-section{border-bottom:1px solid var(--color-line);padding:43px 0 46px}.detail-section-heading h2{color:var(--color-ink);letter-spacing:-.06em;overflow-wrap:anywhere;margin:14px 0 18px;font-size:clamp(1.65rem,2.7vw,2.2rem);font-weight:570;line-height:1.12}.detail-context{color:var(--color-muted);overflow-wrap:anywhere;margin:0;font-size:.97rem;line-height:1.72}.technology-facts{flex-wrap:wrap;gap:15px 33px;margin:26px 0 0;display:flex}.technology-facts div{min-width:95px}.technology-facts dt{color:var(--color-muted);margin-bottom:5px;font-size:.72rem}.technology-facts dd{color:var(--color-ink);overflow-wrap:anywhere;margin:0;font-size:.85rem;font-weight:570}.use-case-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0;padding:0;list-style:none;display:grid}.use-case-list li{border-top:1px solid var(--color-line);min-width:0;color:var(--color-ink);overflow-wrap:anywhere;padding:13px 0;font-size:.87rem;line-height:1.55}.detail-empty-state{color:var(--color-muted);margin:0;padding:16px 0 3px;font-size:.88rem;line-height:1.65}.relation-list,.resource-list{margin:0;padding:0;list-style:none}.relation-list li,.resource-list li{border-top:1px solid var(--color-line);min-width:0}.relation-list a,.resource-list a{align-content:center;gap:5px;min-height:86px;padding:13px 32px 13px 0;text-decoration:none;display:grid;position:relative}.relation-list a:hover .relation-name,.resource-list a:hover>span:first-child{color:var(--color-accent)}.relation-name{color:var(--color-ink);letter-spacing:-.025em;overflow-wrap:anywhere;font-size:.98rem;font-weight:600;line-height:1.35;transition:color .15s}.relation-description{color:var(--color-muted);overflow-wrap:anywhere;font-size:.78rem;line-height:1.5}.relation-type,.resource-type{color:var(--color-muted);font-size:.69rem;line-height:1.45}.relation-arrow{color:var(--color-accent);font-size:.94rem;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.resource-list a{min-height:69px}.resource-list a>span:first-child{color:var(--color-ink);text-underline-offset:4px;font-size:.85rem;font-weight:580;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .15s,text-decoration-color .15s}.resource-list a:hover>span:first-child{text-decoration-color:currentColor}.technology-not-found{flex-direction:column;justify-content:center;align-items:flex-start;min-height:min(690px,100dvh - 180px);padding:72px 0;display:flex}.technology-not-found h1{max-width:780px;font-size:clamp(3rem,7vw,5.8rem)}.technology-not-found>p:not(.eyebrow){max-width:560px;color:var(--color-muted);margin:0 0 28px;font-size:1rem;line-height:1.7}@media (width<=820px){.technology-detail-header{grid-template-columns:minmax(0,1fr) minmax(200px,.62fr);gap:34px}.technology-detail-content{grid-template-columns:minmax(0,1fr);gap:0}.detail-secondary-column{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;display:grid}.resources-section{grid-column:1/-1}}@media (width<=600px){.technology-detail{padding:23px 0 68px}.technology-detail-header{grid-template-columns:minmax(0,1fr);gap:30px;padding:34px 0 37px}.technology-identity h1{margin-top:19px;font-size:clamp(2.8rem,12vw,4.4rem)}.technology-identity h1.technology-detail-title-long{font-size:clamp(1.8rem,7vw,2.6rem);line-height:1.12}.technology-placement{border-top:1px solid var(--color-line);border-left:0;padding:22px 0 0}.placement-sequence{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.placement-sequence li+li{border-top:0}.detail-section{padding:34px 0 36px}.detail-secondary-column{grid-template-columns:minmax(0,1fr)}.resources-section{grid-column:auto}}@media (width<=390px){.technology-identity h1{font-size:clamp(2.55rem,11.3vw,3.3rem)}.use-case-list{grid-template-columns:minmax(0,1fr)}}:root{color:#172620;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;--color-paper:#f6f7f3;--color-surface:#fff;--color-ink:#172620;--color-muted:#65716b;--color-line:#dce2dc;--color-accent:#285c4c;--color-accent-hover:#1f493c;--color-highlight:#d4e394;--content-width:1200px;background:#f6f7f3;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px;scroll-padding-top:6rem}body{min-width:320px;min-height:100vh;margin:0}body,button,a{font-family:inherit}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline-offset:4px;outline:3px solid #b05636}::selection{color:var(--color-ink);background:var(--color-highlight)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
