/* HYPRX optical icon family: a shared 24 px grid and restrained, rounded strokes. */
.direction-icon,
.direction-right,
.direction-down,
.direction-up,
.direction-external {
  rotate: none;
}

.direction-icon svg,
.question-symbol svg,
.axis-mark svg,
.small-icon svg,
.principle-icon svg,
.service-symbol svg,
.foot-cross svg,
.welcome-symbol svg,
.brief-check svg,
.evidence-connector svg,
.detail-toggle svg,
.faq-toggle svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.direction-icon { width: 20px; height: 20px; }
.button > span.direction-icon[aria-hidden],
.header-cta > span.direction-icon[aria-hidden] {
  width: 20px;
  height: 20px;
  translate: none;
}
.button:hover > .direction-icon,
.header-cta:hover > .direction-icon,
.inline-link:hover .direction-icon { translate: none; }
.button,
.header-cta { gap: 20px; }
.hero-actions .button { gap: 18px; }
.direction-icon { transition: translate .3s cubic-bezier(.22, .7, .3, 1); }
.inline-link { min-height: 44px; }
.inline-link .direction-icon { width: 18px; height: 18px; }
.header-cta { min-height: 48px; }
.hero-foot > a {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border-color: #9dafff33;
  background: #9dafff05;
}
.hero-foot > a .direction-icon { width: 20px; height: 20px; }
.footer-top nav a,
.footer-bottom > a,
.faq-intro > p:last-child a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.footer-top nav a > .direction-icon,
.faq-intro > p:last-child a > .direction-icon,
.footer-bottom > a > .direction-icon { width: 18px; height: 18px; }

/* The form stays byte-for-byte unchanged. Its two decorative glyphs become SVG masks. */
.submit-button > span[aria-hidden],
.form-email-fallback > span[aria-hidden] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  font-size: 0;
  translate: none;
  transition: translate .3s cubic-bezier(.22, .7, .3, 1);
}
.submit-button > span[aria-hidden]::before,
.form-email-fallback > span[aria-hidden]::before {
  content: '';
  width: 20px;
  height: 20px;
  display: block;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5.5 12h13m-5-5 5 5-5 5' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.form-email-fallback > span[aria-hidden]::before {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M7 17 17 7M7 7h10v10' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.submit-button:hover > span[aria-hidden] { translate: none; }

/* Signal, source and study marks share the same optical proportions. */
.axis-mark { display: inline-flex; width: 25px; height: 25px; flex: none; }
.axis-mark svg { stroke-width: 1.5; }
.question-symbol { padding: 3px; width: 30px; height: 30px; }
.small-icon {
  padding: 7px;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border-color: #9dafff30;
  background: linear-gradient(145deg, #9dafff0d, #123bff0d);
  box-shadow: inset 0 1px 0 #d2dbff0b;
}
.small-icon svg { stroke-width: 1.6; }
.expert-float-heading .small-icon { width: 34px; height: 34px; padding: 6px; }
.small-icon.plasma { border-color: #b49aff30; background: linear-gradient(145deg, #b49aff12, #7228ff0b); }
.brief-list .brief-check { display: inline-flex; width: 18px; height: 18px; align-items: center; }
.brief-check svg { stroke-width: 1.75; }
.workspace-bottom > span:last-child > .preview-connection { width: 16px; height: 16px; margin-left: 7px; }
.vault-window-top > .vault-source-mark { width: 19px; height: 19px; color: #a7b8de; }
.foot-cross { display: inline-flex; width: 16px; height: 16px; }
.foot-cross svg { stroke-width: 1.5; }
.welcome-note > .welcome-symbol {
  display: inline-flex;
  width: 27px;
  height: 27px;
  margin-top: 1px;
  flex: none;
}
.welcome-symbol svg { stroke-width: 1.45; }

.principle-icon {
  width: 48px;
  height: 48px;
  padding: 11px;
  border-radius: 13px;
  border: 1px solid #a5b7ff2b;
  background: radial-gradient(ellipse at 20% 0, #bdcaff10, transparent 70%), linear-gradient(155deg, #13203a77, #10142655);
  color: #c1ceee;
  box-shadow: inset 0 1px 0 #d2dbff0a, 0 6px 16px #0000000a;
  transition: border-color .35s, background .35s, color .35s;
}
.principle-icon svg { width: 24px; height: 24px; }
.service-symbol {
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  padding: 14px;
  border-radius: 19px;
  border: 1px solid #9dafff2e;
  background: radial-gradient(ellipse at 30% 0, #9dafff12, transparent 75%), linear-gradient(145deg, #123bff0c, #7228ff08);
  box-shadow: inset 0 1px 0 #d2dbff0c;
  color: #b7c5ef;
  filter: none;
}
.service-symbol svg { stroke-width: 1.15; }
.service-symbol svg > path { stroke: currentColor; stroke-width: 1.15; }
.service-symbol .simulation-guide { opacity: .65; }
.service-symbol .simulation-aperture { stroke: #d4ddf8; stroke-width: 1.25; }
.service-symbol svg > .simulation-node { fill: #ffb82e; stroke: none; }

.document-tags .evidence-connector {
  display: inline-flex;
  flex: none;
  align-items: center;
  width: 14px;
  height: 14px;
  color: #aebee066;
}
.detail-toggle,
.faq-list summary > .faq-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin-left: auto;
  color: #adbee1;
  flex: none;
  transform: none;
  transition: transform .3s cubic-bezier(.22, .7, .3, 1), color .3s;
}
.detail-toggle svg,
.faq-toggle svg { width: 20px; height: 20px; }
.vault-accordions details[open] .detail-toggle,
.faq-list details[open] summary > .faq-toggle { transform: rotate(180deg); color: #e1e8fa; }

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .button:hover > span.direction-right[aria-hidden],
  .header-cta:hover > span.direction-right[aria-hidden],
  .inline-link:hover .direction-right,
  .footer-top a:hover > .direction-right,
  .faq-intro a:hover > .direction-right,
  .submit-button:hover > span[aria-hidden] { translate: 3px 0; }
  .hero-foot > a:hover .direction-down { translate: 0 3px; }
  .footer-bottom a:hover > .direction-up { translate: 0 -3px; }
  .direct-contact a:hover .direction-external,
  .form-email-fallback:hover > span[aria-hidden] { translate: 2px -2px; }
  .axis-principles article:hover .principle-icon { border-color: #b7c5ff55; color: #e0e8fb; background-color: #123bff0b; }
}

@media (max-width: 720px) {
  .header-cta > span.direction-icon[aria-hidden] { width: 18px; height: 18px; }
  .axis-principles .principle-icon { width: 44px; height: 44px; padding: 9px; border-radius: 12px; }
  .service-symbol { width: 60px; height: 60px; padding: 12px; border-radius: 17px; }
  .hero-actions .button { gap: 14px; }
  .footer-bottom > a > .direction-icon { width: 18px; height: 18px; }
}
@media (max-width: 640px) {
  .hero-foot .foot-cross,
  .document-tags .evidence-connector { display: none; }
}
@media (max-width: 380px) {
  .header-cta { gap: 10px; }
  .hero-actions .button { gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .direction-icon,
  .submit-button > span[aria-hidden],
  .form-email-fallback > span[aria-hidden],
  .detail-toggle,
  .faq-list summary > .faq-toggle { transition: none; }
}
