/*! Fitness Race Timer © 2026 Robin Wessels (robinwessels.com). All rights reserved. Copying, rebuilding or use for AI training is not permitted without written permission. */
.tc-race .tc-ic{flex:0 0 auto;display:block}.tc-race[hidden]{display:none}.tc-race-head{margin-bottom:14px;text-align:center}.tc-race-kicker{margin:0;font-size:.78rem;font-weight:800;font-style:italic;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.tc-race-head h2{margin:4px 0 2px;font-size:clamp(1.8rem,3.6vw,2.8rem);font-style:italic;text-transform:uppercase}.tc-race-sub{margin:0;color:var(--muted);font-size:.9rem}.tc-race-track{--gap: 22px;display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:4px;padding:0 4px 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tc-race-track::-webkit-scrollbar{display:none}.tc-race-track{cursor:grab}.tc-race-track.is-dragging{cursor:grabbing;scroll-snap-type:none;-webkit-user-select:none;user-select:none}.tc-race-track img{-webkit-user-drag:none}.tc-race-item{position:relative;flex:0 0 clamp(230px,24vw,300px);padding-top:62px;scroll-snap-align:start}.tc-race-item:before{content:"";position:absolute;left:50%;top:24px;width:1px;height:38px;background:#ffffff2e}.tc-race-item:after{content:"";position:absolute;top:24px;left:calc(var(--gap) / -2);right:calc(var(--gap) / -2);height:1px;background:#ffffff2e}.tc-race-item:first-child:after{left:50%}.tc-race-item:last-child:after{right:50%}.tc-race-run{position:absolute;z-index:1;top:6px;left:calc(var(--gap) / -2);transform:translate(-50%);display:flex;flex-direction:column;align-items:center;padding:5px 10px 4px;border-radius:8px;background:var(--accent);color:var(--on-accent);line-height:1;font-style:italic;white-space:nowrap}.tc-race-run b{font-size:.95rem;font-weight:900;text-transform:uppercase}.tc-race-run small{font-size:.56rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.tc-race-card{position:relative;display:block;width:100%;aspect-ratio:16 / 10;padding:0;overflow:hidden;cursor:pointer;text-align:left;background:var(--surface-2);color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:18px;transition:border-color .2s ease}.tc-race-card:hover,.tc-race-card:focus-visible{border-color:rgba(var(--accent-rgb),.6)}.tc-race-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%}.tc-race-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0000 35%,#000c)}.tc-race-title{position:absolute;z-index:1;left:16px;right:60px;bottom:14px;font-family:var(--font-display);font-size:1.35rem;font-style:italic;line-height:1.05;text-transform:uppercase}.tc-race-amt{position:absolute;z-index:1;left:12px;top:12px;padding:3px 9px;border-radius:999px;background:#0009;font-size:.72rem;font-weight:800}.tc-race-go{position:absolute;z-index:1;right:12px;bottom:12px;width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#00000073;border:1px solid rgba(255,255,255,.25)}.tc-race-go .tc-ic{width:16px;height:16px}.tc-race-nav{display:flex;justify-content:center;gap:10px;margin-top:16px}.tc-race-nav button{width:46px;height:46px;display:grid;place-items:center;border:0;border-radius:12px;background:var(--accent);color:var(--on-accent);cursor:pointer;transition:background .2s ease,color .2s ease}.tc-race-nav button:disabled{background:rgba(var(--accent-rgb),.16);color:#fff9;cursor:default}.tc-race-nav .tc-ic{width:18px;height:18px}html.race-pop-open,html.race-pop-open body{overflow:hidden}.race-pop{position:fixed;inset:0;z-index:1000000;display:flex;align-items:flex-start;justify-content:center;padding:clamp(16px,4vw,48px) 16px;overflow-y:auto;background:#000000d1;animation:rpFade .22s ease-out both}.race-pop-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:min(860px,100%);min-width:0;margin:auto 0;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:22px;color:#fff;animation:rpIn .34s cubic-bezier(.2,.8,.2,1) both}.race-pop-media{min-height:280px;overflow:hidden;background:var(--surface-2)}.race-pop-media img{display:block;width:100%;height:100%;object-fit:cover;animation:rpImg .7s cubic-bezier(.2,.8,.2,1) both}.race-pop-body{padding:clamp(18px,3vw,28px)}.race-pop-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.race-pop-head h2{margin:0;font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.4rem);font-style:italic;line-height:1.05;text-transform:uppercase}.race-pop-x{width:42px;height:42px;flex:0 0 auto;display:inline-grid;place-items:center;padding:0;cursor:pointer;border-radius:50%;border:2px solid rgba(255,255,255,.55);background:#00000040;color:#fff;transition:border-color .2s ease,background .2s ease}.race-pop-x:hover{border-color:#fff;background:#ffffff1a}.race-pop-body p{margin:0 0 14px;color:var(--muted);font-size:.95rem;line-height:1.6}.race-pop-body .race-pop-meta{margin:6px 0 14px;color:var(--accent);font-weight:800;font-size:.82rem}.race-pop-tip{padding:10px 12px;border:1px solid var(--line);border-radius:12px}.race-pop-tip b{color:#fff}.race-pop.is-out{pointer-events:none;animation:rpFadeOut .2s ease-in forwards}.race-pop.is-out .race-pop-panel{animation:rpOut .2s ease-in forwards}@keyframes rpFade{0%{opacity:0}}@keyframes rpFadeOut{to{opacity:0}}@keyframes rpIn{0%{opacity:0;transform:scale(.9) translateY(12px)}}@keyframes rpOut{to{opacity:0;transform:scale(.94) translateY(8px)}}@keyframes rpImg{0%{transform:scale(1.08)}}@media(max-width:680px){.race-pop-panel{grid-template-columns:minmax(0,1fr)}.race-pop-media{min-height:0;aspect-ratio:16 / 10}}@media(prefers-reduced-motion:reduce){.race-pop,.race-pop-panel,.race-pop-media img{animation:none!important}}
