diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..259f995
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,4 @@
+# Upstash Redis (visitor counter)
+# Get these from https://console.upstash.com → Redis → your database → REST API
+UPSTASH_REDIS_REST_URL=https://your-endpoint.upstash.io
+UPSTASH_REDIS_REST_TOKEN=your-token-here
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index fbf7594..17c905d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -2,9 +2,9 @@ name: CI
on:
push:
- branches: [main]
+ branches: [main, dev]
pull_request:
- branches: [main]
+ branches: [main, dev]
jobs:
build:
diff --git a/.github/workflows/pr-target-check.yml b/.github/workflows/pr-target-check.yml
new file mode 100644
index 0000000..3ef2504
--- /dev/null
+++ b/.github/workflows/pr-target-check.yml
@@ -0,0 +1,22 @@
+name: PR Target Check
+
+on:
+ pull_request:
+ branches: [main]
+
+jobs:
+ check-source-branch:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Only allow PRs from dev to main
+ if: github.head_ref != 'dev'
+ run: |
+ echo "::error::PRs targeting 'main' are only allowed from the 'dev' branch."
+ echo "Please target 'dev' instead, or merge your branch into 'dev' first."
+ echo ""
+ echo " Source: ${{ github.head_ref }}"
+ echo " Target: ${{ github.base_ref }}"
+ exit 1
+ - name: PR source branch is valid
+ if: github.head_ref == 'dev'
+ run: echo "PR from 'dev' to 'main' — allowed."
diff --git a/src/components/BackToTop.astro b/src/components/BackToTop.astro
new file mode 100644
index 0000000..c49130b
--- /dev/null
+++ b/src/components/BackToTop.astro
@@ -0,0 +1,82 @@
+
+
+
+
+
+
diff --git a/src/components/Footer.astro b/src/components/Footer.astro
index 79f7740..8459d93 100644
--- a/src/components/Footer.astro
+++ b/src/components/Footer.astro
@@ -4,45 +4,78 @@ const year = new Date().getFullYear();