.open-source-page { color:var(--site-slate, #314352); background:#fff; }
.open-source-page * { box-sizing:border-box; }
.open-source-page section { scroll-margin-top:110px; }
.open-source-page p { line-height:1.75; color:#495762; margin:0 0 18px; max-width:72ch; }
.open-source-page h1,.open-source-page h2,.open-source-page h3,.open-source-page h4 { color:var(--site-ink, #2c3e50); line-height:1.2; }
.open-source-page h1 { font-size:clamp(38px,4.5vw,62px); letter-spacing:-.035em; margin:0 0 24px; }
.open-source-page h2 { font-size:clamp(30px,3vw,42px); margin:0 0 20px; letter-spacing:-.025em; }
.open-source-page h3 { font-size:clamp(24px,2.5vw,32px); margin:0 0 20px; }
.open-source-page h4 { font-size:21px; margin:24px 0 12px; }
.open-source-page .oss-kicker { font-size:14px; color:#a8341c; font-weight:600; margin-bottom:16px; }
.open-source-page .oss-lead { font-size:19px; }
.oss-hero { padding:82px 0 64px; }
.oss-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:48px; }
.oss-architecture { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.oss-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:26px; }
.open-source-page .btn { margin:0; box-shadow:none; font-size:14px; padding:13px 20px; border-radius:3px; }
.open-source-page .btn:hover { transform:none; }
.open-source-page .oss-text-link { color:#b63217; font-size:14px; font-weight:600; text-underline-offset:5px; text-decoration:underline; }
button.oss-text-link { border:0; background:none; font-family:inherit; padding:8px 0; cursor:pointer; }
.open-source-page a:focus-visible,.open-source-page button:focus-visible { outline:2px solid var(--site-orange, #e73c17); outline-offset:5px; }
.open-source-page [hidden] { display:none!important; }
.oss-section { padding:72px 0; border-top:1px solid #e1e7eb; }
.oss-project-heading { display:flex; flex-wrap:wrap; align-items:center; gap:14px 20px; margin-bottom:40px; }
.oss-project-heading h2 { margin:0; }
.oss-project-heading span { font-size:13px; color:#627381; }
.oss-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:64px; }
.oss-entropy { margin:64px 0 48px; }
.oss-visual-heading { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:end; margin-bottom:22px; }
.oss-explorer { margin:0; }
.oss-explorer>img { display:block; width:100%; height:auto; border:1px solid #e1e7eb; }
.oss-explorer figcaption { font-size:12px; color:#627381; margin-top:14px; line-height:1.65; }
.oss-explorer figcaption a { color:inherit; text-decoration:underline; }
.oss-explorer iframe { display:block; width:100%; height:660px; border:1px solid #e1e7eb; }
.oss-new-window { font-size:11px; font-weight:400; }
.oss-principles,.oss-protocols { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; margin:48px 0; }
.oss-principles article { border-top:2px solid #e1e7eb; padding-top:24px; }
.oss-principles h3,.oss-protocols h3 { font-size:20px; margin-bottom:14px; }
.oss-principles p,.oss-protocols p { font-size:15px; }
.oss-resource-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:16px; margin:64px 0 26px; }
.oss-resource-heading h3 { margin:0; }
.oss-resources { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.oss-image-link { display:block; background:#fff; border:1px solid #e1e7eb; }
.oss-image-link img { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:contain; }
.oss-resources p { font-size:15px; }
.oss-demo-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:46px; padding-top:28px; border-top:1px solid #e1e7eb; }
.oss-demo-links a { display:block; text-decoration:none; color:var(--site-slate, #314352); }
.oss-demo-links strong { display:block; margin-bottom:10px; color:#b63217; text-decoration:underline; text-underline-offset:4px; }
.oss-demo-links span { font-size:14px; line-height:1.7; display:block; }
.oss-protocols img { display:block; width:160px; height:auto; aspect-ratio:3/2; margin-bottom:20px; }
.oss-start { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:36px; align-items:center; border-top:1px solid #e1e7eb; padding-top:32px; }
.oss-start h3 { font-size:24px; }
.open-source-page .oss-small { font-size:13px; color:#627381; margin-top:18px; }
.oss-contribute { padding:64px 0; background:#f5f7f8; }
.oss-contribute .oss-actions { margin-top:0; }
.oss-contribute a:not(.btn) { color:#a8341c; }
@media(max-width:900px) {
 .oss-split,.oss-intro,.oss-visual-heading,.oss-start { grid-template-columns:1fr; gap:24px; }
 .oss-hero .oss-architecture { max-width:520px; justify-self:center; }
 .oss-hero { padding:48px 0; }
 .oss-section { padding:48px 0; }
 .oss-project-heading { margin-bottom:28px; }
 .oss-start .btn { justify-self:start; }
 .oss-explorer-launch { display:none; }
}
@media(max-width:600px) {
 .oss-resources,.oss-principles,.oss-protocols,.oss-demo-links { grid-template-columns:1fr; gap:28px; }
 .oss-entropy,.oss-resource-heading { margin-top:40px; }
 .oss-project-heading span { flex-basis:100%; }
 .oss-actions { gap:16px; }
 .open-source-page .btn { max-width:100%; white-space:normal; }
 .oss-protocols article { display:grid; grid-template-columns:100px minmax(0,1fr); column-gap:20px; }
 .oss-protocols img { width:100%; grid-row:1/3; }
 .oss-protocols h3 { margin-bottom:10px; }
 .oss-protocols p { grid-column:2; }
}
