@font-face {
  font-family: 'JBM';
  src: url('/assets/fonts/JetBrainsMono-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'JBM';
  src: url('/assets/fonts/JetBrainsMono-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

::selection {
  background-color: #a3e635;
  color: #0a0e14;
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: #0a0e14;
}

::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track {
  background: #0a0e14;
}

::-webkit-scrollbar-thumb {
  background-color: #1e293b;
  border-radius: 999px;
  border: 2px solid #0a0e14;
}

::-webkit-scrollbar-thumb:hover {
  background-color: #334155;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
summary:focus-visible {
  outline: 2px solid #a3e635;
  outline-offset: 2px;
}

.btn-outline {
  border: 1px solid #a3e635;
  color: #a3e635;
  background-color: transparent;
  transition: background-color 150ms ease, color 150ms ease;
}

.btn-outline:hover {
  background-color: #a3e635;
  color: #0a0e14;
}

.cursor-blink {
  display: inline-block;
  width: 0.55em;
  background-color: #a3e635;
  margin-left: 0.15em;
  animation: blink 1.05s steps(1) infinite;
}

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

.nav-link {
  position: relative;
  color: #94a3b8;
  transition: color 150ms ease;
}

.nav-link:hover {
  color: #e5e7eb;
}

.nav-link.active {
  color: #a3e635;
}

.nav-link.active::before {
  content: '>';
  color: #a3e635;
  margin-right: 0.4rem;
}

.mobile-nav-collapse {
  max-height: 0;
  overflow: hidden;
  transition: max-height 220ms ease;
}

.mobile-nav-collapse.open {
  max-height: 640px;
}

.hamburger-line {
  transition: transform 150ms ease, opacity 150ms ease;
}

.game-tab-btn[data-active="true"] {
  color: #a3e635;
  border-color: #a3e635;
  background-color: rgba(163, 230, 53, 0.08);
}

.game-tab-panel {
  display: none;
}

.game-tab-panel.active {
  display: block;
}

.range-lime {
  -webkit-appearance: none;
  appearance: none;
  height: 4px;
  border-radius: 999px;
  background: #1e293b;
  outline: none;
}

.range-lime::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: #a3e635;
  border: 2px solid #0a0e14;
  cursor: pointer;
}

.range-lime::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: #a3e635;
  border: 2px solid #0a0e14;
  cursor: pointer;
}

details.accordion-item summary {
  cursor: pointer;
  list-style: none;
}

details.accordion-item summary::-webkit-details-marker {
  display: none;
}

details.accordion-item .accordion-icon {
  transition: transform 180ms ease;
}

details.accordion-item[open] .accordion-icon {
  transform: rotate(45deg);
}

.terminal-table th,
.terminal-table td {
  border-color: #1e293b;
}

.terminal-table tbody tr:hover {
  background-color: rgba(163, 230, 53, 0.05);
}

#cookie-banner {
  transform: translateY(120%);
  transition: transform 260ms ease;
}

#cookie-banner.visible {
  transform: translateY(0);
}

#cookie-prefs-modal {
  display: none;
}

#cookie-prefs-modal[data-open="true"] {
  display: flex;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  background: #a3e635;
  color: #0a0e14;
  padding: 0.5rem 1rem;
}

.skip-link:focus {
  left: 1rem;
  top: 1rem;
}
