@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;600;700;800;900&family=Rajdhani:wght@500;600;700&display=swap');

*, *::before, *::after{ box-sizing:border-box; }
html, body{ height:100%; }
html.preload *{ transition:none !important; }

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-ui);
  -webkit-font-smoothing:antialiased;
  min-height:100%;
}

/* Signature background: faint carbon-fiber weave + a slow-moving cyan glow,
   evoking a workshop bay at night lit by a diagnostic screen. */
body::before{
  content:"";
  position:fixed; inset:0; z-index:-2;
  background-image:
    repeating-linear-gradient(45deg,  rgba(255,255,255,.018) 0 2px, transparent 2px 6px),
    repeating-linear-gradient(-45deg, rgba(255,255,255,.014) 0 2px, transparent 2px 6px);
  background-color:var(--bg);
}
body::after{
  content:"";
  position:fixed; inset:-20% -20% auto auto; z-index:-1;
  width:60vw; height:60vw; max-width:900px; max-height:900px;
  background:radial-gradient(circle at 70% 30%, var(--cyan-glow), transparent 60%);
  filter:blur(10px);
  opacity:.5;
  animation:driftGlow 18s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes driftGlow{
  0%{ transform:translate(0,0) scale(1); }
  100%{ transform:translate(-6%, 8%) scale(1.08); }
}

h1,h2,h3,h4{ margin:0; font-weight:800; letter-spacing:.2px; }
p{ margin:0; }
a{ color:inherit; }
button{ font-family:inherit; }
input, select, textarea{ font-family:inherit; }

::selection{ background:var(--cyan); color:#00201d; }

::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:transparent; }
::-webkit-scrollbar-thumb{ background:var(--surface-2); border-radius:8px; border:2px solid var(--bg); }
::-webkit-scrollbar-thumb:hover{ background:var(--cyan-dim); }

/* Focus visibility (accessibility floor) */
:focus-visible{
  outline:2px solid var(--cyan);
  outline-offset:2px;
  border-radius:4px;
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

.muted{ color:var(--text-muted); }
.faint{ color:var(--text-faint); }
.data{ font-family:var(--font-data); font-weight:700; letter-spacing:.5px; }
.error{ color:var(--danger); font-size:.84rem; min-height:1.1em; }
.mt{ margin-top:12px; }
