:root {
    --bg: #120a0f;
    --bg-soft: #1a0b1f;
    --surface: #4a0e1f;
    --text: #f7ecf0;
    --muted: #d3b0bc;
    --accent-gold: #c8a24a;
    --accent-rose: #d98ca3;
    --line: rgba(217, 140, 163, 0.28);
    --line-strong: rgba(200, 162, 74, 0.52);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: 'Manrope', sans-serif;
    background:
        radial-gradient(circle at 14% 8%, rgba(217, 140, 163, 0.2), transparent 44%),
        radial-gradient(circle at 88% 88%, rgba(200, 162, 74, 0.14), transparent 40%),
        linear-gradient(160deg, #120a0f 0%, #1a0b1f 46%, #120a0f 100%);
    color: var(--text);
    min-height: 100vh;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: 'Newsreader', serif;
    letter-spacing: 0.01em;
}

a {
    color: var(--accent-rose);
}

a:hover,
a:focus {
    color: var(--accent-gold);
}

.site-main {
    position: relative;
}

.py-lg-6 {
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.py-lg-7 {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.letter-space {
    letter-spacing: 0.14em;
}

.lh-tight {
    line-height: 1.05;
}

.tracking-wide {
    letter-spacing: 0.06em;
}

.app-navbar {
    background: rgba(18, 10, 15, 0.82);
    backdrop-filter: blur(8px);
}

.navbar-brand {
    font-family: 'Newsreader', serif;
    font-size: 1.1rem;
}

.nav-link {
    color: rgba(247, 236, 240, 0.76);
    border-bottom: 1px solid transparent;
    transition: color 220ms ease, border-color 220ms ease;
}

.nav-link:hover,
.nav-link:focus,
.nav-link.active {
    color: var(--accent-gold);
    border-color: var(--line-strong);
}

.lang-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    height: 2rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: rgba(247, 236, 240, 0.84);
    text-decoration: none;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    transition: border-color 220ms ease, color 220ms ease, background-color 220ms ease;
}

.lang-pill:hover,
.lang-pill:focus,
.lang-pill.active {
    border-color: var(--line-strong);
    color: var(--accent-gold);
    background-color: rgba(217, 140, 163, 0.12);
}

.hero-section {
    border-bottom: 1px solid var(--line);
}

.display-lg-2 {
    font-size: clamp(2.6rem, 6vw, 4.6rem);
}

.text-secondary {
    color: var(--muted) !important;
}

.minimal-card {
    background: linear-gradient(180deg, rgba(74, 14, 31, 0.62), rgba(26, 11, 31, 0.44));
    border: 1px solid var(--line);
    border-radius: 0.75rem;
    padding: 1.3rem;
    transition: border-color 220ms ease, transform 220ms ease;
}

.minimal-card:hover {
    border-color: var(--line-strong);
    box-shadow: 0 14px 32px rgba(18, 10, 15, 0.34);
    transform: translateY(-2px);
}

.btn-minimal {
    color: var(--accent-gold);
    border: 1px solid var(--line);
    background: transparent;
}

.btn-minimal:hover,
.btn-minimal:focus {
    color: #1a0b1f;
    border-color: var(--line-strong);
    background: var(--accent-gold);
}

.btn-outline-light {
    color: var(--accent-rose);
    border-color: rgba(217, 140, 163, 0.6);
}

.btn-outline-light:hover,
.btn-outline-light:focus {
    color: #1a0b1f;
    border-color: var(--accent-rose);
    background-color: var(--accent-rose);
}

.kpi-sparkline {
    width: 130px;
    height: 34px;
}

.kpi-sparkline polyline {
    fill: none;
    stroke: var(--accent-gold);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.kpi-sparkline circle {
    fill: var(--accent-rose);
    stroke: var(--accent-gold);
    stroke-width: 1;
}

.reveal {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 520ms ease, transform 520ms ease;
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 991.98px) {
    .py-lg-6,
    .py-lg-7 {
        padding-top: 3.25rem;
        padding-bottom: 3.25rem;
    }

    .minimal-card {
        padding: 1.1rem;
    }
}
