def point_in_polygon(point, polygon):
    """
    Determines whether a [x,y] point is strictly inside a convex polygon
    defined as an ordered list of [x,y] points.

    :param point: the point to check
    :param polygon: the polygon
    :return: True if point is inside polygon, False otherwise
    """
    x = point[0]
    y = point[1]
    n = len(polygon)
    inside = False
    xints = 0.0
    p1x, p1y = polygon[0]
    for i in range(n + 1):
        p2x, p2y = polygon[i % n]
        if y > min(p1y, p2y):
            if y <= max(p1y, p2y):
                if x <= max(p1x, p2x):
                    if p1y != p2y:
                        xints = (y - p1y) * (p2x - p1x) / (p2y - p1y) + p1x
                    if p1x == p2x or x <= xints:
                        inside = not inside
        p1x, p1y = p2x, p2y
    return inside