:root{ color-scheme: dark; }
html{ scroll-behavior: smooth; }
body{ background:#1E1E1E; }
::selection{ background:#C1121F; color:#fff; }

.diagonal-overlay{
  background-image: repeating-linear-gradient(135deg, rgba(217,217,217,0.028) 0px, rgba(217,217,217,0.028) 1px, transparent 1px, transparent 26px);
  mask-image: radial-gradient(ellipse 90% 70% at 50% 10%, #000 30%, transparent 85%);
}

#particles{ position:fixed; inset:0; width:100vw; height:100vh; z-index:-10; }

.scanline{
  position:fixed; left:0; right:0; height:120px; z-index:-5; pointer-events:none;
  background: linear-gradient(to bottom, transparent, rgba(193,18,31,0.06), transparent);
  animation: scan 9s linear infinite;
}
@keyframes scan{ 0%{ top:-120px; } 100%{ top:100vh; } }

.terminal{ border:1px solid rgba(217,217,217,0.14); background: rgba(20,20,20,0.75); }
.term-cursor{ display:inline-block; width:7px; height:1em; background:#E2293A; margin-left:2px; vertical-align:-2px; animation: blink 1s step-end infinite; }
@keyframes blink{ 0%,100%{ opacity:1; } 50%{ opacity:0; } }
.term-glow{ position:absolute; inset:-40px; background: radial-gradient(closest-side, rgba(193,18,31,0.22), transparent 70%); filter: blur(30px); z-index:-1; }

@keyframes pulseDot{ 0%,100%{ opacity:1; } 50%{ opacity:.35; } }
.pulse-dot{ animation: pulseDot 1.8s ease-in-out infinite; }

[data-fade]{ opacity:0; transform: translateY(20px); transition: opacity .7s ease, transform .7s ease; }
[data-fade].in-view{ opacity:1; transform: translateY(0); }

.btn-outline{ transition: background-color .25s ease, border-color .25s ease, transform .25s ease; }
.btn-outline:hover{ background: rgba(217,217,217,0.06); border-color: rgba(217,217,217,0.4); transform: translateY(-2px); }

.locked-field{ position:relative; }
.locked-field input{
  width:100%; background: rgba(43,43,43,0.6); border:1px solid rgba(217,217,217,0.14);
  padding: .7rem .9rem; font-size:.875rem; color:#D9D9D9; font-family: 'Inter', sans-serif;
  pointer-events:none;
}
.locked-field input::placeholder{ color: rgba(217,217,217,0.35); }
.locked-field .lock-icon{ position:absolute; right:.75rem; top:50%; transform:translateY(-50%); color: rgba(217,217,217,0.3); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}
