import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import Script from "next/script";
import "./globals.css";
import { ThemeProvider } from "@/app/components/providers/ThemeProvider";
import { ToastProvider } from "@/app/components/ui/Toast";
import { WaveBackground } from "@/app/components/ui/WaveBackground";
import { Preloader } from "@/app/components/ui/Preloader";
import { SiteShell } from "@/app/components/layout/SiteShell";

const geistSans = Geist({ variable: "--font-geist-sans", subsets: ["latin", "cyrillic"] });
const geistMono = Geist_Mono({ variable: "--font-geist-mono", subsets: ["latin"] });

export const metadata: Metadata = {
  title: "ADEPT ONLINE",
  description: "Онлайн-проект с выразительным стилем и активным комьюнити.",
};

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="ru" className="dark" suppressHydrationWarning>
      <head>
        <link href="https://cdn.jsdelivr.net/npm/remixicon@4.6.0/fonts/remixicon.css" rel="stylesheet" />
        <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" rel="stylesheet" />
      </head>
      <body className={`${geistSans.variable} ${geistMono.variable} min-h-screen antialiased flex flex-col`}>
        <ThemeProvider>
          <ToastProvider>
            <Preloader />
            <WaveBackground />
            <SiteShell>{children}</SiteShell>
          </ToastProvider>
        </ThemeProvider>
        <Script src="https://cdn.jsdelivr.net/npm/gsap@3.12.7/dist/gsap.min.js" strategy="afterInteractive" />
        <Script src="https://cdn.jsdelivr.net/npm/gsap@3.12.7/dist/ScrollTrigger.min.js" strategy="afterInteractive" />
      </body>
    </html>
  );
}