{
  "slug": "remote",
  "meta": {
    "title": "Remote | ChromVoid",
    "description": "Phone to desktop over USB, WebRTC, or WSS."
  },
  "hero": {
    "label": "Remote",
    "title": "One encrypted contract across USB, WebRTC, and WSS.",
    "description": "The transport changes, but the security boundary does not. Noise XX stays mandatory on every path.",
    "audience": "For phone-to-desktop workflows that need a transport choice without weakening the trust boundary."
  },
  "useCases": {
    "title": "When it fits",
    "intro": "Remote is for moving between phone and desktop when the path itself matters.",
    "cards": [
      {
        "title": "USB cable",
        "body": "Use a direct cable when you want a wired path with no network stack."
      },
      {
        "title": "WebRTC channel",
        "body": "Use the primary network path when peer-to-peer transport is available."
      },
      {
        "title": "Relay fallback",
        "body": "Use WSS relay when a deterministic fallback path is the only option."
      }
    ]
  },
  "howItWorks": {
    "title": "How it works",
    "intro": "Transport varies, but the encrypted boundary stays explicit.",
    "steps": [
      {
        "title": "Choose a path",
        "body": "USB, WebRTC, or WSS relay is selected based on the environment."
      },
      {
        "title": "Establish Noise XX",
        "body": "Every path negotiates the same encryption contract before data moves."
      },
      {
        "title": "Keep the boundary visible",
        "body": "The phone stays the source of truth while the desktop stays a thin client."
      }
    ],
    "diagrams": [
      {
        "src": "/assets/diagrams/transport-layers.svg",
        "alt": "Remote transport layers",
        "title": "Transport layers",
        "description": "USB, WebRTC, and WSS all sit under the same Noise contract."
      }
    ]
  },
  "security": {
    "title": "Security boundaries",
    "cards": [
      {
        "title": "USB is wired",
        "body": "A cable path does not silently fall back to the network stack."
      },
      {
        "title": "WebRTC is peer-to-peer",
        "body": "The network path uses DTLS + ICE before data is wrapped in Noise."
      },
      {
        "title": "Relay is transport, not trust",
        "body": "WSS relay forwards opaque bytes and is treated as fallback only."
      }
    ]
  },
  "limitations": {
    "title": "Limits and scope",
    "intro": "The page describes the current transport contract, not every possible transport.",
    "items": [
      "Only the defined transport families are part of the public scope.",
      "The relay is a fallback, not a trust anchor.",
      "Noise XX is required on every path."
    ],
    "notTitle": "Not an unencrypted sync link",
    "notBody": "Remote never drops the encryption contract just because the transport changed."
  },
  "cta": {
    "title": "Keep the remote path explicit, regardless of transport.",
    "body": "USB, WebRTC, and relay all share the same Noise XX boundary."
  },
  "ui": {
    "generic": {
      "audience": "Who this is for",
      "useCases": "Use cases",
      "how": "How it works",
      "security": "Security",
      "limitations": "Limitations",
      "threatModel": "Threat Model",
      "download": "Download",
      "backHome": "Back home",
      "technicalDiagram": "Technical diagram",
      "badges": {
        "inDevelopment": "In development",
        "pro": "PRO"
      }
    },
    "remote": {
      "transportSection": "Transport",
      "transportTitle": "Three paths. One encryption contract.",
      "transportIntro": "USB, WebRTC, or WSS Relay + Noise XX - pick the transport that fits your environment. Noise XX is mandatory on every path.",
      "flowSection": "Flow",
      "flowTitle": "How it works",
      "flowIntro": "The transport changes. The security boundary does not.",
      "boundarySection": "Boundaries",
      "boundaryTitle": "Security boundaries",
      "diagramBadge": "Technical diagram",
      "diagramSupportBadge": "Transport layers",
      "audienceLabel": "Who this is for",
      "transports": [
        {
          "id": "usb",
          "name": "USB",
          "title": "Direct cable",
          "body": "Wired connection with no network stack. If the cable fails, the system does not silently fall back to a network path.",
          "meta": "Noise XX · Wired · Separate family"
        },
        {
          "id": "webrtc",
          "name": "WebRTC",
          "title": "Network channel",
          "body": "Primary network transport. Uses DTLS + ICE for path setup, then wraps data in Noise.",
          "meta": "Noise XX · P2P · Primary network path"
        },
        {
          "id": "wss",
          "name": "WSS Relay",
          "title": "Deterministic fallback",
          "body": "The relay forwards opaque bytes. MVP baseline for mobile. The relay is transport, not trust.",
          "meta": "Noise XX · Relay · MVP baseline"
        }
      ],
      "lanes": {
        "phone": "Phone",
        "phoneRole": "Vault · Keys · Source of truth",
        "desktop": "Desktop",
        "desktopRole": "Thin client · Screen",
        "usb": "USB",
        "webrtc": "WebRTC",
        "wss": "WSS",
        "noise": "Noise XX",
        "noiseCopy": "Same encryption contract on every transport path",
        "noiseWrap": "Noise"
      },
      "metrics": [
        {
          "value": "Noise XX",
          "label": "Encryption"
        },
        {
          "value": "3",
          "label": "Transports"
        },
        {
          "value": "0",
          "label": "Plaintext paths"
        }
      ]
    }
  }
}
