/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
.text-align-left{text-align:left;}.text-align-right{text-align:right;}.text-align-center{text-align:center;}.text-align-justify{text-align:justify;}.align-left{float:left;}.align-right{float:right;}.align-center{display:block;margin-right:auto;margin-left:auto;}
.container-inline div,.container-inline label{display:inline-block;}.container-inline .details-wrapper{display:block;}
.clearfix::after{display:table;clear:both;content:"";}.nowrap{white-space:nowrap;}
.hidden{display:none;}.visually-hidden{position:absolute !important;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;word-wrap:normal;}.visually-hidden.focusable:active,.visually-hidden.focusable:focus-within{position:static !important;overflow:visible;clip:auto;width:auto;height:auto;}.invisible{visibility:hidden;}
.js .js-hide{display:none;}.js-show{display:none;}.js .js-show{display:block;}
.rb-harp{--rb-bg:var(--paper,#FFFBF3);--rb-band:var(--cream-2,#EFDBB4);--rb-ink:var(--ink,#5A3317);--rb-muted:var(--ink-soft,#7A5434);--rb-line:var(--line,#E2C99C);--rb-accent:var(--orange-ink,#B23F15);--rb-radius:var(--radius,22px);--rb-mono:var(--mono,ui-monospace,Menlo,monospace);--rb-display:var(--display,system-ui,sans-serif);display:flex;flex-direction:column;gap:16px;max-width:1100px;}.rb-harp *{box-sizing:border-box}.rb-harp__intro{margin:0;max-width:70ch}.rb-harp__label{font-family:var(--rb-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rb-muted);padding:0}.rb-harp__config{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);border:3px solid var(--rb-ink);border-radius:var(--rb-radius);box-shadow:0 5px 0 var(--rb-ink);background:var(--rb-bg);overflow:hidden}.rb-harp__opts{display:flex;flex-wrap:wrap;gap:18px 28px;padding:16px 18px;align-items:flex-start}.rb-harp__opt{display:flex;flex-direction:column;gap:6px}.rb-harp fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;min-width:0}.rb-harp fieldset:disabled{opacity:.45}.rb-harp fieldset label{display:flex;gap:8px;align-items:center;cursor:pointer}.rb-harp input[type=radio],.rb-harp input[type=checkbox]{accent-color:var(--rb-accent);width:16px;height:16px;margin:0}.rb-harp__stepper{display:inline-flex;border:2px solid var(--rb-line);border-radius:99px;overflow:hidden;background:var(--rb-band)}.rb-harp__stepper button{font:600 1rem/1 var(--rb-mono);width:34px;border:0;background:transparent;color:inherit;cursor:pointer;padding:0}.rb-harp__stepper button:hover{background:var(--rb-line)}.rb-harp__stepper input{width:3.2em;text-align:center;font:600 1.05rem var(--rb-mono);border:0;border-inline:1px solid var(--rb-line);background:var(--rb-bg);color:inherit;padding:6px 0;-moz-appearance:textfield}.rb-harp__stepper input::-webkit-inner-spin-button{-webkit-appearance:none}.rb-harp__num{border-radius:10px;width:6em;font:500 .95rem var(--rb-mono);padding:5px 6px;border:1px solid var(--rb-line);background:var(--rb-band);color:inherit}.rb-harp button:focus-visible,.rb-harp input:focus-visible{outline:2px solid var(--rb-accent);outline-offset:1px}.rb-harp__sum{border-left:2px solid var(--rb-line);background:var(--yellow-soft,#FBE5A9);padding:16px 18px;display:flex;flex-direction:column;gap:6px;justify-content:center}.rb-harp__total{font-family:var(--rb-display);font-size:2.4rem;font-weight:400;color:var(--rb-accent);font-variant-numeric:tabular-nums;line-height:1.1}.rb-harp__sum dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:2px 14px;margin:0;font-size:.85rem}.rb-harp__sum dt{color:var(--rb-muted)}.rb-harp__sum dd{margin:0;font-family:var(--rb-mono);font-variant-numeric:tabular-nums}.rb-harp__cfgline{margin:0;color:var(--rb-muted);font-size:.85rem}.rb-harp__tablewrap{overflow-x:auto;border:3px solid var(--rb-ink);border-radius:var(--rb-radius);box-shadow:0 5px 0 var(--rb-ink);background:var(--rb-bg)}.rb-harp__table{border-collapse:collapse;width:100%;font-size:.9rem;margin:0}.rb-harp__table th,.rb-harp__table td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--rb-line);vertical-align:top;color:var(--rb-ink)}.rb-harp__table th{font-family:var(--rb-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rb-muted);font-weight:500;white-space:nowrap}.rb-harp__table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.rb-harp__table .muted{color:var(--rb-muted)}.rb-harp__table tr.group td{font-weight:700;background:var(--rb-band)}@media (max-width:760px){.rb-harp__config{grid-template-columns:minmax(0,1fr)}.rb-harp__sum{border-left:0;border-top:2px solid var(--rb-line)}}
.rb-harp-page{--surface:var(--paper,#FFFBF3);--bg:var(--cream,#F4E6C8);--muted:var(--ink-soft,#7A5434);--accent:var(--orange-ink,#B23F15);--stage:var(--paper,#FFFBF3);--stage-ground:var(--cream-2,#EFDBB4);--pol-a:#C8352B;--pol-b:#2A62B8;--font-display:var(--display,system-ui,sans-serif);--font-body:var(--body,system-ui,sans-serif);--font-mono:var(--mono,ui-monospace,monospace);--card-border:3px solid var(--ink);--card-radius:var(--radius,22px);--card-shadow:0 5px 0 var(--ink);display:flex;flex-direction:column;gap:20px;max-width:none;}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .rb-harp-page{--pol-a:#F06A5F;--pol-b:#6B9CF0}}:root[data-theme="dark"] .rb-harp-page{--pol-a:#F06A5F;--pol-b:#6B9CF0}.rb-harp-page p{margin:0}.rb-harp-page h2,.rb-harp-page h3{margin:0}.rb-harp-page .kicker{margin:0}.rb-harp-page .muted{color:var(--muted)}.rb-harp-page .mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.rb-harp-page .rb-intro{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px;align-items:center}.rb-harp-page .specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;border:var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);background:var(--surface);overflow:hidden}.rb-harp-page .specs div{padding:10px 14px;border-bottom:2px solid var(--line)}.rb-harp-page .specs div:nth-child(odd){border-right:2px solid var(--line)}.rb-harp-page .specs div:nth-last-child(-n+2){border-bottom:0}.rb-harp-page .specs dt{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.rb-harp-page .specs dd{margin:0;font-family:var(--font-display);font-size:1.35rem;font-variant-numeric:tabular-nums;line-height:1.2}.rb-harp-page .specs dd small{font-family:var(--font-body);font-size:.8rem;color:var(--muted)}.rb-harp-page nav.toc{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--font-mono);font-size:.85rem}.rb-harp-page nav.toc a{color:var(--ink);text-decoration:none;border:2px solid var(--line);border-radius:99px;padding:4px 12px;background:var(--surface)}.rb-harp-page nav.toc a:hover{border-color:var(--ink)}.rb-harp-page nav.toc a span{color:var(--accent)}.rb-harp-page .viewer{display:grid;grid-template-columns:minmax(0,1fr) 260px;border:var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);background:var(--surface);overflow:hidden}.rb-harp-page .stage{position:relative;min-height:560px;height:100%;max-width:100%;background:var(--stage)}.rb-harp-page .stage canvas{display:block;width:100%;height:100%;touch-action:none}.rb-harp-page .stage .hint{position:absolute;left:14px;bottom:10px;right:14px;font-family:var(--font-mono);font-size:.72rem;color:var(--muted);pointer-events:none}.rb-harp-page .stage .loading{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-mono);font-size:.85rem;color:var(--muted)}.rb-harp-page .picked{position:absolute;right:12px;top:12px;max-width:min(300px,70%);background:var(--surface);border:2px solid var(--ink);border-radius:14px;padding:10px 12px;font-size:.85rem;line-height:1.45}.rb-harp-page .picked b{display:block;font-family:var(--font-display);font-weight:400;font-size:1.05rem}.rb-harp-page .panel{border-left:2px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:18px;font-size:.9rem}.rb-harp-page .panel fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}.rb-harp-page .panel legend{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;padding:0}.rb-harp-page .panel label{display:flex;gap:8px;align-items:center;cursor:pointer}.rb-harp-page .panel input[type=checkbox],.rb-harp-page .panel input[type=radio]{accent-color:var(--accent);width:16px;height:16px;margin:0}.rb-harp-page .panel input[type=range]{width:100%;accent-color:var(--accent)}.rb-harp-page .btnrow{display:flex;flex-wrap:wrap;gap:6px}.rb-harp-page button.chip{font:600 .8rem var(--font-mono);padding:6px 12px;border:2px solid var(--line);border-radius:99px;background:var(--bg);color:var(--ink);cursor:pointer}.rb-harp-page button.chip:hover{border-color:var(--ink)}.rb-harp-page .swatch{display:inline-block;width:12px;height:12px;border-radius:3px;flex:none}.rb-harp-page > section{padding-top:36px;display:flex;flex-direction:column;gap:18px}.rb-harp-page > section > header{display:flex;flex-direction:column;gap:4px}.rb-harp-page .cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}.rb-harp-page .cols.drawings{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);align-items:start}.rb-harp-page .prose{max-width:66ch;display:flex;flex-direction:column;gap:12px}.rb-harp-page .prose ul{margin:0;padding-left:1.1em;display:flex;flex-direction:column;gap:4px}.rb-harp-page .figure{margin:0;border:var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);background:var(--surface);padding:14px;overflow-x:auto}.rb-harp-page .figure svg{display:block;width:100%;height:auto;min-width:300px;color:var(--muted)}.rb-harp-page .figure figcaption{font-size:.8rem;color:var(--muted);margin-top:6px}.rb-harp-page svg .wood{fill:var(--stage-ground);stroke:var(--ink);stroke-width:1.4}.rb-harp-page svg .asa{fill:var(--ink);stroke:none}.rb-harp-page svg .wireA{stroke:var(--pol-a);stroke-width:1.2}.rb-harp-page svg .wireB{stroke:var(--pol-b);stroke-width:1.2}.rb-harp-page svg .dim{stroke:var(--accent);stroke-width:1;fill:none}.rb-harp-page svg .dimt{fill:var(--accent);font:600 15px var(--font-mono)}.rb-harp-page svg .lbl{fill:var(--muted);font:13px var(--font-mono)}.rb-harp-page svg .mesh{fill:url(#meshpat);stroke:var(--ink);stroke-width:1}.rb-harp-page svg .plate{fill:none;stroke:var(--muted);stroke-width:3}.rb-harp-page .tablewrap{overflow-x:auto;border:var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);background:var(--surface)}.rb-harp-page .tablewrap table{border-collapse:collapse;width:100%;font-size:.9rem;margin:0}.rb-harp-page .tablewrap th,.rb-harp-page .tablewrap td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink)}.rb-harp-page .tablewrap th{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500;white-space:nowrap}.rb-harp-page .tablewrap .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.rb-harp-page .tablewrap tfoot td{border-bottom:0}.rb-harp-page ol.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;counter-reset:s}.rb-harp-page ol.steps > li{counter-increment:s;display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;padding:18px 0;border-top:2px dashed var(--line)}.rb-harp-page ol.steps > li::before{content:counter(s);display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--yellow,#F5C969);border:3px solid var(--ink);font-family:var(--font-display);font-size:1.5rem;color:var(--ink)}.rb-harp-page ol.steps .body{display:flex;flex-direction:column;gap:8px;max-width:72ch}.rb-harp-page ol.steps ul{margin:0;padding-left:1.1em;display:flex;flex-direction:column;gap:3px}.rb-harp-page .note{border:2px solid var(--line);border-left:6px solid var(--accent);border-radius:12px;padding:10px 14px;background:var(--surface);font-size:.9rem}.rb-harp-page .warn{border-left-color:var(--pol-a)}.rb-harp-page .kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 16px;font-size:.9rem;margin:0}.rb-harp-page .kv dt{font-family:var(--font-mono);color:var(--muted);font-size:.8rem;padding-top:2px}.rb-harp-page .kv dd{margin:0}.rb-harp-page .sources{font-size:.85rem;color:var(--muted);display:flex;flex-direction:column;gap:4px}@media (max-width:860px){.rb-harp-page .rb-intro,.rb-harp-page .cols,.rb-harp-page .cols.drawings{grid-template-columns:minmax(0,1fr)}.rb-harp-page .viewer{grid-template-columns:minmax(0,1fr)}.rb-harp-page .panel{border-left:0;border-top:2px solid var(--line);display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.rb-harp-page .stage{aspect-ratio:auto;height:62vh;min-height:360px}}@media (max-width:480px){.rb-harp-page ol.steps > li{grid-template-columns:minmax(0,1fr);gap:8px}}
