/* SiDi-specific details over the shared MacroCompute presentation language. */
.hero h1 span{color:var(--teal)}.hero h1{font-size:clamp(52px,5.6vw,84px)}
.stats strong{font-size:clamp(26px,3.1vw,43px)}
.board-study{border:1px solid #2d4245;background:#0d1920;border-radius:7px;overflow:hidden}
.board-study img{width:100%;height:530px;object-fit:contain}
.board-study figcaption{display:flex;justify-content:space-between;padding:18px 22px;border-top:1px solid #2d4245;font-size:10px;color:var(--muted)}
.board-study .mono{font-size:9px;color:var(--teal)}
.hardware-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding-top:35px;margin-top:48px;border-top:1px solid var(--line)}
.hardware-strip>div{display:flex;flex-direction:column;gap:7px}.hardware-strip .mono{font-size:9px;color:var(--teal)}.hardware-strip strong{font-weight:400;font-size:22px}.hardware-strip small{font-size:11px;color:var(--muted)}
.enclosure-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.enclosure{border:1px solid #344044;background:#111b1e;border-radius:7px;overflow:hidden}.enclosure-image{position:relative;background:#d3d8db}.enclosure-image img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.revision{position:absolute;top:18px;left:18px;font:10px 'Courier New',monospace;letter-spacing:.08em;background:#0a171eee;color:#dbe6df;padding:8px 11px;border:1px solid #ffffff30;border-radius:3px}.enclosure-copy{padding:32px}.enclosure-copy .eyebrow{font-size:9px;margin-bottom:15px}.enclosure h3{font-size:31px;margin-bottom:20px}.enclosure p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.8}.enclosure dl{margin:25px 0}.enclosure dl>div{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-top:1px solid #2c3a3e;font-size:11px}.enclosure dt{color:var(--muted)}.enclosure dd{margin:0;text-align:right}.document-link{font-size:10px;color:var(--muted);display:block;margin-top:16px}.document-link:hover,.development-note a{color:var(--teal)}
.case-detail-strip{display:grid;grid-template-columns:1fr 1fr;gap:65px;margin-top:48px;padding-top:35px;border-top:1px solid var(--line)}.case-detail-strip .mono{font-size:9px;color:var(--gold)}.case-detail-strip h3{font-size:27px;margin:17px 0}.case-detail-strip p{font-size:13px;line-height:1.8;color:var(--muted);max-width:510px}
.case-visibility{display:flex;align-items:center;gap:25px;padding:12px 24px;border-top:1px solid #283e41;background:#0a1518;color:#b8cdcb;font-size:11px}.case-visibility .mono{font-size:9px;color:#789b96}.case-visibility label{display:flex;align-items:center;gap:7px}.case-visibility input{accent-color:var(--teal)}
#board-fallback{position:absolute;inset:0;background:#0d191c;padding:30px;text-align:center;z-index:7}#board-fallback img{max-height:270px;margin:auto;object-fit:contain}#board-fallback p{font-size:13px;margin:15px auto;max-width:440px}
#board-viewer:fullscreen{background:#0d191c;overflow:auto}#board-viewer:fullscreen .viewport{min-height:200px}.viewer-controls>.view-actions:only-child{margin-left:auto}.model-caption{z-index:1}.model-caption strong{max-width:310px}.footer{flex-wrap:wrap}.footer>span:nth-child(2){font-size:9px}
@media(max-width:1100px){.header nav{gap:18px}.board-study img{height:420px}.enclosure-copy{padding:25px}.enclosure h3{font-size:27px}.enclosure dl>div{font-size:10px}.hardware-strip strong{font-size:20px}}
@media(max-width:760px){.hero h1{font-size:clamp(48px,11vw,72px)}.hero-art{height:400px;width:133%;left:-22%;bottom:0;object-position:68% center}.hero-shade{background:linear-gradient(180deg,#0a1012 0%,#0a1012 43%,#0a101200 63%,#0a101200 85%,#0a1012 100%)}.hero-content{padding-bottom:340px}.hero-detail{max-width:330px}.hero-meta{font-size:8px;gap:12px}.hero-meta .mono{font-size:8px}.hero-meta>span+span{padding-left:12px}.board-study{width:100%}.board-study img{height:370px}.hardware-strip{grid-template-columns:1fr 1fr;gap:25px;margin-top:35px}.hardware-strip strong{font-size:20px}.hardware-strip small{font-size:9px}.enclosure-grid{grid-template-columns:1fr;gap:28px}.enclosure-copy{padding:24px}.enclosure h3{font-size:28px}.enclosure dl>div{font-size:10px}.case-detail-strip{grid-template-columns:1fr;gap:20px}.case-detail-strip h3{font-size:25px}.case-detail-strip p{font-size:12px}.case-visibility{padding:12px 14px;gap:15px;font-size:10px}.case-visibility .mono{font-size:8px}.model-caption strong{font-size:14px;max-width:240px}.footer>span:nth-child(2){font-size:8px}.segments button{padding:8px 10px}.stats strong{font-size:29px}.hero-bottom .art-label{max-width:175px;text-align:right}}
/* Functional architecture diagrams: native HTML labels and responsive SVG paths. */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.design-layout{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:55px;align-items:center}.design-map{--diagram-colour:var(--teal);border:1px solid #36514f;padding:26px;background:radial-gradient(ellipse at 50% 45%,#1b373433,transparent 75%),#0d171a;border-radius:8px;min-width:0}.design-map[data-colour=gold]{--diagram-colour:var(--gold)}.design-map[data-colour=coral]{--diagram-colour:var(--red)}.design-map .map-top{gap:10px;margin-bottom:28px;font-size:9px}.design-map .map-top .mono{font-size:9px}.design-map #diagram-caption{color:var(--diagram-colour);font:9px 'Courier New',monospace;text-align:right}.design-map>figcaption{font:9px 'Courier New',monospace;color:#8fa9a4;border-top:1px solid #2b4140;padding-top:20px;margin-top:25px}.design-map>figcaption .live-dot{width:5px;height:5px;background:var(--diagram-colour)}.design-graph{position:relative}.design-nodes{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;column-gap:34px;row-gap:66px}.design-node{border:1px solid #465957;border-radius:5px;background:#142428;min-height:88px;padding:14px 12px;display:flex;flex-direction:column;justify-content:center;text-align:center;box-shadow:0 4px 22px #0002;min-width:0}.design-node strong{font-size:18px;font-weight:500;letter-spacing:-.03em;line-height:1.35}.design-node small{font-size:10px;color:#a3b7af;margin-top:6px;line-height:1.4}.node-kicker{font:8px 'Courier New',monospace;letter-spacing:.1em;color:#8fa9a4;margin-bottom:7px}.tone-teal{border-color:#538c7e;background:linear-gradient(135deg,#1c3934,#122a28)}.tone-teal .node-kicker{color:var(--teal)}.tone-gold{border-color:#75664c;background:#252720}.tone-gold .node-kicker{color:var(--gold)}.tone-coral{border-color:#79525d;background:#2c252b}.tone-coral .node-kicker{color:var(--red)}
.graph-memory .node-fpga{grid-column:1/-1;justify-self:center;width:62%;min-height:108px}.graph-media .node-fpga,.graph-control .node-fpga,.graph-control .node-mcu{grid-column:1/-1;width:62%;justify-self:center}.graph-media .node-audio,.graph-control .node-ethernet{grid-column:1/-1;width:62%;justify-self:center}.graph-control{row-gap:58px}.graph-control .node-mcu{min-height:96px}.graph-media .node-hdmi,.graph-media .node-rgb,.graph-control .node-storage,.graph-control .node-usb{z-index:2}.graph-media .node-audio,.graph-control .node-ethernet{z-index:2}
#design-connections{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}#design-connections path{fill:none;stroke:var(--diagram-colour);stroke-width:1.4}.connection-line{opacity:.35}.connection-flow{stroke-dasharray:5 12;animation:signal-flow 3s linear infinite;opacity:.7}.connection-dot{fill:var(--diagram-colour)}#design-connections text{font:8px 'Courier New',monospace;fill:#b9cec6;paint-order:stroke;stroke:#0d171a;stroke-width:5px;stroke-linejoin:round}.design-tabs{flex-direction:column;align-items:stretch;gap:9px}.design-tabs button{font-size:12px;padding:12px 14px;justify-content:flex-start}.design-tabs button[aria-pressed=true]{background:#203534;border-color:var(--teal)}.design-tabs button[data-feature=media][aria-pressed=true]{border-color:var(--gold);background:#2b2b20}.design-tabs button[data-feature=io][aria-pressed=true]{border-color:var(--red);background:#34252b}.design-panel #path-copy{min-height:230px}.design-panel #path-copy h3{font-size:30px;line-height:1.15}.design-panel .architecture-fact{margin-top:0}
.stack-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:85px;align-items:center;margin-top:70px;padding-top:55px;border-top:1px solid #30413c}.stack-copy h3{font-size:38px;line-height:1.15;margin-bottom:23px}.stack-copy h3 em{font-style:normal;color:var(--muted)}.stack-copy>p:not(.eyebrow){font-size:13px;color:var(--muted);max-width:450px;line-height:1.8}.stack-legend{display:flex;gap:22px;flex-wrap:wrap;margin:25px 0 20px;font-size:10px;color:#a9bcb2}.stack-legend .dot{width:5px;height:5px;margin-right:6px}.layer-stack{padding:24px;border:1px solid #354544;border-radius:7px;background:#0d171a}.stack-header{display:flex;justify-content:space-between;gap:12px;color:#9fb3aa;font:9px 'Courier New',monospace;margin-bottom:21px}.stack-header .mono{font-size:9px;color:var(--teal)}.layer-stack ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.layer-stack li{--layer:var(--gold);display:grid;grid-template-columns:29px 76px 1fr;align-items:center;padding:8px 12px;gap:10px;border:1px solid color-mix(in srgb,var(--layer) 40%,transparent);border-left:4px solid var(--layer);background:color-mix(in srgb,var(--layer) 9%,#101b1d);font-size:10px;position:relative}.layer-stack li:after{content:'';height:7px;width:calc(100% - 8px);position:absolute;top:100%;left:4px;background:repeating-linear-gradient(45deg,#253333 0 1px,transparent 1px 5px)}.layer-stack li:last-child:after{display:none}.layer-stack li.layer-ground{--layer:var(--teal)}.layer-stack li.layer-power{--layer:var(--red)}.layer-stack li>span:first-child{font:9px 'Courier New',monospace;color:var(--layer)}.layer-stack strong{font-weight:400;font-size:12px;color:var(--layer)}.layer-stack li>span:last-child{color:#b9c8bf}.layer-stack figcaption{font:9px/1.6 'Courier New',monospace;color:#819d92;margin-top:20px}.presenting .stack-layout{margin-top:45px}
@keyframes signal-flow{to{stroke-dashoffset:-34}}
@media(max-width:1100px){.design-layout{gap:30px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.design-map{padding:20px}.design-node strong{font-size:16px}.design-node small{font-size:9px}.design-nodes{column-gap:26px}.stack-layout{gap:40px}.stack-copy h3{font-size:32px}.design-map .map-top{flex-direction:column;gap:6px}.design-map #diagram-caption{text-align:left}}
@media(max-width:760px){.design-layout{display:flex;flex-direction:column;gap:30px}.design-map{width:100%;padding:18px 14px}.design-map .map-top{margin-bottom:24px;gap:8px}.design-map .map-top .mono,.design-map #diagram-caption{font-size:8px}.design-nodes{column-gap:25px;row-gap:57px}.design-node{padding:12px 7px;min-height:88px}.design-node strong{font-size:15px}.design-node small{font-size:9px}.node-kicker{font-size:7px;letter-spacing:.03em}.graph-memory .node-fpga,.graph-media .node-fpga,.graph-control .node-fpga,.graph-control .node-mcu,.graph-media .node-audio,.graph-control .node-ethernet{width:70%;min-height:94px}.graph-control{row-gap:57px}.graph-control .node-usb strong{font-size:13px}.design-map>figcaption{font-size:8px;line-height:1.6}.design-tabs{display:grid;grid-template-columns:1fr;gap:8px}.design-tabs button{font-size:12px;min-height:44px}.design-panel #path-copy{min-height:0}.design-panel #path-copy h3{font-size:27px}.design-panel .architecture-fact{margin-top:22px}.stack-layout{grid-template-columns:1fr;gap:27px;margin-top:45px;padding-top:38px}.stack-copy h3{font-size:32px}.stack-legend{gap:17px}.layer-stack{padding:20px 14px}.layer-stack li{grid-template-columns:20px 62px 1fr;font-size:9px;padding:8px;gap:6px}.layer-stack strong{font-size:11px}.layer-stack figcaption{font-size:8px}.stack-header .mono,.stack-header{font-size:8px}}
/* All physical connectors, grouped by role. */
.graph-ports{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ports-board{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:24px;padding:2px 0 22px;margin-bottom:8px;border-bottom:1px solid #2c4240}.ports-board img{width:165px;height:135px;object-fit:contain}.ports-board>div{display:flex;flex-direction:column;gap:8px}.ports-board .mono{font-size:8px;color:var(--teal)}.ports-board strong{font-size:27px;font-weight:400;letter-spacing:-.04em;line-height:1.2}.ports-board small{font-size:10px;color:#9cb6ad}.graph-ports .design-node{min-height:145px;padding:13px 8px;justify-content:flex-start}.graph-ports .design-node strong{font-size:17px}.graph-ports .design-node small{font-size:9px;white-space:pre-line;line-height:1.55}.graph-ports .node-kicker{font-size:8px;letter-spacing:.04em;margin-bottom:5px}.port-icon{color:var(--teal);height:35px;margin:0 auto 9px;display:block}.port-icon svg{width:42px;height:35px}.tone-coral .port-icon{color:var(--red)}.tone-gold .port-icon{color:var(--gold)}.tone-muted .port-icon{color:var(--muted)}.port-controls-note{margin-top:25px;border-top:1px solid #30473f;padding-top:20px}.port-controls-note .mono{font-size:9px;color:var(--teal)}#path-copy .port-controls-note p{font-size:11px;margin:12px 0 20px;line-height:1.9}.design-tabs button[data-feature=ports][aria-pressed=true]{border-color:var(--teal);background:#203534}
@media(max-width:1100px){.graph-ports{grid-template-columns:repeat(2,minmax(0,1fr))}.ports-board{gap:12px}.ports-board img{width:120px;height:110px}.ports-board strong{font-size:22px}.ports-board .mono{font-size:7px}}
@media(max-width:760px){.graph-ports{gap:10px}.graph-ports .design-node{min-height:147px;padding:12px 7px}.graph-ports .design-node strong{font-size:15px}.graph-ports .node-kicker{font-size:7px}.graph-ports .design-node small{font-size:9px}.ports-board{gap:10px;padding-bottom:17px}.ports-board img{width:112px;height:100px}.ports-board strong{font-size:22px}.ports-board small{font-size:9px}.ports-board .mono{font-size:7px}#board-viewer .view-actions{gap:2px}#board-viewer .view-actions button{font-size:9px;padding-inline:5px}}

#component-visibility{flex-wrap:wrap}
@media(max-width:760px){.board-models{display:grid;grid-template-columns:1fr 1fr;flex:1}.board-models button{min-height:38px;font-size:10px}.sidi-viewer .viewer-toolbar{height:auto;min-height:100px;padding-block:10px;gap:6px;align-items:flex-start}.sidi-viewer #explode-controls{flex-wrap:wrap;gap:10px}.sidi-viewer #explode-controls label{flex:1;min-width:125px}.sidi-viewer #explode-controls input{flex:1;width:0;min-width:40px}}
