:root{color:#eaf5ef;background:#12201e;font:17px/1.62 system-ui,sans-serif;--mint:#8ee0bb;--edge:#3a5b50}*{box-sizing:border-box}body{margin:0}a{color:var(--mint);text-underline-offset:.2em}.mast,main,footer{max-width:1160px;margin:auto;padding:1.2rem clamp(1rem,4vw,2.7rem)}.mast{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-bottom:1px solid var(--edge)}.mast nav{display:flex;gap:1rem}.brand{font:800 1rem ui-monospace,monospace;text-transform:uppercase;text-decoration:none}.qr-hero{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;padding:2.4rem 0 1rem}.eyebrow{font:750 .8rem ui-monospace,monospace;color:var(--mint);text-transform:uppercase;letter-spacing:.12em}h1{font:850 clamp(3.2rem,9vw,6.5rem)/1 ui-monospace,monospace;letter-spacing:-.095em;margin:.1em 0 .2em}.lead{font-size:1.18rem}.quick,.criteria{color:#cee0d8;max-width:68ch}.capture{margin:0;padding:.75rem;background:#dcefe5;color:#18352b;border-radius:.45rem}.capture img{display:block;width:100%;height:auto;background:#14161e;border-radius:.2rem}.capture figcaption{padding-top:.5rem;font-size:.84rem}.scan-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:1rem 0 2rem;background:var(--edge);border:1px solid var(--edge)}.scan-steps p{margin:0;padding:.72rem;background:#1c2f2a}.scan-steps b{color:var(--mint);font-family:ui-monospace,monospace}.topic-links ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;list-style:none;padding:0}.topic-links a{display:block;height:100%;border:1px solid var(--edge);padding:.85rem;text-decoration:none}.topic-links span{display:block;color:#d1e3d9;font-size:.89rem}.cta{display:inline-block;background:var(--mint);color:#112821;padding:.47rem .75rem;border-radius:.25rem}.criteria,#methods,.product,.references{margin:2rem 0}summary{font-weight:750;cursor:pointer}details{border-top:1px solid var(--edge);padding:.75rem .15rem}.product{border:1px solid var(--edge);background:#1c2f2a;padding:.85rem 1rem}.guide{max-width:810px;margin:auto}.guide-example{margin:1.5rem 0}.walk{padding-left:1.35rem}.walk li{padding:.5rem 0}footer{border-top:1px solid var(--edge);font-size:.85rem}.skip{position:absolute;left:-999rem}.skip:focus{left:1rem;background:#12201e;z-index:5}:focus-visible{outline:3px solid #ffc185;outline-offset:4px}@media(max-width:730px){.qr-hero{display:block;padding-top:1rem}.capture{margin:1.2rem 0}.topic-links ul,.scan-steps{grid-template-columns:1fr}}
.lab-intro { max-width: 800px; padding-top: 1rem; }
.lab-bench { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; align-items: start; }
.spec { border: 1px solid var(--edge); padding: 1rem; background: #1b2d28; margin: 0; }
.spec h2, .spec dl { margin-top: 0; }
.spec dt { color: var(--mint); font: 750 1rem/1.4 ui-monospace, monospace; }
.spec dd { margin: 0 0 .6rem; padding-bottom: .65rem; border-bottom: 1px solid var(--edge); }
.spec dd:last-child { border: 0; margin-bottom: 0; padding-bottom: 0; }
.scan-steps { padding: 0; counter-reset: scan; list-style: none; }
.scan-steps li { background: #1c2f2a; padding: .7rem; }
.scan-steps li::before { counter-increment: scan; content: "0" counter(scan) " / "; color: var(--mint); font-family: ui-monospace, monospace; }
.lab-guide h1 { font-size: clamp(2.65rem, 6.8vw, 5.4rem); }
table { width: 100%; border-collapse: collapse; }
caption { text-align: left; padding-bottom: .5rem; }
th, td { border: 1px solid var(--edge); vertical-align: top; text-align: left; padding: .55rem; }
th { color: var(--mint); }
@media (max-width: 730px) {
  .lab-bench { grid-template-columns: 1fr; }
  table { font-size: .82rem; }
  th, td { padding: .36rem; }
}
