html, body { height: 100%; } body { margin: 0; background: radial-gradient(120vmax 120vmax at 70% 20%, var(--bg2), var(--bg)); display: flex; align-items: center; justify-content: center; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"; color: #151826; }
.wrap { width: min(92vw, 92vh); max-width: 1024px; display: grid; grid-template-rows: 1fr auto; gap: 2.8vh; align-items: center; justify-items: center; padding: clamp(12px, 3vmin, 28px); box-sizing: border-box; }
.clock { width: min(86vmin, 90vw); aspect-ratio: 1 / 1; position: relative; border-radius: 50%; background: radial-gradient(circle at 50% 38%, rgba(0,0,0,0.06), transparent 42%), radial-gradient(circle at 50% 50%, var(--face), var(--face)); box-shadow: 0 1.2vmin 3vmin -1vmin var(--face-shadow), inset 0 0 0.8vmin #fff, inset 0 0 0 1.2vmin rgba(0,0,0,0.04); display: grid; place-items: center; overflow: hidden; --hour-rot: 0deg; --minute-rot: 0deg; --second-rot: 0deg; }
.bezel { position: absolute; inset: 0; border-radius: 50%; box-shadow: inset 0 0 0 0.9vmin rgba(0,0,0,0.06), inset 0 0 0 1.6vmin rgba(255,255,255,0.9), 0 0.6vmin 1.6vmin rgba(0,0,0,0.06); pointer-events: none; }
.ticks, .numbers, .hands { position: absolute; inset: 0; }
.tick { position: absolute; left: 50%; top: 2.2%; transform-origin: 50% calc(100% - 0%); translate: -50% 0; background: var(--mark); border-radius: 999px; opacity: 0.9; } .tick.major { background: var(--mark-strong); opacity: 1; }
.numbers { pointer-events: none; } .num { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%) rotate(var(--a)) translateY(-42%) rotate(calc(-1 * var(--a))); font-weight: 700; letter-spacing: 0.02em; color: var(--mark-strong); text-shadow: 0 1px 0 rgba(255,255,255,0.6); font-size: clamp(14px, 3.8vmin, 28px); user-select: none; }
.hands { pointer-events: none; }
.hand { position: absolute; inset: 0; transform: rotate(0deg); display: block; } .hand.hour { transform: rotate(var(--hour-rot)); } .hand.minute { transform: rotate(var(--minute-rot)); } .hand.second { transform: rotate(var(--second-rot)); }
.hand .shaft { position: absolute; left: 50%; bottom: 50%; transform-origin: 50% 100%; transform: translateX(-50%); background: var(--hand); border-radius: 999px; box-shadow: 0 1px 0 rgba(255,255,255,0.6); }
.hand.hour .shaft { width: 1.8%; height: 29%; animation: sweep 43200s linear infinite; } .hand.minute .shaft { width: 1.2%; height: 39%; animation: sweep 3600s linear infinite; } .hand.second .shaft { width: 0.7%; height: 43%; background: var(--accent); box-shadow: 0 0 0.6vmin rgba(230,57,70,0.35); animation: sweep 60s linear infinite; }
.cap-outer, .cap-inner { position: absolute; left: 50%; top: 50%; translate: -50% -50%; border-radius: 50%; } .cap-outer { width: 6.4%; aspect-ratio: 1; background: linear-gradient(180deg, #d9dbe3, #b9bcc9); box-shadow: 0 0.5vmin 1vmin rgba(0,0,0,0.15), inset 0 0 0 0.4vmin rgba(255,255,255,0.75); z-index: 3; } .cap-inner { width: 3.6%; aspect-ratio: 1; background: var(--hand); z-index: 4; box-shadow: inset 0 0 0 0.2vmin rgba(255,255,255,0.25); }
.brand { position: absolute; left: 50%; top: 58%; translate: -50% -50%; font-weight: 600; font-size: clamp(10px, 1.8vmin, 14px); color: rgba(0,0,0,0.45); letter-spacing: 0.12em; text-transform: uppercase; pointer-events: none; }
.glass { position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(120% 100% at 20% 0%, var(--glass), transparent 55%); mix-blend-mode: screen; opacity: 0.55; pointer-events: none; }
.caption { text-align: center; color: rgba(255,255,255,0.85); font-size: clamp(14px, 2.2vmin, 18px); letter-spacing: 0.02em; max-width: 90vw; }
@keyframes sweep { from { transform: translateX(-50%) rotate(0deg); } to { transform: translateX(-50%) rotate(360deg); } }
@media (max-width: 600px) { .wrap { gap: 2vh; } .brand { top: 60%; } }
@media (prefers-reduced-motion: reduce) { .hand .shaft { animation-duration: 0.001s; } } </style>
</head> <body> <div class="wrap"> <div class="clock" id="clock" aria-label="Analog clock"> <div class="bezel"></div> <div class="ticks" id="ticks"></div> <div class="numbers" id="numbers"></div><div class="hands">
<div class="hand hour"><div class="shaft"></div></div>
<div class="hand minute"><div class="shaft"></div></div>
<div class="hand second"><div class="shaft"></div></div>
</div>
<div class="cap-outer"></div>
<div class="cap-inner"></div>
<div class="brand">Chrono</div>
<div class="glass"></div>
<div class="hands">
<div class="hand hour"><div class="shaft"></div></div>
<div class="hand minute"><div class="shaft"></div></div>
<div class="hand second"><div class="shaft"></div></div>
</div>
<div class="cap-outer"></div>
<div class="cap-inner"></div>
<div class="brand">Chrono</div>
<div class="glass"></div>