/* ===== project showcase carousel ===== */
.zx-show{padding-block:var(--space-section);background:var(--bg-page);border-bottom:1px solid var(--border-hairline)}
.zx-show__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-xl);flex-wrap:wrap;margin-bottom:var(--space-xl)}
.zx-show__eyebrow{font-size:var(--type-caption-size);letter-spacing:.14em;text-transform:uppercase;color:var(--color-brand-orange)}
.zx-show__h2{font-size:var(--type-h2-size);font-weight:var(--weight-semibold);letter-spacing:-.03em;line-height:1.12;color:var(--text-strong);margin:var(--space-sm) 0 0;max-width:22ch}
.zx-show__tags{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-bottom:var(--space-xxl)}
.zx-show__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,5vw,86px);align-items:center}

/* stacked deck */
.zx-deck{position:relative;padding-top:calc(100% / var(--ratio,1.37));perspective:1400px}
.zx-deck__card{position:absolute;inset:0;margin:0;border-radius:var(--radius-panel);overflow:hidden;background:var(--surface-card);
  border:1px solid var(--border-hairline);cursor:pointer;transform-origin:bottom center;
  transition:transform 620ms var(--ease-standard),opacity 620ms var(--ease-standard),box-shadow 420ms var(--ease-standard)}
.zx-deck__card img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.zx-deck__card[data-depth="0"]{z-index:3;transform:translateY(0) scale(1) rotate(0);box-shadow:0 40px 80px -30px rgba(217,58,18,.42)}
.zx-deck__card[data-depth="1"]{z-index:2;transform:translate(4%,3%) scale(.94) rotate(3deg);opacity:.55;filter:saturate(.7)}
.zx-deck__card[data-depth="2"]{z-index:1;transform:translate(8%,6%) scale(.88) rotate(6deg);opacity:.3;filter:saturate(.5)}
.zx-deck:hover .zx-deck__card[data-depth="0"]{transform:translateY(-10px) scale(1.01);box-shadow:0 54px 100px -30px rgba(217,58,18,.55)}
.zx-deck__open{position:absolute;left:50%;bottom:var(--space-lg);transform:translate(-50%,14px);opacity:0;
  background:rgba(10,10,10,.72);backdrop-filter:blur(8px);color:#fff;border:1px solid rgba(255,255,255,.25);
  border-radius:var(--radius-pill);padding:9px 18px;font-size:var(--type-caption-size);letter-spacing:.06em;text-transform:uppercase;
  transition:opacity 320ms var(--ease-standard),transform 320ms var(--ease-standard)}
.zx-deck:hover .zx-deck__open{opacity:1;transform:translate(-50%,0)}

/* copy panel */
.zx-show__panel{display:flex;flex-direction:column;gap:var(--space-xl)}
.zx-show__copy{animation:zx-panelin 420ms var(--ease-standard) both}
@keyframes zx-panelin{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.zx-show__name{font-size:var(--type-h3-size);font-weight:var(--weight-semibold);letter-spacing:-.025em;line-height:1.16;color:var(--text-strong);margin:0 0 var(--space-xs)}
.zx-show__ind{font-size:var(--type-subtitle-size);color:var(--color-brand-orange);margin:0 0 var(--space-lg)}
.zx-show__quote{font-size:var(--type-body-size);line-height:1.7;color:var(--text-secondary);margin:0 0 var(--space-lg)}
.zx-word{display:inline-block;animation:zx-wordin 420ms var(--ease-standard) both}
@keyframes zx-wordin{from{filter:blur(10px);opacity:0;transform:translateY(5px)}to{filter:blur(0);opacity:1;transform:none}}
.zx-show__svc{display:flex;gap:var(--space-xs);flex-wrap:wrap}

/* halo buttons */
.zx-show__nav{display:flex;gap:var(--space-sm);flex-wrap:wrap}
.zx-halo{position:relative;padding:1px;border:0;border-radius:var(--radius-pill);background:var(--brand-gradient);cursor:pointer;
  transition:transform 260ms var(--ease-standard),box-shadow 260ms var(--ease-standard);min-width:150px}
.zx-halo--fill{flex:1;min-width:200px}
.zx-halo>span{display:flex;align-items:center;justify-content:center;height:100%;padding:13px 26px;border-radius:var(--radius-pill);
  background:var(--surface-card);color:var(--text-strong);font-size:var(--type-button-size);font-weight:var(--weight-semibold);
  letter-spacing:.01em;transition:background 300ms var(--ease-standard),color 300ms var(--ease-standard)}
.zx-halo:hover{transform:translateY(-2px);box-shadow:0 14px 32px -12px rgba(217,58,18,.6)}
.zx-halo:hover>span{background:transparent;color:#fff}
.zx-halo:active{transform:translateY(0) scale(.985)}
.zx-halo:focus-visible{outline:2px solid var(--color-brand-orange);outline-offset:3px}

.zx-show__dots{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.zx-show__dot{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:var(--border-hairline-strong,var(--border-hairline));cursor:pointer;transition:var(--transition-standard)}
.zx-show__dot[data-on]{width:26px;border-radius:4px;background:var(--brand-gradient)}
.zx-show__count{margin-left:auto;font-family:var(--font-mono);font-size:var(--type-caption-size);color:var(--text-muted)}

@media (max-width:1023px){
  .zx-show__grid{grid-template-columns:1fr;gap:var(--space-xxl)}
  .zx-show__h2{max-width:none}
  .zx-halo,.zx-halo--fill{flex:1 1 100%;min-width:0}
}
@media (prefers-reduced-motion:reduce){
  .zx-deck__card,.zx-halo,.zx-deck__open{transition:none}
  .zx-word,.zx-show__copy{animation:none;filter:none;opacity:1;transform:none}
}

/* autoplay progress + card cross-slide */
.zx-show__bar{position:relative;height:2px;border-radius:2px;background:rgba(255,255,255,.12);overflow:hidden;margin-top:var(--space-lg)}
.zx-show__bar i{position:absolute;inset:0;transform-origin:left;background:var(--brand-gradient);animation:zx-showbar 5.2s linear forwards}
.zx-show__bar i[data-paused]{animation-play-state:paused}
@keyframes zx-showbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.zx-deck__card{animation:zx-deckin 620ms var(--ease-standard) both}
@keyframes zx-deckin{from{opacity:0;transform:translate3d(6%,0,0) scale(.97)}to{opacity:1}}
.zx-show__copy{animation:zx-copyin 520ms var(--ease-standard) both}
@keyframes zx-copyin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.zx-show__bar i,.zx-deck__card,.zx-show__copy{animation:none}}

.zx-show{overflow:hidden}
@media (max-width:1279px){.zx-deck{padding-right:76px}}
