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>
118 lines
2.9 KiB
CSS
118 lines
2.9 KiB
CSS
/* ---------------------------------------------------------------------------
|
|
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;
|
|
}
|
|
}
|