const { services, projects, principles, processSteps, fit, faqs, journal: journalEntries } = window.ANSEL_DATA;

// ─── Proof: Featured reel — cinematic matted frame ─────────────────────
function FeaturedReel() {
  return (
    <section id="reel" style={{ padding: '140px 0 120px', position: 'relative' }}>
      <div className="container">
        <Reveal>
          <div className="mono" style={{ display: 'flex', gap: 16, color: 'var(--parchment)', marginBottom: 40 }}>
            <span style={{ color: 'var(--ember)' }}>●</span>
            <span>SELECTED REEL</span>
            <span style={{ color: 'var(--tungsten)' }}>//</span>
            <span>N° 044</span>
            <span style={{ color: 'var(--tungsten)' }}>//</span>
            <span>RENDERED 2026.03</span>
          </div>
        </Reveal>

        <div style={{ display: 'grid', gridTemplateColumns: 'minmax(0, 1fr) 340px', gap: 60, alignItems: 'end' }} className="reel-grid">
          <Reveal>
            <Plate aspect="16/9" project="FIRST DAY" label="01 · PLAY · 02:14">
              {/* Subtle moving scan line */}
              <div style={{
                position: 'absolute', inset: 0, zIndex: 2,
                background: 'linear-gradient(180deg, transparent 48%, rgba(245,240,232,0.06) 50%, transparent 52%)',
                backgroundSize: '100% 200px',
                animation: 'scan 6s linear infinite',
                pointerEvents: 'none',
              }} />
              {/* Play indicator */}
              <div style={{
                position: 'absolute', top: '50%', left: '50%', transform: 'translate(-50%,-50%)',
                zIndex: 3, display: 'flex', flexDirection: 'column', alignItems: 'center', gap: 16,
              }}>
                <div style={{
                  width: 64, height: 64, border: '1px solid var(--bone)',
                  display: 'flex', alignItems: 'center', justifyContent: 'center',
                  background: 'rgba(13,13,11,0.6)', backdropFilter: 'blur(4px)',
                }}>
                  <div style={{ width: 0, height: 0, borderLeft: '14px solid var(--bone)', borderTop: '9px solid transparent', borderBottom: '9px solid transparent', marginLeft: 3 }} />
                </div>
                <span className="mono" style={{ fontSize: 10, color: 'var(--parchment)' }}>FIRST DAY · 1980</span>
              </div>
              <style>{`@keyframes scan { from{ background-position: 0 -200px } to { background-position: 0 100vh } }`}</style>
            </Plate>
          </Reveal>

          <Reveal delay={120}>
            <div style={{ borderTop: '1px solid var(--border)', paddingTop: 24 }}>
              <h3 className="display italic" style={{ fontSize: 32, color: 'var(--bone)', fontWeight: 500, lineHeight: 1.15, marginBottom: 20 }}>
                The quietest shot was the hardest to render.
              </h3>
              <p style={{ color: 'var(--parchment)', fontSize: 15, lineHeight: 1.65, marginBottom: 28 }}>
                A short narrative built to demonstrate emotional texture, pacing, and restraint — a 1980s opening sequence in grainy 16mm. No performative flourish. Just a lunchbox, a piano note, and a silence we earned.
              </p>
              <div style={{ display: 'grid', gap: 8 }}>
                {[
                  ['Project', 'N° 044 · First Day'],
                  ['Category', 'Narrative · Brand film'],
                  ['Aspect', '1:1 · 16:9 · 9:16'],
                  ['Direction', 'Ansel Studio'],
                  ['Runtime', '02:14'],
                  ['Status', 'Rendered'],
                ].map(([k, v]) => (
                  <div key={k} style={{ display: 'flex', justifyContent: 'space-between', fontSize: 12, color: 'var(--parchment)', paddingBottom: 8, borderBottom: '1px dashed var(--tungsten)' }}>
                    <span className="mono" style={{ fontSize: 10, color: 'var(--tungsten)' }}>{k}</span>
                    <span>{v}</span>
                  </div>
                ))}
              </div>
            </div>
          </Reveal>
        </div>
      </div>
      <style>{`@media (max-width: 900px) { .reel-grid { grid-template-columns: 1fr !important; gap: 40px !important; } }`}</style>
    </section>
  );
}

// ─── Mission — pull quote ─────────────────────────────────────────────
function Mission() {
  return (
    <section id="mission" style={{ padding: '160px 0', borderTop: '1px solid var(--border)', borderBottom: '1px solid var(--border)' }}>
      <div className="container">
        <div style={{ display: 'grid', gridTemplateColumns: '180px 1fr', gap: 60 }} className="mission-grid">
          <Reveal>
            <div className="mono" style={{ color: 'var(--ember)', display: 'flex', flexDirection: 'column', gap: 6 }}>
              <span>— CREDO</span>
              <span style={{ color: 'var(--tungsten)' }}>§ 01</span>
            </div>
          </Reveal>
          <Reveal delay={100}>
            <p className="display italic" style={{
              fontSize: 'clamp(32px, 4.5vw, 56px)',
              lineHeight: 1.18,
              color: 'var(--bone)',
              maxWidth: 980,
              letterSpacing: '-0.01em',
              fontWeight: 500,
              textWrap: 'balance',
            }}>
              “We use AI to compress time — not to remove taste. <span style={{ color: 'var(--parchment)' }}>Infinite reach, with a human touch.</span>”
            </p>
            <div style={{ marginTop: 40, display: 'flex', gap: 24, alignItems: 'center', flexWrap: 'wrap' }}>
              <div style={{ width: 48, height: 1, background: 'var(--signal)' }} />
              <span className="mono" style={{ fontSize: 10, color: 'var(--parchment)' }}>ADAM COHEN · DIRECTOR</span>
              <span className="mono" style={{ fontSize: 10, color: 'var(--tungsten)' }}>// STUDIO NOTE 02</span>
            </div>
          </Reveal>
        </div>
      </div>
      <style>{`@media (max-width: 820px) { .mission-grid { grid-template-columns: 1fr !important; gap: 24px !important; } }`}</style>
    </section>
  );
}

// ─── Services — editorial grid ─────────────────────────────────────────
function Services() {
  const [hovered, setHovered] = useState(null);
  return (
    <section id="services" style={{ padding: '160px 0' }}>
      <div className="container">
        <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 60, marginBottom: 80 }} className="svc-head">
          <Reveal>
            <SectionHead caption="CAPABILITIES · § 02" title={<><span>Six ways</span><br/><span className="italic" style={{ color: 'var(--parchment)' }}>we show up.</span></>} />
          </Reveal>
          <Reveal delay={80}>
            <div style={{ paddingTop: 48 }}>
              <p style={{ color: 'var(--parchment)', fontSize: 16, lineHeight: 1.7, maxWidth: 440 }}>
                Every engagement is bespoke, but almost all of them sit inside one of these shapes. Scope and price flex; the standard doesn't.
              </p>
            </div>
          </Reveal>
        </div>

        <div style={{ borderTop: '1px solid var(--border)' }}>
          {services.map((s, i) => (
            <Reveal key={s.code} delay={i * 60}>
              <div
                onMouseEnter={() => setHovered(i)}
                onMouseLeave={() => setHovered(null)}
                style={{
                  display: 'grid', gridTemplateColumns: '80px 1.2fr 2fr 180px', gap: 40,
                  padding: '36px 0', borderBottom: '1px solid var(--border)',
                  alignItems: 'baseline',
                  background: hovered === i ? 'linear-gradient(90deg, rgba(42,42,40,0.5) 0%, transparent 60%)' : 'transparent',
                  transition: 'background .4s ease',
                  cursor: 'pointer',
                }} className="svc-row"
              >
                <div className="mono" style={{ color: hovered === i ? 'var(--ember)' : 'var(--tungsten)', transition: 'color .3s' }}>{s.code}</div>
                <h3 className="display" style={{ fontSize: 28, color: 'var(--bone)', fontWeight: 500 }}>
                  {s.title}
                  <span style={{ display: 'block', marginTop: 8, fontFamily: 'var(--font-body)', fontSize: 13, fontWeight: 300, fontStyle: 'normal', color: 'var(--parchment)' }}>{s.sub}</span>
                </h3>
                <p style={{ color: 'var(--parchment)', fontSize: 14, lineHeight: 1.7 }}>{s.body}</p>
                <div className="mono" style={{ fontSize: 10, color: 'var(--parchment)', textAlign: 'right' }}>
                  → {s.output}
                </div>
              </div>
            </Reveal>
          ))}
        </div>
      </div>
      <style>{`
        @media (max-width: 960px) {
          .svc-head { grid-template-columns: 1fr !important; }
          .svc-row { grid-template-columns: 40px 1fr !important; row-gap: 8px !important; }
          .svc-row > :nth-child(3), .svc-row > :nth-child(4) { grid-column: 2 !important; }
        }
      `}</style>
    </section>
  );
}

// ─── Work — selected projects grid ─────────────────────────────────────
function Work({ onNav }) {
  return (
    <section id="work" style={{ padding: '160px 0', borderTop: '1px solid var(--border)' }}>
      <div className="container">
        <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'flex-end', flexWrap: 'wrap', gap: 32, marginBottom: 72 }}>
          <Reveal>
            <SectionHead caption="SELECTED WORK · § 03" title={<>Recent frames<br /><span className="italic" style={{ color: 'var(--parchment)' }}>we're proud of.</span></>} />
          </Reveal>
          <Reveal delay={80}>

          </Reveal>
        </div>

        <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 28 }} className="work-grid">
          {projects.map((p, i) => (
            <Reveal key={p.slug} delay={i * 80} className="work-card">
              <article style={{ cursor: 'pointer', display: 'block' }} className="work-card-inner">
                <Plate aspect={i === 0 || i === 3 ? '4/3' : '16/9'} project={`N° ${p.num}`}>
                  <div style={{
                    position: 'absolute', bottom: 14, right: 14, zIndex: 2,
                    fontFamily: 'var(--font-mono)', fontSize: 10, letterSpacing: '0.14em', color: 'var(--parchment)',
                    border: '1px solid var(--parchment)', padding: '4px 10px',
                    textTransform: 'uppercase',
                  }}>{p.aspect}</div>
                </Plate>
                <div style={{ display: 'grid', gridTemplateColumns: '1fr auto', gap: 12, alignItems: 'baseline', paddingTop: 22 }}>
                  <div>
                    <div className="mono" style={{ fontSize: 10, color: 'var(--ember)', marginBottom: 10 }}>{p.category.toUpperCase()}</div>
                    <h3 className="display" style={{ fontSize: 26, color: 'var(--bone)', fontWeight: 500, marginBottom: 8 }}>{p.title}</h3>
                    <p style={{ color: 'var(--parchment)', fontSize: 13, lineHeight: 1.6, maxWidth: 520 }}>{p.summary}</p>
                  </div>
                  <div style={{ textAlign: 'right' }}>
                    <div className="mono" style={{ fontSize: 10, color: 'var(--parchment)' }}>{p.year}</div>
                    <div className="mono" style={{ fontSize: 10, color: 'var(--tungsten)', marginTop: 4 }}>{p.runtime}</div>
                  </div>
                </div>
                <div style={{ marginTop: 18, paddingTop: 14, borderTop: '1px solid var(--tungsten)', display: 'flex', justifyContent: 'space-between' }}>
                  <span className="mono" style={{ fontSize: 10, color: 'var(--parchment)' }}>{p.client}</span>
                  <span className="mono" style={{ fontSize: 10, color: 'var(--bone)' }}>Read case →</span>
                </div>
              </article>
            </Reveal>
          ))}
        </div>
      </div>
      <style>{`
        @media (max-width: 820px) { .work-grid { grid-template-columns: 1fr !important; } }
        .work-card-inner .plate { transition: transform .6s cubic-bezier(.2,.6,.2,1); }
        .work-card-inner:hover .plate { transform: translateY(-4px); }
      `}</style>
    </section>
  );
}

// ─── Process ───────────────────────────────────────────────────────────
function Process() {
  return (
    <section id="process" style={{ padding: '160px 0', borderTop: '1px solid var(--border)', background: 'rgba(42,42,40,0.2)' }}>
      <div className="container">
        <div style={{ maxWidth: 760, marginBottom: 100 }}>
          <Reveal>
            <SectionHead caption="ENGAGEMENT · § 04" title={<>How a project<br /><span className="italic" style={{ color: 'var(--parchment)' }}>actually moves.</span></>} sub="Five phases across three to six weeks. No magic. No theater. Just an edit bay that happens to run on a different pipeline." />
          </Reveal>
        </div>

        <div style={{ display: 'grid', gridTemplateColumns: 'repeat(5, 1fr)', gap: 0, borderTop: '1px solid var(--border)' }} className="proc-grid">
          {processSteps.map((p, i) => (
            <Reveal key={p.n} delay={i * 80}>
              <div style={{
                padding: '40px 28px 48px 0',
                borderRight: i < processSteps.length - 1 ? '1px solid var(--border)' : 'none',
                height: '100%',
              }} className="proc-col">
                <div className="mono" style={{ fontSize: 10, color: 'var(--ember)', marginBottom: 12 }}>{p.dur}</div>
                <div style={{ display: 'flex', alignItems: 'baseline', gap: 12, marginBottom: 18 }}>
                  <span className="mono" style={{ fontSize: 11, color: 'var(--parchment)' }}>{p.n}</span>
                  <span style={{ width: 24, height: 1, background: 'var(--signal)' }} />
                </div>
                <h3 className="display" style={{ fontSize: 28, fontWeight: 500, color: 'var(--bone)', marginBottom: 14 }}>{p.t}</h3>
                <p style={{ color: 'var(--parchment)', fontSize: 13, lineHeight: 1.7 }}>{p.d}</p>
              </div>
            </Reveal>
          ))}
        </div>
      </div>
      <style>{`
        @media (max-width: 960px) {
          .proc-grid { grid-template-columns: 1fr !important; }
          .proc-col { border-right: none !important; border-bottom: 1px solid var(--border); padding: 32px 0 !important; }
        }
      `}</style>
    </section>
  );
}

// ─── Principles ────────────────────────────────────────────────────────
function Principles() {
  return (
    <section id="studio" style={{ padding: '160px 0', borderTop: '1px solid var(--border)' }}>
      <div className="container">
        <div style={{ display: 'grid', gridTemplateColumns: '1fr 1.2fr', gap: 100 }} className="prn-grid">
          <Reveal>
            <div style={{ position: 'sticky', top: 140 }}>
              <SectionHead caption="PRINCIPLES · § 05" title={<>Four rules<br /><span className="italic" style={{ color: 'var(--parchment)' }}>we work by.</span></>} />
              <p style={{ color: 'var(--parchment)', fontSize: 15, lineHeight: 1.7, marginTop: 32, maxWidth: 420 }}>
                A small studio can hold one clear idea. This is ours. These rules decide what we take on, what we refuse, and what we finish.
              </p>
            </div>
          </Reveal>
          <div>
            {principles.map((p, i) => (
              <Reveal key={p.num} delay={i * 100}>
                <div style={{ padding: '32px 0', borderBottom: '1px solid var(--border)', borderTop: i === 0 ? '1px solid var(--border)' : 'none', display: 'grid', gridTemplateColumns: '60px 1fr', gap: 24 }}>
                  <div className="mono" style={{ color: 'var(--signal)', fontSize: 14 }}>{p.num}</div>
                  <div>
                    <h3 className="display italic" style={{ fontSize: 32, fontWeight: 500, color: 'var(--bone)', marginBottom: 14, lineHeight: 1.2 }}>{p.t}</h3>
                    <p style={{ color: 'var(--parchment)', fontSize: 15, lineHeight: 1.7 }}>{p.d}</p>
                  </div>
                </div>
              </Reveal>
            ))}
          </div>
        </div>
      </div>
      <style>{`@media (max-width: 960px) { .prn-grid { grid-template-columns: 1fr !important; gap: 60px !important; } }`}</style>
    </section>
  );
}

// ─── Fit / Not for everyone ─────────────────────────────────────────────
function Fit() {
  return (
    <section id="fit" style={{ padding: '160px 0', borderTop: '1px solid var(--border)' }}>
      <div className="container">
        <Reveal>
          <div style={{ maxWidth: 880, marginBottom: 80 }}>
            <SectionHead caption="FIT · § 06" title={<>Not for everyone,<br /><span className="italic" style={{ color: 'var(--parchment)' }}>and that's the point.</span></>} sub="Ansel works best with a small number of serious clients each quarter. Here is how we decide — and how you should." />
          </div>
        </Reveal>
        <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 40 }} className="fit-grid">
          <Reveal>
            <div style={{ borderTop: '1px solid var(--ember)', paddingTop: 28 }}>
              <div className="mono" style={{ color: 'var(--ember)', marginBottom: 20, display: 'flex', alignItems: 'center', gap: 10 }}>
                <span style={{ width: 6, height: 6, background: 'var(--ember)' }} /> WE'RE A FIT IF —
              </div>
              <ul style={{ listStyle: 'none', padding: 0, display: 'grid', gap: 20 }}>
                {fit.yes.map((l, i) => (
                  <li key={i} style={{ display: 'grid', gridTemplateColumns: '28px 1fr', gap: 16, fontSize: 16, color: 'var(--bone)', lineHeight: 1.55, paddingBottom: 20, borderBottom: '1px solid var(--tungsten)' }}>
                    <span className="mono" style={{ fontSize: 10, color: 'var(--parchment)' }}>0{i + 1}</span>
                    <span>{l}</span>
                  </li>
                ))}
              </ul>
            </div>
          </Reveal>
          <Reveal delay={120}>
            <div style={{ borderTop: '1px solid var(--signal)', paddingTop: 28 }}>
              <div className="mono" style={{ color: 'var(--signal)', marginBottom: 20, display: 'flex', alignItems: 'center', gap: 10 }}>
                <span style={{ width: 6, height: 6, background: 'var(--signal)' }} /> WE'RE NOT IF
              </div>
              <ul style={{ listStyle: 'none', padding: 0, display: 'grid', gap: 20 }}>
                {fit.no.map((l, i) => (
                  <li key={i} style={{ display: 'grid', gridTemplateColumns: '28px 1fr', gap: 16, fontSize: 16, color: 'var(--parchment)', lineHeight: 1.55, paddingBottom: 20, borderBottom: '1px solid var(--tungsten)', textDecoration: 'line-through', textDecorationColor: 'rgba(226,6,18,0.3)' }}>
                    <span className="mono" style={{ fontSize: 10, color: 'var(--tungsten)', textDecoration: 'none' }}>0{i + 1}</span>
                    <span>{l}</span>
                  </li>
                ))}
              </ul>
            </div>
          </Reveal>
        </div>
      </div>
      <style>{`@media (max-width: 820px) { .fit-grid { grid-template-columns: 1fr !important; } }`}</style>
    </section>
  );
}

// ─── FAQ ───────────────────────────────────────────────────────────────
function FAQ() {
  const [open, setOpen] = useState(0);
  return (
    <section id="faq" style={{ padding: '160px 0', borderTop: '1px solid var(--border)' }}>
      <div className="container">
        <div style={{ display: 'grid', gridTemplateColumns: '360px 1fr', gap: 80 }} className="faq-grid">
          <Reveal>
            <div>
              <SectionHead caption="FAQ · § 07" title={<>Common<br /><span className="italic" style={{ color: 'var(--parchment)' }}>objections.</span></>} />
              <p style={{ color: 'var(--parchment)', fontSize: 15, lineHeight: 1.7, marginTop: 32, maxWidth: 320 }}>
                Things clients reasonably want to know before sending a brief.
              </p>
            </div>
          </Reveal>
          <div style={{ borderTop: '1px solid var(--border)' }}>
            {faqs.map((f, i) => {
              const isOpen = open === i;
              return (
                <div key={i} style={{ borderBottom: '1px solid var(--border)' }}>
                  <button onClick={() => setOpen(isOpen ? -1 : i)} style={{ width: '100%', textAlign: 'left', padding: '28px 0', display: 'grid', gridTemplateColumns: '40px 1fr 40px', gap: 24, alignItems: 'baseline' }}>
                    <span className="mono" style={{ fontSize: 10, color: isOpen ? 'var(--ember)' : 'var(--tungsten)', transition: 'color .3s' }}>0{i + 1}</span>
                    <span className="display" style={{ fontSize: 22, fontWeight: 500, color: 'var(--bone)', lineHeight: 1.35 }}>{f.q}</span>
                    <span style={{ color: 'var(--parchment)', fontFamily: 'var(--font-mono)', fontSize: 14, transition: 'transform .3s', transform: isOpen ? 'rotate(45deg)' : 'none' }}>+</span>
                  </button>
                  <div style={{ maxHeight: isOpen ? 400 : 0, overflow: 'hidden', transition: 'max-height .5s cubic-bezier(.2,.6,.2,1)' }}>
                    <div style={{ padding: '0 40px 32px 64px', color: 'var(--parchment)', fontSize: 15, lineHeight: 1.75, maxWidth: 720 }}>
                      {f.a}
                    </div>
                  </div>
                </div>
              );
            })}
          </div>
        </div>
      </div>
      <style>{`@media (max-width: 900px) { .faq-grid { grid-template-columns: 1fr !important; gap: 40px !important; } }`}</style>
    </section>
  );
}

// ─── Journal (compact) ─────────────────────────────────────────────────
function Journal() {
  const entries = journalEntries;
  return (
    <section id="journal" style={{ padding: '140px 0', borderTop: '1px solid var(--border)' }}>
      <div className="container">
        <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'flex-end', marginBottom: 60, flexWrap: 'wrap', gap: 20 }}>
          <Reveal>
            <SectionHead caption="JOURNAL · § 08" title={<>Notes from<br /><span className="italic" style={{ color: 'var(--parchment)' }}>the cutting room.</span></>} />
          </Reveal>
          <Reveal delay={80}>
            <a href="https://anselstudio.xyz/journal" className="mono" style={{ color: 'var(--parchment)', fontSize: 10, textDecoration: 'none', borderBottom: '1px solid var(--tungsten)', paddingBottom: 4 }}>All entries →</a>
          </Reveal>
        </div>

        <div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 0, borderTop: '1px solid var(--border)' }} className="jrn-grid">
          {entries.map((e, i) => (
            <Reveal key={i} delay={i * 80}>
              <a href={e.href} target="_blank" rel="noreferrer" style={{ textDecoration: 'none', display: 'block', height: '100%' }}>
                <article style={{ padding: '36px 32px 36px 0', borderRight: i < 2 ? '1px solid var(--border)' : 'none', height: '100%', cursor: 'pointer' }} className="jrn-col">
                  <div className="mono" style={{ fontSize: 10, color: 'var(--parchment)', display: 'flex', gap: 12, marginBottom: 24 }}>
                    <span>{e.date}</span><span style={{ color: 'var(--tungsten)' }}>//</span><span style={{ color: 'var(--ember)' }}>{e.cat}</span><span style={{ color: 'var(--tungsten)' }}>//</span><span>{e.readTime}</span>
                  </div>
                  <h3 className="display" style={{ fontSize: 24, fontWeight: 500, color: 'var(--bone)', marginBottom: 14, lineHeight: 1.25 }}>{e.t}</h3>
                  <p style={{ color: 'var(--parchment)', fontSize: 14, lineHeight: 1.7 }}>{e.sub}</p>
                  <span className="mono" style={{ fontSize: 10, color: 'var(--bone)', display: 'inline-block', marginTop: 28, borderBottom: '1px solid var(--signal)', paddingBottom: 3 }}>Read →</span>
                </article>
              </a>
            </Reveal>
          ))}
        </div>
      </div>
      <style>{`@media (max-width: 900px) { .jrn-grid { grid-template-columns: 1fr !important; } .jrn-col { border-right: none !important; border-bottom: 1px solid var(--border); padding: 32px 0 !important; } }`}</style>
    </section>
  );
}

// ─── Footer ────────────────────────────────────────────────────────────
function Footer() {
  return (
    <footer style={{ borderTop: '1px solid var(--border)', padding: '120px 0 40px', background: 'var(--obsidian)' }}>
      <div className="container">
        <div style={{ display: 'grid', gridTemplateColumns: '1.4fr 1fr 1fr 1fr', gap: 60, marginBottom: 100 }} className="ft-grid">
          <div>
            <img src="assets/wordmark.svg" alt="Ansel" style={{ height: 42, display: 'block' }} />
            <p className="display italic" style={{ fontSize: 28, color: 'var(--bone)', marginTop: 28, lineHeight: 1.2, fontWeight: 500, maxWidth: 360 }}>
              Infinite reach,<br />with a human touch.
            </p>
            <p className="mono" style={{ fontSize: 10, color: 'var(--parchment)', marginTop: 32 }}>
              STUDIO · ANSEL &nbsp;·&nbsp; EST. 2025 &nbsp;·&nbsp; ANSELSTUDIO.XYZ
            </p>
          </div>
          <div>
            <div className="mono" style={{ fontSize: 10, color: 'var(--ember)', marginBottom: 20 }}>— STUDIO</div>
            <div style={{ display: 'grid', gap: 12 }}>
              {['Work', 'Services', 'Process', 'Journal', 'Studio'].map((l) => (
                <a key={l} href={`#${l.toLowerCase()}`} style={{ color: 'var(--parchment)', fontSize: 14, transition: 'color .2s' }}
                  onMouseEnter={(e) => (e.currentTarget.style.color = 'var(--bone)')}
                  onMouseLeave={(e) => (e.currentTarget.style.color = 'var(--parchment)')}
                >{l}</a>
              ))}
            </div>
          </div>
          <div>
            <div className="mono" style={{ fontSize: 10, color: 'var(--ember)', marginBottom: 20 }}>— CONTACT</div>
            <div style={{ display: 'grid', gap: 12 }}>
              <a href="mailto:hello@anselstudio.xyz" style={{ color: 'var(--bone)', fontSize: 14 }}>hello@anselstudio.xyz</a>
              <a href="#inquiry" style={{ color: 'var(--parchment)', fontSize: 14 }}>Start a project →</a>
              <a href="https://calendar.app.google/YOUR-BOOKING-SLUG" style={{ color: 'var(--parchment)', fontSize: 14 }}>Book an intro call →</a>
              <a href="mailto:press@anselstudio.xyz" style={{ color: 'var(--parchment)', fontSize: 14 }}>Press / speaking</a>
            </div>
          </div>
          <div>
            <div className="mono" style={{ fontSize: 10, color: 'var(--ember)', marginBottom: 20 }}>— ELSEWHERE</div>
            <div style={{ display: 'grid', gap: 12 }}>
              {['Vimeo', 'Instagram', 'LinkedIn', 'X / Twitter', 'Substack'].map((l) => (
                <a key={l} href="#" style={{ color: 'var(--parchment)', fontSize: 14 }}>{l} ↗</a>
              ))}
            </div>
          </div>
        </div>

        {/* Giant wordmark */}
        <div style={{ paddingTop: 60, borderTop: '1px solid var(--tungsten)', overflow: 'hidden' }}>
          <div className="display" style={{ fontSize: 'clamp(80px, 22vw, 320px)', color: 'var(--tungsten)', lineHeight: 0.85, letterSpacing: '-0.03em', display: 'flex', alignItems: 'baseline' }}>
            ANSEL<span style={{ color: 'var(--signal)', marginLeft: 12 }}>.</span>
          </div>
        </div>

        <div style={{ display: 'flex', justifyContent: 'space-between', paddingTop: 32, flexWrap: 'wrap', gap: 16 }}>
          <div className="mono" style={{ fontSize: 10, color: 'var(--tungsten)', display: 'flex', gap: 14, flexWrap: 'wrap' }}>
            <span>© 2026 ANSEL STUDIO</span>
            <span>//</span>
            <span>ANSELSTUDIO.XYZ</span>
            <span>//</span>
            <span>OUTPUT · FILM / SYSTEMS / CAMPAIGNS</span>
          </div>
          <div className="mono" style={{ fontSize: 10, color: 'var(--tungsten)', display: 'flex', gap: 20 }}>
            <a href="#" style={{ color: 'inherit' }}>Privacy</a>
            <a href="#" style={{ color: 'inherit' }}>Terms</a>
            <a href="#" style={{ color: 'inherit' }}>Colophon</a>
          </div>
        </div>
      </div>
      <style>{`@media (max-width: 960px) { .ft-grid { grid-template-columns: 1fr 1fr !important; } } @media (max-width: 560px) { .ft-grid { grid-template-columns: 1fr !important; } }`}</style>
    </footer>
  );
}

Object.assign(window, { FeaturedReel, Mission, Services, Work, Process, Principles, Fit, FAQ, Journal, Footer });
