/* ============================================
   base.css — Variables, Reset, Typography
   ============================================ */

/* ---------- CSS VARIABLES ---------- */
:root {
  /* Colors */
  --green:        #5aaf3a;
  --green-dark:   #3d7a27;
  --green-light:  #7ed858;
  --gold:         #f5c842;
  --gold-dark:    #c49a10;
  --diamond:      #4de4ff;
  --diamond-dark: #0ab8d8;
  --red:          #e03c3c;
  --stone:        #7d7d7d;

  /* Background layers */
  --night:   #0d1117;
  --night-2: #161b22;
  --night-3: #21262d;
  --night-4: #30363d;

  /* Text */
  --text-main:  #e6edf3;
  --text-muted: #8b949e;

  /* UI */
  --border:        rgba(255,255,255,0.08);
  --pixel-shadow:  4px 4px 0px rgba(0,0,0,0.6);
  --radius:        4px;
  --transition:    0.25s ease;

  /* Fonts */
  --font-pixel: 'Press Start 2P', monospace;
  --font-mono:  'VT323', monospace;

  /* Layout */
  --max-width: 1100px;
  --nav-height: 64px;
}

/* ---------- RESET ---------- */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  font-size: 18px;
}

body {
  font-family: var(--font-mono);
  background: var(--night);
  color: var(--text-main);
  line-height: 1.6;
  overflow-x: hidden;
}

img  { display: block; max-width: 100%; }
a    { color: inherit; text-decoration: none; }
ul   { list-style: none; }
strong { color: var(--green-light); }

/* ---------- SCROLLBAR ---------- */
::-webkit-scrollbar       { width: 8px; }
::-webkit-scrollbar-track { background: var(--night-2); }
::-webkit-scrollbar-thumb { background: var(--green-dark); border-radius: 4px; }

/* ---------- SHARED LAYOUT ---------- */
.container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 1.5rem;
}

.section {
  padding: 6rem 0;
  position: relative;
  z-index: 1;
}

/* ---------- SECTION HEADER ---------- */
.section-header {
  text-align: center;
  margin-bottom: 3.5rem;
}

.pixel-label {
  font-family: var(--font-pixel);
  font-size: 0.5rem;
  color: var(--green);
  letter-spacing: 3px;
  margin-bottom: 0.75rem;
}

.section-title {
  font-family: var(--font-pixel);
  font-size: 1.6rem;
  color: var(--text-main);
  text-shadow: var(--pixel-shadow);
  margin-bottom: 0.75rem;
  line-height: 1.4;
}

.section-sub {
  font-size: 1.3rem;
  color: var(--text-muted);
  max-width: 500px;
  margin: 0 auto;
}

/* ---------- SHARED BUTTONS ---------- */
.btn {
  font-family: var(--font-pixel);
  font-size: 0.55rem;
  padding: 0.85rem 1.5rem;
  border: 2px solid;
  cursor: pointer;
  transition: var(--transition);
  box-shadow: var(--pixel-shadow);
  display: inline-block;
  white-space: nowrap;
}

.btn-primary {
  background: var(--green-dark);
  border-color: var(--green-light);
  color: #fff;
}
.btn-primary:hover {
  background: var(--green);
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 rgba(0,0,0,0.5);
}

.btn-secondary {
  background: transparent;
  border-color: var(--gold);
  color: var(--gold);
}
.btn-secondary:hover {
  background: rgba(245,200,66,0.1);
  transform: translate(-2px, -2px);
}

/* ---------- TOAST ---------- */
.toast {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%) translateY(100px);
  background: var(--green-dark);
  border: 2px solid var(--green);
  color: #fff;
  font-family: var(--font-pixel);
  font-size: 0.5rem;
  padding: 0.75rem 1.5rem;
  box-shadow: var(--pixel-shadow);
  z-index: 9999;
  transition: transform 0.3s ease;
  white-space: nowrap;
  pointer-events: none;
}
.toast.show { transform: translateX(-50%) translateY(0); }

/* ---------- BACK TO TOP ---------- */
.back-to-top {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 44px;
  height: 44px;
  background: var(--green-dark);
  border: 2px solid var(--green);
  color: #fff;
  font-family: var(--font-pixel);
  font-size: 0.7rem;
  cursor: pointer;
  z-index: 999;
  box-shadow: var(--pixel-shadow);
  opacity: 0;
  transform: translateY(20px);
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
}
.back-to-top.visible { opacity: 1; transform: translateY(0); }
.back-to-top:hover   { background: var(--green); transform: translate(-2px,-2px); }

/* ---------- PIXEL DUST CANVAS ---------- */
.pixel-dust {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.pixel-dust .dust-particle {
  position: absolute;
  opacity: 0;
  animation: float-up linear infinite;
  image-rendering: pixelated;
}
@keyframes float-up {
  0%   { opacity: 0;   transform: translateY(0) rotate(0deg); }
  10%  { opacity: 0.4; }
  90%  { opacity: 0.1; }
  100% { opacity: 0;   transform: translateY(-100vh) rotate(720deg); }
}

/* ---------- ANIMATIONS ---------- */
@keyframes bob {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-4px); }
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes bounce-down {
  0%, 100% { transform: rotate(45deg) translateY(0); }
  50%       { transform: rotate(45deg) translateY(4px); }
}

@keyframes fade-in-out {
  0%, 100% { opacity: 0.3; }
  50%       { opacity: 1; }
}
