@keyframes heroCopyIn{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}
@keyframes heroImageIn{from{opacity:.55;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}
@keyframes softPulse{0%,100%{filter:drop-shadow(0 0 8px rgba(67,189,228,.3))}50%{filter:drop-shadow(0 0 18px rgba(67,189,228,.65))}}
.hero-supplied>img,.page-hero>img{animation:heroImageIn 1.4s cubic-bezier(.2,.7,.2,1) both;transition:opacity .45s ease}
.hero-banner-actions,.page-hero-copy>*{animation:heroCopyIn .8s cubic-bezier(.2,.7,.2,1) both}
.page-hero-copy>*:nth-child(2){animation-delay:.1s}.page-hero-copy>*:nth-child(3){animation-delay:.2s}
.orel-brand img{animation:softPulse 3.6s ease-in-out infinite}
.motion-ready .reveal-item{opacity:0;transform:translateY(42px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}
.motion-ready .reveal-item.reveal-delay{transition-delay:.1s}
.motion-ready .reveal-item.is-visible{opacity:1;transform:none}
.solution-image img,.service-split-image img,.product-split-image img,.about-split-image img,.blog-image img{transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .6s ease}
.solution-detail:hover img,.service-splits article:hover img,.product-splits article:hover img,.about-splits article:hover img,.blog-grid article:hover img{transform:scale(1.055);filter:saturate(1.08)}
.btn,.text-link,.service-splits a,.product-splits a,.blog-grid a{transition:transform .25s ease,box-shadow .25s ease}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(3,15,25,.18)}
.text-link:hover,.service-splits a:hover,.product-splits a:hover,.blog-grid a:hover{transform:translateX(6px)}
@media(prefers-reduced-motion:reduce){*{animation:none!important}.motion-ready .reveal-item{opacity:1;transform:none;transition:none}}
@keyframes networkSpin{to{transform:rotate(360deg)}}
@keyframes networkSpinReverse{to{transform:rotate(-360deg)}}
@keyframes corePulse{0%,100%{transform:translate(-50%,-50%) scale(.82);box-shadow:0 0 18px rgba(67,189,228,.5)}50%{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 0 42px rgba(67,189,228,.95)}}
@keyframes nodeBlink{0%,100%{opacity:.35;box-shadow:0 0 8px #56d8ff}50%{opacity:1;box-shadow:0 0 22px #56d8ff}}
.loop-network{position:absolute;z-index:2;right:5.5vw;bottom:9%;width:clamp(190px,20vw,320px);aspect-ratio:1;pointer-events:none;opacity:.82;filter:drop-shadow(0 0 24px rgba(35,178,225,.2))}
.loop-ring{position:absolute;inset:0;border:1px solid rgba(112,220,255,.58);border-radius:50%}
.loop-ring:before,.loop-ring:after{position:absolute;width:7px;height:7px;border-radius:50%;background:#67ddff;box-shadow:0 0 18px #42c8f4;content:""}
.loop-ring:before{top:-4px;left:50%}.loop-ring:after{right:8%;bottom:22%}
.ring-a{animation:networkSpin 13s linear infinite}.ring-b{inset:17%;border-style:dashed;animation:networkSpinReverse 9s linear infinite}.ring-c{inset:34%;animation:networkSpin 6s linear infinite}
.loop-core{position:absolute;top:50%;left:50%;width:22px;height:22px;border:2px solid #a9efff;border-radius:50%;background:rgba(47,193,235,.35);animation:corePulse 2.4s ease-in-out infinite}
.loop-node{position:absolute;width:8px;height:8px;border-radius:50%;background:#9cecff;animation:nodeBlink 2s ease-in-out infinite}
.node-a{top:12%;left:18%}.node-b{top:27%;right:7%;animation-delay:.45s}.node-c{right:18%;bottom:10%;animation-delay:.9s}.node-d{bottom:22%;left:3%;animation-delay:1.35s}
@media(max-width:760px){.loop-network{right:-30px;bottom:18%;width:175px;opacity:.52}}
@keyframes ambientDrift{0%{transform:translate3d(0,-8%,0) rotate(0)}50%{transform:translate3d(0,8%,0) rotate(180deg)}100%{transform:translate3d(0,-8%,0) rotate(360deg)}}
@keyframes streamTravel{0%{background-position:0 -180px}100%{background-position:0 380px}}
@keyframes ambientPing{0%,100%{opacity:.2;transform:scale(.7)}45%{opacity:1;transform:scale(1.45)}}
@keyframes mapOrbitPulse{0%,100%{opacity:.22;transform:scale(.96)}50%{opacity:.68;transform:scale(1.035)}}
@keyframes hubBeacon{0%,100%{box-shadow:0 0 0 7px rgba(216,163,63,.13),0 0 8px rgba(216,163,63,.25)}50%{box-shadow:0 0 0 13px rgba(216,163,63,.08),0 0 25px rgba(216,163,63,.8)}}
.page-ambient{position:fixed;z-index:55;inset:0;overflow:hidden;pointer-events:none;opacity:.42;mask-image:linear-gradient(90deg,#000 0,rgba(0,0,0,.85) 12%,transparent 36%,transparent 64%,rgba(0,0,0,.85) 88%,#000 100%)}
.ambient-orbit{position:absolute;width:430px;height:430px;border:1px solid rgba(54,191,231,.26);border-radius:50%;animation:ambientDrift 28s linear infinite}
.ambient-orbit:before,.ambient-orbit:after{position:absolute;inset:12%;border:1px dashed rgba(54,191,231,.22);border-radius:50%;content:""}.ambient-orbit:after{inset:31%;border-style:solid}
.ambient-left{top:10%;left:-280px}.ambient-right{right:-275px;bottom:5%;animation-direction:reverse;animation-duration:34s}
.ambient-stream{position:absolute;top:0;bottom:0;width:1px;background:repeating-linear-gradient(to bottom,transparent 0 18px,rgba(68,204,241,.65) 18px 25px,transparent 25px 44px);animation:streamTravel 9s linear infinite}
.stream-a{left:3.5%}.stream-b{right:4.5%;animation-delay:-4s;animation-duration:12s}
.ambient-dot{position:absolute;width:7px;height:7px;border-radius:50%;background:#67ddff;box-shadow:0 0 16px #42c8f4;animation:ambientPing 3.2s ease-in-out infinite}
.dot-one{top:22%;left:3.25%}.dot-two{top:58%;right:4.25%;animation-delay:1.1s}.dot-three{bottom:13%;left:6%;animation-delay:2.1s}
.map .orbit{animation:mapOrbitPulse 5.8s ease-in-out infinite}.map .orbit.two{animation-delay:-2.9s}.map .hub b{animation:hubBeacon 2.2s ease-in-out infinite}.map .hub.sri b{animation-delay:.7s}.map .hub.world b{animation-delay:1.4s}
@media(max-width:760px){.page-ambient{opacity:.25}.ambient-orbit{width:300px;height:300px}.ambient-left{left:-230px}.ambient-right{right:-230px}.stream-a{left:2%}.stream-b{right:2%}}
@keyframes numberGlow{0%,100%{text-shadow:0 0 0 rgba(67,189,228,0)}50%{text-shadow:0 0 22px rgba(67,189,228,.32)}}
@keyframes partnerFloat{0%,100%{transform:translateY(0);color:rgba(255,255,255,.72)}50%{transform:translateY(-5px);color:#fff}}
@keyframes lightSweep{0%{transform:translateX(-160%) skewX(-18deg)}55%,100%{transform:translateX(260%) skewX(-18deg)}}
@keyframes borderBreathe{0%,100%{border-color:rgba(103,221,255,.14)}50%{border-color:rgba(103,221,255,.52)}}
.stats strong{animation:numberGlow 3.8s ease-in-out infinite}.stats article{transition:background .35s ease,transform .35s ease}.stats article:hover{z-index:2;background:#f1f9fc;transform:translateY(-6px)}
.partner-list span{animation:partnerFloat 4s ease-in-out infinite}.partner-list span:nth-child(2n){animation-delay:-1s}.partner-list span:nth-child(3n){animation-delay:-2s}.partner-list span:nth-child(5n){animation-delay:-3s}
.solution-copy,.service-split-copy,.product-split-copy,.about-split-copy,.inner-cta{position:relative;overflow:hidden}
.solution-copy:after,.service-split-copy:after,.product-split-copy:after,.about-split-copy:after,.inner-cta:after{position:absolute;top:-30%;bottom:-30%;left:-30%;width:16%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent);content:"";pointer-events:none;animation:lightSweep 8s ease-in-out infinite}
.solution-splits article,.service-splits article,.product-splits article,.about-splits article{border:1px solid rgba(103,221,255,.14);animation:borderBreathe 5s ease-in-out infinite}.solution-splits article:nth-child(even),.service-splits article:nth-child(even),.product-splits article:nth-child(even),.about-splits article:nth-child(even){animation-delay:-2.5s}
/* Reference-inspired Business Pillars showcase */
.pillars {
  background: #030303;
  color: #fff;
  overflow: hidden;
}

.pillars .pillar-grid {
  width: min(1180px, calc(100% - 48px));
  margin: 46px auto 0;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 72px 54px;
}

.pillars .pillar {
  position: static;
  display: block;
  border: 0;
  min-height: 0;
  aspect-ratio: auto;
  overflow: visible;
  color: #fff;
  text-align: center;
  background: transparent;
}

.pillars .pillar { grid-column: span 2; }
.pillars .pillar:nth-child(4) { grid-column: 2 / span 2; }
.pillars .pillar:nth-child(5) { grid-column: 4 / span 2; }

.pillars .pillar > img {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1.14 / 1;
  object-fit: cover;
  display: block;
  border: 3px solid #ef233c;
  border-radius: 48% 48% 42% 42% / 34% 34% 46% 46%;
  filter: saturate(1.08) contrast(1.05);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .52);
  transition: transform .65s cubic-bezier(.2, .75, .25, 1), filter .5s ease, box-shadow .5s ease;
}

@media (max-width: 980px) and (min-width: 761px) {
  .pillars .pillar-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 58px 46px;
  }

  .pillars .pillar,
  .pillars .pillar:nth-child(4) {
    grid-column: auto;
  }

  .pillars .pillar:nth-child(5) {
    grid-column: 1 / -1;
    width: calc((100% - 46px) / 2);
    justify-self: center;
  }
}

.pillars .pillar .shade,
.pillars .pillar .index,
.pillars .pillar-copy p,
.pillars .pillar-copy b {
  display: none;
}

.pillars .pillar-copy {
  position: static;
  padding: 0;
}

.pillars .pillar-copy h3 {
  margin: 26px 8px 0;
  font-size: clamp(1.25rem, 2.1vw, 2rem);
  line-height: 1.2;
  font-weight: 650;
  letter-spacing: -.025em;
  color: #fff;
}

.pillars .pillar:hover > img,
.pillars .pillar:focus-visible > img {
  transform: translateY(-8px) scale(1.025);
  filter: saturate(1.18) contrast(1.08);
  box-shadow: 0 28px 66px rgba(0, 0, 0, .65), 0 0 35px rgba(32, 192, 242, .14);
}

.pillars .pillar:focus-visible {
  outline: 2px solid #32cbff;
  outline-offset: 9px;
}

@media (max-width: 760px) {
  .pillars .pillar-grid {
    width: min(calc(100% - 30px), 560px);
    grid-template-columns: 1fr;
    gap: 46px;
    margin-top: 34px;
  }

  .pillars .pillar,
  .pillars .pillar:nth-child(4),
  .pillars .pillar:nth-child(5) {
    grid-column: auto;
    width: 100%;
  }

  .pillars .pillar > img {
    border: 3px solid #ef233c;
  }

  .pillars .pillar-copy h3 {
    margin-top: 18px;
    font-size: clamp(1.2rem, 6vw, 1.65rem);
  }
}

/* Consistent, compact heading system across every page. */
:root {
  --title-font: Arial, Helvetica, sans-serif;
}

h1, h2, h3, h4, h5, h6,
h1 em, h2 em, h3 em, h4 em, h5 em, h6 em {
  font-family: var(--title-font) !important;
  font-style: normal !important;
  font-weight: 600 !important;
  letter-spacing: -0.025em !important;
}

.hero h1,
.page-hero h1 {
  font-size: clamp(2.5rem, 5vw, 4.75rem) !important;
  line-height: 1.02 !important;
}

.display,
.heading h2,
.presence h2,
.project h2,
.contact h2,
.split-copy h2,
.editorial-statement h2,
.narrow-center h2,
.partner-band h2,
.contact-page-grid > div > h2,
.inner-cta h2 {
  font-size: clamp(2rem, 3.5vw, 3.5rem) !important;
  line-height: 1.08 !important;
}

.solution-copy h2,
.service-split-copy h2,
.product-split-copy h2,
.about-split-copy h2,
.service-list h2,
.blog-grid h2,
.mission-grid h3,
.why-grid h3,
.product-list h3 {
  font-size: clamp(1.55rem, 2.4vw, 2.4rem) !important;
  line-height: 1.12 !important;
}

.pillar-copy h3,
.value-grid h3,
footer h3 {
  font-size: clamp(1.15rem, 1.8vw, 1.65rem) !important;
  line-height: 1.2 !important;
}

@media (max-width: 760px) {
  .hero h1,
  .page-hero h1 {
    font-size: clamp(2.15rem, 10vw, 3.25rem) !important;
  }

  .display,
  .heading h2,
  .presence h2,
  .project h2,
  .contact h2,
  .split-copy h2,
  .editorial-statement h2,
  .narrow-center h2,
  .partner-band h2,
  .contact-page-grid > div > h2,
  .inner-cta h2 {
    font-size: clamp(1.8rem, 8vw, 2.6rem) !important;
  }
}
