/* Csak ritka, utility-vel kényelmetlen szabályok */
html, body {
  max-width: 100vw;
  overflow-x: hidden;
}
@keyframes gradient-shift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.bg-neon-gradient {
  background: linear-gradient(125deg, #06020f, #0a1a2f, #061a18, #1a0626, #06020f);
  background-size: 400% 400%;
  animation: gradient-shift 18s ease infinite;
}

@keyframes float-y {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50%     { transform: translateY(-40px) rotate(180deg); }
}
.float-shape { animation: float-y 14s ease-in-out infinite; }

@keyframes pulse-glow {
  0%,100% { box-shadow: 0 0 8px currentColor, 0 0 24px currentColor; }
  50%     { box-shadow: 0 0 20px currentColor, 0 0 60px currentColor; }
}
.pulse-glow { animation: pulse-glow 3s ease-in-out infinite; }

@keyframes scan-line {
  0%   { transform: translateY(-100%); }
  100% { transform: translateY(100%); }
}
.scan-line::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent, rgba(57,255,20,.08), transparent);
  animation: scan-line 6s linear infinite; pointer-events:none;
}

/* Reveal */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity .9s ease, transform .9s ease; }
.reveal.in { opacity: 1; transform: translateY(0); }
.reveal-scale { opacity: 0; transform: scale(.92); transition: opacity .8s, transform .8s; }
.reveal-scale.in { opacity: 1; transform: scale(1); }

/* Floating label */
.float-field { position: relative; }
.float-field input, .float-field textarea, .float-field select {
  width: 100%; background: transparent; color: #e6fffb;
  border: 1px solid rgba(0,229,255,.3); border-radius: 10px;
  padding: 22px 14px 8px; outline: none; transition: border-color .3s, box-shadow .3s;
}
.float-field textarea { min-height: 130px; resize: vertical; }
.float-field label {
  position: absolute; left: 14px; top: 16px; color: #7ad7ff;
  pointer-events: none; transition: all .25s ease; font-size: 14px;
}
.float-field input:focus, .float-field textarea:focus, .float-field select:focus {
  border-color: #39ff14; box-shadow: 0 0 0 3px rgba(57,255,20,.18), 0 0 24px rgba(57,255,20,.25);
}
.float-field input:focus + label,
.float-field input:not(:placeholder-shown) + label,
.float-field textarea:focus + label,
.float-field textarea:not(:placeholder-shown) + label,
.float-field select:focus + label,
.float-field select:valid + label {
  top: 4px; font-size: 11px; color: #39ff14; letter-spacing: .08em; text-transform: uppercase;
}

/* Nav underline */
.nav-link { position: relative; }
.nav-link::after{
  content:""; position:absolute; left:0; bottom:-6px; height:2px; width:100%;
  background: linear-gradient(90deg,#00e5ff,#39ff14,#c800ff);
  transform: scaleX(0); transform-origin: right; transition: transform .35s ease;
}
.nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); transform-origin: left; }

/* FAQ */
.faq-body { max-height: 0; overflow: hidden; transition: max-height .5s ease; }
.faq.open .faq-body { max-height: 400px; }
.faq.open .faq-icon { transform: rotate(45deg); }

/* Card hover */
.neon-card { transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.neon-card:hover { transform: translateY(-6px) scale(1.02); border-color:#39ff14; box-shadow: 0 0 30px rgba(57,255,20,.25), 0 0 60px rgba(0,229,255,.15); }

/* Buttons */
.btn-neon { transition: transform .25s ease, box-shadow .25s ease, background .3s; }
.btn-neon:hover { transform: translateY(-3px); box-shadow: 0 0 25px rgba(57,255,20,.55), 0 0 50px rgba(0,229,255,.25); }

/* Parallax */
.parallax-bg { will-change: transform; }

/* Cookie */
.cookie-hidden { transform: translateY(150%); }
