/* Project layouts retained, scoped to Labs so the shared header/footer stay native. */
.rq-labs-speaker .rq-labs-content *{ box-sizing: border-box; }
.rq-labs-speaker .rq-labs-content a{
      color: var(--accent);
      text-decoration: none;
      border-bottom: 1px solid rgba(0, 0, 0, 0.25);
      transition: border-color 0.2s ease, color 0.2s ease;
    }
.rq-labs-speaker .rq-labs-content a:hover{ border-bottom-color: var(--accent); }
.rq-labs-speaker .rq-labs-content .wrap{
      max-width: 780px;
      margin: 0 auto;
      padding: 0 28px;
    }
.rq-labs-speaker .rq-labs-content .hero{
      padding: 80px 0 60px;
      text-align: center;
    }
.rq-labs-speaker .rq-labs-content .eyebrow{
      font-size: 12px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--accent);
      margin-bottom: 24px;
    }
.rq-labs-speaker .rq-labs-content h1{
      font-family: var(--sans);
      font-weight: 500;
      font-size: clamp(38px, 6.4vw, 66px);
      line-height: 1.05;
      letter-spacing: -0.025em;
      margin: 0 0 28px;
      color: var(--fg);
    }
.rq-labs-speaker .rq-labs-content h1 em{ font-style: normal; color: var(--accent); font-weight: 500; }
.rq-labs-speaker .rq-labs-content .lede{
      font-family: var(--sans);
      font-size: clamp(18px, 2vw, 21px);
      font-weight: 400;
      line-height: 1.5;
      letter-spacing: -0.01em;
      color: var(--fg-dim);
      max-width: 620px;
      margin: 0 auto;
    }
.rq-labs-speaker .rq-labs-content .hero-media{
      margin: 56px auto 0;
      max-width: 1100px;
      padding: 0 28px;
    }
.rq-labs-speaker .rq-labs-content .hero-media img{
      width: 100%;
      height: auto;
      display: block;
      border-radius: var(--radius);
      cursor: zoom-in;
      transition: transform 0.4s ease, opacity 0.3s ease;
    }
.rq-labs-speaker .rq-labs-content .hero-media img:hover{ opacity: 0.92; }
.rq-labs-speaker .rq-labs-content article{ padding: 80px 0 40px; }
.rq-labs-speaker .rq-labs-content article h2{
      font-family: var(--sans);
      font-weight: 500;
      font-size: clamp(26px, 3.6vw, 34px);
      letter-spacing: -0.02em;
      line-height: 1.15;
      margin: 72px 0 20px;
      color: var(--fg);
    }
.rq-labs-speaker .rq-labs-content article h2:first-child{ margin-top: 0; }
.rq-labs-speaker .rq-labs-content article p{
      font-size: 16.5px;
      margin: 0 0 22px;
      color: #252525;
    }
.rq-labs-speaker .rq-labs-content article p.quote{
      font-family: var(--sans);
      font-style: normal;
      font-weight: 400;
      font-size: 19px;
      line-height: 1.5;
      letter-spacing: -0.01em;
      color: var(--fg);
      border-left: 2px solid var(--accent);
      padding: 4px 0 4px 22px;
      margin: 28px 0;
    }
.rq-labs-speaker .rq-labs-content article ul{
      padding-left: 20px;
      margin: 0 0 22px;
      color: #252525;
    }
.rq-labs-speaker .rq-labs-content article ul li{ margin: 6px 0; }
.rq-labs-speaker .rq-labs-content article strong{ color: var(--fg); font-weight: 500; }
.rq-labs-speaker .rq-labs-content article em{ color: var(--fg); }
.rq-labs-speaker .rq-labs-content article code{
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: 0.9em;
      color: var(--accent);
      background: rgba(0, 0, 0, 0.06);
      padding: 1px 6px;
      border-radius: 3px;
    }
.rq-labs-speaker .rq-labs-content hr.rule{
      border: none;
      border-top: 1px solid var(--rule);
      margin: 56px 0;
    }
.rq-labs-speaker .rq-labs-content .section-title{
      text-align: center;
      padding: 40px 0 24px;
    }
.rq-labs-speaker .rq-labs-content .section-title .eyebrow{ margin-bottom: 16px; }
.rq-labs-speaker .rq-labs-content .section-title h2{
      font-family: var(--sans);
      font-weight: 500;
      font-size: clamp(28px, 4vw, 40px);
      margin: 0;
      letter-spacing: -0.025em;
      line-height: 1.15;
    }
.rq-labs-speaker .rq-labs-content .section-title p{
      color: var(--fg-dim);
      font-family: var(--sans);
      font-size: 16.5px;
      margin: 14px auto 0;
      max-width: 560px;
      letter-spacing: -0.005em;
    }
.rq-labs-speaker .rq-labs-content .video-grid{
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 20px;
      max-width: 1200px;
      margin: 32px auto 0;
      padding: 0 28px;
    }
.rq-labs-speaker .rq-labs-content .video-card{
      background: var(--bg-soft);
      border: 1px solid var(--rule);
      border-radius: var(--radius);
      overflow: hidden;
      transition: border-color 0.3s ease, transform 0.3s ease;
    }
.rq-labs-speaker .rq-labs-content .video-card:hover{ border-color: #2a2a2a; }
.rq-labs-speaker .rq-labs-content .video-featured{
      max-width: 1100px;
      margin: 32px auto 20px;
      padding: 0 28px;
    }
.rq-labs-speaker .rq-labs-content .ratio-16x9{
      position: relative;
      width: 100%;
      padding-bottom: 56.25%;
    }
.rq-labs-speaker .rq-labs-content .ratio-16x9 iframe{
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
    }
.rq-labs-speaker .rq-labs-content .makeof{
      display: grid;
      grid-template-columns: 2fr 1fr;
      gap: 24px;
      max-width: 1100px;
      margin: 32px auto 0;
      padding: 0 28px;
      align-items: start;
    }
@media (max-width: 760px){.rq-labs-speaker .rq-labs-content .makeof{ grid-template-columns: 1fr; }}
.rq-labs-speaker .rq-labs-content .makeof .video-card{ width: 100%; }
.rq-labs-speaker .rq-labs-content .ratio-9x16{
      position: relative;
      width: 100%;
      max-width: 340px;
      margin: 0 auto;
      padding-bottom: 177.77%;
    }
.rq-labs-speaker .rq-labs-content .ratio-9x16 iframe{
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
    }
.rq-labs-speaker .rq-labs-content .diagram{
      max-width: 1100px;
      margin: 48px auto;
      padding: 0 28px;
    }
.rq-labs-speaker .rq-labs-content .diagram.diagram-narrow{
      max-width: 640px;
    }
.rq-labs-speaker .rq-labs-content .diagram.diagram-medium{
      max-width: 770px;
    }
.rq-labs-speaker .rq-labs-content .diagram.diagram-small{
      max-width: 380px;
    }
.rq-labs-speaker .rq-labs-content .diagram-pair{
      max-width: 1200px;
      margin: 48px auto;
      padding: 0 28px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px;
      align-items: center;
    }
.rq-labs-speaker .rq-labs-content .diagram-pair figure{ margin: 0; }
.rq-labs-speaker .rq-labs-content .diagram-pair img{
      width: 100%;
      height: auto;
      display: block;
      border-radius: var(--radius);
      cursor: zoom-in;
      transition: opacity 0.3s ease;
    }
.rq-labs-speaker .rq-labs-content .diagram-pair img:hover{ opacity: 0.92; }
.rq-labs-speaker .rq-labs-content .diagram-pair figcaption{
      text-align: center;
      color: var(--fg-faint);
      font-size: 13px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      margin-top: 14px;
    }
@media (max-width: 760px){.rq-labs-speaker .rq-labs-content .diagram-pair{ grid-template-columns: 1fr; gap: 32px; }}
.rq-labs-speaker .rq-labs-content .diagram img{
      width: 100%;
      height: auto;
      display: block;
      border-radius: var(--radius);
      cursor: zoom-in;
      transition: opacity 0.3s ease;
    }
.rq-labs-speaker .rq-labs-content .diagram img:hover{ opacity: 0.92; }
.rq-labs-speaker .rq-labs-content .caption{
      text-align: center;
      color: var(--fg-faint);
      font-size: 13px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      margin-top: 14px;
    }
.rq-labs-speaker .rq-labs-content footer{
      margin-top: 120px;
      padding: 48px 28px 60px;
      border-top: 1px solid var(--rule);
      text-align: center;
      color: var(--fg-faint);
      font-size: 13px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }
.rq-labs-speaker .rq-labs-content footer a{ color: var(--fg-dim); border-bottom: none; }
.rq-labs-speaker .rq-labs-content footer a:hover{ color: var(--accent); }
.rq-labs-speaker .rq-labs-content .lightbox{
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.94);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      z-index: 1000;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 40px;
      cursor: zoom-out;
      opacity: 0;
      transition: opacity 0.25s ease;
    }
.rq-labs-speaker .rq-labs-content .lightbox.open{ display: flex; opacity: 1; }
.rq-labs-speaker .rq-labs-content .lightbox img{
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
      border-radius: var(--radius);
      box-shadow: 0 20px 80px rgba(0,0,0,0.8);
      transform: scale(0.96);
      transition: transform 0.3s ease;
    }
.rq-labs-speaker .rq-labs-content .lightbox.open img{ transform: scale(1); }
.rq-labs-speaker .rq-labs-content .lightbox .close{
      position: absolute;
      top: 24px;
      right: 28px;
      background: none;
      border: none;
      color: var(--fg-dim);
      font-size: 28px;
      cursor: pointer;
      line-height: 1;
      padding: 8px 12px;
      font-family: var(--sans);
      font-weight: 300;
    }
.rq-labs-speaker .rq-labs-content .lightbox .close:hover{ color: var(--fg); }
.rq-labs-cards .rq-labs-content *{
      box-sizing: border-box;
    }
.rq-labs-cards .rq-labs-content html, .rq-labs-cards .rq-labs-content body{
      margin: 0;
      padding: 0;
      background: var(--bg);
      color: var(--fg);
      font-family: var(--sans);
      font-weight: 400;
      line-height: 1.65;
      letter-spacing: -0.005em;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }
.rq-labs-cards .rq-labs-content a{
      color: var(--accent);
      text-decoration: none;
      border-bottom: 1px solid rgba(0, 0, 0, 0.25);
      transition: border-color 0.2s ease, color 0.2s ease;
    }
.rq-labs-cards .rq-labs-content a:hover{
      border-bottom-color: var(--accent);
    }
.rq-labs-cards .rq-labs-content .wrap{
      max-width: 780px;
      margin: 0 auto;
      padding: 0 28px;
    }
.rq-labs-cards .rq-labs-content .update-banner{
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 28px;
    }
.rq-labs-cards .rq-labs-content .update-banner-inner{
      background:
        radial-gradient(ellipse 70% 120% at 50% 0%, rgba(0, 0, 0, 0.1), transparent 70%),
        rgba(0, 0, 0, 0.04);
      border: 1px solid rgba(0, 0, 0, 0.28);
      border-radius: var(--radius);
      padding: 16px 24px;
      text-align: center;
      font-size: 15.5px;
      line-height: 1.5;
      color: var(--fg);
    }
.rq-labs-cards .rq-labs-content .update-banner-inner strong{
      color: var(--accent);
      font-weight: 700;
      letter-spacing: 0.04em;
    }
.rq-labs-cards .rq-labs-content .update-banner-inner a{
      color: var(--accent);
      font-weight: 500;
      border-bottom: 1px solid rgba(0, 0, 0, 0.45);
      white-space: nowrap;
    }
.rq-labs-cards .rq-labs-content .update-banner-inner a:hover{
      border-bottom-color: var(--accent);
    }
.rq-labs-cards .rq-labs-content .update-banner-inner .muted{
      color: var(--fg-dim);
    }
.rq-labs-cards .rq-labs-content .hero{
      padding: 80px 0 60px;
      text-align: center;
    }
.rq-labs-cards .rq-labs-content .eyebrow{
      font-size: 12px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--accent);
      margin-bottom: 24px;
    }
.rq-labs-cards .rq-labs-content h1{
      font-family: var(--sans);
      font-weight: 500;
      font-size: clamp(38px, 6.4vw, 66px);
      line-height: 1.05;
      letter-spacing: -0.025em;
      margin: 0 0 28px;
      color: var(--fg);
    }
.rq-labs-cards .rq-labs-content h1 em{
      font-style: normal;
      color: var(--accent);
      font-weight: 500;
    }
.rq-labs-cards .rq-labs-content .lede{
      font-family: var(--sans);
      font-size: clamp(18px, 2vw, 21px);
      font-weight: 400;
      line-height: 1.5;
      letter-spacing: -0.01em;
      color: var(--fg-dim);
      max-width: 620px;
      margin: 0 auto;
    }
.rq-labs-cards .rq-labs-content .hero-media{
      margin: 56px auto 0;
      max-width: 1200px;
      padding: 0 28px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
    }
.rq-labs-cards .rq-labs-content .hero-media img{
      width: 100%;
      height: auto;
      display: block;
      border-radius: var(--radius);
      cursor: zoom-in;
      transition: transform 0.4s ease, opacity 0.3s ease;
    }
.rq-labs-cards .rq-labs-content .hero-media img:hover{
      opacity: 0.92;
    }
@media (max-width: 760px){.rq-labs-cards .rq-labs-content .hero-media{
        grid-template-columns: 1fr;
        gap: 16px;
      }}
.rq-labs-cards .rq-labs-content article{
      padding: 40px 0;
    }
.rq-labs-cards .rq-labs-content article h2{
      font-family: var(--sans);
      font-weight: 500;
      font-size: clamp(26px, 3.6vw, 34px);
      letter-spacing: -0.02em;
      line-height: 1.15;
      margin: 72px 0 20px;
      color: var(--fg);
    }
.rq-labs-cards .rq-labs-content article h2:first-child{
      margin-top: 0;
    }
.rq-labs-cards .rq-labs-content article h3{
      font-family: var(--sans);
      font-weight: 500;
      font-size: clamp(19px, 2.4vw, 22px);
      letter-spacing: -0.01em;
      margin: 40px 0 14px;
      color: var(--fg);
    }
.rq-labs-cards .rq-labs-content article p{
      font-size: 16.5px;
      margin: 0 0 22px;
      color: #252525;
    }
.rq-labs-cards .rq-labs-content article p.quote{
      font-family: var(--sans);
      font-style: normal;
      font-weight: 400;
      font-size: 19px;
      line-height: 1.5;
      letter-spacing: -0.01em;
      color: var(--fg);
      border-left: 2px solid var(--accent);
      padding: 4px 0 4px 22px;
      margin: 28px 0;
    }
.rq-labs-cards .rq-labs-content .callout{
      max-width: 620px;
      margin: 40px auto;
      padding: 28px 32px;
      background:
        radial-gradient(ellipse 80% 80% at 50% 0%, rgba(0, 0, 0, 0.08), transparent 70%),
        rgba(0, 0, 0, 0.03);
      border: 1px solid rgba(0, 0, 0, 0.22);
      border-radius: var(--radius);
      text-align: center;
      position: relative;
    }
.rq-labs-cards .rq-labs-content .callout p.callout-text{
      font-family: var(--sans);
      font-weight: 400;
      font-size: clamp(21px, 2.8vw, 27px);
      line-height: 1.35;
      letter-spacing: -0.015em;
      color: var(--fg);
      margin: 0;
    }
.rq-labs-cards .rq-labs-content .callout p.callout-text em{
      color: var(--accent);
      font-style: normal;
      font-weight: 500;
    }
.rq-labs-cards .rq-labs-content article ul{
      padding-left: 20px;
      margin: 0 0 22px;
      color: #252525;
    }
.rq-labs-cards .rq-labs-content article ul li{
      margin: 6px 0;
    }
.rq-labs-cards .rq-labs-content article ol.process{
      list-style: none;
      counter-reset: step;
      padding: 0;
      margin: 8px 0 22px;
    }
.rq-labs-cards .rq-labs-content article ol.process>li{
      counter-increment: step;
      position: relative;
      padding-left: 56px;
      margin-bottom: 26px;
      color: #252525;
      font-size: 16.5px;
    }
.rq-labs-cards .rq-labs-content article ol.process>li::before{
      content: counter(step, decimal-leading-zero);
      position: absolute;
      left: 0;
      top: 1px;
      font-family: var(--mono);
      font-size: 13px;
      letter-spacing: 0.1em;
      color: var(--accent);
      background: rgba(0, 0, 0, 0.08);
      padding: 4px 8px;
      border-radius: 3px;
    }
.rq-labs-cards .rq-labs-content article ol.process .step-title{
      display: block;
      font-weight: 500;
      color: var(--fg);
      letter-spacing: -0.01em;
      margin-bottom: 6px;
      font-size: 17.5px;
    }
.rq-labs-cards .rq-labs-content article ol.process ul{
      margin: 10px 0 4px;
    }
.rq-labs-cards .rq-labs-content article strong{
      color: var(--fg);
      font-weight: 500;
    }
.rq-labs-cards .rq-labs-content article em{
      color: var(--fg);
    }
.rq-labs-cards .rq-labs-content article code{
      font-family: var(--mono);
      font-size: 0.9em;
      color: var(--accent);
      background: rgba(0, 0, 0, 0.06);
      padding: 1px 6px;
      border-radius: 3px;
    }
.rq-labs-cards .rq-labs-content hr.rule{
      border: none;
      border-top: 1px solid var(--rule);
      margin: 56px 0;
    }
.rq-labs-cards .rq-labs-content .section-title{
      text-align: center;
      padding: 40px 0 24px;
    }
.rq-labs-cards .rq-labs-content .section-title .eyebrow{
      margin-bottom: 16px;
    }
.rq-labs-cards .rq-labs-content .section-title h2{
      font-family: var(--sans);
      font-weight: 500;
      font-size: clamp(28px, 4vw, 40px);
      margin: 0;
      letter-spacing: -0.025em;
      line-height: 1.15;
    }
.rq-labs-cards .rq-labs-content .section-title p{
      color: var(--fg-dim);
      font-family: var(--sans);
      font-size: 16.5px;
      margin: 14px auto 0;
      max-width: 560px;
      letter-spacing: -0.005em;
    }
.rq-labs-cards .rq-labs-content .data-block{
      max-width: 780px;
      margin: 28px auto 8px;
      padding: 0 28px;
    }
.rq-labs-cards .rq-labs-content .data-table-wrap{
      background: var(--bg-soft);
      border: 1px solid var(--rule);
      border-radius: var(--radius);
      overflow: hidden;
    }
.rq-labs-cards .rq-labs-content .data-table-wrap .table-head{
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 14px;
      border-bottom: 1px solid var(--rule);
      font-family: var(--mono);
      font-size: 11.5px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--fg-faint);
    }
.rq-labs-cards .rq-labs-content .data-table-wrap .dot{
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: #2a2a2a;
    }
.rq-labs-cards .rq-labs-content .data-table-wrap .dot.a{
      background: #222;
      opacity: 0.55;
    }
.rq-labs-cards .rq-labs-content .data-table-scroll{
      max-height: 360px;
      overflow: auto;
    }
.rq-labs-cards .rq-labs-content table.data-table{
      width: 100%;
      border-collapse: collapse;
      font-family: var(--mono);
      font-size: 13.5px;
      color: #252525;
    }
.rq-labs-cards .rq-labs-content table.data-table thead th{
      position: sticky;
      top: 0;
      background: #eeeeee;
      color: var(--accent);
      font-weight: 500;
      text-align: left;
      padding: 10px 14px;
      border-bottom: 1px solid var(--rule);
      letter-spacing: 0.04em;
      font-size: 12.5px;
      text-transform: uppercase;
    }
.rq-labs-cards .rq-labs-content table.data-table tbody td{
      padding: 7px 14px;
      border-bottom: 1px solid #eeeeee;
    }
.rq-labs-cards .rq-labs-content table.data-table tbody tr:nth-child(even) td{
      background: rgba(255, 255, 255, 0.012);
    }
.rq-labs-cards .rq-labs-content table.data-table tbody tr:hover td{
      background: rgba(0, 0, 0, 0.04);
    }
.rq-labs-cards .rq-labs-content table.data-table td.num{
      color: var(--fg-faint);
    }
.rq-labs-cards .rq-labs-content table.data-table td.word{
      color: var(--fg);
    }
.rq-labs-cards .rq-labs-content .caption-legend{
      max-width: 720px;
      margin: 14px auto 0;
      padding: 0 28px;
      text-align: center;
      color: var(--fg-faint);
      font-size: 13.5px;
      line-height: 1.55;
      letter-spacing: 0;
    }
.rq-labs-cards .rq-labs-content .terminal{
      max-width: 880px;
      margin: 28px auto 8px;
      padding: 0 28px;
    }
.rq-labs-cards .rq-labs-content .terminal-window{
      background: #f7f7f7;
      border: 1px solid var(--rule);
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
    }
.rq-labs-cards .rq-labs-content .terminal-bar{
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 10px 14px;
      background: #eeeeee;
      border-bottom: 1px solid var(--rule);
    }
.rq-labs-cards .rq-labs-content .terminal-bar .tdot{
      width: 11px;
      height: 11px;
      border-radius: 50%;
      background: #2a2a2a;
    }
.rq-labs-cards .rq-labs-content .terminal-bar .tdot.r{
      background: #4a2a28;
    }
.rq-labs-cards .rq-labs-content .terminal-bar .tdot.y{
      background: #4a432a;
    }
.rq-labs-cards .rq-labs-content .terminal-bar .tdot.g{
      background: #2a4a31;
    }
.rq-labs-cards .rq-labs-content .terminal-bar .ttitle{
      margin-left: 10px;
      font-family: var(--mono);
      font-size: 11.5px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--fg-faint);
    }
.rq-labs-cards .rq-labs-content .terminal-body{
      padding: 18px 20px;
      font-family: var(--mono);
      font-size: 13.5px;
      line-height: 1.65;
      color: #252525;
    }
.rq-labs-cards .rq-labs-content .terminal-body .prompt{
      color: var(--accent);
      user-select: none;
      margin-right: 8px;
    }
.rq-labs-cards .rq-labs-content .terminal-body .word{
      color: var(--fg);
    }
.rq-labs-cards .rq-labs-content .terminal-body .sep{
      color: var(--fg-faint);
    }
.rq-labs-cards .rq-labs-content .terminal-body .line{
      display: block;
      padding-left: 1.6em;
      text-indent: -1.6em;
      margin-bottom: 10px;
    }
.rq-labs-cards .rq-labs-content .terminal-body .line:last-child{
      margin-bottom: 0;
    }
.rq-labs-cards .rq-labs-content .io{
      max-width: 880px;
      margin: 28px auto 8px;
      padding: 0 28px;
      display: grid;
      gap: 20px;
    }
.rq-labs-cards .rq-labs-content .io .panel{
      background: var(--bg-soft);
      border: 1px solid var(--rule);
      border-radius: var(--radius);
      overflow: hidden;
    }
.rq-labs-cards .rq-labs-content .io .panel-head{
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 16px;
      border-bottom: 1px solid var(--rule);
      font-family: var(--mono);
      font-size: 11.5px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--fg-faint);
    }
.rq-labs-cards .rq-labs-content .io .panel-head .tag{
      background: rgba(0, 0, 0, 0.1);
      color: var(--accent);
      padding: 3px 8px;
      border-radius: 3px;
      letter-spacing: 0.12em;
      font-size: 10.5px;
    }
.rq-labs-cards .rq-labs-content .io .panel-body{
      padding: 18px 20px;
    }
.rq-labs-cards .rq-labs-content .io .panel-body p{
      margin: 0 0 14px;
      font-size: 15px;
      color: #252525;
      line-height: 1.6;
    }
.rq-labs-cards .rq-labs-content .io .panel-body p:last-child{
      margin-bottom: 0;
    }
.rq-labs-cards .rq-labs-content .io .panel-body .attached{
      display: flex;
      align-items: center;
      gap: 12px;
      margin-top: 14px;
      padding: 12px;
      background: rgba(0, 0, 0, 0.04);
      border: 1px dashed rgba(0, 0, 0, 0.25);
      border-radius: 3px;
    }
.rq-labs-cards .rq-labs-content .io .panel-body .attached img{
      width: 64px;
      height: 64px;
      object-fit: contain;
      background: #fff;
      border-radius: 3px;
      cursor: zoom-in;
    }
.rq-labs-cards .rq-labs-content .io .panel-body .attached .meta{
      font-family: var(--mono);
      font-size: 12px;
      color: var(--fg-faint);
      letter-spacing: 0.04em;
    }
.rq-labs-cards .rq-labs-content .io .panel-body .attached .meta strong{
      color: var(--accent);
      display: block;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      font-size: 10.5px;
      margin-bottom: 4px;
    }
.rq-labs-cards .rq-labs-content .io .output-img{
      display: flex;
      align-items: center;
      justify-content: center;
      background: #f5f5f5;
      padding: 24px;
    }
.rq-labs-cards .rq-labs-content .io .output-img img{
      max-width: 100%;
      max-height: 360px;
      height: auto;
      cursor: zoom-in;
      border-radius: var(--radius);
      transition: opacity 0.3s ease;
    }
.rq-labs-cards .rq-labs-content .io .output-img img:hover{
      opacity: 0.92;
    }
.rq-labs-cards .rq-labs-content .diagram{
      max-width: 1100px;
      margin: 48px auto;
      padding: 0 28px;
    }
.rq-labs-cards .rq-labs-content .diagram.diagram-narrow{
      max-width: 640px;
    }
.rq-labs-cards .rq-labs-content .diagram.diagram-medium{
      max-width: 770px;
    }
.rq-labs-cards .rq-labs-content .diagram.diagram-small{
      max-width: 460px;
    }
.rq-labs-cards .rq-labs-content .diagram img{
      width: 100%;
      height: auto;
      display: block;
      border-radius: var(--radius);
      cursor: zoom-in;
      transition: opacity 0.3s ease;
    }
.rq-labs-cards .rq-labs-content .diagram img:hover{
      opacity: 0.92;
    }
.rq-labs-cards .rq-labs-content .caption{
      text-align: center;
      color: var(--fg-faint);
      font-size: 13px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      margin-top: 14px;
    }
.rq-labs-cards .rq-labs-content .diagram-pair{
      max-width: 1100px;
      margin: 36px auto;
      padding: 0 28px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px;
      align-items: center;
    }
.rq-labs-cards .rq-labs-content .diagram-pair.small{
      max-width: 460px;
    }
.rq-labs-cards .rq-labs-content .example-row{
      max-width: 1100px;
      margin: 28px auto 40px;
      padding: 0 28px;
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 12px;
      align-items: stretch;
    }
.rq-labs-cards .rq-labs-content .example-row figure{
      margin: 0;
    }
.rq-labs-cards .rq-labs-content .example-row img{
      width: 100%;
      height: auto;
      display: block;
      border-radius: var(--radius);
      cursor: zoom-in;
      transition: opacity 0.3s ease;
      background: #f5f5f5;
    }
.rq-labs-cards .rq-labs-content .example-row img:hover{
      opacity: 0.92;
    }
@media (max-width: 760px){.rq-labs-cards .rq-labs-content .example-row{
        grid-template-columns: repeat(2, 1fr);
      }}
.rq-labs-cards .rq-labs-content .diagram-pair figure{
      margin: 0;
    }
.rq-labs-cards .rq-labs-content .diagram-pair img{
      width: 100%;
      height: auto;
      display: block;
      border-radius: var(--radius);
      cursor: zoom-in;
      transition: opacity 0.3s ease;
      background: #f5f5f5;
    }
.rq-labs-cards .rq-labs-content .diagram-pair img:hover{
      opacity: 0.92;
    }
.rq-labs-cards .rq-labs-content .diagram-pair figcaption{
      text-align: center;
      color: var(--fg-faint);
      font-size: 12.5px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      margin-top: 12px;
    }
@media (max-width: 760px){.rq-labs-cards .rq-labs-content .diagram-pair{
        grid-template-columns: 1fr;
        gap: 32px;
      }}
.rq-labs-cards .rq-labs-content .diagram-trio{
      max-width: 1200px;
      margin: 36px auto;
      padding: 0 28px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
      align-items: stretch;
    }
.rq-labs-cards .rq-labs-content .diagram-trio figure{
      margin: 0;
      display: flex;
      flex-direction: column;
    }
.rq-labs-cards .rq-labs-content .diagram-trio img{
      width: 100%;
      height: auto;
      display: block;
      border-radius: var(--radius);
      cursor: zoom-in;
      transition: opacity 0.3s ease;
      background: #f5f5f5;
    }
.rq-labs-cards .rq-labs-content .diagram-trio img:hover{
      opacity: 0.92;
    }
.rq-labs-cards .rq-labs-content .diagram-trio figcaption{
      text-align: center;
      color: var(--fg-faint);
      font-size: 12.5px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      margin-top: 12px;
    }
@media (max-width: 760px){.rq-labs-cards .rq-labs-content .diagram-trio{
        grid-template-columns: 1fr;
        gap: 24px;
      }}
.rq-labs-cards .rq-labs-content .competitor-grid{
      max-width: 1100px;
      margin: 36px auto;
      padding: 0 28px;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 14px;
    }
.rq-labs-cards .rq-labs-content .competitor-grid figure{
      margin: 0;
      background: #fff;
      border: 1px solid var(--rule);
      border-radius: var(--radius);
      overflow: hidden;
      aspect-ratio: 1 / 1;
      display: flex;
      align-items: center;
      justify-content: center;
    }
.rq-labs-cards .rq-labs-content .competitor-grid img{
      width: 100%;
      height: 100%;
      object-fit: cover;
      cursor: zoom-in;
      transition: opacity 0.3s ease, transform 0.4s ease;
      display: block;
    }
.rq-labs-cards .rq-labs-content .competitor-grid img:hover{
      opacity: 0.92;
    }
@media (max-width: 760px){.rq-labs-cards .rq-labs-content .competitor-grid{
        grid-template-columns: 1fr 1fr;
      }}
.rq-labs-cards .rq-labs-content footer{
      margin-top: 120px;
      padding: 48px 28px 60px;
      border-top: 1px solid var(--rule);
      text-align: center;
      color: var(--fg-faint);
      font-size: 13px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }
.rq-labs-cards .rq-labs-content footer a{
      color: var(--fg-dim);
      border-bottom: none;
    }
.rq-labs-cards .rq-labs-content footer a:hover{
      color: var(--accent);
    }
.rq-labs-cards .rq-labs-content .lightbox{
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.94);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      z-index: 1000;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 40px;
      cursor: zoom-out;
      opacity: 0;
      transition: opacity 0.25s ease;
    }
.rq-labs-cards .rq-labs-content .lightbox.open{
      display: flex;
      opacity: 1;
    }
.rq-labs-cards .rq-labs-content .lightbox img{
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
      border-radius: var(--radius);
      box-shadow: 0 20px 80px rgba(0, 0, 0, 0.8);
      transform: scale(0.96);
      transition: transform 0.3s ease;
    }
.rq-labs-cards .rq-labs-content .lightbox.open img{
      transform: scale(1);
    }
.rq-labs-cards .rq-labs-content .lightbox .close{
      position: absolute;
      top: 24px;
      right: 28px;
      background: none;
      border: none;
      color: var(--fg-dim);
      font-size: 28px;
      cursor: pointer;
      line-height: 1;
      padding: 8px 12px;
      font-family: var(--sans);
      font-weight: 300;
    }
.rq-labs-cards .rq-labs-content .lightbox .close:hover{
      color: var(--fg);
    }

/* The shared Labs chartreuse palette and local Roc Grotesk typography. */
.rq-labs { background:#e5f0a3; color:#111; }
.rq-labs #header, .rq-labs #footer-sections { background:#fff; }
.rq-labs .rq-labs-content {
  --bg:#e5f0a3; --bg-soft:#f5f5f5; --fg:#111; --fg-dim:#555;
  --fg-faint:#666; --accent:#111; --rule:#dedede; --radius:0px;
  --sans:"roc-grotesk",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-family:var(--sans); font-size:18px; line-height:1.65;
  background:var(--bg); color:var(--fg); padding-top:24px;
}
.rq-labs .rq-labs-content * { box-sizing:border-box; }
.rq-labs .rq-labs-content a:focus-visible { outline:2px solid currentColor; outline-offset:6px; }
.rq-labs .rq-labs-content .wrap { max-width:900px; }
.rq-labs .rq-labs-content article.wrap { padding:48px 28px 40px; }
.rq-labs .rq-labs-content article p,
.rq-labs .rq-labs-content article ul { font-size:18px; }
.rq-labs .rq-labs-content h1 { font-weight:500; letter-spacing:-.045em; font-size:clamp(44px,6.5vw,88px); line-height:1.05; }
.rq-labs .rq-labs-content h1 em { font-style:normal; }
.rq-labs .rq-labs-content h2 { letter-spacing:-.025em; }
.rq-labs .rq-labs-content .eyebrow { font-size:13px; letter-spacing:.12em; color:#555; }
.rq-labs .rq-labs-content .lede { max-width:710px; font-size:clamp(19px,2vw,23px); color:#333; }
.rq-labs .rq-labs-content .hero { padding:64px 0 48px; }
.rq-labs .rq-labs-breadcrumb { max-width:1100px; padding:12px 28px; margin:auto; font-size:14px; color:#555; }
.rq-labs .rq-labs-breadcrumb a { color:#111; text-decoration:underline; text-underline-offset:4px; border:0; }
.rq-labs .rq-labs-breadcrumb span { padding:0 10px; }
.rq-labs .rq-labs-content .lightbox-close { color:#fff; border-color:#888; }
.rq-labs .rq-labs-content .lightbox img { background:#fff; }
.rq-labs .rq-labs-content .update-banner { margin:24px auto 0; }
.rq-labs .rq-labs-content .terminal-window { box-shadow:none; }
.rq-labs .rq-labs-content footer { margin-top:48px; }

/* Square display crops reuse the original, full-resolution article images. */
.rq-labs-index .rq-labs-content { box-sizing:border-box; min-height:calc(100svh - var(--header-height,80px)); max-width:1600px; margin:auto; padding:72px 4vw 100px; }
.rq-labs-index .eyebrow { text-transform:uppercase; margin:0 0 24px; }
.rq-labs-index .rq-labs-content h1 { font-size:clamp(76px,12vw,168px); margin:0 0 24px; }
.rq-labs-index .tagline { max-width:620px; font-size:clamp(20px,2vw,26px); line-height:1.4; margin:0 0 64px; color:#333; }
.rq-labs-index .projects { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:calc(5vw / 3); row-gap:40px; }
.rq-labs-index .project { display:flex; flex-direction:column; align-items:flex-start; text-decoration:none; color:#111; border:0; }
.rq-labs-index .rq-labs-thumbnail { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; object-position:center; margin:0 0 24px; }
.rq-labs-index .project .title { font-size:clamp(13.8px,1.32vw,20.4px); letter-spacing:-.025em; line-height:1.15; margin-bottom:12px; }
.rq-labs-index .project .meta { font-size:14px; color:#555; }
.rq-labs-index .project .arrow { display:inline-block; transition:transform .2s; }
.rq-labs-index .project:hover .arrow { transform:translateX(6px); }
@media(max-width:760px) {
 .rq-labs .rq-labs-content { padding-top:8px; }
 .rq-labs .rq-labs-breadcrumb { padding:16px 6vw; }
 .rq-labs .rq-labs-content .hero { padding:44px 0 32px; }
 .rq-labs .rq-labs-content .wrap { padding-left:6vw; padding-right:6vw; }
 .rq-labs .rq-labs-content article.wrap { padding:40px 6vw; }
 .rq-labs-index .rq-labs-content { padding:48px 6vw 64px; }
 .rq-labs-index .tagline { margin-bottom:40px; }
 .rq-labs-index .projects { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
 .rq-labs-index .project .title { font-size:12.6px; }
 .rq-labs-index .rq-labs-thumbnail { margin-bottom:20px; }
}
@media(prefers-reduced-motion:reduce) { .rq-labs-index .project .arrow { transition:none; } }
/* The shared header is positioned above the page; reserve its measured height. */
.rq-labs .rq-labs-content { margin-top:var(--header-height, 80px); }
.rq-labs .rq-labs-content .lightbox .close { color:#fff; border-color:#888; }
.rq-labs .rq-labs-content .lightbox .close:hover { color:#fff; }
.rq-labs .rq-labs-content .lightbox .close {
 z-index:1; min-width:44px; min-height:44px; background:#111;
}
/* Let the full-screen image viewer layer above the studio header. */
.rq-labs #page { z-index:auto; }

/* A quiet flock uses the white space, leaving the project cards clickable. */
.rq-labs-index .rq-labs-content { position:relative; }
.rq-labs-intro { position:relative; }
.rq-labs-boids { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:2; }
.rq-labs-index .project .title { overflow-wrap:anywhere; }

/* Tighter vertical rhythm for the Labs articles (both pages). Gaps between sections were
   90–220px; these bring them to roughly 40–60px without changing the layout. */
body.rq-labs .rq-labs-content .hero { padding:40px 0 24px; }
body.rq-labs .rq-labs-content hr.rule { margin-top:28px; margin-bottom:28px; }
body.rq-labs .rq-labs-content article.wrap { padding-top:24px; padding-bottom:24px; }
body.rq-labs .rq-labs-content h2 { margin-top:44px; }
body.rq-labs .rq-labs-content .callout { margin-top:24px; margin-bottom:24px; }
body.rq-labs .rq-labs-content .diagram { margin-top:28px; margin-bottom:28px; }
body.rq-labs .rq-labs-content .diagram-pair,
body.rq-labs .rq-labs-content .diagram-trio,
body.rq-labs .rq-labs-content .competitor-grid { margin-top:24px; margin-bottom:24px; }
body.rq-labs .rq-labs-content footer { margin-top:28px; padding-top:28px; }
@media (max-width:767px) {
  body.rq-labs .rq-labs-content .hero { padding:28px 0 16px; }
  body.rq-labs .rq-labs-content h2 { margin-top:36px; }
}
body.rq-labs .rq-labs-content section.section-title { padding-top:16px; }
body.rq-labs .rq-labs-content hr.rule { margin-top:20px; margin-bottom:20px; }
body.rq-labs .rq-labs-content article.wrap { padding-bottom:8px; }
body.rq-labs .rq-labs-content h3 { margin-top:28px; }
