• Updated 14 Nov, 12:11 UTC
  • Next run 15 Nov, 05:17 UTCNext 15 Nov 05:17
  • Last 7 days: 9 new models · 71 runs7 d: 9 models · 71 runs
Landing page for a cargo bike workshop

Mi:dm K 3.0 ProKT

Network offOpen alone (new tab)

Run details

Model
kt/midm-k-3.0-pro
Route
OpenRouter API, one user message
Served by
KT
Effort
the model's default
Limits
60 min · 235,615 output tokens (the model's limit)
Date
14 Nov 2026
Time
7 s
Size
9.2 kB
Tokens
455 in, 3,297 out (197 of them thinking)
List price
$0.003 at today's price ($0.20 in / $0.80 out per M)
Paid
$0.003

Raw files: output · meta.json

Exact prompt

Build the landing page for Lumen Cycles, a Copenhagen workshop that builds custom cargo bikes to order. Make it look like a real brand you would trust with 4,000 euros.

It must be one complete, self-contained HTML file: inline all CSS and JavaScript, and make no network requests of any kind (no CDNs, web fonts or remote images). Reply with the file in a single ```html code block.

Source

9.2 kB 244 lines Raw

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Lumen Cycles – Custom Cargo Bikes in Copenhagen</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
  :root {
    --primary:#006d77;
    --accent:#ff9e00;
    --bg:#f0f5f9;
    --dark:#1d3557;
    --light:#ffffff;
  }
  * {box-sizing:border-box;margin:0;padding:0;}
  body {
    font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background:var(--bg);
    color:var(--dark);
    line-height:1.6;
    min-height:100vh;
    display:flex;
    flex-direction:column;
  }
  header {
    background:var(--primary);
    color:var(--light);
    padding:1.2rem 2rem;
    position:sticky;
    top:0;
    z-index:10;
  }
  header .brand {font-size:1.5rem;font-weight:bold;display:flex;align-items:center;gap:0.5rem;}
  header nav {margin-top:0.5rem;}
  header nav a {color:var(--light);margin-right:1.5rem;text-decoration:none;font-weight:500;}
  header nav a:hover {text-decoration:underline;}
  .hero {
    flex:1;
    background:linear-gradient(135deg, var(--primary), var(--accent));
    color:var(--light);
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:2rem;
  }
  .hero h1 {font-size:clamp(2.5rem,6vw,4rem);margin-bottom:0.5rem;}
  .hero p {font-size:clamp(1rem,2.5vw,1.25rem);max-width:600px;margin-bottom:1.5rem;}
  .hero button {
    background:var(--accent);
    color:var(--dark);
    border:none;
    padding:0.8rem 1.5rem;
    font-size:1rem;
    border-radius:0.4rem;
    cursor:pointer;
    transition:background .3s;
  }
  .hero button:hover {background:#ffb400;}
  .section {
    padding:4rem 2rem;
    max-width:1000px;
    margin:auto;
  }
  .section h2 {font-size:2.2rem;margin-bottom:1rem;color:var(--primary);}
  .section p {margin-bottom:1rem;}
  .features {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:2rem;
    margin-top:2rem;
  }
  .feature {
    background:var(--light);
    border-radius:0.6rem;
    padding:1.5rem;
    box-shadow:0 2px 6px rgba(0,0,0,0.08);
    text-align:center;
  }
  .feature svg {width:60px;height:60px;margin-bottom:1rem;fill:var(--primary);}
  .feature h3 {margin-bottom:0.5rem;color:var(--dark);}
  .gallery {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:1rem;
  }
  .gallery img {width:100%;height:auto;border-radius:0.4rem;box-shadow:0 2px 6px rgba(0,0,0,0.1);}
  form {display:flex;flex-direction:column;max-width:600px;margin:auto;}
  form label {margin-top:1rem;margin-bottom:0.3rem;font-weight:500;}
  form input, form textarea {
    padding:0.6rem;
    border:1px solid #ccc;
    border-radius:0.3rem;
    font:inherit;
    width:100%;
  }
  form button {
    margin-top:1.5rem;
    background:var(--primary);
    color:var(--light);
    border:none;
    padding:0.8rem;
    border-radius:0.3rem;
    font-size:1rem;
    cursor:pointer;
    transition:background .3s;
  }
  form button:hover {background:#004f5c;}
  footer {
    background:var(--dark);
    color:var(--light);
    text-align:center;
    padding:1.5rem;
    font-size:0.9rem;
  }
  @media (max-width:600px) {
    header .brand {font-size:1.2rem;}
    header nav a {margin-right:0.8rem;font-size:0.9rem;}
  }
</style>
</head>
<body>
<header>
  <div class="brand">
    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2l6 9-6 6-6-6 6-9z" /></svg>
    Lumen Cycles
  </div>
  <nav>
    <a href="#about">About</a>
    <a href="#features">Features</a>
    <a href="#gallery">Gallery</a>
    <a href="#contact">Contact</a>
  </nav>
</header>

<section class="hero">
  <h1>Built for the City, Made for You</h1>
  <p>Lumen Cycles crafts purpose‑built cargo bikes that combine unrivalled usability with Scandinavian simplicity. Every bike is hand‑built to fit your daily route.</p>
  <button onclick="scrollToSection()">Start Your Custom Build</button>
</section>

<section class="section" id="about">
  <h2>Our Story</h2>
  <p>Founded in 2015 in the heart of Copenhagen, Lumen Cycles is a small workshop focused on one thing: creating the perfect balance between utility, durability and joyful riding. We partner with local cyclists, engineers and designers to refine every detail from frame geometry to cargo geometry.</p>
</section>

<section class="section" id="features">
  <h2>Why Choose Lumen?</h2>
  <div class="features">
    <div class="feature">
      <svg viewBox="0 0 24 24"><path d="M4 6h16v12H4z"/><path d="M9 1v12M15 1v12"/></svg>
      <h3>Hand‑Built Frames</h3>
      <p>Each frame is TIG‑welded from lightweight Chromoly steel, ensuring it withstands daily loads while keeping a smooth, nimble ride.</p>
    </div>
    <div class="feature">
      <svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="M12 6v6l4 2"/></svg>
      <h3>Maximum Flexibility</h3>
      <p>Choose from front‑box, rear‑rack, or long‑tail configurations. Our modular system lets you adapt the bike to groceries, kids, or tools.</p>
    </div>
    <div class="feature">
      <svg viewBox="0 0 24 24"><path d="M3 7h18M3 13h18M3 17h6"/><path d="M19 13v6"/></svg>
      <h3>Danish Design</h3>
      <p>Minimalist aesthetics meet safety integrated LED lighting and reflective accents, keeping you visible on bike‑friendly streets.</p>
    </div>
    <div class="feature">
      <svg viewBox="0 0 24 24"><path d="M12 12l-8 8V8l8-8z"/><circle cx="12" cy="12" r="3"/></svg>
      <h3>Ride Tested</h3>
      <p>Every build is ridden and inspected by our workshop team before delivery, guaranteeing confidence from the first turn of the wheels.</p>
    </div>
  </div>
</section>

<section class="section" id="gallery">
  <h2>Gallery</h2>
  <div class="gallery">
    <!-- Images are created using inline SVG placeholders -->
    <svg viewBox="0 0 400 300"><rect width="400" height="300" fill="%23e0e5e9"/><text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="%23aaa" font-size="20">Bike Front View</text></svg>
    <svg viewBox="0 0 400 300"><rect width="400" height="300" fill="%23e0e5e9"/><text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="%23aaa" font-size="20">Cargo Loaded</text></svg>
    <svg viewBox="0 0 400 300"><rect width="400" height="300" fill="%23e0e5e9"/><text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="%23aaa" font-size="20">Workshop Bench</text></svg>
    <svg viewBox="0 0 400 300"><rect width="400" height="300" fill="%23e0e5e9"/><text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="%23aaa" font-size="20">Family riding</text></svg>
    <svg viewBox="0 0 400 300"><rect width="400" height="300" fill="%23e0e5e9"/><text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="%23aaa" font-size="20">Custom Color</text></svg>
    <svg viewBox="0 0 400 300"><rect width="400" height="300" fill="%23e0e5e9"/><text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="%23aaa" font-size="20">City Street</text></svg>
  </div>
</section>

<section class="section" id="contact">
  <h2>Start Your Build</h2>
  <p>Send us an outline of your dream cargo bike and we’ll reply within 24 hours with a quote and timeline.</p>
  <form id="contactForm">
    <label for="name">Your name</label>
    <input type="text" id="name" required placeholder="Jane Hansen">

    <label for="email">E‑mail address</label>
    <input type="email" id="email" required placeholder="jane@example.com">

    <label for="phone">Phone (optional)</label>
    <input type="tel" id="phone" placeholder="+45 12 34 56 78">

    <label for="details">What do you need?</label>
    <textarea id="details" rows="5" required placeholder="Cargo type, range, preferred model, colour..."></textarea>

    <button type="submit">Send Request</button>
  </form>
</section>

<footer>
  © 2026 Lumen Cycles • Voldmestergade 7, 1522 Copenhagen • info@lumen.dk • +45 11 22 33 44
</footer>

<script>
  // Smooth scroll for nav links and hero button
  function scrollToSection() {
    document.getElementById('contact').scrollIntoView({behavior: 'smooth'});
  }
  document.querySelectorAll('header nav a').forEach(link => {
    link.addEventListener('click', e => {
      e.preventDefault();
      const id = link.getAttribute('href').substring(1);
      document.getElementById(id).scrollIntoView({behavior: 'smooth'});
    });
  });

  // Simple form validation and alert (no server request)
  const form = document.getElementById('contactForm');
  form.addEventListener('submit', e => {
    e.preventDefault();
    // Basic checks
    if (!form.checkValidity()) {
      e.stopPropagation();
      form.classList.add('was-validated');
      // Alert first error for the user
      const firstF = form.querySelector('input,textarea:invalid');
      firstF.scrollIntoView({behavior:'smooth'});
      return;
    }
    // No actual network request—simulate sending
    const details = document.getElementById('details').value.trim().substr(0,50);
    const msg = `Thanks ${document.getElementById('name').value.trim().split(' ')[0]}!\nYour request details: "${details}"...`;
    alert(msg);
  });
</script>
</body>
</html>

Compare with

Mi:dm K 3.0 Pro: other attempts