To solve the given optimization problem, we first need to convert the natural language description into a symbolic representation. Let's denote the number of large artworks as \(x_1\) and the number of small artworks as \(x_2\).

The objective is to maximize profit. The profit per large artwork is $200, and the profit per small artwork is $75. Thus, the objective function can be represented algebraically as:
\[ \text{Maximize:} \quad 200x_1 + 75x_2 \]

The constraints are based on the available materials and the minimum production requirements:
1. Paint constraint: \(5x_1 + 3x_2 \leq 200\)
2. Glitter constraint: \(3x_1 + x_2 \leq 100\)
3. Glue constraint: \(4x_1 + 2x_2 \leq 80\)
4. Minimum large artworks production: \(x_1 \geq 5\)
5. Minimum small artworks production: \(x_2 \geq 10\)

Non-negativity constraints are implicitly satisfied by the context of the problem since we cannot produce a negative number of artworks.

Thus, the symbolic representation of the problem is:
```json
{
  'sym_variables': [('x1', 'number of large artworks'), ('x2', 'number of small artworks')],
  'objective_function': '200*x1 + 75*x2',
  'constraints': [
    '5*x1 + 3*x2 <= 200',
    '3*x1 + x2 <= 100',
    '4*x1 + 2*x2 <= 80',
    'x1 >= 5',
    'x2 >= 10'
  ]
}
```

Now, let's implement this optimization problem using Gurobi in Python:
```python
from gurobipy import *

# Create a new model
m = Model("Amazing_Arts")

# Define variables
x1 = m.addVar(vtype=GRB.CONTINUOUS, name="large_artworks")
x2 = m.addVar(vtype=GRB.CONTINUOUS, name="small_artworks")

# Set objective function
m.setObjective(200*x1 + 75*x2, GRB.MAXIMIZE)

# Add constraints
m.addConstr(5*x1 + 3*x2 <= 200, "paint_constraint")
m.addConstr(3*x1 + x2 <= 100, "glitter_constraint")
m.addConstr(4*x1 + 2*x2 <= 80, "glue_constraint")
m.addConstr(x1 >= 5, "min_large_artworks")
m.addConstr(x2 >= 10, "min_small_artworks")

# Optimize model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Number of large artworks: {x1.x}")
    print(f"Number of small artworks: {x2.x}")
    print(f"Maximum profit: {m.objVal}")
else:
    print("No optimal solution found")
```