:root{
  --showcase-css-loaded:1;
}

/* ============================================================
   v3.2 — component specimens
   Real usage previews. They mirror the single main fire render,
   so adding cards does not create extra fire simulations.
============================================================ */
.showcase{
  margin-top:42px;
  padding:2px 0 34px;
  min-width:0
}
.showcase-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:28px;
  padding:0 2px
}
.showcase-head>div{
  max-width:720px
}
.showcase-kicker{
  display:block;
  margin-bottom:8px;
  font:9px var(--mono);
  letter-spacing:.16em;
  color:var(--accent-text-strong)
}
.showcase-head h2{
  margin:0;
  font-size:clamp(22px,3vw,34px);
  letter-spacing:-.045em;
  line-height:1.04
}
.showcase-head p{
  margin:10px 0 0;
  max-width:680px;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.65
}
.showcase-performance{
  flex:none;
  display:inline-flex;
  align-items:center;
  gap:7px;
  height:30px;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#0b0b0e;
  color:var(--dim);
  font:8.5px var(--mono);
  text-transform:uppercase;
  letter-spacing:.08em
}
.showcase-performance i{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#63d890;
  box-shadow:0 0 12px rgba(99,216,144,.5)
}
.specimen-section{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:28px
}
.specimen-head{
  display:flex;
  align-items:end;
  gap:13px;
  min-width:0
}
.specimen-head>div{
  display:flex;
  align-items:baseline;
  gap:11px;
  min-width:0;
  flex:1;
  flex-wrap:wrap
}
.specimen-head h3{
  margin:0;
  font:700 12px var(--mono);
  letter-spacing:.01em
}
.specimen-head p{
  margin:0;
  color:var(--muted);
  font-size:11px
}
.spec-copy{
  flex:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  height:30px;
  padding:0 11px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel2);
  color:var(--muted);
  font:8.5px var(--mono);
  text-transform:uppercase;
  letter-spacing:.09em;
  cursor:pointer;
  transition:border-color .15s ease,color .15s ease,background .15s ease,transform .15s ease
}
.spec-copy:hover{
  color:var(--text);
  border-color:var(--accent-border);
  background:var(--panel2);
  transform:translateY(-1px)
}
.specimen-rule{
  height:2px;
  width:100%;
  background:repeating-linear-gradient(90deg,var(--accent) 0 3px,transparent 3px 5px);
  opacity:.72;
  mask-image:linear-gradient(90deg,#000 0,#000 83%,transparent 100%)
}
.specimen-stage{
  position:relative;
  min-width:0;
  padding:26px 24px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#0d0d10;
  overflow:hidden
}
.specimen-stage:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 18% 115%,var(--accent-glow-faint),transparent 38%),linear-gradient(180deg,rgba(255,255,255,.01),transparent 44%)
}
.dither-surface{
  position:relative;
  isolation:isolate;
  overflow:hidden
}
.dither-surface>[data-fire-preview]{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:-1;
  pointer-events:none;
  image-rendering:pixelated;
  opacity:1;
  mask-image:linear-gradient(to bottom,transparent 2%,rgba(0,0,0,.18) 34%,#000 74%)
}
.dither-surface:after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025)
}
/* Toolbar + CTA */
.toolbar-stage{
  padding:28px 24px
}
.demo-toolbar{
  position:relative;
  z-index:1;
  width:100%;
  min-height:62px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px 13px 10px 16px;
  border:1px solid var(--line);
  border-radius:17px;
  background:linear-gradient(180deg,#141417,#0f0f12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 18px 40px rgba(0,0,0,.18)
}
.toolbar-left{
  display:flex;
  align-items:center;
  gap:8px;
  color:#6e6b75;
  font:9px var(--mono);
  text-transform:uppercase;
  letter-spacing:.1em
}
.tiny-dot{
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 9px var(--accent-glow-strong)
}
.toolbar-actions{
  display:flex;
  align-items:center;
  gap:8px
}
.demo-fire-button{
  height:36px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid var(--accent-border-soft);
  border-radius:9px;
  background:#141116;
  color:white;
  font-size:11px;
  font-weight:650;
  cursor:pointer;
  transition:transform .16s cubic-bezier(.2,.8,.2,1),border-color .16s ease,box-shadow .16s ease
}
.demo-fire-button>[data-fire-preview]{
  mask-image:linear-gradient(to top,#000 0,#000 52%,rgba(0,0,0,.7) 82%,transparent 100%)
}
.demo-fire-button:hover{
  transform:translateY(-1px);
  border-color:var(--accent-border);
  box-shadow:0 8px 24px var(--accent-surface-mid)
}
.demo-fire-button:active{
  transform:scale(.98)
}
.demo-fire-button svg{
  width:13px;
  height:13px
}
.demo-icon-button{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:10px;
  background:#17171b;
  color:#77737f
}
.demo-icon-button svg{
  width:14px;
  height:14px
}
/* Stat cards */
.stat-stage{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px
}
.demo-stat-card{
  position:relative;
  z-index:1;
  min-height:148px;
  padding:17px 17px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:linear-gradient(155deg,rgba(255,255,255,.026),rgba(255,255,255,.006)),#101014;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04)
}
.demo-stat-card>[data-fire-preview]{
  mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.12) 35%,#000 72%)
}
.stat-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color:#918d99;
  font-size:10px
}
.stat-card-top b{
  font:10px var(--mono);
  color:var(--accent-text-strong)
}
.stat-card-value{
  margin-top:18px;
  font-size:31px;
  letter-spacing:-.06em;
  line-height:1
}
.stat-card-value span{
  margin-left:5px;
  color:#76727e;
  font-size:10px;
  letter-spacing:0
}
.stat-card-meta{
  position:absolute;
  left:17px;
  right:17px;
  bottom:13px;
  display:flex;
  align-items:center;
  gap:6px;
  color:#625f69;
  font:8px var(--mono);
  text-transform:uppercase;
  letter-spacing:.08em
}
.status-dot{
  display:inline-block;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#61d589;
  box-shadow:0 0 8px rgba(97,213,137,.45)
}
/* Nav + progress */
.nav-stage{
  display:grid;
  grid-template-columns:minmax(210px,.7fr) minmax(300px,1.3fr);
  gap:34px;
  align-items:center
}
.nav-demo-stack{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:7px
}
.demo-nav-item{
  position:relative;
  min-height:42px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 11px;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:#b6b2bc;
  text-align:left;
  font-size:11px
}
.demo-nav-item>.nav-item-label{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.demo-nav-item>.la-icon{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.045);
  border-radius:7px;
  background:rgba(255,255,255,.022);
  color:#8b8792
}
.demo-nav-item>.la-icon svg{
  width:15px;
  height:15px;
  max-width:15px;
  max-height:15px;
  flex:none
}
.demo-nav-item.active>.la-icon{
  color:var(--accent-text-strong);
  border-color:var(--accent-border-soft);
  background:var(--accent-surface-mid);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 0 18px var(--accent-glow-faint)
}
.demo-nav-item:hover>.la-icon{
  color:var(--accent-text-strong);
  border-color:var(--accent-border-soft)
}
.demo-nav-item small{
  font:7px var(--mono);
  letter-spacing:.1em;
  color:var(--accent-text-strong)
}
.demo-nav-item.active{
  border-color:var(--line);
  background:rgba(255,255,255,.018);
  color:#f1eff4
}
.demo-nav-item>[data-fire-preview]{
  mask-image:linear-gradient(to bottom,transparent 5%,rgba(0,0,0,.22) 52%,#000 100%)
}
.progress-demo{
  position:relative;
  z-index:1
}
.progress-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
  color:#98949e;
  font-size:10px
}
.progress-head b{
  font:10px var(--mono);
  color:var(--accent-text-strong)
}
.demo-progress-track{
  height:12px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.035);
  border-radius:999px;
  background:#17171c
}
.demo-progress-fill{
  height:100%;
  border-radius:inherit;
  background:var(--accent-surface);
  box-shadow:0 0 20px var(--accent-surface-mid)
}
.demo-progress-fill>[data-fire-preview]{
  mask-image:none
}
.progress-steps{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-top:10px;
  color:#4f4d55;
  font:7.5px var(--mono);
  text-transform:uppercase;
  letter-spacing:.07em
}
.progress-steps .done{
  color:#77737e
}
.progress-steps .current{
  color:var(--accent-text-strong)
}

/* ============================================================
   v3.5 — high fidelity specimen mirrors
   Preserve the hero render's proportions instead of stretching it.
============================================================ */
.dither-surface>[data-fire-preview]{
  image-rendering:pixelated;
  image-rendering:crisp-edges;
  transform:translateZ(0);
  will-change:contents;
  filter:drop-shadow(0 8px 14px var(--accent-glow));
}
.demo-stat-card,
.demo-action-card,
.demo-toast,
.demo-alert-card,
.demo-toolbar,
.demo-nav-item,
.demo-badge,
.demo-chip{
  transition:border-color .16s ease,background .16s ease,transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s ease;
}
.demo-stat-card:hover,
.demo-action-card:hover{
  border-color:var(--accent-border-soft);
  transform:translateY(-1px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 14px 34px rgba(0,0,0,.18),0 0 0 1px var(--accent-glow-faint);
}
.demo-stat-card:before,
.demo-action-card:before{
  content:"";
  position:absolute;
  z-index:-1;
  left:7%;
  right:7%;
  bottom:-14px;
  height:62%;
  border-radius:50%;
  background:radial-gradient(ellipse at center,var(--accent-glow) 0,var(--accent-glow-faint) 38%,transparent 72%);
  filter:blur(14px);
  opacity:.48;
  pointer-events:none;
}
.demo-stat-card>[data-fire-preview]{
  mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.08) 26%,rgba(0,0,0,.68) 58%,#000 82%);
}
.demo-action-card>[data-fire-preview]{
  mask-image:linear-gradient(105deg,#000 0,rgba(0,0,0,.82) 48%,rgba(0,0,0,.26) 76%,transparent 96%);
}
.stat-card-top{
  position:relative;
  z-index:2;
}
.stat-card-value,
.stat-card-meta{
  z-index:2;
}
.stat-label-with-icon{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:18px;
}
.stat-label-with-icon .la-icon{
  width:15px;
  height:15px;
  color:#9a96a1;
  opacity:.92;
}
.demo-stat-card:hover .stat-label-with-icon .la-icon{
  color:var(--accent-text-strong);
}
.action-card-icon{
  position:relative;
  overflow:hidden;
  color:var(--accent-text-strong);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 8px 22px var(--accent-glow-faint);
}
.action-card-icon:after{
  content:"";
  position:absolute;
  inset:auto 3px -9px;
  height:17px;
  border-radius:50%;
  background:var(--accent);
  opacity:.16;
  filter:blur(7px);
}
.demo-action-card:hover .action-card-icon{
  border-color:var(--accent-border);
  background:#1a1323;
}
.demo-toolbar .la-icon,
.spec-copy .la-icon,
.alert-actions .la-icon,
.demo-action-card>button .la-icon{
  transform:translateY(.2px);
}
