@import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

html,
body,
#app {
    width: 100%;
    height: 100%;
}

* {
    box-sizing: border-box;
}

:root {
    --font-family-base: 'Manrope', 'Segoe UI', sans-serif;
    --font-family-display: 'Chakra Petch', 'Segoe UI', sans-serif;

    --font-size-100: 12px;
    --font-size-200: 13px;
    --font-size-300: 14px;
    --font-size-400: 16px;
    --font-size-500: 18px;
    --font-size-600: 22px;
    --font-size-700: 28px;
    --font-size-800: 34px;

    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;

    --line-height-tight: 1.2;
    --line-height-normal: 1.4;
    --line-height-relaxed: 1.55;
    --letter-spacing-caps: 0.08em;
    --letter-spacing-wide: 0.14em;

    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;

    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-pill: 999px;

    /* Night-arena graphite surfaces */
    --color-surface-0: #070a0d;
    --color-surface-1: #0c1115;
    --color-surface-2: #11181d;
    --color-surface-3: #172025;
    --color-surface-4: #1e2a31;
    --color-overlay-scrim: rgba(4, 7, 9, 0.74);

    --color-border-subtle: #1e2a30;
    --color-border-default: #2b3d45;
    --color-border-strong: #3f5963;
    --color-focus-ring: rgba(75, 223, 143, 0.4);

    --color-text-strong: #f1f7f4;
    --color-text-soft: #cbd8d3;
    --color-text-muted: #8ba0a8;
    --color-text-disabled: #5c7078;

    /* Felt-green primary accent */
    --color-accent-green-300: #83ecb6;
    --color-accent-green-400: #4bdf8f;
    --color-accent-green-500: #2fc477;
    --color-accent-green-600: #229a5f;

    /* Champagne-gold secondary accent (rank, trophies, premium) */
    --color-accent-gold-300: #ffe1a0;
    --color-accent-gold-400: #f2c964;
    --color-accent-gold-500: #dcb147;
    --color-accent-gold-600: #b78f32;

    /* Live broadcast red */
    --color-live: #ff5c5c;
    --color-live-soft-bg: rgba(255, 92, 92, 0.13);
    --color-live-soft-border: rgba(255, 92, 92, 0.42);

    /* Legacy aliases kept so older references resolve onto the new palette */
    --color-accent-blue-300: var(--color-accent-green-300);
    --color-accent-blue-400: var(--color-accent-green-400);
    --color-accent-blue-500: var(--color-accent-green-500);
    --color-accent-blue-600: var(--color-accent-green-600);
    --color-accent-yellow-400: var(--color-accent-gold-400);
    --color-accent-yellow-500: var(--color-accent-gold-500);

    --color-success: #4bdf8f;
    --color-warning: #f2c964;
    --color-danger: #ff6b74;
    --color-info: #63b3ff;
    --color-inactive-bg: #1a2329;
    --color-inactive-fg: #7b8f97;

    --color-success-soft-bg: rgba(75, 223, 143, 0.13);
    --color-success-soft-border: rgba(75, 223, 143, 0.38);
    --color-danger-soft-bg: rgba(255, 107, 116, 0.13);
    --color-danger-soft-border: rgba(255, 107, 116, 0.38);
    --color-warning-soft-bg: rgba(242, 201, 100, 0.15);
    --color-warning-soft-border: rgba(242, 201, 100, 0.42);
    --color-gold-soft-bg: rgba(242, 201, 100, 0.12);
    --color-gold-soft-border: rgba(242, 201, 100, 0.4);

    --shadow-1: 0 4px 12px rgba(0, 0, 0, 0.24);
    --shadow-2: 0 10px 28px rgba(0, 0, 0, 0.34);
    --shadow-3: 0 18px 44px rgba(0, 0, 0, 0.46);

    --duration-fast: 120ms;
    --duration-normal: 180ms;
    --duration-slow: 280ms;
    --ease-standard: cubic-bezier(0.2, 0, 0, 1);
    --ease-emphasized: cubic-bezier(0.2, 0.8, 0.2, 1);

    --portal-max-width: 1600px;
    --nav-rail-width: 160px;
    --right-rail-width: 320px;
    --panel-padding: var(--space-4);
    --row-height: 44px;
    --control-height: 36px;
    --density-scale: 1;
}

.density-compact {
    --density-scale: 0.9;
}

body {
    margin: 0;
    font-family: var(--font-family-base);
    background:
        radial-gradient(1300px 560px at 50% -14%, rgba(75, 223, 143, 0.13), rgba(75, 223, 143, 0) 62%),
        radial-gradient(1000px 620px at 92% 116%, rgba(220, 177, 71, 0.09), rgba(220, 177, 71, 0) 64%),
        radial-gradient(800px 500px at -8% 108%, rgba(75, 223, 143, 0.06), rgba(75, 223, 143, 0) 60%),
        linear-gradient(178deg, var(--color-surface-1) 0%, var(--color-surface-0) 76%);
    color: var(--color-text-soft);
}

#app {
    position: relative;
    overflow: hidden;
}

#appInner {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}

.hud-mount {
    position: absolute;
    inset: 0;
    z-index: 6;
    pointer-events: none;
}

#app-canvas {
    width: 100%;
    height: 100%;
    display: block;
}

#appInner.is-hidden {
    display: none;
}

#lobby {
    position: absolute;
    inset: 0;
    z-index: 5;
    overflow: auto;
    background: var(--color-overlay-scrim);
    backdrop-filter: blur(10px);
}

#lobby.is-hidden {
    display: none;
}

#lobbyMount {
    min-height: 100%;
}
