@font-face{font-family:"IBM Plex Mono";font-weight:600;font-display:swap;src:url(fonts/IBMPlexMono-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:"IBM Plex Mono";font-weight:600;font-display:swap;src:url(fonts/IBMPlexMono-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-024F,U+1E00-1EFF}
/* location */
.fh{margin:0 0 1.5rem;max-width:1056px}
.fh-fig,.fb-inner{position:relative;margin:0;line-height:0}
.fh-img,.fb-img{display:block;width:100%;height:auto}
.fh-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.fh-fill{fill:#ffc400;fill-opacity:.5;stroke:none}
.fh-in{fill:none;stroke:#ffc400;stroke-width:6;vector-effect:non-scaling-stroke}
.fh-out{fill:none;stroke:#1b1a17;stroke-width:4;vector-effect:non-scaling-stroke;stroke-linejoin:miter}

.fh-halo{stroke:#fffdf7;stroke-width:4;vector-effect:non-scaling-stroke;stroke-linecap:round}
.fh-lead{stroke:#1b1a17;stroke-width:2;vector-effect:non-scaling-stroke}
.fh-dash-h{fill:none;stroke:#fffdf7;stroke-width:4;vector-effect:non-scaling-stroke}
.fh-dash{fill:none;stroke:#1b1a17;stroke-width:2;stroke-dasharray:7 5;vector-effect:non-scaling-stroke}
.fh-tag{position:absolute;top:22px;left:22px;line-height:1;background:#fffdf7;color:#1b1a17;border:2px solid #1b1a17;padding:4px 7px;font:600 11px/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}
.fh-c{position:absolute;width:24px;height:24px;margin:-12px 0 0 -12px;box-sizing:border-box;border:2px solid #1b1a17;border-radius:50%;background:#ffc400;color:#1b1a17;display:flex;align-items:center;justify-content:center;font:600 12px/1 "IBM Plex Mono",ui-monospace,monospace}
.fh-steps{margin:.75rem 0 0;padding:0;list-style:none;counter-reset:s;font-size:16px;line-height:1.45}
.fh-steps li{counter-increment:s;display:flex;gap:.6rem;align-items:flex-start;margin:.45rem 0;color:#1b1a17}
.fh-steps li::before{content:counter(s);flex:0 0 24px;height:24px;box-sizing:border-box;border:2px solid #1b1a17;border-radius:50%;background:#ffc400;display:flex;align-items:center;justify-content:center;font:600 12px/1 "IBM Plex Mono",ui-monospace,monospace}
@media (max-width:600px){.fh-steps{font-size:16px}}
.fh-a21{left:24.716%;top:65.132%}.fh-a22{left:62.121%;top:34.704%}
.fh-b1{left:62.121%;top:75.000%}.fh-b2{left:19.508%;top:51.974%}
.fh-c21{left:85.322%;top:30.592%}.fh-c22{left:95.739%;top:73.355%}
/* slot diagram (pure SVG, scales to container) */
.fb{max-width:1056px;margin:0 0 1.5rem}
.fb-cap{font:600 13px/1.4 "IBM Plex Mono",ui-monospace,monospace;text-transform:uppercase;letter-spacing:.03em;color:#1b1a17;margin:0 0 .4rem}
.fb-fig{margin:0 0 .75rem}
.fb-fig .fh-tag{position:static;display:inline-block;margin:0 0 6px}
.fbx{display:block;width:100%;height:auto}
.fb-full{max-width:640px}
.fb-m{display:none}
.fb-half{max-width:420px;margin:0 0 10px}
@media (max-width:600px){.fb-d{display:none}.fb-m{display:block}}
.fb-sch.fb-w1{max-width:84px}.fb-sch.fb-w2{max-width:148px}.fb-sch.fb-w3{max-width:212px}.fb-sch.fb-w4{max-width:276px}.fb-sch.fb-w5{max-width:340px}.fb-sch.fb-w6{max-width:404px}
.fb-house{fill:#e9e3d6;stroke:#1b1a17;stroke-width:2.5;stroke-linejoin:miter}
.fb-relay{fill:#cfc9bc;stroke:#1b1a17;stroke-width:1.5}
.fb-empty{fill:#fffdf7;stroke:#1b1a17;stroke-width:1.2}
.fb-b,.fb-uv{stroke:#1b1a17;stroke-width:1.5}
.fb-plate{fill:#fffdf7}
.fb-n,.fb-a{font-family:"IBM Plex Mono",ui-monospace,monospace;font-weight:600;text-anchor:middle;fill:#1b1a17}
.fb-n{font-size:17px}.fb-ng{fill:#6b6457;font-weight:500}.fb-rl{font-size:18px}
.fb-a{font-size:15px}.fb-tl{fill:#fffdf7}
.fb-hbg{fill:#cfc9bc}.fb-hl{stroke:#8a8478;stroke-width:3}
.fb-a5{fill:#c8a46e}.fb-a7_5{fill:#7a4a26}.fb-a10{fill:#d22f27}.fb-a15{fill:#2a62c9}.fb-a20{fill:#f4c518}.fb-a25{fill:#fff}.fb-a30{fill:#2f9e4a}.fb-a40{fill:#ef8a17}
.fb-note{font-size:14px;color:#4a463e;margin:.5rem 0 0}
@media (max-width:600px){.fb-note{font-size:15px}}
