/* RuGo v078 — LAB SPACE Orthogonal Masonry Field
   Approved direction:
   - exact mirror logic of the SERVICES overview;
   - diagram occupies the full-height proportional band on the LEFT;
   - editorial content occupies the RIGHT;
   - six orthogonal block sizes;
   - minimum visible "mortar" gap;
   - falling blocks build a masonry wall from bottom to top;
   - cursor becomes a RuGo block inside the field;
   - settled masonry is immutable;
   - shared PROJECTS branches remain untouched. */

.core-panel--lab{
  --lab-red:var(--launch-accent,#e1261c);
  --lab-ink:var(--launch-ink,#11110f);
  --lab-paper:var(--launch-paper,#f4f1ea);
  --lab-muted:rgba(17,17,15,.64);
  --lab-soft:rgba(17,17,15,.45);
  --lab-line:rgba(17,17,15,.13);
  --lab-line-soft:rgba(17,17,15,.07);
  --lab-title-measure:clamp(360px,33.5vw,560px);
  --lab-title-scale:clamp(38px,calc((100cqh / 8) * .583),74px);
  --lab-title-leading:.90;
  --lab-statement-scale:clamp(13px,calc((100cqh / 8) * .175),18px);
  --lab-axis:calc((100cqh / 8) * .30);
  --lab-item-gap:calc((100cqh / 8) * .29);
}

.lab-space-v078{
  position:absolute;
  z-index:18;
  inset:8.6vh 9.6vw 8.8vh 9.6vw;
  color:var(--lab-ink);
  font-family:var(--launch-font);
  overflow:visible;
  container-type:size;
}

.lab-space-v078__frame{
  position:absolute;
  left:50%;
  top:50%;
  width:min(100cqw,calc(100cqh * 13 / 8));
  height:min(100cqh,calc(100cqw * 8 / 13));
  transform:translate(-50%,-50%);
  box-sizing:border-box;
}

/* MIRROR OF SERVICES:
   Services overview uses:
   padding-left: axis
   padding-right: 30% + diagram offset.
   LAB mirrors those values. */
.lab-space-v078__content{
  position:absolute;
  inset:0;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-end;
  gap:0;
  padding-left:calc(30% + (100cqh / 8) * .52);
  padding-right:var(--lab-axis);
  z-index:3;
}

.lab-space-v078__content-inner{
  width:min(100%,var(--lab-title-measure));
  max-width:var(--lab-title-measure);
  min-width:0;
}

.lab-space-v078__intro{
  width:100%;
  margin:0 0 calc((100cqh / 8) * .22);
  text-align:left;
}

.lab-space-v078__kicker{
  display:block;
  margin:0 0 clamp(7px,.7vh,11px);
  font-size:clamp(10px,.72vw,12px);
  line-height:1;
  font-weight:650;
  letter-spacing:.12em;
  color:var(--lab-red);
  text-align:left;
}

.lab-space-v078__lead{
  margin:0;
  width:100%;
  max-width:48ch;
  font-size:clamp(13px,1.02vw,17px);
  line-height:1.42;
  letter-spacing:-.012em;
  color:var(--lab-muted);
  text-align:left;
}

.lab-space-v078__lead strong{
  color:var(--lab-ink);
  font-weight:650;
}

.lab-space-v078__territories{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:var(--lab-item-gap);
}

.lab-space-v078__territory{
  width:100%;
  min-width:0;
  margin:0;
  padding:0;
  cursor:default;
  text-align:left;
}

.lab-space-v078__territory-title{
  display:block;
  width:100%;
  max-width:var(--lab-title-measure);
  margin:0;
  padding:0;
  font-size:var(--lab-title-scale)!important;
  font-weight:650;
  line-height:var(--lab-title-leading);
  letter-spacing:-.055em;
  color:var(--lab-ink);
  text-align:left;
  overflow:visible;
  transition:color 180ms ease;
}

.lab-space-v078__territory:hover .lab-space-v078__territory-title{
  color:var(--lab-red);
}

.lab-space-v078__territory-copy{
  display:block;
  width:100%;
  max-width:var(--lab-title-measure);
  margin:calc((100cqh / 8) * .08) 0 0 .08em;
  font-size:var(--lab-statement-scale);
  line-height:1.42;
  letter-spacing:-.012em;
  color:var(--lab-muted);
  font-weight:400;
  text-align:left;
}

.lab-space-v078__territory-copy strong{
  color:var(--lab-red);
  font-weight:650;
}

.lab-space-v078__note{
  width:100%;
  max-width:var(--lab-title-measure);
  margin:calc((100cqh / 8) * .20) 0 0;
  font-size:clamp(10.5px,.78vw,13px);
  line-height:1.42;
  letter-spacing:-.006em;
  color:rgba(17,17,15,.50);
  text-align:left;
}

/* Full-height LEFT field:
   direct mirror of SERVICES v045:
   top:-6.8vh; bottom:-7vh; width:26vw.
   Only side changes from right to left. */
.lab-space-v078__visual{
  position:absolute;
  z-index:1;
  top:-6.8vh;
  bottom:-7.0vh;
  left:-3.3vw;
  width:26vw;
  margin:0;
  padding:0;
  display:flex;
  align-items:stretch;
  justify-content:center;
  overflow:visible;
}

.lab-masonry-v078{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  background:rgba(255,255,255,.08);
  border-left:1px solid var(--lab-line-soft);
  border-right:1px solid var(--lab-line-soft);
  isolation:isolate;
}

.lab-masonry-v078__canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  cursor:none;
  touch-action:none;
}

.lab-masonry-v078__legend{
  position:absolute;
  z-index:3;
  top:calc(6.8vh + 8px);
  left:12px;
  right:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  pointer-events:none;
  font-size:clamp(7px,.50vw,9px);
  line-height:1;
  letter-spacing:.12em;
  color:rgba(17,17,15,.33);
}

.lab-masonry-v078__legend strong{
  color:var(--lab-red);
  font-weight:650;
}

.lab-masonry-v078__legend span:last-child{
  text-align:right;
}

/* The actual native pointer disappears only inside the masonry field.
   The JS-drawn RuGo block becomes the cursor / permanent field object. */
.lab-masonry-v078:hover,
.lab-masonry-v078 *{
  cursor:none!important;
}

@media (max-width:1180px){
  .lab-space-v078{
    inset:9vh 8vw 9.5vh;
  }

  .core-panel--lab{
    --lab-item-gap:calc((100cqh / 8) * .27);
  }

  .lab-space-v078__visual{
    left:-2.8vw;
    width:25.6vw;
  }

  .lab-space-v078__lead,
  .lab-space-v078__territory-copy{
    font-size:13px;
  }

  .lab-space-v078__note{
    font-size:10.5px;
  }
}

@media (prefers-reduced-motion:reduce){
  .lab-masonry-v078__canvas{
    cursor:none;
  }
}