/* SXF Open Source intelligence hub — scoped and dependency-free. */
.mode-open-source{--section-accent:#d5ee87}
.mode-open-source .open-hub-hero{padding-top:42px;padding-bottom:52px}
.mode-open-source .open-hub-hero .breadcrumbs{margin-bottom:60px}
.open-hub-hero-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(285px,.75fr);gap:clamp(32px,5vw,92px);align-items:end}
.open-hub-hero h1{font-size:clamp(54px,7vw,102px);letter-spacing:-.065em;line-height:.94;margin:16px 0 30px;max-width:880px}
.open-hub-hero h1 span{color:#7f8f98}
.open-hub-hero h1 small{font-size:clamp(26px,3.3vw,47px);font-weight:740;letter-spacing:-.045em;line-height:1.18;display:block;color:#e4eaf0;margin-top:20px}
.open-hub-lead{font-size:clamp(19px,1.9vw,24px);line-height:1.54;color:#e4eced;max-width:790px;letter-spacing:-.017em}
.open-hub-intent{font-size:14px;color:#a5b2bf;max-width:710px;line-height:1.75;margin-top:17px}
.open-hub-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.open-hub-actions a{display:inline-flex;gap:22px;align-items:center;justify-content:space-between;padding:15px 20px;font-size:12px;font-weight:750;border-radius:10px;transition:background .18s,border-color .18s}
.open-hub-cta{background:#c9ec7d;color:#0d150b!important;border:1px solid #c9ec7d}
.open-hub-cta:hover{background:#ddf9ac}
.open-hub-ghost{border:1px solid #46515d;color:#e9eff4}
.open-hub-ghost:hover{border-color:#b0d47b}
.open-hub-stack{border:1px solid #33423b;background:linear-gradient(145deg,#111c1b,#0b1015 80%);border-radius:17px;padding:27px}
.open-hub-stack-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#bcd29e;font:10px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.055em}
.open-hub-stack-head span:last-child{color:#879998;text-align:right}
.open-hub-stack-layer{display:grid;grid-template-columns:24px 1fr 15px;gap:14px;align-items:start;border-top:1px solid #304039;padding:23px 0}
.open-hub-stack-head+.open-hub-stack-layer{margin-top:24px}
.open-hub-stack-number,.open-hub-mono{color:#a7c484;font:10px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.055em}
.open-hub-stack-layer strong{font-size:18px;font-weight:730;letter-spacing:-.025em}
.open-hub-stack-layer p{font-size:12px;line-height:1.65;color:#a6b4b9;margin:7px 0 0}
.open-hub-stack-layer>span:last-child{color:#a2c16e}
.open-hub-stack-note{border-top:1px solid #304039;margin:0;padding-top:18px;color:#9faeb0;font-size:12px;line-height:1.7}
.open-hub-trust{display:flex;flex-wrap:wrap;gap:14px 29px;border-top:1px solid #28343c;margin-top:65px;padding-top:19px;font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#94a59e}
.open-hub-trust span:before{content:"✓";color:#c9ec7d;margin-right:8px}
.open-hub-section{padding-top:85px;padding-bottom:90px;border-top:1px solid #26323b}
.open-hub-section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:32px}
.open-hub-section-head h2,.open-hub-brief h2,.open-hub-frameworks h2,.open-hub-method h2{font-size:clamp(37px,4.7vw,64px);letter-spacing:-.055em;line-height:1.04;margin:10px 0 16px;max-width:920px}
.open-hub-section-head p:not(.eyebrow){color:#a6b4c0;font-size:15px;line-height:1.8;max-width:820px;margin:0}
.open-hub-lane-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.open-hub-lane{display:flex;flex-direction:column;min-height:290px;border:1px solid #2b3940;background:linear-gradient(150deg,#111a19,#0b1016);border-radius:15px;padding:24px;transition:transform .18s,border-color .18s}
.open-hub-lane:hover{transform:translateY(-3px);border-color:#a6ca76}
.open-hub-lane-top{color:#9dc180;font:10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.055em}
.open-hub-lane h3{font-size:25px;letter-spacing:-.04em;line-height:1.16;margin:33px 0 14px;color:#f2f6f6}
.open-hub-lane p{color:#a6b1b9;font-size:13px;line-height:1.68;margin:0 0 23px}
.open-hub-lane-end{margin-top:auto;display:flex;justify-content:space-between;gap:15px;padding-top:18px;border-top:1px solid #2b3937;color:#c7e999;font-size:12px;font-weight:700}
.open-hub-brief-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.7fr);gap:clamp(36px,6vw,95px)}
.open-hub-brief-layout p:not(.eyebrow){max-width:850px;color:#a9b5bf;line-height:1.85;font-size:15px}
.open-hub-brief-layout p strong{color:#e5edee}
.open-hub-inline-links{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:28px}
.open-hub-inline-links a,.open-hub-text-link{color:#d2f29a;font-size:13px;font-weight:750}
.open-hub-inline-links a:hover,.open-hub-text-link:hover{color:white}
.open-hub-evidence{border-top:2px solid #accd7d;border-bottom:1px solid #334336;padding:24px 0}
.open-hub-evidence strong{display:block;margin:22px 0 12px;font-size:28px;line-height:1.15;letter-spacing:-.04em}
.open-hub-evidence p{font-size:14px!important;color:#a7b6b3;line-height:1.7}
.open-hub-evidence a{display:inline-block;margin-top:22px;color:#d1ed9c;font-size:13px;font-weight:700}
.open-hub-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.open-hub-option{border:1px solid #324038;background:#0d1318;border-radius:14px;padding:25px;display:flex;flex-direction:column}
.open-hub-option h3{font-size:26px;letter-spacing:-.04em;margin:25px 0 12px}
.open-hub-option p{color:#a8b6be;line-height:1.75;font-size:14px;margin:0 0 20px}
.open-hub-option dl{margin:auto 0 22px}
.open-hub-option dl div{display:grid;grid-template-columns:70px 1fr;gap:12px;padding:12px 0;border-top:1px solid #2c393c;font-size:12px;line-height:1.65}
.open-hub-option dt{color:#9aab9d}.open-hub-option dd{margin:0;color:#d7e0e5}
.open-hub-option>a{color:#cee99c;font-weight:700;font-size:13px}
.open-hub-note{margin-top:18px;border-left:3px solid #c5e68e;background:#121b18;border-radius:0 8px 8px 0;padding:18px 22px;color:#b2c0ba;font-size:14px;line-height:1.75}
.open-hub-note strong{color:#f0f3ec}.open-hub-note a{color:#d1ec9c;font-weight:650}
.open-hub-official{border-top:1px solid #3a4842}
.open-hub-official a{display:grid;grid-template-columns:122px 1fr 18px;gap:13px;align-items:center;padding:27px 0;border-bottom:1px solid #314038}
.open-hub-official a span{color:#91ac83;font:10px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}
.open-hub-official a strong{color:#eef1ed;font-size:17px}.open-hub-official a b{color:#afcc82}
.open-hub-official a:hover strong{color:#d9f0aa}
.open-hub-secondary{color:#d2eca1;font-size:12px;font-weight:650;max-width:270px}
.open-hub-resources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.open-hub-resources>a{border:1px solid #2b3940;border-radius:14px;padding:23px;display:flex;flex-direction:column;min-height:222px;background:#0e1419;transition:border-color .18s}
.open-hub-resources>a:hover{border-color:#adcd80}
.open-hub-resources>a>span{font:10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#a2be8e}
.open-hub-resources h3{font-size:21px;letter-spacing:-.03em;margin:22px 0 10px}
.open-hub-resources p{color:#9eacb8;line-height:1.7;font-size:13px;margin:0 0 18px}
.open-hub-resources b{font-size:12px;font-weight:700;color:#cee9a5;margin-top:auto}
.open-hub-update-counter{border:1px solid #3b4d3c;padding:15px 20px;border-radius:10px;display:flex;align-items:center;gap:16px}
.open-hub-update-counter strong{font-size:34px;color:#e2f1bf;letter-spacing:-.05em}
.open-hub-update-counter span{font-size:11px;color:#a2b4a8;line-height:1.4}
.open-hub-filters{padding:21px 24px;border:1px solid #31413c;border-radius:13px;margin-bottom:26px;background:#0d1518}
.open-hub-filter-label{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:#aabfaf;font:10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}
.open-hub-filter-label span:last-child{color:#92a49d}
.open-hub-filters .lens-row{margin:19px 0 12px}
.open-hub-filters .lens{color:#abbcb2;border-color:#394840}
.open-hub-filters .lens.active{background:#c9ec7d;color:#122011;border-color:#c9ec7d}
.open-hub-filters .section-search{display:block}.open-hub-filters input{width:100%;max-width:470px}
.open-hub-js-note{font-size:11px;color:#82988f;margin:12px 0 0}
.open-hub-news .intel-grid{margin-top:0}
.open-hub-empty{border:1px dashed #50664d;border-radius:14px;padding:34px;background:linear-gradient(135deg,#111e19,#0a1015)}
.open-hub-empty h3{font-size:25px;letter-spacing:-.035em;margin:15px 0 11px}
.open-hub-empty p{color:#a8b7ba;font-size:14px;line-height:1.8;max-width:710px;margin:0 0 20px}
.open-hub-empty a{color:#d0f1a3;font-size:13px;font-weight:700}
/* The server controls initial empty-state visibility; JS updates it on filters. */
.open-hub-news #sectionEmpty[hidden]{display:none}
.open-hub-method-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.1fr);gap:clamp(30px,6vw,105px)}
.open-hub-method-grid p:not(.eyebrow){color:#a6b5b9;font-size:14px;line-height:1.8}
.open-hub-method ol{list-style:none;padding:0;margin:0;border-top:1px solid #35433d;counter-reset:method}
.open-hub-method li{display:grid;grid-template-columns:1fr 1.35fr;gap:20px;padding:20px 0;border-bottom:1px solid #2d3c36}
.open-hub-method li strong{color:#e4ebdd;font-size:14px}.open-hub-method li span{color:#aab5b6;line-height:1.65;font-size:13px}
.open-hub-ending{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;border-top:1px solid #2b3c33;padding:29px 0 80px;color:#a6b8a9;font:11px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}
.open-hub-ending a{color:#d1f1a5}
.mode-open-source a:focus-visible,.mode-open-source button:focus-visible,.mode-open-source input:focus-visible{outline:2px solid #c9ec7d;outline-offset:3px}
@media(max-width:1100px){.open-hub-lane-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.open-hub-hero-grid{grid-template-columns:minmax(0,1fr) minmax(265px,.8fr);gap:30px}}
@media(max-width:800px){.open-hub-hero-grid,.open-hub-brief-layout,.open-hub-method-grid{grid-template-columns:1fr}.open-hub-resources,.open-hub-options{grid-template-columns:repeat(2,minmax(0,1fr))}.open-hub-stack{max-width:640px}.open-hub-section-head{align-items:start;flex-direction:column}.open-hub-method-grid{gap:25px}}
@media(max-width:600px){.mode-open-source .open-hub-hero{padding-top:24px}.mode-open-source .open-hub-hero .breadcrumbs{margin-bottom:32px}.open-hub-hero h1{font-size:clamp(45px,11vw,69px)}.open-hub-hero h1 small{font-size:clamp(24px,6vw,34px)}.open-hub-trust{margin-top:40px}.open-hub-section{padding-top:59px;padding-bottom:62px}.open-hub-lane-grid,.open-hub-resources,.open-hub-options{grid-template-columns:1fr}.open-hub-lane{min-height:228px}.open-hub-lane h3{margin-top:24px}.open-hub-section-head h2,.open-hub-brief h2,.open-hub-frameworks h2,.open-hub-method h2{font-size:clamp(33px,9vw,45px)}.open-hub-option{padding:21px}.open-hub-filters{padding:18px}.open-hub-update-counter{align-self:start}.open-hub-method li{grid-template-columns:1fr;gap:7px}.open-hub-official a{grid-template-columns:95px 1fr 14px}}
@media(prefers-reduced-motion:reduce){.open-hub-actions a,.open-hub-lane,.open-hub-resources>a{transition:none}.open-hub-lane:hover{transform:none}}
