/* Racks & Watts: graphite chassis, electric accents, warm readable paper. */
:root{--ink:#202727;--muted:#52605d;--blue:#00665b;--line:#d6dfda;--pale:#f0f5ef;--amber:#c6f568;--graphite:#171d1c;--electric:#c6f568;--cyan:#68e4e7;--paper:#fafbf7;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;--topic-accent:#c6f568;--topic-ink:#31500a;--topic-wash:#eff8df}
[data-topic=smart]{--topic-accent:#c6f568;--topic-ink:#31500a;--topic-wash:#eff8df}[data-topic=storage]{--topic-accent:#c8b9ff;--topic-ink:#50358a;--topic-wash:#f1edff}[data-topic=power]{--topic-accent:#ffcb97;--topic-ink:#824113;--topic-wash:#fff1e2}[data-topic=networking]{--topic-accent:#68e4e7;--topic-ink:#075a60;--topic-wash:#e0f8f8}[data-topic=compute]{--topic-accent:#f2b5d5;--topic-ink:#7e3159;--topic-wash:#fcebf3}[data-topic=ai]{--topic-accent:#a9c8ff;--topic-ink:#284f91;--topic-wash:#eaf1ff}
body.lab-site{background:var(--paper);color:var(--ink)}.lab-site :is(a,button,input,summary):focus-visible{outline:3px solid #00665b;outline-offset:5px}.lab-site header.site :is(a,button):focus-visible,.lab-hero :is(a,button):focus-visible{outline-color:var(--cyan)}
.lab-site header.site{background:var(--graphite);border-top:4px solid var(--electric);border-bottom:1px solid #3d4944}.lab-site header.site .wrap{min-height:100px;gap:30px}.lab-site .brand{max-width:none;gap:13px;flex-shrink:0}.lab-mark{color:var(--electric);flex-shrink:0}.wordmark{font-size:24px;letter-spacing:-1px;line-height:1.2}.wordmark small{display:block;font:10px/1.5 var(--mono);letter-spacing:1.4px;color:#b6c7bf;margin-top:5px}.lab-site nav.main{gap:22px}.lab-site nav.main a{font-size:13px;font-weight:700;padding:12px 0;border-bottom:2px solid transparent}.lab-site nav.main a:hover{color:var(--electric);border-color:var(--electric)}.lab-site .disclosure{background:#eaf0e7;color:#3d5146;border-bottom:1px solid var(--line);font-size:12px;line-height:1.7}.lab-site .disclosure a{color:#004f47}.lab-site footer.site{background:var(--graphite);border-top:3px solid var(--electric);color:#c6d1cc}.lab-site footer.site a{color:#d4efb4}
.lab-site .btn{border-radius:6px;background:var(--electric);color:#172514;box-shadow:0 2px 0 #14201918;font-weight:800;line-height:1.5}.lab-site .btn:hover{background:#daff92;color:#142010;text-decoration:none}.lab-site .btn.amber{background:var(--electric);color:#172514}.lab-site .kicker{color:#00665b;font-family:var(--mono);letter-spacing:1.4px}.lab-site .tag{background:#e6f0e6;color:#31500a;padding:5px 9px;border-radius:4px}.lab-site .topic-links a{border-color:#c6d8cc;background:white;color:#315947}.lab-site .next-read{background:var(--graphite);color:#eef4f9}.lab-site .next-read h2{color:#fafbf7}.lab-site .next-read p{color:#eef4f9}.lab-site .next-read a{color:var(--electric)}
.lab-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:52px;background:var(--graphite);color:#f8fcef;border-radius:0 0 22px 22px;padding:60px 46px 50px;margin:0 -14px 64px;position:relative;overflow:hidden}.lab-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#ffffff04 1px,transparent 1px),linear-gradient(90deg,#ffffff04 1px,transparent 1px);background-size:26px 26px}.lab-hero-copy,.lab-rack{position:relative}.lab-eyebrow{font:11px/1.5 var(--mono);letter-spacing:1.4px;color:#c6d4cc;margin:0 0 25px}.lab-eyebrow span{color:var(--electric);margin-right:9px}.lab-hero h1{font-size:clamp(3rem,5.8vw,5.2rem);line-height:1.02;letter-spacing:-3px;margin:0 0 24px;max-width:640px}.lab-hero h1 span{color:var(--electric)}.lab-hero-copy>p:not(.lab-eyebrow){font-size:17px;line-height:1.8;max-width:53ch;color:#cbd8d1}.lab-actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 22px}.lab-site .lab-primary{padding:15px 18px;font-size:13px}.lab-site .lab-secondary{background:transparent;color:#edf7e5;border:1px solid #899c90;padding:14px 17px;font-size:13px}.lab-site .lab-secondary:hover{background:#28362e;color:white}.lab-hero-copy>.lab-hero-note{font:11px/1.8 var(--mono)!important;color:#abc2b3!important;margin:20px 0 0}
.lab-rack{align-self:center;background:#111715;border:1px solid #536659;border-radius:12px;box-shadow:12px 16px 0 #0003;padding:19px;transform:rotate(2deg)}.rack-top,.rack-bottom{display:flex;justify-content:space-between;gap:12px;font:10px/1.5 var(--mono);color:#b1c7ba;letter-spacing:1px}.rack-top{margin:0 0 20px}.rack-top i{display:inline-block;background:var(--electric);width:6px;height:6px;border-radius:50%;margin-right:7px}.rack-drawing{border-inline:7px solid #303b35;padding:0 9px;display:grid;gap:9px}.rack-unit{display:grid;grid-template-columns:25px minmax(0,1fr) 26px;align-items:center;gap:13px;background:linear-gradient(110deg,#27342d,#1a2420);border:1px solid #657769;border-left:3px solid var(--topic-accent);border-radius:4px;min-height:83px;padding:14px 12px;box-shadow:inset 0 -3px #0003}.rack-index{font:11px var(--mono);color:#b1c6b6}.rack-unit strong{font:10px var(--mono);color:var(--topic-accent);letter-spacing:1px}.rack-bars,.rack-drives,.rack-ports{display:flex;gap:5px;align-items:center;margin-top:12px}.rack-bars b{height:5px;background:var(--topic-accent);width:32px;opacity:.8}.rack-bars b:nth-child(2){opacity:.65}.rack-bars b:nth-child(3){opacity:.4}.rack-bars b:nth-child(4){opacity:.2}.rack-drives b{border:1px solid #aa98d0;background:#c8b9ff13;width:28px;height:14px;border-radius:2px}.rack-ports b{border:1px solid #91c5c1;width:18px;height:13px;box-shadow:inset 0 3px #68e4e722}.rack-lights{display:flex;gap:5px}.rack-lights i{width:5px;height:5px;border-radius:50%;background:var(--topic-accent)}.rack-lights i:last-child{opacity:.4}.rack-bottom{margin-top:20px;font-size:8px}
.lab-section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:0 0 24px}.lab-section-heading h2{font-size:clamp(1.8rem,3vw,2.4rem);margin:8px 0 0;letter-spacing:-1px}.lab-section-heading p{margin:0;color:var(--muted);font-size:14px}.lab-section-heading .kicker{font-size:10px;color:#00665b}.lab-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.lab-topic-tile{padding:25px;position:relative;border:1px solid color-mix(in srgb,var(--topic-ink) 22%,white);border-top:4px solid var(--topic-accent);border-radius:9px;background:var(--topic-wash);color:var(--topic-ink);text-decoration:none;transition:transform .18s}.lab-topic-tile:hover{transform:translateY(-3px);text-decoration:none;box-shadow:0 8px 0 #17251408}.lab-topic-tile>svg{display:block;margin-bottom:23px}.lab-topic-label{font:10px/1.6 var(--mono);letter-spacing:.6px;text-transform:uppercase;color:var(--topic-ink)}.lab-topic-tile h3{font-size:20px;margin:8px 0 10px;color:var(--ink);letter-spacing:-.5px}.lab-topic-tile p{font-size:14px;margin:0;color:var(--topic-ink);max-width:28ch}.tile-arrow{position:absolute;right:24px;top:22px;font-size:25px}.lab-topics{margin-bottom:65px}.lab-all-link{font-weight:700;font-size:14px;white-space:nowrap}.lab-buying-grid{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:0;margin:0 0 65px}.lab-buying-grid li{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);background:#fff;border-radius:9px;overflow:hidden;padding:24px;border-top:4px solid var(--topic-accent)}.lab-card-top{display:flex;align-items:center;gap:12px;color:var(--topic-ink);margin-bottom:22px}.lab-card-top svg{background:var(--topic-wash);padding:7px;width:42px;height:42px;border-radius:7px;flex-shrink:0}.lab-buying-grid h3{font-size:21px;line-height:1.35;margin:0 0 15px;letter-spacing:-.5px}.lab-buying-grid h3 a{color:var(--ink);text-decoration:none}.lab-buying-grid h3 a:hover{text-decoration:underline}.lab-buying-grid p{font-size:14px;line-height:1.75;color:var(--muted);margin:0 0 22px}.lab-read{margin-top:auto;font-size:13px;font-weight:800;color:var(--topic-ink)}
.lab-promise{display:grid;grid-template-columns:1fr 1.3fr;gap:65px;background:var(--graphite);color:#edf7e5;border-radius:14px;padding:42px;margin-bottom:65px}.lab-promise .kicker{color:var(--electric);font-size:10px}.lab-promise h2{font-size:38px;margin:10px 0 28px;letter-spacing:-1.2px}.lab-promise a{color:var(--cyan);font-size:13px;font-weight:700}.lab-promise ol{list-style:none;padding:0;margin:0}.lab-promise li{display:flex;gap:20px;border-top:1px solid #415247;padding:18px 0}.lab-promise li>span{font:12px var(--mono);color:var(--electric);padding-top:4px}.lab-promise h3{font-size:17px;margin:0 0 8px}.lab-promise p{font-size:14px;color:#bacdc0;margin:0;line-height:1.75}.lab-builds{margin-bottom:65px}.lab-builds h2{margin:8px 0 24px;font-size:30px}.lab-builds>a{display:flex;justify-content:space-between;gap:20px;padding:22px;border:1px solid var(--line);border-left:5px solid var(--electric);background:white;border-radius:7px;color:var(--ink);font-weight:700}.lab-builds>p:last-child{font-size:14px;color:var(--muted);margin-top:16px}
/* Article chassis: color is decoration; labels always state the category and decision. */
.lab-site .product-review{--review-navy:var(--graphite);--review-soft:#eff5ec;--review-green:#00665b}.lab-site .guide-page .hero-band{background:transparent;border-bottom:1px solid var(--line);padding-top:0}.lab-site .review-hero{padding-top:20px}.lab-site .review-intro>.kicker{display:inline-block;border:1px solid color-mix(in srgb,var(--topic-ink) 30%,white);border-radius:5px;padding:7px 10px;background:var(--topic-wash);color:var(--topic-ink);font:11px/1.6 var(--mono);max-width:100%}.lab-site .review-hero h1{font-size:clamp(2.3rem,4vw,4rem);line-height:1.08;letter-spacing:-1.8px}.lab-site .review-cover{background:var(--graphite);border:1px solid #56685c;border-top:4px solid var(--topic-accent)}.lab-site .cover-journey>div:last-child{background:var(--topic-accent);border-color:var(--topic-accent)}
.lab-site .lab-quick-picks{background:var(--graphite);color:#f5faef;border:1px solid #4d6253;border-left:6px solid var(--topic-accent);padding:28px 32px;margin:28px 0 40px;border-radius:10px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:30px}.lab-site .lab-quick-picks .kicker{color:var(--topic-accent);font-size:10px}.lab-site .lab-quick-picks h2{font-size:25px;margin:0 0 15px;letter-spacing:-.7px}.lab-site .lab-quick-picks .review-lead{font-size:17px;line-height:1.8;color:#edf5e7;margin:0}.lab-quick-badges{display:grid;gap:10px;margin:0;padding:0;list-style:none;align-self:center}.lab-quick-badges li{border:1px solid #4d6155;background:#25342b;border-radius:6px;padding:12px 15px}.lab-quick-badges span{display:block;color:var(--topic-accent);font:10px/1.5 var(--mono);letter-spacing:.5px;margin-bottom:5px}.lab-quick-badges strong{font:600 14px/1.5 var(--mono);color:#f5faef}.lab-site .lab-quick-picks .review-small{color:#bacac0;grid-column:1/-1;margin:0;font-size:12px!important}.lab-site .lab-quick-picks .review-small a{color:var(--cyan)}.lab-quick-picks .review-fit{grid-column:1/-1;border-color:#4d6155;padding-top:20px;gap:24px}.lab-quick-picks .review-fit p{color:#d2dfd6;margin-bottom:0}.lab-quick-picks .fit-label,.lab-quick-picks .review-fit>div:last-child .fit-label{color:var(--topic-accent)}
.lab-site .guide-page .guide-grid{grid-template-columns:180px minmax(0,1fr) 250px;gap:32px}.lab-site .guide-prose{font-size:17px;line-height:1.85}.lab-site .guide-prose .prose-section{border-top:2px solid var(--topic-accent);padding-top:22px}.lab-site .guide-prose .prose-section:before{font-family:var(--mono);color:var(--topic-ink)}.lab-site .guide-prose .prose-section>h2{font-size:clamp(1.65rem,2.3vw,2.2rem);letter-spacing:-.8px;line-height:1.2}.lab-site .guide-page .review-sidebar nav a.is-active{background:var(--topic-wash);border-color:var(--topic-ink);color:var(--topic-ink)}.lab-site .review-sidebar .kicker{font-size:10px}.lab-site .review-section{border-color:var(--line)}
.lab-site .prose thead th,.lab-site .parts-table th{background:var(--topic-wash);color:var(--topic-ink);border-bottom:3px solid var(--topic-accent);font-size:13px;font-weight:800;position:static}.lab-site .prose tbody tr:nth-child(even){background:#f0f5ef}.lab-site .prose tbody tr:hover{background:var(--topic-wash)}.lab-site .prose table{box-shadow:none;border:1px solid var(--line);font-size:14px}.lab-site .prose td,.lab-site .prose th{padding:14px 16px}.lab-site .prose blockquote,.lab-site .prose .callout{background:var(--topic-wash);border-left:4px solid var(--topic-accent);border-radius:6px}.lab-site .prose .callout:before{background:var(--topic-ink)}.lab-site .review-facts strong,.lab-site code{font-family:var(--mono)}.lab-site .review-callout,.lab-site .feature-check{background:var(--topic-wash);border-left:4px solid var(--topic-accent)}
.lab-site .amazon-equipment{border-top:3px solid var(--topic-accent);padding-top:28px}.lab-site .equipment-card{border-top:5px solid var(--topic-accent);border-radius:8px;background:white;box-shadow:0 4px 0 #162e2006}.lab-site .equipment-card .kicker{color:var(--topic-ink);font-size:10px}.lab-site .equipment-card h3{letter-spacing:-.5px}.lab-site .equipment-card .btn{display:block;background:#00665b;color:white;text-align:center;padding:15px 14px;border:1px solid #004e47}.lab-site .equipment-card .btn:hover{background:#004d45;color:white}.lab-site .equipment-card .btn:focus-visible{outline-color:#171d1c}.lab-site .amazon-disclosure{background:var(--topic-wash);color:var(--topic-ink);border-radius:4px;padding:10px 12px;font-size:13px}.lab-site .rail-card{border-radius:7px;box-shadow:none}.lab-site .rail-calc,.lab-site .review-final{background:var(--graphite)}.lab-site .hub-cluster{border-top:3px solid var(--electric);padding-top:20px}.lab-site .hub-articles li{background:white}
@media(min-width:1350px){.lab-site .guide-page .review-hero{gap:40px}.lab-site .guide-page .review-hero.no-cover{max-width:1100px}}
@media(max-width:1180px){.lab-site .guide-page .guide-grid{grid-template-columns:170px minmax(0,1fr)}.lab-site .rail{position:static;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.lab-hero{gap:30px;padding:44px 32px}.lab-hero h1{letter-spacing:-2px}}
@media(max-width:850px){.lab-site header.site .wrap{flex-wrap:wrap;padding-block:20px;gap:18px}.lab-site nav.main{width:100%;justify-content:space-between;gap:10px}.lab-site nav.main a{padding:6px 0}.lab-hero{grid-template-columns:1fr;gap:36px;padding:38px 28px}.lab-rack{max-width:520px;width:100%;justify-self:center;transform:none;box-shadow:7px 8px 0 #0003}.lab-hero h1{font-size:clamp(3rem,8vw,4.4rem)}.lab-topic-grid,.lab-buying-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-promise{gap:30px;padding:30px;grid-template-columns:1fr 1.3fr}.lab-site .guide-page .guide-grid{grid-template-columns:1fr}.lab-site .lab-quick-picks{grid-template-columns:1fr}.lab-quick-badges{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-site .rail{grid-template-columns:1fr}}
@media(max-width:540px){.lab-site .wrap{padding-inline:20px}.lab-site header.site .wrap{padding-inline:20px}.wordmark{font-size:23px}.wordmark small{font-size:9px}.lab-site nav.main{gap:12px}.lab-site nav.main a{font-size:11px}.lab-hero{margin-inline:-20px;border-radius:0 0 14px 14px;padding:36px 22px;margin-bottom:42px}.lab-hero h1{font-size:50px;letter-spacing:-2px}.lab-hero-copy>p:not(.lab-eyebrow){font-size:16px}.lab-eyebrow{font-size:9px;letter-spacing:.9px}.lab-actions{gap:10px}.lab-site .lab-primary,.lab-site .lab-secondary{font-size:12px}.lab-rack{padding:14px;max-width:100%;box-shadow:4px 5px 0 #0003}.rack-unit{gap:9px;padding:12px 8px;grid-template-columns:20px minmax(0,1fr) 18px}.rack-unit strong{font-size:9px}.rack-bars b{width:24px}.rack-ports{gap:4px}.rack-ports b{width:15px}.rack-bottom{font-size:7px;letter-spacing:.4px}.lab-topic-grid{gap:12px}.lab-topic-tile{padding:17px 14px;min-height:213px}.lab-topic-tile h3{font-size:17px;line-height:1.3}.lab-topic-tile p{font-size:12px;line-height:1.6}.lab-topic-label{font-size:8px}.tile-arrow{right:14px;top:12px;font-size:22px}.lab-section-heading{gap:14px;align-items:start}.lab-section-heading>p{display:none}.lab-section-heading h2{font-size:28px}.lab-all-link{font-size:12px;margin-top:28px}.lab-buying-grid{grid-template-columns:1fr;gap:16px}.lab-buying-grid li{padding:23px}.lab-promise{grid-template-columns:1fr;padding:26px;gap:28px}.lab-promise h2{font-size:34px}.lab-quick-badges{grid-template-columns:1fr}.lab-site .lab-quick-picks{padding:24px 20px;border-left-width:4px;margin-top:12px}.lab-site .lab-quick-picks .review-fit{grid-template-columns:1fr}.lab-site .review-hero h1{font-size:36px;letter-spacing:-1.1px}.lab-site .review-breadcrumb{overflow-wrap:anywhere}.lab-site .guide-prose{font-size:17px}.lab-site .prose td,.lab-site .prose th{padding:12px}.lab-site .review-intro>.kicker{font-size:9px}.lab-site .equipment-grid{grid-template-columns:1fr}.lab-site .review-fit p{font-size:14px}.lab-site .lab-quick-picks .review-lead{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.lab-site *,.lab-site *:before,.lab-site *:after{animation:none!important;transition:none!important}.lab-topic-tile:hover{transform:none}}
@media print{body.lab-site{background:white}.lab-site .lab-quick-picks{background:white;color:black;border:1px solid #777}.lab-site .lab-quick-picks :is(p,strong,span){color:black}.lab-site header.site,.lab-rack{display:none}}
/* Full-width introductions when there is no illustrated article cover. */
.lab-site .guide-page .hero-band .review-hero.no-cover{grid-template-columns:1fr;max-width:none;padding:24px 0 30px}.lab-site .review-hero.no-cover h1{max-width:1050px}.lab-site .review-hero.no-cover .review-deck{max-width:820px}.lab-site .review-hero.no-cover .review-actions{margin-block:18px}.lab-site .review-hero.no-cover .review-byline{margin-top:16px}.lab-site .prose .callout-tip strong:first-child{color:#14663a}.lab-site .prose .callout-warn strong:first-child{color:#834207}.lab-site .prose .callout-key strong:first-child{color:#705006}
@media(max-width:540px){.lab-site .guide-page .hero-band{padding-inline:0}.lab-site .guide-page .hero-band .review-hero{padding-top:20px}.lab-site .review-hero.no-cover h1{font-size:34px}.lab-site .review-deck{font-size:16px}.lab-site .review-breadcrumb{margin-block:24px}.lab-site .guide-page .hero-band .review-hero.no-cover{padding-top:15px}}

.lab-site .guide-page .review-sidebar nav a span{color:var(--muted)}.lab-site .guide-page .review-sidebar nav a.is-active span{color:var(--topic-ink)}.lab-site .next-read>.kicker{color:var(--electric)}
.lab-site :is(.lab-quick-picks,.lab-promise,.next-read,.review-cover,.review-final,.rail-calc,footer.site) :is(a,button,input,summary):focus-visible{outline-color:var(--cyan)}
/* Job231: article color bands and compact buyer-facing product cards. */
.lab-site .guide-page .hero-band{background:var(--topic-wash);border:1px solid color-mix(in srgb,var(--topic-ink) 20%,white);border-top:5px solid var(--topic-accent);border-radius:12px}.lab-site .review-intro>.kicker{font-size:12px;font-weight:700;padding:9px 13px;background:var(--topic-accent);border-color:transparent;color:var(--topic-ink)}
.lab-site .equipment-role{align-self:flex-start;display:inline-block;font:700 10px/1.5 var(--mono);color:var(--topic-ink);background:var(--topic-wash);border:1px solid color-mix(in srgb,var(--topic-ink) 22%,white);padding:6px 9px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;margin:0 0 17px}.lab-site .equipment-card .equipment-reason{font-size:14px;line-height:1.65;margin:0 0 16px}.equipment-specs{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 22px}.equipment-specs span{display:inline-block;border:1px solid var(--line);background:#f4f7f1;color:#34493e;border-radius:4px;padding:5px 7px;font:11px/1.5 var(--mono)}.lab-site .equipment-card small{display:block;margin-top:12px;font-size:11px;line-height:1.6}.lab-site .equipment-card .btn{margin-top:auto}
@media(max-width:540px){.lab-site .guide-page .hero-band{padding-inline:18px}.lab-site .review-intro>.kicker{font-size:10px}.lab-site .equipment-card{padding:22px}.equipment-specs span{font-size:11px}}
.lab-site .equipment-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
/* Home Assistant hub: two live starting points, with non-interactive future projects. */
.lab-site nav.main a[aria-current=page]{color:var(--electric);border-color:var(--electric)}
.ha-hero{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:52px;background:var(--graphite);color:#edf7e5;border-bottom:5px solid var(--electric);padding:48px 42px;border-radius:0 0 16px 16px;margin:0 0 54px}.ha-hero .lab-eyebrow{color:var(--electric);font-size:10px}.ha-hero h1{font-size:clamp(3rem,5.5vw,4.7rem);line-height:1.03;margin:0 0 22px;letter-spacing:-2px}.ha-hero h1 span{color:var(--electric)}.ha-hero p:not(.lab-eyebrow){max-width:47ch;font-size:17px;color:#cbd8d1;line-height:1.8}.ha-hero .btn{margin-top:8px}.ha-hero-art{display:grid;justify-items:center;gap:12px;padding:28px;border:1px solid #4d6253;border-radius:12px;background:#233028;font:12px/1.6 var(--mono);letter-spacing:1px;color:var(--cyan)}.ha-hero-art>svg{width:96px;height:96px;color:var(--electric);margin-bottom:14px;stroke-width:1}.ha-hero-art b{color:#acc7b4;font-size:18px;transform:rotate(90deg)}
.ha-start{scroll-margin-top:24px}.ha-start-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:22px;margin-bottom:60px}.ha-feature,.ha-host{display:flex;flex-direction:column;padding:30px;border:1px solid var(--line);border-top:5px solid var(--topic-accent);border-radius:10px;min-width:0}.ha-feature{background:var(--graphite);color:#edf7e5}.ha-host{background:var(--topic-wash)}.ha-card-step{display:flex;align-items:center;gap:12px;font:10px/1.6 var(--mono);letter-spacing:.7px;color:var(--topic-ink);margin:0 0 25px}.ha-feature .ha-card-step{color:var(--electric)}.ha-start-grid h3{font-size:27px;line-height:1.22;margin:0 0 18px;letter-spacing:-.7px}.ha-start-grid h3 a{color:inherit;text-decoration:none}.ha-start-grid h3 a:hover{text-decoration:underline}.ha-start-grid>article>p:not(.ha-card-step):not(.ha-affiliate-note){font-size:15px;line-height:1.8}.ha-feature>p:not(.ha-card-step){color:#cbd8d1}.ha-top-pick{background:#25342b;border:1px solid #4d6253;border-left:4px solid var(--electric);padding:18px;border-radius:6px;margin:6px 0 22px}.ha-pick-label{display:block;font:10px/1.5 var(--mono);color:var(--electric);letter-spacing:.8px;margin-bottom:8px}.ha-top-pick strong{display:block;font-size:20px;line-height:1.4}.ha-top-pick p{font-size:13px;color:#cbd8d1;margin:9px 0 0}.ha-card-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:auto}.ha-card-actions .btn{font-size:13px}.ha-guide-link{font-size:13px;font-weight:700;color:var(--cyan)}.ha-affiliate-note{font-size:11px;color:#cbd8d1;margin:18px 0 0}.ha-host-chips{display:flex;flex-wrap:wrap;gap:8px;margin:5px 0 30px}.ha-host-chips span{background:white;border:1px solid #d9b6cb;border-radius:4px;padding:6px 8px;color:var(--topic-ink);font:10px/1.5 var(--mono)}.ha-host .btn{align-self:flex-start;margin-top:auto;background:#00665b;color:white;font-size:13px}.ha-teaser-grid{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0;margin:0 0 60px}.ha-teaser-grid li{border:1px solid var(--line);border-top:4px solid var(--topic-accent);background:var(--topic-wash);border-radius:8px;padding:24px;color:var(--topic-ink)}.ha-teaser-grid svg{display:block;margin-bottom:22px}.ha-teaser-label{font:9px/1.5 var(--mono);letter-spacing:.8px}.ha-teaser-grid h3{font-size:19px;line-height:1.4;margin:9px 0;color:var(--ink);letter-spacing:-.3px}.ha-teaser-grid p{font-size:13px;line-height:1.7;margin:0}.lab-site :is(.ha-hero,.ha-feature) a:focus-visible{outline-color:var(--cyan)}
@media(max-width:850px){.ha-hero{grid-template-columns:1.2fr 1fr;gap:24px;padding:32px 28px}.ha-start-grid{grid-template-columns:1fr}.ha-teaser-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.ha-hero{grid-template-columns:1fr;margin-inline:-20px;padding:34px 22px;gap:28px;margin-bottom:38px}.ha-hero h1{font-size:48px}.ha-hero-art{grid-template-columns:28px 1fr;justify-items:start;padding:20px;gap:10px}.ha-hero-art>svg{grid-row:1/6;width:52px;height:52px;align-self:center;justify-self:center;margin:0 25px 0 0}.ha-hero-art b{display:none}.ha-hero-art span{grid-column:2}.ha-hero-art{grid-template-columns:65px 1fr}.ha-feature,.ha-host{padding:23px}.ha-start-grid h3{font-size:25px}.ha-teaser-grid{grid-template-columns:1fr;gap:13px}.ha-teaser-grid li{padding:22px}.ha-card-actions{gap:18px}.ha-teaser-grid svg{margin-bottom:15px}}

.lab-site .tablewrap:focus-visible{outline:3px solid var(--topic-ink,#00665b);outline-offset:3px}
.lab-site .rail-offer .mono{background:var(--graphite);color:#fafbf7}

/* Repeated project kit: the same registry data at both ends of a how-to. */
.kit-parts{margin:28px 0 40px;padding:26px;border:1px solid var(--line);border-top:5px solid var(--topic-accent);background:var(--topic-wash);border-radius:12px}.kit-parts h2{margin:8px 0 12px;font-size:30px}.kit-parts .kit-disclosure{font-size:12px;color:var(--topic-ink)}.kit-parts ul{list-style:none;padding:0;margin:0}.kit-parts li{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 0;border-top:1px solid color-mix(in srgb,var(--topic-ink) 20%,white)}.kit-parts strong{font-size:16px}.kit-parts li p{margin:5px 0 0;font-size:14px;color:var(--ink)}.kit-parts .btn{flex-shrink:0;font-size:12px;padding:10px 12px}.ha-starter-first{grid-column:1/-1}.ha-starter-first h3{max-width:850px}.ha-starter-first>p{max-width:800px}@media(max-width:650px){.kit-parts{padding:20px}.kit-parts li{align-items:flex-start;flex-direction:column;gap:14px}.kit-parts .btn{width:100%;text-align:center}}
/* Keep long technical terms and source URLs inside the article on narrow screens. */
.lab-site .review-body{overflow-wrap:anywhere}

/* Disclosures stay beside the recommendation, with the same readable lab typography. */
.lab-site .affiliate-near-link{font-size:14px;line-height:1.6;color:var(--muted);margin:0 0 20px;font-weight:400;letter-spacing:normal;text-transform:none;grid-column:1/-1}
.lab-site .affiliate-near-link a{color:var(--blue);font-weight:600;text-decoration:underline}
.lab-site .affiliate-near-link span{display:block;margin-top:4px}
.lab-site footer .footer-disclosure{max-width:850px;font-size:14px;line-height:1.65;color:#d7e1e5;margin-bottom:20px}
.lab-site .ha-feature .affiliate-near-link{color:#cbd8d1}
.lab-site .ha-feature .affiliate-near-link a{color:var(--cyan)}
.lab-guide-count{display:block;margin-top:14px;font:700 12px/1.5 var(--mono);color:var(--topic-ink)}

.article-hero-image{margin:1.5rem 0;overflow:hidden;border-radius:1rem}.article-hero-image img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}

/* The fabrication corner: coral on warm paper, light coral on graphite. */
[data-topic=printing]{--topic-accent:#ffad94;--topic-ink:#88351f;--topic-wash:#fff0e9}
.lab-site nav.main{flex-wrap:wrap}
.printing-feature{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:center;background:var(--topic-wash);border:1px solid #e6c5b9;border-top:5px solid var(--topic-accent);border-radius:12px;padding:28px;margin-bottom:48px}.printing-feature img{display:block;width:100%;height:auto;border-radius:8px}.printing-feature h2{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.12;margin:12px 0}.printing-coming{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.printing-coming li{padding:24px;border:1px solid var(--line);border-top:4px solid var(--topic-accent);border-radius:8px;background:var(--topic-wash)}.printing-coming svg{color:var(--topic-ink)}.printing-coming h3{margin:16px 0 10px}.printing-coming p{margin:0;color:var(--muted)}
@media(max-width:650px){.printing-feature,.printing-coming{grid-template-columns:1fr}.printing-feature{padding:22px}.lab-site nav.main{justify-content:flex-start;column-gap:18px}}
.ha-hero[data-topic=printing]{border-top-color:var(--topic-accent)}.ha-hero[data-topic=printing] h1 span{color:var(--topic-accent)}.ha-hero[data-topic=printing] .ha-hero-art{border-color:#856052;color:#ffad94}.ha-hero[data-topic=printing] .btn{background:var(--topic-accent);color:#38170e}.printing-feature .tag{background:#f8d6c9;color:#88351f}
.ha-hero[data-topic=printing]{border-bottom-color:var(--topic-accent)}.ha-hero[data-topic=printing] .ha-hero-art>svg{color:var(--topic-accent)}
@media(max-width:540px){.lab-site nav.main{display:grid;grid-template-columns:repeat(3,max-content);gap:8px 18px}}

/* Meshtastic: signal yellow, warm paper and graphite. */
[data-topic=mesh]{--topic-accent:#f4dc73;--topic-ink:#695100;--topic-wash:#fff9dd}
.ha-hero[data-topic=mesh]{border-bottom-color:var(--topic-accent)}.ha-hero[data-topic=mesh] h1 span,.ha-hero[data-topic=mesh] .ha-hero-art>svg{color:var(--topic-accent)}.ha-hero[data-topic=mesh] .ha-hero-art{border-color:#87773e;color:var(--topic-accent)}.ha-hero[data-topic=mesh] .btn{background:var(--topic-accent);color:#302600}[data-topic=mesh] .printing-feature{border-color:#dbca8a}[data-topic=mesh] .printing-feature .tag{background:#f4e9ad;color:#695100}
/* Wide comparisons scroll inside their focusable wrapper instead of splitting words on phones. */
.lab-site .prose .tablewrap table:has(th:nth-child(5)){min-width:720px;overflow-wrap:normal}

/* Electronics bench: mint PCB traces, with dark readable ink. */
[data-topic=electronics]{--topic-accent:#83e8c5;--topic-ink:#165640;--topic-wash:#e7faf3}
.ha-hero[data-topic=electronics]{border-bottom-color:var(--topic-accent)}.ha-hero[data-topic=electronics] h1 span{color:var(--topic-accent)}.ha-hero[data-topic=electronics] .btn{background:var(--topic-accent);color:#15362b}.electronics-hero-visual img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid #527767}.electronics-start{background:var(--topic-wash);border:1px solid #afd9c9;border-top:5px solid var(--topic-accent);padding:30px;border-radius:12px;margin-bottom:42px}.electronics-start .tag{background:#c7efdf;color:var(--topic-ink)}.electronics-start h2{margin-top:18px}.electronics-start p{max-width:850px}.electronics-paths{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.electronics-paths li{border:1px solid var(--line);border-top:4px solid var(--topic-accent);border-radius:10px;padding:24px;background:var(--topic-wash)}.electronics-paths svg{color:var(--topic-ink)}.electronics-paths h3{margin:15px 0 12px}.electronics-paths p{font-size:15px;margin:0}@media(max-width:850px){.electronics-paths{grid-template-columns:1fr}}@media(max-width:540px){.electronics-start{padding:22px}}
.lab-site [data-topic=electronics] .prose .tablewrap table{min-width:640px;overflow-wrap:normal}

[data-topic=desk]{--topic-accent:#ffc08a;--topic-ink:#793b13;--topic-wash:#fff2e6}
.ha-hero[data-topic=desk]{border-bottom-color:var(--topic-accent)}.ha-hero[data-topic=desk] h1 span{color:var(--topic-accent)}.ha-hero[data-topic=desk] .btn{background:var(--topic-accent);color:#3d230f}.desk-hero-visual img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid #997957}.desk-start{background:var(--topic-wash);border:1px solid #e3c0a2;border-top:5px solid var(--topic-accent);border-radius:12px;padding:30px;margin-bottom:42px}.desk-start .tag{background:#ffe0c4;color:var(--topic-ink)}.desk-start h2{margin-top:18px}.desk-start p{max-width:850px}@media(max-width:540px){.desk-start{padding:22px}}
.lab-site [data-topic=desk] .prose .tablewrap table{min-width:680px;overflow-wrap:normal}

[data-topic=sdr]{--topic-accent:#a6d5ff;--topic-ink:#214d77;--topic-wash:#ecf5ff}
.ha-hero[data-topic=sdr]{border-bottom-color:var(--topic-accent)}.ha-hero[data-topic=sdr] h1 span{color:var(--topic-accent)}.ha-hero[data-topic=sdr] .btn{background:var(--topic-accent);color:#16324f}.sdr-hero-visual img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid #587da2}.sdr-start{background:var(--topic-wash);border:1px solid #b7cfe6;border-top:5px solid var(--topic-accent);border-radius:12px;padding:30px;margin-bottom:42px}.sdr-start .tag{background:#d3e8fd;color:var(--topic-ink)}.sdr-start h2{margin-top:18px}.sdr-start p{max-width:850px}.lab-site [data-topic=sdr] .prose .tablewrap table{min-width:680px;overflow-wrap:normal}@media(max-width:540px){.sdr-start{padding:22px}}
@media(min-width:1200px){.lab-site nav.main{column-gap:18px}}
