Public website / Security design

Separate by design.

Trust boundary

visitor  ──HTTPS──▶  static edge host  ──▶  HTML / CSS / SVG
          └─ optional beta or support request ──▶  managed form relay ──▶ operator email

                                      ╳  no evaluation proxy
                                      ╳  no dataset upload
                                      ╳  no runtime credentials

The public site and the ML Referee service do not need to share a machine, process, repository, secret store, or network. Publishing the website copies a small set of reviewed static files to an edge host.

What is absent

Browser policy

Every page declares a restrictive Content Security Policy: deny resources by default and narrowly permit required same-origin assets. Frames, workers, objects, and browser-script connections are prohibited. Media is blocked except on the unlisted demo page, which permits its same-origin video. The beta and support pages permit form submissions only to the exact HTTPS origin used by the managed relay. The referrer policy remains no-referrer.

Operational recommendation

Keep the website in its own minimal repository and deploy it through a static-only hosting project. Protect the default branch, require review, pin deployment permissions to the website repository, and never give the hosting identity access to the Referee machine or service secrets.

Changes that reopen the threat model

Expanding the current form destination or fields, or adding JavaScript, analytics, third-party content, authentication, server functions, uploads, or a service connection is an architecture change—not a cosmetic edit. Any one of those should trigger a new security review before deployment.