@font-face{font-family:saira;src:url(/fonts/saira-latin.woff2)format("woff2");font-weight:100 900;font-stretch:50% 125%;font-display:swap}@font-face{font-family:dotgothic16;src:url(/fonts/dotgothic16-latin.woff2)format("woff2");font-weight:400;font-display:block}:root{--bg:#eef1f0;--sheet:#f8faf9;--ink:#0f1516;--muted:#4d5957;--line:#d3dad8;--accent:#0a7064;--accent-ink:#ffffff;--glass:#060808;--glass-edge:#1c2527;--vfd:#72f2e2;--vfd-dim:#4a8f87;--vfd-off:#1d3634;--vfd-ghost:#0f1e1d;--bezel:#c9d1cf;--stage:none;--rim:drop-shadow(0 0 0 transparent);--sans:"Saira", system-ui, sans-serif;--dots:"DotGothic16", ui-monospace, monospace;--gutter:clamp(1rem, 4vw, 3rem);--wide:72rem;--measure:40rem;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a0d0e;--sheet:#111617;--ink:#e3eae8;--muted:#97a5a2;--line:#232d2e;--accent:#34b3a4;--accent-ink:#03201c;--glass:#030404;--glass-edge:#2c393b;--bezel:#1a2224;--stage:radial-gradient(ellipse 50% 50% at 50% 50%, rgb(150 185 180 / 0.16), transparent 100%);--rim:drop-shadow(0 0 0.5px rgb(190 215 210 / 0.55));color-scheme:dark}}:root[data-theme=dark]{--bg:#0a0d0e;--sheet:#111617;--ink:#e3eae8;--muted:#97a5a2;--line:#232d2e;--accent:#34b3a4;--accent-ink:#03201c;--glass:#030404;--glass-edge:#2c393b;--bezel:#1a2224;--stage:radial-gradient(ellipse 50% 50% at 50% 50%, rgb(150 185 180 / 0.16), transparent 100%);--rim:drop-shadow(0 0 0.5px rgb(190 215 210 / 0.55));color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.6}::selection{background:var(--accent);color:var(--accent-ink)}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{color:var(--accent);text-decoration-color:initial}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.skip{position:absolute;left:-999px}.skip:focus{left:var(--gutter);top:.5rem;z-index:10;padding:.5rem .75rem;background:var(--ink);color:var(--bg)}.display{margin:0;font-size:clamp(3.25rem,11vw,5.75rem);font-stretch:110%;font-weight:600;letter-spacing:-.025em;line-height:.95}.product h2{margin:0 0 1rem;font-size:1.375rem;font-stretch:108%;font-weight:600;letter-spacing:-.01em;line-height:1.25;text-wrap:balance}.product h3{margin:0 0 .25rem;font-size:1.0625rem;font-weight:600}.page h1{margin:0 0 1.25rem;font-size:clamp(2.25rem,7vw,3.25rem);font-stretch:110%;font-weight:600;letter-spacing:-.025em;line-height:1;text-wrap:balance}.page h2{margin:2.5rem 0 .75rem;font-size:1.375rem;font-stretch:108%;font-weight:600;letter-spacing:-.01em;line-height:1.25}.page ul{margin:0 0 1rem;padding-left:1.25rem}.page ul ul{margin:.4rem 0 0}.page li+li{margin-top:.4rem}.page li::marker{color:var(--muted)}.page strong{font-weight:600}.page .page-updated{color:var(--muted);font-size:.9375rem}.product p,.product ul,.product ol,.page p{margin:0 0 1rem}.product ul,.product ol{padding-left:1.25rem}.product li+li{margin-top:.4rem}.product li::marker{color:var(--muted)}.product ol li::marker{color:var(--accent);font-family:var(--dots)}.product code{font-family:ui-monospace,sfmono-regular,Menlo,monospace;font-size:.875em}.product strong{font-weight:600}.button{display:inline-block;padding:.75rem 1.25rem;border-radius:6px;background:var(--accent);color:var(--accent-ink);font-weight:600;line-height:1.2;text-decoration:none;transition:filter .2s ease-out}.button:hover{color:var(--accent-ink);filter:brightness(1.12)}.button-quiet{border:1px solid var(--accent);background:0 0;color:var(--accent)}.button-quiet:hover{background:var(--accent);color:var(--accent-ink);filter:none}.masthead{display:flex;align-items:center;gap:1.5rem;max-width:var(--wide);margin:0 auto;padding:1rem var(--gutter)}.wordmark{margin-right:auto;font-weight:700;letter-spacing:-.02em;text-decoration:none}.wordmark span{color:var(--muted);font-weight:500}.masthead nav{display:flex;gap:1.25rem}.masthead nav a{color:var(--muted);text-decoration:none}.masthead nav a[aria-current=page]{color:var(--ink)}.theme-toggle{display:grid;place-items:center;width:2.5rem;height:2.5rem;margin-right:-.5rem;padding:0;border:0;border-radius:6px;background:0 0;color:var(--muted);cursor:pointer}.theme-toggle:hover{color:var(--ink);background:var(--sheet)}.theme-toggle svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.icon-sun{display:none}:root[data-theme=dark] .icon-sun{display:block}:root[data-theme=dark] .icon-moon{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .icon-sun{display:block}:root:not([data-theme=light]) .icon-moon{display:none}}.colophon{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;max-width:var(--wide);margin:5rem auto 0;padding:1.5rem var(--gutter)2.5rem;border-top:1px solid var(--line);color:var(--muted);font-size:.9375rem}.colophon p{margin:0}.colophon-links{display:flex;gap:1.25rem}.hero{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem 3rem;align-items:center;max-width:var(--wide);margin:0 auto;padding:clamp(1.5rem,5vw,4rem)var(--gutter)0}.lede{max-width:28ch;margin:1.25rem 0 1.75rem;font-size:clamp(1.1875rem,2.2vw,1.4375rem);line-height:1.35;letter-spacing:-.01em;text-wrap:pretty}.cta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin:0}.cta-note{color:var(--muted);font-size:.9375rem}.hero-board{margin:0;background:var(--stage)}.hero-board img{filter:var(--rim)drop-shadow(0 24px 28px rgb(0 0 0/.18))}@media(min-width:60rem){.hero{grid-template-columns:minmax(0,5fr)minmax(0,6fr)}.hero-board{margin-right:calc(-1 * var(--gutter))}}.vfd{grid-column:1/-1;margin-top:clamp(.5rem,2vw,1.5rem)}.vfd-glass{display:grid;grid-template-columns:minmax(0,1fr)auto;gap:.5rem 1.5rem;align-items:end;padding:clamp(.9rem,2.5vw,1.4rem)clamp(1rem,3.5vw,2.25rem)clamp(.9rem,2.5vw,1.25rem);border-radius:10px;background:linear-gradient(180deg,rgb(255 255 255/5%),transparent 45%),var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge),inset 0 2px 10px rgb(0 0 0/.8),0 0 0 5px var(--bezel),0 14px 30px -18px rgb(0 0 0/.55);color:var(--vfd);font-family:var(--dots)}.vfd-flags{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin:0 0 .25rem;color:var(--vfd-off);font-size:.75rem;letter-spacing:.12em}.vfd-flags .is-lit{color:var(--vfd);text-shadow:0 0 8px rgb(114 242 226/.5)}.vfd-readout,.vfd-source{margin:0;background:radial-gradient(circle,var(--vfd-ghost) .9px,transparent 1.3px)0 0/5px 5px;white-space:nowrap;overflow:hidden;text-shadow:0 0 14px rgb(114 242 226/.45)}.vfd-readout{font-size:clamp(2.25rem,9vw,4.5rem);letter-spacing:.08em;line-height:1.15}.vfd-source{min-width:8ch;font-size:clamp(1rem,3.2vw,1.75rem);letter-spacing:.1em;line-height:1.3;text-align:right}.vfd.is-standby .vfd-readout{color:var(--vfd-dim);text-shadow:none}.vfd-links{grid-column:1/-1;display:grid;grid-template-columns:repeat(var(--stops),minmax(0,1fr));gap:.25rem;padding-top:.75rem;border-top:1px solid var(--glass-edge)}.vfd-links a{position:relative;padding:.5rem .25rem .75rem;border-radius:4px;color:var(--vfd-dim);font-size:clamp(.75rem,2.4vw,1rem);letter-spacing:.08em;line-height:1.2;text-align:center;text-decoration:none;text-transform:uppercase;transition:color .15s ease-out,text-shadow .15s ease-out}.vfd-links a::after{content:"";position:absolute;left:30%;right:30%;bottom:.25rem;height:3px;border-radius:1px;background:currentColor;opacity:.35;transition:opacity .15s ease-out,box-shadow .15s ease-out}.vfd-links a:hover,.vfd-links a:focus-visible{color:var(--vfd);text-shadow:0 0 8px rgb(114 242 226/.5)}.vfd-links a:hover::after,.vfd-links a:focus-visible::after{opacity:1;box-shadow:0 0 8px rgb(114 242 226/.7)}.vfd-links a:focus-visible{outline-color:var(--vfd);outline-offset:-2px}.vfd-text{max-width:44rem;margin:.9rem 0 0;color:var(--muted)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.block>h2{scroll-margin-top:1.5rem}.product,.page{max-width:var(--wide);margin:0 auto;padding:0 var(--gutter)}.page{max-width:calc(var(--measure) + 2 * var(--gutter));padding-top:3rem}.block{padding:3rem 0 2rem;border-top:1px solid var(--line)}.product .block:first-child{margin-top:clamp(2.5rem,6vw,4.5rem)}@media(min-width:56rem){.block{display:grid;grid-template-columns:14rem minmax(0,var(--measure));column-gap:clamp(2rem,5vw,5rem);align-content:start}.block>*{grid-column:2}.block>h2{grid-column:1;grid-row:1/span 20;align-self:start;margin-top:-.1rem}}.guide{max-width:var(--wide);margin:0 auto;padding:0 var(--gutter)}.guide-head{padding:clamp(1.5rem,5vw,4rem)0 clamp(1.5rem,4vw,2.5rem);border-bottom:1px solid var(--line)}.guide-head h1{margin:0;font-size:clamp(2.25rem,7vw,3.75rem);font-stretch:110%;font-weight:600;letter-spacing:-.025em;line-height:1;text-wrap:balance}.guide-head .lede{max-width:34ch;margin-bottom:0}.guide-toc ul{margin:0;padding:0;list-style:none}.guide-toc a{display:block;padding:.3rem 0;color:var(--muted);font-size:.9375rem;line-height:1.35;text-decoration:none}.guide-toc a:hover{color:var(--accent)}.guide-toc li{break-inside:avoid}.guide-toc ul ul{columns:auto;padding-left:.85rem}.guide-toc ul ul a{padding:.15rem 0;font-size:.875rem}.guide-toc{padding:1.25rem 0;border-bottom:1px solid var(--line)}.guide-toc ul{columns:2;column-gap:1.5rem}.guide-text{padding-top:2rem;counter-reset:step}.guide-text>p,.guide-text>ul,.guide-text>ol,.guide-text>pre{margin:0 0 1rem}.guide-text ul{padding-left:1.25rem}.guide-text li+li{margin-top:.35rem}.guide-text li::marker{color:var(--muted)}.guide-text strong{font-weight:600}.guide-text h2{display:flex;align-items:baseline;gap:.75rem;margin:3rem 0 1rem;padding-top:2rem;border-top:1px solid var(--line);font-size:1.375rem;font-stretch:108%;font-weight:600;letter-spacing:-.01em;line-height:1.25;scroll-margin-top:1rem}.guide-text h2::before{counter-increment:step;content:counter(step,decimal-leading-zero);color:var(--accent);font-family:var(--dots);font-size:1rem;font-weight:400}.guide-text code{padding:.1em .3em;border-radius:4px;background:var(--sheet);font-family:ui-monospace,sfmono-regular,Menlo,monospace;font-size:.875em;overflow-wrap:anywhere}.guide-text pre,.product pre{padding:.9rem 1rem;border:1px solid var(--line);border-radius:8px;background:var(--sheet);overflow-x:auto;font-size:.875rem;line-height:1.55;tab-size:2}.product pre{margin:0 0 1rem}.codeblock{position:relative;margin:0 0 1rem}.guide-text .codeblock pre,.product .codeblock pre{margin:0;padding-right:5.5rem}.copy{position:absolute;top:1px;right:1px;padding:.45rem .75rem;border:0;border-left:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0 7px 0 6px;background:var(--sheet);box-shadow:-14px 0 12px -2px var(--sheet);color:var(--muted);font:inherit;font-size:.8125rem;font-weight:500;line-height:1.2;cursor:pointer;transition:color .15s ease-out,border-color .15s ease-out}.copy:hover{color:var(--ink)}.copy.is-done{color:var(--accent)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.guide-text pre code,.product pre code{padding:0;background:0 0;font-size:inherit;overflow-wrap:normal}@media(min-width:56rem){.guide-body{display:grid;grid-template-columns:14rem minmax(0,var(--measure));column-gap:clamp(2rem,5vw,5rem);align-items:start}.guide-toc{position:sticky;top:1.5rem;padding:2.25rem 0 0;border:0}.guide-toc ul{columns:auto}}.board-figure{margin:0 0 1.75rem;background:var(--stage)}.board-figure img{filter:var(--rim)}.board-figure figcaption,.hookup figcaption{margin-top:.6rem;color:var(--muted);font-size:.875rem}.hookup{margin:1.75rem 0 2rem}.hookup-chain{display:grid;justify-items:start;margin:0;padding:0;list-style:none}.product .hookup-chain li+li{margin-top:0}.hookup-node{display:grid;gap:.1rem;padding:.7rem .95rem;border:1px solid var(--line);border-radius:8px;background:var(--sheet);line-height:1.3}.hookup-node.is-board{border-color:var(--glass-edge);background:var(--glass);color:var(--vfd)}.hookup-name{font-weight:600}.hookup-note{color:var(--muted);font-size:.875rem}.is-board .hookup-note{color:#7fb3ac}.hookup-link{display:grid;gap:.3rem;margin-left:1.5rem;padding:.7rem 0 .7rem 1rem;border-left:2px solid var(--ink);color:var(--muted);font-size:.875rem;line-height:1.3}.hookup-link.is-wireless{border-left-style:dashed}.hookup-link.is-pair{border-left-style:double;border-left-width:6px}.hookup-link b{display:inline-block;min-width:2.6rem;color:var(--ink);font-weight:600}@media(min-width:48rem){.hookup-chain{grid-template-columns:minmax(8.5rem,auto)minmax(3rem,.5fr)minmax(9.5rem,auto)minmax(max-content,1fr)minmax(7.5rem,auto);align-items:center;justify-items:stretch}.hookup-node{align-self:stretch;align-content:center}.hookup-link{grid-template-rows:1fr auto 1fr;gap:.35rem;margin:0;padding:0 .75rem;border:0;text-align:center;white-space:nowrap}.hookup-link.is-wireless,.hookup-link.is-pair{border-left:0}.hookup-link>:first-child{grid-row:1;align-self:end}.hookup-link>:nth-child(2){grid-row:3;align-self:start}.hookup-link::after{content:"";grid-row:2;grid-column:1;margin:0 -.75rem;border-bottom:2px solid var(--ink)}.hookup-link.is-wireless::after{border-bottom-style:dashed}.hookup-link.is-pair::after{border-bottom:6px double var(--ink)}.hookup-link b{min-width:0;margin-right:.25rem}}.kits{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;align-items:start;margin:0 0 1.25rem}.kit{padding:1.25rem 1.25rem .5rem;border:1px solid var(--ink);border-radius:8px;background:var(--sheet)}.product .kit-price{margin-bottom:.75rem;font-weight:600;font-variant-numeric:tabular-nums}.kit.is-unavailable{border:1px dashed var(--muted);background:0 0;color:var(--muted)}.compat{margin:0 0 1rem;overflow-x:auto}.compat table{width:100%;border-collapse:collapse;font-size:.9375rem}.compat th,.compat td{padding:.6rem 1rem .6rem 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;white-space:nowrap}.compat thead th{color:var(--muted);font-size:.8125rem;font-weight:500}.compat tbody th{font-weight:600}.lamp{display:inline-flex;align-items:center;gap:.45rem;color:var(--muted)}.lamp::before{content:"";width:.55rem;height:.55rem;border:1.5px solid;border-radius:50%;opacity:.6}.lamp.is-lit{color:var(--ink)}.lamp.is-lit::before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 6px color-mix(in srgb,var(--accent) 60%,transparent);opacity:1}.note-ref{margin-left:.1rem;color:var(--accent);font-size:.75em;vertical-align:super;line-height:0;text-decoration:none}.product .compat-note{margin-top:-.25rem;color:var(--muted);font-size:.875rem}.compat-note span{color:var(--accent)}@media(max-width:39.99rem){.compat thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.compat table,.compat tbody,.compat tr,.compat th,.compat td{display:block}.compat tbody th{padding-top:0}.compat td{display:flex;justify-content:space-between;padding-right:0}.compat td::before{content:attr(data-label);color:var(--muted)}}.order p:last-child{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}.order-address{color:var(--muted)}.intro{max-width:var(--wide);margin:0 auto;padding:clamp(2rem,7vw,5rem)var(--gutter)1rem}.intro .prose{max-width:34rem;margin-top:1.25rem;font-size:clamp(1.1875rem,2.2vw,1.375rem);line-height:1.4}.intro .prose p{margin:0}.projects{max-width:var(--wide);margin:2rem auto 0;padding:0 var(--gutter);list-style:none}.project{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem 2rem;align-items:center;padding:clamp(1.25rem,3vw,2rem);border:1px solid var(--line);border-radius:10px;background:var(--sheet);text-decoration:none;transition:border-color .2s ease-out}.project:hover{color:inherit;border-color:var(--accent)}.project-text{display:grid;gap:.5rem}.project-name{font-size:clamp(2rem,6vw,3.25rem);font-stretch:110%;font-weight:600;letter-spacing:-.025em;line-height:1}.project-summary{max-width:32ch;color:var(--muted);font-size:1.0625rem;line-height:1.45}@media(min-width:48rem){.project{grid-template-columns:minmax(0,1fr)minmax(0,1fr)}.project img{order:2}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}