- Navigation: removed top-left <Logo />, NavLinks now sit at the
left edge. Logo component itself kept (still used by Footer /
LoginForm / LoginModal).
- HeroBanner: restored simple "default muted + autoplay" behavior.
The earlier try-unmuted-fallback flow was working but produced
unpredictable first-paint audio depending on browser autoplay
policy; muted is the safer default.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Hero eyebrow: "Top 12 · Virtual Idol Debut Project"
→ "Top 12 · Cyber Star Debut Survival"
- Hero video: attempt unmuted autoplay first, fall back to muted on
browser autoplay-policy block (sound button reflects actual state).
- Logo: replace with cropped v2 art, drop purple drop-shadow glow.
- ArtistCard: drop non-top12 opacity dim AND the top dark gradient
overlay — new high-quality portraits look better fully exposed.
- mock-data: 003/010/017/027/033 solo videos are present in v2,
cleared MISSING_VIDEO set so the video section renders for them.
- tos: bump TOS_VERSION to 3 — videos/portraits overwritten on TOS,
this cache-busts older URLs in browsers and CDNs.
TOS uploads (handled separately): hero-pv.mp4, 5 solo videos
(003/010/017/027/033), 7 cover images, 6/036 atmosphere images.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two adjacent backdrop-filter elements (nav at y=0-80, filter at y=80+)
always show a visible seam at their boundary because each filter clips
its own blur kernel, so the edge pixels sample slightly different
neighborhoods. Same recipe doesn't help — it's a structural issue.
Fix: when filter is stuck, render an absolutely-positioned glass child
inside the filter that extends from -top-20 to bottom-0 (i.e. covers
nav area + filter area as ONE element). Nav reads filterStuck from a
tiny shared zustand UI store and disables its own glass layer in that
state, so only the shared band is visible. Single element, single
backdrop-filter, no seam.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Navigation: fixed + transparent over Hero (home) / at page top (other routes);
fades to glass-on-scroll. Glass uses surface tone matching site cards.
- Filter bar sticky glass synced to nav recipe (no seam between layers).
- HeroBanner: full-viewport video, center title removed, bottom dim overlay
removed, eyebrow/countdown repositioned below the nav.
- ArtistDetail: removed portrait shadow; added FloatingBackButton that uses
router.back() with internal-history fallback to /.
- Floating buttons (back + vote) translateY upward to avoid footer rather
than disappearing, via useFooterPush.
- Home: useScrollRestore preserves scroll position on return from detail
pages; temporarily disables scroll-snap during restore.
- PerformanceVideo: max-w capped by 85svh*16/9 so small viewports never crop.
- ArtistFilters: hide horizontal scrollbar thumb in tag container.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>