=== Published period-plane input ===
X = 4*w**3*z - 4*w*x**2*z + 5*x**4 + 8*y**4 - 5*z**4
h = z + a*w
m_a = 25*a**3 + 4*a + 20

=== Restricted quartic ===
F raw = -5*a**4*w**4 - 4*a*w**4 + 4*a*w**2*x**2 + 5*x**4 + 8*y**4
F mod m_a = 4*a**2*w**4/5 + 4*a*w**2*x**2 + 5*x**4 + 8*y**4
5F = (5*x^2 + 2*a*w^2)^2 + 40*y^4

=== Factorization over b^2=-10 ===
C+ = 2*a*w**2 + 2*b*y**2 + 5*x**2
C- = 2*a*w**2 - 2*b*y**2 + 5*x**2
PASS: C+*C- = 5F modulo b^2+10

=== Nonzero coefficients ===
a != 0 and b != 0

=== Smoothness of reconstructed conics ===
grad C+ = [10*x, 4*b*y, 4*a*w]
grad C- = [10*x, -4*b*y, 4*a*w]
Since a,b are nonzero, projective gradient zero would force x=y=w=0.
PASS: both conics are smooth

=== Intersection and bitangency ===
C+ - C- = 4*b*y**2
At intersections: y=0 and 5*x^2+2*a*w^2=0.
grad C+ at y=0 = [10*x, 0, 4*a*w]
grad C- at y=0 = [10*x, 0, 4*a*w]
PASS: tangent lines coincide at both intersection points.
By Bezout, each of the two intersections has multiplicity 2.

=== Field structure ===
signature field K = Q(a), 25*a^3+4*a+20=0
splitting field L = K(b), b^2=-10
Galois involution b -> -b exchanges C+ and C-.

=== K3 numerical calibration ===
Each recovered carrier is a smooth plane conic:
degree = 2, genus = 0, hence self-intersection = -2 on a K3.
This matches the published Hodge-lattice filter h·delta=2, delta^2=-2.

ALL EXACT CHECKS PASSED.
Spreadsheet runtime warmup failed during python startup
Traceback (most recent call last):
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/patches/warm_spreadsheet_runtime_on_startup.py", line 26, in warm_spreadsheet_runtime_on_startup
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/spreadsheet_warmup.py", line 785, in warm_spreadsheet_runtime
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/spreadsheet_warmup.py", line 720, in _warm_feature_flows
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/spreadsheet_warmup.py", line 704, in _warm_collaboration_flows
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/generated/interface/models.py", line 32317, in hydrate_crdt_from_proto
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/rpc/remote.py", line 749, in __call__
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/rpc/client.py", line 150, in call
artifact_tool.rpc.client.RemoteError: hydrateCrdtFromProto requires an empty collaborative document.
