// Home page sections + job card/list const { useState: useStateH } = React; function Hero({ onNav, lang = "ja", tw = {} }) { const en = lang === "en"; const style = tw.heroStyle || "split"; const dim = tw.photoDim != null ? tw.photoDim : 32; // overlay darkness % const shift = tw.textShift != null ? tw.textShift : 0; // px text nudge const hl = tw.accent || "#F7B731"; // highlight color const motion = tw.motion !== false; const Kick = (
{en ? "RECRUIT 2026 · Join the cast" : "採用サイト · RECRUIT 2026"}
); const Title = (lt) => (

{en ? <>Life can be a lot hotter.
Here, you are the main character. : <>人生は、もっと熱くていい。
ここは、君が主役になれる場所。}

); const Sub = (lt) => (

{en ? "A drama that began at a tiny Nagoya takoyaki izakaya. Deliver the five-sense “live experience” — with your own hands." : "名古屋のたこ焼き居酒屋から始まったドラマ。五感を揺さぶる「ライブ体験」を、君の手で。"}

); const Buttons = (
onNav("apply")}>{en ? "Apply in 30 sec" : "簡単!30秒応募"} onNav("jobs")}>{en ? "See jobs" : "求人を見る"}
); // ---- SPLIT: emphasize the team photo (no dark overlay); text in its own panel ---- if (style === "split") { return (
{Kick}{Title(true)}{Sub(true)}{Buttons}
{en?"Our
{en ? "Our team" : "たこスタの仲間たち"}
); } // ---- HALF: text over a darkened left half, photo emphasized on the right ---- if (style === "half") { const ah = 0.2 + (dim/100) * 0.72; return (
{en?"Our
{Kick}{Title(false)}{Sub(false)}{Buttons}
); } // ---- OVERLAY: text over photo (dimmable) ---- const a = 0.18 + (dim/100) * 0.78; return (
{Kick}{Title(false)}{Sub(false)}{Buttons}
); } function Story() { return (
{window.YNNY.story.map((s, i) => { const left = i % 2 === 0; return (

{s.copy}

{s.body}

); })}
); } function JobCard({ job, onNav }) { const [h, setH] = useStateH(false); return (
setH(true)} onMouseLeave={()=>setH(false)} style={{ background:"var(--surface)", borderRadius:16, overflow:"hidden", cursor:"pointer", boxShadow: h ? "var(--shadow-hover)" : "var(--shadow-card)", transform: h?"translateY(-3px)":"none", transition:"all .2s ease", display:"flex", flexDirection:"column" }} onClick={()=>onNav("detail", job)}>
{job.urgent && 急募} {job.type}

{job.title}

{job.loc}
{job.pay}
{job.tags.slice(0,3).map(t=>( {t} ))}
{e.stopPropagation();onNav("detail",job);}}>詳しく見る {e.stopPropagation();onNav("apply",job);}}>30秒応募
); } function JobSearch() { return (
この条件で検索
); } const inStyle = { width:"100%", boxSizing:"border-box", fontFamily:"var(--font-body)", fontSize:15, padding:"13px 16px", border:"1.5px solid #3a332f", borderRadius:12, background:"#211c19", color:"#FBEFE2" }; function JobList({ onNav, limit }) { const jobs = limit ? window.YNNY.jobs.slice(0,limit) : window.YNNY.jobs; return (
{jobs.map((j,i) => )}
); } Object.assign(window, { Hero, Story, JobSearch, JobList, JobCard });