def cryptic_sorter(strings: list[str]) -> list[str]:
    vowels = set("aeiouAEIOU")

    def key(s: str):
        return (len(s), s.lower(), sum(1 for c in s if c in vowels))

    return sorted(strings, key=key)
