/* Supporting section background for the showcase */
.section-alt{ background: var(--luage-bg); }

/* Luage — homepage showcase (animated demo)
   Purpose: an elegant, enterprise-friendly motion element showing how Luage działa w praktyce.
*/

.luage-showcase{
  position: relative;
  overflow: hidden;
}

.luage-showcase::before{
  content: "";
  position: absolute;
  inset: -22%;
  background:
    radial-gradient( circle at 18% 18%, rgba(70,220,212,.18), transparent 55%),
    radial-gradient( circle at 82% 28%, rgba(153,94,255,.16), transparent 52%),
    radial-gradient( circle at 55% 90%, rgba(70,220,212,.10), transparent 58%);
  filter: blur(14px);
  opacity: .55;
  pointer-events: none;
  animation: luageGlow 14s ease-in-out infinite;
}

.luage-showcase > *{
  position: relative;
  z-index: 1;
}

@keyframes luageGlow{
  0%{ transform: translate3d(0,0,0) scale(1); }
  50%{ transform: translate3d(3.5%, -2.8%, 0) scale(1.02); }
  100%{ transform: translate3d(0,0,0) scale(1); }
}

.showcase-rail{
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .6rem;
  padding: .35rem .2rem 1.05rem;
  margin-bottom: 1rem;
}

.showcase-rail::before{
  content: "";
  position: absolute;
  left: .7rem;
  right: .7rem;
  top: 1.05rem;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, rgba(70,220,212,.26), rgba(153,94,255,.24));
}

.showcase-pulse{
  position: absolute;
  top: .75rem;
  left: calc(.7rem + (100% - 1.4rem) * var(--pulse-pos, 0));
  transform: translateX(-50%);
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--luage-grad);
  box-shadow: 0 0 0 8px rgba(70,220,212,.10);
  transition: left .75s cubic-bezier(.2,.8,.2,1), box-shadow .75s cubic-bezier(.2,.8,.2,1);
  z-index: 2;
}

.showcase-node{
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .32rem .65rem;
  border-radius: 999px;
  border: 1px solid var(--luage-border);
  background: rgba(255,255,255,.90);
  color: rgba(27,36,51,.96);
  font-weight: 700;
  font-size: .9rem;
  box-shadow: 0 .45rem 1.2rem rgba(15,23,42,.05);
  white-space: nowrap;
}

.showcase-node .node-dot{
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(91,100,117,.35);
}

.showcase-node.active{
  border-color: rgba(153,94,255,.28);
}

.showcase-node.active .node-dot{
  background: var(--luage-a1);
  box-shadow: 0 0 0 6px rgba(70,220,212,.10);
}

.showcase-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 992px){
  .showcase-grid{
    grid-template-columns: 1fr 1fr 1fr;
  }
}

.showcase-pane{
  border: 1px solid var(--luage-border);
  border-radius: 1rem;
  background: rgba(255,255,255,.92);
  padding: 1rem 1rem;
  min-height: 290px;
}

.showcase-pane .mini-label{
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .72rem;
  color: rgba(91,100,117,.92);
}

.showcase-doc{
  white-space: pre-wrap;
  line-height: 1.55;
  color: rgba(11,18,32,.92);
  font-size: .95rem;
}

.showcase-doc.is-typing::after{
  content: "";
  display: inline-block;
  width: .65ch;
  border-right: 2px solid rgba(11,18,32,.55);
  margin-left: 2px;
  animation: luageCaretBlink 1s step-end infinite;
}

@keyframes luageCaretBlink{
  50%{ opacity: 0; }
}

.mark-bad{
  background: rgba(244,63,94,.13);
  border: 1px solid rgba(244,63,94,.25);
  border-radius: .35rem;
  padding: 0 .2rem;
}

.mark-good{
  background: rgba(34,197,94,.14);
  border: 1px solid rgba(34,197,94,.25);
  border-radius: .35rem;
  padding: 0 .2rem;
}

.mark-info{
  background: linear-gradient(90deg, rgba(70,220,212,.18), rgba(153,94,255,.14));
  border: 1px solid rgba(153,94,255,.18);
  border-radius: .35rem;
  padding: 0 .2rem;
}

.showcase-steps .step{
  border: 1px solid rgba(15,23,42,.10);
  border-radius: .9rem;
  padding: .75rem .8rem;
  background: rgba(248,250,252,.85);
  margin-bottom: .55rem;
  opacity: .55;
  transform: translateY(2px);
  transition: opacity .35s ease, transform .35s ease, border-color .35s ease, background .35s ease;
}

.showcase-steps .step .step-top{
  display: flex;
  align-items: center;
  font-weight: 800;
  color: rgba(27,36,51,.95);
}

.showcase-steps .step .step-note{
  margin-left: 1.65rem;
  margin-top: .15rem;
  color: rgba(91,100,117,.95);
  font-size: .9rem;
  line-height: 1.35;
}

.showcase-steps .step.active{
  opacity: 1;
  transform: translateY(0);
  border-color: rgba(153,94,255,.22);
  background: rgba(255,255,255,.92);
}

.showcase-steps .step.done{
  opacity: .85;
}

.showcase-audit{
  border-top: 1px dashed rgba(15,23,42,.14);
  padding-top: .9rem;
}

.audit-chip{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .28rem .55rem;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.88);
  color: rgba(27,36,51,.90);
  font-size: .82rem;
}

@media (prefers-reduced-motion: reduce){
  .luage-showcase::before{
    animation: none !important;
  }
  .showcase-pulse,
  .showcase-node,
  .showcase-steps .step{
    transition: none !important;
  }
  .showcase-doc.is-typing::after{
    animation: none !important;
  }
}
