{
  "multiplayer": {
    "offline": "Offline",
    "offlineMode": "Offline Mode",
    "inviteTitle": "Game Invite!",
    "invitedYou": "invited you to play",
    "accept": "Accept",
    "decline": "Decline",
    "disable": "Disable",
    "sendWaveEmote": "Send Wave Emote",
    "sendThumbsUpEmote": "Send Thumbs Up Emote",
    "sendTargetEmote": "Send Target Emote",
    "sendHighFiveEmote": "Send High Five Emote",
    "cancel": "Cancel",
    "sendAnInvite": "send an invite",
    "hostAGame": "host a game",
    "joinAGame": "join a game",
    "playMultiplayer": "play multiplayer",
    "connectionBlockedTryLater": "Connection temporarily blocked. Please try again later.",
    "blocked": "Blocked",
    "connectionBlocked": "Connection Blocked",
    "inviteExpired": "Invite expired or room full.",
    "noPlayersOnline": "No players online.",
    "mustBeOnline": "You must be online to {{action}}.",
    "enableInvites": "Enable Invites in Settings to find matches.",
    "noOpponentsFound": "No opponents found. Try again later!",
    "roomCodeCopied": "Room code copied!",
    "inviteLinkCopied": "Invite link copied!",
    "noOpponentsInviting": "No opponents found. Try inviting a friend!",
    "invalidRoomCode": "Invalid or full room code.",
    "online": "Online",
    "onlinePlayers": "Online Players",
    "findPublic": "Find Public Match",
    "singlePlayer": "Single Player",
    "multiplayer": "Multiplayer",
    "selectMode": "Select Mode",
    "gameModes": "Game Modes",
    "back": "Back",
    "shareFriend": "Share with a friend",
    "copyCode": "Copy Code",
    "copyLink": "Copy Link",
    "waitingPlayer": "Waiting for player...",
    "searching": "Searching...",
    "takeMoment": "This may take a moment.",
    "searchPrompt": "Search for a player by name:",
    "searchPlaceholder": "Search players...",
    "clearSearch": "Clear search",
    "sendInvite": "Send Invite",
    "playersOnline": "Players Online",
    "noPlayersMatch": "No players match your search.",
    "inviteFriend": "Invite Friend",
    "hostPrivate": "Host Private Match",
    "or": "OR",
    "code": "CODE",
    "join": "Join",
    "waitingRoom": "Waiting Room",
    "matchingRandom": "Matching you with a random opponent..."
  },
  "gameboard": {
    "returnToMediaHome": "Return to Media Home",
    "returnToArcade": "Return to Arcade",
    "returnToLobby": "Return to Lobby",
    "restartGame": "Restart Game",
    "howToPlay": "How to Play",
    "pauseGame": "Pause Game",
    "waiting": "Waiting...",
    "waitingForOpponentToAccept": "Waiting for {{name}} to accept...",
    "cancelRequest": "Cancel Request",
    "returnToLobbyPrompt": "Return to Lobby?",
    "opponentWantsToReturnToLobby": "{{name}} wants to return to the lobby.",
    "roomCode": "Room Code",
    "waitingForAnyone": "Waiting for anyone to join...",
    "connected": "Connected!",
    "game": "Game",
    "difficulty": "Difficulty",
    "lives": "Lives",
    "host": "Host",
    "ready": "Ready",
    "guest": "Guest",
    "cancelReady": "Cancel Ready",
    "readyUp": "Ready Up",
    "startMatch": "Start Match",
    "waitingForHostToStart": "Waiting for Host to start...",
    "bestLevel": "Best Level",
    "startGame": "Start Game",
    "quitToArcade": "Quit to Arcade?",
    "quitToHome": "Quit to Home?",
    "disconnectWarning": "This will disconnect you from the match.",
    "askOpponentWarning": "Your opponent will be asked if they want to return.",
    "progressLostWarning": "Your current progress will be lost.",
    "yesQuit": "Yes, Quit",
    "yesRequest": "Yes, Request",
    "yesRestart": "Yes, Restart",
    "youWin": "You Win!",
    "lostMatch": "lost the match.",
    "youLose": "You Lose!",
    "wonMatch": "won the match.",
    "matchFinished": "Match Finished!",
    "greatTeamEffort": "Great team effort!",
    "timesUp": "Time's Up!",
    "gameOver": "Game Over!",
    "level": "Level",
    "finalScore": "Final Score",
    "finalLevel": "Final Level",
    "secondChanceBtn": "Second Chance",
    "playAgain": "Play Again",
    "requestRematch": "Request Rematch",
    "wantsToPlayAgain": "wants to play again!",
    "backToLobby": "Back to Lobby",
    "shareLevelBtn": "Share Level",
    "getReady": "Get Ready!",
    "yourTurn": "Your Turn!",
    "sTurn": "'s Turn",
    "score": "Score",
    "ariaYourLives": "Your Lives: {{count}}",
    "ariaOpponentLives": "Opponent Lives: {{count}}",
    "ariaTimeLeft": "Time Left: {{count}} seconds",
    "lines": "Lines",
    "ariaLines": "Lines: {{count}}",
    "ariaLives": "Lives: {{count}}",
    "paused": "PAUSED",
    "padTopLeft": "Top Left",
    "padTopRight": "Top Right",
    "padBottomLeft": "Bottom Left",
    "padBottomRight": "Bottom Right",
    "ariaPadNumLabel": "Pad {{num}}, {{position}}",
    "waitingOpponent": "Waiting for opponent...",
    "bothReady": "Both players must be ready!",
    "opponentUnresponsive": "Opponent unresponsive.",
    "resumedOn": "Resumed on {{difficulty}}",
    "secondChance": "Second Chance Activated!",
    "shareTetra": "I scored {{score}} points and cleared {{lines}} lines on {{difficulty}} difficulty in {{title}}! Can you beat me?",
    "shareSpeed": "I scored {{score}} on {{difficulty}} difficulty in {{title}}! Can you beat me?",
    "shareLevel": "I reached level {{score}} on {{difficulty}} difficulty in {{title}}! Can you beat me?",
    "copied": "Level copied to clipboard!",
    "tetraDropBoard": "Tetra Drop Game Board",
    "next": "Next",
    "moveLeft": "Move Left",
    "moveRight": "Move Right",
    "dropPiece": "Drop Piece",
    "cycleColor": "Cycle Color",
    "swapPiece": "Swap Piece",
    "tetraBlastBoard": "Tetra Blast Game Board",
    "selectPiece": "Select piece",
    "availablePieces": "Available Pieces",
    "ariaPadLabel": "{{position}} pad, plays {{stage}} sound",
    "memoryPads": "Memory Pads"
  },
  "arcade": {
    "fullscreen": "Fullscreen",
    "settings": "Settings",
    "modeChanged": "Mode: {{mode}}",
    "accessibleModeChanged": "Accessible Mode: {{state}}",
    "themeChanged": "Theme: {{theme}}",
    "rightsReserved": "All rights reserved.",
    "shapeChanged": "Shape: {{shape}}",
    "gamerTagChanged": "Gamer Tag changed to {{name}}",
    "gamerTagCopied": "Gamer Tag copied to clipboard!",
    "backToHome": "Back to Media Home",
    "title": "Muesiq Arcade",
    "subtitle": "Challenge your memory and reflexes.",
    "gamerTag": "Gamer Tag:",
    "copyGamerTag": "Copy Gamer Tag",
    "generateGamerTag": "Generate new Gamer Tag",
    "availableGames": "Available Games",
    "about": "About",
    "terms": "Terms",
    "privacy": "Privacy",
    "close": "Close"
  },
  "instructions": {
    "howToPlay": "How to Play",
    "tetraBlast1": "Choose from 3 block shapes and place them onto the 8x8 grid.",
    "tetraBlast2": "Fill entire rows or columns to blast them away and score points!",
    "tetraBlast3": "The game ends when you can no longer fit any of the remaining shapes.",
    "multiplayerPrefix": "Multiplayer:",
    "tetraBlastMulti": "Take turns placing pieces with your opponent to clear the board!",
    "a11yPrefix": "Accessibility:",
    "tetraBlastA11y": "Use arrow keys to move the cursor, keys 1, 2, and 3 to select pieces, and Spacebar to place!",
    "tetraDrop1": "Classic geometric blocks will fall from the top.",
    "tetraDrop2": "Move and rotate them to form solid lines across the board to clear them.",
    "tetraDrop3": "Rotating a piece also cycles its color and musical note!",
    "tetraDrop4": "Every line cleared gives you points and plays a chord!",
    "tipPrefix": "Tip:",
    "tetraDropTip1": "Press 'C' or 'Shift' (or tap the Next piece) to swap!",
    "tetraDropTip2": "You can pause this game at any time!",
    "diffPrefix": "Difficulty:",
    "tetraDropDiff": "Higher difficulties make the blocks drop much faster.",
    "speedGrid1": "Pads will light up randomly one at a time.",
    "speedGrid2": "Tap the lit pad as fast as possible before it disappears!",
    "speedGrid3": "You have 30 seconds to get the highest score.",
    "speedGridA11y": "Screen readers will announce the active pad. Press keys 1, 2, 3, or 4 to quickly tap them!",
    "speedGridTip": "Turn on Accessible Mode in Settings to remove strict time limits.",
    "speedGridDiff": "Higher difficulties make the pads disappear much faster.",
    "echoBeats1": "Watch and listen to the sequence of lights and sounds.",
    "echoBeats2": "Repeat the pattern by tapping the pads in the exact same order.",
    "echoBeats3": "The sequence gets one step longer each round!",
    "echoBeatsMulti": "Take turns extending the sequence! The last player standing wins.",
    "echoBeatsDiff": "Higher difficulties give you fewer mistakes allowed and faster sequences.",
    "echoBeatsA11y": "Screen readers will announce the pattern. Press keys 1, 2, 3, or 4 to quickly tap them!",
    "seeHowFar": "See how far you can go before running out of lives!",
    "close": "Close"
  },
  "settings": {
    "title": "Settings",
    "theme": "Theme",
    "changeTheme": "Change Theme, currently {{theme}}",
    "padShape": "Pad Shape",
    "changePadShape": "Change Pad Shape, currently {{shape}}",
    "mode": "Mode",
    "darkMode": "Dark Mode",
    "lightMode": "Light Mode",
    "language": "Language",
    "changeLanguage": "Change Language, currently {{lang}}",
    "accessibleMode": "Accessible Mode",
    "on": "On",
    "off": "Off",
    "invites": "Invites",
    "blocked": "Blocked",
    "allowed": "Allowed",
    "volume": "Volume",
    "toggleMute": "Toggle Mute",
    "app": "App",
    "installPwa": "Install App",
    "close": "Close"
  },
  "difficulties": {
    "easy": "Easy",
    "normal": "Normal",
    "hard": "Hard",
    "extreme": "Extreme"
  },
  "multiplayerToast": {
    "userReady": "{{name}} is ready!",
    "userNotReady": "{{name}} is not ready.",
    "invitesBlocked": "Invites blocked.",
    "invitesAllowed": "Invites allowed.",
    "connectionLostMatchEnded": "Connection lost. Match ended.",
    "connectionBlocked": "Connection temporarily blocked.",
    "networkErrorRefresh": "Network error. Please refresh.",
    "userWentOffline": "{{name}} went offline.",
    "userLeftMatchEnded": "{{name}} left. Match ended.",
    "matchAbandonedInactivity": "Match abandoned due to inactivity.",
    "reconnecting": "Reconnecting...",
    "sessionTerminated": "Session terminated.",
    "connectionTimedOut": "Connection timed out.",
    "serverAtCapacity": "Server at capacity.",
    "inviteWait": "Please wait before sending another invite.",
    "inviteInvalid": "Invalid username.",
    "userNotOnline": "{{name}} is not online.",
    "userConsideringInvite": "{{name}} is already considering an invite.",
    "cannotCreateRoom": "Cannot create room.",
    "userReceivedAnotherInvite": "{{name}} received another invite.",
    "inviteExpiredTo": "Invite to {{name}} expired.",
    "inviteSent": "Invite sent to {{name}}!",
    "errorSendingInvite": "Error sending invite.",
    "roomClosedHost": "Room closed by host.",
    "roomClosedAdmin": "Room closed by admin.",
    "declinedReturnLobby": "{{name}} declined to return to lobby.",
    "inviteDeclined": "Invite declined.",
    "userLeftMatch": "{{name}} left the match.",
    "emoteYou": "You",
    "difficultyChanged": "Difficulty changed to {{difficulty}}.",
    "livesChanged": "Starting lives changed to {{lives}}.",
    "gameChanged": "Game changed to {{game}}.",
    "wantsRematch": "{{name}} wants a rematch!",
    "userDisconnectedWait": "{{name}} disconnected. Waiting...",
    "userFailedReconnect": "{{name}} failed to reconnect.",
    "userReconnected": "{{name}} reconnected!",
    "invitesDisabled": "Invites disabled."
  },
  "stages": {
    "drums": "Drums",
    "bass": "Bass",
    "chords": "Chords",
    "melody": "Melody",
    "fm": "FM Synth",
    "am": "AM Synth",
    "membrane": "Membrane Synth",
    "piano": "Piano",
    "synth": "Lead Synth",
    "pluck": "Pluck"
  },
  "tetraShapes": {
    "line": "Line",
    "jShape": "J Shape",
    "lShape": "L Shape",
    "square": "Square",
    "sShape": "S Shape",
    "tShape": "T Shape",
    "zShape": "Z Shape"
  },
  "app": {
    "updateAvailable": "Update Available!",
    "updateDesc": "A new version of Muesiq is ready. Reload to apply the update?",
    "reload": "Reload",
    "later": "Later",
    "sessionPaused": "Session Paused",
    "sessionDesc1": "Muesiq is currently active in another tab.",
    "sessionDesc2": "Would you like to play here instead?",
    "useHere": "Play Here",
    "pageNotFound": "Page Not Found",
    "goHome": "Go Home",
    "returnArcade": "Return to the Arcade"
  },
  "gameLogic": {
    "tetraDropStarting": "Tetra Drop starting! Get ready.",
    "gamePaused": "Game paused.",
    "gameResumed": "Game resumed.",
    "boardEmpty": "Board is empty.",
    "blocksReachRow": "Blocks reach row {{row}}.",
    "pieceSpawned": "Spawned {{piece}} at column {{column}}. {{summary}} Next piece is {{nextPiece}}.",
    "column": "Column {{column}}",
    "blocked": "Blocked",
    "row": "Row {{row}}",
    "rotated": "Rotated",
    "rotatedLeft": "Rotated and pushed left",
    "rotatedRight": "Rotated and pushed right",
    "rotatedLeftTwice": "Rotated and pushed left twice",
    "rotatedRightTwice": "Rotated and pushed right twice",
    "rotationBlocked": "Rotation blocked",
    "swappedPiece": "Swapped {{piece}} for {{nextPiece}}",
    "droppedToRow": "Dropped to row {{row}}",
    "linesCleared": "Cleared {{count}} lines!",
    "lineCleared": "Cleared 1 line!",
    "gameOverScore": "Game Over! You scored {{score}} on {{difficulty}}.",
    "finishGameToChangeDiff": "Finish the current game to change difficulty.",
    "difficulty": "Difficulty set to {{difficulty}}.",
    "tetraBlastStarting": "Tetra Blast starting! Get ready.",
    "choosePieceAndPlace": "Choose a piece and place it on the board.",
    "selectedPiece": "Selected piece {{index}}.",
    "empty": "Empty",
    "filled": "Filled",
    "rowColumnStatus": "Row {{row}}, Column {{column}} is {{status}}.",
    "notYourTurn": "It's not your turn!",
    "cannotPlaceHere": "You cannot place that piece there.",
    "linesBlasted": "Blasted {{count}} lines!",
    "lineBlasted": "Blasted 1 line!",
    "gameOverNoMoves": "Game Over! No more moves possible. You scored {{score}} points.",
    "tenSecondsRemaining": "10 seconds remaining!",
    "speedGridStarting": "Speed Grid starting! Get ready.",
    "go": "Go!",
    "speedGridGameOver": "Game Over! You scored {{score}} points on {{difficulty}}.",
    "gameStarting": "Game starting! Get ready.",
    "computerPlaying": "Computer is playing.",
    "yourTurnPattern": "Your turn! Pattern: {{pattern}}",
    "gameOverLevel": "Game Over! You reached level {{level}} on {{difficulty}}.",
    "levelUpLife": "Level up! Gained a life. Now playing {{stage}}.",
    "youWinMistake": "You win! Your opponent made a mistake.",
    "matchFinishedTeam": "Match finished! Great team effort.",
    "youLoseMistake": "You lose! You made a mistake.",
    "matchStarting": "Match starting! Get ready.",
    "levelUp": "Level up! Now playing {{stage}}."
  },
  "home": {
    "title": "Muesiq Media",
    "subtitle": "Interactive music and cognitive games.",
    "arcade": "Arcade",
    "arcadeDesc": "Play musical memory, speed, and puzzle games.",
    "video": "Video",
    "videoDesc": "Coming soon."
  },
  "games": {
    "tetraBlast": "Tetra Blast",
    "tetraDrop": "Tetra Drop",
    "speedGrid": "Speed Grid",
    "echoBeats": "Echo Beats",
    "tetraBlastDesc": "Strategic Block Puzzle",
    "tetraDropDesc": "Falling Musical Blocks",
    "speedGridDesc": "Lightning Reflexes",
    "echoBeatsDesc": "Musical Memory"
  },
  "toasts": {
    "lobbyPaused": "Lobby paused for incoming invite."
  },
  "legal": {
    "about1": "<strong>Muesiq Media</strong> is a fun and interactive platform designed to challenge your cognitive skills through music and games.",
    "about2": "Created with <i class=\"ph-fill ph-heart\" aria-hidden=\"true\"></i> for music and code.",
    "terms1": "By using Muesiq Media, you agree to play fair, be respectful to others in multiplayer, and have fun. The platform is provided \"as is\" without any warranties.",
    "terms2": "This site is protected by reCAPTCHA and the Google <a href=\"https://policies.google.com/privacy\" target=\"_blank\" rel=\"noopener noreferrer\">Privacy Policy</a> and <a href=\"https://policies.google.com/terms\" target=\"_blank\" rel=\"noopener noreferrer\">Terms of Service</a> apply.",
    "terms3": "We reserve the right to update these terms at any time. Continued use of the platform constitutes acceptance of those changes.",
    "privacy1": "Your privacy is important to us. Muesiq stores your high scores and preferences locally on your device.",
    "privacy2": "To enable multiplayer matchmaking, we use Google Firebase, which assigns an anonymous ID and temporarily syncs your game state and alias. Firebase and reCAPTCHA may also process network information, such as your IP address, to secure the platform and prevent abuse. We also use anonymous error reporting tools to monitor stability and fix bugs, which do not collect any personal information.",
    "privacy3": "We do not require account creation, nor do we ask for personally identifiable information like your real name or email."
  }
}