/* Identity only. Keep the approved scene and page composition unchanged. */
.identity-mark {
  --signal-period: 7.8s;
  position: relative;
  display: inline-block;
  vertical-align: middle;
}

.identity-mark > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.identity-signals {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0;
}

.identity-mark[data-signals-started] .identity-signals { opacity: 1; }

.identity-signal {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 10 110;
  animation: identity-signal-travel var(--signal-period) linear infinite;
  animation-delay: var(--signal-delay, 0s);
  animation-play-state: paused;
}

.identity-signal-halo { stroke: #406cff; stroke-width: 26; }
.identity-signal-core { stroke: #f2f5ff; stroke-width: 7.5; }
.brand-mark .identity-signal-core { stroke-width: 13; }
.brand-mark .identity-signal-halo { stroke-width: 30; }

/* Short, independently timed packets run along the existing cross-connectors. */
.identity-connector {
  stroke-dasharray: 18 110;
  animation-name: identity-connector-travel;
}
.identity-connector.identity-signal-core { stroke: #c4d4ff; stroke-width: 6; }
.identity-connector.identity-signal-halo { stroke-width: 20; }
.brand-mark .identity-connector.identity-signal-core { stroke-width: 11; }

.identity-junction {
  opacity: 0;
  animation: identity-junction-light var(--signal-period) ease-out infinite paused;
  animation-delay: var(--junction-delay);
}
.identity-junction-halo { fill: #406cff; opacity: .25; }
.identity-junction-core { fill: #edf2ff; }

.identity-mark[data-signals-active="true"] .identity-signal,
.identity-mark[data-signals-active="true"] .identity-junction { animation-play-state: running; }

@keyframes identity-signal-travel {
  0% { stroke-dashoffset: 10; opacity: 0; }
  5% { opacity: 1; }
  80% { opacity: 1; }
  86%, 100% { stroke-dashoffset: -100; opacity: 0; }
}

@keyframes identity-junction-light {
  0%, 13%, 100% { opacity: 0; }
  2% { opacity: .9; }
}

@keyframes identity-connector-travel {
  0% { stroke-dashoffset: 18; opacity: 0; }
  8% { opacity: .95; }
  70% { opacity: .95; }
  84%, 100% { stroke-dashoffset: -100; opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html:not([data-motion="running"]) .identity-signal,
  html:not([data-motion="running"]) .identity-junction { animation: none; opacity: 0; }
}

.brand-mark {
  display: block;
  width: 40px;
  height: 60px;
  flex: 0 0 auto;
  object-fit: contain;
}

.footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  max-width: 100%;
}

.footer-emblem {
  display: block;
  width: 64px;
  height: 96px;
  flex: 0 0 auto;
  object-fit: contain;
}

.footer-wordmark {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: .08em;
}

.footer-wordmark span + span {
  font-size: 22px;
  font-weight: 650;
  letter-spacing: .025em;
}

@media (max-width: 850px) {
  .brand-mark { width: 36px; height: 54px; }
  .footer-brand { gap: 16px; }
  .footer-emblem { width: 56px; height: 84px; }
  .footer-wordmark { font-size: 12px; }
  .footer-wordmark span + span { font-size: 18px; }
}

@media (max-width: 700px) {
  .footer-emblem { width: 64px; height: 96px; }
  .footer-wordmark { font-size: 14px; }
  .footer-wordmark span + span { font-size: 21px; }
}

@media (max-width: 380px) {
  .brand-mark { width: 32px; height: 50px; }
  .footer-emblem { width: 56px; height: 84px; }
  .footer-wordmark { font-size: 12px; }
  .footer-wordmark span + span { font-size: 19px; }
}
