:root {
--bg:#0b0b0b;
--text:#fff;
--muted:#9a9a9a;
}

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

body {
font-family:'Inter',sans-serif;
background:var(--bg);
color:var(--text);
overflow-x:hidden;
}

html { scroll-behavior:smooth; }

/* PRELOADER */
#preloader {
position:fixed;
inset:0;
background:#000;
z-index:9999;
display:flex;
align-items:center;
justify-content:center;
transition:.8s;
}
#preloader.hide {
opacity:0;
visibility:hidden;
}
.loader-text {
letter-spacing:.4em;
font-size:.9rem;
}

/* HEADER */
.header {
position:fixed;
top:0;
left:0;
width:100%;
padding:28px 8vw;
display:flex;
justify-content:space-between;
align-items:center;
z-index:10;
transition:.4s;
}

.header.hide { opacity:.15; }

.logo {
font-size:.9rem;
letter-spacing:.25em;
font-weight:600;
}

.logo img {
height:42px;        /* оптимально для 400x200 */
width:auto;
display:block;
}

.nav {
display:flex;
align-items:center;
}

.nav a {
margin-left:36px;
padding:10px 6px;
font-size:.85rem;
letter-spacing:.25em;
text-transform:uppercase;
color:#fff;
text-decoration:none;
opacity:.8;
transition:.3s;
}

.nav a:hover {
opacity:1;
transform:scale(1.08);
}

.nav-btn {
margin-left:36px;
padding:10px 6px;
font-size:.85rem;
letter-spacing:.25em;
text-transform:uppercase;
color:#fff;
cursor:pointer;
opacity:.8;
transition:.3s;
}

.nav-btn:hover {
opacity:1;
transform:scale(1.08);
}

/* MUSIC */
.music-control {
display:flex;
align-items:center;
gap:10px;
margin-left:36px;
cursor:pointer;
opacity:.8;
}
.music-control:hover { opacity:1; }

.music-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.music-visualizer {
    display: flex;
    gap: 3px;
}

.music-visualizer i {
    width: 2px;
    height: 10px;
    background: #fff;
    opacity: 0.4;
    animation: sound 1s infinite ease-in-out;
}

.music-toggle:not(.active) i {
    animation: none;
    opacity: 0.2;
}

.music-visualizer i:nth-child(2) { animation-delay: .2s; }
.music-visualizer i:nth-child(3) { animation-delay: .4s; }

@keyframes sound {
    0% { height: 4px; }
    50% { height: 14px; }
    100% { height: 4px; }
}


.visualizer {
display:flex;
gap:3px;
}
.visualizer span {
width:3px;
height:12px;
background:#fff;
animation:equalize 1s infinite ease-in-out;
}
.visualizer span:nth-child(2){animation-delay:.2s}
.visualizer span:nth-child(3){animation-delay:.4s}

.visualizer.paused span {
animation:none;
opacity:.3;
}

@keyframes equalize {
0%,100%{height:6px}
50%{height:16px}
}

/* HERO */
.hero {
height:100vh;
position:relative;
overflow:hidden;
}

.hero video {
position:absolute;
top:50%;
left:50%;
width:100%;
height:100%;
object-fit:cover;
transform:translate(-50%,-50%);
}

.hero::after {
content:'';
position:absolute;
inset:0;
background:rgba(0,0,0,.55);
}

.hero-content {
position:relative;
z-index:2;
height:100%;
display:flex;
align-items:center;
padding:0 8vw;
}

.hero-content h1,
.hero-content p {
opacity:0;
transform:translateY(40px);
transition:1s;
}

.hero-content.show h1,
.hero-content.show p {
opacity:1;
transform:none;
}

/* GAME */
.game-section {
padding:140px 8vw;
display:grid;
grid-template-columns:1.1fr 1fr;
gap:80px;
align-items:center;
}

.game-info {
max-width:600px;
opacity:0;
transform:translateY(60px);
transition:1s;
}

.game-info h2 {
font-size:3.2rem;
}

.game-info p {
margin-top:28px;
font-size:1.15rem;
line-height:1.7;
color:var(--muted);
max-width:600px;
}

.game-poster {
max-width:600px;
height:886px;
overflow:hidden;
opacity:0;
transform:translateY(60px);
transition:1s;
}

.show {
opacity:1;
transform:none;
}

.game-poster img {
width:100%;
height:100%;
object-fit:cover;
transition:1s;
}
.game-poster:hover img { transform:scale(1.04); }

/* STEAM BUTTON */
.steam-btn {
margin-top:36px;
display:inline-flex;
align-items:center;
gap:14px;
border:1px solid rgba(255,255,255,.3);
padding:14px 26px;
text-decoration:none;
color:#fff;
transition:.4s;
}
.steam-btn img {
width:18px;
}
.steam-btn:hover {
background:#fff;
color:#000;
}

/* FOOTER */
footer {
padding:60px 8vw;
border-top:1px solid rgba(255,255,255,.08);
display:flex;
justify-content:space-between;
align-items:center;
font-size:.9rem;
}

.socials {
display:flex;
gap:30px;
}
.social {
position:relative;
opacity:.7;
}
.social img {
width:18px;
}
.social:hover { opacity:1; }

.social::after {
content:attr(data-label);
position:absolute;
bottom:140%;
left:50%;
transform:translateX(-50%);
font-size:.7rem;
opacity:0;
transition:.3s;
}
.social:hover::after { opacity:1; }
