<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Phil Harper</title>
<meta name="description" content="Writer and comic-maker. The Palomar Lights, The Digger, and other work.">

<meta property="og:title" content="Phil Harper">
<meta property="og:description" content="Writer and comic-maker. The Palomar Lights, The Digger, and other work.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://phillyharper.com/">
<meta property="og:image" content="https://phillyharper.com/images/author.webp">

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@phillyharper">
<meta name="twitter:creator" content="@phillyharper">

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Special+Elite&family=Inter:wght@400;600;700&display=swap" rel="stylesheet">

<style>
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  :root {
    --kodachrome-gold: #D4A843;
    --kodachrome-warm: #F5E6C8;
    --paper: #EFE6D2;
    --ink: #e0d8c8;
    --ink-muted: #8B7355;
    --observatory-blue: #1B2838;
    --night-sky: #0A0E17;
    --deep-space: #060911;
    --card-bg: rgba(245, 230, 200, 0.04);
    --card-border: rgba(212, 168, 67, 0.25);
    --card-border-hover: rgba(212, 168, 67, 0.6);

    --font-label: 'Special Elite', 'Courier Prime', monospace;
    --font-body: 'Inter', system-ui, sans-serif;
    --font-serif: Georgia, 'Times New Roman', serif;
  }

  html { scroll-behavior: smooth; }

  body {
    background: var(--deep-space);
    color: var(--ink);
    font-family: var(--font-body);
    line-height: 1.55;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
    background-image:
      radial-gradient(ellipse at top, rgba(27, 40, 56, 0.6) 0%, transparent 60%),
      radial-gradient(ellipse at bottom, rgba(212, 168, 67, 0.04) 0%, transparent 50%);
  }

  .wrap {
    max-width: 640px;
    margin: 0 auto;
    padding: 64px 24px 96px;
  }

  /* ---- Header / identity ---- */
  .identity {
    text-align: center;
    margin-bottom: 56px;
  }

  .portrait {
    width: 132px;
    height: 132px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--card-border);
    margin: 0 auto 24px;
    display: block;
    filter: saturate(0.85) contrast(1.02);
  }

  h1 {
    font-family: var(--font-label);
    font-size: 1.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--kodachrome-warm);
    margin-bottom: 12px;
    font-weight: normal;
  }

  .tagline {
    font-family: var(--font-label);
    font-size: 0.78rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: 28px;
  }

  .bio {
    font-family: var(--font-serif);
    font-size: 1.0625rem;
    color: var(--ink);
    line-height: 1.65;
    max-width: 460px;
    margin: 0 auto;
  }

  .bio em {
    color: var(--kodachrome-gold);
    font-style: italic;
  }

  /* ---- Section label ---- */
  .section-label {
    font-family: var(--font-label);
    font-size: 0.72rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--ink-muted);
    text-align: center;
    margin-bottom: 24px;
    position: relative;
  }
  .section-label::before,
  .section-label::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 60px;
    height: 1px;
    background: var(--card-border);
  }
  .section-label::before { left: calc(50% - 110px); }
  .section-label::after { right: calc(50% - 110px); }

  /* ---- Link cards ---- */
  .cards {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .card {
    display: block;
    padding: 20px 24px;
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 4px;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.18s ease, transform 0.18s ease, background 0.18s ease;
    position: relative;
  }

  .card:hover,
  .card:focus-visible {
    border-color: var(--card-border-hover);
    background: rgba(245, 230, 200, 0.06);
    transform: translateY(-1px);
    outline: none;
  }

  .card-title {
    font-family: var(--font-label);
    font-size: 1.05rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--kodachrome-warm);
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .card-title .arrow {
    color: var(--kodachrome-gold);
    transition: transform 0.18s ease;
    font-family: var(--font-body);
  }

  .card:hover .arrow { transform: translateX(4px); }

  .card-desc {
    font-family: var(--font-body);
    font-size: 0.875rem;
    color: var(--ink-muted);
    letter-spacing: 0.02em;
  }

  /* Headline card — the comic */
  .card-headline {
    border-color: rgba(212, 168, 67, 0.45);
    background: linear-gradient(
      135deg,
      rgba(212, 168, 67, 0.06) 0%,
      rgba(245, 230, 200, 0.03) 100%
    );
  }
  .card-headline .card-title { color: var(--kodachrome-gold); }

  /* Small dual row for social */
  .cards-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }
  .cards-row .card { padding: 16px 20px; }
  .cards-row .card-title { font-size: 0.85rem; margin-bottom: 0; }

  @media (max-width: 480px) {
    .wrap { padding: 40px 18px 64px; }
    h1 { font-size: 1.4rem; }
    .portrait { width: 108px; height: 108px; }
    .bio { font-size: 1rem; }
    .section-label::before { left: calc(50% - 100px); width: 40px; }
    .section-label::after { right: calc(50% - 100px); width: 40px; }
    .cards-row { grid-template-columns: 1fr; }
  }

  /* ---- Footer ---- */
  footer {
    text-align: center;
    margin-top: 64px;
    font-family: var(--font-label);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ink-muted);
    opacity: 0.6;
  }
</style>
</head>

<body>
  <main class="wrap">

    <section class="identity">
      <img class="portrait" src="/images/author.webp" alt="Phil Harper" width="132" height="132">
      <h1>Phil Harper</h1>
      <p class="tagline">Writer · Comics · Investigations</p>
      <p class="bio">
        I'm Phil. I write <em>The Digger</em> on Substack, make comics under the same name,
        and tinker with other things in between. Currently building
        <em>The Palomar Lights</em> — a long-scroll web comic.
      </p>
    </section>

    <p class="section-label">The work</p>

    <div class="cards">

      <a class="card card-headline" href="https://comics.phillyharper.com/" rel="noopener">
        <div class="card-title">
          <span>The Palomar Lights</span>
          <span class="arrow">→</span>
        </div>
        <div class="card-desc">Long-scroll web comic — Cold War science, atomic-era story.</div>
      </a>

      <a class="card" href="https://thedigger.co/" rel="noopener">
        <div class="card-title">
          <span>The Digger</span>
          <span class="arrow">→</span>
        </div>
        <div class="card-desc">Substack newsletter — investigative journalism.</div>
      </a>

      <a class="card" href="https://research.thedigger.co/" rel="noopener">
        <div class="card-title">
          <span>Digger Research</span>
          <span class="arrow">→</span>
        </div>
        <div class="card-desc">Field notes and source material from Digger investigations.</div>
      </a>

      <div class="cards-row">
        <a class="card" href="https://twitter.com/phillyharper" rel="noopener">
          <div class="card-title">
            <span>@phillyharper</span>
            <span class="arrow">→</span>
          </div>
        </a>
        <a class="card" href="https://ko-fi.com/phillyharper" rel="noopener">
          <div class="card-title">
            <span>Ko-fi</span>
            <span class="arrow">→</span>
          </div>
        </a>
      </div>

    </div>

    <footer>phillyharper.com</footer>

  </main>
</body>
</html>
