.services{
  position:relative;
  max-width:1240px;margin:0 auto;
  padding:40px 40px 170px;
}

.services__head{margin-bottom:64px}
.services__eyebrow{
  display:flex;align-items:baseline;gap:14px;margin-bottom:22px;
  font-family:var(--font-mono);
}
.services__eyebrow .num{color:var(--gold);font-size:20px;font-weight:700}
.services__eyebrow .lbl{font-size:11px;letter-spacing:.3em;color:var(--muted);text-transform:uppercase}
.services__title{
  font-weight:800;font-size:clamp(34px,4.4vw,58px);
  line-height:1.05;letter-spacing:-.025em;max-width:720px;
}
.services__title em{
  font-style:italic;color:var(--gold);
}

.services__head{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.65,.2,1)}
.services.in .services__head{opacity:1;transform:none}

.services__grid{
  display:grid;grid-template-columns:1fr 1.15fr;gap:56px;
  align-items:stretch;
}

.services__viz{
  position:sticky;top:96px;align-self:start;
  aspect-ratio:1/1.04;
  border:1px solid var(--line);border-radius:24px;
  background:
    radial-gradient(ellipse 90% 70% at 50% 20%, rgba(76,141,255,.06), transparent 60%),
    linear-gradient(160deg,var(--panel) 0%,#080D1B 100%);
  overflow:hidden;
  opacity:0;transform:translateY(26px);
  transition:opacity .8s ease .1s,transform .8s cubic-bezier(.2,.65,.2,1) .1s;
}
.services.in .services__viz{opacity:1;transform:none}
.services__viz canvas{position:absolute;inset:0;width:100%;height:100%;display:block}

.services__viz::before,.services__viz::after{
  content:"";position:absolute;width:18px;height:18px;z-index:2;
  border:1px solid rgba(232,179,75,.5);
}
.services__viz::before{top:16px;left:16px;border-right:0;border-bottom:0}
.services__viz::after{bottom:16px;right:16px;border-left:0;border-top:0}

.services__viz-meta{
  position:absolute;left:26px;bottom:22px;z-index:2;
  display:flex;align-items:baseline;gap:14px;pointer-events:none;
}
.services__viz-num{
  font-weight:800;font-size:56px;line-height:1;letter-spacing:-.03em;
  color:transparent;-webkit-text-stroke:1.3px rgba(237,240,247,.4);
  font-variant-numeric:tabular-nums;
}
.services__viz-tag{
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.24em;
  color:var(--gold);text-transform:uppercase;
}

.services__progress{
  position:absolute;left:0;right:0;bottom:0;height:2px;z-index:2;
  background:rgba(232,179,75,.12);
}
.services__progress i{
  display:block;height:100%;width:100%;
  background:linear-gradient(90deg,var(--gold),var(--gold-soft));
  transform:scaleX(0);transform-origin:left;
}
.services__progress i.run{transition:transform var(--cycle,4.6s) linear;transform:scaleX(1)}
.services__progress.off{display:none}

.services__list{list-style:none;display:flex;flex-direction:column}
.service{
  position:relative;
  display:grid;grid-template-columns:52px 1fr 34px;gap:20px;align-items:start;
  padding:30px 18px 30px 22px;
  border-top:1px solid var(--line);
  cursor:pointer;
  transition:background .3s ease;
  opacity:0;transform:translateY(22px);
}
.service:last-child{border-bottom:1px solid var(--line)}
.services.in .service{
  opacity:1;transform:none;
  transition:opacity .7s ease var(--i,0s),transform .7s cubic-bezier(.2,.65,.2,1) var(--i,0s),background .3s ease;
}
.service:nth-child(1){--i:.15s}
.service:nth-child(2){--i:.24s}
.service:nth-child(3){--i:.33s}
.service:nth-child(4){--i:.42s}
.service:nth-child(5){--i:.51s}

.service::before{
  content:"";position:absolute;left:0;top:50%;
  width:2px;height:0;background:var(--gold);
  transform:translateY(-50%);
  transition:height .35s cubic-bezier(.2,.65,.2,1);
}
.service.is-active::before{height:60%}
.service.is-active{background:rgba(255,255,255,.025)}
.service:hover{background:rgba(255,255,255,.035)}

.service__num{
  font-family:var(--font-mono);font-size:13px;color:var(--muted);
  padding-top:6px;transition:color .3s;
}
.service.is-active .service__num{color:var(--gold)}

.service__name{
  font-weight:700;font-size:clamp(19px,1.8vw,24px);
  letter-spacing:-.015em;line-height:1.2;
  transition:color .3s;
}
.service__desc{
  color:var(--muted);font-size:15px;line-height:1.6;
  margin-top:8px;max-width:460px;
}
.service__desc b{color:var(--text);font-weight:600}

.service__arrow{
  padding-top:4px;
  color:var(--muted);
  transition:color .3s,transform .35s cubic-bezier(.2,.65,.2,1);
}
.service.is-active .service__arrow{color:var(--gold);transform:rotate(-45deg)}
.service:hover .service__arrow{color:var(--gold)}

@media(max-width:980px){
  .services{padding:20px 20px 120px}
  .services__grid{grid-template-columns:1fr;gap:36px}
  .services__viz{
    position:relative;top:0;aspect-ratio:auto;height:340px;
  }
  .services__viz-num{font-size:44px}
  .service{grid-template-columns:40px 1fr 28px;gap:14px;padding:24px 10px 24px 16px}
}

@media(prefers-reduced-motion:reduce){
  .services__head,.services__viz,.service{opacity:1;transform:none;transition:none}
  .services__progress{display:none}
}

.service--link{cursor:pointer}
.service__link{
  position:absolute;inset:0;z-index:3;
  border-radius:inherit;

  font-size:0;
}
.service__link:focus-visible{outline:2px solid var(--gold);outline-offset:-3px;border-radius:12px}
.service--link:hover .service__arrow{color:var(--gold);transform:rotate(-45deg)}
