Run details
- Model
- thinkingmachines/inkling
- Route
- OpenRouter API, one user message
- Served by
- Together
- Effort
- high, OpenRouter's default for this model
- Limits
- 60 min · 471,859 output tokens (the model's limit)
- Date
- 27 Oct 2026
- Time
- 3 min 43 s
- Size
- 14 kB
- Tokens
- 91 in, 18,982 out (13,779 of them thinking)
- List price
- $0.077 at today's price ($1 in / $4.05 out per M)
- Paid
- $0.077
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
14 kB 543 lines Raw
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Aurelia Automatique — Lux Mechanical Timepiece</title>
<style>
:root {
--gold-deep: #5c3a1e;
--gold-mid: #8a6e3e;
--gold-bright: #c5a059;
--gold-highlight: #f5e6b8;
--dial-deep: #080d18;
--dial-mid: #1a2545;
--dial-surface: radial-gradient(circle at 50% 30%, #2a3a5c, #1a2545, #0d1018);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: radial-gradient(circle at center, #14142b 0%, #0a0a12 100%);
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
font-family: "Times New Roman", Times, Georgia, "Palatino Linotype", serif;
color: #e6c88e;
overflow: hidden;
}
/* Ambient desk reflection */
body::before {
content: "";
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 40vh;
background: linear-gradient(to top, rgba(255,255,255,0.03), transparent);
pointer-events: none;
}
.scene {
position: relative;
z-index: 2;
}
.watch-wrapper {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
}
/* Strap */
.strap {
width: 150px;
height: 90px;
background: linear-gradient(90deg, #2a1e15 0%, #3a2a1f 30%, #1a110e 70%, #2a1e15 100%);
position: relative;
border-left: 1px solid rgba(255,255,255,0.08);
border-right: 1px solid rgba(0,0,0,0.4);
box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
z-index: -1;
}
.strap-top {
border-radius: 12px 12px 0 0;
margin-bottom: -12px;
}
.strap-bottom {
border-radius: 0 0 12px 12px;
margin-top: -12px;
}
/* Stitching */
.strap::after {
content: "";
position: absolute;
top: 14px;
bottom: 14px;
left: 10px;
right: 10px;
border-left: 1px dashed rgba(255,255,255,0.12);
border-right: 1px dashed rgba(255,255,255,0.12);
pointer-events: none;
}
/* Lugs connecting strap to case */
.lug {
position: absolute;
width: 28px;
height: 26px;
background: linear-gradient(180deg, #c59e4a, #8a6e3e, #5c3a1e);
border-radius: 4px 4px 2px 2px;
top: 64px;
z-index: 1;
box-shadow: inset -1px -1px 3px rgba(0,0,0,0.5);
}
.lug-left { left: 66px; }
.lug-right { right: 66px; }
/* Watch case */
.watch-case {
position: relative;
width: 340px;
height: 340px;
border-radius: 50%;
background:
radial-gradient(circle at 35% 35%, #f8e8b0 0%, #d4a843 20%, #9e7b2e 50%, #5c3a1e 85%, #3b240e 100%);
box-shadow:
0 30px 60px rgba(0,0,0,0.9),
0 10px 30px rgba(0,0,0,0.7),
inset 0 0 40px rgba(255,255,255,0.25),
inset -15px -15px 40px rgba(0,0,0,0.5),
inset 0 -8px 20px rgba(0,0,0,0.6),
0 0 0 4px #8a6e3e,
0 0 0 7px #c5a059,
0 0 0 9px #5c3a1e;
display: flex;
align-items: center;
justify-content: center;
}
/* Crown */
.crown {
position: absolute;
right: -10px;
top: 50%;
width: 22px;
height: 32px;
background: linear-gradient(90deg, #5c3a1e, #9e7b2e, #c5a059, #f5e6b8, #c5a059, #9e7b2e, #5c3a1e);
border-radius: 10px;
transform: translateY(-50%);
box-shadow: inset -3px 0 6px rgba(0,0,0,0.5), 2px 0 8px rgba(0,0,0,0.7);
}
.crown-ridges {
position: absolute;
left: 5px;
top: 3px;
bottom: 3px;
width: 2px;
background: linear-gradient(180deg, transparent, rgba(0,0,0,0.4), transparent, rgba(0,0,0,0.4), transparent);
box-shadow: 4px 0 0 rgba(0,0,0,0.35), 8px 0 0 rgba(0,0,0,0.35);
}
/* Watch face */
.watch-face {
position: relative;
width: 278px;
height: 278px;
border-radius: 50%;
background: var(--dial-surface);
box-shadow:
inset 0 0 40px rgba(0,0,0,0.9),
inset 0 0 15px rgba(255,255,255,0.06),
0 0 0 2px rgba(201,168,94,0.15);
overflow: hidden;
}
/* Subtle sunburst texture */
.dial-texture {
position: absolute;
inset: 0;
background:
repeating-radial-gradient(circle at center, transparent 0 18px, rgba(255,255,255,0.025) 18px 19px),
linear-gradient(135deg, rgba(255,255,255,0.04) 0%, transparent 40%, transparent 60%, rgba(255,255,255,0.03) 100%);
pointer-events: none;
z-index: 1;
}
/* Minute / hour ring */
.chapter-ring {
position: absolute;
inset: 16px;
border: 1.5px solid rgba(201, 168, 94, 0.25);
border-radius: 50%;
pointer-events: none;
z-index: 2;
}
/* Markers container */
.markers-layer {
position: absolute;
inset: 0;
z-index: 3;
pointer-events: none;
}
/* Hour markers (dots) */
.hour-marker {
position: absolute;
width: 7px;
height: 7px;
border-radius: 50%;
top: 50%;
left: 50%;
margin: -3.5px 0 0 -3.5px;
background: radial-gradient(circle at 35% 35%, var(--gold-highlight), var(--gold-bright) 40%, var(--gold-mid) 80%);
box-shadow: 0 0 5px rgba(201, 168, 94, 0.45), inset -1px -1px 2px rgba(0,0,0,0.3);
}
/* Numbers layer */
.numbers-layer {
position: absolute;
inset: 0;
z-index: 3;
pointer-events: none;
}
.hour-number-container {
position: absolute;
top: 50%;
left: 50%;
width: 0;
height: 0;
}
.hour-number {
position: absolute;
transform: translate(-50%, -50%);
font-family: "Times New Roman", Times, serif;
font-variant: small-caps;
font-weight: 700;
letter-spacing: 1px;
font-size: 16px;
color: var(--gold-highlight);
text-shadow: 0 0 6px rgba(201, 168, 94, 0.35), 0 1px 2px rgba(0,0,0,0.8);
}
/* Date window */
.date-window {
position: absolute;
right: 42px;
top: 50%;
transform: translateY(-50%);
width: 32px;
height: 22px;
background: linear-gradient(180deg, #f8f4e8, #e8dfc8);
border: 2px solid var(--gold-bright);
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
box-shadow:
inset 0 0 6px rgba(0,0,0,0.15),
0 2px 6px rgba(0,0,0,0.35);
z-index: 6;
}
.date-window::before {
content: "";
position: absolute;
inset: -2px;
border-radius: 6px;
border: 1px solid rgba(255,255,255,0.35);
background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0) 70%);
pointer-events: none;
}
.date-display {
position: relative;
z-index: 2;
font-family: "Courier New", Courier, monospace;
font-weight: 700;
font-size: 13px;
letter-spacing: 1px;
color: #1a1610;
text-shadow: 0 0 1px rgba(255,255,255,0.3);
}
/* Brand text */
.brand-text {
position: absolute;
top: 52px;
left: 50%;
transform: translateX(-50%);
z-index: 5;
text-align: center;
}
.brand-main {
font-variant: small-caps;
font-size: 22px;
letter-spacing: 5px;
color: var(--gold-highlight);
text-shadow: 0 0 8px rgba(201, 168, 94, 0.5), 0 2px 4px rgba(0,0,0,0.9);
font-weight: 700;
}
.brand-sub {
font-size: 7px;
letter-spacing: 3px;
color: rgba(245, 230, 184, 0.7);
margin-top: 2px;
text-transform: uppercase;
}
/* Bottom text */
.bottom-text {
position: absolute;
bottom: 38px;
left: 50%;
transform: translateX(-50%);
z-index: 5;
text-align: center;
font-size: 6px;
letter-spacing: 2px;
color: rgba(245, 230, 184, 0.5);
text-transform: uppercase;
text-shadow: 0 0 3px rgba(0,0,0,0.8);
}
/* Jewel / pivot */
.jewel {
position: absolute;
top: 50%;
left: 50%;
width: 10px;
height: 10px;
border-radius: 50%;
background: radial-gradient(circle at 35% 35%, #ff6b80, #b30026, #330005);
transform: translate(-50%, -50%);
box-shadow:
0 0 6px rgba(255, 50, 80, 0.45),
inset -1px -1px 2px rgba(255,255,255,0.25);
z-index: 10;
}
/* Hands */
.hand {
position: absolute;
bottom: 50%;
left: 50%;
border-radius: 2px;
transform-origin: bottom center;
transform: translateX(-50%) rotate(0deg);
will-change: transform;
z-index: 4;
}
.hour-hand {
width: 7px;
height: 78px;
background: linear-gradient(180deg, transparent 10%, var(--gold-bright) 20%, var(--gold-mid) 60%, var(--gold-deep) 90%);
box-shadow: 0 0 4px rgba(201,168,94,0.4), 0 2px 4px rgba(0,0,0,0.5);
border-radius: 3px 3px 2px 2px;
}
.minute-hand {
width: 4.5px;
height: 108px;
background: linear-gradient(180deg, transparent 5%, var(--gold-highlight) 15%, var(--gold-bright) 50%, var(--gold-mid) 85%);
box-shadow: 0 0 3px rgba(201,168,94,0.35), 0 3px 5px rgba(0,0,0,0.4);
border-radius: 3px 3px 2px 2px;
}
.second-hand {
width: 1.5px;
height: 130px;
background: linear-gradient(180deg, transparent 5%, #e6c88e 15%, #c5a059 60%, #8a6e3e 95%);
border-radius: 1px;
box-shadow: 0 0 3px rgba(201,168,94,0.3);
}
.second-hand::after {
content: "";
position: absolute;
top: -5px;
left: 50%;
width: 6px;
height: 6px;
border-radius: 50%;
background: radial-gradient(circle at 40% 40%, #ff6b6b, #b30026, #330005);
transform: translateX(-50%);
box-shadow: 0 0 5px rgba(255,50,80,0.5), inset -1px -1px 2px rgba(255,255,255,0.2);
}
/* Counterweight near pivot */
.second-hand::before {
content: "";
position: absolute;
bottom: -10px;
left: 50%;
width: 10px;
height: 10px;
border-radius: 50%;
background: radial-gradient(circle at 35% 35%, var(--gold-highlight), var(--gold-mid));
transform: translateX(-50%);
box-shadow: 0 0 4px rgba(201,168,94,0.5);
}
/* Crystal reflection */
.crystal-glare {
position: absolute;
inset: 0;
border-radius: 50%;
background: linear-gradient(135deg, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0) 30%, rgba(255,255,255,0) 65%, rgba(255,255,255,0.08) 100%);
pointer-events: none;
z-index: 15;
}
/* Small decorative triangle at 12 */
.twelve-marker {
position: absolute;
top: 20px;
left: 50%;
width: 0;
height: 0;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 10px solid var(--gold-bright);
transform: translateX(-50%);
filter: drop-shadow(0 0 3px rgba(201,168,94,0.6));
z-index: 3;
}
</style>
</head>
<body>
<div class="scene">
<div class="watch-wrapper">
<!-- Top strap -->
<div class="strap strap-top"></div>
<!-- Lugs -->
<div class="lug lug-left"></div>
<div class="lug lug-right"></div>
<!-- Case -->
<div class="watch-case">
<!-- Crown -->
<div class="crown">
<div class="crown-ridges"></div>
</div>
<div class="watch-face">
<div class="dial-texture"></div>
<div class="chapter-ring"></div>
<div class="crystal-glare"></div>
<!-- 12 o'clock triangle -->
<div class="twelve-marker"></div>
<!-- Hour markers -->
<div class="markers-layer" id="hour-markers"></div>
<!-- Hour numbers -->
<div class="numbers-layer" id="hour-numbers"></div>
<!-- Brand -->
<div class="brand-text">
<div class="brand-main">Aurelia</div>
<div class="brand-sub">Chronomètre Automatique</div>
</div>
<!-- Date -->
<div class="date-window">
<span class="date-display" id="date-display">01</span>
</div>
<!-- Bottom text -->
<div class="bottom-text">Swiss Made — 28'800 vph</div>
<!-- Jewel -->
<div class="jewel"></div>
<!-- Hands -->
<div class="hand hour-hand" id="hour-hand"></div>
<div class="hand minute-hand" id="minute-hand"></div>
<div class="hand second-hand" id="second-hand"></div>
</div>
</div>
<!-- Bottom strap -->
<div class="strap strap-bottom"></div>
</div>
</div>
<script>
(function() {
// Build hour markers (dots)
const markersLayer = document.getElementById('hour-markers');
for (let i = 0; i < 12; i++) {
const m = document.createElement('div');
m.className = 'hour-marker';
const angle = i * 30; // 0 at 12, clockwise
m.style.transform = 'rotate(' + angle + 'deg) translateY(-120px)';
markersLayer.appendChild(m);
}
// Build hour numbers
const numbersLayer = document.getElementById('hour-numbers');
for (let i = 0; i < 12; i++) {
const container = document.createElement('div');
container.className = 'hour-number-container';
const angle = i * 30;
container.style.transform = 'rotate(' + angle + 'deg) translateY(-92px)';
const span = document.createElement('span');
span.className = 'hour-number';
span.textContent = i === 0 ? '12' : (i === 3 ? '3' : (i === 6 ? '6' : (i === 9 ? '9' : '')));
// For simplicity show 12, 3, 6, 9 and leave others clean? Let's show all but smaller.
span.textContent = i === 0 ? '12' : (i === 3 ? '3' : (i === 6 ? '6' : (i === 9 ? '9' : '')));
// Actually let's show all 12 with smaller font except main 4.
if (i !== 0 && i !== 3 && i !== 6 && i !== 9) {
span.textContent = '';
// Instead, place a small dot for other hours? Already have dots. Let's just keep main numbers.
}
// Let's set all numbers but small size for non-main, but for luxury, batons are enough.
// We'll only render 12, 3, 6, 9 for elegance.
if (i !== 0 && i !== 3 && i !== 6 && i !== 9) {
span.textContent = '';
} else {
span.style.fontSize = '20px';
}
span.style.transform = 'rotate(' + (-angle) + 'deg)';
container.appendChild(span);
numbersLayer.appendChild(container);
}
// Update function
function update() {
const now = new Date();
const sec = now.getSeconds() + now.getMilliseconds() / 1000;
const min = now.getMinutes() + sec / 60;
const hour = (now.getHours() % 12) + min / 60;
const secDeg = sec * 6;
const minDeg = min * 6;
const hourDeg = hour * 30 + min * 0.5;
document.getElementById('hour-hand').style.transform = 'translateX(-50%) rotate(' + hourDeg + 'deg)';
document.getElementById('minute-hand').style.transform = 'translateX(-50%) rotate(' + minDeg + 'deg)';
document.getElementById('second-hand').style.transform = 'translateX(-50%) rotate(' + secDeg + 'deg)';
const dateNum = now.getDate();
document.getElementById('date-display').textContent = String(dateNum).padStart(2, '0');
requestAnimationFrame(update);
}
// Start
requestAnimationFrame(update);
})();
</script>
</body>
</html>

