/* Homepage only; retired design selectors removed. */
.icon-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}

.button-secondary {
  background:#ffffffb8;
  border-color:var(--line);
  color:var(--ink);
}

.button-secondary:hover {
  background:#fff;
  box-shadow:0 5px 20px #3465cf0a;
}

.hero {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  align-items:center;
  min-height:510px;
  padding:40px 52px 48px;
  background:#fafbfde8;
  border:1px solid #fff;
  border-radius:32px;
  gap:14px;
  overflow:hidden;
}

.hero-copy {
  position:relative;
  z-index:1;
}

.hero-description {
  color:var(--muted);
  font-size:15px;
  line-height:1.95;
  margin:0 0 28px;
}

.hero-actions {
  display:flex;
  gap:12px;
}

.hero-art {
  position:relative;
  display:grid;
  place-items:center;
  min-width:0;
  min-height:406px;
}

.hero-art ai-orb {
  width:min(370px,100%);
  aspect-ratio:1;
  position:relative;
  z-index:1;
}

.orbit {
  position:absolute;
  width:98%;
  aspect-ratio:1;
  border:1px solid #dce3ed80;
  border-radius:50%;
  transform:rotate(-22deg) scaleY(.72);
}

.orbit-inner {
  width:80%;
  transform:rotate(35deg) scaleY(.92);
  border-color:#e0e4f480;
}

.home-cta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  margin:40px 0 0;
  padding:38px 44px;
  background:#fafbfdad;
  border:1px solid #fff;
  border-radius:26px;
}

.home-cta .eyebrow {
  margin-bottom:9px;
}

.home-cta h2 {
  font-size:26px;
}

.home-cta p:last-child {
  font-size:13px;
  color:var(--muted);
  margin:9px 0 0;
}

@media(min-width:1500px) {
.hero {
  min-height:550px;
}

.hero-art ai-orb {
  width:395px;
}

.hero-art {
  min-height:440px;
}
}

@media(max-width:1100px) {
.hero {
  padding:36px;
}

.hero-art {
  min-height:360px;
}

.hero-art ai-orb {
  width:320px;
}
}

@media(max-width:850px) {
.hero {
  grid-template-columns:1fr .85fr;
  gap:0;
  padding:32px 26px;
}

.hero h1 {
  font-size:34px;
}

.hero-description {
  font-size:14px;
}

.hero-art {
  min-height:330px;
}

.hero-art ai-orb {
  width:280px;
}

.home-cta {
  padding:30px;
}
}

@media(max-width:650px) {
.hero {
  grid-template-columns:1fr;
  padding:34px 24px 25px;
  border-radius:26px;
  gap:14px;
}

.hero h1 {
  font-size:clamp(28px,7.8vw,40px);
  letter-spacing:-1px;
}

.hero-description {
  font-size:14px;
}

.hero-description br {
  display:none;
}

.hero-art {
  min-height:310px;
  max-width:370px;
  width:100%;
  justify-self:center;
}

.hero-art ai-orb {
  width:280px;
}

.home-cta {
  display:block;
  padding:28px 24px;
  margin-top:24px;
}

.home-cta h2 {
  font-size:25px;
}

.home-cta .button {
  margin-top:22px;
}
}

.intelligence-orb {
  position:relative;
  display:grid;
  place-items:center;
  width:min(370px,100%);
  aspect-ratio:1;
  z-index:1;
}

.hero-art .intelligence-orb ai-orb {
  width:100%;
  height:100%;
}

@media(min-width:1500px) {
.intelligence-orb {
  width:395px;
}
}

@media(max-width:1100px) {
.intelligence-orb {
  width:320px;
}
}

@media(max-width:850px) {
.intelligence-orb {
  width:280px;
}
}

@media(max-width:650px) {
.hero-description {
  max-width:30em;
}
}

.hero {
  background:none;
  border:0;
  border-radius:0;
  padding-inline:36px;
  overflow:visible;
}

.home-cta {
  background:#fafbfde6;
  border:1px solid #fff;
  border-radius:26px;
  padding:38px 44px;
  margin:0 0 12px;
}

.home-cta .eyebrow {
  display:none;
}

@media(max-width:850px) {
.hero {
  padding-inline:20px;
}
}

@media(max-width:650px) {
.hero {
  padding:26px 8px 20px;
}

.home-cta {
  padding:28px 24px;
}

.home-cta h2 {
  font-size:24px;
}
}

.hero {
  grid-template-columns:1fr 1fr;
  min-height:610px;
  padding-inline:12px;
  gap:30px;
}

.hero-art {
  min-height:490px;
}

.intelligence-orb {
  width:min(470px,100%);
}

@media(max-width:1100px) {
.hero {
  min-height:550px;
  gap:20px;
}

.hero-art {
  min-height:430px;
}

.intelligence-orb {
  width:min(390px,100%);
}
}

@media(max-width:850px) {
.hero {
  min-height:510px;
}

.hero-art {
  min-height:380px;
}

.intelligence-orb {
  width:min(340px,100%);
}
}

@media(max-width:650px) {
.hero {
  grid-template-columns:1fr;
  padding:26px 8px 20px;
}

.hero-art {
  max-width:420px;
  min-height:370px;
}

.intelligence-orb {
  width:min(340px,100%);
}
}

@media(max-width:1100px) {
.hero-art .orbit-outer {
  width:92%;
}
}

.story-brand {
  margin:0 0 12px;
  font-family:Inter,system-ui,sans-serif;
  font-size:14px;
  font-weight:500;
  letter-spacing:1.8px;
  color:#71809a;
}

@media(max-width:700px) {
.story-brand {
  font-size:12px;
  letter-spacing:1px;
  margin-bottom:8px;
}
}

@media(max-height:700px) {
.story-brand {
  margin-bottom:6px;
}
}

.hero h1 {
  font-size:clamp(38px,4.15vw,60px);
  font-weight:300;
  line-height:1.4;
  letter-spacing:-1px;
  margin-bottom:28px;
}

.hero-description {
  font-size:17px;
  line-height:1.9;
  font-weight:300;
  margin-bottom:32px;
}

.story-brand {
  font-family:"Helvetica Neue",Arial,sans-serif;
  font-size:clamp(22px,2.15vw,30px);
  font-weight:300;
  letter-spacing:.1px;
  line-height:1.4;
  margin:0 0 16px;
  color:#697990;
}

.home-cta h2 {
  font-size:clamp(30px,3vw,40px);
  font-weight:300;
  line-height:1.5;
}

.home-cta p:last-child {
  font-size:16px;
  font-weight:300;
  line-height:1.9;
  margin-top:14px;
}

@media(max-width:1000px) {
.hero-description {
  font-size:16px;
}

.story-brand {
  font-size:24px;
}
}

@media(max-width:700px) {
.story-brand {
  font-size:20px;
  margin-bottom:12px;
}
}

@media(max-width:650px) {
.hero h1 {
  font-size:clamp(34px,8.7vw,48px);
}

.hero-description {
  font-size:16px;
}

.home-cta h2 {
  font-size:30px;
}

.home-cta p:last-child {
  font-size:15px;
}
}

@media(max-height:700px) {
.story-brand {
  font-size:22px;
  margin-bottom:8px;
}
}

@media(max-height:700px) and (max-width:700px) {
.story-brand {
  font-size:18px;
}
}

.hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:48px 44px 54px;
  margin-top:12px;
  margin-bottom:32px;
  border:1px solid rgba(255,255,255,.92);
  border-radius:40px;
  background:linear-gradient(125deg,rgba(255,255,255,.8),rgba(250,252,255,.42) 45%,rgba(238,235,255,.58)),radial-gradient(ellipse at 95% 5%,rgba(184,198,255,.28),transparent 58%);
  box-shadow:inset 0 2px 0 #fff,inset 0 -1px 0 #ffffffa6,0 22px 65px -38px #697fb849,0 2px 8px #7b91bb08;
  backdrop-filter:blur(22px) saturate(115%);
  -webkit-backdrop-filter:blur(22px) saturate(115%);
  scroll-margin-top:28px;
}

.hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(155deg,#ffffff99 0,transparent 37%,#ffffff36 55%,transparent 70%);
}

.hero::after {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  box-shadow:inset 1px 0 0 #ffffffa6,inset -1px 0 0 #ffffff80;
  pointer-events:none;
}

.hero-art {
  z-index:1;
}

@media(max-width:1100px) {
.hero {
  padding:40px 30px 48px;
  border-radius:34px;
  gap:24px;
}

.hero h1 {
  font-size:clamp(34px,4.15vw,46px);
}
}

@media(max-width:850px) {
.hero {
  padding:34px 26px 42px;
  gap:20px;
}

.hero h1 {
  font-size:34px;
}

.hero-art {
  min-height:380px;
}
}

@media(max-width:650px) {
.hero {
  padding:34px 24px 30px;
  border-radius:28px;
  margin-top:8px;
  margin-bottom:20px;
  gap:22px;
}

.hero h1 {
  font-size:clamp(32px,8vw,44px);
}

.hero-art {
  min-height:350px;
}

.hero-description {
  font-size:16px;
}
}

.hero {
  width:calc(100vw - 64px);
  max-width:1600px;
  margin-inline:calc((100% - min(1600px,100vw - 64px))/2);
  padding-inline:max(48px,calc((min(1600px,100vw - 64px) - 1160px)/2));
  border-radius:32px;
  border-color:#ffffffa8;
  background:linear-gradient(120deg,#ffffffa6,#fafcff66 48%,#eeebff73);
  box-shadow:inset 0 1px 0 #ffffffdc,0 22px 60px -42px #7584b53d;
}

.hero::after {
  box-shadow:inset 0 -1px 0 #ffffff52;
}

@media(max-width:1100px) {
.hero {
  width:calc(100vw - 48px);
  margin-inline:calc(50% - 50vw + 24px);
  padding-inline:32px;
  border-radius:30px;
}
}

@media(max-width:650px) {
.hero {
  width:calc(100vw - 32px);
  margin-inline:calc(50% - 50vw + 16px);
  padding-inline:24px;
  border-radius:26px;
}
}

.orb-solutions {
  padding:100px 0 50px;
}

.orb-section-heading {
  text-align:center;
  margin:0 0 36px;
}

.orb-section-heading h2 {
  font-size:clamp(30px,3.1vw,44px);
  font-weight:300;
  line-height:1.5;
  letter-spacing:.2px;
  text-wrap:balance;
}

.orb-section-heading h2 span {
  display:inline-block;
  color:var(--ui-accent);
}

.orb-sector {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  gap:clamp(40px,7vw,100px);
  align-items:center;
  min-height:580px;
  padding:48px 36px;
  scroll-margin-top:40px;
}

.orb-sector+.orb-sector {
  border-top:1px solid #bac9e02b;
}

.sector-art {
  position:relative;
  aspect-ratio:520/460;
  width:100%;
  isolation:isolate;
}

.sector-art::before {
  content:"";
  position:absolute;
  inset:16% 12%;
  z-index:-1;
  border-radius:50%;
  background:radial-gradient(ellipse,#dce6fa55,transparent 68%);
}

.sector-art ai-orb {
  position:absolute;
  pointer-events:none;
}

.orb-sector-copy {
  padding-bottom:10px;
}

.sector-kicker {
  display:flex;
  align-items:center;
  gap:18px;
  color:#71809a;
  font-size:13px;
  font-weight:300;
  letter-spacing:.8px;
  margin:0 0 22px;
}

.sector-kicker::after {
  content:"";
  width:38px;
  height:1px;
  background:#b7c5df;
}

.sector-kicker span {
  font-size:16px;
  letter-spacing:.5px;
}

.orb-sector-copy h3 {
  font-family:inherit;
  font-weight:300;
  font-size:clamp(38px,3.8vw,52px);
  letter-spacing:1px;
  line-height:1.4;
  margin:0 0 26px;
}

.orb-sector-copy>p:last-child {
  font-size:clamp(17px,1.5vw,20px);
  font-weight:300;
  line-height:2;
  color:var(--muted);
  margin:0;
}

@media(max-width:1000px) {
.orb-sector {
  min-height:490px;
  padding:36px 8px;
  gap:36px;
}

.orb-solutions {
  padding-top:84px;
}

.orb-section-heading h2 {
  font-size:32px;
}
}

@media(max-width:650px) {
.orb-solutions {
  padding-top:64px;
}

.orb-section-heading {
  margin-bottom:28px;
}

.orb-section-heading h2 {
  font-size:28px;
}

.orb-sector {
  grid-template-columns:1fr;
  gap:12px;
  padding:36px 8px 48px;
  min-height:0;
}

.sector-art {
  max-width:420px;
  justify-self:center;
}

.orb-sector-copy {
  width:min(100%,420px);
  max-width:100%;
  justify-self:center;
  padding:0 0 0 calc(min(100%,420px) * .20);
  text-align:left;
}

.sector-kicker {
  margin-bottom:12px;
}

.orb-sector-copy h3 {
  font-size:36px;
  margin-bottom:16px;
}

.orb-sector-copy>p:last-child {
  font-size:17px;
}

.orb-sector-copy>p:last-child br {
  display:none;
}
}

.abstract-art>svg {
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
  stroke:none;
}

.abstract-art::before {
  inset:26% 20%;
  background:radial-gradient(ellipse,#dce5f73b,transparent 70%);
}

.data-tile {
  animation:tile-arrival 6.6s ease-in-out infinite;
  animation-play-state:paused;
}

.server-light {
  animation:server-pulse 3s ease-in-out infinite;
  animation-play-state:paused;
}

.dialogue-upper,
.dialogue-lower {
  animation:dialogue-drift 8s ease-in-out infinite;
  animation-play-state:paused;
}

.dialogue-lower {
  animation-delay:-4s;
}

.orb-sector.is-visible .data-tile,
.orb-sector.is-visible .server-light,
.orb-sector.is-visible .dialogue-upper,
.orb-sector.is-visible .dialogue-lower {
  animation-play-state:running;
}

@keyframes tile-arrival {
50%{transform:translateY(8px);opacity:.58}
}

@keyframes server-pulse {
50%{fill:#d7edff}
}

@keyframes dialogue-drift {
50%{transform:translateY(-5px)}
}

@media(prefers-reduced-motion:reduce) {
.data-tile,
.server-light,
.dialogue-upper,
.dialogue-lower {
  animation:none;
}
}

.hero {
  width:100vw;
  max-width:none;
  margin:12px calc(50% - 50vw) 32px;
  padding-inline:max(48px,calc((100vw - 1160px)/2));
  border:0;
  border-radius:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  background:radial-gradient(ellipse at 82% 45%,#e5def859,transparent 55%),linear-gradient(115deg,#e7eefacc,#eef2fac2 48%,#eee9f9bb);
}

.hero::before,
.hero::after {
  content:none;
}

@media(max-width:1100px) {
.hero {
  padding-inline:40px;
}
}

@media(max-width:650px) {
.hero {
  padding-inline:24px;
  margin-top:8px;
  margin-bottom:20px;
}
}

.hero {
  min-height:clamp(720px,85svh,960px);
  padding-block:88px;
}

@media(max-width:1100px) {
.hero {
  min-height:clamp(680px,82svh,900px);
  padding-block:76px;
}
}

@media(max-width:650px) {
.hero {
  min-height:780px;
  padding-block:54px;
  gap:30px;
}
}

.hero .hero-description {
  margin-bottom:52px;
}

.hero {
  background:radial-gradient(ellipse at 73% 49%,#fcfdff 0%,#eef0fc 18%,#e2e8f7 46%,#e9eff9 72%,#eef2fa 100%);
}

.hero-tunnel {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  pointer-events:none;
  mask-image:linear-gradient(90deg,#0002,#0007 38%,#000 65%);
  -webkit-mask-image:linear-gradient(90deg,#0002,#0007 38%,#000 65%);
}

.hero-copy,
.hero-art {
  position:relative;
  z-index:1;
}

.hero {
  background:radial-gradient(ellipse at 85% 25%,#d8d9f3 0,transparent 53%),radial-gradient(ellipse at 70% 80%,#d3e3f6 0,transparent 55%),linear-gradient(110deg,#edf2fa 10%,#e5ecf9 48%,#dce2f5 100%);
}

.hero-tunnel {
  mask-image:linear-gradient(90deg,#0003,#0008 40%,#000 62%);
  -webkit-mask-image:linear-gradient(90deg,#0003,#0008 40%,#000 62%);
}

.hero {
  margin-top:0;
}

.hero-art .orbit {
  border-color:#dce3ed80;
  box-shadow:none;
}

.hero-art .orbit-inner {
  border-color:#e0e4f480;
  box-shadow:none;
}

/* Mobile reading order: introduction, orb, then calls to action. */
@media(max-width:650px) {
  .hero {
    /* Keep the orb row compact rather than stretching it to fill tall phones. */
    height:auto;
    min-height:0;
    grid-template-rows:auto auto clamp(140px,calc(100svh - 360px),320px) auto;
    align-items:start;
    gap:10px;
    padding-block:max(clamp(32px,6svh,52px),env(safe-area-inset-bottom));
  }

  .hero-copy {
    display:contents;
  }

  .hero-copy h1,
  .hero-copy .hero-description,
  .hero-actions {
    position:relative;
    z-index:1;
  }

  .hero-copy h1 {
    grid-row:1;
    margin:0;
    font-size:clamp(26px,7.8vw,36px);
    line-height:1.35;
  }

  .hero .hero-description {
    grid-row:2;
    margin:0;
    font-size:14px;
    line-height:1.7;
  }

  .hero-art {
    grid-row:3;
    align-self:stretch;
    min-height:0;
    height:100%;
    max-width:340px;
    container-type:size;
  }

  .hero-art .intelligence-orb {
    width:min(100%,100cqh,48svh,360px);
    max-height:100%;
    max-width:100%;
    height:auto;
    aspect-ratio:1;
  }

  .hero-art .orbit {
    width:min(88vw,42svh,360px);
    max-height:100%;
  }

  .hero-art .orbit-inner {
    width:min(76vw,36svh,310px);
  }

  .hero-actions {
    grid-row:4;
    align-self:end;
    gap:12px;
  }

  .hero-actions .button {
    min-height:46px;
    padding:11px 22px;
  }
}

.home-cta {
  min-height:250px;
  padding-block:62px;
}

@media(max-width:650px) {
.home-cta {
  min-height:290px;
  padding-block:42px;
}
}

.footer-skyline {
  margin-top:48px;
  padding:12px 0 36px;
}

.footer-city-panorama {
  margin-inline:auto;
  position:relative;
  top:28px;
}

.footer-city-panorama img {
  display:block;
  width:100%;
  height:auto;
}

.footer-city-labels {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:-12px;
  text-align:center;
  color:#6e819c;
  font-size:14px;
  font-weight:300;
  letter-spacing:3px;
}

.footer-city-labels small {
  display:block;
  margin-top:5px;
  font-size:9px;
  letter-spacing:1.8px;
  color:#8a99af;
}

.footer-skyline+.home-footer {
  margin-top:0;
}

@media(max-width:650px) {
.footer-skyline {
  margin-top:28px;
  padding-bottom:28px;
}

.footer-city-labels {
  margin-top:0;
  font-size:12px;
  letter-spacing:1px;
}

.footer-city-labels small {
  font-size:7px;
  letter-spacing:.8px;
}
}

.footer-team-title {
  margin:0 auto 18px;
  padding:0 24px;
  text-align:center;
  color:var(--ink);
  font-size:clamp(28px,3vw,42px);
  font-weight:300;
  line-height:1.5;
  letter-spacing:.03em;
}

.footer-city-labels[hidden] {
  display:none;
}

.footer-team-actions {
  text-align:center;
  margin:22px 0 0;
}

.footer-team-button {
  min-width:140px;
  background:transparent;
  border:1px solid #8295b1;
  color:var(--ink);
  font-weight:300;
}

.footer-team-button:hover {
  background:#ffffff55;
  border-color:var(--ui-accent);
  color:var(--ui-accent);
  box-shadow:none;
}

.sector-page-links {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  margin-top:26px;
}

.sector-page-links a {
  display:flex;
  align-items:center;
  gap:24px;
  font-size:14px;
  color:#5275b3;
}

.sector-page-links a:hover {
  color:#2d60c4;
}

.sector-page-links span {
  font-size:17px;
}
