Run details
- Model
- nvidia/nemotron-3.5-lightning:free
- Route
- OpenRouter API, one user message
- Reasoning
- provider default, 12,663 reasoning tokens
- Limits
- 60 min · 65,536 output tokens
- Date
- 21 Oct 2026
- Time
- 2 min 20 s
- Size
- 5.4 kB
- Tokens
- 93 in, 14,410 out
- List price
- $0.003 ($0.07 in / $0.2 out per M)
- Paid
- $0 (free route)
Exact prompt
Draw a mechanical wristwatch that shows the current local time, with a sweeping seconds hand and a date window. Make it look expensive. 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
5.4 kB 154 lines Raw
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mechanical Wristwatch</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: #0b0b0b;
}
.watch {
position: relative;
width: 340px;
height: 340px;
background: linear-gradient(135deg, #252525 0%, #0d0d0d 100%);
border-radius: 50%;
box-shadow:
inset 0 0 0 1px #353535,
0 0 30px rgba(0,0,0,0.6),
0 0 0 1px #454545;
}
.case-band {
position: absolute;
top: -4px; right: -4px; bottom: -4px; left: -4px;
border-radius: 50%;
background: linear-gradient(135deg, #ffd700 0%, #b8860b 50%, #ffec8b 100%);
box-shadow:
inset 0 10px 20px rgba(0,0,0,0.35),
inset 0 -10px 20px rgba(0,0,0,0.25),
0 0 0 1px #ffe566,
0 0 25px rgba(255,215,0,0.15);
border: 2px solid #b8860b;
}
.crystal {
position: absolute;
top: 28px; right: 28px; bottom: 28px; left: 28px;
border-radius: 50%;
background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.08) 0%, transparent 50%);
border: 1px solid rgba(255,255,255,0.1);
box-shadow: inset 0 0 25px rgba(255,255,255,0.04);
}
.dial {
position: absolute;
top: 40px; right: 40px; bottom: 40px; left: 40px;
border-radius: 50%;
background: radial-gradient(ellipse at 30% 30%, #0a0a0a 0%, #020202 100%);
padding: 10px;
box-shadow: inset 0 0 35px rgba(0,0,0,0.5);
}
.hour-markers {
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
}
.marker {
position: absolute;
width: 4px;
height: 20px;
background: #ffd700;
border-radius: 2px;
top: 50%;
transform: translateX(-50%) rotate(calc(var(--pos) * 30deg));
box-shadow: 0 0 4px #ffd700;
}
.marker-l { height: 28px; }
.hand {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transform-origin: 50% 50%;
z-index: 10;
}
.hand.second { width: 1px; height: 38%; background: #c0392b; box-shadow: 0 0 8px #c0392b; }
.hand.minute { width: 2px; height: 33%; background: #ecf0f1; box-shadow: 0 0 6px #ecf0f1; }
.hand.hour { width: 3px; height: 23%; background: #95a5a6; box-shadow: 0 0 4px #95a5a6; }
.date-window {
position: absolute;
bottom: 10px;
right: 10px;
width: 44px;
height: 20px;
background: rgba(0,0,0,0.75);
border-radius: 3px;
border: 1px solid #333;
padding: 1px 3px;
font-family: Georgia, serif;
font-size: 0.9rem;
color: #ffd700;
line-height: 1.3;
text-align: center;
box-shadow: inset 0 1px 2px rgba(0,0,0,0.3);
}
</style>
</head>
<body>
<div class="watch">
<div class="case-band"></div>
<div class="crystal"></div>
<div class="dial">
<div class="hour-markers" id="markers"></div>
<div class="hand hour" id="hourHand"></div>
<div class="hand minute" id="minuteHand"></div>
<div class="hand second" id="secondHand"></div>
<div class="date-window" id="dateWindow">00</div>
</div>
</div>
<script>
// Initialize hour markers
const markerContainer = document.getElementById('markers');
for (let i = 0; i < 12; i++) {
const marker = document.createElement('div');
marker.className = 'marker' + (i % 3 === 0 ? '-l' : '');
marker.style.setProperty('--pos', i);
markerContainer.appendChild(marker);
}
const secondHand = document.getElementById('secondHand');
const minuteHand = document.getElementById('minuteHand');
const hourHand = document.getElementById('hourHand');
const dateWindow = document.getElementById('dateWindow');
function update() {
const now = new Date();
const h = now.getHours() % 12;
const m = now.getMinutes();
const s = now.getSeconds();
const ms = now.getMilliseconds();
// Continuous sweeping angles (degrees), 0° = 12 o'clock
const sAngle = (s + ms / 1000) * 6;
const mAngle = (m + s / 60) * 6;
const hAngle = (h + m / 60) * 30;
secondHand.style.transform = `rotate(${sAngle - 90}deg)`;
minuteHand.style.transform = `rotate(${mAngle - 90}deg)`;
hourHand.style.transform = `rotate(${hAngle - 90}deg)`;
// Date window (two-digit day)
const day = now.getDate();
dateWindow.textContent = day < 10 ? '0' + day : day;
requestAnimationFrame(update);
}
update();
</script>
</body>
</html>

