/* Luage — homepage: Prompt ↔ Context engineering visualization (premium console card)
   Designed to sit directly after the Compendium section.
*/
/* Prompt/Context section — compact premium CTAs */
.pcviz-ctaRow{
  display:flex;
  gap: 10px;
  justify-content:flex-end;
  flex-wrap:wrap;
}

.pcviz-cta{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(12,18,30,0.35);
  color: rgba(255,255,255,0.92);
  text-decoration:none;
  box-shadow: 0 12px 34px rgba(0,0,0,0.22);
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.pcviz-cta:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,0.20);
  background: rgba(12,18,30,0.55);
  box-shadow: 0 18px 44px rgba(0,0,0,0.24);
  color: rgba(255,255,255,0.95);
}

.pcviz-cta:active{
  transform: translateY(0px);
}

.pcviz-cta--mode{
  cursor: pointer;
}

.pcviz-cta--mode:focus-visible{
  outline: 2px solid rgba(255,255,255,0.26);
  outline-offset: 3px;
}

.pcviz-cta--mode.is-selected{
  border-color: rgba(70,220,212,0.28);
  background: rgba(12,18,30,0.62);
  box-shadow: 0 18px 46px rgba(0,0,0,0.26);
}

.pcviz-ctaLink{
  margin-left: auto;
  padding-left: 14px;
  border-left: 1px solid rgba(255,255,255,0.10);
  font-size: 12px;
  letter-spacing: 0.02em;
  color: rgba(255,255,255,0.72);
  text-decoration: none;
  white-space: nowrap;
}

.pcviz-ctaLink:hover{
  color: rgba(255,255,255,0.92);
  text-decoration: none;
}

.pcviz-ctaLink:focus-visible{
  outline: 2px solid rgba(255,255,255,0.22);
  outline-offset: 3px;
  border-radius: 10px;
}


.pcviz-cta:focus-visible{
  outline: none;
  box-shadow: 0 0 0 3px rgba(70,220,212,0.18), 0 18px 44px rgba(0,0,0,0.24);
}

.pcviz-ctaIcon{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.10);
  background:
    radial-gradient(18px 18px at 35% 35%, rgba(70,220,212,0.34), rgba(0,0,0,0)),
    radial-gradient(18px 18px at 75% 70%, rgba(153,94,255,0.26), rgba(0,0,0,0)),
    rgba(255,255,255,0.04);
  display:grid;
  place-items:center;
  flex: 0 0 auto;
}

.pcviz-ctaIcon svg{
  width: 16px;
  height: 16px;
  fill: rgba(255,255,255,0.88);
}

.pcviz-ctaCol{
  display:flex;
  flex-direction:column;
  line-height: 1.05;
  min-width: 0;
}

.pcviz-ctaKicker{
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.62);
  white-space: nowrap;
}

.pcviz-ctaTitle{
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow:hidden;
  text-overflow: ellipsis;
}

.pcviz-ctaMeta{
  font-size: 12px;
  color: rgba(255,255,255,0.62);
  white-space: nowrap;
  overflow:hidden;
  text-overflow: ellipsis;
}

.pcviz-ctaArrow{
  margin-left: 6px;
  color: rgba(255,255,255,0.62);
}

.pcviz-cta--primary{
  border-color: rgba(70,220,212,0.26);
  background:
    linear-gradient(180deg, rgba(70,220,212,0.10), rgba(153,94,255,0.06)),
    rgba(12,18,30,0.35);
}

.pcviz-cta--primary:hover{
  border-color: rgba(70,220,212,0.38);
  background:
    linear-gradient(180deg, rgba(70,220,212,0.14), rgba(153,94,255,0.08)),
    rgba(12,18,30,0.55);
}

@media (max-width: 575px){
  .pcviz-ctaRow{ justify-content: flex-start; }
  .pcviz-cta{ width: 100%; justify-content: space-between; }
  .pcviz-ctaTitle, .pcviz-ctaMeta{ white-space: normal; }
}



.pcviz-shell{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(11,18,32,0.10);
  box-shadow: 0 22px 70px rgba(11,18,32,0.18);
  background:
    radial-gradient(1200px 520px at 18% 30%, rgba(70,220,212,0.18), rgba(0,0,0,0) 58%),
    radial-gradient(900px 540px at 78% 38%, rgba(153,94,255,0.16), rgba(0,0,0,0) 58%),
    linear-gradient(180deg, #0b1220, #0a0f1a 75%, #080c14);
  color: rgba(255,255,255,0.92);
}

.pcviz-shell::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px) 0 0/36px 36px,
    linear-gradient(0deg, rgba(255,255,255,0.03) 1px, transparent 1px) 0 0/36px 36px;
  opacity: .35;
  pointer-events:none;
}

.pcviz-grid{
  position:relative;
  display:grid;
  grid-template-columns: 1.2fr 0.8fr;
  min-height: 560px;
}

.pcviz-stage{
  position:relative;
  padding: 18px;
}

.pcviz-canvasWrap{
  position:relative;
  height: 100%;
  min-height: 520px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(5,8,14,0.55);
  backdrop-filter: blur(6px);
}

#pcvizCanvas{
  width: 100%;
  height: 100%;
  display: block;
  touch-action: none;
  user-select: none;
  cursor: grab;
}

#pcvizCanvas.is-dragging{
  cursor: grabbing;
}

.pcviz-hint{
  position:absolute;
  left: 14px;
  right: 14px;
  bottom: 12px;
  font-size: 12px;
  color: rgba(255,255,255,0.62);
  letter-spacing: 0.01em;
  text-shadow: 0 1px 0 rgba(0,0,0,0.35);
  pointer-events:none;
}

.pcviz-panel{
  position:relative;
  padding: 18px 18px 16px 18px;
  border-left: 1px solid rgba(255,255,255,0.08);
  background: rgba(8,12,20,0.35);
  backdrop-filter: blur(6px);
}

.pcviz-panelTop{
  display:flex;
  flex-direction:column;
  gap: 10px;
  margin-bottom: 12px;
}

.pcviz-seg{
  display:inline-flex;
  align-self:flex-start;
  padding: 4px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.05);
}

.pcviz-segBtn{
  appearance:none;
  border:0;
  padding: 8px 12px;
  border-radius: 999px;
  background: transparent;
  color: rgba(255,255,255,0.76);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.01em;
  transition: background .18s ease, color .18s ease;
}

.pcviz-segBtn.is-active{
  background: linear-gradient(135deg, rgba(70,220,212,0.25), rgba(153,94,255,0.22));
  color: rgba(255,255,255,0.94);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.10);
}

.pcviz-segBtn:focus-visible{
  outline: 2px solid rgba(70,220,212,0.55);
  outline-offset: 2px;
}

.pcviz-meta{
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
}

.pcviz-chip{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.04);
  font-size: 12px;
  color: rgba(255,255,255,0.72);
}

.pcviz-card{
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.04);
  padding: 14px 14px 12px 14px;
}

.pcviz-cardTitle{
  font-weight: 700;
  letter-spacing: 0.01em;
  margin-bottom: 6px;
}

.pcviz-cardDesc{
  font-size: 13px;
  color: rgba(255,255,255,0.70);
  line-height: 1.45;
}

.pcviz-replay{
  margin-top: 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.03);
  padding: 12px 12px 10px 12px;
}

.pcviz-replayHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom: 8px;
}

.pcviz-replayFoot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  margin-top: 8px;
}

.pcviz-stepLabel{
  font-size: 12px;
  color: rgba(255,255,255,0.72);
}

.pcviz-dots{
  position: relative;
  height: 10px;
  margin-top: -6px;
}

.pcviz-dot{
  position:absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 8px;
  height: 8px;
  border-radius: 99px;
  background: rgba(255,255,255,0.22);
  border: 1px solid rgba(255,255,255,0.14);
  padding:0;
  cursor:pointer;
}

.pcviz-dot:hover{
  background: rgba(255,255,255,0.36);
}

.pcviz-dot.is-active{
  background: rgba(70,220,212,0.95);
  border-color: rgba(70,220,212,0.45);
  box-shadow: 0 0 0 3px rgba(70,220,212,0.16);
}

.pcviz-mini{
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.03);
  padding: 12px 12px 10px 12px;
  height: 100%;
}

.pcviz-list{
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.pcviz-list li{
  margin-bottom: 8px;
  font-size: 13px;
  color: rgba(255,255,255,0.76);
}

.pcviz-list li:last-child{
  margin-bottom: 0;
}

.pcviz-list a{
  color: rgba(255,255,255,0.92);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.16);
}

.pcviz-list a:hover{
  border-bottom-color: rgba(70,220,212,0.55);
}

.pcviz-pill{
  display:inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  color: rgba(255,255,255,0.72);
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.04);
}

.pcviz-note{
  display:block;
  margin-top: 2px;
  font-size: 12px;
  color: rgba(255,255,255,0.58);
}

.pcviz-code{
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(6,10,16,0.55);
  padding: 12px;
}

.pcviz-pre{
  margin: 0;
  max-height: 180px;
  overflow: auto;
  padding: 10px 10px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(0,0,0,0.22);
  color: rgba(255,255,255,0.86);
  font-size: 12px;
  line-height: 1.45;
  white-space: pre;
}

.pcviz-footer{
  margin-top: 10px;
  font-size: 12px;
  color: rgba(255,255,255,0.58);
}

.pcviz-footerLink{
  color: rgba(255,255,255,0.78);
  border-bottom: 1px solid rgba(255,255,255,0.14);
}

.pcviz-footerLink:hover{
  border-bottom-color: rgba(153,94,255,0.55);
}

.pcviz-footerSep{
  margin: 0 8px;
  opacity: .55;
}

.mono{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

/* Responsive */
@media (max-width: 991px){
  .pcviz-grid{ grid-template-columns: 1fr; }
  .pcviz-panel{ border-left: 0; border-top: 1px solid rgba(255,255,255,0.08); }
  .pcviz-canvasWrap{ min-height: 420px; }
}
