/* ==========================================================================
   Hero band — charcoal field, circuit artwork, billboard, partner marquee
   Geometry (band height, cell spans, paddings, marquee metrics) is unchanged
   from the approved layout foundation; the surface, artwork and motion are
   rebranded.
   ========================================================================== */

.media-background{position:relative;overflow:hidden;background-color:var(--sv-charcoal);color:var(--sv-white)}
.media-background__content{position:relative;z-index:1}

/* --------------------------------------------------------------------------
   Circuit artwork — the page's one orchestrated motion moment.
   Draw-in on load, a slow ambient drift, and a small pointer parallax; all
   three are transform/opacity only and all three stop under reduced motion.
   -------------------------------------------------------------------------- */
.hero-circuit{
  position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;
  /* written by hero-circuit.js from the pointer position */
  --hc-px:0;
  --hc-py:0;
}
.hero-circuit__layer{
  position:absolute;top:50%;right:-6%;
  width:min(1180px,86%);
  transform:translate3d(calc(var(--hc-px) * 1px),calc(-50% + var(--hc-py) * 1px),0);
  transition:transform .9s cubic-bezier(.22,.61,.36,1);
  /* fades out towards the copy so the headline keeps full contrast */
  -webkit-mask-image:linear-gradient(to right,transparent 2%,rgba(0,0,0,.28) 24%,#000 52%);
  mask-image:linear-gradient(to right,transparent 2%,rgba(0,0,0,.28) 24%,#000 52%);
  opacity:.95;
}
.hero-circuit__svg{display:block;width:100%;height:auto;animation:hero-circuit-drift 26s ease-in-out infinite alternate}

@keyframes hero-circuit-drift{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(-10px,6px,0) scale(1.012)}
}

/* resolve-on-load: traces draw, then the nodes settle in */
.hero-circuit .trace{stroke-dasharray:1;stroke-dashoffset:0}
.hero-circuit .node{opacity:1;transform-box:fill-box;transform-origin:center;transform:scale(1)}
.hero-circuit.is-drawing .trace{
  stroke-dashoffset:1;
  animation:hero-trace-draw 1.1s cubic-bezier(.65,0,.35,1) forwards;
  animation-delay:calc(var(--i) * 14ms);
}
.hero-circuit.is-drawing .node{
  opacity:0;transform:scale(.4);
  animation:hero-node-in .45s cubic-bezier(.22,.61,.36,1) forwards;
  animation-delay:calc(340ms + var(--i) * 7ms);
}
@keyframes hero-trace-draw{to{stroke-dashoffset:0}}
@keyframes hero-node-in{to{opacity:1;transform:scale(1)}}

@media (prefers-reduced-motion:reduce){
  .hero-circuit__layer{transition:none}
  .hero-circuit__svg{animation:none}
  .hero-circuit.is-drawing .trace,
  .hero-circuit.is-drawing .node{animation:none;stroke-dashoffset:0;opacity:1;transform:none}
}

@media (min-width:640px) and (max-width:1023.98px){
  .hero-circuit__layer{
    width:min(860px,132%);right:-34%;top:34%;opacity:.8;
    -webkit-mask-image:linear-gradient(to right,transparent 4%,rgba(0,0,0,.3) 26%,#000 56%);
    mask-image:linear-gradient(to right,transparent 4%,rgba(0,0,0,.3) 26%,#000 56%);
  }
}
@media (max-width:639.98px){
  .hero-circuit__layer{
    width:170%;right:-52%;top:24%;opacity:.42;
    -webkit-mask-image:linear-gradient(to bottom,#000 34%,transparent 94%);
    mask-image:linear-gradient(to bottom,#000 34%,transparent 94%);
  }
}

/* --------------------------------------------------------------------------
   Billboard
   -------------------------------------------------------------------------- */
.billboard{
  --billboard-accent-color:var(--ps-color-brand-400);
  --billboard-main-padding:32px;
  --billboard-animation-duration:.75s;
  --billboard-animation-offset:40px;
  display:block;color:var(--sv-white);
}
.billboard__main-cell{
  grid-column-end:span var(--ps-grid-columns);
  padding-block:var(--billboard-main-padding);
  display:flex;align-items:center;position:relative;
}
.billboard__states{width:100%}
.billboard__copy{width:100%;display:flex;flex-direction:column;gap:32px;text-align:center;align-items:center}
.billboard__title{--ps-accent-color:var(--billboard-accent-color);padding-bottom:5px;max-width:100%;margin:0;font-weight:500}
.billboard__description{color:rgba(255,255,255,.78)}
.billboard__description p{margin:0}
.billboard__cta-row{display:flex;flex-direction:column;align-items:center;gap:16px}

/* Mobile-only visual slot above the copy (hidden from 640px up) */
.billboard__primary-visual{
  position:relative;order:-1;
  grid-column-end:span var(--ps-grid-columns);
  padding-top:calc((100% + 2 * var(--ps-grid-margin)) / 2.333);
}

.billboard__animated{
  opacity:1;transform:translate3d(0,0,0);
  transition:opacity var(--billboard-animation-duration),transform var(--billboard-animation-duration);
}
.billboard.is-stealth .billboard__animated{opacity:.001;transform:translate3d(0,var(--billboard-animation-offset),0)}
.billboard.is-stealth .billboard__animated:nth-child(2){transition-delay:.1s}
.billboard.is-stealth .billboard__animated:nth-child(3){transition-delay:.2s}

@media (min-width:640px){
  .billboard__primary-visual{display:none}
  .billboard__main-cell{--billboard-main-padding:64px;grid-column-start:2;grid-column-end:span 10}
  .billboard__cta-row{flex-direction:row;flex-wrap:wrap;justify-content:center}
}
@media (min-width:1024px){
  .billboard__main-cell{--billboard-main-padding:80px;min-height:590px;grid-column-start:1;grid-column-end:span 8}
  .billboard__copy{text-align:left;align-items:flex-start}
  .billboard__cta-row{padding-top:8px;justify-content:flex-start}
}
@media (min-width:1350px){
  .billboard__main-cell{grid-column-start:1;grid-column-end:span 7}
}

/* Slide indicators on the dark band */
.billboard__states .ps-carousel__tabs{justify-content:center;margin:24px 0 0}
.billboard__states .ps-carousel__tab-wrapper{flex:0 1 72px}
@media (min-width:1024px){
  .billboard__states .ps-carousel__tabs{justify-content:flex-start}
}
.ps-carousel__tabs--on-dark .ps-carousel__tab::before{background-color:rgba(255,255,255,.34);opacity:1}
.ps-carousel__tabs--on-dark .ps-carousel__tab::after{background-color:var(--ps-color-brand-500)}

/* --------------------------------------------------------------------------
   Foundry and technology partner marquee
   -------------------------------------------------------------------------- */
.logo-list__wrapper{position:relative}
.logo-list{
  --logo-transition-delay:.1s;
  display:block;outline:0;margin-bottom:32px;
  grid-column-end:span var(--ps-grid-columns);
}
.logo-list__track-mask{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 20%,#000 80%,transparent);
  mask-image:linear-gradient(to right,transparent,#000 20%,#000 80%,transparent);
}
.logo-list__track{display:flex;flex-wrap:nowrap;width:max-content;will-change:transform}
.logo-list__track.is-running{animation:logo-marquee var(--logo-marquee-duration,60s) linear infinite}
.logo-list__track:hover{animation-play-state:paused}
@keyframes logo-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.logo-list__logo{
  padding:16px 24px;display:flex;align-items:center;flex:none;
  --logo-relative-delay:calc(var(--logo-transition-delay) * var(--logo-index,0));
  filter:opacity(0);translate:0 10%;opacity:.55;scale:1;
  transition:filter 1s linear var(--logo-relative-delay),
             translate .9s linear var(--logo-relative-delay),
             scale .1s linear,opacity .1s linear;
}
.logo-list.is-active .logo-list__logo{filter:opacity(1);translate:0 0}
.logo-list__logo img{max-width:none;filter:var(--ps-filter-neutral-1-500)}
/* Stand-in tiles while approved partner artwork and use rights are pending */
.logo-list__logo--placeholder{
  font:500 11px/1 var(--ps-font);letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.6);
  border:1px dashed rgba(255,255,255,.28);border-radius:3px;
  padding:14px 22px;margin:2px 10px;white-space:nowrap;
}
@media (hover:hover) and (pointer:fine){
  .logo-list__logo[href]:hover,.logo-list__logo[href]:focus-visible{scale:1.08;opacity:1;z-index:2}
}
.logo-list__label{
  text-align:center;padding:16px 0 8px;
  font:400 12px/16px var(--ps-font);letter-spacing:.08em;text-transform:uppercase;
  color:rgba(255,255,255,.58);
}

@media (min-width:1350px){
  .logo-list{grid-column-start:3;grid-column-end:span 8}
}

/* --------------------------------------------------------------------------
   Section headings
   -------------------------------------------------------------------------- */
.section-headings__wrapper{
  position:relative;padding-block:32px;
  --section-heading-eyebrow-color:var(--ps-color-brand-500);
  --section-heading-content-color:var(--ps-color-neutral-3-500);
}
.section-headings__wrapper.no-top-padding{padding-top:0}
.section-headings__wrapper.no-bottom-padding{padding-bottom:0}
.section-headings__wrapper.no-bottom-padding .section-headings__heading:last-child,
.section-headings__wrapper.no-bottom-padding .section-headings__sub-heading:last-child{
  text-box:none;
  margin-block:calc((-1lh + 1cap + 1px) / 1.605) calc((-1lh + 1.9cap) / 3.21);
}
.section-headings__cell{grid-column-end:span var(--ps-grid-columns);text-align:center}
.section-headings__content{color:var(--section-heading-content-color);display:flex;flex-direction:column;gap:40px}
.section-headings__copy{display:flex;flex-direction:column;row-gap:40px}
.section-headings__eyebrow{color:var(--section-heading-eyebrow-color)}
.section-headings__heading{margin:0}
.section-headings__sub-heading{margin-top:-8px;color:var(--ps-color-secondary-5-500)}
.section-headings__sub-heading p{margin:0}
.section-headings__ctas{display:flex;flex-direction:column;align-items:center;gap:16px;justify-content:center}

@media (min-width:640px){
  .section-headings__wrapper{padding-block:64px}
  .section-headings__ctas{flex-direction:row}
  .section-headings__cell--left{text-align:left}
  .section-headings__cell--left .section-headings__content{flex-direction:row;align-items:flex-end;justify-content:space-between}
  .section-headings__cell--left .section-headings__ctas{flex-shrink:0}
}
@media (min-width:1024px){
  .section-headings__wrapper{padding-block:80px}
}
@media (min-width:1350px){
  .section-headings__cell--8{grid-column-start:3;grid-column-end:span 8}
  .section-headings__cell--10{grid-column-start:2;grid-column-end:span 10}
}
