/* ============================================================
   LAND BILHON — Base Styles
   ============================================================ */

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

html {
  background: var(--bl-bg-primary);
  color: var(--bl-text-primary);
  font-family: var(--bl-font-sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  min-height: 100vh;
  background: var(--bl-bg-primary);
}

/* ── Grid Background ── */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255, var(--bl-grid-opacity)) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255, var(--bl-grid-opacity)) 1px, transparent 1px);
  background-size: var(--bl-grid-size) var(--bl-grid-size);
}

/* ── Green Glow (top-right) ── */
body::after {
  content: '';
  position: fixed;
  top: -120px;
  right: -120px;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--bl-green-soft) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

/* ── Scrollbar ── */
::-webkit-scrollbar { width: var(--bl-scroll-width); height: var(--bl-scroll-width); }
::-webkit-scrollbar-track { background: var(--bl-scroll-track); }
::-webkit-scrollbar-thumb { background: var(--bl-scroll-thumb); border-radius: var(--bl-radius-full); }
::-webkit-scrollbar-thumb:hover { background: var(--bl-scroll-hover); }

/* ── Selection ── */
::selection { background: var(--bl-green-dim); color: var(--bl-text-primary); }

/* ── Glass Card ── */
.glass {
  background: var(--bl-bg-card);
  border: 1px solid var(--bl-border);
  border-radius: var(--bl-radius-lg);
  transition: all var(--bl-ease-default);
}
.glass:hover {
  border-color: var(--bl-border-hover);
}

/* ── Typography Utilities ── */
.font-mono  { font-family: var(--bl-font-mono); }
.font-sans  { font-family: var(--bl-font-sans); }
.font-display { font-family: var(--bl-font-display); }

.text-primary   { color: var(--bl-text-primary); }
.text-secondary { color: var(--bl-text-secondary); }
.text-dim       { color: var(--bl-text-dim); }
.text-muted     { color: var(--bl-text-muted); }
.text-ghost     { color: var(--bl-text-ghost); }
.text-accent    { color: var(--bl-accent); }
.text-green     { color: var(--bl-green); }
.text-red       { color: var(--bl-red); }
.text-orange    { color: var(--bl-orange); }

/* ── Glow Utilities ── */
.glow-green  { box-shadow: var(--bl-glow-green); }
.glow-blue   { box-shadow: var(--bl-glow-blue); }
.glow-gold   { box-shadow: var(--bl-glow-gold); }
.glow-red    { box-shadow: var(--bl-glow-red); }
