/* utility-protocol / circuit-board  (own skeleton: variants/circuit-board.html + .js)

   A green PCB. The page is one board on a dark bench: solder-mask green with a copper
   pour hatch, plated mounting holes, fiducials, white silkscreen in a monospace stroke
   face. The mascot is the chip: U1, a quad flat package with pins on four sides, the pfp
   printed on its top, the ticker and network as its marking, a status LED (D1) glowing
   in the brand colour beside it. The creed and summary are parts beside it, the calls
   to action a connector (J1) of gold pads. Every section is a component footprint with
   a designator (U lore, Q features, L supply, D flow, Y timeline, R facts, C quotes,
   TP questions, J access); the facts are resistors, the supply an inductor ring, the
   questions test points, access the board's gold edge connector. The traces (JS) run
   from the chip into a four-line bus down the left edge and branch into every part.

   Polarity: dark green. Type: monospace silkscreen for everything structural, a plain
   grotesque for reading. Shape: right angles with 45-degree chamfers, pads, pins.
   Motion: signals pulse along the traces, the LED breathes; off under reduced motion.
   No images beyond the pfp. */

:root {
  --pcb-bench: #0b0f0d;
  --pcb-mask: #0f5a31;
  --pcb-mask-dk: #0b4526;
  --pcb-trace: #2f9457;
  --pcb-copper: #d49a4a;
  --pcb-gold: #e3bd62;
  --pcb-tin: #c7ccd2;
  --pcb-silk: #f3f5ef;
  --pcb-silk-dim: rgb(243 245 239 / 0.62);
  --pcb-led: var(--wl-accent-on-dark);
  --pcb-bus-x: 64px;

  --v-bg: var(--pcb-mask);
  --v-fg: var(--pcb-silk);
  --v-soft: #cfe3d5;
  --v-faint: #9cc4aa;
  --v-line: rgb(243 245 239 / 0.2);
  --v-line-strong: rgb(243 245 239 / 0.55);
  --v-surface: #0c4a28;
  --v-surface-2: #0a3d21;
  --v-card-bg: transparent;
  --v-accent: var(--pcb-gold);
  --v-accent-text: var(--pcb-gold);
  --v-on-accent: #1b1405;
  --v-secondary: var(--pcb-led);
  --v-seg-1: var(--pcb-copper);
  --v-seg-2: var(--pcb-gold);
  --v-seg-3: var(--pcb-tin);
  --v-seg-4: var(--pcb-led);
  --v-seg-5: #7bbf93;
  --v-seg-6: #0a3a1f;
  --v-font-body: "Helvetica Neue", Helvetica, Arial, "Liberation Sans", sans-serif;
  --v-font-display: "JetBrains Mono", "SF Mono", ui-monospace, Consolas, "Liberation Mono", "Courier New", monospace;
  --v-font-mono: var(--v-font-display);
  --v-display-weight: 700;
  --v-display-tracking: -0.01em;
  --v-display-case: uppercase;
  --v-display-lh: 1.04;
  --v-title-size: clamp(1.6rem, 3vw, 2.6rem);
  --v-radius: 4px;
  --v-radius-sm: 3px;
  --v-radius-lg: 22px;
  --v-border: 1.5px solid var(--pcb-silk);
  --v-shadow: none;
  --v-card-pad: 20px;
  --v-maxw: 1080px;
  --v-pad-x: clamp(16px, 4vw, 56px);
  --v-sec-gap: clamp(56px, 7vw, 92px);

  --wl-label-lore: "Core logic";
  --wl-label-features: "Transistors";
  --wl-label-supply: "Supply coil";
  --wl-label-flow: "Signal path";
  --wl-label-timeline: "Clock";
  --wl-label-comparison: "Bench test";
  --wl-label-stats: "Readings";
  --wl-label-tweet: "Input";
  --wl-label-gallery: "Optics";
  --wl-label-facts: "Resistor array";
  --wl-label-quotes: "Decoupling";
  --wl-label-faq: "Test points";
  --wl-label-access: "Edge connector";
}

html { background: var(--pcb-bench); color-scheme: dark; }
body { background: radial-gradient(120% 60% at 50% 0%, #17201b, var(--pcb-bench) 70%); color: var(--pcb-silk); }
::selection { background: var(--pcb-gold); color: #1b1405; }

/* ---------------------------------------------------------------- the board */
.pcb-board {
  position: relative; isolation: isolate; margin: 12px; border-radius: var(--v-radius-lg);
  background:
    repeating-linear-gradient(45deg, rgb(255 255 255 / 0.018) 0 2px, transparent 2px 8px),
    radial-gradient(120% 70% at 28% 8%, #16703f, var(--pcb-mask) 45%, var(--pcb-mask-dk) 100%);
  box-shadow: 0 0 0 2px #06301a, 0 0 0 5px #0d1a12, 0 30px 60px -30px #000;
}
.pcb-traces { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.pcb-board > :not(.pcb-traces):not(.pcb-hole) { position: relative; z-index: 1; }
.pcb-hole, .pcb-board::before, .pcb-board::after {
  content: ""; position: absolute; z-index: 2; width: 30px; height: 30px; border-radius: 50%;
  background: radial-gradient(circle, var(--pcb-bench) 0 42%, #b98536 45%, var(--pcb-copper) 58%, #f0cf8a 66%, var(--pcb-copper) 74%, transparent 76%);
}
.pcb-hole--tl, .pcb-board::before { left: 14px; }
.pcb-hole--tr, .pcb-board::after { right: 14px; }
.pcb-hole { top: 14px; }
.pcb-board::before, .pcb-board::after { bottom: 14px; }

/* silkscreen strip along the top edge */
.pcb-silk { display: flex; align-items: center; gap: 20px; height: 58px; padding: 0 58px; font-family: var(--v-font-mono); text-transform: uppercase; }
.pcb-silk a { text-decoration: none; }
.pcb-silk__name { flex: none; font-weight: 700; font-size: 1.05rem; letter-spacing: 0.16em; color: var(--pcb-silk); }
.pcb-silk__nav { flex: 1 1 0; min-width: 0; display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.pcb-silk__nav::-webkit-scrollbar { display: none; }
.pcb-silk__nav .wl-nav__link { flex: none; padding: 5px 9px; font-size: 0.7rem; letter-spacing: 0.1em; color: var(--pcb-silk-dim); white-space: nowrap; }
.pcb-silk__nav .wl-nav__link::before { content: "\25CB\00A0"; color: var(--pcb-gold); }
.pcb-silk__nav .wl-nav__link:hover, .pcb-silk__nav .wl-nav__link.is-active { color: var(--pcb-silk); }
.pcb-silk__nav .wl-nav__link.is-active::before { content: "\25CF\00A0"; }
.pcb-silk__net { flex: none; margin-left: auto; padding: 4px 10px; border: 1.5px solid var(--pcb-silk); font-size: 0.72rem; letter-spacing: 0.14em; }

/* ---------------------------------------------------------------- U1 and its parts */
.pcb-hero {
  display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); align-items: center; column-gap: clamp(24px, 4vw, 64px);
  min-height: calc(100vh - 24px - 58px); min-height: calc(100svh - 24px - 58px);
  padding: clamp(16px, 3vh, 36px) clamp(40px, 5vw, 80px) clamp(40px, 7vh, 72px) calc(var(--pcb-bus-x) + 40px);
}
.pcb-parts { display: grid; gap: clamp(18px, 3vh, 30px); justify-items: start; min-width: 0; }
.pcb-ref { font-family: var(--v-font-mono); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; color: var(--pcb-silk); }
.pcb-part { position: relative; margin: 0; }
.pcb-part--kicker { padding: 6px 12px; border: 1.5px solid var(--pcb-silk); font-family: var(--v-font-mono); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.pcb-part--kicker::before { content: ""; position: absolute; left: -6px; top: 50%; width: 9px; height: 9px; margin-top: -4.5px; border-radius: 50%; background: var(--pcb-gold); }
.pcb-part--creed {
  font-family: var(--v-font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(2.2rem, 4.6vw, 4.3rem); line-height: 1.02; letter-spacing: -0.03em; color: var(--pcb-silk); text-wrap: balance;
  text-shadow: 0 1px 0 rgb(0 0 0 / 0.25);
}
.pcb-part--sub { max-width: 40ch; padding: 14px 18px; border: 1.5px dashed var(--pcb-silk-dim); border-radius: 3px; font-size: 1.04rem; line-height: 1.5; color: var(--v-soft); }
.pcb-part--conn { display: grid; gap: 8px; padding: 12px 14px 14px; border: 1.5px solid var(--pcb-silk); border-radius: 3px; }
.pcb-part--conn .pcb-ref { position: absolute; top: -9px; left: 10px; padding: 0 6px; background: var(--pcb-mask); }
.pcb-conn { display: flex; flex-wrap: wrap; gap: 10px; }
.pcb-board .wl-btn {
  border: 0; border-radius: 3px; padding: 0.7em 1em; font-family: var(--v-font-mono); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  background: linear-gradient(180deg, #f4f5f7, var(--pcb-tin) 55%, #9da3aa); color: #121416; box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.25), 0 2px 0 #06301a;
}
.pcb-board .wl-btn--primary { background: linear-gradient(180deg, #fbe7a8, var(--pcb-gold) 50%, #b98b2c); color: #1b1405; }
.pcb-board .wl-btn:hover { transform: translateY(-1px); border-color: transparent; }
.pcb-board .wl-btn__ca { opacity: 0.7; }

.pcb-chip-site { position: relative; margin: 0; justify-self: center; width: min(100%, 360px); padding: 34px; }
.pcb-ref--chip { position: absolute; top: 4px; left: 8px; font-size: 0.86rem; }
.pcb-chip { position: relative; width: 100%; aspect-ratio: 1; }
.pcb-chip__pins { position: absolute; inset: 0;
  background:
    repeating-linear-gradient(90deg, var(--pcb-tin) 0 6px, transparent 6px 13px) 36px 0 / calc(100% - 72px) 24px no-repeat,
    repeating-linear-gradient(90deg, var(--pcb-tin) 0 6px, transparent 6px 13px) 36px 100% / calc(100% - 72px) 24px no-repeat,
    repeating-linear-gradient(0deg, var(--pcb-tin) 0 6px, transparent 6px 13px) 0 36px / 24px calc(100% - 72px) no-repeat,
    repeating-linear-gradient(0deg, var(--pcb-tin) 0 6px, transparent 6px 13px) 100% 36px / 24px calc(100% - 72px) no-repeat;
}
.pcb-chip__body {
  position: absolute; inset: 20px; display: grid; justify-items: center; align-content: center; gap: 10px; padding: 14px;
  border-radius: 5px; background: linear-gradient(145deg, #2e2f32, #161618 42%, #0d0d0e);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.09), inset 0 0 0 1px rgb(255 255 255 / 0.04), 0 12px 24px rgb(0 0 0 / 0.5);
}
.pcb-chip__dot { position: absolute; top: 14px; left: 14px; width: 12px; height: 12px; border-radius: 50%; background: #0a0a0b; box-shadow: inset 0 1px 1px rgb(255 255 255 / 0.12); }
.pcb-chip__die { width: 64%; aspect-ratio: 1; object-fit: cover; border-radius: 6px; filter: saturate(0.9) contrast(1.05); box-shadow: 0 0 0 2px #0a0a0b, 0 0 0 3px rgb(255 255 255 / 0.08); }
.pcb-chip__mark { margin: 0; display: grid; justify-items: center; gap: 2px; font-family: var(--v-font-mono); text-transform: uppercase; color: #d9dbd6; }
.pcb-chip__tick { font-size: clamp(1rem, 1.6vw, 1.35rem); font-weight: 700; letter-spacing: 0.1em; }
.pcb-chip__net { font-size: 0.66rem; letter-spacing: 0.24em; color: #8f928c; }
.pcb-led { position: absolute; top: 8px; right: 10px; display: flex; align-items: center; gap: 6px; }
.pcb-led i { width: 18px; height: 10px; border-radius: 2px; background: var(--pcb-led); box-shadow: 0 0 10px 2px var(--pcb-led), 0 0 30px 6px color-mix(in srgb, var(--pcb-led) 40%, transparent); animation: pcb-breathe 2.6s ease-in-out infinite; }
.pcb-led b { font-family: var(--v-font-mono); font-size: 0.7rem; font-weight: 700; color: var(--pcb-silk); }
.pcb-fid { position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--pcb-copper); box-shadow: 0 0 0 6px var(--pcb-mask-dk); }
.pcb-fid--a { bottom: 6px; left: 8px; }
.pcb-fid--b { bottom: 6px; right: 8px; }

/* ---------------------------------------------------------------- traces (drawn by the js) */
.pcb-trace { fill: none; stroke: var(--pcb-trace); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.pcb-trace--bus { stroke-width: 5; }
.pcb-trace--thin { stroke-width: 2.5; }
.pcb-pulse { fill: none; stroke: var(--pcb-led); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 10 190; opacity: 0.9; filter: drop-shadow(0 0 3px var(--pcb-led)); }
.pcb-via { fill: var(--pcb-bench); stroke: var(--pcb-copper); stroke-width: 3; }
.pcb-pad { fill: var(--pcb-gold); }
@media (prefers-reduced-motion: no-preference) {
  html:not(.wl-still) .pcb-pulse { animation: pcb-signal 4.5s linear infinite; }
}
@keyframes pcb-signal { to { stroke-dashoffset: -200; } }
@keyframes pcb-breathe { 50% { opacity: 0.55; } }

/* ---------------------------------------------------------------- footprints (sections) */
.pcb-flow { counter-reset: part 1; padding: 0 clamp(40px, 5vw, 80px) clamp(70px, 9vw, 110px) calc(var(--pcb-bus-x) + 40px); }
.pcb-flow .wl-sec { counter-increment: part; padding: var(--v-sec-gap) 0 0; --pcb-l: "U"; }
.pcb-flow .wl-sec--features { --pcb-l: "Q"; }
.pcb-flow .wl-sec--infographic { --pcb-l: "L"; }
.pcb-flow .wl-sec--infographic[data-graphic="flow"] { --pcb-l: "D"; }
.pcb-flow .wl-sec--infographic[data-graphic="timeline"], .pcb-flow .wl-sec--timeline { --pcb-l: "Y"; }
.pcb-flow .wl-sec--infographic[data-graphic="comparison"] { --pcb-l: "SW"; }
.pcb-flow .wl-sec--facts { --pcb-l: "R"; }
.pcb-flow .wl-sec--quotes { --pcb-l: "C"; }
.pcb-flow .wl-sec--faq { --pcb-l: "TP"; }
.pcb-flow .wl-sec--access { --pcb-l: "J"; }
.pcb-flow .wl-sec--tweet { --pcb-l: "ANT"; }
.pcb-flow .wl-sec--gallery { display: none; } /* this variant consumes no images */
.pcb-flow .wl-sec__inner {
  position: relative; max-width: var(--v-maxw); margin: 0;
  padding: clamp(24px, 3vw, 36px) clamp(20px, 3vw, 36px) clamp(24px, 3vw, 34px);
  border: 1.5px solid var(--pcb-silk); border-radius: 6px;
}
.pcb-flow .wl-sec__inner::before { /* a row of pads along the footprint's top edge */
  content: ""; position: absolute; top: -6px; left: 28px; width: min(40%, 280px); height: 11px;
  background: repeating-linear-gradient(90deg, var(--pcb-gold) 0 9px, transparent 9px 20px);
}
.pcb-flow .wl-sec__inner::after { /* the designator */
  content: var(--pcb-l) counter(part); position: absolute; top: -10px; right: 20px; padding: 0 8px; background: var(--pcb-mask);
  font-family: var(--v-font-mono); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.12em; color: var(--pcb-silk);
}
.pcb-flow .wl-sec__head { margin-bottom: clamp(20px, 3vw, 32px); }
.pcb-flow .wl-kicker { font-family: var(--v-font-mono); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.18em; color: var(--pcb-gold); }
.pcb-flow .wl-kicker .wl-ord { display: none; }
.pcb-flow .wl-sec__title { color: var(--pcb-silk); }

/* U: core logic */
.pcb-flow .wl-lore { max-width: 46rem; }
.pcb-flow .wl-lore__lead { font-size: clamp(1.15rem, 1.8vw, 1.45rem); color: var(--pcb-silk); }
.pcb-flow .wl-lore__p { color: var(--v-soft); }

/* Q: transistors, SMD parts with their terminals */
.pcb-flow .wl-features { gap: 22px 30px; }
.pcb-flow .wl-feature { margin: 0 12px; padding: 20px 20px 22px; border: 0; border-radius: 3px; background: linear-gradient(160deg, #26272a, #121214 60%); box-shadow: 0 8px 16px rgb(0 0 0 / 0.35); }
.pcb-flow .wl-feature::before, .pcb-flow .wl-feature::after { content: ""; position: absolute; top: 22%; bottom: 22%; width: 12px; border-radius: 2px; background: linear-gradient(90deg, #9da3aa, #f1f2f4 50%, #9da3aa); }
.pcb-flow .wl-feature::before { left: -12px; }
.pcb-flow .wl-feature::after { right: -12px; }
.pcb-flow .wl-feature:hover { transform: translateY(-2px); }
.pcb-flow .wl-feature .wl-ord { color: #8f928c; font-family: var(--v-font-mono); }
.pcb-flow .wl-feature__icon { width: 46px; height: 46px; margin-bottom: 18px; border-radius: 50%; background: rgb(255 255 255 / 0.06); color: var(--pcb-tin); }
.pcb-flow .wl-feature__icon--img { display: none; }
.pcb-flow .wl-feature__title { font-family: var(--v-font-mono); font-size: 1.1rem; text-transform: uppercase; letter-spacing: 0.02em; color: var(--pcb-silk); }
.pcb-flow .wl-feature__text { color: #b9bcb6; }

/* L: the supply as an inductor ring */
.pcb-flow .wl-donut__track { stroke: #0a3a1f; }
.pcb-flow .wl-donut__seg { stroke-width: 24; }
.pcb-flow .wl-donut__ticks line { stroke: var(--pcb-silk-dim); }
.pcb-flow .wl-donut__value, .pcb-flow .wl-ring__value, .pcb-flow .wl-stat__value, .pcb-flow .wl-legend__value, .pcb-flow .wl-bar__value { font-family: var(--v-font-mono); font-weight: 700; letter-spacing: -0.01em; color: var(--pcb-silk); }
.pcb-flow .wl-donut__label, .pcb-flow .wl-ring__label, .pcb-flow .wl-stat__label { font-family: var(--v-font-mono); color: var(--pcb-gold); }
.pcb-flow .wl-legend__item { border-bottom: 1px dashed var(--v-line); }
.pcb-flow .wl-legend__swatch { border-radius: 1px; }
.pcb-flow .wl-ring__track { stroke: #0a3a1f; }
.pcb-flow .wl-ring__fill { stroke: var(--pcb-copper); stroke-linecap: butt; }
.pcb-flow .wl-ring:nth-child(2) .wl-ring__fill { stroke: var(--pcb-gold); }
.pcb-flow .wl-stats { border: 1.5px solid var(--pcb-silk); border-radius: 3px; background: var(--pcb-silk); gap: 1.5px; }
.pcb-flow .wl-stat { background: var(--pcb-mask); }
.pcb-flow .wl-caption { font-family: var(--v-font-mono); font-size: 0.78rem; color: var(--v-faint); }
.pcb-flow .wl-table-wrap { border: 1.5px solid var(--pcb-silk); border-radius: 3px; }
.pcb-flow .wl-table thead th { font-family: var(--v-font-mono); color: var(--pcb-gold); }
.pcb-flow .wl-cell-yes { color: var(--pcb-gold); }
.pcb-flow .wl-bar__bg { fill: #0a3a1f; }

/* D: the signal path */
.pcb-flow .wl-node__card { border: 0; border-radius: 3px; background: linear-gradient(160deg, #26272a, #121214 60%); }
.pcb-flow .wl-node__card .wl-ord { border-radius: 3px; background: var(--pcb-tin); color: #121416; }
.pcb-flow .wl-node__title { font-family: var(--v-font-mono); text-transform: uppercase; font-size: 1.15rem; }
.pcb-flow .wl-node__text { color: #b9bcb6; }
.pcb-flow .wl-edge__line { stroke: var(--pcb-trace); stroke-width: 4; stroke-dasharray: none; animation: none; }
.pcb-flow .wl-edge__head { stroke: var(--pcb-gold); stroke-width: 3; }

/* Y: the clock, milestones as vias on a trace */
.pcb-flow .wl-milestones::before { width: 4px; left: 12px; background: var(--pcb-trace); }
.pcb-flow .wl-ms__dot { background: none; }
.pcb-flow .wl-ms__ring { fill: var(--pcb-bench); stroke: var(--pcb-copper); stroke-width: 3.4; }
.pcb-flow .wl-ms__core { fill: var(--pcb-copper); }
.pcb-flow .wl-ms--done .wl-ms__ring { fill: var(--pcb-copper); }
.pcb-flow .wl-ms__when { font-family: var(--v-font-mono); color: var(--pcb-gold); }
.pcb-flow .wl-ms__title { font-family: var(--v-font-mono); text-transform: uppercase; font-size: 1.1rem; }
.pcb-flow .wl-ms__text { color: #b9bcb6; }

/* R: the facts as a resistor array */
.pcb-flow .wl-facts { gap: 0; }
.pcb-flow .wl-fact { grid-template-columns: 64px minmax(0, 1fr); gap: 18px; padding: 14px 0; border: 0; border-bottom: 1px dashed var(--v-line); border-radius: 0; background: none; }
.pcb-flow .wl-fact__mark {
  position: relative; width: 44px; height: 16px; margin: 3px 10px 0; border-radius: 8px;
  background: linear-gradient(90deg, #dcc79e 0 18%, #7a3f16 18% 27%, #dcc79e 27% 38%, #111 38% 47%, #dcc79e 47% 58%, #c9971b 58% 67%, #dcc79e 67%);
  box-shadow: -12px 0 0 -6px var(--pcb-tin), 12px 0 0 -6px var(--pcb-tin);
}
.pcb-flow .wl-fact__mark .wl-glyph { display: none; }
.pcb-flow .wl-fact__text { font-size: 1.04rem; }

/* C, TP */
.pcb-flow .wl-quote { border: 1.5px dashed var(--pcb-silk-dim); border-radius: 3px; background: none; }
.pcb-flow .wl-quote::before { content: "\2502\2502"; top: 12px; left: 16px; font-family: var(--v-font-mono); font-size: 1.2rem; letter-spacing: 0.1em; color: var(--pcb-gold); }
.pcb-flow .wl-quote__who { color: var(--pcb-gold); }
.pcb-flow .wl-qa { border: 0; border-bottom: 1px dashed var(--v-line); border-radius: 0; background: none; }
.pcb-flow .wl-qa__q { gap: 14px; padding: 16px 0; font-family: var(--v-font-body); }
.pcb-flow .wl-qa__q::before { content: ""; flex: none; width: 14px; height: 14px; border-radius: 50%; background: var(--pcb-gold); box-shadow: 0 0 0 4px var(--pcb-mask-dk), 0 0 0 5.5px var(--pcb-silk-dim); }
.pcb-flow .wl-qa__q > span:first-child { flex: 1; }
.pcb-flow .wl-qa__a { padding: 0 0 18px 32px; color: var(--v-soft); }
.pcb-flow .wl-qa__sign::before, .pcb-flow .wl-qa__sign::after { background: var(--pcb-silk); }
.pcb-flow .wl-post { background: #0c4526; border: 1.5px solid var(--pcb-silk); border-radius: 3px; }

/* J: access, the gold edge connector at the foot of the board */
.pcb-flow .wl-sec--access .wl-sec__inner { padding-bottom: 88px; }
.pcb-flow .wl-sec--access .wl-sec__inner > .wl-sec__body::after {
  content: ""; position: absolute; left: 20px; right: 20px; bottom: 16px; height: 46px;
  background: repeating-linear-gradient(90deg, #f6dd96 0 3px, var(--pcb-gold) 3px 16px, #a47a22 16px 18px, transparent 18px 26px);
  border-radius: 2px;
}
.pcb-flow .wl-access__net { font-family: var(--v-font-mono); color: var(--pcb-gold); }
.pcb-flow .wl-ca { border: 1.5px solid var(--pcb-silk); border-radius: 3px; background: #0a3d21; }
.pcb-flow .wl-ca__label { font-family: var(--v-font-mono); color: var(--pcb-gold); }
.pcb-flow .wl-ca__value { color: var(--pcb-silk); }
.pcb-flow .wl-copy { border-radius: 3px; background: linear-gradient(180deg, #fbe7a8, var(--pcb-gold) 50%, #b98b2c); color: #1b1405; font-family: var(--v-font-mono); text-transform: uppercase; }
.pcb-flow .wl-link { border: 1.5px solid var(--pcb-silk); border-radius: 3px; background: none; font-family: var(--v-font-mono); font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.04em; }
.pcb-flow .wl-link:hover { border-color: var(--pcb-gold); }

.pcb-foot { padding: 18px calc(var(--v-pad-x) + 12px) 34px; color: #7f8a82; font-family: var(--v-font-mono); font-size: 0.8rem; }
.pcb-foot .wl-foot__name { font-family: var(--v-font-mono); color: #cfd6d0; }
.pcb-foot .wl-link { background: transparent; border-color: #2a3a30; color: #cfd6d0; }

/* ---------------------------------------------------------------- small screens */
@media (max-width: 820px) {
  :root { --pcb-bus-x: 34px; }
  .pcb-board { margin: 6px; border-radius: 16px; }
  .pcb-silk { padding: 0 48px; }
  .pcb-silk__nav { display: none; }
  .pcb-hero { grid-template-columns: minmax(0, 1fr); row-gap: 20px; min-height: 0; padding: 10px 18px 40px calc(var(--pcb-bus-x) + 26px); }
  .pcb-chip-site { order: -1; width: min(100%, 270px); padding: 28px; }
  .pcb-part--creed { font-size: clamp(1.8rem, 8.4vw, 2.6rem); }
  .pcb-flow { padding: 0 16px 70px calc(var(--pcb-bus-x) + 26px); }
  .pcb-flow .wl-feature { margin: 0 12px; }
  .pcb-hole, .pcb-board::before, .pcb-board::after { width: 22px; height: 22px; }
  .pcb-hole--tl, .pcb-board::before { left: 10px; }
  .pcb-hole--tr, .pcb-board::after { right: 10px; }
  .pcb-hole { top: 10px; }
  .pcb-board::before, .pcb-board::after { bottom: 10px; }
}
