/* Base page */
body {
    margin: 0;
    padding: 0;
    background: radial-gradient(circle at top, #0f1018 0, #050509 55%, #020206 100%);
    color: #e8e8f2; /* refined premium tone */
    font-family: "Inter", sans-serif;
    overflow-x: hidden;
}

/* Particle canvas */
#uv-particles {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    z-index: -2;
}

/* Cursor glow */
#uv-glow {
    position: fixed;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(
        circle,
        rgba(255, 180, 120, 0.35) 0%,
        rgba(255, 180, 120, 0.15) 40%,
        rgba(255, 180, 120, 0) 70%
    );
    pointer-events: none;
    transform: translate(-50%, -50%);
    z-index: -1;
}

/* Glow intensifies when a section is centered */
.section-active #uv-glow {
    background: radial-gradient(
        circle,
        rgba(255, 180, 120, 0.45) 0%,
        rgba(255, 180, 120, 0.20) 40%,
        rgba(255, 180, 120, 0) 70%
    );
}

/* Section layout */
section {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 160px 20px; /* enhanced vertical rhythm */
    max-width: 800px;
    margin: 0 auto;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

section.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Typography — Headings use Inter Tight */
.uv-hero h1,
.uv-capabilities h2,
.uv-closing .closing-line {
    font-family: "Inter Tight", sans-serif;
    font-weight: 500;
}

/* Hero title */
.uv-hero h1 {
    font-size: 4rem;
    letter-spacing: 0.08em;
    margin-bottom: 20px;
    font-weight: 600;
}

/* Hero subtitle */
.uv-hero .sub {
    font-size: 1.4rem;
    line-height: 1.6;
    opacity: 0.8;
    font-weight: 300;
}

/* Capabilities heading */
.uv-capabilities h2 {
    margin-bottom: 30px;
    font-size: 2rem;
    opacity: 0.9;
    font-weight: 500;         /* refined */
    letter-spacing: 0.04em;   /* refined */
}

/* Closing line */
.uv-closing .closing-line {
    font-size: 1.6rem;
    line-height: 1.6;
    opacity: 0.9;
}

/* Body text refinement */
section p {
    font-weight: 300;
    opacity: 0.85;
}

/* Atmospheric vignette */
body::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(circle at center, transparent 60%, rgba(0,0,0,0.35));
    z-index: -1;
}