:root{--mint: #f5fffa;--sky: #dce4f2;--charcoal: #333333;--gray: #a0a0a0;--teal: #006d77;--violet: #7209b7;--card: rgba(255, 255, 255, .86);--bar-h: 64px;font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--charcoal)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;background:linear-gradient(160deg,var(--sky),var(--mint))}.app{display:flex;flex-direction:column;height:100dvh}.stage{position:relative;flex:1;min-height:0}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.label,.hand,.bubble{position:absolute;left:0;top:0;will-change:transform}.label{translate:-50% 0;font-size:10px;font-weight:500;color:var(--gray);white-space:nowrap;transition:color .3s}.label[data-active="1"]{color:var(--charcoal);font-weight:700}.label.atlas{font-size:12px;font-weight:700;color:var(--violet);letter-spacing:.06em;text-transform:uppercase}.hand{margin-left:-9px;font-size:16px;opacity:0}.bubble{max-width:min(240px,70vw);translate:-50% -100%;padding:8px 10px;border-radius:12px;background:var(--card);border-left:3px solid var(--kind);box-shadow:0 6px 20px #3333331f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:pop .25s ease-out}.bubble .route{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--kind);margin-bottom:3px}.bubble .excerpt{font-size:12px;line-height:1.35}@keyframes pop{0%{opacity:0;scale:.92}}.bar{height:calc(var(--bar-h) + env(safe-area-inset-bottom));padding:0 16px env(safe-area-inset-bottom);display:flex;align-items:center;gap:12px;font-size:12px;font-weight:700;color:var(--teal)}.play{flex:none;width:36px;height:36px;border:0;border-radius:50%;background:var(--teal);display:grid;place-items:center;cursor:pointer}.play svg{width:14px;height:14px;fill:#fff}.track{position:relative;flex:1;height:36px;display:flex;align-items:center}.track i{position:absolute;top:6px;width:6px;height:6px;margin-left:-3px;border-radius:50%}.track input{width:100%;margin:0;accent-color:var(--teal)}.clock{font-variant-numeric:tabular-nums}.speed{color:var(--gray)}.live{display:flex;align-items:center;gap:6px;flex:1}.live i{width:8px;height:8px;border-radius:50%;background:#ff8c42;animation:blink 1.2s infinite}@keyframes blink{50%{opacity:.3}}
