/* Custom style for animate.css. Lines 1-17 moved to frontend/_animate.scss */
@keyframes bounce {
from, 20%, 53%, 80%, to {
animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
transform: translate3d(0,0,0);
}
40%, 43% {
animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
transform: translate3d(0, -30px, 0);
}
70% {
animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
transform: translate3d(0, -15px, 0);
}
90% {
transform: translate3d(0,-4px,0);
}
}
.bounce {
animation-name: bounce;
transform-origin: center bottom;
}
@keyframes flash {
from, 50%, to {
opacity: 1;
}
25%, 75% {
opacity: 0;
}
}
.flash {
animation-name: flash;
}
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes pulse {
from {
transform: scale3d(1, 1, 1);
}
50% {
transform: scale3d(1.05, 1.05, 1.05);
}
to {
transform: scale3d(1, 1, 1);
}
}
.pulse {
animation-name: pulse;
}
@keyframes rubberBand {
from {
transform: scale3d(1, 1, 1);
}
30% {
transform: scale3d(1.25, 0.75, 1);
}
40% {
transform: scale3d(0.75, 1.25, 1);
}
50% {
transform: scale3d(1.15, 0.85, 1);
}
65% {
transform: scale3d(.95, 1.05, 1);
}
75% {
transform: scale3d(1.05, .95, 1);
}
to {
transform: scale3d(1, 1, 1);
}
}
.rubberBand {
animation-name: rubberBand;
}
@keyframes shake {
from, to {
transform: translate3d(0, 0, 0);
}
10%, 30%, 50%, 70%, 90% {
transform: translate3d(-10px, 0, 0);
}
20%, 40%, 60%, 80% {
transform: translate3d(10px, 0, 0);
}
}
.shake {
animation-name: shake;
}
@keyframes headShake {
0% {
transform: translateX(0);
}
6.5% {
transform: translateX(-6px) rotateY(-9deg);
}
18.5% {
transform: translateX(5px) rotateY(7deg);
}
31.5% {
transform: translateX(-3px) rotateY(-5deg);
}
43.5% {
transform: translateX(2px) rotateY(3deg);
}
50% {
transform: translateX(0);
}
}
.headShake {
animation-timing-function: ease-in-out;
animation-name: headShake;
}
@keyframes swing {
20% {
transform: rotate3d(0, 0, 1, 15deg);
}
40% {
transform: rotate3d(0, 0, 1, -10deg);
}
60% {
transform: rotate3d(0, 0, 1, 5deg);
}
80% {
transform: rotate3d(0, 0, 1, -5deg);
}
to {
transform: rotate3d(0, 0, 1, 0deg);
}
}
.swing {
transform-origin: top center;
animation-name: swing;
}
@keyframes tada {
from {
transform: scale3d(1, 1, 1);
}
10%, 20% {
transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
}
30%, 50%, 70%, 90% {
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
}
40%, 60%, 80% {
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
}
to {
transform: scale3d(1, 1, 1);
}
}
.tada {
animation-name: tada;
}
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes wobble {
from {
transform: none;
}
15% {
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
}
30% {
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
}
45% {
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
}
60% {
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
}
75% {
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
}
to {
transform: none;
}
}
.wobble {
animation-name: wobble;
}
@keyframes jello {
from, 11.1%, to {
transform: none;
}
22.2% {
transform: skewX(-12.5deg) skewY(-12.5deg);
}
33.3% {
transform: skewX(6.25deg) skewY(6.25deg);
}
44.4% {
transform: skewX(-3.125deg) skewY(-3.125deg);
}
55.5% {
transform: skewX(1.5625deg) skewY(1.5625deg);
}
66.6% {
transform: skewX(-0.78125deg) skewY(-0.78125deg);
}
77.7% {
transform: skewX(0.390625deg) skewY(0.390625deg);
}
88.8% {
transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
}
}
.jello {
animation-name: jello;
transform-origin: center;
}
@keyframes bounceIn {
from, 20%, 40%, 60%, 80%, to {
animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
0% {
opacity: 0;
transform: scale3d(.3, .3, .3);
}
20% {
transform: scale3d(1.1, 1.1, 1.1);
}
40% {
transform: scale3d(.9, .9, .9);
}
60% {
opacity: 1;
transform: scale3d(1.03, 1.03, 1.03);
}
80% {
transform: scale3d(.97, .97, .97);
}
to {
opacity: 1;
transform: scale3d(1, 1, 1);
}
}
.bounceIn {
animation-name: bounceIn;
}
@keyframes bounceInDown {
from, 60%, 75%, 90%, to {
animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
0% {
opacity: 0;
transform: translate3d(0, -3000px, 0);
}
60% {
opacity: 1;
transform: translate3d(0, 25px, 0);
}
75% {
transform: translate3d(0, -10px, 0);
}
90% {
transform: translate3d(0, 5px, 0);
}
to {
transform: none;
}
}
.bounceInDown {
animation-name: bounceInDown;
}
@keyframes bounceInLeft {
from, 60%, 75%, 90%, to {
animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
0% {
opacity: 0;
transform: translate3d(-3000px, 0, 0);
}
60% {
opacity: 1;
transform: translate3d(25px, 0, 0);
}
75% {
transform: translate3d(-10px, 0, 0);
}
90% {
transform: translate3d(5px, 0, 0);
}
to {
transform: none;
}
}
.bounceInLeft {
animation-name: bounceInLeft;
}
@keyframes bounceInRight {
from, 60%, 75%, 90%, to {
animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
from {
opacity: 0;
transform: translate3d(3000px, 0, 0);
}
60% {
opacity: 1;
transform: translate3d(-25px, 0, 0);
}
75% {
transform: translate3d(10px, 0, 0);
}
90% {
transform: translate3d(-5px, 0, 0);
}
to {
transform: none;
}
}
.bounceInRight {
animation-name: bounceInRight;
}
@keyframes bounceInUp {
from, 60%, 75%, 90%, to {
animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
from {
opacity: 0;
transform: translate3d(0, 3000px, 0);
}
60% {
opacity: 1;
transform: translate3d(0, -20px, 0);
}
75% {
transform: translate3d(0, 10px, 0);
}
90% {
transform: translate3d(0, -5px, 0);
}
to {
transform: translate3d(0, 0, 0);
}
}
.bounceInUp {
animation-name: bounceInUp;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.fadeIn {
animation-name: fadeIn;
}
@keyframes fadeInDown {
from {
opacity: 0;
transform: translate3d(0, -100%, 0);
}
to {
opacity: 1;
transform: none;
}
}
.fadeInDown {
animation-name: fadeInDown;
}
@keyframes fadeInLeft {
from {
opacity: 0;
transform: translate3d(-100%, 0, 0);
}
to {
opacity: 1;
transform: none;
}
}
.fadeInLeft {
animation-name: fadeInLeft;
}
@keyframes fadeInRight {
from {
opacity: 0;
transform: translate3d(100%, 0, 0);
}
to {
opacity: 1;
transform: none;
}
}
.fadeInRight {
animation-name: fadeInRight;
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translate3d(0, 100%, 0);
}
to {
opacity: 1;
transform: none;
}
}
.fadeInUp {
animation-name: fadeInUp;
}
@keyframes lightSpeedIn {
from {
transform: translate3d(100%, 0, 0) skewX(-30deg);
opacity: 0;
}
60% {
transform: skewX(20deg);
opacity: 1;
}
80% {
transform: skewX(-5deg);
opacity: 1;
}
to {
transform: none;
opacity: 1;
}
}
.lightSpeedIn {
animation-name: lightSpeedIn;
animation-timing-function: ease-out;
}
@keyframes rotateIn {
from {
transform-origin: center;
transform: rotate3d(0, 0, 1, -200deg);
opacity: 0;
}
to {
transform-origin: center;
transform: none;
opacity: 1;
}
}
.rotateIn {
animation-name: rotateIn;
}
@keyframes rotateInDownLeft {
from {
transform-origin: left bottom;
transform: rotate3d(0, 0, 1, -45deg);
opacity: 0;
}
to {
transform-origin: left bottom;
transform: none;
opacity: 1;
}
}
.rotateInDownLeft {
animation-name: rotateInDownLeft;
}
@keyframes rotateInDownRight {
from {
transform-origin: right bottom;
transform: rotate3d(0, 0, 1, 45deg);
opacity: 0;
}
to {
transform-origin: right bottom;
transform: none;
opacity: 1;
}
}
.rotateInDownRight {
animation-name: rotateInDownRight;
}
@keyframes rotateInUpLeft {
from {
transform-origin: left bottom;
transform: rotate3d(0, 0, 1, 45deg);
opacity: 0;
}
to {
transform-origin: left bottom;
transform: none;
opacity: 1;
}
}
.rotateInUpLeft {
animation-name: rotateInUpLeft;
}
@keyframes rotateInUpRight {
from {
transform-origin: right bottom;
transform: rotate3d(0, 0, 1, -90deg);
opacity: 0;
}
to {
transform-origin: right bottom;
transform: none;
opacity: 1;
}
}
.rotateInUpRight {
animation-name: rotateInUpRight;
}
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes rollIn {
from {
opacity: 0;
transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
}
to {
opacity: 1;
transform: none;
}
}
.rollIn {
animation-name: rollIn;
}
@keyframes zoomIn {
from {
opacity: 0;
transform: scale3d(.3, .3, .3);
}
50% {
opacity: 1;
}
}
.zoomIn {
animation-name: zoomIn;
}
@keyframes zoomInDown {
from {
opacity: 0;
transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
}
60% {
opacity: 1;
transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
}
}
.zoomInDown {
animation-name: zoomInDown;
}
@keyframes zoomInLeft {
from {
opacity: 0;
transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
}
60% {
opacity: 1;
transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
}
}
.zoomInLeft {
animation-name: zoomInLeft;
}
@keyframes zoomInRight {
from {
opacity: 0;
transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
}
60% {
opacity: 1;
transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
}
}
.zoomInRight {
animation-name: zoomInRight;
}
@keyframes zoomInUp {
from {
opacity: 0;
transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
}
60% {
opacity: 1;
transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
}
}
.zoomInUp {
animation-name: zoomInUp;
}
@keyframes slideInDown {
from {
transform: translate3d(0, -100%, 0);
visibility: visible;
}
to {
transform: translate3d(0, 0, 0);
}
}
.slideInDown {
animation-name: slideInDown;
}
@keyframes slideInLeft {
from {
transform: translate3d(-100%, 0, 0);
visibility: visible;
}
to {
transform: translate3d(0, 0, 0);
}
}
.slideInLeft {
animation-name: slideInLeft;
}
@keyframes slideInRight {
from {
transform: translate3d(100%, 0, 0);
visibility: visible;
}
to {
transform: translate3d(0, 0, 0);
}
}
.slideInRight {
animation-name: slideInRight;
}
@keyframes slideInUp {
from {
transform: translate3d(0, 100%, 0);
visibility: visible;
}
to {
transform: translate3d(0, 0, 0);
}
}
.slideInUp {
animation-name: slideInUp;
}
{"content":[{"id":"8e94176","elType":"section","settings":{"content_width":{"unit":"px","size":740},"gap":"wider","custom_height":{"unit":"vh","size":100},"content_position":"middle","background_background":"video","background_video_link":"https:\/\/youtu.be\/DsYNaw4qoJw","background_overlay_background":"classic","background_overlay_color":"#000000","background_overlay_color_b":"#9d56c9","background_overlay_gradient_angle":{"unit":"deg","size":270},"padding":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":false},"background_overlay_opacity":{"unit":"px","size":0.29},"height":"min-height","custom_height_mobile":{"unit":"vh","size":100},"background_video_fallback":{"url":"https:\/\/library.elementor.com\/wp-content\/uploads\/2018\/05\/background-Fallback-404.1.jpg","id":8572}},"elements":[{"id":"6e18aaf6","elType":"column","settings":{"_column_size":100,"_inline_size":null,"padding_mobile":{"unit":"px","top":"15","right":"15","bottom":"15","left":"15","isLinked":true}},"elements":[{"id":"36333044","elType":"widget","settings":{"title":"404","header_size":"p","align":"center","title_color":"#ffffff","typography_typography":"custom","typography_font_size":{"unit":"px","size":249},"typography_font_weight":"bold","typography_font_size_tablet":{"unit":"px","size":200},"typography_font_size_mobile":{"unit":"px","size":160}},"elements":[],"widgetType":"heading"},{"id":"737f2c7b","elType":"widget","settings":{"title":"The page you were looking for couldn't be found","header_size":"h3","align":"center","title_color":"#ffffff","typography_typography":"custom","typography_font_size":{"unit":"px","size":39},"typography_font_weight":"300","typography_text_transform":"capitalize","typography_font_size_tablet":{"unit":"px","size":40},"typography_font_size_mobile":{"unit":"px","size":20},"typography_line_height_tablet":{"unit":"px","size":50},"typography_line_height_mobile":{"unit":"px","size":25}},"elements":[],"widgetType":"heading"},{"id":"7fe5f44","elType":"widget","settings":{"icon":"fa fa-font-awesome","primary_color":"#ffffff","_margin":{"unit":"px","top":"60","right":"0","bottom":"60","left":"0","isLinked":false},"size":{"unit":"px","size":60},"_margin_mobile":{"unit":"px","top":"25","right":"0","bottom":"25","left":"0","isLinked":false}},"elements":[],"widgetType":"icon"},{"id":"62b0497c","elType":"widget","settings":{"icon_list":[{"text":"Home Page","icon":"fa fa-angle-right","_id":"f9100b7","link":{"url":"","is_external":"","nofollow":""}},{"text":"Services","icon":"fa fa-angle-right","_id":"6e554ae","link":{"url":"","is_external":"","nofollow":""}},{"text":"About","icon":"fa fa-angle-right","_id":"0816417","link":{"url":"","is_external":"","nofollow":""}},{"text":"Blog","icon":"fa fa-angle-right","_id":"d8c317a","link":{"url":"","is_external":"","nofollow":""}},{"text":"Contact Us","icon":"fa fa-angle-right","_id":"123a835","link":{"url":"","is_external":"","nofollow":""}}],"space_between":{"unit":"px","size":13},"icon_color":"#ffffff","text_indent":{"unit":"px","size":10},"icon_typography_typography":"custom","icon_typography_font_size":{"unit":"px","size":16},"_margin":{"unit":"px","top":"30","right":"0","bottom":"0","left":"0","isLinked":false},"view":"inline","icon_align":"center","text_color":"#ffffff","icon_typography_font_weight":"500","icon_typography_text_transform":"uppercase","icon_typography_font_size_tablet":{"unit":"px","size":16},"icon_typography_font_size_mobile":{"unit":"px","size":14},"icon_typography_line_height_mobile":{"unit":"px","size":29}},"elements":[],"widgetType":"icon-list"}],"isInner":false}],"isInner":false}],"page_settings":[]}
The post Is the rise of mobile gaming really pulling viewers away from traditional esports tournaments? first appeared on DigiMarCon Latam- Digital Marketing, Media and Advertising Conference & Exhibition.
]]>It’s easy to assume that mobile titles are a side‑track to the high‑budget, console‑centric esports scene. In reality, the numbers from the UK’s mobile gaming market show that more than 48 % of gamers now play on their phones, and 27 % of those are also watching esports broadcasts on mobile devices. That shift is forcing organisers to rethink how they deliver content to a split audience.
During the 2023 UK League of Legends Championship, 34 % of the 1.2 million live viewers accessed the stream from a smartphone rather than a desktop. The average session length on mobile was 18 minutes, roughly half the 35‑minute average on PC. That means the audience is not only larger but also more fragmented across devices.
Broadcasters have introduced a “mobile‑first” overlay that reduces text clutter and highlights key statistics in a 2‑inch square. They also compress audio to 64 kbps, cutting file size by 30 % and enabling smoother playback on 3G networks. A pilot test in Manchester showed a 12 % drop in buffering incidents when the new overlay was used.
These figures suggest that mobile gaming is attracting a younger, more gender‑balanced, and more financially active audience. Sponsors are taking notice; brands that traditionally targeted male gamers are now investing in mobile‑specific ad slots.
One concrete limitation is the bandwidth requirement for high‑resolution streams. While a 4K broadcast on a desktop can run at 60 fps without issue, the same stream on a 4G connection often drops to 30 fps, breaking the viewer’s immersion. Organisers must now offer adaptive streaming that can switch between 720p and 480p on the fly, adding complexity to the production pipeline.
Beyond the numbers, the cultural impact is evident. In a recent community forum, 65 % of respondents said they discover new esports teams through mobile streaming apps rather than through traditional TV broadcasts. This has led to a more decentralized fan base, where local meet‑ups are often organized via Discord or WhatsApp rather than through official fan clubs.
While watching esports on a phone is convenient, many gamers also enjoy other forms of online entertainment during their downtime. For example, a casual session of a mobile puzzle game can be a quick break before diving into a longer streaming marathon. If you’re looking for a different kind of online experience, try the Magic Win casino, which offers a range of casino games that can be played right from your smartphone.
Developers are already partnering with mobile network operators to provide zero‑data streaming for select esports titles. In 2024, a pilot in Scotland will allow a 30‑minute match to stream without counting against data caps, potentially doubling the mobile viewership for that region. Meanwhile, esports leagues are experimenting with “split‑screen” broadcasts that let a single viewer watch two games simultaneously, a format that works best on larger tablets.
Mobile gaming is no longer a peripheral trend; it’s the main driver behind a new generation of esports audiences in the UK. The shift is measurable in device usage statistics, demographic changes, and the need for adaptive broadcast technology. Organisers who ignore mobile’s growing influence risk losing relevance, while those who adapt stand to capture a broader, more engaged fan base.
Over 48% of gamers now play on their phones, according to recent UK market data.
About 27% of mobile gamers also watch esports broadcasts on their phones.
Yes, many organizers are rethinking content delivery and creating mobile‑friendly streams to keep split audiences engaged.
It forces event planners to consider on‑site mobile streaming options to retain viewers who might switch platforms mid‑match.
The post Is the rise of mobile gaming really pulling viewers away from traditional esports tournaments? first appeared on DigiMarCon Latam- Digital Marketing, Media and Advertising Conference & Exhibition.
]]>