Part 1 final build: Los Santos RP written on camera by the agent
rp_core (sessions, scrypt auth, self-written MySQL-wire driver rp_db), county-records NUI: residency-file auth, identity-record character intake, survey-grid spawn, procedural night-city loading screen. Secrets replaced with .example files. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
/* ---------------------------------------------------------------------------
|
||||
Los Santos RP - design tokens.
|
||||
|
||||
The interface is styled as a municipal record being opened on you: strict
|
||||
grid, hairline rules, monospaced serials, and one accent taken from the only
|
||||
light source the city has at night - sodium street lamps.
|
||||
Shared verbatim by rp_loading and rp_ui so the four screens read as one
|
||||
product.
|
||||
--------------------------------------------------------------------------- */
|
||||
|
||||
@font-face {
|
||||
font-family: 'Archivo';
|
||||
src: url('fonts/archivo.woff2') format('woff2-variations');
|
||||
font-weight: 100 900;
|
||||
font-display: block;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Plex Mono';
|
||||
src: url('fonts/plex-400.woff2') format('woff2');
|
||||
font-weight: 400;
|
||||
font-display: block;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Plex Mono';
|
||||
src: url('fonts/plex-500.woff2') format('woff2');
|
||||
font-weight: 500;
|
||||
font-display: block;
|
||||
}
|
||||
|
||||
:root {
|
||||
/* asphalt at night - cold, never pure black */
|
||||
--ink-900: #08090b;
|
||||
--ink-800: #0d0f13;
|
||||
--ink-700: #14171d;
|
||||
--ink-600: #1d212a;
|
||||
--ink-500: #272c37;
|
||||
|
||||
/* document stock */
|
||||
--paper: #e8e4dc;
|
||||
--paper-dim: #a9a69f;
|
||||
--muted: #6e747f;
|
||||
|
||||
/* the accent: sodium vapour, the colour of the city from the air */
|
||||
--sodium: #ff9f45;
|
||||
--sodium-soft: rgba(255, 159, 69, 0.14);
|
||||
--sodium-line: rgba(255, 159, 69, 0.42);
|
||||
--sodium-deep: #c4711f;
|
||||
|
||||
/* semantic only, never decorative */
|
||||
--stamp: #c4462f;
|
||||
--good: #7f9f5a;
|
||||
|
||||
--line: rgba(232, 228, 220, 0.13);
|
||||
--line-soft: rgba(232, 228, 220, 0.07);
|
||||
|
||||
--rail: clamp(400px, 31vw, 520px);
|
||||
|
||||
--gut-x: clamp(32px, 3.4vw, 56px);
|
||||
--gut-y: clamp(28px, 3vw, 48px);
|
||||
|
||||
--ease: cubic-bezier(0.22, 0.61, 0.36, 1);
|
||||
--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
||||
}
|
||||
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
|
||||
html, body {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
background: var(--ink-900);
|
||||
color: var(--paper);
|
||||
font-family: 'Archivo', system-ui, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
line-height: 1.55;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
}
|
||||
|
||||
/* Typographic roles --------------------------------------------------------- */
|
||||
|
||||
.eyebrow {
|
||||
font-family: 'Plex Mono', monospace;
|
||||
font-size: 10.5px;
|
||||
font-weight: 500;
|
||||
letter-spacing: 0.2em;
|
||||
text-transform: uppercase;
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
.data {
|
||||
font-family: 'Plex Mono', monospace;
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.04em;
|
||||
color: var(--paper-dim);
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
.rule {
|
||||
height: 1px;
|
||||
background: var(--line);
|
||||
border: 0;
|
||||
}
|
||||
|
||||
/* Focus is always visible and always the accent. */
|
||||
:focus-visible {
|
||||
outline: 2px solid var(--sodium);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
*, *::before, *::after {
|
||||
animation-duration: 0.001ms !important;
|
||||
animation-iteration-count: 1 !important;
|
||||
transition-duration: 0.001ms !important;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user