@import "https://fonts.googleapis.com/css2?family=Roboto:wght@100..900&display=swap";
html,body{margin:0;padding:0;background:url(background.png);color:#000;font-family:"Roboto","Helvetica Neue",Arial,sans-serif;font-size:18px}
body{margin:20px 0}
.heading:after{content:"";display:block;clear:both}
h1.title{font-size:36px;font-weight:700;margin:0;display:block;float:left}
@-webkit-keyframes move-up {
0%{top:25px;opacity:1}
100%{top:-50px;opacity:0}
}
@-moz-keyframes move-up {
0%{top:25px;opacity:1}
100%{top:-50px;opacity:0}
}
@keyframes move-up {
0%{top:25px;opacity:1}
100%{top:-50px;opacity:0}
}
.scores-container{float:right;text-align:right}
.score-container,.best-container{position:relative;display:inline-block;background:#1c32adc9;padding:15px 25px;font-size:25px;height:25px;line-height:47px;font-weight:700;border-radius:3px;color:#fff;margin-top:8px;text-align:center}
.score-container:after,.best-container:after{position:absolute;width:100%;top:10px;left:0;text-transform:uppercase;font-size:13px;line-height:13px;text-align:center;color:#eee4da}
.score-container .score-addition,.best-container .score-addition{position:absolute;right:30px;color:red;font-size:25px;line-height:25px;font-weight:700;color:#776e65e6;z-index:100;-webkit-animation:move-up 600ms ease-in;-moz-animation:move-up 600ms ease-in;animation:move-up 600ms ease-in;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}
.score-container:after{content:"スコア"}
.best-container:after{content:"ベスト"}
p{margin-top:0;margin-bottom:10px;line-height:1.65}
a{color:#181818;font-weight:700;text-decoration:underline;cursor:pointer}
strong.important{text-transform:uppercase}
hr{border:none;border-bottom:1px solid #d8d4d0;margin-top:20px;margin-bottom:30px}
.container{width:500px;margin:0 auto}
@-webkit-keyframes fade-in {
0%{opacity:0}
100%{opacity:1}
}
@-moz-keyframes fade-in {
0%{opacity:0}
100%{opacity:1}
}
@keyframes fade-in {
0%{opacity:0}
100%{opacity:1}
}
.game-container{margin-top:20px;position:relative;padding:15px;cursor:default;-webkit-touch-callout:none;-ms-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-ms-touch-action:none;touch-action:none;background:#795548;border-radius:6px;width:500px;height:500px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
.game-container .game-message{display:none;position:absolute;top:0;right:0;bottom:0;left:0;background:#eee4da80;z-index:100;text-align:center;-webkit-animation:fade-in 800ms ease 1200ms;-moz-animation:fade-in 800ms ease 1200ms;animation:fade-in 800ms ease 1200ms;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}
.game-container .game-message p{font-size:60px;font-weight:700;height:60px;line-height:60px;margin-top:222px}
.game-container .game-message .lower{display:block;margin-top:59px}
.game-container .game-message a{display:inline-block;background:#8f7a66;border-radius:3px;padding:0 20px;text-decoration:none;color:#f9f6f2;height:40px;line-height:42px;margin-left:9px}
.game-container .game-message a.keep-playing-button{display:none}
.game-container .game-message.game-won{background:#edc22e80;color:#f9f6f2}
.game-container .game-message.game-won a.keep-playing-button{display:inline-block}
.game-container .game-message.game-won,.game-container .game-message.game-over{display:block}
.grid-container{position:absolute;z-index:1}
.grid-row{margin-bottom:15px}
.grid-row:last-child{margin-bottom:0}
.grid-row:after{content:"";display:block;clear:both}
.grid-cell{width:106.25px;height:106.25px;margin-right:15px;float:left;border-radius:3px;background:#eee4da59}
.grid-cell:last-child{margin-right:0}
.tile-container{position:absolute;z-index:2}
.tile,.tile .tile-inner{width:107px;height:107px;line-height:116.25px}
.tile.tile-position-1-1{-webkit-transform:translate(0px,0px);-moz-transform:translate(0px,0px);transform:translate(0px,0px)}
.tile.tile-position-1-2{-webkit-transform:translate(0px,121px);-moz-transform:translate(0px,121px);transform:translate(0px,121px)}
.tile.tile-position-1-3{-webkit-transform:translate(0px,242px);-moz-transform:translate(0px,242px);transform:translate(0px,242px)}
.tile.tile-position-1-4{-webkit-transform:translate(0px,363px);-moz-transform:translate(0px,363px);transform:translate(0px,363px)}
.tile.tile-position-2-1{-webkit-transform:translate(121px,0px);-moz-transform:translate(121px,0px);transform:translate(121px,0px)}
.tile.tile-position-2-2{-webkit-transform:translate(121px,121px);-moz-transform:translate(121px,121px);transform:translate(121px,121px)}
.tile.tile-position-2-3{-webkit-transform:translate(121px,242px);-moz-transform:translate(121px,242px);transform:translate(121px,242px)}
.tile.tile-position-2-4{-webkit-transform:translate(121px,363px);-moz-transform:translate(121px,363px);transform:translate(121px,363px)}
.tile.tile-position-3-1{-webkit-transform:translate(242px,0px);-moz-transform:translate(242px,0px);transform:translate(242px,0px)}
.tile.tile-position-3-2{-webkit-transform:translate(242px,121px);-moz-transform:translate(242px,121px);transform:translate(242px,121px)}
.tile.tile-position-3-3{-webkit-transform:translate(242px,242px);-moz-transform:translate(242px,242px);transform:translate(242px,242px)}
.tile.tile-position-3-4{-webkit-transform:translate(242px,363px);-moz-transform:translate(242px,363px);transform:translate(242px,363px)}
.tile.tile-position-4-1{-webkit-transform:translate(363px,0px);-moz-transform:translate(363px,0px);transform:translate(363px,0px)}
.tile.tile-position-4-2{-webkit-transform:translate(363px,121px);-moz-transform:translate(363px,121px);transform:translate(363px,121px)}
.tile.tile-position-4-3{-webkit-transform:translate(363px,242px);-moz-transform:translate(363px,242px);transform:translate(363px,242px)}
.tile.tile-position-4-4{-webkit-transform:translate(363px,363px);-moz-transform:translate(363px,363px);transform:translate(363px,363px)}
.tile{position:absolute;-webkit-transition:100ms ease-in-out;-moz-transition:100ms ease-in-out;transition:100ms ease-in-out;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;transition-property:transform}
.tile .tile-inner{border-radius:3px;background:#eee4da;text-align:center;font-weight:700;z-index:10;font-size:55px}
.tile.tile-2 .tile-inner{background:url(2.png);box-shadow:0 0 30px 10px #f3d77400 inset 0 0 0 1px #fff0}
.tile.tile-4 .tile-inner{background:url(4.png);box-shadow:0 0 30px 10px #f3d77400 inset 0 0 0 1px #fff0}
.tile.tile-8 .tile-inner{color:#f9f6f2;background:url(8.png)}
.tile.tile-16 .tile-inner{color:#f9f6f2;background:url(16.png)}
.tile.tile-32 .tile-inner{color:#f9f6f2;background:url(32.png)}
.tile.tile-64 .tile-inner{color:#f9f6f2;background:url(64.png)}
.tile.tile-128 .tile-inner{color:#f9f6f2;background:url(128.png);box-shadow:0 0 30px 10px #f3d7743d inset 0 0 0 1px #ffffff24;font-size:45px}
@media screen and (max-width: 520px) {
.tile.tile-128 .tile-inner{font-size:25px}
}
.tile.tile-256 .tile-inner{color:#f9f6f2;background:url(256.png);box-shadow:0 0 30px 10px #f3d77451 inset 0 0 0 1px #ffffff31;font-size:45px}
@media screen and (max-width: 520px) {
.tile.tile-256 .tile-inner{font-size:25px}
}
.tile.tile-512 .tile-inner{color:#f9f6f2;background:url(512.png);box-shadow:0 0 30px 10px #f3d77465 inset 0 0 0 1px #ffffff3d;font-size:45px}
@media screen and (max-width: 520px) {
.tile.tile-512 .tile-inner{font-size:25px}
}
.tile.tile-1024 .tile-inner{color:#f9f6f2;background:url(1024.png);box-shadow:0 0 30px 10px #f3d77479 inset 0 0 0 1px #ffffff49;font-size:35px}
@media screen and (max-width: 520px) {
.tile.tile-1024 .tile-inner{font-size:15px}
}
.tile.tile-2048 .tile-inner{color:#f9f6f2;background:url(2048.png);box-shadow:0 0 30px 10px #f3d7748e inset 0 0 0 1px #fff5;font-size:35px}
.tile.tile-super .tile-inner{color:#f9f6f2;background:#3c3a32;font-size:30px}
@media screen and (max-width: 520px) {
.tile.tile-super .tile-inner{font-size:10px}
}
@-webkit-keyframes appear {
0%{opacity:0;-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0)}
100%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}
}
@-moz-keyframes appear {
0%{opacity:0;-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0)}
100%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}
}
@keyframes appear {
0%{opacity:0;-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0)}
100%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}
}
.tile-new .tile-inner{-webkit-animation:appear 200ms ease 100ms;-moz-animation:appear 200ms ease 100ms;animation:appear 200ms ease 100ms;-webkit-animation-fill-mode:backwards;-moz-animation-fill-mode:backwards;animation-fill-mode:backwards}
@-webkit-keyframes pop {
0%{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0)}
50%{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);transform:scale(1.2)}
100%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}
}
@-moz-keyframes pop {
0%{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0)}
50%{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);transform:scale(1.2)}
100%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}
}
@keyframes pop {
0%{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0)}
50%{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);transform:scale(1.2)}
100%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}
}
.tile-merged .tile-inner{z-index:20;-webkit-animation:pop 200ms ease 100ms;-moz-animation:pop 200ms ease 100ms;animation:pop 200ms ease 100ms;-webkit-animation-fill-mode:backwards;-moz-animation-fill-mode:backwards;animation-fill-mode:backwards}
.above-game:after{content:"";display:block;clear:both}
.game-intro{float:left;width:48%;line-height:28px;margin-bottom:0}
.above-game{margin-top:10px}
.restart-button{display:inline-block;background:#533f22;border-radius:3px;padding:0 20px;text-decoration:none;color:#f9f6f2;height:40px;line-height:42px;display:block;text-align:center;float:right}
.game-explanation{margin-top:20px}
@media screen and (max-width: 520px) {
html,body{font-size:15px}
body{margin:20px 0;padding:0 20px}
h1.title{font-size:20px;margin-top:5px;width:45%}
.container{width:280px;margin:0 auto}
.score-container,.best-container{margin-top:0;padding:15px 10px;min-width:40px}
.heading{margin-bottom:10px}
.game-intro{width:55%;display:block;box-sizing:border-box;line-height:1.65}
.restart-button{width:42%;padding:0;display:block;box-sizing:border-box;margin-top:2px}
.game-container{margin-top:17px;position:relative;padding:10px;cursor:default;-webkit-touch-callout:none;-ms-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-ms-touch-action:none;touch-action:none;background:#1879c5ab;border-radius:6px;width:280px;height:280px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
.game-container .game-message{display:none;position:absolute;top:0;right:0;bottom:0;left:0;background:#795548;z-index:100;text-align:center;-webkit-animation:fade-in 800ms ease 1200ms;-moz-animation:fade-in 800ms ease 1200ms;animation:fade-in 800ms ease 1200ms;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}
.game-container .game-message p{font-size:60px;font-weight:700;height:60px;line-height:60px;margin-top:222px}
.game-container .game-message .lower{display:block;margin-top:59px}
.game-container .game-message a{display:inline-block;background:#3f51b5;border-radius:3px;padding:0 20px;text-decoration:none;color:#f9f6f2;height:40px;line-height:42px;margin-left:9px}
.game-container .game-message a.keep-playing-button{display:none}
.game-container .game-message.game-won{background:#edc22e80;color:#f9f6f2}
.game-container .game-message.game-won a.keep-playing-button{display:inline-block}
.game-container .game-message.game-won,.game-container .game-message.game-over{display:block}
.grid-container{position:absolute;z-index:1}
.grid-row{margin-bottom:10px}
.grid-row:last-child{margin-bottom:0}
.grid-row:after{content:"";display:block;clear:both}
.grid-cell{width:57.5px;height:57.5px;margin-right:10px;float:left;border-radius:3px;background:#eee4da59}
.grid-cell:last-child{margin-right:0}
.tile-container{position:absolute;z-index:2}
.tile,.tile .tile-inner{width:58px;height:58px;line-height:67.5px}
.tile.tile-position-1-1{-webkit-transform:translate(0px,0px);-moz-transform:translate(0px,0px);transform:translate(0px,0px)}
.tile.tile-position-1-2{-webkit-transform:translate(0px,67px);-moz-transform:translate(0px,67px);transform:translate(0px,67px)}
.tile.tile-position-1-3{-webkit-transform:translate(0px,135px);-moz-transform:translate(0px,135px);transform:translate(0px,135px)}
.tile.tile-position-1-4{-webkit-transform:translate(0px,202px);-moz-transform:translate(0px,202px);transform:translate(0px,202px)}
.tile.tile-position-2-1{-webkit-transform:translate(67px,0px);-moz-transform:translate(67px,0px);transform:translate(67px,0px)}
.tile.tile-position-2-2{-webkit-transform:translate(67px,67px);-moz-transform:translate(67px,67px);transform:translate(67px,67px)}
.tile.tile-position-2-3{-webkit-transform:translate(67px,135px);-moz-transform:translate(67px,135px);transform:translate(67px,135px)}
.tile.tile-position-2-4{-webkit-transform:translate(67px,202px);-moz-transform:translate(67px,202px);transform:translate(67px,202px)}
.tile.tile-position-3-1{-webkit-transform:translate(135px,0px);-moz-transform:translate(135px,0px);transform:translate(135px,0px)}
.tile.tile-position-3-2{-webkit-transform:translate(135px,67px);-moz-transform:translate(135px,67px);transform:translate(135px,67px)}
.tile.tile-position-3-3{-webkit-transform:translate(135px,135px);-moz-transform:translate(135px,135px);transform:translate(135px,135px)}
.tile.tile-position-3-4{-webkit-transform:translate(135px,202px);-moz-transform:translate(135px,202px);transform:translate(135px,202px)}
.tile.tile-position-4-1{-webkit-transform:translate(202px,0px);-moz-transform:translate(202px,0px);transform:translate(202px,0px)}
.tile.tile-position-4-2{-webkit-transform:translate(202px,67px);-moz-transform:translate(202px,67px);transform:translate(202px,67px)}
.tile.tile-position-4-3{-webkit-transform:translate(202px,135px);-moz-transform:translate(202px,135px);transform:translate(202px,135px)}
.tile.tile-position-4-4{-webkit-transform:translate(202px,202px);-moz-transform:translate(202px,202px);transform:translate(202px,202px)}
.tile .tile-inner{font-size:35px}
.game-message p{font-size:30px!important;height:30px!important;line-height:30px!important;margin-top:90px!important}
.game-message .lower{margin-top:30px!important}
}
