A pet project — a single-page promo site for the "Pantera" dance atelier (Moscow, Buninskiye Luga). Pure static HTML / CSS / vanilla JS, no build step, no framework. The repository is structured as a clean separation of concerns: every section has its own HTML partial, every visual area has its own CSS file, every interactive piece has its own JS file
- Editorial dark theatre layout with obsidian + antique-gold palette and three Google-served typefaces (Cormorant Garamond, Forum, Manrope)
- Custom soft-follow cursor with hover-state on interactive elements (desktop only)
- Scroll-tied reveal animations driven by
IntersectionObserver - Sticky navigation that compacts on scroll
- Eight sections covering studio story, directions, masters, schedule, pricing, and a trial form
- Diagonal demo watermark for client review, with a tamper-resistant JS guard that re-injects styles if removed from DevTools
- Any modern browser (Chrome / Firefox / Safari / Edge — the layout uses
clamp(),backdrop-filter,aspect-ratio, and CSS custom properties) - Any static file server for local development — opening
index.htmldirectly viafile://will not work becausefetch()for the partials is blocked by browser security on the file protocol
Serve the directory over HTTP and open the printed URL:
# Python 3 (no install needed on Windows / macOS / Linux)
python -m http.server 8080# Or via npx if Node is installed
npx --yes serve -l 8080 .Then open http://localhost:8080
This is a plain static site. Any static host works — GitHub Pages, Netlify, Cloudflare Pages, S3, nginx. Upload the entire repository root as-is; no build step is required
The site ships with a diagonal "vgartg.ru" watermark intended for client previews. It lives in two files:
| File | Role |
|---|---|
css/watermark.css |
Pseudo-element ribbons drawn on html and body (cannot be deleted in DevTools) |
js/demo-guard.js |
MutationObserver + interval that re-injects the CSS if anyone strips it |
To remove the watermark before final delivery:
- Delete
css/watermark.cssand the matching<link>tag inindex.html - Delete
js/demo-guard.jsand the matching<script>tag inindex.html