From 649574ec11fb269ea3967f60ac53ed89b81511ed Mon Sep 17 00:00:00 2001 From: st5 Date: Sat, 4 Apr 2026 11:32:43 -0500 Subject: [PATCH] first --- .gitignore | 31 + index.js | 104 ++++ package-lock.json | 317 +++++++++++ package.json | 17 + public/app.js | 562 +++++++++++++++++++ public/fonts/CozetteCrossedSevenVector.woff2 | Bin 0 -> 124556 bytes public/fonts/creep2.ttf | Bin 0 -> 13128 bytes public/index.html | 129 +++++ public/stats.html | 48 ++ public/stats.js | 58 ++ public/styles.css | 473 ++++++++++++++++ 11 files changed, 1739 insertions(+) create mode 100644 .gitignore create mode 100644 index.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/app.js create mode 100644 public/fonts/CozetteCrossedSevenVector.woff2 create mode 100644 public/fonts/creep2.ttf create mode 100644 public/index.html create mode 100644 public/stats.html create mode 100644 public/stats.js create mode 100644 public/styles.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e6e2fcd --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +*.log + +# environment files +.env +.env.* +!.env.example + +# OS/editor files +.DS_Store +Thumbs.db +.vscode/ +.idea/ + +# runtime/cache +*.pid +*.seed +*.pid.lock +.cache/ + +# coverage/build artifacts +coverage/ +dist/ +build/ diff --git a/index.js b/index.js new file mode 100644 index 0000000..c5b2fba --- /dev/null +++ b/index.js @@ -0,0 +1,104 @@ +const http = require("http"); +const fs = require("fs"); +const path = require("path"); +const { createLogger, format, transports } = require("winston"); +const { consoleFormat } = require("winston-console-format"); +const util = require("util"); + +const logger = createLogger({ + level: "silly", + format: format.combine( + format.timestamp(), + format.ms(), + format.errors({ stack: true }), + format.splat(), + format.json() + ), + defaultMeta: { service: "Test" }, + transports: [ + new transports.Console({ + format: format.combine( + format.colorize({ all: true }), + format.padLevels(), + consoleFormat({ + showMeta: true, + metaStrip: ["timestamp", "service"], + inspectOptions: { + depth: Infinity, + colors: true, + maxArrayLength: Infinity, + breakLength: 120, + compact: Infinity, + }, + }) + ), + }), + ], +}); + +const PORT = process.env.PORT || 3000; +const PUBLIC_DIR = path.join(__dirname, "public"); + +const MIME_TYPES = { + ".html": "text/html; charset=UTF-8", + ".css": "text/css; charset=UTF-8", + ".js": "application/javascript; charset=UTF-8", + ".json": "application/json; charset=UTF-8", + ".svg": "image/svg+xml", + ".woff": "font/woff", + ".woff2": "font/woff2", + ".ttf": "font/ttf", + ".png": "image/png", + ".jpg": "image/jpeg", + ".jpeg": "image/jpeg", + ".ico": "image/x-icon" +}; + +function resolveFilePath(urlPath) { + if (!urlPath || urlPath === "/") { + return path.join(PUBLIC_DIR, "index.html"); + } + + const safePath = path.normalize(urlPath).replace(/^(\.\.([/\\]|$))+/, ""); + return path.join(PUBLIC_DIR, safePath); +} + +function sendFile(filePath, res) { + fs.readFile(filePath, (err, data) => { + if (err) { + if (err.code === "ENOENT") { + res.writeHead(404, { "Content-Type": "text/plain; charset=UTF-8" }); + res.end("404 Not Found"); + return; + } + + res.writeHead(500, { "Content-Type": "text/plain; charset=UTF-8" }); + res.end("500 Internal Server Error"); + return; + } + + const ext = path.extname(filePath).toLowerCase(); + const contentType = MIME_TYPES[ext] || "application/octet-stream"; + + res.writeHead(200, { "Content-Type": contentType }); + res.end(data); + }); +} + +const server = http.createServer((req, res) => { + const reqPath = (req.url || "/").split("?")[0]; + const filePath = resolveFilePath(reqPath); + + fs.stat(filePath, (err, stat) => { + if (!err && stat.isDirectory()) { + sendFile(path.join(filePath, "index.html"), res); + return; + } + + sendFile(filePath, res); + }); +}); + +server.listen(PORT, () => { + logger.info(`web running at http://localhost:${PORT}`); +}); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..cb74652 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,317 @@ +{ + "name": "typeup", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "typeup", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "winston": "^3.19.0", + "winston-console-format": "^1.0.8" + } + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.8.tgz", + "integrity": "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==", + "license": "MIT", + "dependencies": { + "@so-ric/colorspace": "^1.1.6", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@so-ric/colorspace": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@so-ric/colorspace/-/colorspace-1.1.6.tgz", + "integrity": "sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==", + "license": "MIT", + "dependencies": { + "color": "^5.0.2", + "text-hex": "1.0.x" + } + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "license": "MIT" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/color": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/color/-/color-5.0.3.tgz", + "integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==", + "license": "MIT", + "dependencies": { + "color-convert": "^3.1.3", + "color-string": "^2.1.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/color-convert": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.3.tgz", + "integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==", + "license": "MIT", + "dependencies": { + "color-name": "^2.0.0" + }, + "engines": { + "node": ">=14.6" + } + }, + "node_modules/color-name": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz", + "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/color-string": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.4.tgz", + "integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==", + "license": "MIT", + "dependencies": { + "color-name": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "license": "MIT" + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "license": "MIT" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "license": "MIT" + }, + "node_modules/logform": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", + "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "license": "MIT" + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/winston": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.19.0.tgz", + "integrity": "sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.8", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.7.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.9.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-console-format": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/winston-console-format/-/winston-console-format-1.0.8.tgz", + "integrity": "sha512-dq7t/E0D0QRi4XIOwu6HM1+5e//WPqylH88GVjKEhQVrzGFg34MCz+G7pMJcXFBen9C0kBsu5GYgbYsE2LDwKw==", + "license": "MIT", + "dependencies": { + "colors": "^1.4.0", + "logform": "^2.2.0", + "triple-beam": "^1.3.0" + } + }, + "node_modules/winston-transport": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", + "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", + "license": "MIT", + "dependencies": { + "logform": "^2.7.0", + "readable-stream": "^3.6.2", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8eb6527 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "typeup", + "version": "1.0.0", + "description": "hackathon", + "license": "ISC", + "author": "st5lish", + "type": "commonjs", + "main": "index.js", + "scripts": { + "start": "node index.js", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "dependencies": { + "winston": "^3.19.0", + "winston-console-format": "^1.0.8" + } +} diff --git a/public/app.js b/public/app.js new file mode 100644 index 0000000..bbb64de --- /dev/null +++ b/public/app.js @@ -0,0 +1,562 @@ +const STORAGE_KEY = "levelup-typing-save-v1"; + +const WORD_BANKS = { + easy: [ + "apple", "river", "light", "happy", "quick", "smile", "cloud", "dream", "friend", "learn", + "typing", "music", "garden", "planet", "window", "ticket", "puzzle", "silver", "orange", "pepper" + ], + normal: [ + "speed", "skill", "sprint", "rhythm", "tempo", "focus", "kinetic", "logic", "phrase", "arcade", + "streak", "vector", "groove", "momentum", "signal", "catalyst", "syntax", "drift", "horizon", "quantum" + ], + hard: [ + "architect", "backspace", "fragment", "notation", "velocity", "parallel", "hexadecimal", "interface", "algorithm", "synchronize", + "compilation", "resolution", "parameter", "validation", "hyperlink", "generator", "trajectory", "oscillation", "framework", "benchmark" + ], + expert: [ + "extraordinary", "counterclockwise", "asymptotically", "deconstruction", "characteristically", "electromagnetic", "microarchitecture", "misconfiguration", "representational", "interoperability", + "cryptographically", "institutionalize", "uncharacteristic", "transcontinental", "hyperparameter", "instrumentation", "multiprocessing", "disproportionate", "comprehensibility", "photosynthesis" + ] +}; + +const DIFFICULTY = { + easy: { label: "easy", xpMult: 0.9, roundWords: 38 }, + normal: { label: "normal", xpMult: 1, roundWords: 45 }, + hard: { label: "hard", xpMult: 1.25, roundWords: 50 }, + expert: { label: "expert", xpMult: 1.5, roundWords: 54 } +}; + +const PERKS = [ + { + id: "combo-boost", + name: "combo boost", + unlockLevel: 2, + cost: 1, + description: "Earn 15% more XP while your best combo is 5 or higher." + }, + { + id: "accuracy-bounty", + name: "accuracy bounty", + unlockLevel: 4, + cost: 2, + description: "If you finish with 96%+ accuracy, gain +30 bonus XP." + }, + { + id: "time-warp", + name: "time warp", + unlockLevel: 6, + cost: 2, + description: "Start rounds with +8 seconds for easier high-streak runs." + }, + { + id: "focus-engine", + name: "focus engine", + unlockLevel: 8, + cost: 3, + description: "At 98%+ accuracy, your WPM contributes an extra 25% XP." + } +]; + +const defaultState = { + profileName: "rookie typer", + difficulty: "normal", + words: [], + index: 0, + typedChars: 0, + correctWords: 0, + wrongWords: 0, + combo: 0, + bestCombo: 0, + timer: null, + elapsedSeconds: 0, + roundSeconds: 60, + running: false, + xp: 0, + level: 1, + shards: 0, + lastRoundXp: 0, + ownedPerks: [], + stats: { + totalRounds: 0, + bestWpm: 0, + bestAccuracy: 0, + averageWpm: 0, + averageAccuracy: 0 + }, + recentRounds: [] +}; + +const state = { ...defaultState }; + +const els = { + textDisplay: document.getElementById("textDisplay"), + typeInput: document.getElementById("typeInput"), + newRoundBtn: document.getElementById("newRoundBtn"), + settingsBtn: document.getElementById("settingsBtn"), + closeSettingsBtn: document.getElementById("closeSettingsBtn"), + settingsModal: document.getElementById("settingsModal"), + resetConfirmModal: document.getElementById("resetConfirmModal"), + cancelResetBtn: document.getElementById("cancelResetBtn"), + confirmResetBtn: document.getElementById("confirmResetBtn"), + playAgainBtn: document.getElementById("playAgainBtn"), + results: document.getElementById("results"), + resultsSummary: document.getElementById("resultsSummary"), + wpm: document.getElementById("wpm"), + accuracy: document.getElementById("accuracy"), + combo: document.getElementById("combo"), + time: document.getElementById("time"), + profileTitle: document.getElementById("profileTitle"), + levelText: document.getElementById("levelText"), + xpText: document.getElementById("xpText"), + shardText: document.getElementById("shardText"), + xpFill: document.getElementById("xpFill"), + xpGain: document.getElementById("xpGain"), + perks: document.getElementById("perks"), + profileName: document.getElementById("profileName"), + difficultySelect: document.getElementById("difficultySelect"), + difficultyBonus: document.getElementById("difficultyBonus"), + resetProgressBtn: document.getElementById("resetProgressBtn") +}; + +function xpNeededForLevel(level) { + return 120 + (level - 1) * 60; +} + +function sanitizeDifficulty(value) { + return DIFFICULTY[value] ? value : "normal"; +} + +function saveProgress() { + const payload = { + profileName: state.profileName, + difficulty: state.difficulty, + xp: state.xp, + level: state.level, + shards: state.shards, + lastRoundXp: state.lastRoundXp, + ownedPerks: state.ownedPerks, + stats: state.stats, + recentRounds: state.recentRounds + }; + + localStorage.setItem(STORAGE_KEY, JSON.stringify(payload)); +} + +function loadProgress() { + const raw = localStorage.getItem(STORAGE_KEY); + if (!raw) return; + + try { + const parsed = JSON.parse(raw); + state.profileName = typeof parsed.profileName === "string" && parsed.profileName.trim() + ? parsed.profileName.trim().slice(0, 24) + : defaultState.profileName; + state.difficulty = sanitizeDifficulty(parsed.difficulty); + state.xp = Number.isFinite(parsed.xp) ? Math.max(0, Math.floor(parsed.xp)) : 0; + state.level = Number.isFinite(parsed.level) ? Math.max(1, Math.floor(parsed.level)) : 1; + state.shards = Number.isFinite(parsed.shards) ? Math.max(0, Math.floor(parsed.shards)) : 0; + state.lastRoundXp = Number.isFinite(parsed.lastRoundXp) ? Math.max(0, Math.floor(parsed.lastRoundXp)) : 0; + state.ownedPerks = Array.isArray(parsed.ownedPerks) + ? parsed.ownedPerks.filter((id) => PERKS.some((perk) => perk.id === id)) + : []; + + const parsedStats = parsed.stats || {}; + state.stats = { + totalRounds: Number.isFinite(parsedStats.totalRounds) ? Math.max(0, Math.floor(parsedStats.totalRounds)) : 0, + bestWpm: Number.isFinite(parsedStats.bestWpm) ? Math.max(0, Math.floor(parsedStats.bestWpm)) : 0, + bestAccuracy: Number.isFinite(parsedStats.bestAccuracy) ? Math.max(0, Math.floor(parsedStats.bestAccuracy)) : 0, + averageWpm: Number.isFinite(parsedStats.averageWpm) ? Math.max(0, Number(parsedStats.averageWpm)) : 0, + averageAccuracy: Number.isFinite(parsedStats.averageAccuracy) ? Math.max(0, Number(parsedStats.averageAccuracy)) : 0 + }; + + state.recentRounds = Array.isArray(parsed.recentRounds) + ? parsed.recentRounds.slice(0, 20) + : []; + } catch (error) { + localStorage.removeItem(STORAGE_KEY); + } +} + +function trackRound(summary, earnedXp) { + state.stats.totalRounds += 1; + state.stats.bestWpm = Math.max(state.stats.bestWpm, summary.wpm); + state.stats.bestAccuracy = Math.max(state.stats.bestAccuracy, summary.accuracy); + + const rounds = state.stats.totalRounds; + state.stats.averageWpm = ((state.stats.averageWpm * (rounds - 1)) + summary.wpm) / rounds; + state.stats.averageAccuracy = ((state.stats.averageAccuracy * (rounds - 1)) + summary.accuracy) / rounds; + + const snapshot = { + stamp: Date.now(), + wpm: summary.wpm, + accuracy: summary.accuracy, + bestCombo: summary.bestCombo, + xp: earnedXp, + difficulty: state.difficulty + }; + + state.recentRounds.unshift(snapshot); + if (state.recentRounds.length > 20) { + state.recentRounds.length = 20; + } +} + +function openSettings() { + els.settingsModal.hidden = false; +} + +function closeSettings() { + els.settingsModal.hidden = true; +} + +function openResetConfirm() { + els.resetConfirmModal.hidden = false; +} + +function closeResetConfirm() { + els.resetConfirmModal.hidden = true; +} + +function pickWords() { + const config = DIFFICULTY[state.difficulty]; + const pool = WORD_BANKS[state.difficulty]; + const result = []; + + for (let i = 0; i < config.roundWords; i += 1) { + result.push(pool[Math.floor(Math.random() * pool.length)]); + } + + return result; +} + +function hasPerk(id) { + return state.ownedPerks.includes(id); +} + +function renderWords() { + els.textDisplay.innerHTML = ""; + state.words.forEach((word, idx) => { + const span = document.createElement("span"); + span.className = "word"; + if (idx === state.index) span.classList.add("current"); + span.textContent = `${word} `; + els.textDisplay.appendChild(span); + }); +} + +function renderPerks() { + els.perks.innerHTML = ""; + + PERKS.forEach((perk) => { + const levelReady = state.level >= perk.unlockLevel; + const owned = hasPerk(perk.id); + const canBuy = levelReady && !owned && state.shards >= perk.cost; + + const card = document.createElement("article"); + card.className = "perk"; + card.innerHTML = ` +

${perk.name} ยท Lv ${perk.unlockLevel}

+

${perk.description}

+
+ Cost: ${perk.cost} shard${perk.cost > 1 ? "s" : ""} + +
+ + ${owned ? "active" : levelReady ? "shop open" : "locked"} + + `; + + els.perks.appendChild(card); + }); +} + +function renderSettings() { + const config = DIFFICULTY[state.difficulty]; + els.profileName.value = state.profileName; + els.difficultySelect.value = state.difficulty; + els.difficultyBonus.textContent = `xp bonus: x${config.xpMult.toFixed(2)}`; +} + +function renderProgress() { + const levelNeed = xpNeededForLevel(state.level); + const ratio = Math.min((state.xp / levelNeed) * 100, 100); + + els.profileTitle.textContent = state.profileName; + els.levelText.textContent = `level ${state.level}`; + els.xpText.textContent = `${state.xp} / ${levelNeed} xp`; + els.shardText.textContent = `perk shards: ${state.shards}`; + els.xpFill.style.width = `${ratio}%`; + els.xpGain.textContent = `+${state.lastRoundXp} xp last round`; + + renderSettings(); + renderPerks(); +} + +function updateLiveStats() { + const elapsed = Math.max(state.elapsedSeconds / 60, 1 / 60); + const wordsTypedEstimate = state.typedChars / 5; + const wpm = Math.round(wordsTypedEstimate / elapsed); + const totalWords = state.correctWords + state.wrongWords; + const acc = totalWords === 0 ? 100 : Math.round((state.correctWords / totalWords) * 100); + + els.wpm.textContent = String(wpm); + els.accuracy.textContent = `${acc}%`; + els.combo.textContent = `x${state.combo}`; +} + +function updateTimer() { + const remaining = Math.max(state.roundSeconds - state.elapsedSeconds, 0); + els.time.textContent = `${remaining}s`; + els.time.style.color = remaining <= 10 ? "#ffd587" : ""; +} + +function startTimer() { + if (state.running) return; + + state.running = true; + state.timer = setInterval(() => { + state.elapsedSeconds += 1; + updateTimer(); + updateLiveStats(); + + if (state.elapsedSeconds >= state.roundSeconds) { + finishRound(); + } + }, 1000); +} + +function awardXp(summary) { + let xp = 35; + xp += Math.floor(summary.wpm * 1.4); + xp += Math.floor(summary.accuracy * 0.55); + xp += Math.floor(summary.bestCombo * 2.5); + + if (hasPerk("combo-boost") && summary.bestCombo >= 5) { + xp = Math.floor(xp * 1.15); + } + + if (hasPerk("accuracy-bounty") && summary.accuracy >= 96) { + xp += 30; + } + + if (hasPerk("focus-engine") && summary.accuracy >= 98) { + xp += Math.floor(summary.wpm * 0.25); + } + + xp = Math.floor(xp * DIFFICULTY[state.difficulty].xpMult); + + let pending = xp; + let levelUps = 0; + + while (pending > 0) { + const need = xpNeededForLevel(state.level) - state.xp; + if (pending >= need) { + pending -= need; + state.level += 1; + levelUps += 1; + state.xp = 0; + } else { + state.xp += pending; + pending = 0; + } + } + + state.shards += levelUps; + state.lastRoundXp = xp; + return xp; +} + +function markWordResult(correct) { + const wordNodes = els.textDisplay.querySelectorAll(".word"); + const node = wordNodes[state.index]; + if (!node) return; + + node.classList.remove("current"); + node.classList.add(correct ? "correct" : "incorrect"); +} + +function setCurrentWord() { + const wordNodes = els.textDisplay.querySelectorAll(".word"); + const current = wordNodes[state.index]; + if (current) { + current.classList.add("current"); + current.scrollIntoView({ block: "center", behavior: "smooth" }); + } +} + +function finishRound() { + clearInterval(state.timer); + state.running = false; + els.typeInput.disabled = true; + + const elapsedMinutes = Math.max(state.elapsedSeconds / 60, 1 / 60); + const wpm = Math.round((state.typedChars / 5) / elapsedMinutes); + const totalWords = state.correctWords + state.wrongWords; + const accuracy = totalWords === 0 ? 100 : Math.round((state.correctWords / totalWords) * 100); + + const summary = { + wpm, + accuracy, + bestCombo: state.bestCombo + }; + + const earnedXp = awardXp(summary); + trackRound(summary, earnedXp); + renderProgress(); + updateLiveStats(); + saveProgress(); + + els.results.hidden = false; + els.resultsSummary.textContent = `you reached ${wpm} wpm with ${accuracy}% accuracy and earned ${earnedXp} xp!`; +} + +function resetRound() { + clearInterval(state.timer); + state.words = pickWords(); + state.index = 0; + state.typedChars = 0; + state.correctWords = 0; + state.wrongWords = 0; + state.combo = 0; + state.bestCombo = 0; + state.elapsedSeconds = 0; + state.roundSeconds = hasPerk("time-warp") ? 68 : 60; + state.running = false; + + renderWords(); + updateLiveStats(); + updateTimer(); + + els.typeInput.disabled = false; + els.typeInput.value = ""; + els.typeInput.focus(); + els.results.hidden = true; +} + +function setProfileName(value) { + const clean = value.trim().slice(0, 24); + state.profileName = clean || defaultState.profileName; + renderProgress(); + saveProgress(); +} + +function setDifficulty(value) { + state.difficulty = sanitizeDifficulty(value); + renderProgress(); + resetRound(); + saveProgress(); +} + +function buyPerk(perkId) { + const perk = PERKS.find((item) => item.id === perkId); + if (!perk) return; + if (state.level < perk.unlockLevel) return; + if (hasPerk(perkId)) return; + if (state.shards < perk.cost) return; + + state.shards -= perk.cost; + state.ownedPerks.push(perk.id); + renderProgress(); + resetRound(); + saveProgress(); +} + +function resetProgress() { + localStorage.removeItem(STORAGE_KEY); + clearInterval(state.timer); + + Object.assign(state, { ...defaultState, ownedPerks: [], stats: { ...defaultState.stats }, recentRounds: [] }); + renderProgress(); + resetRound(); + saveProgress(); +} + +els.typeInput.addEventListener("input", () => { + const value = els.typeInput.value; + + if (!state.running && value.length > 0) { + startTimer(); + } + + if (!value.endsWith(" ")) return; + + const typedWord = value.trim(); + const targetWord = state.words[state.index]; + const correct = typedWord === targetWord; + + state.typedChars += typedWord.length + 1; + + if (correct) { + state.correctWords += 1; + state.combo += 1; + if (state.combo > state.bestCombo) { + state.bestCombo = state.combo; + } + } else { + state.wrongWords += 1; + state.combo = 0; + } + + markWordResult(correct); + state.index += 1; + els.typeInput.value = ""; + + if (state.index >= state.words.length) { + finishRound(); + return; + } + + setCurrentWord(); + updateLiveStats(); +}); + +els.newRoundBtn.addEventListener("click", resetRound); +els.playAgainBtn.addEventListener("click", resetRound); +els.settingsBtn.addEventListener("click", openSettings); +els.closeSettingsBtn.addEventListener("click", closeSettings); +els.profileName.addEventListener("change", (event) => setProfileName(event.target.value)); +els.difficultySelect.addEventListener("change", (event) => setDifficulty(event.target.value)); +els.resetProgressBtn.addEventListener("click", openResetConfirm); +els.cancelResetBtn.addEventListener("click", closeResetConfirm); +els.confirmResetBtn.addEventListener("click", () => { + resetProgress(); + closeResetConfirm(); + closeSettings(); +}); + +els.settingsModal.addEventListener("click", (event) => { + if (event.target === els.settingsModal) { + closeSettings(); + } +}); + +els.resetConfirmModal.addEventListener("click", (event) => { + if (event.target === els.resetConfirmModal) { + closeResetConfirm(); + } +}); + +document.addEventListener("keydown", (event) => { + if (event.key === "Escape" && !els.resetConfirmModal.hidden) { + closeResetConfirm(); + return; + } + + if (event.key === "Escape" && !els.settingsModal.hidden) { + closeSettings(); + } +}); + +els.perks.addEventListener("click", (event) => { + const target = event.target; + if (!(target instanceof HTMLButtonElement)) return; + const perkId = target.dataset.perkId; + if (!perkId) return; + buyPerk(perkId); +}); + +loadProgress(); +renderProgress(); +resetRound(); diff --git a/public/fonts/CozetteCrossedSevenVector.woff2 b/public/fonts/CozetteCrossedSevenVector.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..be8a80115ef79b660fcf64679dfdc8f9fbb259a8 GIT binary patch literal 124556 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 literal 0 HcmV?d00001 diff --git a/public/fonts/creep2.ttf b/public/fonts/creep2.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ec3d0f0e4ad6aa7c2fc2ad28b00adc4c215b7194 GIT binary patch literal 13128 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 + + + + + typeup + + + + + + + +

+
+
+
+ stats + + +
+
+ +
+
+

wpm

+ 0 +
+
+

accuracy

+ 100% +
+
+

combo

+ x0 +
+
+

time

+ 60s +
+
+ +
+ + + + +
+ + +
+ + + + + + + + diff --git a/public/stats.html b/public/stats.html new file mode 100644 index 0000000..9f2ebd6 --- /dev/null +++ b/public/stats.html @@ -0,0 +1,48 @@ + + + + + + + + +
+
+
+ back +
+
    +
    +
    +

    rounds played

    + 0 +
    +
    +

    top wpm

    + 0 +
    +
    +

    base accuracy

    + 0% +
    +
    +

    average wpm

    + 0 +
    +
    +

    average accuracy

    + 0% +
    +
    + +
    +

    recents

    +
      +
        +
        +
        +
        + + + + diff --git a/public/stats.js b/public/stats.js new file mode 100644 index 0000000..a46c510 --- /dev/null +++ b/public/stats.js @@ -0,0 +1,58 @@ +const STORAGE_KEY = "levelup-typing-save-v1"; + +function readSave() { + const raw = localStorage.getItem(STORAGE_KEY); + if (!raw) return null; + + try { + return JSON.parse(raw); + } catch (error) { + return null; + } +} + +function setText(id, value) { + const el = document.getElementById(id); + if (el) el.textContent = value; +} + +function renderHistory(recentRounds) { + const list = document.getElementById("historyList"); + if (!list) return; + + list.innerHTML = ""; + + if (!recentRounds || recentRounds.length === 0) { + const item = document.createElement("li"); + item.className = "history-item"; + item.textContent = "no rounds played yet... complete a run to see your history!"; + list.appendChild(item); + return; + } + + recentRounds.forEach((round) => { + const item = document.createElement("li"); + item.className = "history-item"; + + const date = new Date(round.stamp || Date.now()); + const when = `${date.toLocaleDateString()} ${date.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" })}`; + + item.textContent = `${when} | ${round.wpm || 0} wpm / ${round.accuracy || 0}% acc / combo ${round.bestCombo || 0} / +${round.xp || 0} xp / ${(round.difficulty || "normal").toLowerCase()}`; + list.appendChild(item); + }); +} + +function boot() { + const save = readSave() || {}; + const stats = save.stats || {}; + + setText("sTotalRounds", String(stats.totalRounds || 0)); + setText("sBestWpm", String(stats.bestWpm || 0)); + setText("sBestAcc", `${Math.round(stats.bestAccuracy || 0)}%`); + setText("sAvgWpm", String(Math.round(stats.averageWpm || 0))); + setText("sAvgAcc", `${Math.round(stats.averageAccuracy || 0)}%`); + + renderHistory(Array.isArray(save.recentRounds) ? save.recentRounds : []); +} + +boot(); diff --git a/public/styles.css b/public/styles.css new file mode 100644 index 0000000..e1cb8d6 --- /dev/null +++ b/public/styles.css @@ -0,0 +1,473 @@ +@font-face { + font-family: "CozetteCrossedSevenVector"; + src: url("fonts/CozetteCrossedSevenVector.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +:root { + --bg-1: #04070d; + --bg-2: #0a1021; + --card: rgba(8, 12, 22, 0.9); + --border: rgba(111, 151, 172, 0.28); + --accent: #8af6c9; + --accent-2: #f5cc80; + --text: #edf6ff; + --muted: #89a1b5; + --bad: #f18f8f; +} + +* { + box-sizing: border-box; + font-family: "CozetteCrossedSevenVector", monospace; + font-size: 13px; +} + +body { + margin: 0; + min-height: 100vh; + color: var(--text); + background: var(--bg-1); + overflow-x: hidden; + text-transform: lowercase; +} + +.orb { + position: fixed; + width: 320px; + height: 320px; + filter: blur(80px); + opacity: 0.25; + pointer-events: none; +} + +.orb-left { + top: -80px; + left: -60px; + background: #8fe8d0; +} + +.orb-right { + bottom: -120px; + right: -40px; + background: #ffcf70; +} + +.layout { + width: min(1140px, 94vw); + margin: 2.2rem auto; + display: grid; + grid-template-columns: 1.6fr 1fr; + gap: 1.2rem; +} + +.panel { + border: 1px solid var(--border); + background: var(--card); + backdrop-filter: blur(10px); + box-shadow: 0 16px 36px rgba(0, 0, 0, 0.45); +} + +.panel-main { + padding: 1.4rem; +} + +.panel-side { + padding: 1.2rem; +} + +.game-head { + display: flex; + justify-content: space-between; + align-items: center; + gap: 1rem; +} + +.head-actions { + display: flex; + gap: 0.5rem; +} + +.label { + color: var(--accent-2); + text-transform: lowercase; + letter-spacing: 0.14em; + font-size: 0.72rem; + margin: 0 0 0.2rem; +} + +h1, +h2 { + margin: 0; + font-family: "CozetteCrossedSevenVector", monospace; +} + +h1 { + font-size: clamp(1.35rem, 2vw, 2rem); +} + +h2 { + font-size: 1.16rem; +} + +.btn { + border: none; + padding: 0.58rem 1.1rem; + font-weight: 700; + font-family: inherit; + color: #052218; + background: var(--accent); + cursor: pointer; + transition: transform 170ms ease, filter 170ms ease; +} + +a.btn { + text-decoration: none; + display: inline-flex; + align-items: center; +} + +.btn-ghost { + color: var(--text); + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(194, 228, 210, 0.2); +} + +.btn-ghost:hover { + filter: brightness(1.12); +} + +.btn:hover { + transform: translateY(-2px); + filter: brightness(1.05); +} + +.stats-grid { + margin-top: 1.15rem; + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 0.7rem; +} + +.stat-card { + border: 1px solid rgba(148, 196, 231, 0.24); + padding: 0.66rem; + background: rgba(5, 10, 18, 0.6); +} + +.stat-card p { + margin: 0; + color: var(--muted); + font-size: 0.8rem; +} + +.stat-card strong { + font-size: 1.42rem; + display: inline-block; + margin-top: 0.18rem; +} + +.text-shell { + margin-top: 1rem; + min-height: 170px; + max-height: 250px; + overflow-y: auto; + border: 1px solid rgba(145, 175, 218, 0.25); + background: rgba(4, 8, 15, 0.72); + padding: 0.95rem; + line-height: 1.8; + font-size: clamp(1rem, 1.5vw, 1.2rem); +} + +.word { + padding-right: 0.45rem; + transition: color 100ms ease; +} + +.word.current { + color: #d6ff84; +} + +.word.correct { + color: #a8f7bf; +} + +.word.incorrect { + color: var(--bad); + text-decoration: underline; + text-decoration-thickness: 2px; +} + +.input-wrap { + margin-top: 0.95rem; + display: block; +} + +.input-wrap span { + display: block; + margin-bottom: 0.38rem; + color: var(--muted); + font-size: 0.84rem; +} + +#typeInput { + width: 100%; + border: 1px solid rgba(145, 205, 218, 0.32); + background: rgba(6, 14, 18, 0.86); + color: var(--text); + font-size: 1.04rem; + padding: 0.8rem 0.85rem; + outline: none; +} + +#typeInput:focus { + border-color: var(--accent); + box-shadow: 0 0 0 3px rgba(159, 255, 169, 0.18); +} + +.results { + margin-top: 1rem; + border: 1px solid rgba(158, 228, 164, 0.32); + padding: 0.9rem; + background: rgba(8, 16, 18, 0.62); + animation: rise 240ms ease; +} + +@keyframes rise { + from { + opacity: 0; + transform: translateY(5px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.level-line { + margin-top: 0.35rem; + display: flex; + justify-content: space-between; + color: var(--muted); + font-size: 0.88rem; +} + +.xp-bar { + margin-top: 0.5rem; + height: 12px; + width: 100%; + overflow: hidden; + background: rgba(255, 255, 255, 0.12); +} + +#xpFill { + height: 100%; + width: 0; + background: #87f5b0; + transition: width 320ms ease; +} + +.xp-gain { + color: #baf1ff; + font-size: 0.86rem; +} + +.settings-grid { + margin-top: 0.45rem; + display: grid; + gap: 0.45rem; +} + +.settings-grid label { + color: var(--muted); + font-size: 0.8rem; +} + +.settings-grid input, +.settings-grid select { + width: 100%; + border: 1px solid rgba(145, 205, 218, 0.32); + background: rgba(6, 14, 18, 0.86); + color: var(--text); + font-size: 0.92rem; + padding: 0.56rem 0.62rem; + outline: none; +} + +.settings-grid input:focus, +.settings-grid select:focus { + border-color: var(--accent); +} + +.setting-note { + margin: 0.2rem 0; + color: #b9f4ff; + font-size: 0.82rem; +} + +.perks { + margin-top: 0.7rem; + display: grid; + gap: 0.55rem; +} + +.perk { + border: 1px solid rgba(130, 160, 188, 0.24); + padding: 0.7rem; + background: rgba(8, 14, 24, 0.66); +} + +.perk h3 { + margin: 0; + font-size: 0.94rem; +} + +.perk p { + margin: 0.28rem 0 0; + color: var(--muted); + font-size: 0.82rem; +} + +.perk-actions { + margin-top: 0.6rem; + display: flex; + align-items: center; + justify-content: space-between; + gap: 0.5rem; +} + +.perk-cost { + color: #c8eecf; + font-size: 0.77rem; +} + +.perk-buy { + border: none; + padding: 0.28rem 0.74rem; + font-size: 0.75rem; + font-weight: 700; + font-family: inherit; + cursor: pointer; + background: #b6f8ba; + color: #193027; +} + +.perk-buy:disabled { + cursor: not-allowed; + opacity: 0.44; +} + +.perk .status { + margin-top: 0.44rem; + display: inline-block; + padding: 0.18rem 0.54rem; + font-size: 0.72rem; + letter-spacing: 0.03em; +} + +.status.locked { + background: rgba(255, 255, 255, 0.12); + color: #c0ccc6; +} + +.status.unlocked { + background: rgba(167, 255, 141, 0.18); + color: #b9ffad; +} + +.status.active { + background: rgba(255, 231, 118, 0.2); + color: #ffe58f; +} + +.modal { + position: fixed; + inset: 0; + background: rgba(2, 4, 10, 0.72); + display: grid; + place-items: center; + z-index: 20; + padding: 1rem; +} + +.modal-card { + width: min(520px, 100%); + border: 1px solid rgba(145, 175, 218, 0.25); + background: rgba(7, 11, 20, 0.98); + padding: 1rem; +} + +.modal-head { + display: flex; + justify-content: space-between; + align-items: center; + gap: 0.6rem; + margin-bottom: 0.5rem; +} + +.modal-actions { + margin-top: 0.7rem; + display: flex; + justify-content: flex-end; + gap: 0.5rem; +} + +[hidden] { + display: none !important; +} + +.stats-layout { + width: min(1040px, 94vw); + margin: 2rem auto; + display: grid; + gap: 1rem; +} + +.stats-header { + display: flex; + justify-content: space-between; + align-items: center; + gap: 0.8rem; +} + +.stats-grid-large { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 0.8rem; +} + +.history-list { + margin: 0; + padding: 0; + list-style: none; + display: grid; + gap: 0.5rem; +} + +.history-item { + border: 1px solid rgba(130, 160, 188, 0.24); + padding: 0.62rem; + background: rgba(8, 14, 24, 0.66); + font-size: 0.9rem; + color: var(--text); +} + +@media (max-width: 980px) { + .layout { + grid-template-columns: 1fr; + } + + .stats-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .stats-grid-large { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .head-actions { + flex-wrap: wrap; + justify-content: flex-end; + } +}