diff --git a/AGENTS.md b/AGENTS.md index f618c1e..c705ee3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,7 +4,7 @@ ``` website/ -├── index.html # Single-page entry point — all 5 tabs live here +├── index.html # Single-page entry point — all 6 tabs live here ├── _redirects # Netlify SPA rewrite rule (/* → /index.html) ├── js/ │ ├── tabs.js # Client-side routing, tab switching, background video swap @@ -19,9 +19,10 @@ website/ │ ├── yuukabot.css # Dashboard glassmorphism cards + grid │ ├── calendar.css # Calendar grid, popups, sidebar │ ├── bucketlist.css # Lock screen + list panel +│ ├── services.css # Services tab — one .svc-banner per service (Bot Status look) │ └── gallery.css # Gallery grid + lightbox ├── gallery/ # Full-quality images, thumbnails/, and manifest.json -├── textures/ # Background MP4 videos + clickable character PNG +├── textures/ # Background MP4s, clickable character PNG, service logos ├── sounds/ # Click SFX (yuuka_click.mp3) ├── generate_thumbnails.py # Pillow script: builds thumbnails/ + manifest.json └── firebase.txt # Firestore security rules (reference only, gitignored) @@ -44,7 +45,8 @@ npx serve . ``` - `_redirects` handles SPA routing on Netlify; for local dev, navigate to `/index.html` directly. -- After adding images to `gallery/`, run `python generate_thumbnails.py` (requires `Pillow`). It creates missing thumbnails and rewrites `gallery/manifest.json`, which is the list the gallery renders — an image not in the manifest won't show up. +- After adding images to `gallery/`, run `python generate_thumbnails.py` (requires `Pillow`, and `ffmpeg` for GIFs). It converts animated GIFs to much smaller MP4s, creates missing thumbnails, and rewrites `gallery/manifest.json`, which is the list the gallery renders — an image not in the manifest won't show up. +- **Keep data usage low.** Background videos are 1080p H.264, no audio, `+faststart`, `preload="none"` (tabs.js starts the one the current tab needs). Recent ones use `ffmpeg -i in.mp4 -r 30 -c:v libx264 -preset slow -crf 28 -pix_fmt yuv420p -an -movflags +faststart out.mp4`. Keep untouched originals outside the site folder (`../media_originals/`). Size images to about 2× their displayed size. There are **no automated tests** in this project. @@ -83,7 +85,7 @@ Examples from the repo: `calendar added`, `fix upcoming filter`, `css polish bs` 1. Add the new `
` in `index.html`. 2. Add a ` +
@@ -39,7 +41,7 @@
- Click Me! + Click Me!
...
click me
@@ -205,10 +207,29 @@
+
+
+

Services

+
+ +
+ +
+ +
+

ReVoltVPN

+

Free, open-source VPN for Android. No sign-up, no logs.

+
+ Visit → +
+
+
+ diff --git a/js/gallery.js b/js/gallery.js index 07338d0..3beda3c 100644 --- a/js/gallery.js +++ b/js/gallery.js @@ -4,22 +4,37 @@ document.addEventListener('DOMContentLoaded', () => { const container = document.getElementById('gallery-container'); const lightbox = document.getElementById('lightbox'); const lightboxImg = document.getElementById('lightbox-img'); + const lightboxVideo = document.getElementById('lightbox-video'); if (!container || !lightbox) return; + // Animated GIFs are served as MP4 (a few % of the size), so those + // open in the