import type { HelixLineSpec, IntroSplitColumn, LocalizedText, SignalNode } from './types'
import { assetPath } from './assetPath'

export const studioFacts = [
  {
    label: { zh: '身份', en: 'identity' },
    value: { zh: '校内独立团队', en: 'campus indie team' },
    note: { zh: '南阳理工真实长期协作中的项目组。', en: 'A long-term active game team formed inside Nanyang Institute of Technology.' },
  },
  {
    label: { zh: '项目', en: 'project' },
    value: { zh: '《希德之钥》', en: "Seed's key" },
    note: { zh: '世界观与核心玩法原型已经成型。', en: 'The world setting and core gameplay prototype are already taking shape.' },
  },
  {
    label: { zh: '方式', en: 'workflow' },
    value: { zh: '工程化协作', en: 'structured production' },
    note: { zh: 'Planka / Gitea / Shrink 系列持续沉淀。', en: 'Our workflow keeps accumulating through tools like Planka, Gitea, and the Shrink stack.' },
  },
]

export const teamRoles = [
  {
    role: { zh: '策划', en: 'design' },
    count: { zh: '1人', en: '1' },
    note: { zh: '负责项目方向、结构梳理与推进节奏。', en: 'Owns project direction, structure planning, and production rhythm.' },
  },
  {
    role: { zh: '程序', en: 'engineering' },
    count: { zh: '2人', en: '2' },
    note: { zh: '负责底层架构、玩法实现与工具链维护。', en: 'Owns architecture, gameplay implementation, and tooling maintenance.' },
  },
  {
    role: { zh: '主美', en: 'art lead' },
    count: { zh: '1人', en: '1' },
    note: { zh: '负责风格制定、角色立绘与 UI 设计。', en: 'Owns visual style, character illustration, and UI direction.' },
  },
  {
    role: { zh: '剧本', en: 'writing' },
    count: { zh: '1人', en: '1' },
    note: { zh: '负责叙事文本、氛围表达与内容协同。', en: 'Owns narrative text, atmosphere, and content coordination.' },
  },
]

export const projectModules = [
  {
    index: '01',
    title: { zh: '世界观搭建', en: 'world framework' },
    note: { zh: '不是只有设定词条，而是在为后续叙事、视觉和玩法提供同一套骨架。', en: 'More than scattered lore notes, it is a shared structure for narrative, visuals, and gameplay.' },
  },
  {
    index: '02',
    title: { zh: '核心原型', en: 'core prototype' },
    note: { zh: '先把真正能玩的部分做出来，再持续打磨节奏、反馈与系统关系。', en: 'We build the playable core first, then keep refining rhythm, feedback, and system relationships.' },
  },
  {
    index: '03',
    title: { zh: '内容推进', en: 'content pipeline' },
    note: { zh: '素材、文本、视觉和界面正在沿着同一条制作链继续生长。', en: 'Assets, writing, visuals, and UI are growing through the same production chain.' },
  },
]

export const workflowPoints = [
  {
    id: '01',
    title: { zh: '需求拆解', en: 'scope breakdown' },
    note: { zh: '把含混的想法拆成可以执行、可以交接、可以跟踪的任务切片。', en: 'We break vague ideas into tasks that can be executed, handed off, and tracked.' },
  },
  {
    id: '02',
    title: { zh: '接口对接', en: 'discipline alignment' },
    note: { zh: '让策划、程序、美术在同一份结构里说同一种语言，减少空转。', en: 'Design, code, and art work inside the same structure so communication stays efficient.' },
  },
  {
    id: '03',
    title: { zh: '资源规范', en: 'asset standards' },
    note: { zh: '命名、版本、导入和复用链路统一下来，后续迭代才不会失控。', en: 'Naming, versioning, importing, and reuse stay standardized so later iterations remain under control.' },
  },
  {
    id: '04',
    title: { zh: '工具沉淀', en: 'tool accumulation' },
    note: { zh: '把一次性的开发经验压进可重复使用的底座与流程，而不是只救急一次。', en: 'We turn one-off development experience into reusable foundations instead of solving problems just once.' },
  },
]

export const proofCards = [
  {
    tag: 'release trace',
    title: { zh: 'TapTap 公开发布', en: 'TapTap public release' },
    note: { zh: 'TapTap 21 天游戏创作挑战作品发布经历，说明我们不是只停在内部演示。', en: 'Our participation in the TapTap 21-Day Game Jam shows we are not limited to internal demos.' },
    image: assetPath('assets/taptap-proof.jpg'),
    alt: { zh: '止夜工作室 TapTap 发布证明', en: 'No Stay Night Studio TapTap release proof' },
  },
  {
    tag: 'culture archive',
    title: { zh: '长期资料积累', en: 'long-term reference archive' },
    note: { zh: '资料、灵感和文化素材不是临时拼贴，而是一直在为项目服务的背景储备。', en: 'Reference materials, inspirations, and cultural sources are not temporary collage, but ongoing production reserves.' },
    image: assetPath('assets/culture-shelf.jpg'),
    alt: { zh: '止夜工作室资料与文化书架陈列', en: 'No Stay Night Studio archive shelf' },
  },
  {
    tag: 'visual archive',
    title: { zh: '视觉表达在继续', en: 'visual exploration keeps growing' },
    note: { zh: '像素表达、氛围实验与界面资产都在持续累积，不是一次性的概念图。', en: 'Pixel expression, mood studies, and interface assets are all accumulating over time, not one-off concept shots.' },
    image: assetPath('assets/pixel-proof.jpg'),
    alt: { zh: '止夜工作室像素视觉素材', en: 'No Stay Night Studio pixel visual archive' },
  },
  {
    tag: 'external proof',
    title: { zh: '外部奖项验证', en: 'external recognition' },
    note: { zh: '东方创意之星·釜山国际艺术节银奖，说明这支团队的表达能力拿出去也站得住。', en: 'Winning silver at the BIACF Busan Art Festival proves our work can stand in external contexts too.' },
    image: assetPath('assets/award-proof.jpg'),
    alt: { zh: '止夜工作室奖项证明', en: 'No Stay Night Studio award certificate' },
  },
]

export const contactInfo = [
  { label: { zh: 'QQ', en: 'QQ' }, value: '3048536893', href: 'tencent://message/?uin=3048536893' },
  { label: { zh: '微信', en: 'WeChat ID' }, value: 'imeicy', href: undefined },
  { label: { zh: '邮箱', en: 'Email' }, value: 'im@crash.work', href: 'mailto:im@crash.work' },
]

export const signalNodes: SignalNode[] = [
  { id: 'idea', label: { zh: '创意', en: 'idea' }, note: { zh: '先有想做的东西，但它不能只停在一句口号。', en: 'Everything starts from a desire to build something, but it cannot stay as a slogan.' }, x: 17, y: 24 },
  { id: 'narrative', label: { zh: '叙事', en: 'narrative' }, note: { zh: '让世界观、角色与情绪真正能被感知。', en: 'Narrative turns world, character, and emotion into something people can actually feel.' }, x: 73, y: 17 },
  { id: 'visual', label: { zh: '视觉', en: 'visuals' }, note: { zh: '让风格、角色与界面形成统一表达。', en: 'Visuals give style, characters, and interfaces a unified voice.' }, x: 79, y: 73 },
  { id: 'engine', label: { zh: '工程', en: 'engineering' }, note: { zh: '最后由工程把它稳定地做出来、推下去。', en: 'Engineering is what turns the idea into something stable and shippable.' }, x: 18, y: 78 },
]

export const signalSequence = ['idea', 'narrative', 'visual', 'engine'] as const

export const introHelixLines: HelixLineSpec[] = [
  { key: '1', width: '92%', offset: '-206px', depth: '-248px', scale: 1.12, tilt: '-9deg', opacity: 0.12 },
  { key: '2', width: '78%', offset: '-166px', depth: '-194px', scale: 1.06, tilt: '-7deg', opacity: 0.16 },
  { key: '3', width: '64%', offset: '-128px', depth: '-146px', scale: 1, tilt: '-5deg', opacity: 0.24 },
  { key: '4', width: '52%', offset: '-90px', depth: '-98px', scale: 0.98, tilt: '-4deg', opacity: 0.32 },
  { key: '5', width: '38%', offset: '-52px', depth: '-54px', scale: 0.94, tilt: '-2deg', opacity: 0.44 },
  { key: '6', width: '22%', offset: '-16px', depth: '-12px', scale: 0.92, tilt: '-1deg', opacity: 0.64 },
  { key: '7', width: '18%', offset: '16px', depth: '12px', scale: 0.92, tilt: '1deg', opacity: 0.88 },
  { key: '8', width: '36%', offset: '50px', depth: '52px', scale: 0.94, tilt: '2deg', opacity: 0.44 },
  { key: '9', width: '50%', offset: '88px', depth: '96px', scale: 0.98, tilt: '4deg', opacity: 0.32 },
  { key: '10', width: '64%', offset: '126px', depth: '144px', scale: 1, tilt: '5deg', opacity: 0.24 },
  { key: '11', width: '78%', offset: '164px', depth: '192px', scale: 1.06, tilt: '7deg', opacity: 0.16 },
  { key: '12', width: '92%', offset: '204px', depth: '246px', scale: 1.12, tilt: '9deg', opacity: 0.12 },
  { key: '13', width: '86%', offset: '-186px', depth: '-220px', scale: 1.1, tilt: '8deg', opacity: 0.08 },
  { key: '14', width: '72%', offset: '-146px', depth: '-168px', scale: 1.04, tilt: '6deg', opacity: 0.11 },
  { key: '15', width: '58%', offset: '-108px', depth: '-120px', scale: 0.99, tilt: '4deg', opacity: 0.16 },
  { key: '16', width: '44%', offset: '-70px', depth: '-76px', scale: 0.96, tilt: '3deg', opacity: 0.22 },
  { key: '17', width: '30%', offset: '-34px', depth: '-32px', scale: 0.93, tilt: '1deg', opacity: 0.32 },
  { key: '18', width: '14%', offset: '0px', depth: '0px', scale: 0.91, tilt: '0deg', opacity: 0.52 },
  { key: '19', width: '26%', offset: '34px', depth: '32px', scale: 0.93, tilt: '-1deg', opacity: 0.32 },
  { key: '20', width: '42%', offset: '70px', depth: '74px', scale: 0.96, tilt: '-3deg', opacity: 0.22 },
  { key: '21', width: '56%', offset: '106px', depth: '118px', scale: 0.99, tilt: '-4deg', opacity: 0.16 },
  { key: '22', width: '70%', offset: '144px', depth: '166px', scale: 1.04, tilt: '-6deg', opacity: 0.11 },
  { key: '23', width: '84%', offset: '182px', depth: '218px', scale: 1.1, tilt: '-8deg', opacity: 0.08 },
  { key: '24', width: '96%', offset: '220px', depth: '264px', scale: 1.14, tilt: '-10deg', opacity: 0.06 },
]

export const introSplitColumns: IntroSplitColumn[] = [
  { key: 'a', left: '0%', width: '22%', delay: 0.12, dir: 1 },
  { key: 'b', left: '20%', width: '18%', delay: 0.04, dir: -1 },
  { key: 'c', left: '36%', width: '28%', delay: 0, dir: 1 },
  { key: 'd', left: '62%', width: '20%', delay: 0.06, dir: -1 },
  { key: 'e', left: '80%', width: '20%', delay: 0.1, dir: 1 },
]

export const reveal = {
  initial: { opacity: 0, y: 36 },
  animate: { opacity: 1, y: 0 },
  transition: { duration: 0.82, ease: [0.16, 1, 0.3, 1] as const },
}

export const siteCopy = {
  nav: {
    about: { zh: '我们是谁', en: 'Who We Are' },
    project: { zh: '正在做什么', en: 'What We Build' },
    workflow: { zh: '如何工作', en: 'How We Work' },
    proof: { zh: '做过什么', en: 'What We Have Done' },
    contact: { zh: '联系', en: 'Contact' },
  },
  hero: {
    eyebrow: { zh: 'studio overview', en: 'studio overview' },
    title: { zh: '止夜工作室', en: 'No Stay Night Studio' },
    tagline: { zh: '把夜里长出来的想法，认真做成可以被体验的作品。', en: 'We turn ideas born at night into works people can truly experience.' },
    description: { zh: '我们是南阳理工校内的独立游戏制作团队，正在推进《希德之钥》的开发，也在继续把自己的协作方式、风格判断和项目秩序一点点搭起来。', en: "We are an indie game team inside Nanyang Institute of Technology, currently pushing forward Seed's key while steadily building our own production method, visual judgment, and project order." },
    meta: [
      { zh: '南阳理工', en: 'Nanyang Institute of Technology' },
      { zh: '独立游戏', en: 'indie games' },
      { zh: '《希德之钥》', en: "Seed's key" },
    ] satisfies LocalizedText[],
  },
  about: {
    eyebrow: { zh: 'about / 我们是谁', en: 'about / who we are' },
    heading: { zh: '不是临时拼起来的\n兴趣小组，而是一支\n真的在持续推进项目的团队。', en: 'Not a temporary interest group,\nbut a team that is genuinely\npushing a real project forward.' },
    statementLead: { zh: '我们从一开始就把"做得出来"和"做得持续"放在同样重要的位置。', en: 'From the beginning, we treated “making it real” and “making it sustainable” as equally important.' },
    body: [
      { zh: '比起只停留在点子阶段的团队，我们更在意从企划到实现、从素材到上线的完整链路。每一项工作都要能接进下一项，而不是靠热情临时顶住。', en: 'Rather than staying at the idea stage, we care about the full chain from planning to implementation, from assets to launch. Every piece of work should connect to the next instead of being held together by temporary passion.' },
      { zh: '创意、工程、视觉和叙事，都应该在同一个项目里真正汇合。止夜工作室想做的，不只是"有想法的东西"，而是能被认真完成、认真体验的作品。', en: 'Creativity, engineering, visuals, and narrative should genuinely converge inside the same project. What No Stay Night Studio wants to make is not just “something with ideas”, but work that can be seriously completed and seriously experienced.' },
    ] satisfies LocalizedText[],
  },
  project: {
    eyebrow: { zh: 'project / 我们正在做什么', en: 'project / what we are building' },
    title: { zh: '《希德之钥》', en: "Seed's key" },
    subtitle: { zh: '二次元 · 模拟经营 · 末日 · 太空', en: 'anime-inspired · management sim · apocalypse · space' },
    status: [
      { zh: '世界观成型', en: 'world built' },
      { zh: '原型推进中', en: 'prototype active' },
      { zh: '内容制作中', en: 'content in progress' },
    ] satisfies LocalizedText[],
  },
  workflow: {
    eyebrow: { zh: 'workflow / 我们如何工作', en: 'workflow / how we work' },
    heading: { zh: '创意不是靠热情硬撑下去的，它需要清晰的协作秩序。', en: 'Ideas do not survive on passion alone. They need clear production order.' },
    boardTag: { zh: 'board / active', en: 'board / active' },
    boardTitle: { zh: '任务看板总览', en: 'task board overview' },
    boardAlt: { zh: '止夜工作室任务看板总览', en: 'No Stay Night Studio task board overview' },
  },
  proof: {
    eyebrow: { zh: 'proof / 我们做过什么', en: 'proof / what we have done' },
    heading: { zh: '这些不是装饰性的履历墙。', en: 'These are not decorative credentials.' },
    previous: { zh: '上一张', en: 'Prev' },
    next: { zh: '下一张', en: 'Next' },
    railLabel: { zh: '成果轮播', en: 'proof carousel' },
  },
  contact: {
    eyebrow: { zh: 'contact / 联系', en: 'contact / reach us' },
    invite: { zh: '如果你想认识我们、交流项目，或者聊聊合作，欢迎直接来找。', en: 'If you want to know us, talk about projects, or explore collaboration, feel free to reach out directly.' },
  },
  footer: { zh: 'NO STAY NIGHT STUDIO / NANYANG INSTITUTE OF TECHNOLOGY', en: 'NO STAY NIGHT STUDIO / NANYANG INSTITUTE OF TECHNOLOGY' },
}
