Deploy web Studio / deploy (push) Successful in 3m14s
Gitea Actions workflow builds dist/web (rustup + wasm32 target, prebuilt wasm-bindgen CLI at the Cargo.lock version, tools/build_web.py) and publishes it to /var/www/isokit.buildfor.life on s1 with the blog's two-directory rename swap and the same VPS_* secrets as cnx_vinyl. deploy/Caddyfile mirrors the vhost applied on s1 (no-cache so the unversioned wasm glue never goes stale at Cloudflare).