// Variant A — Dark editorial. Black canvas, gold accent, serif headlines.

const VariantA = ({ lang, onProject }) => {
  const D = window.PORTFOLIO_DATA;
  const t = D.meta[lang];
  const skills = D.skills[lang];
  const timeline = D.timeline[lang];
  const [section, setSection] = React.useState("home");

  const navItems = [
    { id: "home", label: lang === "pl" ? "Start" : "Home" },
    { id: "about", label: t.sections.about },
    { id: "projects", label: t.sections.projects },
    { id: "skills", label: t.sections.skills },
    { id: "timeline", label: t.sections.timeline },
    { id: "contact", label: t.sections.contact },
  ];

  const css = `
    .va { font-family: 'Inter', system-ui, sans-serif; background: #0a0a0b; color: #ece8df; min-height: 100%; }
    .va * { box-sizing: border-box; }
    .va-serif { font-family: 'Cormorant Garamond', 'Times New Roman', serif; font-weight: 400; letter-spacing: -0.02em; }
    .va-mono { font-family: 'JetBrains Mono', 'Courier New', monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
    .va-gold { color: #d4b364; }
    .va-rule { border-top: 1px solid #26241f; }
    .va-nav { position: sticky; top: 0; z-index: 50; background: rgba(10,10,11,0.85); backdrop-filter: blur(20px); border-bottom: 1px solid #1a1916; }
    .va-nav-inner { max-width: 1280px; margin: 0 auto; padding: 18px 48px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
    .va-logo { display: flex; align-items: center; gap: 14px; }
    .va-logo-mark { width: 32px; height: 32px; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #d4b364, #6b5424 70%); position: relative; }
    .va-logo-mark::after { content: ''; position: absolute; inset: 4px; border-radius: 50%; background: #0a0a0b; }
    .va-logo-mark::before { content: ''; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: #d4b364; transform: translateX(-50%); z-index: 2; }
    .va-logo-text { font-family: 'Cormorant Garamond', serif; font-size: 18px; letter-spacing: 0.02em; }
    .va-logo-text small { display: block; font-family: 'JetBrains Mono', monospace; font-size: 9px; letter-spacing: 0.2em; color: #807866; text-transform: uppercase; margin-top: -2px; }
    .va-nav-links { display: flex; gap: 28px; align-items: center; font-size: 13px; }
    .va-nav-link { cursor: pointer; color: #ada89a; transition: color .2s; padding: 4px 0; border-bottom: 1px solid transparent; }
    .va-nav-link:hover, .va-nav-link.active { color: #ece8df; border-color: #d4b364; }

    .va-hero { padding: 120px 48px 80px; max-width: 1280px; margin: 0 auto; }
    .va-hero-eyebrow { display: flex; align-items: center; gap: 14px; margin-bottom: 48px; }
    .va-dot { width: 8px; height: 8px; border-radius: 50%; background: #5fb87a; box-shadow: 0 0 0 4px rgba(95,184,122,0.15); animation: vaPulse 2s infinite; }
    @keyframes vaPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
    .va-hero h1 { font-size: clamp(48px, 8vw, 112px); line-height: 0.95; margin: 0 0 32px; font-weight: 400; }
    .va-hero h1 em { font-style: italic; color: #d4b364; }
    .va-hero-sub { font-size: 22px; line-height: 1.45; max-width: 680px; color: #c4bfb0; margin-bottom: 48px; }
    .va-hero-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 64px; align-items: end; padding-top: 56px; border-top: 1px solid #1a1916; }
    .va-hero-meta dt { color: #807866; margin-bottom: 4px; }
    .va-hero-meta dd { margin: 0 0 18px; font-size: 14px; }
    .va-hero-meta dd a { color: #ece8df; text-decoration: none; border-bottom: 1px solid #4a4538; }
    .va-hero-meta dd a:hover { border-color: #d4b364; }
    .va-hero-cta { display: flex; gap: 12px; }
    .va-btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; border: 1px solid #2e2a23; background: transparent; color: #ece8df; font: inherit; font-size: 13px; cursor: pointer; transition: all .2s; }
    .va-btn:hover { background: #d4b364; color: #0a0a0b; border-color: #d4b364; }
    .va-btn.primary { background: #d4b364; color: #0a0a0b; border-color: #d4b364; }
    .va-btn.primary:hover { background: #ece8df; border-color: #ece8df; }

    .va-stats { max-width: 1280px; margin: 0 auto; padding: 0 48px 100px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid #1a1916; border-bottom: 1px solid #1a1916; }
    .va-stat { padding: 32px 24px; border-right: 1px solid #1a1916; }
    .va-stat:last-child { border-right: none; }
    .va-stat-num { font-family: 'Cormorant Garamond', serif; font-size: 56px; line-height: 1; color: #d4b364; }
    .va-stat-label { font-size: 13px; color: #807866; margin-top: 8px; }

    .va-section { max-width: 1280px; margin: 0 auto; padding: 100px 48px; }
    .va-section-head { display: grid; grid-template-columns: 200px 1fr; gap: 48px; margin-bottom: 64px; align-items: end; }
    .va-section-num { color: #807866; }
    .va-section-title { font-size: clamp(40px, 5vw, 72px); line-height: 1; margin: 0; font-weight: 400; }

    .va-about { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
    .va-about p { font-size: 19px; line-height: 1.6; color: #c4bfb0; margin: 0 0 24px; }
    .va-about-side { padding: 32px; border: 1px solid #26241f; background: #111110; }
    .va-about-side h4 { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; color: #807866; margin: 0 0 16px; }
    .va-about-tag { display: inline-block; padding: 4px 10px; border: 1px solid #2e2a23; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: #d4b364; margin: 0 6px 6px 0; }

    .va-projects-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; }
    .va-project { cursor: pointer; }
    .va-project-img { aspect-ratio: 16/10; background: #1a1916 center/cover; position: relative; overflow: hidden; }
    .va-project-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
    .va-project:hover .va-project-img img { transform: scale(1.04); }
    .va-project-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(10,10,11,0.6), transparent 50%); }
    .va-project-meta { display: flex; justify-content: space-between; align-items: baseline; margin-top: 18px; gap: 16px; }
    .va-project-title { font-family: 'Cormorant Garamond', serif; font-size: 32px; line-height: 1.1; margin: 0; }
    .va-project-year { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #807866; letter-spacing: 0.08em; white-space: nowrap; }
    .va-project-tag { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #d4b364; letter-spacing: 0.1em; text-transform: uppercase; margin-top: 8px; }
    .va-project.featured { grid-column: span 2; }
    .va-project.featured .va-project-img { aspect-ratio: 21/9; }
    .va-project.featured .va-project-title { font-size: 56px; }

    .va-skills { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
    .va-skill { padding: 40px 32px; border: 1px solid #26241f; background: #111110; transition: border-color .3s; }
    .va-skill:hover { border-color: #d4b364; }
    .va-skill-num { color: #d4b364; margin-bottom: 24px; }
    .va-skill-title { font-family: 'Cormorant Garamond', serif; font-size: 36px; line-height: 1; margin: 0 0 6px; }
    .va-skill-years { color: #807866; margin-bottom: 24px; display: block; }
    .va-skill-desc { color: #c4bfb0; line-height: 1.55; font-size: 14px; margin-bottom: 24px; }
    .va-skill-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid #26241f; }
    .va-skill-list li { padding: 10px 0; border-bottom: 1px solid #1a1916; font-size: 13px; color: #ada89a; display: flex; align-items: center; gap: 10px; }
    .va-skill-list li::before { content: '+'; color: #d4b364; }

    .va-timeline { display: grid; grid-template-columns: 200px 1fr; gap: 0; }
    .va-tl-row { display: contents; }
    .va-tl-year { padding: 32px 0; border-top: 1px solid #26241f; color: #d4b364; }
    .va-tl-content { padding: 32px 0; border-top: 1px solid #26241f; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: start; }
    .va-tl-role { font-family: 'Cormorant Garamond', serif; font-size: 28px; line-height: 1.1; margin: 0 0 4px; }
    .va-tl-company { color: #ada89a; font-size: 15px; }
    .va-tl-note { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #807866; letter-spacing: 0.08em; text-transform: uppercase; }

    .va-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; padding: 120px 48px; max-width: 1280px; margin: 0 auto; border-top: 1px solid #1a1916; }
    .va-contact h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(48px, 6vw, 88px); line-height: 1; margin: 0 0 24px; font-weight: 400; }
    .va-contact h2 em { color: #d4b364; font-style: italic; }
    .va-contact-lead { font-size: 18px; line-height: 1.5; color: #c4bfb0; margin: 0; }
    .va-contact-cards { display: grid; gap: 12px; }
    .va-contact-card { padding: 24px 28px; border: 1px solid #26241f; background: #111110; display: flex; justify-content: space-between; align-items: center; gap: 16px; transition: all .2s; text-decoration: none; color: inherit; }
    .va-contact-card:hover { border-color: #d4b364; background: #161410; }
    .va-contact-card-label { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: #807866; }
    .va-contact-card-value { font-family: 'Cormorant Garamond', serif; font-size: 22px; }
    .va-contact-card-arrow { color: #d4b364; }

    .va-footer { padding: 32px 48px; max-width: 1280px; margin: 0 auto; border-top: 1px solid #1a1916; display: flex; justify-content: space-between; color: #807866; font-size: 12px; }
    @media (max-width: 900px) {
      .va-nav-links { display: none; }
      .va-nav-inner { padding: 16px 24px; }
      .va-hero { padding: 64px 24px 48px; }
      .va-hero-grid, .va-about, .va-projects-grid, .va-skills, .va-timeline, .va-contact, .va-section-head { grid-template-columns: 1fr; gap: 32px; }
      .va-stats { grid-template-columns: repeat(2,1fr); padding: 0 24px 64px; }
      .va-stat:nth-child(2) { border-right: none; }
      .va-section { padding: 64px 24px; }
      .va-project.featured { grid-column: span 1; }
      .va-project.featured .va-project-title { font-size: 32px; }
      .va-timeline { display: block; }
      .va-tl-row > * { display: block; }
    }
  `;

  const featured = D.projects[0];
  const others = D.projects.slice(1);

  return (
    <div className="va">
      <style>{css}</style>
      <nav className="va-nav">
        <div className="va-nav-inner">
          <div className="va-logo">
            <div className="va-logo-mark"></div>
            <div className="va-logo-text">JOP Creativity<small>Jakub Pawlicki</small></div>
          </div>
          <div className="va-nav-links">
            {navItems.map(n => (
              <span key={n.id} className={"va-nav-link " + (section === n.id ? "active" : "")} onClick={() => setSection(n.id)}>{n.label}</span>
            ))}
          </div>
        </div>
      </nav>

      <header className="va-hero" id="home">
        <div className="va-hero-eyebrow">
          <span className="va-dot"></span>
          <span className="va-mono va-gold">{t.available}</span>
        </div>
        <h1 className="va-serif">
          {lang === "pl" ? <>Projektuję i programuję <em>gry</em>, w których gracz <em>czuje</em> wybór.</> : <>I design and build <em>games</em> where players <em>feel</em> their choices.</>}
        </h1>
        <p className="va-hero-sub">{t.pitch}</p>
        <div className="va-hero-grid">
          <div className="va-hero-cta">
            <button className="va-btn primary" onClick={() => setSection("projects")}>{t.cta_primary} →</button>
            <a className="va-btn" href={"mailto:" + D.identity.email}>{t.cta_secondary}</a>
          </div>
          <dl className="va-hero-meta va-mono">
            <dt>{lang === "pl" ? "Lokalizacja" : "Location"}</dt>
            <dd>{D.identity.location}</dd>
            <dt>{lang === "pl" ? "Forma" : "Engagement"}</dt>
            <dd>B2B · {lang === "pl" ? "kontrakt / godziny" : "contract / hourly"}</dd>
          </dl>
        </div>
      </header>

      <div className="va-stats">
        {D.stats.map((s, i) => (
          <div key={i} className="va-stat">
            <div className="va-stat-num va-serif">{s.num}</div>
            <div className="va-stat-label">{s[lang]}</div>
          </div>
        ))}
      </div>

      <section className="va-section" id="about">
        <div className="va-section-head">
          <div className="va-mono va-section-num">— 01 / {lang === "pl" ? "O mnie" : "About"}</div>
          <h2 className="va-serif va-section-title">{lang === "pl" ? "Programista, który myśli jak projektant." : "An engineer who thinks like a designer."}</h2>
        </div>
        <div className="va-about">
          <div>
            <p>{t.about_long}</p>
            <p>{t.about_b2b}</p>
          </div>
          <aside className="va-about-side">
            <h4>{lang === "pl" ? "Najczęściej pracuję z" : "Most often I work with"}</h4>
            <div>
              {["Unity", "Unreal 5", "C#", "Blueprints", "VR (XR)", "Mobile", "Steamworks", "Git/Perforce"].map(s => (
                <span key={s} className="va-about-tag">{s}</span>
              ))}
            </div>
            <h4 style={{ marginTop: 32 }}>{lang === "pl" ? "Idealne zlecenie" : "Ideal engagement"}</h4>
            <p style={{ color: "#c4bfb0", fontSize: 14, lineHeight: 1.55, margin: 0 }}>
              {lang === "pl" ? "Narrative-driven gra w produkcji, zespół potrzebujący questów, mechanik dialogowych albo seniora-progamisty Unity na 3–12 miesięcy." : "A narrative-driven game in production, a team that needs quests, dialogue mechanics or a senior Unity engineer for 3–12 months."}
            </p>
          </aside>
        </div>
      </section>

      <section className="va-section" id="projects">
        <div className="va-section-head">
          <div className="va-mono va-section-num">— 02 / {t.sections.projects}</div>
          <h2 className="va-serif va-section-title">{lang === "pl" ? "Wybrane prace" : "Selected work"}</h2>
        </div>
        <div className="va-projects-grid">
          <div className="va-project featured" onClick={() => onProject(featured.id)}>
            <div className="va-project-img"><img src={featured.hero} alt={featured.title} /></div>
            <div className="va-project-meta">
              <h3 className="va-project-title va-serif">{featured.title}</h3>
              <span className="va-project-year">{featured.year}</span>
            </div>
            <div className="va-project-tag">{featured.tag[lang]} · {featured.studio}</div>
          </div>
          {others.map(p => (
            <div key={p.id} className="va-project" onClick={() => onProject(p.id)}>
              <div className="va-project-img"><img src={p.hero} alt={p.title} /></div>
              <div className="va-project-meta">
                <h3 className="va-project-title va-serif">{p.title}</h3>
                <span className="va-project-year">{p.year}</span>
              </div>
              <div className="va-project-tag">{p.tag[lang]}</div>
            </div>
          ))}
        </div>
      </section>

      <section className="va-section" id="skills">
        <div className="va-section-head">
          <div className="va-mono va-section-num">— 03 / {lang === "pl" ? "Specjalizacje" : "Disciplines"}</div>
          <h2 className="va-serif va-section-title">{lang === "pl" ? "Co właściwie robię" : "What I actually do"}</h2>
        </div>
        <p style={{ maxWidth: 600, color: "#c4bfb0", fontSize: 17, lineHeight: 1.5, marginTop: -32, marginBottom: 48 }}>{t.skills_lead}</p>
        <div className="va-skills">
          {skills.map((s, i) => (
            <div key={s.key} className="va-skill">
              <div className="va-skill-num va-mono">0{i+1}</div>
              <h3 className="va-skill-title va-serif">{s.title}</h3>
              <span className="va-skill-years va-mono">{s.years}</span>
              <p className="va-skill-desc">{s.desc}</p>
              <ul className="va-skill-list">{s.list.map(x => <li key={x}>{x}</li>)}</ul>
            </div>
          ))}
        </div>
      </section>

      <section className="va-section" id="timeline">
        <div className="va-section-head">
          <div className="va-mono va-section-num">— 04 / {t.sections.timeline}</div>
          <h2 className="va-serif va-section-title">{lang === "pl" ? "Ścieżka" : "Track record"}</h2>
        </div>
        <div className="va-timeline">
          {timeline.map((r, i) => (
            <div key={i} className="va-tl-row">
              <div className="va-tl-year va-mono">{r.year}</div>
              <div className="va-tl-content">
                <div>
                  <h4 className="va-tl-role va-serif">{r.role}</h4>
                  <div className="va-tl-company">{r.company}</div>
                </div>
                <div className="va-tl-note">{r.note}</div>
              </div>
            </div>
          ))}
        </div>
      </section>

      <section className="va-contact" id="contact">
        <div>
          <div className="va-mono va-section-num" style={{ marginBottom: 24 }}>— 05 / {t.sections.contact}</div>
          <h2>{lang === "pl" ? <>Pracujesz nad <em>czymś dobrym?</em></> : <>Working on <em>something good?</em></>}</h2>
          <p className="va-contact-lead">{t.contact_lead}</p>
        </div>
        <div className="va-contact-cards">
          <a className="va-contact-card" href={"mailto:" + D.identity.email}>
            <div>
              <div className="va-contact-card-label">Email</div>
              <div className="va-contact-card-value va-serif">{D.identity.email}</div>
            </div>
            <span className="va-contact-card-arrow">→</span>
          </a>
          <a className="va-contact-card" href={"tel:" + D.identity.phone}>
            <div>
              <div className="va-contact-card-label">{lang === "pl" ? "Telefon" : "Phone"}</div>
              <div className="va-contact-card-value va-serif">{D.identity.phone}</div>
            </div>
            <span className="va-contact-card-arrow">→</span>
          </a>
          <a className="va-contact-card" href={"https://" + D.identity.linkedin} target="_blank" rel="noreferrer">
            <div>
              <div className="va-contact-card-label">LinkedIn</div>
              <div className="va-contact-card-value va-serif">{D.identity.linkedin}</div>
            </div>
            <span className="va-contact-card-arrow">→</span>
          </a>
        </div>
      </section>

      <footer className="va-footer">
        <span>© 2026 JOP Creativity · NIP {D.identity.nip}</span>
        <span>{lang === "pl" ? "Zaprojektowane i napisane przez Jakuba" : "Designed & coded by Jakub"}</span>
      </footer>
    </div>
  );
};

window.VariantA = VariantA;
