@charset "UTF-8";
/* CSS Shred Sessions 3 */
/* ########################### 
Shred Sessions
V.1.0
created by Damon Mathews
4/5/26
########################### */



@font-face {
  font-family: "Hemi Head";
  src: url("../fonts/hemi-head.woff2") format("woff2"),
       url("../fonts/hemi-head.woff") format("woff"),
       url("../fonts/hemi-head.ttf") format("truetype");
}
@font-face {
  font-family: "Chalkduster";
  src: url("../fonts/Chalkduster.ttf") format("woff2"),
       url("../fonts/Chalkduster.woff") format("woff"),
       url("../fonts/Chalkduster.ttf") format("truetype");
}
h1,
h2,
h3{
  font-family: "Chalkduster";
  text-align:left;
  text-transform: uppercase;
  width:100%;
}
p,
h4,
h5,
h6 {
  font-family:arial, san-serif;
  text-align: left;
  width:100%;
}
.how-to-play-panel,
.credits-panel,
.options-panel {
  display:none;
  container-type:inline-size;
  width:100%;
}
.how-to-play-panel h3,
.credits-panel h3,
.options-panel h3 {
  font-size:6cqw;
  margin-bottom:6cqw;
}
.how-to-play-panel h5,
.credits-panel h5,
.options-panel h5 {
  font-size:6cqw;
  margin-bottom:6cqw;
}
.how-to-play-panel p,
.credits-panel p,
.options-panel p {
  font-size:5cqw;
  margin-bottom:6cqw;
}
.how-to-play-panel p.title,
.credits-panel p.title,
.options-panel p.title {
  font-family:"Hemi Head";
  font-size:4cqw;
  margin-bottom:0;
}

/*start*/
body {
  background:#000;
  color:#fff;
  font-family: 'Hemi Head', sans-serif;  
  text-align: center;
}

body.loading #stage,
body.intro #stage,
body.options #stage,
body.loading .test,
.load-screen,
.intro-screen,
.options-screen {
  display:none;
}
body.practice .interface .scoring .lbl-drops,
body.practice .interface .drops,
body.practice .interface .scoring .lbl-score-num,
body.practice .interface .scoring .lbl-score,
body.practice .interface .time-clock {
  display:none;
}
body.play .interface .slow-mo,
body.play .interface .btn-slow-mo {
  display:none;
}
body.play .interface .slow-mo.show,
body.play .interface .btn-slow-mo.show {
  display:flex;
}
body.loading .load-screen {
  display:block;
}

/* prevent scrollbars */
html, body {
  margin: 0;
  padding: 0;
  overflow: hidden;
  height: 100%;
}

/* prevent rotation - mobile only */
.rotate-device {
  display: none;
}
.rotate-message img {
  margin-bottom:15%;
  width:45%;
}

@media (orientation: landscape) and (pointer: coarse) {
  #stage,
  .load-screen,
  .intro-screen,
  .options-screen {
    display: none !important;
  }

  .rotate-device {
    align-items: center;
    display: flex;
    height: 100vh;
    justify-content: center;
    width: 100%;
  }

  .rotate-message {
    color: #fff;
    font-family: "Hemi Head";
    font-size: 20px;
  }
}

@media (orientation: portrait) and (pointer: coarse) {
  .rotate-device {
    display: none;
  }
}

/* center everything on screen */
body {
  display: flex;
  justify-content: center;
  align-items: center;
}


#stage,
body.intro .intro-screen,
body.options .options-screen,
body.intro .intro-content,
body.options .options-content {
  background: #000;
  display: inline-block;
  overflow: hidden;
  position: relative;
}


#stage img {
  display: block;
  max-height:100vh;
  max-width:768px;
  width:100%;
}

.fade-top {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 12%;
  background: linear-gradient(to top, rgba(0,0,0,1), rgba(0,0,0,0));
  pointer-events: none;
}


/*btns*/
.btn:focus,
.btn:active,
.btn:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}
.btn-primary {
  align-items: center;
  background: linear-gradient(to bottom, #f3da06 0%, #e3ab0f 100%);
  border:0;
  color: #fff;
  display: flex;
  height:auto;
  justify-content: center;
  padding:0;
  text-transform: uppercase;
  text-shadow: 0.8cqw 0.8cqw 0 #000;
  transition: opacity .3s ease;
}

.btn-primary:hover {
  background: linear-gradient(to bottom, #f3da06 0%, #e3ab0f 100%);
  border:0;
  color: #fff;
  opacity:.8;
  text-shadow: 0.8cqw 0.8cqw 0 #000;
}

.btn-primary:focus,
.btn-primary:active {
  background: linear-gradient(to bottom, #f3da06 0%, #e3ab0f 100%);
  border:0;
  color: #fff;
  text-shadow: 0.8cqw 0.8cqw 0 #000;
}

.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  color:#fff;
  font-family: 'Chalkduster', sans-serif;
  text-decoration: none;
  text-transform: uppercase;
}
.btn-link:hover {
  opacity:.8;
}

/*progress bar*/
.progress {
  border-radius:30px;
  height:30px;
}
.progress-bar {
  background-color: #ebc20b;
  color: #fff;
  font-size:1.6rem;
  text-shadow: 1px 1px 0 #000;
}

/*content*/

/*loading*/
.loading-content-wrapper {
  margin:0 auto;
  max-width:545px;
  padding:0 5%;
  position: relative;
  width:100%;
}

.loading-logo {
  margin-bottom:5%;
  /*padding:0 60px 0 60px;*/
}

/*intro*/
.intro-content {
  position: relative;
}
.intro-screen img {
  display: block;
  max-height:100vh;
  max-width:768px;
  width:100%;
}
.intro-buttons {
  bottom: 0;
  container-type: inline-size;
  position: absolute;
  right: 9%;
  z-index: 2000;
  width: 26%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
.intro-options {
  container-type: inline-size;
  top: 20%;
  position: absolute;
  left: 8%;
  z-index: 2000;
  width: 50%;
  height: auto;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
}
.intro-options a.btn-link {
  font-size:7cqw;
  line-height:1;
  margin-bottom:8cqw;
  padding-left:0;
}
#btn_play {
  font-size:22cqw;
  height:6%;
  margin-bottom:18%;
  margin-top:12%;
  width:100%;
}
#btn_practice {
  font-size:16cqw;
  height:6%;
  width:100%;
}

/*options*/
.options-content {
  position: relative;
}

.options-screen img {
  display: block;
  max-height:100vh;
  max-width:768px;
  width:100%;
}
.options-copy {
  container-type:inline-size;
  top: 20%;
  position: absolute;
  left: 7.5%;
  z-index: 2000;
  width: 85%;
  height: auto;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
}
.btn-exit,
.btn-exit-all {
  container-type:inline-size;
  display:block;
  position: absolute;
  right:4.5%;
  top:17%;
  width:100%;
}
#btn_exit,
#btn_exit_all {
  color: #ebc300;
  font-size: 4cqw;
  position: absolute;
  right: 0;
  transform: rotate(-15deg);
  top: 0;
  z-index: 2003;
}
#btn_exit_all {
  left:7.5%;
  right:auto;
}
body.play #btn_exit_all {
  display:none;
}
body.play #btn_exit_all.active {
  display:block;
}
.how-to-play-panel,
.credits-panel,s
.options-panel {
  display:none;
}
.how-to-play-panel.active,
.credits-panel.active,
.options-panel.active {
  display:block;
}

/*options panel*/
.options-panel .trick-list-wrapper {
 
}
.options-panel ul {
  container-type: inline-size;
  padding: 0;
  list-style: none;
  margin: 0 0 0 auto;
  width:50%;
}

.options-panel ul li:last-child {
  padding-bottom:8%;
}

.options-panel ul li.heading {
  color:#ebc300;
  cursor:default;
  font-family:"Hemi Head";
  font-size:8cqw;
  margin-bottom:4cqw;
  margin-top:0;
}

.options-panel ul li.heading.second {
  margin-top:5%;
}

.options-panel ul li {
  align-items: center;
  color:#fff;
  cursor:pointer;
  display:flex;
  font-family:"Hemi Head";
  font-size:7cqw;
  justify-content: space-between;
  margin:4% 0 0 0;
  padding:0;
  transition: opacity .3s ease;
}
.options-panel ul li:hover{
  opacity:.8;
}
.options-panel ul li.heading:hover{
  opacity:1;
}

.options-panel ul li .icons {
  align-items: center;
  container-type:inline-size;
  display: flex;
  justify-content: flex-end;
  width:35%;
}

.options-panel ul li .icons img {
  aspect-ratio: 1 / 1;
  display:block;
  padding:1.5%;
  width:24% !important;
}

.options-panel .preview-window {
  border: 0.3cqw solid #fff;
  container-type:inline-size;
  position: absolute;
  top:162%;
  left:0;
  width:45%;
}

#preview_trick_name {
  top:1%;
  font-size:10cqw;
  left:0;
  position: absolute;
  width:100%;
}

#preview_trick_key {
  bottom:1%;
  font-size:10cqw;
  left:0;
  position: absolute;
  width:100%;
}
#preview_trick_key img {
  display:inline-block;
  padding:2%;
  width:15%;
}

.options-panel .tab-panel {
  display: none;
  width:100%;
}

.options-panel .tab-panel.active {
  display: block;
  position: absolute;
  top:150%;
}

.options-panel .tab-buttons {
  align-items: center;
  display:flex;
  justify-content: space-between;
  position:absolute;
  top:68%;
  width:100%;
}

.options-panel .tab-buttons .tabs {
  display: flex;
  font-size:5cqw;
  justify-content: space-between;
  list-style: none;
  padding: 0;
  margin: 0;
  width:100%;
}

.options-panel .tab-buttons .tabs .tab {
  cursor: pointer;
  opacity: 0.5;
  transition: opacity 0.2s ease;
  font-family: "Hemi Head";
  text-align: center;
}

.options-panel .tab-buttons .tabs .tab.active {
  border-bottom: .6cqw solid #ebc300;
  opacity: 1;
}

/*interface items*/
.interface {
  height:100%;
  position: absolute;
  width:100%;
}
.interface .scoring {
  align-items: center;
  container-type: inline-size;
  display: flex;
  height:16.2%;
  justify-content: center;
  left:0;
  position: absolute;
  top:0;
  width:100%;
  z-index: 2001;
}
.interface .scoring .score-bar {
  background: linear-gradient(
    to bottom,
    #393939 0%,
    #393939 50%,
    #000000 50%,
    #000000 100%
  );
  border: 0.3cqw solid #fff;
  border-radius:20px;
  height:19.7%;
  width:90%;
}

.interface .scoring .lbl-score {
  font-family: "Hemi Head";
  font-size: 3cqw;
  left:7%;
  position: absolute;
}
.interface .scoring .lbl-instant-replay,
.interface .scoring .lbl-practice-mode {
  bottom:10%;
  font-family: "Hemi Head";
  font-size: 4cqw;
  left:7%;
  position: absolute;
  animation: fadeHalf .3s infinite alternate;
}
body.practice .interface .scoring .lbl-instant-replay,
body.play .interface .scoring .lbl-instant-replay,
body.play .interface .scoring .lbl-practice-mode {
  display:none;
}
body.play .interface .scoring .lbl-instant-replay.show {
  display:block;
}
@keyframes fadeHalf {
  0%   { opacity: 1; }
  100% { opacity: .5; }
}

.fade-half {
  animation: fadeHalf .3s infinite alternate;
}
.interface .scoring .lbl-drops {
  font-family: "Hemi Head";
  font-size: 3cqw;
  left:58%;
  position: absolute;
}
.interface .scoring .lbl-special-meter {
  font-family: "Hemi Head";
  font-size: 2cqw;
  left:58%;
  position: absolute;
  top:62%;
}
.interface .scoring .lbl-score-num {
  align-items: flex-end;
  color:#ebc300;
  display:flex;
  font-family: 'Hemi Head';
  font-size: 9.2cqw;
  justify-content: flex-start;
  left:19%;
  line-height:1;
  height:50%;
  position: absolute;
  text-shadow: 0.3cqw 0.3cqw 0 #000;
  top:11%;
}

.interface .drops {
  align-content: flex-end;
  display: flex;
  justify-content: center;
  position: absolute;
  right:7%;
  width:23%;
  height:100%;
  top:23%;
  transition: all .3s ease;
}
.interface .drops .drop img {
  max-width: 100% !important;
  height: auto !important;
  padding-left:1cqw;
}
.interface .drops .drop.hide {
  visibility: hidden;
}
.interface .time-clock,
.interface .slow-mo {
  align-items: center;
  display: flex;
  height:100%;
  justify-content: center;
  left:0;
  position: absolute;
  top:0;
  width:100%;
}
.interface .time-clock .clock,
.interface .slow-mo .btn-slow-mo {
  align-items: center;
  background: #000000 url("../img/clock-bg-45.png");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  border: 0.3cqw solid #fff;
  color:#ebc300;
  font-family:arial, san-serif;
  font-weight:bold;
  display: flex;
  font-size: 8.2cqw;
  height:auto;
  justify-content: center;
  width: 14.45%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  position: relative;
  text-shadow: 0.3cqw 0.3cqw 0 #000;
}
.interface .time-clock .clock span,
.interface .slow-mo .btn-slow-mo span {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.interface .slow-mo .btn-slow-mo,
.interface .time-clock .clock {
  cursor:pointer;
}

.interface .slow-mo .btn-slow-mo span {
  color:#ccc;
  font-family:"Hemi Head";
  font-size:3.2cqw;
  line-height: 1;
  opacity:.8;
  text-transform: uppercase;
  transition: color .3s ease;
}
.interface .slow-mo .btn-slow-mo.active span,
.interface .slow-mo .btn-slow-mo.x2 span {
  color:#ebc300;
  position: relative;
  opacity:1;
  text-shadow: none;
  transform: scale(1.1);
}
.interface .slow-mo .btn-slow-mo.x2 {
  transform: scale(1.2);
}
.interface .slow-mo .btn-slow-mo.x2::after {
  display: table;
  content:"x2";
  font-size:5cqw;
  right:-21%;
  text-shadow:
    0.3cqw 0 0 #fff,
   -0.3cqw 0 0 #fff,
    0 0.3cqw 0 #fff,
    0 -0.3cqw 0 #fff,
    0.3cqw 0.3cqw 0 #fff,
   -0.3cqw 0.3cqw 0 #fff,
    0.3cqw -0.3cqw 0 #fff,
   -0.3cqw -0.3cqw 0 #fff;
  top:-15%;
  position: absolute;
}

.interface .special-meter {
  align-items: center;
  bottom:0;
  display: flex;
  height:41.5%;
  justify-content: flex-end;
  padding-right:9%;
  position: absolute;
  right:0;
  width:42%;
}
.interface .special-meter .progress.special {
  border: 0.3cqw solid #fff;
  background:#000;
  height:18%;
  width:100%;
}
.interface .special-meter .progress.special .progress-bar {
  background: linear-gradient(to right, #ff0000, #ff0000);
  width:0%;
}
.interface .special-meter .progress.special .progress-bar.p1 {
  background: linear-gradient(to right, #ff0000, #ff0000);
  width:25%;
}
.interface .special-meter .progress.special .progress-bar.p2 {
  background: linear-gradient(to right, #ff0000, #ff3c00);
  width:50%;
}
.interface .special-meter .progress.special .progress-bar.p3 {
  background: linear-gradient(to right, #ff0000, #ff5a00, #ffb300);
  width:75%;
}
.interface .special-meter .progress.special .progress-bar.p4 {
  background: linear-gradient(to right, #ff0000, #ff5a00, #ff9a00, #ffd000);
  width:100%;
}
.interface .special-meter .flaming-ball {
  aspect-ratio: 1 / 2;
  background:url("../img/flaming-ball.png");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  bottom:15%;
  image-rendering: pixelated;
  position: absolute;
  right:15%;
  width:17%;
}
.interface .special-meter .flaming-ball.active {
  animation: flamingBall 0.333s steps(4) infinite;
}
@keyframes flamingBall {
  0%   { background-image: url("../img/flaming-ball-1.png"); }
  25%  { background-image: url("../img/flaming-ball-2.png"); }
  50%  { background-image: url("../img/flaming-ball-3.png"); }
  75%  { background-image: url("../img/flaming-ball-4.png"); }
  100% { background-image: url("../img/flaming-ball-1.png"); }
}


/* trick list */
.interface .trick-panel {
  align-items: center;
  container-type: inline-size;
  display: flex;
  height:95%;
  justify-content: center;
  position: absolute;
  right:-28.65%;
  top:0;
  width:28.65%;
  transition: all .3s ease;
}
.interface .trick-panel.active {
  right:0;
}
.interface .trick-panel.hide {
  visibility: hidden;
}
.interface .trick-panel .trick-list {
  aspect-ratio: 220 / 582;
  background-image: url("../img/trick-list-bg.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  border: 0.89cqw solid #fff;
  border-right:0;
  position: relative;
  width:100%;
}
.interface .trick-panel .trick-list #btn_tricks {
  border-bottom-left-radius:0;
  border-bottom-right-radius:0;
  font-size:12cqw;
  height:auto;
  left:-40%;
  letter-spacing: 0.075em;
  padding:1cqw 0;
  position: absolute;
  text-align: center;
  transform: rotate(-90deg);
  top:6.5%;
  width:58%;
}
.interface .trick-panel .trick-list #btn_tricks.active {
  opacity:.5;
}
.interface .trick-panel .trick-list #btn_tricks.active:hover {
  opacity:.8;
}

.interface .trick-panel .trick-list .tricks {
  container-type:inline-size;
  display:none;
  padding: 6cqw;
}
.interface .trick-panel .trick-list .tricks.active {
  display:block;
  height:100%;
}
.interface .trick-panel .trick-list .tricks h6 {
  color:#ebc300;
  font-family:"Hemi Head";
  font-size:12cqw;
  margin-bottom:10%;
}
.interface .trick-panel .trick-list .tricks h6.second {
  margin-top:10%;
}
.interface .trick-panel .trick-list .tricks a {
  align-items: center;
  color:#fff;
  display:flex;
  font-family:"Hemi Head";
  font-size:8cqw;
  justify-content: space-between;
  margin:8% 0;
  padding:0;
  text-decoration: none;
  transition: opacity .3s ease;
}
.interface .trick-panel .trick-list .tricks a:hover {
  opacity:.8;
}

.interface .trick-panel .trick-list .tricks a .icons {
  align-items: center;
  container-type:inline-size;
  display: flex;
  justify-content: flex-end;
  width:28%;
}

.interface .trick-panel .trick-list .tricks a .icons img {
  aspect-ratio: 1 / 1;
  display:block;
  padding:1%;
  width:33% !important;
}

/*key seq*/
.interface .key-seq-img {
  align-items: center;
  container-type:inline-size;
  display:flex;
  height:10%;
  justify-content: center;
  position:absolute;
  width:100%;
  bottom:13%;
}
.interface .key-seq-img img {
  aspect-ratio: 1 / 1;
  display:block;
  margin:0 .5cqw;

  animation: popFade 0.2s ease-out forwards;
  opacity: .5;
  width:10% !important;
}
@keyframes popFade {
  0% {
    transform: scale(1);
    opacity: 0.5;
  }

  50% {
    transform: scale(1.5);
    opacity: 1;
  }

  100% {
    transform: scale(1);
    opacity: 0.5;
  }
}

/*swipe meter*/
#swipe_bar {
  transition:none !important;
}
.interface .swipe-meter {
  background: #000;;
  bottom:0;
  container-type:inline-size;
  height:13.5%;
  left:0;
  position:absolute;
  width:100%;
  z-index: 2001;
}
.interface .swipe-meter .progress {
  background:#333;
  border-bottom: 0.3cqw solid #fff;
  border-top: 0.3cqw solid #fff;
  border-radius:0;
  height:4cqw;
  margin:0 auto 0 auto;
  width:100%;
}
.interface .swipe-meter .instructions {
  color:#ccc;
  font-family:"Chalkduster";
  font-size:6cqw;
  left:0;
  position: absolute;
  top:32%;
  width:100%;
}
.interface .swipe-meter .trick-name {
  color:#fff;
  font-family: "Hemi Head";
  font-size:6cqw;
  left:0;
  position: absolute;
  top:28%;
  width:100%;
}
.interface .swipes {
  align-content: center;
  display: flex;
  height:auto;
  justify-content: center;
  position: absolute;
  top:34%;
  width:100%;
}
.interface .swipes .arrow {
  aspect-ratio: 1 / 1;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  display: block;
  height:auto;
  opacity:0;
  pointer-events: none;
  transform: translate(0,0);
  width:50%;
}
@keyframes arrowUp {
  0%   { opacity: 0; transform: translateY(0); }
  20%  { opacity: .6; }
  100% { opacity: 0; transform: translateY(-15%); }
}

@keyframes arrowDown {
  0%   { opacity: 0; transform: translateY(0); }
  20%  { opacity: .6; }
  100% { opacity: 0; transform: translateY(15%); }
}

@keyframes arrowLeft {
  0%   { opacity: 0; transform: translateX(0); }
  20%  { opacity: .6; }
  100% { opacity: 0; transform: translateX(-15%); }
}

@keyframes arrowRight {
  0%   { opacity: 0; transform: translateX(0); }
  20%  { opacity: .6; }
  100% { opacity: 0; transform: translateX(15%); }
}
.interface .swipes .arrow.up {
  background-image:url("../img/swipe-up.png");
  animation: arrowUp 0.35s ease-out;
}

.interface .swipes .arrow.down {
  background-image:url("../img/swipe-down.png");
  animation: arrowDown 0.35s ease-out;
}

.interface .swipes .arrow.left {
  background-image:url("../img/swipe-left.png");
  animation: arrowLeft 0.35s ease-out;
}

.interface .swipes .arrow.right {
  background-image:url("../img/swipe-right.png");
  animation: arrowRight 0.35s ease-out;
}

.interface .swipes .arrow.none {
  background:none;
}


/*game over*/
.interface .game-over {
  background:rgba(0,0,0,.5);
  container-type:inline-size;
  display:none;
  height:100%;
  width:100%;
}
.interface .game-over.replay {
  background:rgba(0,0,0,0);
}
.interface .game-over.replay .final-score {
  opacity:.25;
}
.interface .game-over.replay #btn_play_again {
  visibility: hidden;
}
.interface .game-over.active {
  display:flex;
  position: relative;
  z-index: 2000;
}
.interface .game-over .final-score {
  align-items: center;
  display: flex;
  height:100%;
  justify-content: flex-start;
  left:0%;
  position: absolute;
  top:0%;
  width:50%;
}
.interface .game-over .final-score ul {
  list-style:none;
  margin:0;
  padding:0;
  width:100%;
}
.interface .game-over .final-score ul li {
  display:block;
  padding-bottom:2cqw;
  text-align: left;
  width:100%;
}
.interface .game-over .final-score ul li .lbl {
  display:inline-block;
  font-family: "Chalkduster";
  font-size:4cqw;
  padding-right:3cqw;
  text-align: right;
  width:55%;
}
.interface .game-over .final-score ul li .num {
  color: #ebc300;
  display:inline-block;
  font-family: "Hemi Head";
  font-size:6cqw;
  text-shadow: 0.3cqw 0.3cqw 0 #000;
  width:30%;
}
.interface .game-over .play-again {
  align-items: center;
  container-type:inline-size;
  display: flex;
  flex-direction: column;
  height:100%;
  justify-content: center;
  right:9%;
  position: absolute;
  top:0%;
  width:26%;
}
.interface .game-over .play-again .btn-primary {
  font-size:13cqw;
  height:6%;
  margin-bottom:6%;
  margin-top:12%;
  width:100%;
}












