/* Base, animaciones y utilidades de página */
  body { background:#09090b; }
  .grad-text { background:linear-gradient(100deg,#60a5fa,#38bdf8 60%,#7dd3fc); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .glow { background:radial-gradient(60% 50% at 70% 0%,rgba(59,108,255,.30),transparent 70%),radial-gradient(40% 40% at 10% 30%,rgba(14,165,233,.18),transparent 70%); }
  .grid-bg { background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px); background-size:48px 48px; -webkit-mask-image:radial-gradient(ellipse at 50% 0%,#000 30%,transparent 75%); mask-image:radial-gradient(ellipse at 50% 0%,#000 30%,transparent 75%); }
  .card { transition:border-color .25s, transform .25s; }
  
  .phone-float { animation:float 6s ease-in-out infinite; }
  @keyframes float { 50% { transform:translateY(-10px) rotate(var(--r,0deg)); } }
  .hero-in > * { opacity:0; transform:translateY(14px); animation:in .7s cubic-bezier(.2,.7,.2,1) forwards; }
  .hero-in > *:nth-child(2){animation-delay:.1s} .hero-in > *:nth-child(3){animation-delay:.2s} .hero-in > *:nth-child(4){animation-delay:.3s}
  @keyframes in { to { opacity:1; transform:none; } }
  .tab[aria-current="true"] { color:#fff; }
  .menu-link[aria-current="true"] { background:rgba(59,108,255,.18); }
