diff --git a/app/favicon.ico b/app/favicon.ico
index 718d6fe..87d7dbb 100644
Binary files a/app/favicon.ico and b/app/favicon.ico differ
diff --git a/app/locations/page.tsx b/app/locations/page.tsx
index ebf63ec..c371281 100644
--- a/app/locations/page.tsx
+++ b/app/locations/page.tsx
@@ -13,7 +13,7 @@
* FUTURE:
* - When real online ordering launches, this page could show "Order from Askim"
* vs "Order from Backaplan" with different delivery radii.
- * - Instagram handles for each location are mentioned where relevant.
+ * - Both branches now have the same opening hours.
*/
import Navbar from "@/components/Navbar";
@@ -98,7 +98,7 @@ export default function LocationsPage() {
OPENING HOURS
-
Varies — please check our Instagram @shahisweets_bp for current hours.
+
Monday – Sunday • 11:00 – 21:00
diff --git a/app/menu/page.tsx b/app/menu/page.tsx
index fd638de..fcb52b9 100644
--- a/app/menu/page.tsx
+++ b/app/menu/page.tsx
@@ -1,7 +1,7 @@
"use client";
/**
- * MENU PAGE — Premium Sidebar + Beautiful Loading Experience
+ * MENU PAGE — Premium Sidebar Navigation
*/
import { useEffect, useState, useMemo } from "react";
@@ -11,26 +11,16 @@ import { ScrollTrigger } from "gsap/ScrollTrigger";
import Navbar from "@/components/Navbar";
import Footer from "@/components/Footer";
import { useCart } from "@/components/CartContext";
-import { motion, AnimatePresence } from "framer-motion";
gsap.registerPlugin(ScrollTrigger);
export default function MenuPage() {
- const [isLoading, setIsLoading] = useState(true);
const [activeCategory, setActiveCategory] = useState("All");
const [searchQuery, setSearchQuery] = useState("");
const [showVegetarianOnly, setShowVegetarianOnly] = useState(false);
const { addToCart } = useCart();
- // Beautiful loading screen on initial load
- useEffect(() => {
- const timer = setTimeout(() => {
- setIsLoading(false);
- }, 1350);
- return () => clearTimeout(timer);
- }, []);
-
// Sidebar categories
const sidebarCategories = [
{ id: "All", name: "All Dishes" },
@@ -73,43 +63,6 @@ export default function MenuPage() {
window.scrollTo({ top: 220, behavior: "smooth" });
};
- // === BEAUTIFUL LOADING SCREEN ===
- if (isLoading) {
- return (
-
-
-
-
-
-
- Loading the Menu
-
-
Preparing the Royal Table...
-
-
-
- {[0, 1, 2].map((i) => (
-
- ))}
-
-
-
- );
- }
-
return (
@@ -270,7 +223,7 @@ export default function MenuPage() {
}}
/>
- {/* Video on Hover */}
+ {/* Video on Hover - robust source selection with optimized fallbacks */}
-
+ {/* Optimized variants first (smaller, better quality) */}
+
+
+ {/* Base variants as fallback */}
+
diff --git a/app/page.tsx b/app/page.tsx
index 653d086..ea4293e 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -186,20 +186,21 @@ export default function ShahiKitchenHomepage() {
{/* HERO - Full Banner Video with responsive framing */}
+ flex items-center justify-center pt-40 sm:pt-44 md:pt-52 lg:pt-[200px] xl:pt-[220px] overflow-hidden bg-[#fbf7ef]">
{/* Banner Video - Optimized positioning per device */}
console.error('Hero banner video failed to load', e)}
>
-
-
+ {/* Using the compressed banner1.mp4 from images/logo as intended for the hero */}
+
{/* Subtle gradient to improve visibility of baked-in text */}
diff --git a/components/Footer.tsx b/components/Footer.tsx
index 261c4ad..8e6727e 100644
--- a/components/Footer.tsx
+++ b/components/Footer.tsx
@@ -6,7 +6,7 @@
* Contains:
* - Brand + short tagline
* - Both physical locations with full addresses + phone/email
- * - Opening hours (different per branch — Backaplan is more variable)
+ * - Opening hours (same for both branches)
* - Quick links + social profiles
*
* Note: The phone numbers and addresses here are the canonical source.
@@ -24,10 +24,10 @@ export default function Footer() {
{/* Brand */}
-
+
@@ -66,7 +66,7 @@ export default function Footer() {
OPENING HOURS
Askim: Mon–Sun 11:00–21:00
-
Backaplan: Check Instagram for current hours
+
Backaplan: Mon–Sun 11:00–21:00
diff --git a/components/Navbar.tsx b/components/Navbar.tsx
index 03f21a6..7b651c8 100644
--- a/components/Navbar.tsx
+++ b/components/Navbar.tsx
@@ -54,11 +54,11 @@ export default function Navbar({ variant = "default" }: NavbarProps) {
return (
- {/* Subtle gold accent line at the very bottom */}
-
+ {/* Top subtle gold line for extra frame separation */}
+
{/* Premium Animated Logo */}
@@ -68,8 +68,8 @@ export default function Navbar({ variant = "default" }: NavbarProps) {
className="grid h-12 w-12 place-items-center overflow-hidden rounded-2xl border border-[#c99a2e]/30 bg-white shadow-xl shadow-[#0f5a4a]/10 p-1 transition-all duration-300 group-hover:border-[#c99a2e]/70 group-hover:shadow-[#c99a2e]/25"
>
@@ -186,7 +186,7 @@ export default function Navbar({ variant = "default" }: NavbarProps) {
diff --git a/components/PlayfulHeroScene.tsx b/components/PlayfulHeroScene.tsx
index 4223d19..36130fd 100644
--- a/components/PlayfulHeroScene.tsx
+++ b/components/PlayfulHeroScene.tsx
@@ -37,7 +37,7 @@ export default function PlayfulHeroScene() {
{/* Large cream background circle - matches website exactly so logo absorbs */}
-
@@ -60,7 +60,7 @@ export default function PlayfulHeroScene() {
opacity: { duration: 0.4 },
scale: { duration: 0.4 }
}}
- className="w-[280px] h-[280px] md:w-[360px] md:h-[360px] lg:w-[420px] lg:h-[420px]"
+ className="w-[300px] h-[300px] md:w-[380px] md:h-[380px] lg:w-[440px] lg:h-[440px]"
>
/dev/null || true
+ cp -a .next .next.bak 2>/dev/null || true
+
+ echo "Extracting new tarball..."
+ tar --strip-components=1 -xzf "$TARBALL"
+
+ echo "Cleaning shipped node_modules + cache..."
+ rm -rf node_modules .next/cache 2>/dev/null || true
+
+ echo "Running npm ci..."
+ npm ci
+
+ echo "Building..."
+ npm run build
+
+elif git rev-parse --git-dir > /dev/null 2>&1; then
+ echo "[1/6] Git update mode"
+ pm2 stop "$PM2_APP_NAME" || true
+ git fetch --all
+ git reset --hard origin/main || git reset --hard origin/master
+ npm ci
+ npm run build
+else
+ echo "ERROR: No tarball found in /tmp or /root, and no git repository."
+ echo "Please either:"
+ echo " - scp your new shahi.tar.gz to the server, or"
+ echo " - Run: cp /path/to/shahi.tar.gz /tmp/shahi.tar.gz"
+ exit 1
+fi
+
+echo "[2/6] Dependencies and build complete"
+
+echo "[3/6] Starting / restarting PM2..."
+pm2 start ecosystem.config.cjs --only "$PM2_APP_NAME" || pm2 reload "$PM2_APP_NAME" --update-env || true
+pm2 save
+
+echo "[4/6] Reloading Nginx..."
+sudo nginx -t && sudo systemctl reload nginx
+
+echo "[5/6] Post-deploy health checks..."
+echo "PM2 status:"
+pm2 list | grep -E "shahikitchen|App name" || true
+
+echo ""
+echo "Testing local Next.js process..."
+curl -s --max-time 5 "http://127.0.0.1:${PORT}" | head -c 300 || echo "(first request may be slow)"
+
+echo ""
+echo "[6/6] Deploy finished successfully at $(date)"
+echo "=========================================="
+echo "Website should be live at: http://76.13.210.183"
+echo "=========================================="
\ No newline at end of file