+
+
+
+
+
+
+
+
+
diff --git a/Punduction/overlays/ExampleOverlay/caster2.html b/Punduction/overlays/ExampleOverlay/caster2.html
new file mode 100644
index 0000000..b91e648
--- /dev/null
+++ b/Punduction/overlays/ExampleOverlay/caster2.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Punduction/overlays/ExampleOverlay/fonts/ACES04.ttf b/Punduction/overlays/ExampleOverlay/fonts/ACES04.ttf
new file mode 100644
index 0000000..8eec445
Binary files /dev/null and b/Punduction/overlays/ExampleOverlay/fonts/ACES04.ttf differ
diff --git a/Punduction/overlays/ExampleOverlay/fonts/ACES04_Heavy.ttf b/Punduction/overlays/ExampleOverlay/fonts/ACES04_Heavy.ttf
new file mode 100644
index 0000000..dcdfbf4
Binary files /dev/null and b/Punduction/overlays/ExampleOverlay/fonts/ACES04_Heavy.ttf differ
diff --git a/Punduction/overlays/ExampleOverlay/fonts/VINSDOJO.TTF b/Punduction/overlays/ExampleOverlay/fonts/VINSDOJO.TTF
new file mode 100644
index 0000000..4f5aed1
Binary files /dev/null and b/Punduction/overlays/ExampleOverlay/fonts/VINSDOJO.TTF differ
diff --git a/Punduction/overlays/ExampleOverlay/fonts/kimberly.ttf b/Punduction/overlays/ExampleOverlay/fonts/kimberly.ttf
new file mode 100644
index 0000000..09a597a
Binary files /dev/null and b/Punduction/overlays/ExampleOverlay/fonts/kimberly.ttf differ
diff --git a/Punduction/overlays/ExampleOverlay/layout/namebar_bg.png b/Punduction/overlays/ExampleOverlay/layout/namebar_bg.png
new file mode 100644
index 0000000..40456c7
Binary files /dev/null and b/Punduction/overlays/ExampleOverlay/layout/namebar_bg.png differ
diff --git a/Punduction/overlays/ExampleOverlay/layout/namebar_bg_flip.png b/Punduction/overlays/ExampleOverlay/layout/namebar_bg_flip.png
new file mode 100644
index 0000000..986597e
Binary files /dev/null and b/Punduction/overlays/ExampleOverlay/layout/namebar_bg_flip.png differ
diff --git a/Punduction/overlays/ExampleOverlay/layout/namebar_plain.png b/Punduction/overlays/ExampleOverlay/layout/namebar_plain.png
new file mode 100644
index 0000000..6723ec0
Binary files /dev/null and b/Punduction/overlays/ExampleOverlay/layout/namebar_plain.png differ
diff --git a/Punduction/overlays/ExampleOverlay/layout/twitch.png b/Punduction/overlays/ExampleOverlay/layout/twitch.png
new file mode 100644
index 0000000..4b304ae
Binary files /dev/null and b/Punduction/overlays/ExampleOverlay/layout/twitch.png differ
diff --git a/Punduction/overlays/ExampleOverlay/layout/twitter.png b/Punduction/overlays/ExampleOverlay/layout/twitter.png
new file mode 100644
index 0000000..7290797
Binary files /dev/null and b/Punduction/overlays/ExampleOverlay/layout/twitter.png differ
diff --git a/Punduction/overlays/ExampleOverlay/playerInfo.html b/Punduction/overlays/ExampleOverlay/playerInfo.html
new file mode 100644
index 0000000..6cf5016
--- /dev/null
+++ b/Punduction/overlays/ExampleOverlay/playerInfo.html
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Average Placement
+
+
+
+
+
+
+ Recent Placements
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Average Placement
+
+
+
+
+
+ Recent Placements
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Head to Head Record
+
+
+
+
+
+ Head to Head Winrate
+
+
+
+
+
+
+
+
+
+
diff --git a/Punduction/overlays/ExampleOverlay/players.html b/Punduction/overlays/ExampleOverlay/players.html
new file mode 100644
index 0000000..27c1207
--- /dev/null
+++ b/Punduction/overlays/ExampleOverlay/players.html
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Punduction/overlays/ExampleOverlay/read.js b/Punduction/overlays/ExampleOverlay/read.js
new file mode 100644
index 0000000..6fc62a9
--- /dev/null
+++ b/Punduction/overlays/ExampleOverlay/read.js
@@ -0,0 +1,192 @@
+// Read JSON file
+var xobj = new XMLHttpRequest();
+xobj.overrideMimeType("application/json");
+xobj.open("GET", "../../output/outputObject.json", true);
+xobj.onreadystatechange = function() {
+ if (this.readyState == 4 && this.status == 200) {
+ processJson(this);
+
+ }
+};
+xobj.send();
+
+
+function processJson(jsonRequest) {
+
+ var teamBasePath = "../../assets/teams/";
+ var flagBasePath = "../../assets/flags/";
+ var characterImagePath = "../../assets/characterImages/";
+ var json = JSON.parse(jsonRequest.responseText);
+
+ var player1="", player2="";
+ var p1score="", p2score="";
+ var p1logo="", p2logo="";
+ var p1team="", p2team="";
+ var p1country="", p2country="";
+ var p1image="", p2image="";
+ var p1twitter= "", p2twitter= "";
+ var p1twitch= "", p2twitch= "";
+ var caster1="", caster2="", caster3="", caster4="";
+ var casterTwitter1="", casterTwitter2="", casterTwitter3="", casterTwitter4="";
+ var round="", bestof="";
+
+ var p1averagePlacement="", p1placement1="", p1placement2="", p1placement3="", p1placement4="", p1placement5="";
+ var p2averagePlacement="", p2placement1="", p2placement2="", p2placement3="", p2placement4="", p2placement5="";
+ var h2hP1SetWins = "", h2hP2SetWins = "";
+ var h2hP1SetWinRate = "", h2hP2SetWinRate = "";
+
+
+ //Player1
+ player1 = json["player1"]["name"];
+ p1logo = teamBasePath + json["player1"]["team"];
+ p1team = json["player1"]["prefix"];
+ p1country = "background: url(" + flagBasePath + json["player1"]["country"] + ");";
+ p1score = json["player1"]["score"];
+ p1image = "background-image: url(" + characterImagePath + json["player1"]["image"] + ");";
+ p1twitter = json["player1"]["twitter"];
+ p1twitch = json["player1"]["twitch"];
+
+ //RecentPlacementPlayer1
+ p1averagePlacement = json["placement1"]["AveragePlacement"];
+ p1placement1 = json["placement1"]["RecentPlacement1"];
+ p1placement2 = json["placement1"]["RecentPlacement2"];
+ p1placement3 = json["placement1"]["RecentPlacement3"];
+ p1placement4 = json["placement1"]["RecentPlacement4"];
+ p1placement5 = json["placement1"]["RecentPlacement5"];
+
+ //Player2
+ player2 = json["player2"]["name"];
+ p2logo = teamBasePath + json["player2"]["team"];
+ p2team = json["player2"]["prefix"];
+ p2country = "background: url(" + flagBasePath + json["player2"]["country"] + ");";
+ p2score = json["player2"]["score"];
+ p2image = "background-image: url(" + characterImagePath + json["player2"]["image"] + ");";
+ p2twitter = json["player2"]["twitter"];
+ p2twitch = json["player2"]["twitch"];
+ //RecentPlacementPlayer2
+ p2averagePlacement = json["placement2"]["AveragePlacement"];
+ p2placement1 = json["placement2"]["RecentPlacement1"];
+ p2placement2 = json["placement2"]["RecentPlacement2"];
+ p2placement3 = json["placement2"]["RecentPlacement3"];
+ p2placement4 = json["placement2"]["RecentPlacement4"];
+ p2placement5 = json["placement2"]["RecentPlacement5"];
+
+ //Casters
+ caster1 = json["commentator1"]["name"];
+ casterTwitter1 = json["commentator1"]["twitter"];
+ caster2 = json["commentator2"]["name"];
+ casterTwitter2 = json["commentator2"]["twitter"];
+ caster3 = json["commentator3"]["name"];
+ casterTwitter3 = json["commentator3"]["twitter"];
+ caster4 = json["commentator4"]["name"];
+ casterTwitter4 = json["commentator4"]["twitter"];
+
+ //MatchInfo
+ round = json["match"]["round"];
+ bestof = json["match"]["firstTo"];
+
+ //H2H
+ p1SetWins = json["h2h"]["p1SetWins"];
+ p2SetWins = json["h2h"]["p2SetWins"];
+ h2hP1SetWinRate = json["h2h"]["p1SetWinRate"];
+ h2hP2SetWinRate = json["h2h"]["p2SetWinRate"];
+
+ switch (n) {
+ case 0:
+ document.getElementById("player1").innerHTML = player1;
+ document.getElementById("p1team").innerHTML = p1team;
+ document.getElementById("p1logo").src = p1logo;
+ break;
+ case 1:
+ document.getElementById("player2").innerHTML = player2;
+ document.getElementById("p2team").innerHTML = p2team;
+ document.getElementById("p2logo").src = p2logo;
+ break;
+ case 2:
+ document.getElementById("caster1").innerHTML = caster1;
+ document.getElementById("twitter1").innerHTML = casterTwitter1;
+ break;
+ case 3:
+ document.getElementById("caster2").innerHTML = caster2;
+ document.getElementById("twitter2").innerHTML = casterTwitter2;
+ break;
+ case 10:
+ document.getElementById("caster3").innerHTML = caster3;
+ document.getElementById("twitter3").innerHTML = casterTwitter3;
+ break;
+ case 4:
+ document.getElementById("p1score").innerHTML = p1score;
+ break;
+ case 5:
+ document.getElementById("p2score").innerHTML = p2score;
+ break;
+ case 6:
+ document.getElementById("round").innerHTML = round;
+ document.getElementById("bestof").innerHTML = bestof;
+ break;
+ case 7:
+ document.getElementById("player1").innerHTML = player1;
+ document.getElementById("player2").innerHTML = player2;
+ document.getElementById("p1team").innerHTML = p1team;
+ document.getElementById("p2team").innerHTML = p2team;
+ document.getElementById("p1score").innerHTML = p1score;
+ document.getElementById("p2score").innerHTML = p2score;
+ break;
+ case 8:
+ document.getElementById("player1").innerHTML = player1;
+ document.getElementById("player2").innerHTML = player2;
+ document.getElementById("p1team").innerHTML = p1team;
+ document.getElementById("p2team").innerHTML = p2team;
+ document.getElementById("p1country").style = p1country;
+ document.getElementById("p2country").style = p2country;
+ document.getElementById("p1score").innerHTML = p1score;
+ document.getElementById("p2score").innerHTML = p2score;
+ document.getElementById("p1logo").src = p1logo;
+ document.getElementById("p2logo").src = p2logo;
+ break;
+ case 9:
+ document.getElementById("mText1").innerHTML = mText1;
+ document.getElementById("mText2").innerHTML = mText2;
+ document.getElementById("mText3").innerHTML = mText3;
+ document.getElementById("mScore1").innerHTML = mScore1;
+ document.getElementById("mScore2").innerHTML = mScore2;
+ document.getElementById("mScore3").innerHTML = mScore3;
+ break;
+ case 11:
+ document.getElementById("player1").innerHTML = player1;
+ document.getElementById("player2").innerHTML = player2;
+ document.getElementById("p1team").innerHTML = p1team;
+ document.getElementById("p2team").innerHTML = p2team;
+ document.getElementById("p1twitter").innerHTML = p1twitter;
+ document.getElementById("p2twitter").innerHTML = p2twitter;
+ document.getElementById("p1twitch").innerHTML = p1twitch;
+ document.getElementById("p2twitch").innerHTML = p2twitch;
+ document.getElementById("p1image").style = p1image;
+ document.getElementById("p2image").style = p2image;
+ document.getElementById("p1averagePlacement").innerHTML = p1averagePlacement;
+ document.getElementById("p2averagePlacement").innerHTML = p2averagePlacement;
+ document.getElementById("p1placement1").innerHTML = p1placement1;
+ document.getElementById("p1placement2").innerHTML = p1placement2;
+ document.getElementById("p1placement3").innerHTML = p1placement3;
+ document.getElementById("p1placement4").innerHTML = p1placement4;
+ document.getElementById("p1placement5").innerHTML = p1placement5;
+ document.getElementById("p2placement1").innerHTML = p2placement1;
+ document.getElementById("p2placement2").innerHTML = p2placement2;
+ document.getElementById("p2placement3").innerHTML = p2placement3;
+ document.getElementById("p2placement4").innerHTML = p2placement4;
+ document.getElementById("p2placement5").innerHTML = p2placement5;
+ document.getElementById("p2placement4").innerHTML = p2placement4;
+ document.getElementById("p2placement5").innerHTML = p2placement5;
+ document.getElementById("p1SetWins").innerHTML = p1SetWins;
+ document.getElementById("p2SetWins").innerHTML = p2SetWins;
+ document.getElementById("h2hP1SetWinRate").innerHTML = h2hP1SetWinRate;
+ document.getElementById("h2hP2SetWinRate").innerHTML = h2hP2SetWinRate;
+ break;
+ case 12:
+ document.getElementById("player1").innerHTML = player1;
+ document.getElementById("player2").innerHTML = player2;
+ break;
+ default:
+ break;
+ }
+}
diff --git a/Punduction/overlays/ExampleOverlay/round.html b/Punduction/overlays/ExampleOverlay/round.html
new file mode 100644
index 0000000..0a74820
--- /dev/null
+++ b/Punduction/overlays/ExampleOverlay/round.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Punduction/overlays/ExampleOverlay/style-game.css b/Punduction/overlays/ExampleOverlay/style-game.css
new file mode 100644
index 0000000..a412560
--- /dev/null
+++ b/Punduction/overlays/ExampleOverlay/style-game.css
@@ -0,0 +1,428 @@
+:root {
+ --blue: linear-gradient(to bottom, #3fb4bf, #bafafc, #28abb3, #b7f7fb, #1ca8aa);
+ --gold: linear-gradient(to bottom, #BF953F, #FCF6BA, #B38728, #FBF5B7, #AA771C);
+ --silver: linear-gradient(to bottom, #c4c4c4, #ffffff, #b4b4b4, #ffffff, #afafaf);
+ --black: linear-gradient(to bottom, #181818, #4b4b4b, #1d1d1d, #515151, #1a1a1a);
+ --red: linear-gradient(to bottom, #bf3f3f, #fcbaba, #b32828, #fbb7b7, #aa1c1c);
+ --yellow: linear-gradient(to right,#eab600,#eab600);
+ --green: linear-gradient(to right,#04a9f5,#00f473);
+ --aceGreen: linear-gradient(to bottom, #299a39, #53ea5a, #56c16d, #75ff7b);
+ --orange: linear-gradient(to bottom, #feaf04, #ffcb5a, #feaf04, #ffcb5a, #d99502);
+
+ --separatorGradient: linear-gradient(to bottom, #BF953F, #FCF6BA, #B38728, #FBF5B7, #AA771C);
+}
+
+.container {
+ display: inline-flex;
+ position: absolute;
+ }
+
+.shape {
+ width: 525px;
+ height: 45px;
+ margin: 0px;
+ background: linear-gradient(rgba(72,72,72,1),rgba(35,35,35,0.7));
+ background: url('layout/namebar_bg.png');
+ background-size: 525px 45px;
+ overflow: hidden;
+ position: relative;
+
+ border-style: solid;
+ border-width: 0 10px 0 10px;
+ border-image: var(--silver);
+ border-image-slice: 1;
+
+ animation-name: namebar;
+ animation-duration: 1.5s;
+
+ display: inline-flex;
+ justify-content: flex-end;
+
+
+ /* box-shadow: inset 0px 0px 10px rgba(0,0,0,0.7); */
+ /* box-shadow: 0 8px 8px -10px #000; */
+}
+
+.shapeL {
+ background: url('layout/namebar_bg.png');
+ background-size: 525px 45px;
+}
+
+.shapeR {
+ background: url('layout/namebar_bg_flip.png');
+ background-size: 525px 45px;
+}
+
+.base {
+ margin: 0px;
+ overflow: hidden;
+ position: relative;
+ display: flexbox;
+ justify-content: flex-end;
+
+ border-style: solid;
+ border-width: 0 10px 0 10px;
+ border-image: var(--silver);
+ border-image-slice: 1;
+ box-shadow: inset 0px 0px 10px rgba(0,0,0,0.7);
+}
+.name {
+ width: 300px;
+ height: 45px;
+ background: linear-gradient(rgba(72,72,72,1),rgba(35,35,35,0.7));
+ background: url('layout/namebar_plain.png');
+ background-size: 525px 45px;
+
+ animation-name: caster;
+ animation-duration: 1.5s;
+}
+.twitter {
+ width: 225px;
+ height: 35px;
+ margin-left: 111px;
+ background: linear-gradient(rgba(14, 14, 14, 1),rgba(14, 14, 14, 0.7));
+ /*background: var(--silver); */
+ /*background: url('layout/namebar_plain.png'); */
+ /*background-size: 525px 35px; */
+
+ animation-name: twitter;
+ animation-duration: 1.5s;
+}
+.round {
+ margin-left: 10px;
+ width: 250px;
+ height: 45px;
+ position: absolute;
+ transform: skew(-35deg);
+ border-width: 0 10px 0 0;
+ animation-name: round;
+ animation-duration: 1.5s;
+ background: url('layout/namebar_plain.png');
+ /* background: linear-gradient(#04070a, #1c262d); */
+ clip-path: polygon(10px 0, 45px 45px, 260px 45px, 260px 0);
+}
+.round-left {
+ transform: skew(35deg);
+ border-width: 0 0 0 10px;
+ justify-content: flex-start;
+ clip-path: polygon(0 0, 0 45px, 100px 45px, 100px 0);
+}
+.extensionL {
+ z-index: 1;
+ width: 60px;
+ border-image: var(--silver);
+ border-image-slice: 1;
+ animation-name: extension;
+ animation-duration: 3s;
+ background: url('layout/namebar_plain.png');
+ /* background: linear-gradient(#1c262d, #04070a); */
+ background-position: center;
+ position: absolute;
+}
+.extensionR {
+ z-index: 1;
+ width: 60px;
+ border-image: var(--silver);
+ border-image-slice: 1;
+ animation-name: extension;
+ animation-duration: 3s;
+ background: url('layout/namebar_plain.png');
+ /* background: linear-gradient(#1c262d, #04070a); */
+ background-position: center;
+ position: absolute;
+}
+
+.type {
+ font-family: 'Kimberly', sans-serif;
+ font-size: 26px;
+ font-weight: 700;
+ text-transform: uppercase;
+ letter-spacing: 3px;
+
+ display: inline-flex;
+
+ width: 430px;
+ height: 100%;
+ white-space: nowrap;
+
+ justify-content: center;
+ align-items: center;
+
+
+ color: rgba(255, 255, 255, 0.8);
+}
+
+
+
+.name-type {
+ font-family: 'Kimberly', sans-serif;
+ font-size: 26px;
+ font-weight: 700;
+ letter-spacing: 1px;
+
+ display: inline-flex;
+
+ width: 300px;
+ height: 45px;
+ white-space: nowrap;
+
+ justify-content: center;
+ align-items: center;
+ color: rgba(255, 255, 255, 1);
+}
+.twitter-type {
+ font-family: 'Kimberly', sans-serif;
+ font-size: 16px;
+ font-weight: 400;
+ letter-spacing: 1px;
+
+ display: inline-flex;
+
+ width: 225px;
+ height: 35px;
+ white-space: nowrap;
+
+ justify-content: center;
+ align-items: center;
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.small {
+ font-size: 18px;
+ font-weight: 700;
+ margin-left: 10px;
+}
+.large {
+ font-family: 'Kimberly', sans-serif;
+ font-size: 28px;
+ font-weight: 700;
+ width: 60px;
+ color: rgba(255, 255, 255, 1);
+}
+
+.team {
+ /* background: var(--yellow); */
+ padding-right: 10px;
+}
+
+.gradient {
+ background: linear-gradient(90deg, rgba(212,175,55,1) 0%, rgba(236,154,21,1) 50%, rgba(212,175,55,1) 100%);
+ background-size: 400% 400%;
+ animation: gradient 20s ease infinite;
+ background-clip: padding-box;
+-webkit-background-clip: text;
+-webkit-text-fill-color: transparent;
+}
+
+@keyframes gradient {
+ 0% {
+ background-position: 0% 50%;
+ }
+ 50% {
+ background-position: 100% 50%;
+ }
+ 100% {
+ background-position: 0% 50%;
+ }
+}
+
+.logo {
+ display: inline-flex;
+ --width: 120px;
+ width: var(--width);
+ --height: 45px;
+ height: var(--height);
+
+ justify-content: center;
+ align-items: center;
+ color: #fff;
+ clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
+ -webkit-clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
+
+ /*background: linear-gradient(#1c262d, #04070a);*/
+ background-size: 120px 45px;
+ box-shadow: inset 0px 0px 10px #000;
+
+ line-height:1em;
+}
+
+.logoR {
+ background-size: 120px 45px;
+}
+
+.image {
+ max-width: calc(1.1*var(--width));
+ max-height: calc(0.7*var(--height));
+}
+
+.flag {
+ width: calc(1.20*var(--width));
+ height: var(--height);
+ box-shadow: inset 0px 0px 10px #000;
+ background-size: 100% 100% !important ;
+ position: absolute;
+}
+.score {
+ width: 125px;
+ height: 75px;
+ margin: 0px;
+
+ animation-name: score;
+ animation-duration: 1.5s;
+ background: linear-gradient(rgba(72,72,72,0.9),rgba(35,35,35,0.9));
+}
+
+
+.flex {
+ margin-left: 10px;
+ justify-content: flex-start;
+}
+.fix {
+ position: absolute;
+ right: 0;
+ margin-right: 10px;
+}
+
+.right {
+ transform: skew(35deg);
+}
+
+.left {
+ transform: skew(-35deg);
+}
+
+.first {
+ position: absolute;
+ height: 45px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ animation: first 20s 0s infinite;
+}
+.second {
+ position: absolute;
+ animation: second 20s 0s infinite;
+}
+@font-face {
+ font-family: Kimberly;
+ src: url(../../assets/fonts/Kimberly.ttf);
+}
+.top3 {
+ text-transform: uppercase;
+ font-family: 'Kimberly', sans-serif;
+ font-size: 84px;
+ font-weight: 700;
+ color: rgba(255, 255, 255, 1);
+ padding: 50px;
+ margin: 0;
+}
+
+@keyframes namebar {
+ 0%, 25% {
+ width: 0px;
+ height: 0px;
+ }
+ 50% {
+ width: 0px;
+ height: 45px;
+ }
+ 100% {
+ width: 525px;
+ height: 45px;
+ }
+}
+@keyframes caster {
+ 0%, 25% {
+ width: 0px;
+ height: 0px;
+ }
+ 50% {
+ width: 0px;
+ height: 45px;
+ }
+ 100% {
+ width: 300px;
+ height: 45px;
+ }
+}
+@keyframes twitter {
+ 0%, 25% {
+ width: 0px;
+ height: 0px;
+ }
+ 50% {
+ width: 0px;
+ height: 35px;
+ }
+ 100% {
+ width: 225px;
+ height: 35px;
+ }
+}
+ @keyframes round {
+ 0%, 50% {
+ height: 0px;
+ }
+ 100% {
+ height: 45px;
+ }
+ }
+
+ @keyframes extension {
+ 0%, 25% {
+ width: 0px;
+ height: 0px;
+ }
+ 50% {
+ width: 0px;
+ height: 45px;
+ }
+ 75%, 100% {
+ width: 60px;
+ height: 45px;
+ }
+ }
+
+@keyframes score {
+ 0%, 25% {
+ width: 0px;
+ height: 0px;
+ }
+ 50% {
+ width: 0px;
+ height: 75px;
+ }
+ 100% {
+ width: 125px;
+ height: 75px;
+ }
+}
+
+
+
+@keyframes first {
+ 0%, 100% {
+ margin-top: -100px;
+ }
+ 3%, 47% {
+ margin-top: 0;
+ }
+ 50% {
+ margin-top: -100px;
+ }
+}
+
+@keyframes second {
+ 0%, 50%, 95%, 100% {
+ margin-top: 0;
+ }
+ 3% {
+ margin-top: 100px;
+ }
+ 47% {
+ margin-top: 100px;
+ }
+ }
+
+
+
\ No newline at end of file
diff --git a/Punduction/overlays/ExampleOverlay/style-info.css b/Punduction/overlays/ExampleOverlay/style-info.css
new file mode 100644
index 0000000..4d86048
--- /dev/null
+++ b/Punduction/overlays/ExampleOverlay/style-info.css
@@ -0,0 +1,348 @@
+html,
+body {
+ font-family: 'PT Sans Narrow', sans-serif;
+ color: #eee;
+}
+
+.grid-container {
+ height: 100%;
+ margin: 0;
+ animation: slide-down 1s;
+}
+
+.grid-container {
+ display: grid;
+ grid-template-columns: 3fr 2fr 3fr;
+ grid-template-rows: 1fr 5fr 1fr;
+ height: 100vh;
+ gap: 1px 1px;
+ grid-template-areas: '. . .' 'Left-side Center Right-side' 'Left-info Center Right-info';
+}
+
+.Left-side {
+ grid-area: Left-side;
+ background: linear-gradient(
+ rgba(0, 0, 0, 0),
+ rgba(0, 0, 0, 0),
+ rgba(29, 161, 242, 1)
+ );
+ background-size: 200% 200%;
+ margin: 15px;
+ animation: background 1s ease forwards;
+ animation-delay: 0s;
+}
+
+.Right-side {
+ grid-area: Right-side;
+ background-image: linear-gradient(
+ rgba(0, 0, 0, 0),
+ rgba(0, 0, 0, 0),
+ rgba(255, 5, 80, 1)
+ );
+ background-size: 200% 200%;
+ margin: 15px;
+ animation: background 1s ease forwards;
+ animation-delay: 0s;
+}
+
+.Left-info {
+ grid-area: Left-info;
+ margin-top: 30vh;
+}
+
+.Right-info {
+ grid-area: Right-info;
+ margin-top: 30vh;
+}
+
+.Center {
+ grid-area: Center;
+ margin-top: 30vh;
+}
+
+/* For presentation only, no need to copy the code below */
+/* .grid-container * {
+ border: 1px solid rgba(255, 0, 0, 0);
+ position: relative;
+} */
+
+/* .grid-container *:after {
+ content: attr(class);
+ position: absolute;
+ top: 0;
+ left: 0;
+} */
+
+.flex-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.box {
+ font-size: 1.5rem;
+ width: 50px;
+ height: 50px;
+ background: linear-gradient(rgba(15, 13, 22, 1), rgba(28, 23, 39, 0.8));
+ border-width: 0px 0px 5px 0px;
+ border-style: solid;
+ border-radius: 50px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin: 15px auto;
+ color: RGBA(238, 238, 238, 0);
+ opacity: 0;
+ animation: expand 1s forwards;
+ animation-delay: 1s;
+}
+
+.empty-box {
+ font-size: 2rem;
+ width: 90%;
+ height: 50px;
+ border-width: 1px;
+ border-style: solid;
+ border-color: rgba(255, 255, 255, 0.5);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin: 30px auto;
+ opacity: 0;
+ animation: expand 1s forwards;
+ animation-delay: 2.5s;
+}
+
+.icon {
+ height: 35px;
+ margin: 0 20px 0 50px;
+}
+
+.blue {
+ border-color: rgb(29, 161, 242);
+}
+
+.red {
+ border-color: rgba(255, 5, 80);
+}
+
+.red-text {
+ color: rgba(255, 5, 80);
+ margin: 0 10px;
+}
+.blue-text {
+ color: rgb(29, 161, 242);
+ margin: 0 10px;
+}
+
+.title {
+ font-size: 2rem;
+ text-transform: uppercase;
+}
+
+.large-text {
+ font-size: 2rem;
+ margin-bottom: 20px;
+}
+
+.tilt-right {
+ transform: skew(20deg);
+}
+.tilt-left {
+ transform: skew(-20deg);
+ text-overflow: clip;
+}
+
+.shadow {
+ text-shadow: 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1),
+ 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.7),
+ 0 5px 10px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.7),
+ 0 20px 20px rgba(0, 0, 0, 0.15);
+ opacity: 0;
+ animation: fade 1s forwards;
+ animation-delay: 1s;
+}
+.red-label {
+ background: linear-gradient(rgb(230, 4, 72), rgb(153, 4, 48));
+ padding: 5px 10px 5px 10px;
+ text-transform: uppercase;
+ white-space: nowrap;
+ opacity: 0;
+ animation: expand-light 0.6s forwards;
+ animation-delay: 2s;
+}
+
+.blue-label {
+ background: linear-gradient(rgb(16, 148, 230), rgb(4, 101, 161));
+ padding: 5px 10px 5px 10px;
+ text-transform: uppercase;
+ white-space: nowrap;
+ opacity: 0;
+ animation: expand-light 0.6s forwards;
+ animation-delay: 2s;
+}
+.stat {
+ background: #eee;
+ color: rgba(15, 13, 22, 1);
+ max-width: 50%;
+ white-space: nowrap;
+ padding: 5px 15px 5px 15px;
+ opacity: 0;
+ animation: expand-dark 0.6s forwards;
+ animation-delay: 2s;
+}
+
+.red-team {
+ background: linear-gradient(rgb(230, 4, 72), rgb(153, 4, 48));
+ padding: 5px 10px 5px 10px;
+ text-transform: uppercase;
+ opacity: 0;
+ animation: expand-light 0.6s forwards;
+ animation-delay: 0.5s;
+}
+
+.blue-team {
+ background: linear-gradient(rgb(16, 148, 230), rgb(4, 101, 161));
+ padding: 5px 10px 5px 10px;
+ text-transform: uppercase;
+ opacity: 0;
+ animation: expand-light 0.6s forwards;
+ animation-delay: 0.5s;
+}
+
+.name {
+ background: #eee;
+ color: rgba(15, 13, 22, 1);
+ padding: 5px 15px 5px 15px;
+ max-height: 50px;
+ opacity: 0;
+ animation: expand-dark 0.6s forwards;
+ animation-delay: 0.5s;
+ white-space: nowrap;
+}
+
+.image {
+ max-width: 300px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: relative;
+}
+
+.character {
+ background-repeat: no-repeat;
+ background-size: 100%;
+ background-position: 50% 10vh;
+ border-width: 0 0 5px 0;
+ border-color: rgba(28, 23, 39, 0.8);
+ border-style: solid;
+}
+
+.namebar {
+ width: 100%;
+ height: 100px;
+ background: rgba(0, 0, 0, 0.3);
+ border-left-width: 5px;
+ border-color: blue;
+}
+
+.animation-none {
+ animation: none;
+}
+
+@keyframes expand {
+ 0% {
+ opacity: 0;
+ width: 50px;
+ color: RGBA(238, 238, 238, 0);
+ border-radius: 50px;
+ }
+ 20% {
+ opacity: 1;
+ width: 50px;
+ color: RGBA(238, 238, 238, 0);
+ border-radius: 50px;
+ }
+ 60% {
+ width: 90%;
+ color: RGBA(238, 238, 238, 0);
+ border-radius: 0px;
+ }
+ 100% {
+ opacity: 1;
+ width: 90%;
+ color: RGBA(238, 238, 238, 1);
+ border-radius: 0px;
+ }
+}
+
+@keyframes slide-down {
+ 0% {
+ opacity: 0;
+ margin-top: -100px;
+ }
+ 100% {
+ opacity: 1;
+ margin-top: 0px;
+ }
+}
+
+@keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes expand-light {
+ 0% {
+ opacity: 0;
+ width: 0px;
+ color: RGBA(238, 238, 238, 0);
+ }
+ 50% {
+ opacity: 1;
+ color: RGBA(238, 238, 238, 0);
+ }
+ 75% {
+ opacity: 1;
+ color: RGBA(238, 238, 238, 1);
+ }
+ 100% {
+ opacity: 1;
+ width: 100%;
+ color: RGBA(238, 238, 238, 1);
+ }
+}
+
+@keyframes expand-dark {
+ 0% {
+ opacity: 0;
+ color: rgba(15, 13, 22, 0);
+ }
+ 50% {
+ opacity: 1;
+ color: rgba(15, 13, 22, 0);
+ }
+ 75% {
+ opacity: 1;
+ color: rgba(15, 13, 22, 1);
+ }
+ 100% {
+ opacity: 1;
+ color: rgba(15, 13, 22, 1);
+ }
+}
+@keyframes background {
+ 0% {
+ background-position: 0% 0%;
+ }
+ 50% {
+ background-position: 0% 0%;
+ }
+ 100% {
+ background-position: 0% 50%;
+ }
+}