/* ---------- Aveon — Cinematic Coming Soon ---------- */

body { font-family: 'Inter', sans-serif; -webkit-font-smoothing: antialiased; }

/* Bottom blur overlay (no darkening, masked) */
.bottom-blur {
  backdrop-filter: blur(28px) saturate(110%);
  -webkit-backdrop-filter: blur(28px) saturate(110%);
  -webkit-mask-image: linear-gradient(to top, black 0%, black 18%, transparent 50%);
          mask-image: linear-gradient(to top, black 0%, black 18%, transparent 50%);
}

/* Liquid glass effect */
.liquid-glass {
  position: relative;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.04);
  background-blend-mode: luminosity;
  backdrop-filter: blur(8px) saturate(140%);
  -webkit-backdrop-filter: blur(8px) saturate(140%);
  border: none;
  box-shadow:
    inset 0 1px 1px rgba(255, 255, 255, 0.12),
    inset 0 -1px 1px rgba(255, 255, 255, 0.04);
  color: #fff;
  cursor: pointer;
  transition: background 0.25s ease, transform 0.25s ease;
}
.liquid-glass:hover {
  background: rgba(255, 255, 255, 0.08);
}
.liquid-glass::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.4px;
  background: linear-gradient(180deg,
    rgba(255,255,255,0.55) 0%,
    rgba(255,255,255,0.18) 20%,
    rgba(255,255,255,0) 40%,
    rgba(255,255,255,0) 60%,
    rgba(255,255,255,0.18) 80%,
    rgba(255,255,255,0.55) 100%);
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
}

/* Blur fade-up animation */
@keyframes blurFadeUp {
  from { opacity: 0; filter: blur(20px); transform: translateY(40px); }
  to   { opacity: 1; filter: blur(0);    transform: translateY(0); }
}
.animate-blur-fade-up {
  opacity: 0;
  animation: blurFadeUp 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  animation-fill-mode: forwards;
}
#heroTitle .accent-soft { color: rgba(255,255,255,0.55); }

/* Slide rotation cross-fade */
.slide-anim {
  animation: slideIn 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes slideIn {
  from { opacity: 0.15; filter: blur(8px); transform: translateY(8px); }
  to   { opacity: 1;    filter: blur(0);   transform: translateY(0); }
}

/* Menu icon transition (Menu <-> X) */
.menu-icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.5s ease-out, opacity 0.5s ease-out;
}
#menuBtn .menu-icon-x { opacity: 0; transform: rotate(180deg) scale(0.5); }
#menuBtn.open .menu-icon:not(.menu-icon-x) { opacity: 0; transform: rotate(-180deg) scale(0.5); }
#menuBtn.open .menu-icon-x { opacity: 1; transform: rotate(0deg) scale(1); }

/* Mobile menu open */
#mobileMenu.open {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

/* Grain */
.grain {
  opacity: 0.5;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.09 0'/></filter><rect width='220' height='220' filter='url(%23n)'/></svg>");
}

/* Scanline */
.scan {
  top: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
  animation: scan 10s linear infinite;
}
@keyframes scan {
  0%   { transform: translateY(0vh);   opacity: 0; }
  10%  { opacity: 0.5; }
  90%  { opacity: 0.5; }
  100% { transform: translateY(100vh); opacity: 0; }
}

/* Title gradient subtle */
#heroTitle {
  background: linear-gradient(180deg, #ffffff 0%, #ffffff 55%, rgba(255,255,255,0.85) 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Ensure full-bleed video covers without controls */
#bgVideo { pointer-events: none; }

/* Reduce motion accessibility */
@media (prefers-reduced-motion: reduce) {
  .animate-blur-fade-up { animation: none; opacity: 1; filter: none; transform: none; }
  .scan { animation: none; opacity: 0; }
}
