  :root{
    --bg:#0a0e1a;
    --surface:#111627;
    --surface-2:#161c31;
    --red:#c9973f;
    --red-dark:#8a6423;
    --text:#f2f0e8;
    --text-dim:#9297ab;
    --steel:#2a3150;
    --steel-light:#3c4568;
    --radius:2px;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg);
    color:var(--text);
    font-family:'Inter',sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  .display{font-family:'Anton',sans-serif;text-transform:uppercase;letter-spacing:0.5px;}
  .mono{font-family:'IBM Plex Mono',monospace;letter-spacing:0.03em;}

  /* rack hole motif */
  .hole-rail{
    position:fixed;
    top:0; bottom:0;
    width:34px;
    background:repeating-linear-gradient(
      to bottom,
      transparent 0px, transparent 22px,
      var(--steel) 22px, var(--steel) 23px
    );
    z-index:0;
    opacity:0.55;
    pointer-events:none;
  }
  .hole-rail::before{
    content:'';
    position:absolute; inset:0;
    background-image: radial-gradient(circle, var(--bg) 4px, transparent 4.5px);
    background-size: 34px 46px;
    background-position: 0 22px;
  }
  .hole-rail.left{left:0;}
  .hole-rail.right{right:0;}

  a{color:inherit;text-decoration:none;}
  ::selection{background:var(--red);color:var(--text);}

  /* header */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(14,14,16,0.88);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--steel);
  }
  .nav-inner{
    max-width:1180px; margin:0 auto;
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 28px;
  }
  .logo{
    display:flex; align-items:baseline; gap:8px;
    font-size:24px;
  }
  .logo .dot{color:var(--red);}
  .tabs{
    display:flex; gap:2px;
    border:1px solid var(--steel);
    border-radius:var(--radius);
    overflow:hidden;
  }
  .tab-btn{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px; letter-spacing:0.08em;
    text-transform:uppercase;
    padding:11px 18px;
    background:var(--surface);
    color:var(--text-dim);
    border:none;
    cursor:pointer;
    border-right:1px solid var(--steel);
    transition:background .15s, color .15s;
  }
  .tab-btn:last-child{border-right:none;}
  .tab-btn:hover{color:var(--text);}
  .tab-btn.active{
    background:var(--red);
    color:#fff;
  }

  /* hero */
  .hero{
    max-width:900px; margin:0 auto;
    padding:56px 28px 90px;
    text-align:center;
    position:relative;
    z-index:1;
  }
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px; color:var(--red);
    letter-spacing:0.18em; text-transform:uppercase;
    display:flex; align-items:center; justify-content:center; gap:10px;
    margin-bottom:26px;
  }
  .eyebrow::before, .eyebrow::after{
    content:'';
    width:26px; height:2px; background:var(--red);
  }
  .hero h1{
    font-size:clamp(46px, 8vw, 92px);
    line-height:0.94;
    margin-bottom:24px;
  }
  .hero h1 span{color:var(--red);}
  .hero p{
    font-size:18px; color:var(--text-dim);
    max-width:560px; line-height:1.6;
    margin:0 auto 44px;
  }
  .btn-primary{
    display:inline-flex; align-items:center; gap:10px;
    background:var(--red); color:#fff;
    font-family:'IBM Plex Mono',monospace;
    font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
    padding:15px 26px;
    border-radius:var(--radius);
    font-weight:600;
    transition:background .15s, transform .15s;
  }
  .btn-primary:hover{background:#d9ab5c; transform:translateY(-1px);}
  .btn-primary svg{width:14px;height:14px;}

  .category-buttons{
    display:flex;
    justify-content:center;
    gap:14px;
    flex-wrap:wrap;
  }
  .cat-btn{
    display:flex; flex-direction:column; align-items:center; gap:10px;
    background:var(--surface);
    border:1px solid var(--steel);
    border-radius:var(--radius);
    padding:22px 30px;
    min-width:150px;
    cursor:pointer;
    transition:border-color .15s, transform .15s, background .15s;
  }
  .cat-btn:hover{
    border-color:var(--red);
    background:var(--surface-2);
    transform:translateY(-2px);
  }
  .cat-btn .cat-icon{
    width:30px; height:30px;
    display:flex; align-items:center; justify-content:center;
    color:var(--red);
  }
  .cat-btn .cat-icon svg{width:23px;height:23px;}
  .cat-btn .cat-label{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
    font-weight:600;
  }
  .cat-btn .cat-count{
    font-family:'IBM Plex Mono',monospace;
    font-size:10px; color:var(--text-dim);
  }

  /* why-us trust bar */
  .why-us{
    border-top:1px solid var(--steel);
    border-bottom:1px solid var(--steel);
    background:var(--surface);
    position:relative;
    z-index:1;
  }
  .why-us-inner{
    max-width:1180px; margin:0 auto;
    padding:44px 28px;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:32px;
  }
  .why-item{
    display:flex; gap:16px;
    align-items:flex-start;
  }
  .why-icon{
    flex-shrink:0;
    width:44px; height:44px;
    border:1px solid var(--red);
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    color:var(--red);
  }
  .why-icon svg{width:22px;height:22px;}
  .why-text h3{
    font-family:'IBM Plex Mono',monospace;
    font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
    font-weight:600;
    margin-bottom:6px;
  }
  .why-text p{
    font-size:13px; color:var(--text-dim);
    line-height:1.55;
  }
  @media (max-width:860px){
    .why-us-inner{grid-template-columns:1fr; gap:24px;}
  }

  /* section label */
  .section-label{
    max-width:1180px; margin:0 auto;
    padding:0 28px;
    display:flex; align-items:center; gap:14px;
    margin-bottom:34px;
  }
  .section-label h2{
    font-size:28px;
  }
  .section-label .rule{
    flex:1; height:1px; background:var(--steel);
  }
  .section-label .count{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px; color:var(--text-dim);
  }

  main{position:relative; z-index:1;}
  .tab-panel{display:none; padding:0 0 100px;}
  .tab-panel.active{display:block;}
  .empty-state{
    text-align:center;
    padding:80px 28px;
    color:var(--text-dim);
    font-size:16px;
  }

  .grid{
    max-width:1180px; margin:0 auto;
    padding:0 28px;
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(320px, 1fr));
    gap:22px;
  }

  /* product card */
  .card{
    background:var(--surface);
    border:1px solid var(--steel);
    border-radius:var(--radius);
    overflow:hidden;
    display:flex; flex-direction:column;
    transition:border-color .15s, transform .15s;
  }
  .card:hover{border-color:var(--red); transform:translateY(-3px);}
  .card-media{
    position:relative;
    background:#0f1b3d;
    aspect-ratio:4/3.2;
    overflow:hidden;
  }
  .card-media img{
    width:100%; height:100%; object-fit:contain;
    padding:18px;
    display:block;
  }
  .badge{
    position:absolute; top:12px; left:12px;
    background:var(--red);
    color:#fff;
    font-family:'IBM Plex Mono',monospace;
    font-size:11px; font-weight:600;
    letter-spacing:0.04em;
    padding:5px 9px;
    border-radius:var(--radius);
  }
  .badge.badge-right{
    left:auto; right:12px;
  }
  .card-body{
    padding:22px;
    display:flex; flex-direction:column;
    flex:1;
  }
  .brand-tag{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px; color:var(--red);
    text-transform:uppercase; letter-spacing:0.08em;
    margin-bottom:8px;
  }
  .card-title{
    font-size:19px; font-weight:700;
    line-height:1.3;
    margin-bottom:10px;
  }
  .card-blurb{
    font-size:13.5px; color:var(--text-dim);
    line-height:1.55;
    margin-bottom:16px;
  }
  .spec-list-label{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px; color:var(--red);
    text-transform:uppercase; letter-spacing:0.08em;
    margin-bottom:9px;
  }
  .rating{
    display:flex; align-items:center; gap:7px;
    margin-bottom:14px;
  }
  .stars{color:var(--red); font-size:13px; letter-spacing:1px;}
  .rating-text{font-size:12px; color:var(--text-dim);}
  .spec-list{
    list-style:none;
    margin-bottom:18px;
    display:flex; flex-direction:column; gap:7px;
  }
  .spec-list li{
    font-size:13px; color:var(--text-dim);
    display:flex; align-items:flex-start; gap:8px;
  }
  .spec-list li::before{
    content:'';
    width:5px; height:5px;
    background:var(--red);
    margin-top:6px;
    flex-shrink:0;
  }
  .price-row{
    display:flex; align-items:baseline; gap:10px;
    margin-bottom:18px;
    margin-top:auto;
    padding-top:14px;
    border-top:1px solid var(--steel);
  }
  .price{font-size:26px; font-weight:800;}
  .price-was{font-size:14px; color:var(--text-dim); text-decoration:line-through;}
  .price-save{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px; color:#3ecf6a;
  }
  .size-note{
    margin-bottom:18px;
    margin-top:auto;
    padding-top:14px;
    border-top:1px solid var(--steel);
    font-family:'IBM Plex Mono',monospace;
    font-size:12px; color:var(--text-dim);
  }
  .card-cta{
    display:flex; align-items:center; justify-content:center; gap:8px;
    background:var(--red); color:#fff;
    font-family:'IBM Plex Mono',monospace;
    font-size:12px; letter-spacing:0.06em; text-transform:uppercase;
    font-weight:600;
    padding:13px; border-radius:var(--radius);
    transition:background .15s;
  }
  .card-cta:hover{background:#d9ab5c;}
  .card-cta svg{width:12px;height:12px;}
  .review-link{
    display:flex; align-items:center; justify-content:center; gap:8px;
    background:var(--red); color:#fff;
    font-family:'IBM Plex Mono',monospace;
    font-size:12px; letter-spacing:0.06em; text-transform:uppercase;
    font-weight:600;
    padding:13px; border-radius:var(--radius);
    margin-top:10px;
    text-decoration:none;
    transition:background .15s;
  }
  .review-link:hover{background:#d9ab5c;}

  /* empty state */
  .empty-state{
    max-width:1180px; margin:0 auto;
    padding:0 28px;
  }
  .empty-box{
    border:1px dashed var(--steel-light);
    border-radius:var(--radius);
    padding:70px 40px;
    text-align:center;
    background:linear-gradient(180deg, var(--surface), transparent);
  }
  .empty-icon{
    width:46px; height:46px;
    margin:0 auto 22px;
    border:2px solid var(--red);
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    color:var(--red);
    font-family:'Anton',sans-serif;
    font-size:20px;
  }
  .empty-box h3{
    font-size:22px;
    margin-bottom:10px;
  }
  .empty-box p{
    color:var(--text-dim);
    font-size:14px;
    max-width:420px;
    margin:0 auto;
    line-height:1.6;
  }

  footer{
    border-top:1px solid var(--steel);
    padding:40px 28px 30px;
    position:relative; z-index:1;
  }
  .footer-inner{
    max-width:1180px; margin:0 auto;
    display:flex; flex-direction:column; gap:18px;
  }
  .footer-top{
    display:flex; justify-content:space-between; align-items:center;
    flex-wrap:wrap; gap:16px;
  }
  .disclosure{
    font-size:12px; color:var(--text-dim);
    line-height:1.6;
    max-width:720px;
    font-family:'IBM Plex Mono',monospace;
  }
  .copyright{
    font-size:12px; color:var(--steel-light);
  }

  @media (max-width:860px){
    .hero{padding-top:70px;}
    .nav-inner{flex-direction:column; gap:14px; align-items:flex-start;}
    .tabs{width:100%; overflow-x:auto;}
    .hole-rail{width:16px;}
  }

  /* review article pages */
  .breadcrumb{
    max-width:900px; margin:0 auto; padding:28px 28px 0;
    font-family:'IBM Plex Mono',monospace; font-size:12px;
    color:var(--text-dim); letter-spacing:0.04em;
  }
  .breadcrumb a{color:var(--text-dim); text-decoration:none;}
  .breadcrumb a:hover{color:var(--red);}
  .review-hero{
    max-width:900px; margin:0 auto; padding:36px 28px 20px;
    display:grid; grid-template-columns:280px 1fr; gap:40px;
    align-items:center;
  }
  .review-hero-media{
    background:#0f1b3d; border-radius:var(--radius);
    aspect-ratio:1/1; display:flex; align-items:center; justify-content:center;
    overflow:hidden;
  }
  .review-hero-media img{width:100%; height:100%; object-fit:contain; padding:20px;}
  .review-hero-info .brand-tag{margin-bottom:8px;}
  .review-hero-info h1{
    font-size:clamp(30px, 4vw, 46px);
    line-height:1.05; margin-bottom:14px;
  }
  .review-hero-info .lede{
    font-size:16px; color:var(--text-dim); line-height:1.6;
    margin-bottom:22px; max-width:520px;
  }
  .review-body{
    max-width:900px; margin:0 auto; padding:10px 28px 90px;
  }
  .review-section{margin-bottom:44px;}
  .review-section h2{
    font-size:22px; margin-bottom:16px;
    padding-bottom:12px; border-bottom:1px solid var(--steel);
  }
  .our-take{
    font-size:16px; line-height:1.75; color:var(--text);
  }
  .our-take p{margin-bottom:16px;}
  .our-take p:last-child{margin-bottom:0;}
  .faq-item{
    padding:18px 0; border-bottom:1px solid var(--steel);
  }
  .faq-item:last-child{border-bottom:none;}
  .faq-item h3{font-size:16px; margin-bottom:8px;}
  .faq-item p{font-size:14.5px; color:var(--text-dim); line-height:1.6;}
  @media (max-width:640px){
    .review-hero{grid-template-columns:1fr; text-align:center;}
    .review-hero-media{max-width:260px; margin:0 auto;}
    .review-hero-info .lede{margin-left:auto; margin-right:auto;}
  }

  /* related products - cross-linking between review pages */
  .related-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
    gap:16px;
  }
  .related-card{
    display:block; text-decoration:none; color:var(--text);
    background:var(--surface); border:1px solid var(--steel);
    border-radius:var(--radius); overflow:hidden;
    transition:border-color .15s;
  }
  .related-card:hover{border-color:var(--red);}
  .related-card-media{
    background:#0f1b3d; aspect-ratio:1/1;
  }
  .related-card-media img{width:100%; height:100%; object-fit:contain; padding:14px; display:block;}
  .related-card-body{padding:14px;}
  .related-card-brand{
    font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--red);
    text-transform:uppercase; letter-spacing:0.06em; margin-bottom:4px;
  }
  .related-card-title{font-size:14px; font-weight:700; line-height:1.3;}
