feat(audio,site): calm santoor default music + card-fan logo site redesign
CI/CD / CI - API (dotnet build + engine sim) (push) Successful in 2m0s
CI/CD / CI - Web (tsc + next build) (push) Successful in 1m9s
CI/CD / Deploy - local stack (db + server + web) (push) Successful in 1m18s

- audio: default background music is now the santoor track (calm Persian),
  rebuilt as a real plucked-santoor loop — fast metallic attack, shimmer
  overtones, soft tonic drone, longer Dastgah-e-Shur phrase
- site: marketing logo is now the app's card-fan icon (Logo.tsx + icon.svg);
  hero features the big logo with gold halo, floating suit motifs, and
  polished section dividers

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-16 21:48:59 +03:30
parent 6aa4f37642
commit 9901c5e6d4
5 changed files with 192 additions and 32 deletions
+21 -2
View File
@@ -2,6 +2,7 @@ import {
Users, Bot, Trophy, Gift, MessageCircle, Globe, ShieldCheck, Zap, Crown, Star,
} from "lucide-react";
import { DownloadButtons } from "@/components/DownloadButtons";
import { Logo } from "@/components/Logo";
import { BRAND } from "@/lib/site";
const FEATURES = [
@@ -29,8 +30,22 @@ export default function Home() {
return (
<>
{/* Hero */}
<section className="felt card-pattern">
<section className="felt card-pattern relative overflow-hidden">
{/* decorative card suits floating in the backdrop */}
<span className="suit pointer-events-none absolute right-[6%] top-16 text-8xl"></span>
<span className="suit pointer-events-none absolute left-[8%] top-40 text-7xl"></span>
<span className="suit pointer-events-none absolute left-[14%] bottom-12 text-6xl"></span>
<span className="suit pointer-events-none absolute right-[12%] bottom-20 text-7xl"></span>
<div className="mx-auto max-w-6xl px-4 py-16 text-center sm:py-24">
{/* card-fan brand mark */}
<div className="relative mx-auto mb-8 grid h-40 w-40 place-items-center sm:h-48 sm:w-48">
<div className="gold-halo absolute inset-0 rounded-full" />
<div className="float-y relative">
<Logo size={160} glow />
</div>
</div>
<span className="inline-flex items-center gap-1.5 rounded-full glass px-3 py-1 text-xs text-gold-soft">
<Star size={13} /> بازی حکمِ ایرانی، حرفهایتر از همیشه
</span>
@@ -48,7 +63,7 @@ export default function Home() {
<div className="mx-auto mt-12 grid max-w-3xl gap-3 sm:grid-cols-3">
{STATS.map((s) => (
<div key={s.label} className="glass rounded-2xl px-4 py-4">
<div key={s.label} className="glass rounded-2xl px-4 py-4 transition hover:border-gold/40">
<s.icon className="mx-auto text-teal" size={22} />
<div className="mt-2 text-sm font-bold text-cream">{s.label}</div>
<div className="text-xs text-cream/55">{s.value}</div>
@@ -66,6 +81,7 @@ export default function Home() {
<p className="mx-auto mt-3 max-w-xl text-center text-cream/60">
همهٔ چیزی که یک بازی حکم بینقص لازم دارد، در یک اپ.
</p>
<div className="rule-gold mx-auto mt-6 max-w-xs" />
<div className="mt-10 grid gap-5 sm:grid-cols-2 lg:grid-cols-3">
{FEATURES.map((f) => (
<div key={f.title} className="glass rounded-2xl p-6 transition hover:border-gold/40">
@@ -97,6 +113,9 @@ export default function Home() {
{/* Final CTA */}
<section className="mx-auto max-w-4xl px-4 py-16 text-center">
<div className="mx-auto mb-6 w-fit">
<Logo size={64} glow />
</div>
<h2 className="text-3xl font-black sm:text-4xl">
همین حالا <span className="gold-text">حکم</span> را شروع کن
</h2>