/* Horizontal pillar links frame the approved logo on one responsive artboard. */
.platform-visual {
  width: 100%;
  max-width: 400px;
  height: auto;
  aspect-ratio: 10 / 9;
}
.platform-halo { animation: none; opacity: .35; }
.platform-symbol {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 62%;
  height: auto;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  filter: none;
}
.platform-symbol:hover { transform: translate(-50%, -50%); filter: none; }
.platform-symbol img { display: block; animation: none; filter: none; }
.platform-geometry {
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  pointer-events: none;
}
.platform-pillar { pointer-events: auto; cursor: pointer; }
.platform-geometry .pillar-hit { fill: transparent; stroke: none; pointer-events: all; }
.platform-geometry text {
  fill: var(--ivory);
  fill-opacity: .75;
  font-size: 12.5px;
  font-weight: 400;
  letter-spacing: 1.2px;
  dominant-baseline: central;
  pointer-events: auto;
  transition: fill-opacity .2s;
}
.platform-pillar:hover text,
.platform-pillar:focus-visible text { fill-opacity: 1; }
.platform-pillar:focus-visible text { text-decoration: underline; }
.platform-open .platform-pillar { animation: pillarsReveal .7s ease 1.5s both; }

/* Three disciplines converge once; the original SVG is the exact final artwork. */
.platform-assembly {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  fill: none;
  stroke: var(--gold);
  pointer-events: none;
  display: none;
}
.logo-piece { transform-box: fill-box; transform-origin: center; }
.piece-business { --piece-x: -140px; --piece-y: 45px; --piece-turn: -7deg; }
.piece-investments { --piece-x: 140px; --piece-y: 45px; --piece-turn: 7deg; }
.piece-estate { --piece-x: 0px; --piece-y: 140px; --piece-turn: 0deg; }
.platform-open .platform-assembly { display: block; animation: assemblyFinish .35s ease 2.25s forwards; }
.platform-open .logo-piece { animation: logoAssemble 1.8s cubic-bezier(.22,.7,.25,1) both; }
.platform-open .piece-investments { animation-delay: .12s; }
.platform-open .piece-estate { animation-delay: .3s; }
.platform-open .logo-core { animation: coreReveal .5s ease 1.6s both; }
.platform-open .platform-symbol img {
  animation: finalLogoReveal .35s ease 2.25s both, platformSoftGlow 8s ease-in-out 2.6s infinite;
}
@keyframes logoAssemble {
  from { opacity: .25; transform: translate(var(--piece-x), var(--piece-y)) rotate(var(--piece-turn)); }
  to { opacity: 1; transform: translate(0, 0) rotate(0); }
}
@keyframes pillarsReveal { from { opacity: 0; } to { opacity: 1; } }
@keyframes coreReveal { from { opacity: 0; } to { opacity: 1; } }
@keyframes assemblyFinish { from { opacity: 1; } to { opacity: 0; } }
@keyframes finalLogoReveal { from { opacity: 0; } to { opacity: 1; } }
@keyframes platformSoftGlow {
  0%, 100% { filter: drop-shadow(0 0 3px #d8b87808); }
  50% { filter: drop-shadow(0 0 6px #d8b87822); }
}
@media (max-width: 760px) { .platform-visual { max-width: 350px; } }
@media (prefers-reduced-motion: reduce) {
  .platform-open .platform-symbol img { animation: none; opacity: 1; filter: none; }
  .platform-open .platform-assembly { display: none; }
  .platform-open .platform-pillar { animation: none; }
}
