:root { --text: #2B3044; --line: #BBC1E1; --line-active: #275EFE; } p { font-size: 18px; margin: 0; color: var(--text); } p a { display: inline-block; position: relative; text-decoration: none; color: inherit; margin: 0 var(--spacing, 0px); -webkit-transition: margin .25s; transition: margin .25s; } p a svg { width: 76px; height: 40px; position: absolute; left: 50%; bottom: 0; -webkit-transform: translate(-50%, 7px) translateZ(0); transform: translate(-50%, 7px) translateZ(0); fill: none; stroke: var(--stroke, var(--line)); stroke-linecap: round; stroke-width: 2px; stroke-dasharray: var(--offset, 69px) 278px; stroke-dashoffset: 361px; -webkit-transition: stroke 0.25s ease var(--stroke-delay, 0s), stroke-dasharray 0.35s; transition: stroke 0.25s ease var(--stroke-delay, 0s), stroke-dasharray 0.35s; } p a:hover { --spacing: 4px; --stroke: var(--line-active); --stroke-delay: .1s; --offset: 180px; } html { box-sizing: border-box; -webkit-font-smoothing: antialiased; } * { box-sizing: inherit; } *:before, *:after { box-sizing: inherit; } body { min-height: 100vh; display: -webkit-box; display: flex; font-family: 'Inter', Arial; -webkit-box-pack: center; justify-content: center; -webkit-box-align: center; align-items: center; background: #F6F8FF; } body .dribbble { position: fixed; display: block; right: 20px; bottom: 20px; } body .dribbble img { display: block; height: 28px; } body .twitter { position: fixed; display: block; right: 64px; bottom: 14px; } body .twitter svg { width: 32px; height: 32px; fill: #1da1f2; }