import { QueryClientProvider, QueryClient } from "@tanstack/react-query";
import { useRouterState, Link, createRootRouteWithContext, useRouter, Outlet, HeadContent, Scripts, createFileRoute, lazyRouteComponent, notFound, createRouter } from "@tanstack/react-router";
import { jsx, jsxs } from "react/jsx-runtime";
import * as React from "react";
import { useState, useEffect, createContext, useContext } from "react";
import { Sun, Moon, Download, X, Menu, Github, Linkedin, Twitter, Mail, Phone, MapPin, MessageCircle } from "lucide-react";
import { motion, AnimatePresence } from "motion/react";
import { Slot } from "@radix-ui/react-slot";
import { cva } from "class-variance-authority";
import { clsx } from "clsx";
import { twMerge } from "tailwind-merge";
import { Toaster as Toaster$1 } from "sonner";
const appCss = "/assets/styles-DvcgCyEf.css";
function reportLovableError(error, context = {}) {
  if (typeof window === "undefined") return;
  window.__lovableEvents?.captureException?.(
    error,
    {
      source: "react_error_boundary",
      route: window.location.pathname,
      ...context
    },
    {
      mechanism: "react_error_boundary",
      handled: false,
      severity: "error"
    }
  );
}
const ThemeCtx = createContext({ theme: "light", toggle: () => {
} });
function ThemeProvider({ children }) {
  const [theme, setTheme] = useState("light");
  useEffect(() => {
    const stored = typeof window !== "undefined" && localStorage.getItem("theme");
    const prefersDark = typeof window !== "undefined" && window.matchMedia("(prefers-color-scheme: dark)").matches;
    const initial = stored ?? (prefersDark ? "dark" : "light");
    setTheme(initial);
  }, []);
  useEffect(() => {
    const root = document.documentElement;
    root.classList.toggle("dark", theme === "dark");
    localStorage.setItem("theme", theme);
  }, [theme]);
  return /* @__PURE__ */ jsx(ThemeCtx.Provider, { value: { theme, toggle: () => setTheme((t) => t === "dark" ? "light" : "dark") }, children });
}
const useTheme = () => useContext(ThemeCtx);
const ecommerce = "/assets/project-ecommerce-CmEA9iC1.jpg";
const wordpress = "/assets/project-wordpress-TCSeCuqa.jpg";
const laravel = "/assets/project-laravel-1Q8l9eiE.jpg";
const landing = "/assets/project-landing-DeT5QLUO.jpg";
const crm = "/assets/project-crm-D-E6phpN.jpg";
const lms = "/assets/project-lms-CX3Fl8t2.jpg";
const SITE = {
  name: "Sujon Kumar Dey",
  email: "hello@sujondey.dev",
  phone: "+880 1700-000000",
  whatsapp: "8801700000000",
  location: "Dhaka, Bangladesh"
};
const NAV = [
  { to: "/", label: "Home" },
  { to: "/portfolio", label: "Portfolio" },
  { to: "/experience", label: "Experience" },
  { to: "/certifications", label: "Certifications" },
  { to: "/courses", label: "Courses" },
  { to: "/testimonials", label: "Testimonials" },
  { to: "/blog", label: "Blog" },
  { to: "/contact", label: "Contact" }
];
const STATS = [
  { value: 8, suffix: "+", label: "Years of Experience" },
  { value: 250, suffix: "+", label: "Completed Projects" },
  { value: 1200, suffix: "+", label: "Students Trained" },
  { value: 15, suffix: "+", label: "Certifications" }
];
const SERVICES = [
  { icon: "Code2", title: "Full Stack Web Development", desc: "End-to-end web applications using React, Next.js, Node.js, and modern databases." },
  { icon: "Globe", title: "WordPress Development", desc: "Custom themes, plugins, and high-performance WordPress sites tailored to your brand." },
  { icon: "Server", title: "Laravel Development", desc: "Robust PHP/Laravel applications, REST APIs, and complex business systems." },
  { icon: "ShoppingCart", title: "E-commerce Development", desc: "WooCommerce, Shopify, and custom e-commerce solutions that convert." },
  { icon: "Zap", title: "Website Speed Optimization", desc: "Achieve 90+ PageSpeed scores with deep performance audits and Core Web Vitals fixes." },
  { icon: "Search", title: "Technical SEO", desc: "Schema markup, site architecture, and on-page SEO that helps you rank." },
  { icon: "Wrench", title: "Website Maintenance", desc: "Ongoing updates, security hardening, backups, and 24/7 monitoring." }
];
const PROJECTS = [
  { slug: "modern-ecommerce", title: "Modern E-commerce Store", category: "E-commerce", image: ecommerce, tech: ["Next.js", "Stripe", "Tailwind", "PostgreSQL"], summary: "A premium DTC store delivering blazing-fast checkout and rich product discovery.", challenge: "Legacy storefront with 6s load times and 1.2% checkout conversion.", solution: "Rebuilt on Next.js with edge ISR, Stripe Elements, and a custom search powered by Meilisearch.", results: ["1.1s LCP", "3.4% checkout conversion", "+62% mobile revenue"], live: "#" },
  { slug: "corporate-wordpress", title: "Corporate WordPress Site", category: "WordPress", image: wordpress, tech: ["WordPress", "ACF Pro", "PHP", "WPRocket"], summary: "Enterprise marketing site with a custom block library and multilingual support.", challenge: "Marketing team needed full editing autonomy without breaking design.", solution: "Custom Gutenberg blocks with strict design tokens and a visual page builder layer.", results: ["96 Lighthouse", "3x publishing speed", "WCAG 2.1 AA"], live: "#" },
  { slug: "laravel-saas", title: "Laravel SaaS Dashboard", category: "Laravel", image: laravel, tech: ["Laravel 11", "Livewire", "MySQL", "Redis"], summary: "Multi-tenant SaaS with billing, analytics, and a role-based admin.", challenge: "Scale to 10k tenants while keeping per-request latency low.", solution: "Tenant-aware caching, queued jobs, and a real-time dashboard.", results: ["120ms p95", "10k tenants", "99.98% uptime"], live: "#" },
  { slug: "saas-landing", title: "SaaS Product Landing Page", category: "Landing Pages", image: landing, tech: ["React", "Framer Motion", "Tailwind"], summary: "Conversion-optimized launch page with bold motion and a 7.4% signup rate.", challenge: "Tight launch deadline with no design system in place.", solution: "Built a design system, hero motion sequence, and an A/B test framework.", results: ["7.4% signup CVR", "Launched in 9 days", "Featured on Product Hunt"], live: "#" },
  { slug: "custom-crm", title: "Custom CRM Application", category: "Custom Applications", image: crm, tech: ["React", "Node.js", "PostgreSQL", "GraphQL"], summary: "A bespoke CRM replacing 4 disconnected SaaS tools for a logistics firm.", challenge: "Sales team juggled spreadsheets, email, and 3 SaaS apps.", solution: "Unified CRM with pipeline automation, email sync, and reporting.", results: ["40% less admin time", "2x pipeline visibility", "ROI in 4 months"], live: "#" },
  { slug: "learning-platform", title: "Online Learning Platform", category: "Custom Applications", image: lms, tech: ["Next.js", "Supabase", "Mux", "Stripe"], summary: "LMS serving 5,000+ students with video courses, quizzes, and certificates.", challenge: "Build an LMS that scales without a vendor lock-in.", solution: "Headless architecture with Supabase auth, Mux video, and Stripe subscriptions.", results: ["5,000+ students", "98% video uptime", "Cert automation"], live: "#" }
];
const PROJECT_CATEGORIES = ["All", "WordPress", "Laravel", "E-commerce", "Landing Pages", "Custom Applications"];
const EXPERIENCE = [
  { role: "Web Team Lead", company: "Creative Tech Studio", period: "2023 — Present", desc: "Leading a team of 9 engineers shipping client and product work. Architecture, code review, mentoring, and stakeholder strategy." },
  { role: "Full Stack Developer", company: "Digital Agency Ltd.", period: "2021 — 2023", desc: "Built 60+ client projects across Laravel, WordPress, and React. Owned performance budgets and CI/CD pipelines." },
  { role: "Front End Developer", company: "Pixel Forge", period: "2019 — 2021", desc: "Crafted pixel-perfect, animated marketing experiences. Established the component library still in use today." },
  { role: "Project Coordinator", company: "Webcraft Solutions", period: "2018 — 2019", desc: "Coordinated 20+ concurrent projects, owning scope, timelines, and client communication." },
  { role: "Trainer & Mentor", company: "NSDA / BTEB Programs", period: "2019 — Present", desc: "Trained 1,200+ students in modern web development, freelancing, and digital skills." }
];
const CERTIFICATIONS = [
  { title: "NSDA Web Development Certification", issuer: "National Skills Development Authority", year: "2022", desc: "Government-recognized certification for full stack web development competencies." },
  { title: "BTEB Professional Certificate", issuer: "Bangladesh Technical Education Board", year: "2021", desc: "Accredited technical certification covering software engineering fundamentals." },
  { title: "Professional Training Certificate", issuer: "Creative IT Institute", year: "2020", desc: "Advanced training in MERN stack, DevOps, and team leadership." },
  { title: "Laravel Certified Developer", issuer: "Laravel", year: "2023", desc: "Official certification covering Laravel 10+ best practices and architecture." },
  { title: "Google Mobile Web Specialist", issuer: "Google", year: "2022", desc: "Performance, accessibility, and progressive web app credentials." },
  { title: "Meta Front-End Developer", issuer: "Meta", year: "2022", desc: "Professional certificate covering modern React and front-end engineering." }
];
const COURSES = [
  { title: "Complete Web Development Bootcamp", duration: "6 months", price: "BDT 25,000", curriculum: ["HTML, CSS, JavaScript", "React & Next.js", "Node.js & databases", "Deployment & DevOps"], benefits: ["1-on-1 mentorship", "Live projects", "Job placement support", "Lifetime community"] },
  { title: "WordPress Mastery Course", duration: "3 months", price: "BDT 12,000", curriculum: ["WordPress fundamentals", "Custom theme development", "Plugin development", "WooCommerce stores"], benefits: ["Real client projects", "Premium plugins included", "Hosting setup", "SEO optimization"] },
  { title: "Freelancing Success Training", duration: "2 months", price: "BDT 8,000", curriculum: ["Upwork & Fiverr setup", "Proposal writing", "Client communication", "Pricing strategy"], benefits: ["First-order guarantee", "Profile review", "Portfolio audit", "Income roadmap"] },
  { title: "Digital Skills Foundation", duration: "1 month", price: "BDT 5,000", curriculum: ["Productivity tools", "Cloud collaboration", "Basic web presence", "AI tools for work"], benefits: ["Beginner-friendly", "Weekend batch", "Certificate", "Career counseling"] }
];
const TESTIMONIALS = [
  { name: "Rahim Ahmed", role: "Student • Web Bootcamp", rating: 5, photo: "RA", text: "Sujon's bootcamp completely changed my career. Within 4 months of graduating I landed my first remote job at a US agency." },
  { name: "Sarah Johnson", role: "CEO, NovaCommerce", rating: 5, photo: "SJ", text: "Sujon rebuilt our store and our checkout conversion jumped from 1.2% to 3.4%. Clear communicator and brilliant engineer." },
  { name: "Tanvir Hasan", role: "Student • WordPress Course", rating: 5, photo: "TH", text: "Best mentor I've ever had. The course is practical, focused, and I'm now earning full-time on Upwork." },
  { name: "Michael Chen", role: "CTO, BrightLogix", rating: 5, photo: "MC", text: "We hired Sujon's team for a complex Laravel SaaS. Delivered on time, well-tested, and beautifully architected." },
  { name: "Nadia Karim", role: "Student • Freelancing", rating: 5, photo: "NK", text: "I earned my first $500 within a month of joining. The proposal templates alone are worth the price." },
  { name: "James Patel", role: "Founder, GreenLeaf", rating: 5, photo: "JP", text: "Reliable, fast, and genuinely cares about results. Our site is finally a real growth channel." }
];
const BLOG_POSTS = [
  { slug: "scaling-laravel-saas", title: "Scaling a Laravel SaaS to 10,000 Tenants", category: "Laravel", date: "May 18, 2026", excerpt: "Hard-won lessons from running a multi-tenant Laravel app at scale: caching, queues, and the boring stuff that matters.", readTime: "8 min", featured: true },
  { slug: "wordpress-vs-headless", title: "WordPress vs Headless: A 2026 Decision Guide", category: "WordPress", date: "April 30, 2026", excerpt: "When traditional WordPress still wins, when to go headless, and the hybrid setups I keep recommending.", readTime: "6 min" },
  { slug: "core-web-vitals-playbook", title: "The Core Web Vitals Playbook for Real Sites", category: "Performance", date: "April 12, 2026", excerpt: "A practical sequence I follow on every audit: from LCP wins to JavaScript diet to image strategy.", readTime: "10 min" },
  { slug: "freelancing-first-1000", title: "How My Students Earn Their First $1,000 Online", category: "Freelancing", date: "March 22, 2026", excerpt: "The proposal patterns, niches, and platforms that work in 2026.", readTime: "7 min" },
  { slug: "team-leadership-engineers", title: "Leading a 9-Person Engineering Team Without Burning Out", category: "Leadership", date: "March 5, 2026", excerpt: "Rituals, async writing, and the management leverage I lean on every week.", readTime: "9 min" },
  { slug: "shipping-better-react", title: "Shipping Better React in 2026", category: "React", date: "February 14, 2026", excerpt: "Server components, suspense, and the patterns I reach for in production apps.", readTime: "11 min" }
];
const BLOG_CATEGORIES = ["All", "Laravel", "WordPress", "Performance", "Freelancing", "Leadership", "React"];
function cn(...inputs) {
  return twMerge(clsx(inputs));
}
const buttonVariants = cva(
  "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
  {
    variants: {
      variant: {
        default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
        destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
        outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
        secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
        ghost: "hover:bg-accent hover:text-accent-foreground",
        link: "text-primary underline-offset-4 hover:underline"
      },
      size: {
        default: "h-9 px-4 py-2",
        sm: "h-8 rounded-md px-3 text-xs",
        lg: "h-10 rounded-md px-8",
        icon: "h-9 w-9"
      }
    },
    defaultVariants: {
      variant: "default",
      size: "default"
    }
  }
);
const Button = React.forwardRef(
  ({ className, variant, size, asChild = false, ...props }, ref) => {
    const Comp = asChild ? Slot : "button";
    return /* @__PURE__ */ jsx(Comp, { className: cn(buttonVariants({ variant, size, className })), ref, ...props });
  }
);
Button.displayName = "Button";
function Header() {
  const { theme, toggle } = useTheme();
  const [open, setOpen] = useState(false);
  const pathname = useRouterState({ select: (s) => s.location.pathname });
  return /* @__PURE__ */ jsxs("header", { className: "sticky top-0 z-50 border-b border-border/60 bg-background/80 backdrop-blur-xl", children: [
    /* @__PURE__ */ jsxs("div", { className: "container-px mx-auto flex h-16 max-w-7xl items-center justify-between", children: [
      /* @__PURE__ */ jsxs(Link, { to: "/", className: "flex items-center gap-2 font-semibold", children: [
        /* @__PURE__ */ jsx("span", { className: "grid h-9 w-9 place-items-center rounded-lg bg-gradient-hero text-primary-foreground shadow-glow", children: "SK" }),
        /* @__PURE__ */ jsx("span", { className: "hidden text-base sm:inline", children: SITE.name })
      ] }),
      /* @__PURE__ */ jsx("nav", { className: "hidden items-center gap-1 lg:flex", children: NAV.map((n) => {
        const active = pathname === n.to;
        return /* @__PURE__ */ jsxs(
          Link,
          {
            to: n.to,
            className: cn(
              "relative rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:text-foreground",
              active && "text-foreground"
            ),
            children: [
              n.label,
              active && /* @__PURE__ */ jsx(
                motion.span,
                {
                  layoutId: "nav-underline",
                  className: "absolute inset-x-3 -bottom-px h-0.5 rounded bg-gradient-hero"
                }
              )
            ]
          },
          n.to
        );
      }) }),
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: toggle,
            "aria-label": "Toggle theme",
            className: "grid h-9 w-9 place-items-center rounded-md border border-border bg-background transition-colors hover:bg-secondary",
            children: theme === "dark" ? /* @__PURE__ */ jsx(Sun, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx(Moon, { className: "h-4 w-4" })
          }
        ),
        /* @__PURE__ */ jsx(Button, { asChild: true, size: "sm", className: "hidden bg-gradient-hero shadow-elegant hover:opacity-95 md:inline-flex", children: /* @__PURE__ */ jsxs(Link, { to: "/contact", children: [
          /* @__PURE__ */ jsx(Download, { className: "mr-2 h-4 w-4" }),
          " Resume"
        ] }) }),
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: () => setOpen((o) => !o),
            className: "grid h-9 w-9 place-items-center rounded-md border border-border lg:hidden",
            "aria-label": "Toggle menu",
            children: open ? /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx(Menu, { className: "h-4 w-4" })
          }
        )
      ] })
    ] }),
    /* @__PURE__ */ jsx(AnimatePresence, { children: open && /* @__PURE__ */ jsx(
      motion.div,
      {
        initial: { height: 0, opacity: 0 },
        animate: { height: "auto", opacity: 1 },
        exit: { height: 0, opacity: 0 },
        className: "overflow-hidden border-t border-border bg-background lg:hidden",
        children: /* @__PURE__ */ jsx("div", { className: "container-px mx-auto flex max-w-7xl flex-col gap-1 py-3", children: NAV.map((n) => /* @__PURE__ */ jsx(
          Link,
          {
            to: n.to,
            onClick: () => setOpen(false),
            className: "rounded-md px-3 py-2 text-sm font-medium text-muted-foreground hover:bg-secondary hover:text-foreground",
            children: n.label
          },
          n.to
        )) })
      }
    ) })
  ] });
}
function Footer() {
  return /* @__PURE__ */ jsx("footer", { className: "border-t border-border bg-gradient-subtle", children: /* @__PURE__ */ jsxs("div", { className: "container-px mx-auto max-w-7xl py-16", children: [
    /* @__PURE__ */ jsxs("div", { className: "grid gap-10 md:grid-cols-4", children: [
      /* @__PURE__ */ jsxs("div", { className: "md:col-span-2", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 font-semibold", children: [
          /* @__PURE__ */ jsx("span", { className: "grid h-9 w-9 place-items-center rounded-lg bg-gradient-hero text-primary-foreground", children: "SK" }),
          /* @__PURE__ */ jsx("span", { children: SITE.name })
        ] }),
        /* @__PURE__ */ jsx("p", { className: "mt-4 max-w-md text-sm text-muted-foreground", children: "Building premium web experiences and training the next generation of developers. Available worldwide for freelance and consulting work." }),
        /* @__PURE__ */ jsx("div", { className: "mt-6 flex gap-3", children: [
          { Icon: Github, href: "#" },
          { Icon: Linkedin, href: "#" },
          { Icon: Twitter, href: "#" }
        ].map(({ Icon, href }, i) => /* @__PURE__ */ jsx(
          "a",
          {
            href,
            className: "grid h-10 w-10 place-items-center rounded-lg border border-border bg-card transition-all hover:border-primary hover:text-primary",
            children: /* @__PURE__ */ jsx(Icon, { className: "h-4 w-4" })
          },
          i
        )) })
      ] }),
      /* @__PURE__ */ jsxs("div", { children: [
        /* @__PURE__ */ jsx("h4", { className: "text-sm font-semibold", children: "Navigation" }),
        /* @__PURE__ */ jsx("ul", { className: "mt-4 space-y-2 text-sm text-muted-foreground", children: NAV.slice(0, 5).map((n) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { to: n.to, className: "transition-colors hover:text-foreground", children: n.label }) }, n.to)) })
      ] }),
      /* @__PURE__ */ jsxs("div", { children: [
        /* @__PURE__ */ jsx("h4", { className: "text-sm font-semibold", children: "Get in touch" }),
        /* @__PURE__ */ jsxs("ul", { className: "mt-4 space-y-3 text-sm text-muted-foreground", children: [
          /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2", children: [
            /* @__PURE__ */ jsx(Mail, { className: "h-4 w-4 text-primary" }),
            " ",
            SITE.email
          ] }),
          /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2", children: [
            /* @__PURE__ */ jsx(Phone, { className: "h-4 w-4 text-primary" }),
            " ",
            SITE.phone
          ] }),
          /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2", children: [
            /* @__PURE__ */ jsx(MapPin, { className: "h-4 w-4 text-primary" }),
            " ",
            SITE.location
          ] })
        ] })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "mt-12 flex flex-col items-center justify-between gap-4 border-t border-border pt-6 text-xs text-muted-foreground sm:flex-row", children: [
      /* @__PURE__ */ jsxs("p", { children: [
        "© ",
        (/* @__PURE__ */ new Date()).getFullYear(),
        " ",
        SITE.name,
        ". Crafted with care."
      ] }),
      /* @__PURE__ */ jsx("p", { children: "Built with React, TanStack, and a lot of coffee." })
    ] })
  ] }) });
}
function FloatingActions() {
  return /* @__PURE__ */ jsxs(
    "a",
    {
      href: `https://wa.me/${SITE.whatsapp}`,
      target: "_blank",
      rel: "noopener noreferrer",
      "aria-label": "Chat on WhatsApp",
      className: "fixed bottom-6 right-6 z-40 grid h-14 w-14 place-items-center rounded-full bg-[#25D366] text-white shadow-elegant transition-transform hover:scale-110",
      children: [
        /* @__PURE__ */ jsx(MessageCircle, { className: "h-6 w-6" }),
        /* @__PURE__ */ jsx("span", { className: "absolute inset-0 -z-10 animate-ping rounded-full bg-[#25D366] opacity-30" })
      ]
    }
  );
}
function SiteShell({ children }) {
  return /* @__PURE__ */ jsxs("div", { className: "flex min-h-screen flex-col bg-background", children: [
    /* @__PURE__ */ jsx(Header, {}),
    /* @__PURE__ */ jsx("main", { className: "flex-1", children }),
    /* @__PURE__ */ jsx(Footer, {}),
    /* @__PURE__ */ jsx(FloatingActions, {})
  ] });
}
const Toaster = ({ ...props }) => {
  return /* @__PURE__ */ jsx(
    Toaster$1,
    {
      className: "toaster group",
      toastOptions: {
        classNames: {
          toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
          description: "group-[.toast]:text-muted-foreground",
          actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
          cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
        }
      },
      ...props
    }
  );
};
function NotFoundComponent() {
  return /* @__PURE__ */ jsx("div", { className: "flex min-h-screen items-center justify-center bg-background px-4", children: /* @__PURE__ */ jsxs("div", { className: "max-w-md text-center", children: [
    /* @__PURE__ */ jsx("h1", { className: "text-7xl font-bold text-foreground", children: "404" }),
    /* @__PURE__ */ jsx("h2", { className: "mt-4 text-xl font-semibold text-foreground", children: "Page not found" }),
    /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: "The page you're looking for doesn't exist or has been moved." }),
    /* @__PURE__ */ jsx("div", { className: "mt-6", children: /* @__PURE__ */ jsx(
      Link,
      {
        to: "/",
        className: "inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90",
        children: "Go home"
      }
    ) })
  ] }) });
}
function ErrorComponent({ error, reset }) {
  console.error(error);
  const router2 = useRouter();
  useEffect(() => {
    reportLovableError(error, { boundary: "tanstack_root_error_component" });
  }, [error]);
  return /* @__PURE__ */ jsx("div", { className: "flex min-h-screen items-center justify-center bg-background px-4", children: /* @__PURE__ */ jsxs("div", { className: "max-w-md text-center", children: [
    /* @__PURE__ */ jsx("h1", { className: "text-xl font-semibold tracking-tight text-foreground", children: "This page didn't load" }),
    /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: "Something went wrong on our end. You can try refreshing or head back home." }),
    /* @__PURE__ */ jsxs("div", { className: "mt-6 flex flex-wrap justify-center gap-2", children: [
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: () => {
            router2.invalidate();
            reset();
          },
          className: "inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90",
          children: "Try again"
        }
      ),
      /* @__PURE__ */ jsx(
        "a",
        {
          href: "/",
          className: "inline-flex items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:bg-accent",
          children: "Go home"
        }
      )
    ] })
  ] }) });
}
const Route$a = createRootRouteWithContext()({
  head: () => ({
    meta: [
      { charSet: "utf-8" },
      { name: "viewport", content: "width=device-width, initial-scale=1" },
      { title: "Sujon Kumar Dey — Full Stack Developer & Trainer" },
      { name: "description", content: "Certified full stack web developer, team leader, and professional trainer. Hire me for premium web development or join my training programs." },
      { name: "author", content: "Sujon Kumar Dey" },
      { property: "og:title", content: "Sujon Kumar Dey — Full Stack Developer & Trainer" },
      { property: "og:description", content: "Certified full stack web developer, team leader, and professional trainer. Hire me for premium web development or join my training programs." },
      { property: "og:type", content: "website" },
      { name: "twitter:card", content: "summary" },
      { name: "twitter:title", content: "Sujon Kumar Dey — Full Stack Developer & Trainer" },
      { name: "twitter:description", content: "Certified full stack web developer, team leader, and professional trainer. Hire me for premium web development or join my training programs." },
      { property: "og:image", content: "https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/e941bd5e-e87f-45c5-bdab-16503f5bba01/id-preview-9ae38121--9b8e3d0f-b125-4cc3-a202-7677759193bf.lovable.app-1780345975515.png" },
      { name: "twitter:image", content: "https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/e941bd5e-e87f-45c5-bdab-16503f5bba01/id-preview-9ae38121--9b8e3d0f-b125-4cc3-a202-7677759193bf.lovable.app-1780345975515.png" }
    ],
    links: [
      {
        rel: "stylesheet",
        href: appCss
      },
      { rel: "preconnect", href: "https://fonts.googleapis.com" },
      { rel: "preconnect", href: "https://fonts.gstatic.com", crossOrigin: "anonymous" },
      { rel: "stylesheet", href: "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@600;700;800&display=swap" }
    ]
  }),
  shellComponent: RootShell,
  component: RootComponent,
  notFoundComponent: NotFoundComponent,
  errorComponent: ErrorComponent
});
function RootShell({ children }) {
  return /* @__PURE__ */ jsxs("html", { lang: "en", children: [
    /* @__PURE__ */ jsx("head", { children: /* @__PURE__ */ jsx(HeadContent, {}) }),
    /* @__PURE__ */ jsxs("body", { children: [
      children,
      /* @__PURE__ */ jsx(Scripts, {})
    ] })
  ] });
}
function RootComponent() {
  const { queryClient } = Route$a.useRouteContext();
  return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsxs(ThemeProvider, { children: [
    /* @__PURE__ */ jsx(SiteShell, { children: /* @__PURE__ */ jsx(Outlet, {}) }),
    /* @__PURE__ */ jsx(Toaster, {})
  ] }) });
}
const $$splitComponentImporter$8 = () => import("./testimonials-CMI40UQQ.js");
const Route$9 = createFileRoute("/testimonials")({
  head: () => ({
    meta: [{
      title: "Testimonials — Sujon Kumar Dey"
    }, {
      name: "description",
      content: "Reviews from clients and students who have worked with or learned from Sujon Kumar Dey."
    }, {
      property: "og:title",
      content: "Testimonials — Sujon Kumar Dey"
    }, {
      property: "og:description",
      content: "What clients and students are saying."
    }, {
      property: "og:url",
      content: "/testimonials"
    }],
    links: [{
      rel: "canonical",
      href: "/testimonials"
    }]
  }),
  component: lazyRouteComponent($$splitComponentImporter$8, "component")
});
const BASE_URL = "";
const Route$8 = createFileRoute("/sitemap.xml")({
  server: {
    handlers: {
      GET: async () => {
        const paths = [
          "/",
          "/portfolio",
          "/experience",
          "/certifications",
          "/courses",
          "/testimonials",
          "/blog",
          "/contact",
          ...PROJECTS.map((p) => `/portfolio/${p.slug}`)
        ];
        const xml = [
          `<?xml version="1.0" encoding="UTF-8"?>`,
          `<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">`,
          ...paths.map((p) => `  <url><loc>${BASE_URL}${p}</loc></url>`),
          `</urlset>`
        ].join("\n");
        return new Response(xml, { headers: { "Content-Type": "application/xml" } });
      }
    }
  }
});
const $$splitComponentImporter$7 = () => import("./portfolio-CrEV9V7n.js");
const Route$7 = createFileRoute("/portfolio")({
  head: () => ({
    meta: [{
      title: "Portfolio — Sujon Kumar Dey"
    }, {
      name: "description",
      content: "Filterable portfolio of WordPress, Laravel, e-commerce, landing pages, and custom web applications."
    }, {
      property: "og:title",
      content: "Portfolio — Sujon Kumar Dey"
    }, {
      property: "og:description",
      content: "Filterable portfolio across WordPress, Laravel, e-commerce, and custom applications."
    }, {
      property: "og:url",
      content: "/portfolio"
    }],
    links: [{
      rel: "canonical",
      href: "/portfolio"
    }]
  }),
  component: lazyRouteComponent($$splitComponentImporter$7, "component")
});
const $$splitComponentImporter$6 = () => import("./experience-DWH6lKB9.js");
const Route$6 = createFileRoute("/experience")({
  head: () => ({
    meta: [{
      title: "Experience — Sujon Kumar Dey"
    }, {
      name: "description",
      content: "8 years of professional experience across web development, team leadership, and training."
    }, {
      property: "og:title",
      content: "Experience — Sujon Kumar Dey"
    }, {
      property: "og:description",
      content: "Career timeline across full stack development and team leadership."
    }, {
      property: "og:url",
      content: "/experience"
    }],
    links: [{
      rel: "canonical",
      href: "/experience"
    }]
  }),
  component: lazyRouteComponent($$splitComponentImporter$6, "component")
});
const $$splitComponentImporter$5 = () => import("./courses-DT04Lwvc.js");
const Route$5 = createFileRoute("/courses")({
  head: () => ({
    meta: [{
      title: "Training & Courses — Sujon Kumar Dey"
    }, {
      name: "description",
      content: "Premium training programs in full stack web development, WordPress, freelancing, and digital skills."
    }, {
      property: "og:title",
      content: "Training & Courses — Sujon Kumar Dey"
    }, {
      property: "og:description",
      content: "Live cohort-based programs that produce real, employable developers."
    }, {
      property: "og:url",
      content: "/courses"
    }],
    links: [{
      rel: "canonical",
      href: "/courses"
    }]
  }),
  component: lazyRouteComponent($$splitComponentImporter$5, "component")
});
const $$splitComponentImporter$4 = () => import("./contact-a8aKdPhP.js");
const Route$4 = createFileRoute("/contact")({
  head: () => ({
    meta: [{
      title: "Contact — Sujon Kumar Dey"
    }, {
      name: "description",
      content: "Get in touch about projects, training, or speaking opportunities."
    }, {
      property: "og:title",
      content: "Contact — Sujon Kumar Dey"
    }, {
      property: "og:description",
      content: "Reach out about projects, training, or collaborations."
    }, {
      property: "og:url",
      content: "/contact"
    }],
    links: [{
      rel: "canonical",
      href: "/contact"
    }]
  }),
  component: lazyRouteComponent($$splitComponentImporter$4, "component")
});
const $$splitComponentImporter$3 = () => import("./certifications-D5ThvXfH.js");
const Route$3 = createFileRoute("/certifications")({
  head: () => ({
    meta: [{
      title: "Certifications — Sujon Kumar Dey"
    }, {
      name: "description",
      content: "Professional certifications including NSDA, BTEB, and industry training credentials."
    }, {
      property: "og:title",
      content: "Certifications — Sujon Kumar Dey"
    }, {
      property: "og:description",
      content: "NSDA, BTEB and industry-recognized training credentials."
    }, {
      property: "og:url",
      content: "/certifications"
    }],
    links: [{
      rel: "canonical",
      href: "/certifications"
    }]
  }),
  component: lazyRouteComponent($$splitComponentImporter$3, "component")
});
const $$splitComponentImporter$2 = () => import("./blog-5qOk2r-w.js");
const Route$2 = createFileRoute("/blog")({
  head: () => ({
    meta: [{
      title: "Blog — Sujon Kumar Dey"
    }, {
      name: "description",
      content: "Writing on web development, Laravel, WordPress, performance, freelancing, and team leadership."
    }, {
      property: "og:title",
      content: "Blog — Sujon Kumar Dey"
    }, {
      property: "og:description",
      content: "Articles on web development, performance, and freelancing."
    }, {
      property: "og:url",
      content: "/blog"
    }],
    links: [{
      rel: "canonical",
      href: "/blog"
    }]
  }),
  component: lazyRouteComponent($$splitComponentImporter$2, "component")
});
const $$splitComponentImporter$1 = () => import("./index-4k4Rxjcr.js");
const Route$1 = createFileRoute("/")({
  head: () => ({
    meta: [{
      title: "Sujon Kumar Dey — Full Stack Developer, Team Leader & Trainer"
    }, {
      name: "description",
      content: "Hire a certified full stack web developer or join premium training programs in WordPress, Laravel, and modern web development."
    }, {
      property: "og:title",
      content: "Sujon Kumar Dey — Full Stack Developer & Trainer"
    }, {
      property: "og:description",
      content: "Premium web development services and professional training programs."
    }, {
      property: "og:url",
      content: "/"
    }],
    links: [{
      rel: "canonical",
      href: "/"
    }],
    scripts: [{
      type: "application/ld+json",
      children: JSON.stringify({
        "@context": "https://schema.org",
        "@type": "Person",
        name: SITE.name,
        jobTitle: "Full Stack Web Developer & Trainer",
        email: SITE.email,
        address: SITE.location
      })
    }]
  }),
  component: lazyRouteComponent($$splitComponentImporter$1, "component")
});
const $$splitNotFoundComponentImporter = () => import("./portfolio._slug-Dr85Glst.js");
const $$splitComponentImporter = () => import("./portfolio._slug-Cua8gJ0h.js");
const Route = createFileRoute("/portfolio/$slug")({
  loader: ({
    params
  }) => {
    const project = PROJECTS.find((p) => p.slug === params.slug);
    if (!project) throw notFound();
    return {
      project
    };
  },
  head: ({
    loaderData
  }) => ({
    meta: [{
      title: `${loaderData?.project.title ?? "Case Study"} — Sujon Kumar Dey`
    }, {
      name: "description",
      content: loaderData?.project.summary ?? ""
    }, {
      property: "og:title",
      content: loaderData?.project.title ?? "Case Study"
    }, {
      property: "og:description",
      content: loaderData?.project.summary ?? ""
    }, {
      property: "og:image",
      content: loaderData?.project.image ?? ""
    }]
  }),
  component: lazyRouteComponent($$splitComponentImporter, "component"),
  notFoundComponent: lazyRouteComponent($$splitNotFoundComponentImporter, "notFoundComponent")
});
const TestimonialsRoute = Route$9.update({
  id: "/testimonials",
  path: "/testimonials",
  getParentRoute: () => Route$a
});
const SitemapDotxmlRoute = Route$8.update({
  id: "/sitemap.xml",
  path: "/sitemap.xml",
  getParentRoute: () => Route$a
});
const PortfolioRoute = Route$7.update({
  id: "/portfolio",
  path: "/portfolio",
  getParentRoute: () => Route$a
});
const ExperienceRoute = Route$6.update({
  id: "/experience",
  path: "/experience",
  getParentRoute: () => Route$a
});
const CoursesRoute = Route$5.update({
  id: "/courses",
  path: "/courses",
  getParentRoute: () => Route$a
});
const ContactRoute = Route$4.update({
  id: "/contact",
  path: "/contact",
  getParentRoute: () => Route$a
});
const CertificationsRoute = Route$3.update({
  id: "/certifications",
  path: "/certifications",
  getParentRoute: () => Route$a
});
const BlogRoute = Route$2.update({
  id: "/blog",
  path: "/blog",
  getParentRoute: () => Route$a
});
const IndexRoute = Route$1.update({
  id: "/",
  path: "/",
  getParentRoute: () => Route$a
});
const PortfolioSlugRoute = Route.update({
  id: "/$slug",
  path: "/$slug",
  getParentRoute: () => PortfolioRoute
});
const PortfolioRouteChildren = {
  PortfolioSlugRoute
};
const PortfolioRouteWithChildren = PortfolioRoute._addFileChildren(
  PortfolioRouteChildren
);
const rootRouteChildren = {
  IndexRoute,
  BlogRoute,
  CertificationsRoute,
  ContactRoute,
  CoursesRoute,
  ExperienceRoute,
  PortfolioRoute: PortfolioRouteWithChildren,
  SitemapDotxmlRoute,
  TestimonialsRoute
};
const routeTree = Route$a._addFileChildren(rootRouteChildren)._addFileTypes();
const getRouter = () => {
  const queryClient = new QueryClient();
  const router2 = createRouter({
    routeTree,
    context: { queryClient },
    scrollRestoration: true,
    defaultPreloadStaleTime: 0
  });
  return router2;
};
const router = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  getRouter
}, Symbol.toStringTag, { value: "Module" }));
export {
  Button as B,
  COURSES as C,
  EXPERIENCE as E,
  PROJECTS as P,
  Route as R,
  SITE as S,
  TESTIMONIALS as T,
  PROJECT_CATEGORIES as a,
  CERTIFICATIONS as b,
  cn as c,
  BLOG_POSTS as d,
  BLOG_CATEGORIES as e,
  STATS as f,
  SERVICES as g,
  router as r
};
