---
---

<div class="hero">
  <div class="container">
    <img src="/assets/kiln-pfp-1024-flat.svg" alt="Kiln" class="hero-logo" width="300" height="300">
    <p class="tagline"><span class="tagline-line">Spawn an object</span><br><span class="tagline-emphasis">into existence.</span></p>
    <h1><span class="brand">Kiln 3D</span> is how AI agents make real things &mdash; <span class="accent">safely</span>, on any 3D printer.</h1>
    <p class="subtitle">
      Describe what you want. Kiln designs, prints, and monitors it &mdash; then branches, merges, and signs the version that works.
    </p>

    <!-- BYO compat strip — promoted into the hero on 2026-04-26
         to replace the install block.  The model-agnostic moat
         now sits above the fold instead of below the receipts.
         Sub-line "any printer" tightens to "any machine" when CNC
         / laser adapters land. -->
    <h2 class="compat-heading">Bring your AI. We brought the rest.</h2>
    <div class="compat-strip-inline">
      <p class="compat-row-label">Agents</p>
      <div class="compat-list-inline">
        <span class="compat-pill">Claude</span>
        <span class="compat-pill">Codex</span>
        <span class="compat-pill">Cursor</span>
        <span class="compat-pill">OpenClaw</span>
        <span class="compat-pill compat-pill-more">+ any MCP agent</span>
      </div>
      <p class="compat-row-label">Printers</p>
      <div class="compat-list-inline">
        <span class="compat-pill">OctoPrint</span>
        <span class="compat-pill">Moonraker/Klipper</span>
        <span class="compat-pill">Creality</span>
        <span class="compat-pill">Bambu Lab</span>
        <span class="compat-pill">Prusa Link</span>
        <span class="compat-pill">Elegoo</span>
        <span class="compat-pill">Direct USB</span>
      </div>
      <p class="compat-sub-inline">Plugs into any agent. Operates any printer.</p>
    </div>

    <a href="/install" class="hero-cta">Connect your AI &rarr;</a>
  </div>
</div>

<style>
  .hero {
    padding: 100px 0 80px;
    text-align: center;
  }
  .hero-logo {
    width: clamp(200px, 25vw, 340px);
    height: auto;
    border-radius: 48px;
    margin-bottom: 44px;
    filter: drop-shadow(0 0 60px rgba(245, 158, 66, 0.25)) drop-shadow(0 0 120px rgba(245, 158, 66, 0.1));
    transition: filter 0.3s ease;
  }
  .hero-logo:hover {
    filter: drop-shadow(0 0 80px rgba(245, 158, 66, 0.35)) drop-shadow(0 0 160px rgba(245, 158, 66, 0.15));
  }

  /* Primary tagline — the emotional hero statement */
  .tagline {
    font-size: clamp(28px, 4.5vw, 64px);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.03em;
    margin-bottom: 24px;
    color: var(--text);
  }
  .tagline-line,
  .tagline-emphasis {
    white-space: nowrap;
  }
  .tagline-emphasis {
    background: linear-gradient(135deg, var(--accent), #f59e42, var(--accent));
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: gradient-shift 6s ease-in-out infinite;
  }

  @keyframes gradient-shift {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
  }

  /* Secondary H1 — SEO-optimized, visually subordinate */
  .hero h1 {
    font-size: clamp(18px, 2.8vw, 26px);
    font-weight: 500;
    line-height: 1.4;
    margin-bottom: 16px;
    color: var(--text-muted);
    letter-spacing: -0.01em;
  }
  .hero h1 .brand {
    font-weight: 600;
    color: var(--text);
  }
  .hero h1 .accent { color: var(--accent); font-weight: 600; }

  .subtitle {
    font-size: clamp(16px, 2.5vw, 20px);
    color: var(--text-muted);
    max-width: 720px;
    margin: 0 auto 40px;
    line-height: 1.5;
  }
  .subtitle .nowrap {
    white-space: nowrap;
  }

  /* BYO compat strip — promoted into the hero on 2026-04-26.
     Sized smaller than the below-the-fold version (clamp 22-36px
     instead of 28-48px) so the .tagline above stays the visual
     anchor while the BYO claim acts as a secondary load-bearing
     line.  Card max-width matches the old install-block width
     (720px) so the hero retains the same horizontal rhythm. */
  .compat-heading {
    font-size: clamp(22px, 3.2vw, 36px);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.022em;
    color: var(--text);
    text-align: center;
    margin: 24px auto 20px;
    max-width: 780px;
    text-wrap: balance;
  }
  .compat-strip-inline {
    text-align: center;
    width: 100%;
    min-width: 0;
    padding: 24px 32px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 12px;
    max-width: 720px;
    margin: 0 auto;
  }
  /* Tiny uppercase row label — separates the agents row from the
     printers row so a normie can parse the strip at a glance.
     Same typographic shape as .receipts-video-label / receipt-
     kicker on index.astro for cross-page consistency. */
  .compat-row-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--text-muted);
    margin: 0 0 10px;
    text-align: center;
  }
  .compat-list-inline + .compat-row-label {
    margin-top: 16px;
  }
  .compat-list-inline {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
  }
  .compat-pill {
    display: inline-block;
    max-width: 100%;
    padding: 7px 16px;
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
    background: var(--bg-code);
    border: 1px solid var(--border);
    border-radius: 8px;
    transition: border-color 0.15s ease, transform 0.15s ease;
  }
  .compat-pill:hover {
    border-color: var(--accent);
    transform: translateY(-1px);
  }
  /* "+ any MCP agent" — dashed border + muted text reads as "and
     more" without a separate visual treatment elsewhere. */
  .compat-pill-more {
    border-style: dashed;
    color: var(--text-muted);
    background: transparent;
  }
  .compat-pill-more:hover {
    color: var(--text);
  }
  .compat-sub-inline {
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.5;
    margin-top: 18px;
  }

  /* Primary CTA — accent-filled, sized to be the obvious next
     action below the BYO strip.  Routes to /install where the
     3-step happy path lives. */
  .hero-cta {
    display: inline-block;
    margin-top: 36px;
    padding: 14px 32px;
    background: var(--accent);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    border-radius: 10px;
    text-decoration: none;
    transition: transform 0.15s, box-shadow 0.15s;
  }
  .hero-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(255, 107, 43, 0.3);
    text-decoration: none;
  }

  @media (max-width: 640px) {
    .hero { padding: 60px 0 50px; }
    .tagline { margin-bottom: 20px; }
    .tagline-line,
    .tagline-emphasis { white-space: normal; }
    .compat-strip-inline { padding: 22px 18px; }
    .compat-heading { margin: 20px auto 18px; }
    .hero-cta { margin-top: 28px; padding: 12px 26px; }
  }
</style>
