/* =========================
   GLOBAL THEME (Epic-style)
========================= */
:root {
  --content-width:1700px;
  --page-padding:clamp(24px,4vw,64px);

  --bg: #121212;
  --panel: #1a1a1a;
  --panel-hover: #202020;
  --text: #eaeaea;
  --muted: #a0a0a0;
  --accent: #2f81f7; /* Epic-like blue */

  --engine-logo-size:45px;
  --engine-gap:18px;
  --engine-left-padding:50px;
  --engine-top-margin:70px;
  --engine-bottom-margin:30px;

  --footer-icon-size:35px;
  --footer-icon-gap:24px;
  --footer-left-padding:8px;
  --footer-right-padding:8px;
}

html {
    scroll-behavior: smooth;
}

#featured,
#portfolio,
#contact {
    scroll-margin-top: 125px; /* adjust to your header height */
}

body {
  background: var(--bg);
  color: var(--text);
  font-family: Arial, Helvetica, sans-serif;
  margin: 0;
}

.container{

    width:min(100% - calc(var(--page-padding) * 2),
              var(--content-width));

    margin-inline:auto;
}

/* =======================================
   Header
======================================= */

.site-header{

    position:sticky;
    top:0;
    z-index:1000;

    backdrop-filter:blur(18px);

    background:rgba(20,20,20,.82);

    border-bottom:1px solid var(--border-color);
}

.header-content{

    display:flex;

    justify-content:space-between;

    align-items:center;

    min-height:80px;
}

/* =======================================
   Brand
======================================= */

.brand{

    display:flex;

    align-items:center;

    gap:18px;
}

.brand-logo{

    width:48px;
    height:48px;

    object-fit:contain;
}

.brand-text{

    display:flex;

    flex-direction:column;

    justify-content:center;
}

.brand-text h1{

    font-size:1.4rem;

    font-weight:700;

    color:var(--text-primary);

    line-height:1.1;
}

.brand-text p{

    font-size:.8rem;

    color:var(--text-heading);

    margin-top:4px;

    letter-spacing:2px;

    text-transform:uppercase;
}

/* =======================================
   Navigation
======================================= */

.site-nav{

    display:flex;

    align-items:center;

    gap:42px;
}

.site-nav a{

    position:relative;

    font-size:.95rem;

    font-weight:600;

    color:var(--text-primary);

    transition:.25s;
}

.site-nav a:hover{

    color:white;
}

.site-nav a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:0;

    height:2px;

    background:var(--text-primary);

    transition:.25s;
}

.site-nav a:hover::after{

    width:100%;
}

/* =======================================
   FEATURED SECTION
======================================= */

/* Controls the overall size of the Featured section */
.featured-wrapper{
    width:92%;
    max-width:1100px;
    margin:0 auto 50px;
}

.featured-layout{
display:grid;
grid-template-columns:3fr 1fr;
gap:20px;
align-items:start;
}

.featured-hero{
position:relative;
height:500px;
overflow:hidden;
border-radius:12px;
background:var(--background-color);
}

.featured-hero img{
width:100%;
height:100%;
object-fit:cover;
display:block;
}

.featured-overlay{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    padding:24px;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    background:linear-gradient(to top, rgba(0,0,0,.85), transparent);
}

#featuredTitle{
    font-size:2rem;
    font-weight:700;
    color:var(--text-primary);
    margin:0;
}

#featuredEngine{
    font-size:.9rem;
    font-style:italic;
    color:var(--text-heading);
    margin:0;
    text-align:right;
}

.featured-bottom{
display:flex;
justify-content:space-between;
align-items:flex-end;
}

#featuredDescription{
max-width:700px;
font-size:.95rem;
line-height:1.6;
opacity:.9;
}

.featured-engine{
font-size:.95rem;
font-style:italic;
white-space:nowrap;
opacity:.75;
}

.featured-list{
display:flex;
flex-direction:column;
gap:8px;
height:500px;
}

.featured-item{
display:flex;
align-items:center;
gap:12px;
height:92px;
padding:8px;
border-radius:8px;
cursor:pointer;
position:relative;
overflow:hidden;
}

.featured-item:hover{
background:rgba(255,255,255,.08);
}

.featured-item.active{
background:rgba(255,255,255,.12);
}

.featured-item img{
width:100px;
height:56px;
border-radius:6px;
object-fit:cover;
flex-shrink:0;
}

.featured-item-info{
display:flex;
flex-direction:column;
justify-content:center;
}

.featured-item-info h4{
font-size:.95rem;
font-weight:600;
margin-bottom:2px;
line-height:1.2;
}

.featured-item-info p{
font-size:.75rem;
opacity:.65;
}

.featured-progress{
position:absolute;
left:0;
bottom:0;
width:100%;
height:2px;
background:rgb(255, 255, 255);
z-index:999;
}

/* =========================
   GALLERY LAYOUT
========================= */
.game-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;

  /* makes cards feel larger like 2-column layout */
  max-width: 1400px;
  margin: 0 auto;
  padding: 30px;
}

/* =========================
   CARD BASE
========================= */
.card {
    display: flex;
    flex-direction: column;
    border-radius: 16px;
    overflow: hidden;
    transition: box-shadow .25s ease;
    border: 0.5px solid #222222;
}

.card:hover {
    box-shadow:
        0 0 0 2px #fff,
        0 0 12px rgba(255,255,255,.35);
}

/* =========================
   IMAGE SECTION
========================= */
.card-media {
  position: relative;
  width: 100%;
  height: 240px;
  overflow: hidden;
}

.card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

/* arrows */
.media-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.4);
  border: none;
  color: white;
  font-size: 20px;
  width: 32px;
  height: 48px;
  cursor: pointer;
  z-index: 2;
}

.media-arrow.left { left: 0; }
.media-arrow.right { right: 0; }

.media-arrow:hover {
  background: rgba(47,129,247,0.6);
}

/* =========================
   INFO SECTION
========================= */
.card-info {
  flex: 1;
  display: flex;
  flex-direction: column;

  padding: 16px;
  position: relative;
}

/* TITLE */
.game-title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
}

/* TAGS */
.game-tags {
  font-size: 12px;
  color: var(--muted);
  margin: 6px 0 10px;
}

/* DESCRIPTION */
.description {
  font-size: 13px;
  line-height: 1.5;
  padding-bottom: 2.5rem; /* space for play button */

  text-align: justify;

  color: #cfcfcf;

  /* prevents overflow pushing button */
  flex: 1;
  overflow: hidden;
}

/* =========================
   PLAY BUTTON (BOTTOM RIGHT)
========================= */
.play-btn {
  position: absolute;
  right: 16px;
  bottom: 16px;

  background: #222222;
  color: white;
  text-decoration: none;

  padding: 10px 16px;
  border-radius: 10px;

  font-weight: 600;
  font-size: 13px;
  margin-top: auto;
  align-self: flex-end;

  transition: background 0.2s ease;
}

.play-btn:hover {
  background: #1f6fe0;
}

/* ==========================
   Engine Section Heading
========================== */

.engine-title{

    display:flex;
    align-items:center;

    gap:var(--engine-gap);

    padding-left:var(--engine-left-padding);

    margin:var(--engine-top-margin) 0 var(--engine-bottom-margin);
}

.engine-logo{

    width:var(--engine-logo-size);
    height:var(--engine-logo-size);

    object-fit:contain;
    flex-shrink:0;
}

.engine-title h3{

    margin:0;

    line-height:1;

    font-size:1.5rem;

    font-weight:700;

    color:var(--text-primary);
}

/* ===========================
   FOOTER
=========================== */

.footer{
    padding:2rem 0;
    border-top:2px solid var(--border-color);
    background:var(--background-color);
}

.footer-content{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:2rem;
}

/* ---------- Left : Socials ---------- */

.footer-left{
  display:flex;
  align-items:center;
  gap:3.5rem;
  padding-left:1rem;
}

.footer-left a{
  display:flex;
  align-items:center;
}

.footer-icon{
  width:var(--footer-icon-size,32px);
  height:var(--footer-icon-size,32px);
  transition:.2s ease;
}

.footer-icon:hover{
  transform:scale(1.1);
  opacity:.8;
}

/* ---------- Center : Credits ---------- */

.footer-center{
    text-align:center;
    white-space:nowrap;
}

.footer-center h3{
    font-size:.95rem;
    font-weight:500;
    color:var(--text-heading);
}

/* ---------- Right : Floating Buttons ---------- */

.footer-actions{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:1rem;
    padding-right:1rem;         /* adjust */
}

/* Icon buttons */

.footer-btn{
    width:44px;                 /* adjust */
    height:44px;                /* adjust */
    border:none;
    background:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.25s;
}

.footer-btn img{
    width:30px;                 /* adjust */
    height:30px;
    object-fit:contain;
}

.footer-btn:hover{
    transform:translateY(-2px) scale(1.08);
}

/* ---------- Sticky Buttons ---------- */

.fixed-buttons{
  position:fixed;
  right:2rem;
  bottom:2rem;
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:1rem;
  z-index:999;
}

.fixed-buttons .footer-btn{
    width:54px;
    height:54px;
    border-radius:50%;
    background:rgba(0,0,0,.35);
    backdrop-filter:blur(8px);
    border:1px solid var(--border-color);
}

.fixed-buttons .footer-btn:hover{
    background:var(--text-primary);
}

.fixed-buttons .footer-btn:hover img{
    filter:invert(1);
}


/* =========================
   CONTACT MODAL
========================= */

/* ===== Contact Section ===== */

.contact-section{
    padding:60px 0;
}

.contact-card{
    max-width:900px;
    margin:0 auto;
    padding:24px;
    border:1px solid var(--border-color);
    border-radius:10px;
    background:rgba(255,255,255,.03);
    transition:transform .25s ease, box-shadow .25s ease;
}

.contact-card:hover{
    transform:scale(1.01);
    box-shadow:0 8px 24px rgba(0,0,0,.25);
}

.contact-header{
    margin-bottom:20px;
}

.contact-header h2{
    font-size:2rem;
    margin-bottom:6px;
    color:var(--text-primary);
}

.contact-header p{
    max-width:700px;
    color:var(--text-heading);
    line-height:1.5;
}

/* ---------- Form ---------- */

.contact-form{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.form-group{
    display:flex;
    align-items:center;
    gap:12px;
}

.form-group.message{
    align-items:flex-start;
}

.form-group label{
    width:80px;
    flex-shrink:0;
    font-weight:600;
    color:var(--text-primary);
}

.form-group.message label{
    padding-top:10px;
}

.form-group input,
.form-group textarea{
    flex:1;
    width:100%;
    padding:10px 14px;
    background:transparent;
    border:1px solid var(--border-color);
    border-radius:6px;
    color:var(--text-primary);
    font:inherit;
    transition:border-color .2s ease, box-shadow .2s ease;
}

.form-group textarea{
    min-height:120px;
    resize:vertical;
}

.form-group input::placeholder,
.form-group textarea::placeholder{
    color:var(--text-heading);
}

.form-group input:focus,
.form-group textarea:focus{
    outline:none;
    border-color:var(--text-primary);
    box-shadow:0 0 8px rgba(224,224,224,.18);
}

/* ---------- Button ---------- */

.send-btn{
    align-self:flex-end;
    margin-top:8px;
    padding:10px 28px;
    background:transparent;
    color:var(--text-primary);
    border:1px solid var(--border-color);
    border-radius:6px;
    font-weight:600;
    cursor:pointer;
    transition:background .2s ease,color .2s ease,border-color .2s ease;
}

.send-btn:hover{
    background:var(--text-primary);
    color:var(--background-color);
}

/* ==========================
   Achievements
========================== */

#achievement-popup{
    position:fixed;
    top:-100px;
    left:50%;
    transform:translateX(-50%);
    z-index:99999;

    display:flex;
    align-items:center;
    gap:12px;

    min-width:280px;
    max-width:360px;

    padding:10px 14px;

    background:rgba(18,18,18,.96);
    border:1px solid rgba(255,255,255,.55);
    border-radius:10px;

    box-shadow:0 8px 22px rgba(0,0,0,.35);

    transition:top .35s ease;
}

#achievement-popup.show{
    top:16px;
}

.achievement-icon{
    font-size:24px;
    flex-shrink:0;
}

.achievement-title{
    font-size:9px;
    letter-spacing:1.5px;
    text-transform:uppercase;
    color:#bfbfbf;
    margin-bottom:5px;
}

.achievement-name{
    font-size:15px;
    font-weight:600;
    color:#fff;
}

.achievement-desc{
    margin-top:2px;
    font-size:11px;
    color:#9f9f9f;
    line-height:1.35;
}

/* =========================
   RESPONSIVE
========================= */
@media (max-width: 1200px) {
  .game-gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .game-gallery {
    grid-template-columns: 1fr;
  }

  .card {
    min-height: 480px;
  }
}

@media (max-width:900px){
    .footer-content{
        grid-template-columns:1fr;
        text-align:center;
        gap:1.5rem;
    }

    .left-links,
    .footer-actions{
        justify-content:center;
        padding:0;
    }
}

@media(max-width:1000px){
  .featured-layout{
  grid-template-columns:1fr;
  }

  .featured-hero{
  height:450px;
  }

  .featured-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  }
}