// HUD pieces: top nav, side rail, status strip, ticker const { useEffect: useEffectH, useState: useStateH } = React; function TopNav({ onNav }) { const items = [ { id: "hero", label: "HOME", kana: "ホーム" }, { id: "tracks", label: "MUSIC", kana: "ミュージック" }, { id: "club", label: "WOAH CLUB", kana: "クラブ" }, { id: "residencias", label: "RESIDENCES", kana: "レジデンシー" }, { id: "about", label: "PROFILE", kana: "プロフィール" }, { id: "links", label: "DATA LINK", kana: "リンク" }, ]; return (
GAIA / WOAH!
LIVE SIGNAL · 99.3% ENTER WORLD
); } const styles_nav = { wrap: { position: "sticky", top: 0, zIndex: 50, display: "grid", gridTemplateColumns: "1fr auto 1fr", alignItems: "center", padding: "18px 48px", background: "linear-gradient(to bottom, oklch(0.08 0.04 295 / 0.9), oklch(0.08 0.04 295 / 0.4))", borderBottom: "1px solid var(--panel-stroke)", backdropFilter: "blur(10px)", }, left: { display: "flex", alignItems: "center", gap: 12 }, logo: { display: "flex", alignItems: "center", gap: 10, fontSize: 22, letterSpacing: "0.12em", }, logoSub: { color: "var(--ink-faint)", fontSize: 11, letterSpacing: "0.2em" }, center: { display: "flex", gap: 8 }, navItem: { display: "flex", flexDirection: "column", alignItems: "center", padding: "8px 16px", textDecoration: "none", color: "var(--ink)", border: "1px solid transparent", transition: "all .2s ease", }, navLabel: { fontSize: 12, letterSpacing: "0.2em", fontWeight: 700 }, navKana: { fontSize: 9, color: "var(--cyan)", letterSpacing: "0.15em", marginTop: 2, opacity: 0.75 }, right: { display: "flex", alignItems: "center", gap: 14, justifyContent: "flex-end" }, }; function SideRail() { return ( ); } const sraStyles = { wrap: { position: "fixed", top: "50%", left: 12, transform: "translateY(-50%)", display: "flex", flexDirection: "column", gap: 20, zIndex: 5, pointerEvents: "none", }, vbar: { writingMode: "vertical-rl", transform: "rotate(180deg)", height: 380, borderLeft: "1px solid var(--panel-stroke)", paddingLeft: 8, }, vtext: { fontSize: 9, letterSpacing: "0.3em", color: "var(--ink-faint)" }, badge: { padding: "10px 14px", background: "oklch(0.1 0.04 300 / 0.7)", border: "1px solid var(--panel-stroke)", textAlign: "center", }, }; function Ticker() { const phrase = [ { text: "DJ GAIA" }, { text: "★", hl: true }, { text: "ANIME MADE DJ" }, { text: "•" }, { text: "WOAH! CLUB" }, { text: "★", hl: true }, { text: "FINAL FANTASY XIV" }, { text: "•" }, { text: "TECHNO / EDM / ROCK / METAL" }, { text: "★", hl: true }, { text: "EORZEA TOUR 2026" }, { text: "•" }, { text: "EVERY DATA CENTER" }, { text: "★", hl: true }, { text: "SPOTIFY · APPLE · YOUTUBE" }, { text: "•" }, { text: "LIVE DROPS WEEKLY" }, ]; const track = [...phrase, ...phrase]; return (
{track.map((p, i) => ( {p.text} ))}
); } Object.assign(window, { TopNav, SideRail, Ticker });