// i18n: PT/EN translations + Lang context + useT() hook + router context
// All exported to window for cross-script use.

const STRINGS = {
  pt: {
    // Nav
    nav_home: 'HOME',
    nav_about: 'SOBRE',
    nav_rankings: 'RANKINGS',
    nav_download: 'DOWNLOAD',
    nav_register: 'CADASTRO',
    nav_news: 'NOTÍCIAS',

    // Hero
    hero_kicker: 'SERVIDOR PRISTON TALE',
    hero_tagline: 'Apenas um reino prevalecerá.',
    hero_meta_lvl: 'LEVEL 225',
    hero_meta_pvp: 'PVP HARDCORE',
    hero_meta_bc: 'BC AOS DOMINGOS',
    hero_dl_meta: 'CLIENTE COMPLETO · 2.8 GB · WINDOWS 10/11',
    hero_scroll: 'DESÇA AO REINO',

    // Pull quotes
    quote_1: 'Forje seu reino. Sangue será derramado.',
    quote_2: 'Não há lugar para fracos.',
    quote_3: 'A coroa pertence a quem sobrevive.',

    // Countdown
    bc_kicker: 'CONVOCAÇÃO',
    bc_title_line_1: 'Próximo',
    bc_title_line_2: 'Battle Coliseum',
    bc_subtitle: 'DOMINGO · 17H BRT · ARENA ABERTA · LAST ONE STANDING',
    bc_seats: '128 VAGAS',
    bc_one_winner: 'UM ÚNICO VENCEDOR',
    bc_no_respawn: 'SEM RESPAWN',
    cd_days: 'DIAS',
    cd_hours: 'HORAS',
    cd_minutes: 'MINUTOS',
    cd_seconds: 'SEGUNDOS',

    // Featured 3-col
    feat_bc_owner: 'DONO DO BLESS CASTLE',
    feat_pvp_king: 'REI DO PVP',
    feat_sod_owner: 'DONO DO SOD',
    feat_clan: 'CLÃ',
    feat_class: 'CLASSE',
    feat_kills: 'KILLS',
    feat_news_kicker: 'CRÔNICAS DO REINO',
    feat_news_title: 'Últimas notícias',
    feat_read_more: 'Ler mais',
    feat_hot: 'HOT',
    tag_promo: 'PROMOÇÃO',
    tag_event: 'EVENTO',
    tag_update: 'UPDATE',
    tag_news: 'NOTÍCIA',

    // About
    about_kicker: 'O REINO',
    about_title_l1: 'Sobre',
    about_title_l2: 'KingdomTale',
    about_subtitle:
      'KingdomTale é um servidor de Priston Tale brasileiro construído para quem encara o PvP como ofício, não como passatempo.',
    about_p1:
      'Aqui o nível máximo é 225 e cada conquista é arrancada na lâmina. Não há mecânicas que vendem vitórias por dinheiro; existem regras claras, sistema próprio de combate (Bellatra) e otimização server-side para garantir que latência não decida batalhas.',
    about_p2:
      'O servidor é guerra constante. Battle Coliseum aos domingos, Guerra de Clãs no meio da semana, Free for All sextas, bosses spawnando a qualquer hora. Quem dormir, perde território.',
    about_p3:
      'Esta é uma comunidade de mérito. Reis caem. Coroas trocam de dono. Apenas um reino prevalecerá — escolha o seu lado antes que ele caia.',
    stat_levelcap: 'LEVEL CAP',
    stat_xp: 'RATE DE EXP',
    stat_drop: 'RATE DE DROP',
    stat_online_since: 'ONLINE DESDE',
    stat_players: 'JOGADORES ONLINE',
    stat_nextbc: 'PRÓXIMO BC',
    stat_nextbc_val: 'DOM · 17H BRT',

    // Features
    feat_kicker: 'OS PILARES DO REINO',
    feat_title_l1: 'Forjado para',
    feat_title_l2: 'os que restam',
    feat_subtitle:
      'Não há lugar para fracos. Cada sistema foi desenhado para premiar a perícia e punir a hesitação.',
    f_lvl: 'Level 225',
    f_lvl_line: 'Vá além do limite.',
    f_pvp: 'PvP Brutal',
    f_pvp_line: 'Guerra constante. Sacrifício real.',
    f_antilag: 'Antilag',
    f_antilag_line: 'Otimização server-side. Sem desculpas.',
    f_sod: 'SOD 3 Crowns',
    f_sod_line: 'Conquiste a coroa máxima.',
    f_rank: 'Ranking In-Game',
    f_rank_line: 'Sua glória registrada para sempre.',
    f_bellatra: 'Bellatra',
    f_bellatra_line: 'Sistema exclusivo de combate.',

    // Classes
    cls_kicker: 'NOVE LINHAGENS · UMA GUERRA',
    cls_title_l1: 'As classes',
    cls_title_l2: 'do reino',
    cls_subtitle:
      'Escolha sua linhagem com cuidado. Ela definirá como você vive — e como você morre.',
    cls_knight_l: 'Guerreiro equilibrado, com alta defesa e força física. Ideal para combate corpo a corpo e proteção de aliados.',
    cls_mech_l: 'Engenheiro de batalha que usa tecnologia, torretas e máquinas pesadas para dominar o campo à distância.',
    cls_pike_l: 'Guerreiro ofensivo de lança e foice, com técnicas devastadoras e alcance superior ao corpo a corpo comum.',
    cls_arch_l: 'Especialista em ataques de longa distância com arco. Alta precisão e mobilidade — porém frágil em defesa.',
    cls_atal_l: 'Lutadora ágil que combina força e destreza com lanças, atacando em movimento e furando defesas pesadas.',
    cls_mag_l: 'Conjuradora dos elementos. Foco em dano massivo em área com magias ofensivas devastadoras.',
    cls_prie_l: 'Suporte essencial. Cura, buffs e magias sagradas que sustentam o grupo contra qualquer ameaça.',
    cls_sham_l: 'Mestre dos espíritos. Manipula sombras, totens e maldições para enfraquecer inimigos enquanto protege os seus.',
    cls_assa_l: 'Assassina ágil das sombras. Furtiva, mortal em ataques rápidos por trás — alvo único, dano cirúrgico.',

    // Schedule
    sch_kicker: 'A SEMANA DO GUERREIRO',
    sch_title_l1: 'Cronograma',
    sch_title_l2: 'semanal',
    sch_subtitle: 'Marque sua agenda. O reino não espera.',
    sch_main_event: 'EVENTO PRINCIPAL',
    sch_d_sun: 'DOM',
    sch_d_wed: 'QUA',
    sch_d_fri: 'SEX',
    sch_d_daily: 'TODOS OS DIAS',
    sch_bc_name: 'Battle Coliseum',
    sch_bc_desc: 'O torneio sagrado. 128 entram. Um sai.',
    sch_clan_name: 'Guerra de Clãs',
    sch_clan_desc: 'Territórios em chamas. Sangue por bandeiras.',
    sch_ffa_name: 'PvP Free for All',
    sch_ffa_desc: 'Sem aliados. Sem trégua. Sem regras.',
    sch_boss_name: 'Boss Spawns',
    sch_boss_desc: 'Caçadas marcadas. Quem chega primeiro, sobrevive.',

    // Rankings
    rk_kicker: 'O SALÃO DOS REIS',
    rk_title_l1: 'Rankings',
    rk_title_l2: 'do reino',
    rk_subtitle:
      'Cinco categorias. Solo ou clã. Cada vitória ecoa no reino — cada nome marcado em ferro.',
    rk_solo: 'SOLO',
    rk_clan: 'CLÃ',
    rk_top1: 'TOP 1 ATUAL',
    rk_view: 'VER RANKING COMPLETO',
    rk_back: 'VOLTAR AO REINO',
    rk_updated: 'Última atualização',
    rk_pos: 'POS',
    rk_player: 'JOGADOR',
    rk_leader: 'LÍDER',
    rk_class: 'CLASSE',
    rk_clan_col: 'CLÃ',
    rk_value: 'VALOR',
    cat_pvp: 'Ranking PVP',
    cat_pvp_metric: 'kills',
    cat_sod: 'Ranking SOD',
    cat_sod_metric: 'coroas',
    cat_bc: 'Ranking BC',
    cat_bc_metric: 'vitórias',
    cat_arena: 'Ranking Arena PVP',
    cat_arena_metric: 'pontos',
    cat_hg: 'Ranking Hellsgate',
    cat_hg_metric: 'andares',

    // Register
    reg_kicker: 'FORJE SEU NOME',
    reg_title_l1: 'Criar',
    reg_title_l2: 'conta',
    reg_subtitle:
      'Sua marca no reino começa aqui. Escolha um nome que reis vão temer — ou esquecer.',
    reg_username: 'USUÁRIO',
    reg_email: 'E-MAIL',
    reg_password: 'SENHA',
    reg_password_confirm: 'CONFIRMAR SENHA',
    reg_submit: 'CRIAR CONTA',
    reg_terms: 'Ao criar uma conta, você aceita as Regras do Servidor.',
    reg_err_required: 'Campo obrigatório.',
    reg_err_email: 'E-mail inválido.',
    reg_err_min: 'Mínimo 4 caracteres.',
    reg_err_min_pw: 'Mínimo 6 caracteres.',
    reg_err_match: 'Senhas não conferem.',
    reg_success: 'Conta criada. Seu nome agora pertence ao reino.',

    // Download
    dl_kicker: 'CHAMADA AO COMBATE',
    dl_title_l1: 'Bem-vindo ao último',
    dl_title_l2: 'reino de pé',
    dl_subtitle:
      'Baixe o cliente. Crie seu herói. Forje sua lenda. Ou morra tentando.',
    dl_cli: 'CLIENTE COMPLETO · 2.8 GB',
    dl_os: 'SISTEMA OPERACIONAL',
    dl_os_val: 'Windows 10 / 11 (64-bit)',
    dl_req: 'REQUISITOS MÍNIMOS',
    dl_req_val: '4 GB RAM · DirectX 9 · 5 GB livres',
    dl_ver: 'VERSÃO ATUAL',
    dl_ver_val: 'v2.6.1 · Maio 2026',
    dl_note: 'Servidor brasileiro · Hosteado em São Paulo · Ping < 20ms',

    // Community
    com_kicker: 'A IRMANDADE DO AÇO',
    com_title_l1: 'Comunidade',
    com_title_l2: '& glória',
    com_subtitle: 'Cada nome registrado. Cada morte contada. Cada coroa lembrada.',
    com_stat_online: 'JOGADORES ONLINE',
    com_stat_clans: 'CLÃS ATIVOS',
    com_stat_kills: 'MORTES NO PVP / SEMANA',
    com_code: 'O CÓDIGO DO REINO',
    com_code_title_l1: 'Nenhuma trégua.',
    com_code_title_l2: 'Nenhum perdão.',
    com_code_quote: 'Aqui não existem heróis. Apenas reis e mortos.',
    com_seats_bc: 'VAGAS BC',
    com_winner: 'VENCEDOR',
    com_top5: 'Top 5 · PvP',
    com_week: 'SEMANA ATUAL',
    com_view_full: 'VER RANKING COMPLETO →',

    // Footer
    foot_links: 'REINO',
    foot_legal: 'JURÍDICO',
    foot_rules: 'Regras',
    foot_support: 'Suporte',
    foot_donate: 'Doações',
    foot_terms: 'Termos de Uso',
    foot_privacy: 'Política de Privacidade',
    foot_contact: 'Contato',
    foot_rights: '© 2026 KingdomTale · Todos os direitos reservados.',
    foot_disclaimer:
      'Servidor não-oficial. Priston Tale é propriedade de seus respectivos donos.',
    foot_motto: '"A coroa pertence a quem sobrevive. O reino, a quem ousa."',
  },

  en: {
    // Nav
    nav_home: 'HOME',
    nav_about: 'ABOUT',
    nav_rankings: 'RANKINGS',
    nav_download: 'DOWNLOAD',
    nav_register: 'REGISTER',
    nav_news: 'NEWS',

    hero_kicker: 'PRISTON TALE SERVER',
    hero_tagline: 'Only one kingdom shall prevail.',
    hero_meta_lvl: 'LEVEL 225',
    hero_meta_pvp: 'HARDCORE PVP',
    hero_meta_bc: 'BC EVERY SUNDAY',
    hero_dl_meta: 'FULL CLIENT · 2.8 GB · WINDOWS 10/11',
    hero_scroll: 'ENTER THE KINGDOM',

    quote_1: 'Forge your kingdom. Blood shall be spilled.',
    quote_2: 'No place for the weak.',
    quote_3: 'The crown belongs to those who survive.',

    bc_kicker: 'CALL TO ARMS',
    bc_title_line_1: 'Next',
    bc_title_line_2: 'Battle Coliseum',
    bc_subtitle: 'SUNDAY · 5PM BRT · OPEN ARENA · LAST ONE STANDING',
    bc_seats: '128 SEATS',
    bc_one_winner: 'A SINGLE VICTOR',
    bc_no_respawn: 'NO RESPAWN',
    cd_days: 'DAYS',
    cd_hours: 'HOURS',
    cd_minutes: 'MINUTES',
    cd_seconds: 'SECONDS',

    feat_bc_owner: 'BLESS CASTLE OWNER',
    feat_pvp_king: 'PVP KING',
    feat_sod_owner: 'SOD OWNER',
    feat_clan: 'CLAN',
    feat_class: 'CLASS',
    feat_kills: 'KILLS',
    feat_news_kicker: 'CHRONICLES OF THE REALM',
    feat_news_title: 'Latest news',
    feat_read_more: 'Read more',
    feat_hot: 'HOT',
    tag_promo: 'PROMO',
    tag_event: 'EVENT',
    tag_update: 'UPDATE',
    tag_news: 'NEWS',

    about_kicker: 'THE REALM',
    about_title_l1: 'About',
    about_title_l2: 'KingdomTale',
    about_subtitle:
      'KingdomTale is a Brazilian Priston Tale server built for players who treat PvP as a craft, not a pastime.',
    about_p1:
      'Level cap is 225 and every achievement is taken by the blade. No mechanics that sell victory; clear rules, a proprietary combat system (Bellatra) and server-side optimization so latency never decides a fight.',
    about_p2:
      'The server is constant war. Battle Coliseum on Sundays, Clan War midweek, Free for All on Fridays, bosses spawning at any hour. Sleep and you lose your land.',
    about_p3:
      'This is a meritocracy. Kings fall. Crowns change hands. Only one kingdom shall prevail — choose your side before it falls.',
    stat_levelcap: 'LEVEL CAP',
    stat_xp: 'EXP RATE',
    stat_drop: 'DROP RATE',
    stat_online_since: 'ONLINE SINCE',
    stat_players: 'PLAYERS ONLINE',
    stat_nextbc: 'NEXT BC',
    stat_nextbc_val: 'SUN · 5PM BRT',

    feat_kicker: 'PILLARS OF THE REALM',
    feat_title_l1: 'Forged for',
    feat_title_l2: 'those who remain',
    feat_subtitle:
      'No place for the weak. Every system rewards skill and punishes hesitation.',
    f_lvl: 'Level 225',
    f_lvl_line: 'Go past the limit.',
    f_pvp: 'Brutal PvP',
    f_pvp_line: 'Constant war. Real sacrifice.',
    f_antilag: 'Antilag',
    f_antilag_line: 'Server-side optimization. No excuses.',
    f_sod: 'SOD 3 Crowns',
    f_sod_line: 'Claim the highest crown.',
    f_rank: 'In-Game Ranking',
    f_rank_line: 'Your glory written forever.',
    f_bellatra: 'Bellatra',
    f_bellatra_line: 'Exclusive combat system.',

    cls_kicker: 'NINE BLOODLINES · ONE WAR',
    cls_title_l1: 'The classes',
    cls_title_l2: 'of the realm',
    cls_subtitle: 'Choose your bloodline carefully. It will decide how you live — and how you die.',
    cls_knight_l: 'Balanced warrior with high defense and physical strength. Built for melee combat and protecting allies.',
    cls_mech_l: 'Battle engineer wielding technology, turrets and heavy machines to dominate the field at range.',
    cls_pike_l: 'Offensive warrior of pike and scythe. Devastating techniques with reach beyond common melee.',
    cls_arch_l: 'Long-range specialist with the bow. High precision and mobility — fragile when caught up close.',
    cls_atal_l: 'Agile fighter combining strength and finesse with spears, striking on the move to pierce heavy defense.',
    cls_mag_l: 'Conjurer of the elements. Focused on massive area damage with devastating offensive magic.',
    cls_prie_l: 'Essential support. Healing, buffs and holy magic that hold the party together against any threat.',
    cls_sham_l: 'Master of spirits. Bends shadow, totems and curses to weaken foes while sheltering allies.',
    cls_assa_l: 'Agile assassin of the shadows. Stealthy and lethal in quick strikes from behind — single target, surgical damage.',

    sch_kicker: 'A WARRIOR\u2019S WEEK',
    sch_title_l1: 'Weekly',
    sch_title_l2: 'schedule',
    sch_subtitle: 'Mark your calendar. The realm does not wait.',
    sch_main_event: 'MAIN EVENT',
    sch_d_sun: 'SUN',
    sch_d_wed: 'WED',
    sch_d_fri: 'FRI',
    sch_d_daily: 'EVERY DAY',
    sch_bc_name: 'Battle Coliseum',
    sch_bc_desc: 'The sacred tournament. 128 enter. One leaves.',
    sch_clan_name: 'Clan War',
    sch_clan_desc: 'Lands in flames. Blood for banners.',
    sch_ffa_name: 'PvP Free for All',
    sch_ffa_desc: 'No allies. No truce. No rules.',
    sch_boss_name: 'Boss Spawns',
    sch_boss_desc: 'Marked hunts. First to arrive, last to fall.',

    rk_kicker: 'THE HALL OF KINGS',
    rk_title_l1: 'Rankings',
    rk_title_l2: 'of the realm',
    rk_subtitle:
      'Five categories. Solo or clan. Every win echoes through the realm — every name struck in iron.',
    rk_solo: 'SOLO',
    rk_clan: 'CLAN',
    rk_top1: 'CURRENT TOP 1',
    rk_view: 'VIEW FULL RANKING',
    rk_back: 'BACK TO REALM',
    rk_updated: 'Last updated',
    rk_pos: 'POS',
    rk_player: 'PLAYER',
    rk_leader: 'LEADER',
    rk_class: 'CLASS',
    rk_clan_col: 'CLAN',
    rk_value: 'VALUE',
    cat_pvp: 'PvP Ranking',
    cat_pvp_metric: 'kills',
    cat_sod: 'SOD Ranking',
    cat_sod_metric: 'crowns',
    cat_bc: 'BC Ranking',
    cat_bc_metric: 'wins',
    cat_arena: 'PvP Arena Ranking',
    cat_arena_metric: 'points',
    cat_hg: 'Hellsgate Ranking',
    cat_hg_metric: 'floors',

    reg_kicker: 'FORGE YOUR NAME',
    reg_title_l1: 'Create',
    reg_title_l2: 'account',
    reg_subtitle: 'Your mark in the realm starts here. Pick a name kings will fear — or forget.',
    reg_username: 'USERNAME',
    reg_email: 'EMAIL',
    reg_password: 'PASSWORD',
    reg_password_confirm: 'CONFIRM PASSWORD',
    reg_submit: 'CREATE ACCOUNT',
    reg_terms: 'By creating an account you accept the Server Rules.',
    reg_err_required: 'Required field.',
    reg_err_email: 'Invalid email.',
    reg_err_min: 'At least 4 characters.',
    reg_err_min_pw: 'At least 6 characters.',
    reg_err_match: 'Passwords do not match.',
    reg_success: 'Account created. Your name now belongs to the realm.',

    dl_kicker: 'CALL TO BATTLE',
    dl_title_l1: 'Welcome to the last',
    dl_title_l2: 'kingdom standing',
    dl_subtitle: 'Download the client. Craft your hero. Forge your legend. Or die trying.',
    dl_cli: 'FULL CLIENT · 2.8 GB',
    dl_os: 'OPERATING SYSTEM',
    dl_os_val: 'Windows 10 / 11 (64-bit)',
    dl_req: 'MINIMUM REQUIREMENTS',
    dl_req_val: '4 GB RAM · DirectX 9 · 5 GB free',
    dl_ver: 'CURRENT VERSION',
    dl_ver_val: 'v2.6.1 · May 2026',
    dl_note: 'Brazilian server · Hosted in São Paulo · Ping < 20ms',

    com_kicker: 'THE BROTHERHOOD OF STEEL',
    com_title_l1: 'Community',
    com_title_l2: '& glory',
    com_subtitle: 'Every name recorded. Every death counted. Every crown remembered.',
    com_stat_online: 'PLAYERS ONLINE',
    com_stat_clans: 'ACTIVE CLANS',
    com_stat_kills: 'PVP KILLS / WEEK',
    com_code: 'THE CODE OF THE REALM',
    com_code_title_l1: 'No truce.',
    com_code_title_l2: 'No mercy.',
    com_code_quote: 'No heroes here. Only kings and corpses.',
    com_seats_bc: 'BC SEATS',
    com_winner: 'WINNER',
    com_top5: 'Top 5 · PvP',
    com_week: 'CURRENT WEEK',
    com_view_full: 'VIEW FULL RANKING →',

    foot_links: 'REALM',
    foot_legal: 'LEGAL',
    foot_rules: 'Rules',
    foot_support: 'Support',
    foot_donate: 'Donations',
    foot_terms: 'Terms of Service',
    foot_privacy: 'Privacy Policy',
    foot_contact: 'Contact',
    foot_rights: '© 2026 KingdomTale · All rights reserved.',
    foot_disclaimer:
      'Unofficial server. Priston Tale is property of its respective owners.',
    foot_motto: '"The crown belongs to those who survive. The realm, to those who dare."',
  },
};

// =====================================
// LANG context + safe storage
// =====================================
const LangContext = React.createContext({
  lang: 'pt',
  setLang: () => {},
  t: (k) => k,
});

const safeStorage = (() => {
  try {
    const k = '__kt_test';
    localStorage.setItem(k, '1');
    localStorage.removeItem(k);
    return localStorage;
  } catch {
    const mem = new Map();
    return {
      getItem: (k) => (mem.has(k) ? mem.get(k) : null),
      setItem: (k, v) => mem.set(k, String(v)),
      removeItem: (k) => mem.delete(k),
    };
  }
})();

// Idiomas suportados pelo site
const SUPPORTED_LANGS = ['pt', 'en', 'es'];

// Detecta o idioma do navegador (pt/en/es). Cai em 'pt' se nenhum casar.
function detectBrowserLang() {
  try {
    const list = (navigator.languages && navigator.languages.length)
      ? navigator.languages
      : [navigator.language || navigator.userLanguage || 'pt'];
    for (const raw of list) {
      const code = String(raw).toLowerCase().slice(0, 2);
      if (SUPPORTED_LANGS.includes(code)) return code;
    }
  } catch (_) { /* navigator indisponível */ }
  return 'pt';
}

const LangProvider = ({ children }) => {
  const [lang, _setLang] = React.useState(() => {
    const stored = safeStorage.getItem('kt_lang');
    // 1º) escolha manual salva sempre vence  2º) senão, detecta o navegador
    if (SUPPORTED_LANGS.includes(stored)) return stored;
    return detectBrowserLang();
  });
  const setLang = React.useCallback((l) => {
    if (!SUPPORTED_LANGS.includes(l)) return;
    _setLang(l);
    safeStorage.setItem('kt_lang', l);
  }, []);
  const t = React.useCallback(
    (key) => {
      const dict = STRINGS[lang] || STRINGS.pt;
      if (dict[key] != null) return dict[key];        // idioma atual
      if (STRINGS.en[key] != null) return STRINGS.en[key];  // fallback EN
      if (STRINGS.pt[key] != null) return STRINGS.pt[key];  // fallback PT
      return key;                                     // último recurso: a chave
    },
    [lang]
  );
  // expose globally for non-React helpers + ajusta <html lang> p/ SEO/acessibilidade
  React.useEffect(() => {
    window.__t = t; window.__lang = lang;
    try { document.documentElement.lang = lang === 'pt' ? 'pt-BR' : lang; } catch (_) {}
  }, [t, lang]);
  return (
    <LangContext.Provider value={{ lang, setLang, t }}>
      {children}
    </LangContext.Provider>
  );
};

const useT = () => {
  const ctx = React.useContext(LangContext);
  return ctx;
};

// =====================================
// PAGE / router context — home + ranking detail pages
// =====================================
const PageContext = React.createContext({
  page: { name: 'home' },
  goto: () => {},
});

const PageProvider = ({ children }) => {
  const [page, setPage] = React.useState({ name: 'home' });
  const goto = React.useCallback((next) => {
    setPage(typeof next === 'string' ? { name: next } : next);
    // scroll to top on page change
    requestAnimationFrame(() => {
      window.scrollTo({ top: 0, behavior: 'instant' in window ? 'instant' : 'auto' });
    });
  }, []);
  return (
    <PageContext.Provider value={{ page, goto }}>
      {children}
    </PageContext.Provider>
  );
};

const usePage = () => React.useContext(PageContext);

// =====================================
// LANG TOGGLE — ornate PT|EN switch
// =====================================
const LangToggle = ({ className = '', size = 'sm' }) => {
  const { lang, setLang } = useT();
  const baseBtn =
    size === 'lg'
      ? 'px-3 py-1.5 text-xs'
      : 'px-2.5 py-1 text-[11px]';
  return (
    <div className={`inline-flex items-center border border-gold-700/60 bg-stone-950/60 backdrop-blur-sm ${className}`}>
      {['pt', 'en', 'es'].map((l) => (
        <button
          key={l}
          onClick={() => setLang(l)}
          className={`${baseBtn} font-impact tracking-[0.3em] transition-colors
            ${lang === l
              ? 'bg-crimson-700 text-parchment'
              : 'text-gold-500/70 hover:text-gold-300'}
          `}
          aria-pressed={lang === l}
        >
          {l.toUpperCase()}
        </button>
      ))}
    </div>
  );
};

// =====================================
// ESPANHOL — site inteiro
// Base = inglês (fallback p/ qualquer chave nova); abaixo, traduções pt→es.
// =====================================
STRINGS.es = Object.assign({}, STRINGS.en, {
  // Nav
  nav_home: 'HOME', nav_about: 'ACERCA', nav_rankings: 'RANKINGS',
  nav_download: 'DESCARGAR', nav_register: 'REGISTRO', nav_news: 'NOTICIAS',

  // Hero
  hero_kicker: 'SERVIDOR PRISTON TALE',
  hero_tagline: 'Solo un reino prevalecerá.',
  hero_meta_lvl: 'LEVEL 225', hero_meta_pvp: 'PVP HARDCORE', hero_meta_bc: 'BC LOS DOMINGOS',
  hero_dl_meta: 'CLIENTE COMPLETO · 2.8 GB · WINDOWS 10/11',
  hero_scroll: 'ENTRA AL REINO',

  // Pull quotes
  quote_1: 'Forja tu reino. Se derramará sangre.',
  quote_2: 'No hay lugar para los débiles.',
  quote_3: 'La corona pertenece a quien sobrevive.',

  // Countdown
  bc_kicker: 'LLAMADO A LAS ARMAS',
  bc_title_line_1: 'Próximo', bc_title_line_2: 'Battle Coliseum',
  bc_subtitle: 'DOMINGO · 17H BRT · ARENA ABIERTA · LAST ONE STANDING',
  bc_seats: '128 PLAZAS', bc_one_winner: 'UN ÚNICO VENCEDOR', bc_no_respawn: 'SIN RESPAWN',
  cd_days: 'DÍAS', cd_hours: 'HORAS', cd_minutes: 'MINUTOS', cd_seconds: 'SEGUNDOS',

  // Featured
  feat_bc_owner: 'DUEÑO DEL BLESS CASTLE', feat_pvp_king: 'REY DEL PVP', feat_sod_owner: 'DUEÑO DEL SOD',
  feat_clan: 'CLAN', feat_class: 'CLASE', feat_kills: 'KILLS',
  feat_news_kicker: 'CRÓNICAS DEL REINO', feat_news_title: 'Últimas noticias', feat_read_more: 'Leer más', feat_hot: 'HOT',
  tag_promo: 'PROMOCIÓN', tag_event: 'EVENTO', tag_update: 'UPDATE', tag_news: 'NOTICIA',

  // About
  about_kicker: 'EL REINO', about_title_l1: 'Acerca de', about_title_l2: 'KingdomTale',
  about_subtitle: 'KingdomTale es un servidor de Priston Tale brasileño construido para quienes ven el PvP como un oficio, no como un pasatiempo.',
  about_p1: 'Aquí el nivel máximo es 225 y cada logro se gana con la espada. No hay mecánicas que vendan victorias por dinero; hay reglas claras, un sistema propio de combate (Bellatra) y optimización del lado del servidor para que la latencia nunca decida una batalla.',
  about_p2: 'El servidor es guerra constante. Battle Coliseum los domingos, Guerra de Clanes entre semana, Free for All los viernes, jefes apareciendo a cualquier hora. Quien duerme, pierde territorio.',
  about_p3: 'Esta es una comunidad de mérito. Los reyes caen. Las coronas cambian de dueño. Solo un reino prevalecerá — elige tu lado antes de que caiga.',
  stat_levelcap: 'LEVEL CAP', stat_xp: 'TASA DE EXP', stat_drop: 'TASA DE DROP', stat_online_since: 'EN LÍNEA DESDE',
  stat_players: 'JUGADORES EN LÍNEA', stat_nextbc: 'PRÓXIMO BC', stat_nextbc_val: 'DOM · 17H BRT',

  // Features
  feat_kicker: 'LOS PILARES DEL REINO', feat_title_l1: 'Forjado para', feat_title_l2: 'los que quedan',
  feat_subtitle: 'No hay lugar para los débiles. Cada sistema premia la habilidad y castiga la duda.',
  f_lvl: 'Level 225', f_lvl_line: 'Ve más allá del límite.',
  f_pvp: 'PvP Brutal', f_pvp_line: 'Guerra constante. Sacrificio real.',
  f_antilag: 'Antilag', f_antilag_line: 'Optimización del lado del servidor. Sin excusas.',
  f_sod: 'SOD 3 Coronas', f_sod_line: 'Conquista la corona máxima.',
  f_rank: 'Ranking In-Game', f_rank_line: 'Tu gloria escrita para siempre.',
  f_bellatra: 'Bellatra', f_bellatra_line: 'Sistema de combate exclusivo.',

  // Classes
  cls_kicker: 'NUEVE LINAJES · UNA GUERRA', cls_title_l1: 'Las clases', cls_title_l2: 'del reino',
  cls_subtitle: 'Elige tu linaje con cuidado. Definirá cómo vives — y cómo mueres.',
  cls_knight_l: 'Guerrero equilibrado, con alta defensa y fuerza física. Ideal para el combate cuerpo a cuerpo y la protección de aliados.',
  cls_mech_l: 'Ingeniero de batalla que usa tecnología, torretas y máquinas pesadas para dominar el campo a distancia.',
  cls_pike_l: 'Guerrero ofensivo de lanza y guadaña, con técnicas devastadoras y mayor alcance que el cuerpo a cuerpo común.',
  cls_arch_l: 'Especialista en ataques a larga distancia con arco. Alta precisión y movilidad — pero frágil en defensa.',
  cls_atal_l: 'Luchadora ágil que combina fuerza y destreza con lanzas, atacando en movimiento y perforando defensas pesadas.',
  cls_mag_l: 'Conjuradora de los elementos. Enfocada en daño masivo en área con magias ofensivas devastadoras.',
  cls_prie_l: 'Soporte esencial. Curación, buffs y magia sagrada que sostienen al grupo ante cualquier amenaza.',
  cls_sham_l: 'Maestro de los espíritus. Manipula sombras, tótems y maldiciones para debilitar enemigos mientras protege a los suyos.',
  cls_assa_l: 'Asesina ágil de las sombras. Sigilosa y letal en ataques rápidos por la espalda — objetivo único, daño quirúrgico.',

  // Schedule
  sch_kicker: 'LA SEMANA DEL GUERRERO', sch_title_l1: 'Cronograma', sch_title_l2: 'semanal',
  sch_subtitle: 'Marca tu agenda. El reino no espera.', sch_main_event: 'EVENTO PRINCIPAL',
  sch_d_sun: 'DOM', sch_d_wed: 'MIÉ', sch_d_fri: 'VIE', sch_d_daily: 'TODOS LOS DÍAS',
  sch_bc_name: 'Battle Coliseum', sch_bc_desc: 'El torneo sagrado. 128 entran. Uno sale.',
  sch_clan_name: 'Guerra de Clanes', sch_clan_desc: 'Territorios en llamas. Sangre por banderas.',
  sch_ffa_name: 'PvP Free for All', sch_ffa_desc: 'Sin aliados. Sin tregua. Sin reglas.',
  sch_boss_name: 'Boss Spawns', sch_boss_desc: 'Cacerías marcadas. Quien llega primero, sobrevive.',

  // Rankings
  rk_kicker: 'EL SALÓN DE LOS REYES', rk_title_l1: 'Rankings', rk_title_l2: 'del reino',
  rk_subtitle: 'Cinco categorías. Solo o clan. Cada victoria resuena en el reino — cada nombre grabado en hierro.',
  rk_solo: 'SOLO', rk_clan: 'CLAN', rk_top1: 'TOP 1 ACTUAL', rk_view: 'VER RANKING COMPLETO', rk_back: 'VOLVER AL REINO',
  rk_updated: 'Última actualización', rk_pos: 'POS', rk_player: 'JUGADOR', rk_leader: 'LÍDER', rk_class: 'CLASE', rk_clan_col: 'CLAN', rk_value: 'VALOR',
  cat_pvp: 'Ranking PVP', cat_pvp_metric: 'kills', cat_sod: 'Ranking SOD', cat_sod_metric: 'coronas',
  cat_bc: 'Ranking BC', cat_bc_metric: 'victorias', cat_arena: 'Ranking Arena PVP', cat_arena_metric: 'puntos',
  cat_hg: 'Ranking Hellsgate', cat_hg_metric: 'pisos',

  // Register
  reg_kicker: 'FORJA TU NOMBRE', reg_title_l1: 'Crear', reg_title_l2: 'cuenta',
  reg_subtitle: 'Tu marca en el reino empieza aquí. Elige un nombre que los reyes teman — u olviden.',
  reg_username: 'USUARIO', reg_email: 'CORREO', reg_password: 'CONTRASEÑA', reg_password_confirm: 'CONFIRMAR CONTRASEÑA', reg_submit: 'CREAR CUENTA',
  reg_terms: 'Al crear una cuenta, aceptas las Reglas del Servidor.',
  reg_err_required: 'Campo obligatorio.', reg_err_email: 'Correo inválido.', reg_err_min: 'Mínimo 4 caracteres.', reg_err_min_pw: 'Mínimo 6 caracteres.', reg_err_match: 'Las contraseñas no coinciden.',
  reg_success: 'Cuenta creada. Tu nombre ahora pertenece al reino.',

  // Download
  dl_kicker: 'LLAMADO AL COMBATE', dl_title_l1: 'Bienvenido al último', dl_title_l2: 'reino en pie',
  dl_subtitle: 'Descarga el cliente. Crea tu héroe. Forja tu leyenda. O muere intentándolo.',
  dl_cli: 'CLIENTE COMPLETO · 2.8 GB', dl_os: 'SISTEMA OPERATIVO', dl_os_val: 'Windows 10 / 11 (64-bit)',
  dl_req: 'REQUISITOS MÍNIMOS', dl_req_val: '4 GB RAM · DirectX 9 · 5 GB libres', dl_ver: 'VERSIÓN ACTUAL', dl_ver_val: 'v2.6.1 · Mayo 2026',
  dl_note: 'Servidor brasileño · Alojado en São Paulo · Ping < 20ms',

  // Community
  com_kicker: 'LA HERMANDAD DEL ACERO', com_title_l1: 'Comunidad', com_title_l2: '& gloria',
  com_subtitle: 'Cada nombre registrado. Cada muerte contada. Cada corona recordada.',
  com_stat_online: 'JUGADORES EN LÍNEA', com_stat_clans: 'CLANES ACTIVOS', com_stat_kills: 'MUERTES PVP / SEMANA',
  com_code: 'EL CÓDIGO DEL REINO', com_code_title_l1: 'Sin tregua.', com_code_title_l2: 'Sin perdón.',
  com_code_quote: 'Aquí no hay héroes. Solo reyes y cadáveres.',
  com_seats_bc: 'PLAZAS BC', com_winner: 'VENCEDOR', com_top5: 'Top 5 · PvP', com_week: 'SEMANA ACTUAL', com_view_full: 'VER RANKING COMPLETO →',

  // Footer
  foot_links: 'REINO', foot_legal: 'LEGAL', foot_rules: 'Reglas', foot_support: 'Soporte', foot_donate: 'Donaciones',
  foot_terms: 'Términos de Uso', foot_privacy: 'Política de Privacidad', foot_contact: 'Contacto',
  foot_rights: '© 2026 KingdomTale · Todos los derechos reservados.',
  foot_disclaimer: 'Servidor no oficial. Priston Tale es propiedad de sus respectivos dueños.',
  foot_motto: '"La corona pertenece a quien sobrevive. El reino, a quien se atreve."',
});

// =====================================
// LANDING DE CAPTAÇÃO (lp_*) — textos FINAIS (de textos-finais-i18n.md)
// =====================================
Object.assign(STRINGS.pt, {
  lp_badge_soon: 'EM BREVE',
  lp_hero_title_l1: 'TODO MUNDO COMEÇA IGUAL.',
  lp_hero_title_l2: 'PRONTO PRA BATALHA.',
  lp_hero_sub: 'KingdomTale — servidor de Priston Tale Full PVP, sem Pay to Win. Grátis pra jogar.',
  lp_cta_join: 'QUERO ENTRAR NA LISTA',
  lp_hero_scroll: 'ROLE PARA SABER MAIS',

  lp_p2w_kicker: 'O QUE NOS MOVE',
  lp_p2w_title_l1: 'Chega de', lp_p2w_title_l2: 'Pay to Win',
  lp_p2w_body: 'Todo servidor Full PVP do mercado te obriga a doar pra conseguir se divertir. O KingdomTale é o contrário. Aqui ninguém compra vitória: você começa no level máximo 225, full +20, igual a todo mundo — e cai direto pra batalha.',

  lp_focus_kicker: 'A FILOSOFIA',
  lp_focus_title_l1: 'O foco é PVP e Hunt,', lp_focus_title_l2: 'não em farmar XP',
  lp_focus_body: 'Esquece o grind. Sem level pra subir, sem horas matando bicho. Você loga e já está pronto. O jogo gira em torno de PVP e caça (drop): quests diárias, semanais e mensais que te premiam com skins. Todo dia, uma chance nova de tirar algo raro.',
  lp_cta_notify: 'QUERO SER AVISADO',

  lp_arsenal_kicker: 'O ARSENAL',
  lp_arsenal_title_l1: 'Seu', lp_arsenal_title_l2: 'arsenal',
  lp_arsenal_body: 'Classes balanceadas, milhares de skins e um sistema de combate próprio. Dá uma olhada no que te espera.',
  lp_arsenal_b1: '10 classes super balanceadas, cada uma com seu estilo de combate',
  lp_arsenal_b2: '+4.000 skins diversificadas, todas conquistadas jogando',
  lp_arsenal_b3: 'Level 225 full +20 desde o início — todo mundo igual',
  lp_arsenal_b4: 'Tier 5, mapas novos, Aging até +30, Arena PVP e Hellsgate com itens de Boss',
  lp_arsenal_ph_skins: 'PRINTS DAS SKINS EM BREVE',
  lp_arsenal_ph_classes: 'PRINTS DAS CLASSES EM BREVE',
  lp_arsenal_classes_title: 'AS 10 CLASSES',

  lp_mech_kicker: 'AS MECÂNICAS',
  lp_mech_title_l1: 'Mecânicas que', lp_mech_title_l2: 'fortalecem seu game',
  lp_mech_body: 'Sistemas desenhados pra premiar habilidade, não carteira.',
  lp_mech_m1: 'Quests de PVP diárias, semanais e mensais que premiam skins',
  lp_mech_m2: 'Montarias, Relíquias e Despertar de itens (com chance de falha)',
  lp_mech_m3: 'Timeshop e Sistema Rei PVP, premiados em coins',
  lp_mech_m4: 'Mercado interno seguro em coins — a economia se movimenta por você',
  lp_mech_coins_note: 'As coins se ganham jogando — e nada no Coinshop te dá vantagem de combate. Sheltons e restauros de aging são dropáveis e também ficam no Coinshop, mas sem quebrar o equilíbrio do PVP.',
  lp_cta_secure: 'GARANTIR MEU LUGAR',

  lp_vip_kicker: 'VIP JUSTO',
  lp_vip_title_l1: 'VIP que NÃO', lp_vip_title_l2: 'interfere no PVP',
  lp_vip_body: 'Nosso VIP premia só com adicional de drop e conveniência — nunca vantagem em combate. Quem não paga compete de igual pra igual.',
  lp_vip_b1: 'Só adicional de drop e comodidade',
  lp_vip_b2: 'Zero impacto no equilíbrio do PVP',
  lp_vip_b3: 'Campeonato de PVP toda semana — solo ou em grupo — premiado em coins e box de skins',

  lp_time_kicker: 'PRA SUA ROTINA',
  lp_time_title_l1: 'Feito pra quem', lp_time_title_l2: 'tem pouco tempo',
  lp_time_body: 'Trabalha a semana toda e sobra pouco tempo pra jogar? Esse servidor é pra você. Nada de horas upando. Você loga e cai pra batalha. E o melhor: sua gameplay de PVP nunca vai ser atropelada por quem tem mais dinheiro — tudo se conquista jogando. É a oportunidade de reunir os amigos e o clã e voltar pro Priston que você ama.',

  lp_reward_kicker: 'RECOMPENSA DE LANÇAMENTO',
  lp_reward_title_l1: 'Entre na lista', lp_reward_title_l2: 'e ganhe no lançamento',
  lp_reward_body: 'Quem deixar o contato agora recebe, no dia da abertura:',
  lp_reward_item1: '7 DIAS DE VIP',
  lp_reward_item1_desc: 'Comece já com todas as comodidades do VIP por uma semana.',
  lp_reward_item2: 'BOX DE SKIN LENDÁRIA',
  lp_reward_item2_desc: 'Uma caixa com skin lendária exclusiva pra quem entrou na lista.',
  lp_reward_note: 'Nosso presente de fundador pra quem acreditou desde o começo. Você recebe um código pra resgatar assim que o servidor abrir.',

  lp_form_kicker: 'LISTA DE ESPERA',
  lp_form_title_l1: 'Seja o primeiro', lp_form_title_l2: 'a saber',
  lp_form_sub: 'Deixe seu contato e seja avisado em primeira mão quando o KingdomTale abrir. Sem spam.',
  lp_form_email: 'E-MAIL', lp_form_email_ph: 'seu@email.com',
  lp_form_phone: 'WHATSAPP', lp_form_phone_opt: '(opcional)',
  lp_form_country: 'PAÍS', lp_form_country_ph: 'Selecione seu país',
  lp_form_consent: 'Aceito receber novidades e concordo com a',
  lp_form_policy_link: 'Política de Privacidade',
  lp_form_suggestion: 'Sua sugestão (opcional)',
  lp_form_suggestion_ph: 'O que você gostaria de ver no servidor?',
  lp_form_submit: 'QUERO MEU TRONO', lp_form_sending: 'ENVIANDO...',
  lp_err_email_required: 'Informe seu e-mail.', lp_err_email_invalid: 'E-mail inválido.',
  lp_err_country_required: 'Selecione seu país.', lp_err_consent_required: 'Você precisa aceitar para continuar.',
  lp_err_phone_invalid: 'Número de telefone inválido.', lp_err_generic: 'Algo deu errado. Tente novamente.',
  lp_err_duplicate: 'Este e-mail já está na lista.',

  lp_success_title_l1: 'Você está', lp_success_title_l2: 'na lista!',
  lp_success_body: 'Agora entra na comunidade e acompanha tudo em primeira mão:',
  lp_cta_discord: 'DISCORD', lp_cta_whatsapp_group: 'WHATSAPP',
  lp_success_share: 'Quem vai tomar o Trono? KingdomTale te espera.',

  lp_sobre_soon_kicker: 'CADASTRO',
  lp_sobre_soon_title_l1: 'Em', lp_sobre_soon_title_l2: 'breve',
  lp_sobre_soon_body: 'O cadastro de contas abre no lançamento. Por enquanto, entre na lista de espera e garanta suas recompensas: 7 dias de VIP + box de skin lendária.',
  lp_sobre_soon_cta: 'ENTRAR NA LISTA',
});

Object.assign(STRINGS.en, {
  lp_badge_soon: 'COMING SOON',
  lp_hero_title_l1: 'EVERYONE STARTS EQUAL.', lp_hero_title_l2: 'READY FOR BATTLE.',
  lp_hero_sub: 'KingdomTale — a Full PVP Priston Tale server, no Pay to Win. Free to play.',
  lp_cta_join: 'JOIN THE LIST', lp_hero_scroll: 'SCROLL TO LEARN MORE',

  lp_p2w_kicker: 'WHAT DRIVES US',
  lp_p2w_title_l1: 'No more', lp_p2w_title_l2: 'Pay to Win',
  lp_p2w_body: 'Every Full PVP server out there forces you to donate just to have fun. KingdomTale is the opposite. Nobody buys their way to victory here: you start at max level 225, full +20, same as everyone — and jump straight into battle.',

  lp_focus_kicker: 'THE PHILOSOPHY',
  lp_focus_title_l1: 'Focus on PVP and Hunt,', lp_focus_title_l2: 'not on grinding XP',
  lp_focus_body: 'Forget the grind. No levels to climb, no hours killing mobs. You log in and you\'re ready. Everything revolves around PVP and hunting (drops): daily, weekly and monthly quests that reward you with skins. Every day, a new shot at something rare.',
  lp_cta_notify: 'NOTIFY ME',

  lp_arsenal_kicker: 'THE ARSENAL',
  lp_arsenal_title_l1: 'Your', lp_arsenal_title_l2: 'arsenal',
  lp_arsenal_body: 'Balanced classes, thousands of skins and a proprietary combat system. Here\'s a preview of what awaits.',
  lp_arsenal_b1: '10 finely balanced classes, each with its own combat style',
  lp_arsenal_b2: '4,000+ diverse skins, all earned by playing',
  lp_arsenal_b3: 'Level 225 full +20 from the start — everyone equal',
  lp_arsenal_b4: 'Tier 5, new maps, Aging up to +30, PVP Arena and Hellsgate with Boss items',
  lp_arsenal_ph_skins: 'SKIN SCREENSHOTS COMING SOON',
  lp_arsenal_ph_classes: 'CLASS SCREENSHOTS COMING SOON',
  lp_arsenal_classes_title: 'THE 10 CLASSES',

  lp_mech_kicker: 'THE MECHANICS',
  lp_mech_title_l1: 'Mechanics that', lp_mech_title_l2: 'power your gameplay',
  lp_mech_body: 'Systems designed to reward skill, not wallet.',
  lp_mech_m1: 'Daily, weekly and monthly PVP quests that reward skins',
  lp_mech_m2: 'Mounts, Relics and Item Awakening (with failure chance)',
  lp_mech_m3: 'Timeshop and PVP King system, rewarded in coins',
  lp_mech_m4: 'Safe in-game coin market — the economy moves through you',
  lp_mech_coins_note: 'Coins are earned by playing — and nothing in the Coinshop gives a combat advantage. Sheltons and aging restores drop in-game and are also in the Coinshop, but never break PVP balance.',
  lp_cta_secure: 'SECURE MY SPOT',

  lp_vip_kicker: 'FAIR VIP',
  lp_vip_title_l1: 'VIP that does NOT', lp_vip_title_l2: 'interfere with PVP',
  lp_vip_body: 'Our VIP only rewards extra drop rate and convenience — never combat power. Non-payers compete on equal footing.',
  lp_vip_b1: 'Extra drop rate and convenience only',
  lp_vip_b2: 'Zero impact on PVP balance',
  lp_vip_b3: 'Weekly PVP tournament — solo or team — rewarded in coins and skin boxes',

  lp_time_kicker: 'FOR YOUR ROUTINE',
  lp_time_title_l1: 'Built for those', lp_time_title_l2: 'short on time',
  lp_time_body: 'Work all week and barely have time to play? This server is for you. No endless leveling. You log in and drop into the fight. Best of all: your PVP gameplay will never be run over by someone with a bigger wallet — everything is earned by playing. Gather your friends and guild and return to the Priston you love.',

  lp_reward_kicker: 'LAUNCH REWARD',
  lp_reward_title_l1: 'Join the list', lp_reward_title_l2: 'and win at launch',
  lp_reward_body: 'Everyone who leaves their contact now gets, on opening day:',
  lp_reward_item1: '7 DAYS OF VIP',
  lp_reward_item1_desc: 'Start with all VIP perks for a week.',
  lp_reward_item2: 'LEGENDARY SKIN BOX',
  lp_reward_item2_desc: 'A box with an exclusive legendary skin for those on the list.',
  lp_reward_note: 'Our founder\'s gift for those who believed from the start. You\'ll get a code to redeem the moment the server opens.',

  lp_form_kicker: 'WAITLIST',
  lp_form_title_l1: 'Be the first', lp_form_title_l2: 'to know',
  lp_form_sub: 'Leave your contact and be the first to know when KingdomTale opens. No spam.',
  lp_form_email: 'EMAIL', lp_form_email_ph: 'you@email.com',
  lp_form_phone: 'WHATSAPP', lp_form_phone_opt: '(optional)',
  lp_form_country: 'COUNTRY', lp_form_country_ph: 'Select your country',
  lp_form_consent: 'I agree to receive news and accept the',
  lp_form_policy_link: 'Privacy Policy',
  lp_form_suggestion: 'Your suggestion (optional)',
  lp_form_suggestion_ph: 'What would you like to see in the server?',
  lp_form_submit: 'CLAIM MY THRONE', lp_form_sending: 'SENDING...',
  lp_err_email_required: 'Enter your email.', lp_err_email_invalid: 'Invalid email.',
  lp_err_country_required: 'Select your country.', lp_err_consent_required: 'You must accept to continue.',
  lp_err_phone_invalid: 'Invalid phone number.', lp_err_generic: 'Something went wrong. Please try again.',
  lp_err_duplicate: 'This email is already on the list.',

  lp_success_title_l1: 'You\'re', lp_success_title_l2: 'on the list!',
  lp_success_body: 'Now join the community and follow everything first-hand:',
  lp_cta_discord: 'DISCORD', lp_cta_whatsapp_group: 'WHATSAPP',
  lp_success_share: 'Who will take the Throne? KingdomTale awaits.',

  lp_sobre_soon_kicker: 'REGISTRATION',
  lp_sobre_soon_title_l1: 'Coming', lp_sobre_soon_title_l2: 'soon',
  lp_sobre_soon_body: 'Account registration opens at launch. For now, join the waitlist and secure your rewards: 7 days of VIP + a legendary skin box.',
  lp_sobre_soon_cta: 'JOIN THE LIST',
});

Object.assign(STRINGS.es, {
  lp_badge_soon: 'PRÓXIMAMENTE',
  lp_hero_title_l1: 'TODOS EMPIEZAN IGUAL.', lp_hero_title_l2: 'LISTOS PARA LA BATALLA.',
  lp_hero_sub: 'KingdomTale — servidor de Priston Tale Full PVP, sin Pay to Win. Gratis para jugar.',
  lp_cta_join: 'ENTRAR EN LA LISTA', lp_hero_scroll: 'DESPLÁZATE PARA SABER MÁS',

  lp_p2w_kicker: 'LO QUE NOS MUEVE',
  lp_p2w_title_l1: 'Basta de', lp_p2w_title_l2: 'Pay to Win',
  lp_p2w_body: 'Todos los servidores Full PVP del mercado te obligan a donar solo para poder divertirte. KingdomTale es lo contrario. Aquí nadie compra la victoria: empiezas en el nivel máximo 225, full +20, igual que todos — y caes directo a la batalla.',

  lp_focus_kicker: 'LA FILOSOFÍA',
  lp_focus_title_l1: 'Foco en PVP y Hunt,', lp_focus_title_l2: 'no en farmear XP',
  lp_focus_body: 'Olvídate del grindeo. Sin niveles que subir, sin horas matando bichos. Inicias sesión y ya estás listo. Todo gira en torno al PVP y la caza (drop): misiones diarias, semanales y mensuales que te premian con skins. Cada día, una nueva oportunidad de sacar algo raro.',
  lp_cta_notify: 'QUIERO QUE ME AVISEN',

  lp_arsenal_kicker: 'EL ARSENAL',
  lp_arsenal_title_l1: 'Tu', lp_arsenal_title_l2: 'arsenal',
  lp_arsenal_body: 'Clases balanceadas, miles de skins y un sistema de combate propio. Mira un adelanto de lo que te espera.',
  lp_arsenal_b1: '10 clases muy balanceadas, cada una con su estilo de combate',
  lp_arsenal_b2: '+4.000 skins variadas, todas conseguidas jugando',
  lp_arsenal_b3: 'Nivel 225 full +20 desde el inicio — todos iguales',
  lp_arsenal_b4: 'Tier 5, mapas nuevos, Aging hasta +30, Arena PVP y Hellsgate con ítems de Boss',
  lp_arsenal_ph_skins: 'CAPTURAS DE SKINS PRÓXIMAMENTE',
  lp_arsenal_ph_classes: 'CAPTURAS DE CLASES PRÓXIMAMENTE',
  lp_arsenal_classes_title: 'LAS 10 CLASES',

  lp_mech_kicker: 'LAS MECÁNICAS',
  lp_mech_title_l1: 'Mecánicas que', lp_mech_title_l2: 'potencian tu juego',
  lp_mech_body: 'Sistemas diseñados para premiar la habilidad, no la billetera.',
  lp_mech_m1: 'Misiones de PVP diarias, semanales y mensuales que premian skins',
  lp_mech_m2: 'Monturas, Reliquias y Despertar de ítems (con posibilidad de fallo)',
  lp_mech_m3: 'Timeshop y sistema Rey del PVP, premiados en coins',
  lp_mech_m4: 'Mercado interno seguro en coins — la economía se mueve gracias a ti',
  lp_mech_coins_note: 'Las coins se ganan jugando — y nada en la Coinshop da ventaja de combate. Los Sheltons y los restauros de aging son dropeables y también están en la Coinshop, pero sin romper el equilibrio del PVP.',
  lp_cta_secure: 'ASEGURAR MI LUGAR',

  lp_vip_kicker: 'VIP JUSTO',
  lp_vip_title_l1: 'VIP que NO', lp_vip_title_l2: 'interfiere en el PVP',
  lp_vip_body: 'Nuestro VIP solo premia con drop adicional y comodidad — nunca poder de combate. Quien no paga compite de igual a igual.',
  lp_vip_b1: 'Solo drop adicional y comodidad',
  lp_vip_b2: 'Cero impacto en el equilibrio del PVP',
  lp_vip_b3: 'Torneo de PVP cada semana — en solitario o en grupo — premiado en coins y cajas de skins',

  lp_time_kicker: 'PARA TU RUTINA',
  lp_time_title_l1: 'Hecho para quienes', lp_time_title_l2: 'tienen poco tiempo',
  lp_time_body: '¿Trabajas toda la semana y te queda poco tiempo para jugar? Este servidor es para ti. Nada de subir niveles sin fin. Inicias sesión y caes a la batalla. Y lo mejor: tu juego de PVP nunca será atropellado por quien tiene más dinero — todo se consigue jugando. Reúne a tus amigos y a tu clan y vuelve al Priston que amas.',

  lp_reward_kicker: 'RECOMPENSA DE LANZAMIENTO',
  lp_reward_title_l1: 'Únete a la lista', lp_reward_title_l2: 'y gana en el lanzamiento',
  lp_reward_body: 'Quien deje su contacto ahora recibe, el día de la apertura:',
  lp_reward_item1: '7 DÍAS DE VIP',
  lp_reward_item1_desc: 'Empieza con todas las comodidades del VIP por una semana.',
  lp_reward_item2: 'CAJA DE SKIN LEGENDARIA',
  lp_reward_item2_desc: 'Una caja con skin legendaria exclusiva para quienes estaban en la lista.',
  lp_reward_note: 'Nuestro regalo de fundador para quienes creyeron desde el principio. Recibirás un código para canjear en cuanto abra el servidor.',

  lp_form_kicker: 'LISTA DE ESPERA',
  lp_form_title_l1: 'Sé el primero', lp_form_title_l2: 'en saber',
  lp_form_sub: 'Deja tu contacto y sé el primero en saber cuándo abre KingdomTale. Sin spam.',
  lp_form_email: 'CORREO', lp_form_email_ph: 'tu@correo.com',
  lp_form_phone: 'WHATSAPP', lp_form_phone_opt: '(opcional)',
  lp_form_country: 'PAÍS', lp_form_country_ph: 'Selecciona tu país',
  lp_form_consent: 'Acepto recibir novedades y estoy de acuerdo con la',
  lp_form_policy_link: 'Política de Privacidad',
  lp_form_suggestion: 'Tu sugerencia (opcional)',
  lp_form_suggestion_ph: '¿Qué te gustaría ver en el servidor?',
  lp_form_submit: 'QUIERO MI TRONO', lp_form_sending: 'ENVIANDO...',
  lp_err_email_required: 'Ingresa tu correo.', lp_err_email_invalid: 'Correo inválido.',
  lp_err_country_required: 'Selecciona tu país.', lp_err_consent_required: 'Debes aceptar para continuar.',
  lp_err_phone_invalid: 'Número de teléfono inválido.', lp_err_generic: 'Algo salió mal. Inténtalo de nuevo.',
  lp_err_duplicate: 'Este correo ya está en la lista.',

  lp_success_title_l1: '¡Estás', lp_success_title_l2: 'en la lista!',
  lp_success_body: 'Ahora entra en la comunidad y sigue todo de primera mano:',
  lp_cta_discord: 'DISCORD', lp_cta_whatsapp_group: 'WHATSAPP',
  lp_success_share: '¿Quién tomará el Trono? KingdomTale te espera.',

  lp_sobre_soon_kicker: 'REGISTRO',
  lp_sobre_soon_title_l1: 'Muy', lp_sobre_soon_title_l2: 'pronto',
  lp_sobre_soon_body: 'El registro de cuentas abre en el lanzamiento. Por ahora, únete a la lista de espera y asegura tus recompensas: 7 días de VIP + una caja de skin legendaria.',
  lp_sobre_soon_cta: 'UNIRME A LA LISTA',
});

// Nomes das 10 classes (cards do Arsenal) — traduzíveis nos 3 idiomas
Object.assign(STRINGS.pt, {
  classe_arqueira: 'Arqueira', classe_assassina: 'Assassina', classe_cavaleiro: 'Cavaleiro',
  classe_mago: 'Mago', classe_mecanico: 'Mecânico', classe_sacerdotisa: 'Sacerdotisa',
  classe_atalanta: 'Atalanta', classe_lutador: 'Lutador', classe_pikeman: 'Pikeman', classe_xama: 'Xamã',
});
Object.assign(STRINGS.en, {
  classe_arqueira: 'Archer', classe_assassina: 'Assassin', classe_cavaleiro: 'Knight',
  classe_mago: 'Magician', classe_mecanico: 'Mechanician', classe_sacerdotisa: 'Priestess',
  classe_atalanta: 'Atalanta', classe_lutador: 'Fighter', classe_pikeman: 'Pikeman', classe_xama: 'Shaman',
});
Object.assign(STRINGS.es, {
  classe_arqueira: 'Arquera', classe_assassina: 'Asesina', classe_cavaleiro: 'Caballero',
  classe_mago: 'Mago', classe_mecanico: 'Mecánico', classe_sacerdotisa: 'Sacerdotisa',
  classe_atalanta: 'Atalanta', classe_lutador: 'Luchador', classe_pikeman: 'Pikeman', classe_xama: 'Chamán',
});

Object.assign(window, {
  STRINGS, LangContext, LangProvider, useT,
  PageContext, PageProvider, usePage,
  LangToggle,
});
