@import"https://fonts.googleapis.com/css2?family=Unbounded:wght@500;700;800&family=Golos+Text:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap";.buses{--card: rgba(255, 255, 255, .035);--ink: #E8EEF4;--ink2: #9FB1C0;--ink3: #6E8194;--rule: rgba(255, 255, 255, .14);--uart: #FF6B5E;--uart-d: #FF9C91;--spi: #5C9BEF;--spi-d: #8FBAF5;--i2c: #F4923A;--i2c-d: #F7B074;--can: #B96FDC;--can-d: #CFA0E9;--rs: #9BD42E;--rs-d: #BCE86A;--ow: #F0C42A;--ow-d: #F5D662;--c: var(--ink);--cd: var(--ink);--mono: "JetBrains Mono", ui-monospace, monospace;--disp: "Unbounded", system-ui, sans-serif;--body: "Golos Text", system-ui, sans-serif;font-family:var(--body);color:var(--ink);font-size:16.5px;line-height:1.62;-webkit-font-smoothing:antialiased;background-image:linear-gradient(to right,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.035) 1px,transparent 1px);background-size:28px 28px;padding-bottom:104px}.buses *{box-sizing:border-box}.buses .wrap{max-width:1160px;margin:0 auto;padding:0 22px}.buses .eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}.buses .mono{font-family:var(--mono)}.buses h1,.buses h2,.buses h3{font-family:var(--disp);font-weight:700;letter-spacing:-.02em;line-height:1.06;margin:0;color:var(--ink)}.buses p{margin:0 0 1em}.buses a{color:var(--cd)}.buses p,.buses li,.buses h1,.buses h2,.buses h3,.buses .eyebrow,.buses .proto-tag,.buses .facts span,.buses td,.buses th,.buses .pick,.buses .k,.buses .who,.buses .blk-title,.buses .where,.buses .note,.buses .card h3{unicode-bidi:plaintext}.buses .topbar{border-bottom:1px solid var(--rule);margin-bottom:4px}.buses .topbar .row{display:flex;align-items:center;gap:14px;min-height:52px;overflow-x:auto;scrollbar-width:none}.buses .topbar .row::-webkit-scrollbar{display:none}.buses .brand{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.1em;white-space:nowrap;color:var(--ink2)}.buses .chips{display:flex;gap:7px;margin-left:auto}.buses .chip{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.04em;text-decoration:none;padding:5px 10px;border:1px solid var(--rule);border-radius:3px;color:var(--ink2);background:transparent;white-space:nowrap;transition:.16s}.buses .chip:hover,.buses .chip:focus-visible{color:#0e1a24;border-color:var(--k);background:var(--k)}.buses .hero{padding-top:40px;padding-bottom:34px}.buses .hero h1{font-size:clamp(2.1rem,5.4vw,3.9rem);font-weight:800;max-width:20ch;overflow-wrap:anywhere}.buses .hero .lede{max-width:56ch;color:var(--ink2);font-size:1.06rem;margin-top:22px}.buses .hero .lede b{color:var(--ink);font-weight:600}.buses .stack{display:grid;grid-template-columns:1.05fr .95fr;gap:46px;align-items:end}@media (max-width:900px){.buses .stack{grid-template-columns:1fr;gap:30px;align-items:start}.buses .hero{padding-top:24px;padding-bottom:20px}}.buses .hero-strip{border:1px solid var(--rule);background:var(--card);padding:14px 12px 10px;border-radius:4px}.buses .hero-strip .cap{display:flex;justify-content:space-between;padding:0 4px 8px;border-bottom:1px dashed var(--rule);margin-bottom:8px}.buses section{scroll-margin-top:84px}.buses .sec{padding-top:56px;padding-bottom:56px;border-top:1px solid var(--rule)}.buses .sec-head{display:flex;gap:16px;align-items:baseline;flex-wrap:wrap;margin-bottom:26px}.buses .sec-head h2{font-size:clamp(1.5rem,3vw,2.1rem)}.buses .num{font-family:var(--mono);font-size:12px;color:var(--ink3);letter-spacing:.1em;padding-top:6px}.buses .intro-lead{max-width:64ch}.buses .intro-lead p{color:var(--ink2);font-size:1.04rem}.buses .intro-lead b{color:var(--ink);font-weight:600}.buses .grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(238px,1fr));gap:14px}.buses .card{background:var(--card);border:1px solid var(--rule);border-radius:4px;padding:18px}.buses .card h3{font-size:1rem;margin-bottom:8px;letter-spacing:-.01em}.buses .card p{font-size:.93rem;color:var(--ink2);margin:0}.buses .card .k{font-family:var(--mono);font-size:11px;color:var(--ink3);letter-spacing:.1em;display:block;margin-bottom:10px}.buses .proto{padding-top:64px;padding-bottom:64px;border-top:2px solid var(--c)}.buses .proto-top{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:38px;align-items:start}@media (max-width:900px){.buses .proto-top{grid-template-columns:1fr;gap:24px}.buses .proto{padding-top:44px;padding-bottom:44px}}.buses .proto-name{font-family:var(--disp);font-weight:800;color:var(--c);font-size:clamp(2.6rem,8vw,5rem);line-height:.9;letter-spacing:-.045em;margin:6px 0 4px}.buses .proto-tag{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--cd)}.buses .proto-lede{font-size:1.04rem;max-width:62ch;margin-top:16px;color:var(--ink2)}.buses .proto-lede b{font-weight:600;color:var(--ink)}.buses .facts{border:1px solid var(--rule);background:var(--card);border-radius:4px;overflow:hidden}.buses .facts div{display:flex;justify-content:space-between;gap:12px;padding:9px 14px;border-bottom:1px solid var(--rule);font-size:.9rem}.buses .facts div:last-child{border-bottom:0}.buses .facts span:first-child{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);padding-top:3px}.buses .facts span:last-child{text-align:right;font-weight:500;color:var(--ink)}.buses .two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;margin-top:34px}@media (max-width:900px){.buses .two{grid-template-columns:1fr;gap:26px;margin-top:24px}}.buses .blk-title{font-family:var(--mono);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--cd);padding-bottom:8px;margin-bottom:14px;border-bottom:1px solid var(--c)}.buses ol.steps{list-style:none;counter-reset:s;margin:0;padding:0}.buses ol.steps li{counter-increment:s;position:relative;padding:0 0 14px 40px;font-size:.95rem;color:var(--ink2)}.buses ol.steps li:before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:1px;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--c);border:1px solid var(--c);border-radius:3px;padding:2px 5px;line-height:1}.buses ol.steps b{font-weight:600;color:var(--ink)}.buses ol.steps code,.buses p code,.buses li code,.buses td code{font-family:var(--mono);font-size:.86em;background:#ffffff14;padding:1px 5px;border-radius:3px;color:var(--ink)}.buses .pm{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}@media (max-width:640px){.buses .pm{grid-template-columns:1fr}}.buses .pm ul{list-style:none;margin:0;padding:0;font-size:.93rem}.buses .pm li{position:relative;padding-left:22px;margin-bottom:8px;color:var(--ink2)}.buses .pm li:before{position:absolute;left:0;top:-1px;font-family:var(--mono);font-weight:700}.buses .pm .good li:before{content:"+";color:var(--c)}.buses .pm .bad li:before{content:"−";color:var(--ink3)}.buses .where{margin-top:26px;padding:16px 18px;border-left:3px solid var(--c);background:var(--card);font-size:.95rem;color:var(--ink2)}.buses .where b{font-weight:600;color:var(--cd)}.buses .see-also{margin-top:12px;font-size:.92rem}.buses .see-also a{color:var(--cd);font-weight:600;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--c) 45%,transparent)}.buses .see-also a:hover{border-bottom-color:var(--c)}.buses .tie-in{margin-top:40px;padding-top:26px;border-top:1px solid var(--rule);color:var(--ink2);font-size:.98rem}.buses .tie-in a{color:#5c9bef;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(92,155,239,.5)}.buses .tie-in a:hover{border-bottom-color:#5c9bef}.buses .scope{margin-top:34px;border:1px solid var(--rule);background:var(--card);border-radius:4px;overflow:hidden}.buses .scope-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid var(--rule);flex-wrap:wrap}.buses .scope-bar .t{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--cd)}.buses .scope-bar .v{font-family:var(--mono);font-size:11.5px;color:var(--ink3)}.buses .scope-body{overflow-x:auto}.buses .scope svg{display:block;height:auto}.buses .note{padding:10px 14px;border-top:1px dashed var(--rule);font-size:.86rem;color:var(--ink2)}.buses text{font-family:var(--mono)}.buses .trace{fill:none;stroke-width:2.4;stroke-linejoin:miter;shape-rendering:geometricPrecision}.buses .in .trace{stroke-dasharray:3000;stroke-dashoffset:3000;animation:buses-draw .85s cubic-bezier(.2,.7,.3,1) forwards}.buses .in .trace.nodraw{animation:none;stroke-dashoffset:0}@keyframes buses-draw{to{stroke-dashoffset:0}}.buses .gl{stroke:var(--rule);stroke-width:1;stroke-dasharray:2 4}.buses .mk{fill:#ffffff0d;stroke:var(--rule);stroke-width:1}.buses .mk.key{fill:color-mix(in srgb,var(--c) 22%,transparent);stroke:var(--c)}.buses .mk.slave{fill:#ffffff1f;stroke:var(--ink3);stroke-dasharray:3 2}.buses .mk.data{fill:color-mix(in srgb,var(--c) 38%,transparent);stroke:var(--c)}.buses .mk.mute{fill:transparent;stroke:var(--rule);stroke-dasharray:3 3}.buses .lbl{font-size:11px;fill:var(--ink2)}.buses .lane-lbl{font-size:12px;font-weight:700;fill:var(--cd)}.buses .lane-sub{font-size:9.5px;fill:var(--ink3)}.buses .arw{fill:var(--c)}.buses .tbl-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:4px;background:var(--card)}.buses table{border-collapse:collapse;width:100%;min-width:900px;font-size:.9rem}.buses th,.buses td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--ink2)}.buses thead th{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);font-weight:500;background:#ffffff0a;position:sticky;top:0}.buses tbody tr:hover{background:#ffffff0a}.buses td.name{font-family:var(--disp);font-weight:700;font-size:.98rem;letter-spacing:-.02em}.buses td.num-c{font-family:var(--mono);color:var(--ink)}.buses .rules{display:grid;gap:10px}.buses .rule-row{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--k);border-radius:4px;padding:13px 16px}.buses .rule-row p{margin:0;font-size:.95rem;color:var(--ink2)}.buses .rule-row .pick{font-family:var(--disp);font-weight:700;color:var(--k);white-space:nowrap;font-size:1rem;letter-spacing:-.02em}@media (max-width:560px){.buses .rule-row{grid-template-columns:1fr;gap:6px}}.buses .mist{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:14px}.buses .mist article{background:var(--card);border:1px solid var(--rule);border-radius:4px;padding:16px}.buses .mist h3{font-size:.95rem;margin-bottom:7px}.buses .mist p{font-size:.9rem;color:var(--ink2);margin:0}.buses .mist .who{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--k);display:block;margin-bottom:9px}.buses-bytebar{position:fixed;left:0;right:0;bottom:0;z-index:50;border-top:1px solid rgba(255,255,255,.16);background:#0e1218f5;color:#eaf0f5;backdrop-filter:blur(8px);font-family:Golos Text,system-ui,sans-serif}.buses-bytebar .row{display:flex;align-items:center;gap:18px;padding:11px 22px;max-width:1160px;margin:0 auto;flex-wrap:wrap}.buses-bytebar .ttl{font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8fa5b6}.buses-bytebar .bits{display:flex;gap:4px}.buses-bytebar .bit{width:34px;height:34px;border:1px solid #3A5060;background:transparent;color:#8fa5b6;font-family:JetBrains Mono,ui-monospace,monospace;font-size:14px;font-weight:700;border-radius:3px;cursor:pointer;transition:.13s;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.buses-bytebar .bit small{font-size:7.5px;letter-spacing:.04em;opacity:.65;font-weight:400}.buses-bytebar .bit[aria-pressed=true]{background:#eaf0f5;color:#0e1a24;border-color:#eaf0f5}.buses-bytebar .bit:hover{border-color:#8fa5b6}.buses-bytebar .readout{font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px;display:flex;gap:14px;flex-wrap:wrap;color:#eaf0f5}.buses-bytebar .readout i{color:#8fa5b6;font-style:normal}.buses-bytebar .presets{display:flex;gap:6px;margin-left:auto}.buses-bytebar .presets button{font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;padding:6px 9px;border-radius:3px;cursor:pointer;background:transparent;border:1px solid #3A5060;color:#8fa5b6;transition:.13s}.buses-bytebar .presets button:hover{color:#0e1a24;background:#eaf0f5;border-color:#eaf0f5}@media (max-width:760px){.buses-bytebar .row{gap:10px;padding:9px 16px}.buses-bytebar .bit{width:29px;height:29px;font-size:12px}.buses-bytebar .presets{margin-left:0}.buses{padding-bottom:150px}}.buses :focus-visible{outline:2px solid var(--ink);outline-offset:2px}@media (prefers-reduced-motion:reduce){.buses .in .trace{animation:none;stroke-dasharray:none;stroke-dashoffset:0}.buses *{transition:none!important}}
