/* Base — shared across all pages */
/* ===== CSS Variables ===== */
:root {
    --color-bg: #080C12;
    --color-bg-panel: #0F161D;
    --color-bg-log: #060A10;
    --color-text: #E8E0D5;
    --color-text-secondary: #6A7580;
    --color-text-dim: #6A7580;
    --color-border: #6A7580;
    --color-border-dim: #1A212A;
    --color-warning: #CC4444;
    --color-warning-dim: #882222;
    --color-accent: #D4A840;
    --color-positive: #D4A840;
    --color-buff: #8FA3B0;
    --color-debuff: #CC4444;
    --color-neutral: #6A7580;
    --glow-primary: none;
    --glow-secondary: none;
    --glow-warning: none;
    --transition-fast: 0.1s;
    --transition-normal: 0.2s;

    /* New semantic names */
    --void: #080C12;
    --hull: #0F161D;
    --bulkhead: #1A212A;
    --iron: #C4674A;
    --titanium: #8FA3B0;
    --endium: #A078C8;
    --credit: #D4A840;
    --alert: #CC4444;
    --text-primary: #E8E0D5;
    --text-dim: #6A7580;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: 'IBM Plex Mono', 'Courier New', monospace;
    background-color: var(--color-bg);
    color: var(--color-text);
    min-height: 100vh;
    overflow-x: hidden;
    line-height: 1.6;
}

/* ===== Background Canvas ===== */
#bg-canvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
}

#app { position: relative; z-index: 1; min-height: 100vh; padding: 20px; }

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* ===== Buttons ===== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Unbounded', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 14px 28px;
    min-height: 44px;
    background: transparent;
    border: 1px solid var(--color-border-dim);
    color: var(--color-text);
    cursor: pointer;
}

.btn:hover {
    border-color: var(--color-text);
    background-color: rgba(232,224,213,0.05);
}

.btn:active { transform: scale(0.98); }

.btn:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.btn-large {
    font-size: 0.9rem;
    padding: 18px 40px;
    width: 100%;
    max-width: 400px;
    display: flex;
    margin: 40px auto;
}

.btn-warning {
    border-color: var(--color-warning);
    color: var(--color-warning);
}

.btn-warning:hover { background-color: rgba(204,68,68,0.05); }

.btn-disabled {
    border-color: var(--color-text-dim);
    color: var(--color-text-dim);
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

.btn-small {
    font-size: 0.75rem;
    padding: 6px 14px;
    min-height: 32px;
}

.btn-accent {
    border-color: var(--color-accent);
    color: var(--color-accent);
}

.btn-accent:hover { background-color: rgba(212,168,64,0.05); }

@media (prefers-reduced-motion: no-preference) {
    .btn {
        transition: border-color var(--transition-normal) ease,
                    background-color var(--transition-normal) ease,
                    transform var(--transition-fast) ease;
    }
}
