diff --git a/README.md b/README.md index 70c18d1..78df5b0 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,18 @@ Every card walks out in a finish:
+## ๐Ÿ†  Achievements & Awards + +Developers can earn premium 3D trophies that display directly on their profile page and duel views. Clicking on any trophy opens an interactive modal to view details and qualifying statistics: + +| Award | 3D Model | Qualification Criteria | +| :---: | :--- | :--- | +| **World Cup Trophy** | `/3D-Models/world_cup_trophy.glb` | **Generational Champion**: Earned by achieving an Overall rating of **85 or higher**, reflecting complete mastery. In duels, awarded to the overall match winner (or both in case of a draw). | +| **Golden Boot** | `/3D-Models/golden_boot.glb` | **Elite Star Attraction**: Earned by achieving a Shooting (`SHO`) stat of **80 or higher** (representing stellar repo star metrics). In duels, awarded to the player who wins the SHO category (or both in a tie). | +| **Golden Glove** | `/3D-Models/golden_glove.glb` | **Clean Sheet Defender**: Earned by achieving a Defending (`DEF`) stat of **60 or higher** (representing outstanding code reviews and issues closed). In duels, awarded to the player who wins the DEF category (or both in a tie). | + +
+
**Built with** Next.js ยท TypeScript ยท Tailwind ยท Redis diff --git a/app/globals.css b/app/globals.css index d07707b..0b96fec 100644 --- a/app/globals.css +++ b/app/globals.css @@ -386,3 +386,13 @@ transition-duration: 0.001ms !important; } } + +/* Custom pointer overrides for fine-pointer devices */ +@media (pointer: fine) { + body, a, button, [role="button"], label { + cursor: none !important; + } + input, textarea, [contenteditable="true"] { + cursor: text !important; + } +} diff --git a/app/layout.tsx b/app/layout.tsx index 7e17d93..8f32a2c 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -3,6 +3,8 @@ import { Bebas_Neue, Inter, JetBrains_Mono } from "next/font/google"; import localFont from "next/font/local"; import Script from "next/script"; import "./globals.css"; +import { Analytics } from "@vercel/analytics/next"; +import { CustomPointer } from "@/components/CustomPointer"; // Display โ€” ultra-condensed all-caps for the WC26 "tournament" impact. const display = Bebas_Neue({ @@ -74,6 +76,7 @@ export default function RootLayout({ children }: { children: React.ReactNode }) className={`${display.variable} ${sans.variable} ${mono.variable} ${dinCond.variable} ${dinBold.variable} ${dinMedium.variable} antialiased`} > + {children}