:root{
  /* Color system */
  --brand-1: #0078D4;
  --brand-2: #00B294;
  --muted: #666666;
  --bg: linear-gradient(135deg,var(--brand-1),var(--brand-2));
  --card-bg: #ffffff;
  --text: #1b1b1b;
  --accent-red: #e74c3c;
  --accent-blue: #3498db;
  --accent-green: #27ae60;

  /* Spacing & typography */
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2.25rem;

  --container-max: 1100px;
  --radius: 12px;

  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  --font-size-base: 16px;
  --line-height: 1.45;
  --focus-ring: 3px;
}

/* Mobile-first base reset */
*,
*::before,
*::after{box-sizing:border-box}
html{font-family:var(--font-sans);font-size:100%;-webkit-text-size-adjust:100%;-moz-osx-font-smoothing:grayscale}
body{
  margin:0;min-height:100vh;background:var(--bg);color:var(--text);line-height:var(--line-height);
  -webkit-font-smoothing:antialiased;
  display:flex;align-items:flex-start;justify-content:center;padding:1.25rem;
}

/* Layout container */
.page-grid{width:100%;max-width:var(--container-max)}
.container{width:100%;padding-inline:1rem;margin-inline:auto}

/* Skip link */
.skip-link{
  position:absolute;left:0;top:0;background:#000;color:#fff;padding:0.5rem 0.75rem;z-index:1000;
  transform:translateY(-120%);transition:transform .18s ease;border-radius:0 0 6px 0;
}
.skip-link:focus{transform:translateY(0)}

/* Header */
.site-header{margin-bottom:var(--space-lg)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0.25rem 0}
.brand{display:flex;align-items:center;gap:0.6rem;text-decoration:none;color:inherit}
.brand .logo{border-radius:6px}
.brand-text{font-weight:700;font-size:1rem}

/* Nav */
.main-nav{display:flex;align-items:center;gap:0.5rem}
.nav-toggle{
  display:inline-flex;align-items:center;justify-content:center;padding:0.5rem;border-radius:8px;background:rgba(255,255,255,0.06);border:none;color:var(--card-bg);
  min-width:44px;min-height:44px;cursor:pointer
}
.nav-toggle:focus{outline: none; box-shadow: 0 0 0 var(--focus-ring) rgba(0,120,212,0.25); border-radius:8px}
.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.5rem}
.nav-link{display:block;padding:0.5rem 0.75rem;border-radius:8px;text-decoration:none;color:var(--card-bg);background:transparent}
.nav-link:focus, .nav-link:hover{background:rgba(255,255,255,0.06)}
/* Hide nav-list by default on mobile (JS toggles hidden attribute). */

/* Hero */
.hero{background:transparent;padding:0.5rem 0}
h1{font-size:1.5rem;margin-bottom:0.5rem;color:var(--card-bg);text-shadow:0 1px 0 rgba(0,0,0,0.12)}
.lead{color:rgba(255,255,255,0.95);margin-bottom:1rem}

/* Cards */
.cards{
list-style: none;
padding: 5;
margin: 0;
display: grid;
grid-template-columns: 1fr;
gap: 0.75rem;
}
.card-item{}
.game-card{
  display:flex;align-items:center;gap:0.85rem;padding:0.85rem;border-radius:12px;background:var(--card-bg);text-decoration:none;color:var(--text);
  box-shadow:0 6px 18px rgba(8,20,36,0.08);transition:transform .18s ease, box-shadow .18s ease;
  min-height:72px;
}
.game-card:focus, .game-card:hover{
  transform:translateY(-4px);
  box-shadow:0 10px 28px rgba(8,20,36,0.12);
  outline: none;
}
.card-icon{flex:0 0 52px;display:flex;align-items:center;justify-content:center}
.card-content{flex:1;min-width:0}
.card-title{font-size:1.05rem;margin:0 0 0.25rem 0}
.card-desc{margin:0;color:var(--muted);font-size:0.95rem}
.card-cta{font-weight:600;color:var(--muted);font-size:0.9rem}

/* Newsletter form */
.newsletter{margin-top:1rem;padding:0.75rem;background:rgba(255,255,255,0.06);border-radius:12px}
.newsletter-form{display:flex;gap:0.5rem;flex-wrap:wrap}
.newsletter-form input[type="email"]{
  flex:1;min-width:180px;padding:0.6rem 0.75rem;border-radius:8px;border:1px solid rgba(0,0,0,0.06);
  background:var(--card-bg);
}
.btn-primary{
  display:inline-flex;align-items:center;gap:0.5rem;padding:0.6rem 0.9rem;border-radius:8px;background:var(--brand-1);color:white;border:none;font-weight:600;cursor:pointer;
}
.btn-primary:focus{box-shadow:0 0 0 var(--focus-ring) rgba(0,120,212,0.2);outline:none}

/* Footer */
.site-footer{margin-top:1.5rem;padding:1rem 0;color:#f4f4f4}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:1rem}

/* Utility: visually-hidden / sr-only */
.visually-hidden, .sr-only{
  position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;border:0;padding:0;margin:-1px;
}

/* Focus visible per user preference */
:focus{outline:none}
:focus-visible{outline: none; box-shadow: 0 0 0 var(--focus-ring) rgba(0,120,212,0.25);}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{transition:none!important}
}

/* Responsive breakpoints */
@media (min-width: 48rem){ /* 768px - tablet */
  h1{font-size:2rem}
  .header-inner{padding:0.25rem 0.5rem}
  .nav-list{flex-direction:row;background:transparent;gap:0.5rem}
  .nav-toggle{display:none}
 
  .container{padding-inline:1.5rem}
  .site-header{margin-bottom:1.5rem}
}

@media (min-width: 64rem){ /* 1024px - desktop */

  .hero{display:flex;align-items:center;justify-content:space-between;gap:1.25rem}
  .hero .lead{max-width:55ch}
  .container{padding-inline:2rem}
}