// RESIDENCIAS — weekly residency clubs const { useState: useStateRs } = React; const DAYS = [ { key: "MON", full: "MONDAY", kana: "月曜日" }, { key: "TUE", full: "TUESDAY", kana: "火曜日" }, { key: "WED", full: "WEDNESDAY", kana: "水曜日" }, { key: "THU", full: "THURSDAY", kana: "木曜日" }, { key: "FRI", full: "FRIDAY", kana: "金曜日" }, { key: "SAT", full: "SATURDAY", kana: "土曜日" }, { key: "SUN", full: "SUNDAY", kana: "日曜日" }, ]; const RESIDENCIES = [ { name: "WOAH!", day: "MON", home: true, vibe: "TECHNO · EDM · METAL", kana: "ウォア", accent: "var(--magenta)", logo: "assets/clubs/woah.png", dc: "LIGHT · EUROPE", world: "ALPHA", district: "THE MIST", plot: "WARD 20 · PLOT 35" }, { name: "GIPSY CAT", day: "MON", vibe: "UNDERGROUND HOUSE", kana: "ジプシー・キャット", accent: "var(--rose)", logo: "assets/clubs/gipsy-cat.png", dc: "LIGHT · EUROPE", world: "ALPHA", district: "THE MIST", plot: "WARD 20 · PLOT 35" }, { name: "URBAN", day: "TUE", vibe: "STREET / HIP-HOP", kana: "アーバン", accent: "var(--cyan)" }, { name: "IGNITE", day: "THU", vibe: "HIGH-ENERGY EDM", kana: "イグナイト", accent: "var(--danger)" }, { name: "PROJECT XIV", day: "THU", vibe: "FUTURE / BASS", kana: "プロジェクト14", accent: "var(--violet)" }, { name: "VELOCITY", day: "FRI", vibe: "TRANCE / PROG", kana: "ヴェロシティ", accent: "var(--cyan)" }, { name: "AMBROSIA", day: "FRI", vibe: "SYNTH-POP · J-POP", kana: "アンブロシア", accent: "var(--rose)" }, { name: "THE VOID", day: "FRI", vibe: "DARK TECHNO", kana: "ザ・ヴォイド", accent: "var(--violet)" }, { name: "AXIOM.EXE", day: "FRI", vibe: "CYBER / DNB", kana: "アクシオム.EXE", accent: "var(--cyan)" }, { name: "PHOENIX NIGHTS",day: "SAT", vibe: "FESTIVAL EDM", kana: "フェニックス・ナイツ", accent: "var(--gold)" }, { name: "IGNITE", day: "SAT", vibe: "HIGH-ENERGY EDM", kana: "イグナイト", accent: "var(--danger)" }, { name: "CLUB SKYFALL", day: "SAT", vibe: "OPEN AIR HOUSE", kana: "クラブ・スカイフォール", accent: "var(--cyan)" }, { name: "CLUB SCORDIA", day: "SUN", vibe: "DEEP / MELODIC", kana: "クラブ・スコルディア", accent: "var(--violet)" }, { name: "HEAVEN'S GATE", day: "SUN", vibe: "ETHEREAL TRANCE", kana: "ヘブンズゲート", accent: "var(--gold)" }, { name: "MINX CLUB", day: "SUN", vibe: "CLUB HOUSE", kana: "ミンクス・クラブ", accent: "var(--magenta)" }, { name: "SELUNE", day: "SUN", vibe: "LUNAR LOUNGE", kana: "セルーネ", accent: "var(--rose)" }, ]; function Residencias() { const [filter, setFilter] = useStateRs("ALL"); const counts = DAYS.reduce((acc, d) => { acc[d.key] = RESIDENCIES.filter(r => r.day === d.key).length; return acc; }, {}); const total = RESIDENCIES.length; const shown = filter === "ALL" ? RESIDENCIES : RESIDENCIES.filter(r => r.day === filter); return (
// 04 · WEEKLY CIRCUIT

RESIDENCES

{total} CLUBS · 7 NIGHTS · NON-STOP
{/* Day filter */}
{DAYS.map(d => { const n = counts[d.key] || 0; const active = filter === d.key; return ( ); })}
{/* Grid of clubs */}
{shown.map((r, i) => { const day = DAYS.find(d => d.key === r.day); return (
{/* Logo */} {r.logo && (
{r.name
)} {/* Equalizer mini */}
{[60, 90, 45, 75, 30, 85, 55].map((h, k) => ( ))}
{/* Day badge */}
{r.day}
{/* Home badge */} {r.home && (
★ HOME CLUB
)}
{String(i + 1).padStart(3, "0")}
{r.kana}
{r.name}
{r.vibe}
{/* Location block */} {(r.dc || r.plot) && (
{r.dc && (
DC {r.dc}
)} {r.world && (
WORLD ★ {r.world}
)} {r.district && (
DISTRICT {r.district}
)} {r.plot && (
PLOT {r.plot}
)}
)}
NIGHT
{day?.full}
STATUS
RESIDENT
); })}
{/* Week banner */}
// WEEKLY SCHEDULE
{DAYS.map(d => (
{d.key} · {counts[d.key]} {counts[d.key] === 1 ? "SET" : "SETS"}
))}
); } const styles_rs = { filterRow: { display: "flex", gap: 10, marginBottom: 32, flexWrap: "wrap", }, filterBtn: { position: "relative", padding: "12px 20px", border: "1px solid var(--panel-stroke)", color: "var(--ink)", cursor: "pointer", fontFamily: "inherit", minWidth: 72, textAlign: "center", transition: "all .2s ease", clipPath: "polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%)", }, grid: { display: "grid", gridTemplateColumns: "repeat(auto-fill, minmax(260px, 1fr))", gap: 16, }, card: { display: "flex", flexDirection: "column", overflow: "hidden", transition: "all .25s ease", }, cardArt: { position: "relative", aspectRatio: "16/10", background: "linear-gradient(135deg, oklch(0.18 0.08 300), oklch(0.12 0.04 300))", borderBottom: "1px solid var(--panel-stroke)", overflow: "hidden", }, cardBody: { padding: 18, }, cardFoot: { display: "flex", justifyContent: "space-between", alignItems: "flex-end", marginTop: 16, paddingTop: 14, borderTop: "1px solid var(--panel-stroke)", }, weekBanner: { marginTop: 36, padding: "18px 22px", border: "1px solid var(--panel-stroke)", background: "oklch(0.1 0.04 300 / 0.6)", display: "flex", alignItems: "center", gap: 20, flexWrap: "wrap", }, weekPill: { display: "inline-flex", gap: 8, alignItems: "center", padding: "6px 12px", border: "1px solid var(--panel-stroke)", fontFamily: "JetBrains Mono, monospace", fontSize: 11, letterSpacing: "0.15em", }, }; Object.assign(window, { Residencias });