:root{color-scheme:dark;--bg:#080d0b;--panel:#0e1512;--panel2:#111b16;--pale:#dce9dc;--secondary:#a1b3a5;--muted:#667d70;--edge:#24372b;--edge2:#17291e;--green:#a5ef95;--bright:#d8ffbe;--red:#ffad95;--amber:#edd6a1;--font:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--pale);font-family:var(--font);font-size:13px;line-height:1.7;-webkit-font-smoothing:antialiased}::selection{color:#061307;background:var(--green)}button,input{font-family:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:3px}a{color:var(--green);text-decoration:none;border-bottom:1px solid #487750}a:hover{color:var(--bright);border-color:var(--bright)}.topbar{height:64px;position:sticky;top:0;z-index:50;background:#0b100eeb;border-bottom:1px solid var(--edge);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 28px;backdrop-filter:blur(12px)}.brand{white-space:nowrap;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:850;letter-spacing:-.03em;color:var(--bright)}.brand .soft{color:#6b9a65;padding:0 1px}.brand-glyph{font-size:28px;color:var(--green);margin-right:4px;font-weight:400}.brand-sub{border-left:1px solid var(--edge);padding-left:13px;margin-left:7px;font-size:9px;letter-spacing:.1em;color:var(--muted);font-weight:500}.top-middle{font-size:10px;letter-spacing:.08em;color:var(--secondary);white-space:nowrap}.online-pip{display:inline-block;width:7px;height:7px;background:var(--green);box-shadow:0 0 12px #a5ef9575;border-radius:50%;margin-right:5px}.sep{color:#3b5c43;margin:0 9px}.top-actions{display:flex;gap:9px;align-items:center}.top-actions button{background:transparent;border:1px solid var(--edge);color:var(--secondary);font-size:10px;font-weight:700;padding:8px 12px;letter-spacing:.07em}.top-actions button:hover{background:var(--panel2);color:var(--green)}.top-actions .mag{font-size:18px;vertical-align:-2px;margin-right:5px}.top-actions kbd{margin-left:11px}.top-actions #menu{display:none;font-size:18px;padding:3px 12px}kbd{border:1px solid var(--edge);background:#142017;border-radius:3px;padding:1px 5px;font-size:10px;color:#a6bba9}.layout{display:grid;grid-template-columns:278px minmax(0,1fr) 218px;max-width:1920px;margin:auto;min-height:calc(100vh - 64px)}.sidebar{border-right:1px solid var(--edge);height:calc(100vh - 64px);overflow:auto;position:sticky;top:64px;scrollbar-color:#253f2f transparent;scrollbar-width:thin;background:#0a100d}.nav-intro{padding:25px 19px 8px}.nav-caption{color:var(--green);font-size:11px;margin-bottom:12px}.nav-heading{color:var(--pale);font-size:12px;font-weight:750;letter-spacing:.05em;display:flex;justify-content:space-between;align-items:center}.nav-total{font-size:9px;font-weight:400;color:var(--muted)}.filter-wrap{display:flex;align-items:center;gap:8px;border:1px solid #2b4935;padding:9px 11px;margin-top:14px;color:var(--green);background:#0f1a13}.filter-wrap>span{font-size:18px;line-height:1}.filter-wrap input{width:100%;background:transparent;color:var(--pale);border:0;outline:0;font-size:11px;min-width:0}.filter-wrap:focus-within{border-color:var(--green)}input::placeholder{color:#69806d}.search-hint{font-size:10px;color:var(--muted);margin-top:8px}.nav-group{padding:17px 0 7px}.nav-group-title{padding:0 20px 8px;color:#708979;font-size:10px;letter-spacing:.11em;display:flex;align-items:center;gap:10px}.group-mark{border:1px solid #314936;padding:0 4px;font-size:9px;color:#9aaf9b}.nav-item{width:100%;background:transparent;color:#94a99b;border:0;border-left:2px solid transparent;text-align:left;display:flex;align-items:center;gap:11px;padding:8px 17px;font-size:11px;line-height:1.35;transition:background .1s}.nav-item:hover{background:#142018;color:var(--pale)}.nav-item.active{color:var(--green);background:#132219;border-left-color:var(--green)}.nav-no{color:#576e60;font-size:10px}.nav-item.active .nav-no{color:var(--green)}.nav-name{flex:1}.nav-done{color:#4c6454;font-size:15px}.nav-item.completed .nav-done{color:var(--green)}.nav-item.completed .nav-done:after{content:'✓'}.nav-item.completed .nav-done{font-size:0}.nav-item.completed .nav-done:after{font-size:12px}.sidebar-end{border-top:1px solid var(--edge);padding:20px;color:#6e8372;font-size:10px;display:flex;gap:8px}.sidebar-end>span:last-child{margin-left:auto}.green{color:var(--green)}main{position:relative;min-width:0;min-height:100vh}.reading-progress{height:2px;width:0;background:var(--green);position:sticky;top:64px;z-index:4;box-shadow:0 0 10px #a5ef9588}.welcome-bar{height:49px;display:flex;align-items:center;gap:13px;justify-content:space-between;padding:0 clamp(22px,5vw,66px);border-bottom:1px solid var(--edge2);background:radial-gradient(ellipse at 60% 0%,#152419 0%,transparent 62%),#0c130f;font-size:11px;color:var(--secondary)}.prompt-symbol{color:var(--green);margin-right:8px}.signal-bars{display:flex;align-items:end;gap:3px;height:18px}.signal-bars i{display:block;width:3px;background:#75b37a}.signal-bars i:nth-child(1){height:6px}.signal-bars i:nth-child(2){height:12px}.signal-bars i:nth-child(3){height:17px}.signal-bars i:nth-child(4){height:9px}.signal-bars i:nth-child(5){height:5px}.welcome-note{color:#728e78}.hero{padding:59px clamp(22px,5vw,66px) 55px;background:radial-gradient(circle at 85% 8%,#1a362052 0%,transparent 32%),linear-gradient(140deg,#0d1610,#0b110e 66%,#111a11);border-bottom:1px solid var(--edge)}.hero-kicker{display:flex;gap:20px;align-items:center;font-size:10px;letter-spacing:.13em;color:#7d9c85}.terminal-green{color:var(--green)}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,32%);gap:35px;align-items:center;margin-top:25px}.hero-overline{font-size:10px;color:#a8cb9f;letter-spacing:.14em;margin-bottom:16px}.hero-title{font-size:clamp(43px,5vw,76px);line-height:.98;letter-spacing:-.065em;color:#d6f4d0;font-weight:750;margin:0 0 22px}.hero-title>span:not(.blink){color:#9ce08c}.blink{color:var(--green);font-size:.85em;animation:blink 1.2s step-end infinite}@keyframes blink{50%{opacity:0}}.hero p{font-size:12px;line-height:1.9;max-width:570px;color:#aec3af;margin:0}.hero-commands{display:flex;align-items:center;gap:19px;flex-wrap:wrap;margin-top:25px}.hero-commands button{background:var(--green);border:1px solid var(--green);color:#0a160a;font-size:10px;letter-spacing:.07em;font-weight:850;padding:11px 17px}.hero-commands button:hover{background:#d1ffb8}.hero-commands span{font-size:9px;color:#728b77}.hero-commands b{color:#3d6447;margin:0 4px}.hero-terminal{border:1px solid #294a2e;background:#09100c;min-width:0;box-shadow:0 17px 60px #0008}.mini-terminal-head{height:35px;background:#142118;border-bottom:1px solid #26432b;display:flex;align-items:center;gap:6px;padding:0 14px;color:#708b72;font-size:9px;letter-spacing:.12em}.term-dot{width:7px;height:7px;border:1px solid #668769;border-radius:50%;display:inline-block}.term-dot:nth-child(3){margin-right:10px}.mini-terminal-body{padding:17px;color:#bbceba;font-size:10px;line-height:1.8}.mini-terminal-body>div{white-space:nowrap}.mini-terminal-body .term-num{color:#5f956a;padding-right:5px}.mini-terminal-body i{font-style:normal;color:#79aa74;float:right}.mini-terminal-body .tree-line{color:#315338;line-height:1}.term-result{margin-top:14px;border-top:1px dashed #29482e;padding-top:12px;color:var(--green)}.term-result span{color:#a5ef95;margin-right:5px}.chapter-container{max-width:1020px;padding:34px clamp(22px,5vw,66px) 40px;margin:0 auto}.chapter-eyebrow{display:flex;align-items:center;gap:9px;color:#9cc79d;font-size:10px;letter-spacing:.08em;margin:10px 0 24px}.dim{color:#587a5c}.seg{color:#345a3c}.chapter>h1{font-size:clamp(25px,2.7vw,36px);letter-spacing:-.045em;line-height:1.25;color:#e3f5db;margin:0 0 23px;padding-bottom:22px;border-bottom:1px solid var(--edge);font-weight:750}.chapter>h1:before{content:'#';color:var(--green);margin-right:12px;font-weight:500}.chapter h2{font-size:16px;letter-spacing:-.015em;margin:39px 0 14px;color:#cbebc7;font-weight:750;scroll-margin-top:92px}.chapter h2:before{content:'//';color:#669f67;margin-right:11px;font-size:14px}.chapter h3{font-size:13px;color:var(--green);margin:29px 0 12px;scroll-margin-top:92px}.chapter p{color:#b6c6b8;margin:12px 0;line-height:1.9;max-width:860px}.chapter strong{color:#e7f4dc;font-weight:700}.chapter em{color:#d2d6b1}.chapter ul,.chapter ol{padding-left:23px;color:#afc2b1;margin:15px 0}.chapter li{padding-left:5px;margin:7px 0;line-height:1.75}.chapter li::marker{color:#78ab7e}.chapter blockquote{border-left:2px solid var(--green);background:#132018;padding:16px 21px;margin:21px 0;color:#dce8d2}.chapter blockquote p{margin:0;color:#d9e6d1}.chapter code:not(pre code){font-size:.92em;background:#1b2a1f;color:#b7efaa;padding:2px 5px;overflow-wrap:anywhere}.chapter a{overflow-wrap:anywhere}.chapter hr{border:0;border-top:1px solid var(--edge);margin:35px 0}.chapter table{border-collapse:collapse;display:block;overflow-x:auto;margin:20px 0 27px;font-size:11px;scrollbar-color:#294c32 transparent}.chapter th,.chapter td{padding:11px 13px;text-align:left;vertical-align:top;border:1px solid #263a2b;min-width:110px}.chapter th{background:#16241a;color:#c0eac1;font-weight:700;white-space:normal}.chapter td{background:#0e1611;color:#adbfad}.chapter tr:nth-child(even) td{background:#101b14}.chapter td code{white-space:normal}.codebox{margin:22px 0 24px;background:#060b08;border:1px solid #2b4930;overflow:hidden}.code-head{height:34px;border-bottom:1px solid #26402d;background:#101b13;display:flex;justify-content:space-between;align-items:center;padding:0 13px}.code-lang{font-size:10px;color:#7eac83;letter-spacing:.09em;text-transform:uppercase}.code-head button{font-size:10px;color:#8fba94;background:transparent;border:0;padding:5px 3px;letter-spacing:.05em}.code-head button:hover{color:var(--bright)}.codebox pre{padding:19px 18px 21px;margin:0;overflow:auto;color:#bad9b7;font-size:11px;line-height:1.85;tab-size:4;scrollbar-color:#294c32 transparent}.codebox pre code{white-space:pre;display:block;min-width:max-content}.codebox .k,.codebox .kt,.codebox .kd{color:#c1e59d}.codebox .s,.codebox .s1,.codebox .s2{color:#c5aee1}.codebox .mi,.codebox .mf,.codebox .mh{color:#ebbd8c}.codebox .c,.codebox .c1,.codebox .cm,.codebox .cp{color:#65846d}.codebox .nf,.codebox .na{color:#a5cedc}.codebox .nb{color:#b7c9f5}.codebox .o{color:#91baa3}.codebox .p{color:#9cb49f}.codebox .n{color:#b7d0b9}.chapter-footer{border-top:1px solid var(--edge);display:flex;justify-content:space-between;align-items:center;gap:15px;padding:25px 0;margin-top:48px;color:#6a8e73;font-size:11px}.complete-btn{color:var(--green);border:1px solid #467347;background:#102116;padding:10px 13px;font-size:10px;font-weight:750;letter-spacing:.06em}.complete-btn:hover,.complete-btn.done{color:#0c1a0f;background:var(--green)}.complete-icon{margin-right:6px}.bottom-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--edge);margin-top:0;padding-top:24px}.bottom-nav button{border:1px solid #33553b;color:#aed4af;background:#101d14;padding:11px 17px;font-size:10px;font-weight:700;letter-spacing:.05em}.bottom-nav button:not(:disabled):hover{background:var(--green);color:#071106}.bottom-nav button:disabled{opacity:.28;cursor:default}#navstate{font-size:10px;color:#607963}.site-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#56705b;border-top:1px solid var(--edge);padding:20px clamp(22px,5vw,66px);font-size:9px;letter-spacing:.07em}.toc{border-left:1px solid var(--edge);padding:0 18px;background:#0a100d}.toc-sticky{position:sticky;top:93px}.toc-heading{font-size:10px;letter-spacing:.1em;color:var(--green);font-weight:750;margin:31px 0 14px}.toc #section-index{display:flex;flex-direction:column;gap:3px;border-left:1px solid #2a4231;padding-left:10px}.toc #section-index button{border:0;color:#8da594;background:transparent;font-size:10px;text-align:left;padding:7px 0;line-height:1.6}.toc #section-index button:hover,.toc #section-index button.active{color:var(--green)}.progress-panel{border-top:1px solid var(--edge);margin-top:29px;padding-top:20px}.progress-title{font-size:10px;color:#a4baa4;display:flex;justify-content:space-between;gap:6px;letter-spacing:.03em}.progress-title span{color:var(--green)}.progress-rail{height:4px;background:#1b3120;margin:13px 0 9px}.progress-rail div{height:100%;width:0;background:var(--green);transition:width .25s}.progress-note{font-size:9px;color:#69816d}.toc-key{border-top:1px solid var(--edge);margin-top:25px;padding-top:15px;color:#647e6a;font-size:10px;line-height:2.4}.external-source{display:block;margin-top:30px;font-size:9px;border-bottom:0;color:var(--green);letter-spacing:.03em}.signal-diagram{margin:28px 0;padding:23px;border:1px solid #294634;background:#0c1510;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center}.signal-diagram>div:not(.signal-twins){width:100%;padding:12px;background:#13241a;border:1px solid #2a4b31}.signal-diagram small{display:block;color:var(--green);font-size:10px;letter-spacing:.12em}.signal-diagram strong{display:block;color:#d5e9d1;font-size:13px}.signal-diagram span{display:block;font-size:11px;color:#849e88}.signal-diagram b{font-weight:400;color:#8cc68c}.signal-twins{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}.signal-twins>div{padding:15px 6px;border:1px solid #335b3a;background:#13241a}.search-overlay{position:fixed;inset:0;z-index:100;display:flex;justify-content:center;align-items:flex-start;padding:11vh 20px 20px}.search-overlay[hidden]{display:none}.search-scrim{position:absolute;inset:0;background:#020502d9;backdrop-filter:blur(4px)}.search-modal{position:relative;width:min(770px,100%);max-height:76vh;display:flex;flex-direction:column;background:#0b1510;border:1px solid #4c7953;box-shadow:0 25px 90px #000b}.search-line{display:flex;align-items:center;gap:10px;border-bottom:1px solid #335d3d;padding:14px 18px}.search-line span{color:var(--green);font-size:25px}.search-line input{font-size:13px;color:var(--pale);background:transparent;border:0;outline:0;flex:1;min-width:0}.search-line button{border:1px solid var(--edge);padding:5px 8px;color:#8cb38d;background:#14251a;font-size:9px}.search-meta{font-size:10px;color:#64816e;padding:12px 18px;border-bottom:1px solid #243c2a}.search-results{overflow:auto;max-height:60vh;padding:10px}.result{display:block;width:100%;border:1px solid transparent;background:transparent;padding:13px 16px;text-align:left;color:var(--pale);margin-bottom:4px}.result:hover,.result:focus{border-color:#2e5737;background:#14281b}.result .result-number{font-size:10px;color:var(--green);margin-right:10px}.result strong{font-size:12px}.result p{font-size:10px;color:#8ca58e;margin:7px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-footer{border-top:1px solid var(--edge);padding:11px 18px;font-size:9px;color:#69816f;display:flex;justify-content:space-between;gap:10px}.search-footer span{color:#8fae8f}.task-list-item{list-style:none}.task-list-item input{accent-color:var(--green);margin-right:7px}.chapter[hidden]{display:none}.nav-item[hidden],.nav-group[hidden]{display:none}
@media(min-width:1600px){.layout{grid-template-columns:300px minmax(0,1fr) 242px}.sidebar{font-size:13px}.chapter{font-size:14px}.chapter p{font-size:13px}}
@media(max-width:1320px){.layout{grid-template-columns:245px minmax(0,1fr) 190px}.sidebar .nav-item{padding-left:13px;padding-right:12px}.hero-grid{grid-template-columns:1fr}.hero-terminal{display:none}.hero{padding-top:45px;padding-bottom:45px}}
@media(max-width:1080px){.layout{grid-template-columns:248px minmax(0,1fr)}.toc{display:none}.top-middle{display:none}}
@media(max-width:760px){.topbar{height:57px;padding:0 15px}.brand{font-size:12px}.brand-glyph{font-size:24px}.brand-sub{display:none}.top-actions #menu{display:block}.top-actions #print{display:none}.top-actions button{padding:5px 7px}.top-actions kbd{margin-left:3px}.layout{display:block}.sidebar{position:fixed;top:57px;bottom:0;left:0;width:min(310px,87vw);height:auto;z-index:40;transform:translateX(-105%);transition:transform .18s;box-shadow:15px 0 45px #0009}.sidebar.show{transform:translateX(0)}.sidebar.show:after{content:'';position:fixed;inset:0}.reading-progress{top:57px}.welcome-bar{height:41px;padding:0 18px;font-size:10px}.welcome-note,.signal-bars{display:none}.hero{padding:40px 20px 38px}.hero-grid{margin-top:18px;gap:0}.hero-title{font-size:clamp(40px,12vw,68px);margin-bottom:19px}.hero-commands{gap:12px}.hero-kicker{font-size:9px}.hero-overline{font-size:9px}.chapter-container{padding:26px 18px}.chapter>h1{font-size:28px}.chapter h2{font-size:15px}.chapter p{font-size:12px}.chapter table{font-size:10px}.chapter th,.chapter td{padding:8px}.site-footer{padding:18px}.bottom-nav button{padding:10px;font-size:9px}.chapter-footer{flex-wrap:wrap}.search-overlay{padding:7vh 10px 10px}.search-footer{font-size:8px}.search-footer span{display:none}}
@media(max-width:420px){.top-actions #search-top{font-size:0}.top-actions #search-top kbd{font-size:10px}.top-actions .mag{font-size:22px}.hero-commands span{display:block;width:100%}.hero-title{font-size:38px}.chapter-eyebrow{flex-wrap:wrap}.signal-twins{grid-template-columns:1fr}.hero-commands{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{body{background:white!important;color:#111!important;font-family:serif!important}.topbar,.sidebar,.toc,.hero,.welcome-bar,.reading-progress,.search-overlay,.bottom-nav,.site-footer,.chapter-footer{display:none!important}.layout{display:block!important}.chapter-container{padding:0;margin:0;max-width:none}.chapter[hidden]{display:none!important}.chapter{color:#111!important}.chapter>h1,.chapter h2,.chapter h3,.chapter p,.chapter li,.chapter td,.chapter th{color:#111!important}.codebox{border:1px solid #aaa}.code-head button{display:none}.codebox pre{color:#111!important;white-space:pre-wrap}.codebox pre code{min-width:0;white-space:pre-wrap}.chapter table{display:table;width:100%;font-size:9px}.chapter td,.chapter th{background:white!important}.chapter a{color:#111!important;text-decoration:underline}.chapter-eyebrow{color:#555!important}}
.clock-calc{border:1px solid #44754b;background:linear-gradient(115deg,#152b1b,#0d1c12);padding:20px 21px;margin:0 0 29px}.calc-head{font-size:12px;font-weight:800;letter-spacing:.08em;color:#c5f2bb;display:flex;align-items:center;gap:9px}.calc-head>span{color:var(--green);font-size:25px}.calc-head small{font-size:10px;font-weight:400;color:#799f7e;letter-spacing:0;margin-left:auto}.calc-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:19px 0}.calc-fields label{color:#8eac93;font-size:9px;letter-spacing:.06em;display:flex;flex-direction:column;gap:6px}.calc-fields input{background:#09140c;border:1px solid #33583a;color:var(--pale);padding:11px 10px;font-size:13px;width:100%;min-width:0}.calc-out{display:grid;grid-template-columns:1fr 1fr;gap:9px}.calc-out>div{border-top:1px solid #38683d;padding-top:11px;display:flex;flex-direction:column;gap:2px}.calc-out small{color:#719977;font-size:9px}.calc-out strong{font-size:20px;font-weight:650;color:var(--green)}.clock-calc p{font-size:10px;color:#76977b;margin:10px 0 0}@media(max-width:480px){.calc-head{flex-wrap:wrap}.calc-head small{width:100%;margin-left:0}.calc-fields{grid-template-columns:1fr}.calc-out strong{font-size:16px}}

/* Contributor-guide hardware tour, restyled to the Field Manual theme */
.contrib-hardware{border:1px solid var(--edge);border-radius:10px;padding:16px;margin:16px 0;background:var(--panel);overflow:hidden}
.contrib-hardware .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px}
.contrib-hardware .card{border:1px solid var(--edge);border-radius:8px;padding:14px;background:var(--panel2);min-width:0}
.contrib-hardware .wide{grid-column:1/-1}
.contrib-hardware .diagram{width:100%;height:auto;display:block;max-height:440px}
.contrib-hardware .node{fill:#111b16;stroke:#487750;stroke-width:1.5}
.contrib-hardware .node:hover,.contrib-hardware .node.active{fill:#17291e;stroke:var(--green);stroke-width:2.5}
.contrib-hardware .diagram text{fill:var(--pale);font:12px ui-monospace,monospace}
.contrib-hardware .wire{stroke:var(--green);stroke-width:2;fill:none}
.contrib-hardware .part-buttons{display:flex;flex-wrap:wrap;gap:8px}
.contrib-hardware [data-part-btn]{border:1px solid var(--edge);background:var(--panel2);color:var(--green);border-radius:6px;padding:7px 10px;cursor:pointer}
.contrib-hardware [data-part-btn].active{border-color:var(--green);background:#17291e}
.contrib-hardware #contribPartInfo{padding:12px;border-left:2px solid var(--green);background:var(--panel2);margin-top:10px}
.contrib-hardware .checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:10px}
.contrib-hardware .checklist>div{border:1px solid var(--edge);border-radius:6px;padding:10px}
