/* ==========================================================================
   Star Catcher — Global Design System & Foundations
   Browser-loadable companion to palette.scss.

   palette.scss remains the single source of truth for SCSS variables;
   this file mirrors those tokens as plain CSS so the design system is
   globally accessible to the browser (which cannot parse .scss natively)
   and so the base reset / typography / background sits in one place.

   Source palette: https://coolors.co/0b0e14-1a1f2c-8a2be2-ffbf24-f1f5f9

   NOTE on font loading: the Google Font Orbitron family (weights 400,
   600, 700, 900) is loaded ONCE via a single <link rel="stylesheet">
   in the HTML <head> (linked BEFORE this stylesheet so cascade +
   font-fetch are both unblocked in parallel). We deliberately do NOT
   @import the font here — a CSS @import inside a linked stylesheet is
   render-blocking and would cause a second sequential fetch after
   palette.css itself has been downloaded and parsed, slowing first
   paint.
   ========================================================================== */

/* -----------------------------------------------------------------------
   1. Design Tokens — Native CSS Custom Properties (Global Root Scope)
   -----------------------------------------------------------------------
   These mirror the SCSS palette variables in palette.scss so any rule in
   the application can reference `var(--ink-black)` etc. without any
   build step. New colours added in palette.scss should be added here too.
   ----------------------------------------------------------------------- */
:root {
    --ink-black: #0b0e14;       /* Deep Space Background */
    --shadow-grey: #1a1f2c;     /* Cards, Surfaces & Panels */
    --blue-violet: #8a2be2;     /* Primary Accent & Glows */
    --amber-gold: #ffbf24;      /* Secondary Accent & Highlights */
    --platinum: #f1f5f9;        /* Primary Text & Icons */
}

/* -----------------------------------------------------------------------
   2. Global Reset — prevents layout distortion across the application
   -----------------------------------------------------------------------
   Applied to EVERY element via the universal selector so component
   styles never accidentally inherit margin/padding/border-box from a
   parent rule and shift the layout. The html element is included
   explicitly so the document's root box also obeys box-sizing.
   ----------------------------------------------------------------------- */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* -----------------------------------------------------------------------
   3. Typography — Orbitron as the default for the entire application
   -----------------------------------------------------------------------
   Applied to html, body, every heading element (h1..h6), every <button>,
   and any future `.ui-container` wrapper so the sci-fi Orbitron face
   is the consistent base type across the entire application. Component-
   level selectors can still opt into a different font with their own
   explicit `font-family` rule.

   `font-weight: 400` is the regular default; headings are upgraded to
   700 with a 1px letter-spacing below so titles read as crisp sci-fi
   stamps without overflowing their containers.
   ----------------------------------------------------------------------- */
html,
body,
h1, h2, h3, h4, h5, h6,
button,
.ui-container {
    font-family: 'Orbitron', sans-serif;
    font-weight: 400;            /* regular weight for body / regular text */
}

/* Headings: bolder weight + Orbitron's signature futuristic letter-
   spacing. 1px is the safe middle-ground between sci-fi (1-2px) and
   preserving the existing button / card width budgets. Component
   classes may override per-element (e.g. `.account-card__title`
   bumps to 2px, `.hud-button--pause` keeps its 900 black). */
h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
    letter-spacing: 1px;
}

/* -----------------------------------------------------------------------
   4. Base Viewport — default background & typography colour
   -----------------------------------------------------------------------
   The body's background is the deep-space ink-black so the canvas sits
   inside a matching theme, and the default text colour is platinum so
   unstyled text inherits a high-contrast readable tone.
   ----------------------------------------------------------------------- */
body {
    background-color: var(--ink-black);  /* #0b0e14 */
    color: var(--platinum);              /* #f1f5f9 */
    min-height: 100vh;
}
