export type StatusType = 'soon' | 'out' | 'dev';

export interface Game {
    name: string;
    genre: string;
    platform: string;
    status: string;
    statusType: StatusType;
    desc: string;
    img: string;
    c1: string;
    c2: string;
}

export interface Service {
    num: string;
    name: string;
    desc: string;
    tags: string[];
}

export interface Client {
    name: string;
    sector: string;
    type: string;
    desc: string;
    url: string;
    linkText: string;
    img: string;
    fit: 'contain' | 'cover';
}

export interface ProcessStep {
    num: string;
    name: string;
    desc: string;
}

export interface StudioPoint {
    k: string;
    v: string;
}

export interface StudioShot {
    img: string;
    label: string;
}

export interface ContactItem {
    l: string;
    v: string;
}

export interface HeroStat {
    n: string;
    l: string;
}

export interface Locale {
    nav: { games: string; services: string; studio: string; news: string; contact: string; cta: string };
    secnav: { top: string; games: string; services: string; clients: string; process: string; studio: string; contact: string };
    chat: {
        launch: string;
        title: string;
        subtitle: string;
        status: string;
        greeting: string;
        placeholder: string;
        quick: string[];
        error: string;
        thinking: string;
        disclaimer: string;
        reset: string;
    };
    hero: {
        kicker: string;
        titleA: string;
        titleEm: string;
        titleB: string;
        sub: string;
        ctaPrimary: string;
        ctaGhost: string;
        stats: HeroStat[];
        mascot: { alt: string };
    };
    marquee: string[];
    games: { kicker: string; title: string; sub: string; list: Game[]; art: string };
    services: { kicker: string; title: string; sub: string; list: Service[] };
    clients: { kicker: string; title: string; sub: string; list: Client[]; shot: string };
    process: { kicker: string; title: string; steps: ProcessStep[] };
    studio: {
        kicker: string;
        title: string;
        lead: string;
        body: string;
        points: StudioPoint[];
        shotsLabel: string;
        shots: StudioShot[];
        cta: string;
    };
    cta: {
        kicker: string;
        title: string;
        sub: string;
        chips: string[];
        email: string;
        whatsapp: string;
        contact: ContactItem[];
    };
    footer: { rights: string };
    news: {
        kicker: string;
        title: string;
        sub: string;
        empty: string;
        readMore: string;
        back: string;
        more: string;
        all: string;
    };
    subscribe: {
        kicker: string;
        title: string;
        sub: string;
        open: string;
        dialogTitle: string;
        dialogSub: string;
        name: string;
        organization: string;
        optional: string;
        email: string;
        topics: string;
        allTopics: string;
        consent: string;
        button: string;
        sending: string;
        close: string;
        successTitle: string;
        successBody: string;
        noEmail: string;
        resend: string;
        resendIn: string;
        resent: string;
        done: string;
        error: string;
        nameRequired: string;
        invalidEmail: string;
        topicRequired: string;
        privacy: string;
        manageLink: string;
        alreadySubscribed: string;
    };
    manage: {
        title: string;
        emailStep: string;
        sendCode: string;
        sendingCode: string;
        codeStep: string;
        code: string;
        verify: string;
        verifying: string;
        resend: string;
        otherEmail: string;
        wrongCode: string;
        tooMany: string;
        status: string;
        statuses: Record<'active' | 'pending' | 'unsubscribed', string>;
        since: string;
        emailLanguage: string;
        pendingNote: string;
        unsubscribedNote: string;
        save: string;
        saving: string;
        saved: string;
        resubscribe: string;
        unsubscribe: string;
        unsubscribeAsk: string;
        emptyMeansCancel: string;
        sendCancelCode: string;
        cancelCodeSent: string;
        unsubscribeConfirm: string;
        keep: string;
        unsubscribed: string;
        expired: string;
    };
    subscription: {
        confirmedTitle: string;
        confirmedBody: string;
        unsubscribeTitle: string;
        unsubscribeBody: string;
        unsubscribeButton: string;
        unsubscribedTitle: string;
        unsubscribedBody: string;
        invalidTitle: string;
        invalidBody: string;
        error: string;
        toNews: string;
    };
}

export type LangCode = 'en' | 'zh';

export const I18N: Record<LangCode, Locale> = {
    en: {
        nav: { games: 'Games', services: 'Services', studio: 'Studio', news: 'News', contact: 'Contact', cta: "Let's talk" },
        secnav: { top: 'Home', games: 'Games', services: 'Services', clients: 'Clients', process: 'Process', studio: 'Studio', contact: 'Contact' },
        chat: {
            launch: 'Chat with me',
            title: 'Flame',
            subtitle: "Flameowl's assistant",
            status: 'Usually replies fast',
            greeting: "Hey — I'm Flame, the studio's assistant. Ask me about a quote, a collaboration, my games, or anything else.",
            placeholder: 'Type a message…',
            quick: ['Get a quote', 'Cooperation', 'Tell me about the games', 'How to reach you'],
            error: "Sorry — I couldn't think straight just now. Email info@flameowlstudio.com and I'll get right back to you.",
            thinking: 'Flame is typing',
            disclaimer: 'AI assistant · for anything official, email info@flameowlstudio.com',
            reset: 'Clear chat',
        },
        hero: {
            kicker: 'Solo indie game dev · Hong Kong',
            titleA: 'I make games',
            titleEm: 'worth losing sleep over',
            titleB: '',
            sub: 'Flameowl is a one-person Hong Kong studio crafting original indie games — plus the web & mobile apps I build for clients to fund them.',
            ctaPrimary: 'See my games',
            ctaGhost: 'Work with me',
            mascot: { alt: 'Flameowl, an orange 3D owl with fiery wings' },
            stats: [
                { n: '3', l: 'GAMES IN DEV' },
                { n: '40+', l: 'CLIENT PROJECTS' },
                { n: '2021', l: 'SOLO · HONG KONG' },
            ],
        },
        marquee: ['UNITY', 'UNREAL', 'GODOT', 'iOS', 'ANDROID', 'FLUTTER', 'LARAVEL', 'NODE.JS', 'REACT', 'VUE', 'ANGULAR'],
        games: {
            kicker: 'My games',
            title: 'Indie games, made by hand in Hong Kong.',
            sub: 'Original titles I design, code and draw solo — landing in 2026 and 2027.',
            list: [
                { name: 'Eek! A Roach', genre: 'Arcade party', platform: 'iOS + Android', status: 'Coming Oct 2026', statusType: 'soon', desc: 'Squash the swarm before it swarms you — endless waves of panicking roaches, plus real-time arena duels against friends. Loud, silly and very fast.', img: '/assets/games/eek-a-roach.png', c1: '#4a2b7a', c2: '#191021' },
                { name: 'Goblin Gem Raiders', genre: 'Casual strategy', platform: 'iOS + Android', status: 'Coming Dec 2026', statusType: 'soon', desc: 'Send a crew of goblins raiding for gems across a bright fantasy map — blind-pick your castle, draft your loadout, then out-think your rival round by round.', img: '/assets/games/goblin-gem-raiders.png', c1: '#52401a', c2: '#1d1810' },
                { name: 'Fantasy Dungeon', genre: 'Elemental dungeon RPG', platform: 'iOS + Android', status: 'Coming 2027', statusType: 'soon', desc: 'A dungeon crawler built on a living wheel of elements — fire, water, light and dark, each strong and weak against the next. Master the wheel to survive what\'s below.', img: '/assets/games/fantasy-dungeon.png', c1: '#3a1f3a', c2: '#171019' },
            ],
            art: 'KEY ART',
        },
        services: {
            kicker: 'Hire me',
            title: 'Need it built? I ship.',
            sub: 'Between game releases, I build production web & mobile software for clients — pragmatic, fast, and actually finished.',
            list: [
                { num: '01', name: 'Game Development', desc: 'Full-cycle game production — from prototype to store page.', tags: ['Unity', 'Unreal', 'Godot'] },
                { num: '02', name: 'Mobile Apps', desc: 'Native and cross-platform apps that feel right on every device.', tags: ['iOS', 'Android', 'Flutter'] },
                { num: '03', name: 'Web Development', desc: 'Marketing sites to complex platforms. Built to scale, easy to run.', tags: ['Laravel', 'Node.js', 'React', 'Vue', 'Angular'] },
                { num: '04', name: 'Hosting & Care', desc: 'Managed hosting, monitoring and maintenance so it stays live.', tags: ['Cloud', 'Uptime', 'Support'] },
            ],
        },
        clients: {
            kicker: 'Client work',
            title: 'Built for clients, shipped to the world.',
            sub: "A selection of products I've designed and built for clients — live, in production, in real users' hands.",
            list: [
                { name: 'Post76', sector: 'Community · AV & Hi-Fi', type: 'Website', desc: "A full rebuild of Hong Kong's long-running audio-visual community — forums, rankings, AV news and store, rebuilt on a modern stack.", url: 'https://post76.hk', linkText: 'Visit site', img: '/assets/clients/post76.png', fit: 'contain' },
                { name: 'TT Mall', sector: 'Retail · E-commerce', type: 'iOS + Android', desc: 'An online-shopping app for a Hong Kong retail brand — browse, cart and secure checkout, built natively for iOS.', url: 'https://apps.apple.com/hk/app/tt-mall-online-shopping/id6636525149', linkText: 'App Store', img: '/assets/clients/ttmall.png', fit: 'contain' },
                { name: 'GloStudy', sector: 'EdTech', type: 'Website', desc: 'A one-stop education platform for studying in Hong Kong or abroad — consultation, tutoring, applications and interview prep, plus a best-fit school finder.', url: 'https://glostudy.com', linkText: 'Visit site', img: '/assets/clients/glostudy.png', fit: 'cover' },
                { name: 'GloStudy AI', sector: 'EdTech · AI', type: 'Website', desc: 'An AI admissions platform that reads a student profile, predicts their admission chances and ranks best-fit universities worldwide — ROI forecast included.', url: 'https://glostudy.ai/', linkText: 'Visit site', img: '/assets/clients/glostudy-ai.png', fit: 'cover' },
                { name: 'LumiTalk', sector: 'Education · Debate', type: 'Website', desc: 'Brand site for a Hong Kong debate company running theme-based tournaments and coaching for students aged 10–18.', url: 'https://lumitalk.com', linkText: 'Visit site', img: '/assets/clients/lumitalk.png', fit: 'cover' },
                { name: 'HKSS Debate', sector: 'Education · Debate', type: 'Website', desc: 'An online portal for the Hong Kong Secondary Schools Debating Competition — registration, fixtures and management.', url: 'https://hkssdebate.com', linkText: 'Visit site', img: '/assets/clients/hkssdebate.png', fit: 'cover' },
                { name: 'Parliament of Ideas', sector: 'Eldercare · AI', type: 'Website', desc: 'An AI-powered debate platform that strengthens communication skills and emotional wellbeing for the elderly.', url: 'https://poideas.com', linkText: 'Visit site', img: '/assets/clients/poideas.png', fit: 'cover' },
                { name: 'Faliothu Space', sector: 'Portfolio', type: 'Website', desc: 'A personal portfolio site with a custom illustrated mascot and a clean, playful showcase of work.', url: 'https://faliothu.space/', linkText: 'Visit site', img: '/assets/clients/faliothu.png', fit: 'contain' },
            ],
            shot: 'PRODUCT SHOT',
        },
        process: {
            kicker: 'How I work',
            title: 'A process that respects your deadline.',
            steps: [
                { num: 'STEP 01', name: 'Requirements', desc: 'I dig into goals, users and scope before a line of code.' },
                { num: 'STEP 02', name: 'Design', desc: 'Wireframes to polished UI — we agree on it before we build it.' },
                { num: 'STEP 03', name: 'Development', desc: 'Tight sprints, visible progress, no black boxes.' },
                { num: 'STEP 04', name: 'Test & Launch', desc: "Real user testing, then a launch that doesn't keep you up." },
            ],
        },
        studio: {
            kicker: 'The maker',
            title: 'One person, one studio, making games since 2021.',
            lead: 'Flameowl is me — a solo developer in Hong Kong. I design, code and draw original indie games, and take on web & mobile projects for clients in between.',
            body: 'Games are the heart of it. Everything I learn shipping products for clients goes straight back into making my own games better — and, I hope, into a little more joy for whoever plays them.',
            points: [
                { k: 'Maker', v: 'Solo indie dev' },
                { k: 'Since', v: '2021 · Hong Kong' },
                { k: 'Builds', v: 'Games · Web · Mobile' },
            ],
            shotsLabel: 'In development',
            shots: [
                { img: '/assets/games/eek-a-roach.png', label: 'Eek! A Roach · 2026 Sep' },
                { img: '/assets/games/goblin-gem-raiders.png', label: 'Goblin Gem Raiders · 2026 Oct' },
            ],
            cta: 'Start a project',
        },
        cta: {
            kicker: 'Start a project',
            title: 'Got a game idea? A product to build?',
            sub: "Tell me what you're dreaming up. I reply to every message — usually within a day.",
            chips: ['A game', 'A web app', 'A mobile app', 'Hosting', 'Not sure yet'],
            email: 'Email me',
            whatsapp: 'WhatsApp',
            contact: [
                { l: 'EMAIL', v: 'info@flameowlstudio.com' },
                { l: 'PHONE', v: '(852) 9856 4104' },
                { l: 'BASED IN', v: 'Hong Kong' },
            ],
        },
        footer: {
            rights: '© 2026 Flameowl Studio Ltd. · 火梟工作室有限公司',
        },
        news: {
            kicker: 'News',
            title: "What's new at Flameowl",
            sub: 'Studio news, game announcements, closed betas and updates.',
            empty: 'No news yet — check back soon.',
            readMore: 'Read more',
            back: 'All news',
            more: 'More news',
            all: 'All',
        },
        subscribe: {
            kicker: 'Newsletter',
            title: 'Get the latest news in your inbox',
            sub: 'Studio news, new games, closed betas and updates — only when there is something worth sharing.',
            open: 'Subscribe',
            dialogTitle: 'Get Flameowl news',
            dialogSub: 'Tell us who you are and pick what you want to hear about.',
            name: 'Name',
            organization: 'Organisation',
            optional: 'optional',
            email: 'Email',
            topics: 'Topics',
            allTopics: 'All news',
            consent: 'We only email you about the topics you chose. Unsubscribe any time.',
            button: 'Subscribe',
            sending: 'Subscribing…',
            close: 'Close',
            successTitle: 'Check your inbox',
            successBody: 'We sent a confirmation email to',
            noEmail: "Didn't get it? Check your spam folder, or",
            resend: 'send it again',
            resendIn: 'send it again in :ss',
            resent: 'Sent again.',
            done: 'Done',
            error: 'Something went wrong. Please try again in a minute.',
            nameRequired: 'Please enter your name.',
            invalidEmail: 'Please enter a valid email address.',
            topicRequired: 'Pick at least one topic, or choose All news.',
            privacy: 'No spam.',
            manageLink: 'Manage subscription',
            alreadySubscribed: 'Already subscribed?',
        },
        manage: {
            title: 'Manage subscription',
            emailStep: "Enter the email you subscribed with and we'll send you a one-time code.",
            sendCode: 'Send code',
            sendingCode: 'Sending…',
            codeStep: 'If that email is subscribed, a 6-digit code is on its way. Enter it below.',
            code: 'One-time code',
            verify: 'Continue',
            verifying: 'Checking…',
            resend: 'Send a new code',
            otherEmail: 'Use a different email',
            wrongCode: 'That code is wrong or has expired.',
            tooMany: 'Too many tries. Please wait a minute and try again.',
            status: 'Status',
            statuses: { active: 'Subscribed', pending: 'Awaiting confirmation', unsubscribed: 'Unsubscribed' },
            since: 'since',
            emailLanguage: 'Email language',
            pendingNote: 'Your email is now confirmed.',
            unsubscribedNote: "You're unsubscribed. Pick topics and save to subscribe again.",
            save: 'Save topics',
            saving: 'Saving…',
            saved: 'Saved.',
            resubscribe: 'Subscribe again',
            unsubscribe: 'Cancel subscription',
            unsubscribeAsk: "Cancel your subscription? For your security we'll email you a code to confirm.",
            emptyMeansCancel: "You've unticked every topic, which cancels your subscription. We'll email you a code to confirm.",
            sendCancelCode: 'Email me a code',
            cancelCodeSent: 'Enter the cancellation code we just sent to',
            unsubscribeConfirm: 'Cancel subscription',
            keep: 'Keep my subscription',
            unsubscribed: "You've been unsubscribed. You won't receive any more news emails.",
            expired: 'Your session expired. Please request a new code.',
        },
        subscription: {
            confirmedTitle: "You're subscribed!",
            confirmedBody: "Thanks for confirming. You'll get an email whenever there's new Flameowl news.",
            unsubscribeTitle: 'Unsubscribe from Flameowl news?',
            unsubscribeBody: 'You will stop receiving news emails at',
            unsubscribeButton: 'Unsubscribe',
            unsubscribedTitle: "You've been unsubscribed",
            unsubscribedBody: "You won't receive any more news emails. You can sign up again any time.",
            invalidTitle: 'This link is no longer valid',
            invalidBody: 'It may have expired or already been used. You can subscribe again from the news page.',
            error: 'Something went wrong. Please try again.',
            toNews: 'Go to news',
        },
    },
    zh: {
        nav: { games: '遊戲', services: '服務', studio: '工作室', news: '最新消息', contact: '聯絡', cta: '傾下計' },
        secnav: { top: '首頁', games: '遊戲', services: '服務', clients: '客戶', process: '流程', studio: '工作室', contact: '聯絡' },
        chat: {
            launch: '同我傾偈',
            title: 'Flame',
            subtitle: '火梟的助理',
            status: '通常好快回覆',
            greeting: '你好，我係 Flame，工作室嘅助理。想問報價、合作、遊戲定其他都得，隨便問我！',
            placeholder: '輸入訊息…',
            quick: ['索取報價', '合作機會', '介紹你的遊戲', '如何聯絡你'],
            error: '唔好意思，我暫時諗唔到嘢。請電郵 info@flameowlstudio.com，我會盡快回覆你。',
            thinking: 'Flame 輸入中',
            disclaimer: 'AI 助理 · 正式事宜請電郵 info@flameowlstudio.com',
            reset: '清除對話',
        },
        hero: {
            kicker: '獨立遊戲開發者 · 香港',
            titleA: '我做',
            titleEm: '讓你熬夜的遊戲',
            titleB: '',
            sub: '火梟是一間香港的一人工作室，打造原創獨立遊戲，並為客戶開發網頁及流動應用程式以支持創作。',
            ctaPrimary: '睇我嘅遊戲',
            ctaGhost: '與我合作',
            mascot: { alt: 'Flameowl 橙色火焰翅膀 3D 貓頭鷹' },
            stats: [
                { n: '3', l: '遊戲開發中' },
                { n: '40+', l: '客戶項目' },
                { n: '2021', l: '獨立 · 香港' },
            ],
        },
        marquee: ['UNITY', 'UNREAL', 'GODOT', 'iOS', 'ANDROID', 'FLUTTER', 'LARAVEL', 'NODE.JS', 'REACT', 'VUE', 'ANGULAR'],
        games: {
            kicker: '我的遊戲',
            title: '在香港親手打造的獨立遊戲。',
            sub: '由我一人設計、編程與繪製的原創作品 — 將於 2026 及 2027 年推出。',
            list: [
                { name: 'Eek! A Roach', genre: '街機派對', platform: 'iOS + Android', status: '2026 年 10 月推出', statusType: 'soon', desc: '在蟑螂大軍撲到你面前之前，全部拍扁 — 無盡模式一波接一波，還有與好友即時對戰的競技場。吵鬧、無聊得好笑、而且極快。', img: '/assets/games/eek-a-roach.png', c1: '#4a2b7a', c2: '#191021' },
                { name: 'Goblin Gem Raiders', genre: '休閒策略', platform: 'iOS + Android', status: '2026 年 12 月推出', statusType: 'soon', desc: '率領一隊哥布林在明亮的奇幻地圖上搶奪寶石 — 盲選起始城堡、配置你的裝備，然後一回合一回合鬥智鬥贏對手。', img: '/assets/games/goblin-gem-raiders.png', c1: '#52401a', c2: '#1d1810' },
                { name: 'Fantasy Dungeon', genre: '元素地城 RPG', platform: 'iOS + Android', status: '2027 推出', statusType: 'soon', desc: '建基於環環相剋的元素系統的地城探險 — 火、水、光、暗彼此相生相剋，掌握元素之輪，方能在地城深處存活。', img: '/assets/games/fantasy-dungeon.png', c1: '#3a1f3a', c2: '#171019' },
            ],
            art: '主視覺',
        },
        services: {
            kicker: '聘用我',
            title: '想做？我交得到貨。',
            sub: '在遊戲推出之間，我為客戶開發生產級網頁及流動軟件 — 務實、快速、真正完成。',
            list: [
                { num: '01', name: '遊戲開發', desc: '全周期遊戲製作 — 由原型到上架頁面。', tags: ['Unity', 'Unreal', 'Godot'] },
                { num: '02', name: '流動應用程式', desc: '原生與跨平台 App，在每部裝置上都手感對位。', tags: ['iOS', 'Android', 'Flutter'] },
                { num: '03', name: '網頁開發', desc: '由宣傳網站到複雜平台，建得穩、易維護。', tags: ['Laravel', 'Node.js', 'React', 'Vue', 'Angular'] },
                { num: '04', name: '寄存與維護', desc: '託管寄存、監察與維護，讓你的產品一直在線。', tags: ['雲端', '可用性', '支援'] },
            ],
        },
        clients: {
            kicker: '客戶項目',
            title: '為客戶打造，推向世界。',
            sub: '我為客戶設計與開發的部分產品 — 已上線、在生產環境運行、在真實用戶手中。',
            list: [
                { name: 'Post76', sector: '社群 · 影音玩樂', type: '網站', desc: '香港老牌影音玩樂社群的全站重建 — 討論區、排行榜、影音新聞與商店，以全新技術重寫。', url: 'https://post76.hk', linkText: '瀏覽網站', img: '/assets/clients/post76.png', fit: 'contain' },
                { name: 'TT Mall', sector: '零售 · 電商', type: 'iOS + Android App', desc: '為香港零售品牌打造的網購 App — 瀏覽、購物車與安全結帳，原生 iOS 開發。', url: 'https://apps.apple.com/hk/app/tt-mall-online-shopping/id6636525149', linkText: 'App Store', img: '/assets/clients/ttmall.png', fit: 'contain' },
                { name: 'GloStudy', sector: '教育科技', type: '網站', desc: '一站式升學支援平台 — 升學諮詢、補習、申請及面試準備，並附最適合院校搜尋，無論留港升學還是放眼世界。', url: 'https://glostudy.com', linkText: '瀏覽網站', img: '/assets/clients/glostudy.png', fit: 'cover' },
                { name: 'GloStudy AI', sector: '教育科技 · AI', type: '網站', desc: '以 AI 分析學生背景、預測錄取機會，並為學生排出全球最合適的大學課程 — 同時附上投資回報預測。', url: 'https://glostudy.ai/', linkText: '瀏覽網站', img: '/assets/clients/glostudy-ai.png', fit: 'cover' },
                { name: 'LumiTalk', sector: '教育 · 辯論', type: '網站', desc: '香港辯論機構的品牌網站，舉辦主題式辯論比賽，並為 10–18 歲學生提供培訓。', url: 'https://lumitalk.com', linkText: '瀏覽網站', img: '/assets/clients/lumitalk.png', fit: 'cover' },
                { name: 'HKSS Debate', sector: '教育 · 辯論', type: '網站', desc: '香港中學辯論比賽的網上平台 — 報名、賽程與賽事管理一站式處理。', url: 'https://hkssdebate.com', linkText: '瀏覽網站', img: '/assets/clients/hkssdebate.png', fit: 'cover' },
                { name: 'Parliament of Ideas', sector: '長者 · AI', type: '網站', desc: '以創新 AI 辯論技術強化長者溝通能力與情感福祉的網上平台。', url: 'https://poideas.com', linkText: '瀏覽網站', img: '/assets/clients/poideas.png', fit: 'cover' },
                { name: 'Faliothu Space', sector: '個人作品集', type: '網站', desc: '個人作品集網站，配以度身訂造的插畫角色，呈現簡潔而俏皮的作品展示。', url: 'https://faliothu.space/', linkText: '瀏覽網站', img: '/assets/clients/faliothu.png', fit: 'contain' },
            ],
            shot: '產品畫面',
        },
        process: {
            kicker: '我的做法',
            title: '尊重你死線的流程。',
            steps: [
                { num: '步驟 01', name: '需求分析', desc: '落手寫一行 code 之前，先摸清目標、用戶與範圍。' },
                { num: '步驟 02', name: '設計', desc: '由線框到精緻介面 — 建之前先一齊定案。' },
                { num: '步驟 03', name: '開發', desc: '緊湊衝刺、進度可見，沒有黑箱。' },
                { num: '步驟 04', name: '測試與推出', desc: '真實用戶測試，然後一個讓你安心的推出。' },
            ],
        },
        studio: {
            kicker: '關於這個人',
            title: '一個人、一間工作室，自 2021 年起做遊戲。',
            lead: '火梟就是我 — 一位身在香港的獨立開發者。我設計、編程並繪製原創獨立遊戲，並在空檔期為客戶接網頁及流動項目。',
            body: '遊戲是核心。我為客戶做產品所學到的一切，都會回饋到自己的遊戲裡 — 也希望能為玩家帶來多一點樂趣。',
            points: [
                { k: '製作者', v: '獨立開發者' },
                { k: '自', v: '2021 · 香港' },
                { k: '業務', v: '遊戲 · 網頁 · 流動應用' },
            ],
            shotsLabel: '開發中',
            shots: [
                { img: '/assets/games/eek-a-roach.png', label: 'Eek! A Roach · 2026 Sep' },
                { img: '/assets/games/goblin-gem-raiders.png', label: 'Goblin Gem Raiders · 2026 Oct' },
            ],
            cta: '開始一個項目',
        },
        cta: {
            kicker: '開始一個項目',
            title: '有遊戲構想？有產品要做？',
            sub: '告訴我你的構思。每一則訊息我都會回覆 — 通常一日內。',
            chips: ['一款遊戲', '網頁應用', '流動 App', '寄存', '未決定'],
            email: '電郵聯絡',
            whatsapp: 'WhatsApp',
            contact: [
                { l: '電郵', v: 'info@flameowlstudio.com' },
                { l: '電話', v: '(852) 9856 4104' },
                { l: '據點', v: '香港' },
            ],
        },
        footer: {
            rights: '© 2026 火梟工作室有限公司 · Flameowl Studio Ltd.',
        },
        news: {
            kicker: '最新消息',
            title: '火梟最新動態',
            sub: '工作室消息、遊戲發表、封測同更新。',
            empty: '暫時未有消息，遲啲再嚟睇下啦。',
            readMore: '閱讀全文',
            back: '所有消息',
            more: '更多消息',
            all: '全部',
        },
        subscribe: {
            kicker: '電子報',
            title: '第一時間收到最新消息',
            sub: '工作室消息、遊戲發表、封測同更新 — 有嘢值得分享先會寄俾你。',
            open: '訂閱',
            dialogTitle: '訂閱火梟最新消息',
            dialogSub: '話俾我哋知你係邊位，再揀你想收到嘅消息。',
            name: '姓名',
            organization: '機構 / 公司',
            optional: '選填',
            email: '電郵',
            topics: '主題',
            allTopics: '所有消息',
            consent: '我哋只會就你揀嘅主題電郵通知你，隨時可以取消訂閱。',
            button: '訂閱',
            sending: '訂閱緊…',
            close: '關閉',
            successTitle: '請去郵箱確認',
            successBody: '撳確認電郵入面條連結，就會開始收到消息。確認電郵已經寄去',
            noEmail: '收唔到？睇下垃圾郵件，或者',
            resend: '重新寄出',
            resendIn: ':s 秒後可以重新寄出',
            resent: '已經重新寄出。',
            done: '完成',
            error: '出咗少少問題，請一陣再試。',
            nameRequired: '請輸入你嘅名。',
            invalidEmail: '請輸入有效嘅電郵地址。',
            topicRequired: '請最少揀一個主題，或者揀「所有消息」。',
            privacy: '唔會亂寄。',
            manageLink: '管理訂閱',
            alreadySubscribed: '已經訂閱咗？',
        },
        manage: {
            title: '管理訂閱',
            emailStep: '輸入你訂閱時用嘅電郵，我哋會寄一個一次性驗證碼俾你。',
            sendCode: '寄驗證碼',
            sendingCode: '寄緊…',
            codeStep: '如果呢個電郵有訂閱，6 位數驗證碼已經寄出，請喺下面輸入。',
            code: '一次性驗證碼',
            verify: '繼續',
            verifying: '核對緊…',
            resend: '再寄過個驗證碼',
            otherEmail: '用另一個電郵',
            wrongCode: '驗證碼唔啱或者已經過期。',
            tooMany: '試得太多次，請等一分鐘再試。',
            status: '狀態',
            statuses: { active: '已訂閱', pending: '等緊確認', unsubscribed: '已取消' },
            since: '由',
            emailLanguage: '電郵語言',
            pendingNote: '你嘅電郵已經確認咗。',
            unsubscribedNote: '你已經取消咗訂閱。揀返主題再儲存就可以重新訂閱。',
            save: '儲存主題',
            saving: '儲存緊…',
            saved: '已儲存。',
            resubscribe: '重新訂閱',
            unsubscribe: '取消訂閱',
            unsubscribeAsk: '確定要取消訂閱？為安全起見，我哋會電郵一個驗證碼俾你確認。',
            emptyMeansCancel: '你已經剔走咗所有主題，即係取消訂閱。我哋會電郵一個驗證碼俾你確認。',
            sendCancelCode: '寄驗證碼俾我',
            cancelCodeSent: '請輸入我哋啱啱寄去以下電郵嘅取消驗證碼：',
            unsubscribeConfirm: '確認取消訂閱',
            keep: '保留訂閱',
            unsubscribed: '已取消訂閱，你唔會再收到消息電郵。',
            expired: '驗證已經過期，請再申請一個新嘅驗證碼。',
        },
        subscription: {
            confirmedTitle: '訂閱成功！',
            confirmedBody: '多謝確認。火梟有新消息嘅時候，我哋會電郵通知你。',
            unsubscribeTitle: '取消訂閱火梟最新消息？',
            unsubscribeBody: '以下電郵地址將唔會再收到消息電郵：',
            unsubscribeButton: '取消訂閱',
            unsubscribedTitle: '已取消訂閱',
            unsubscribedBody: '你唔會再收到消息電郵。想再訂閱隨時都得。',
            invalidTitle: '呢條連結已經失效',
            invalidBody: '可能已經過期或者用過。你可以喺消息頁面重新訂閱。',
            error: '出咗少少問題，請再試一次。',
            toNews: '去消息頁面',
        },
    },
};
