@import url(https://fonts.googleapis.com/css?family=VT323);

body{
  overflow-x: hidden;
  color: white;
  margin: 0;
  background-color: 000000;
}
/* Full-page vignette overlay 
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  background: radial-gradient(
    ellipse at center,
  rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.7) 80%, rgba(0, 0, 0, 1) 100%);
    border: 15px solid black;
}*/


* {
	box-sizing: border-box;
	padding: 0;
	margin: 0;
}


.jj-container{
  width: 100%;
  overflow: hidden;
  position:relative;
  margin-left: 0%;
  font-family: "VT323", serif;
  
}

/* grid container */

.grid {
    display:grid;
    grid-template-areas:
        'header'
        'main-content'
        'left-sidebar'
        'right-sidebar'
        'footer';
}

/* general column padding */
.grid > * {
    padding:1rem;
}

/* assign columns to grid areas */
.grid > .header {
    grid-area:header;
    background:#000000;
    padding-bottom:0rem;
    width: 100%;
}
.header img {
    max-width: 100%;
    object-fit: cover;
    overflow: hidden;
    padding-top:0rem;
}

.grid > .main-content {
    grid-area:main-content;
    background:#000000;
    padding-top:0rem;
    width: 100%;

}
.main-content img {
    max-width: 100%;
    object-fit: cover;
    overflow: hidden;
    padding-top:0rem;
}
.grid > .left-sidebar {
    grid-area:left-sidebar;
    background:#000000;
    padding-top:0rem;
    width: 100%;

}
.left-sidebar img {
    max-width: 100%;
    object-fit: cover;
    overflow: hidden;
    padding-top:0rem;
}

.grid > .right-sidebar {
    grid-area:right-sidebar;
    background:#000000;
    width: 100%;

}
.right-sidebar img {
    max-width: 100%;
    object-fit: cover;
    overflow: hidden;
}
.grid > .footer {
    grid-area:footer;
    background:#000000;
    padding:0rem;
}
.footer{
  text-align: center;
  padding: 1rem;
  font-size: 0.8rem;
  color: white;
  background-color: #000000;
  position: relative;
}
.footer img {
    max-width: 100%;
    object-fit: cover;
    overflow: hidden;
}

.jj-btn{
  text-align: center;
	display: inline-block;
  font-size: 30px;
  background-color: lightgray;
  text-shadow: -.5px -.5px black, .5px .5px white;
  color: gray;
  box-shadow: .1em .1em gray;
  cursor: pointer;
}
.jj-btn:active {
	box-shadow: none;
	position: relative;
	top: .2em;
  background-color: yellow;

}
.marquee{
    overflow: hidden;
    position: relative;
    white-space: nowrap;
    width: 100%;
    background-color: red;
    height: 1rem;
    line-height: 1em;
}
.marquee p{
    animation: scroll-left 15s linear infinite;
}
.photo-frame {
  background-image: url('../assets/tv.png');
  background-repeat: no-repeat;
  background-size: 100%;
  max-width: 800px;
  height: 800px;
  position: relative;

  /* For demo */
  margin: 0 auto;
}
#video {
    position: absolute;
    top: 15%;
    left: 15%;
    width: 70%;
    height: 55%;
}

.popup{
  top: 20%;
  right:0;
  position: absolute;
  width:200px;
  overflow: hidden;
  animation: 10s slide-left;
  animation-iteration-count: infinite;
}

@keyframes slide-left {
0% {
  margin-right: -100%;
}
50% {
  margin-right: 0%;
}
75% {
  margin-right: 0%;
}
100% {
  margin-right: -100%;
}
}

.popup img{

  width:100%;

}

a:link {
  color: white;
  background-color: transparent;
  text-decoration: none;
}

a:visited {
  color: white;
  background-color: transparent;
  text-decoration: none;
}

.jj-container a:hover {
  color: red;
  background-color: yellow;
  text-decoration: none;
  cursor: url("../assets/cursor.png"), auto;
}
.jj-container img {
   cursor: url("../assets/cursor.png"), auto;
}
.tab-buttons button.active {
      background-color: #007bff;
      color: white;
      border-color: #007bff;
}

/* Tab content */
.tab-content {
  display: none;
  padding: 20px;
}

.tab-content.active {
  display: block;
}
/* @keyframes scroll-left {
    0% {
      transform: translateX(100%);
    }
    100% {
      transform: translateX(-100%);
    }
  }*/

/* width */
::-webkit-scrollbar {
  width: 10px;
}

/* Track */
::-webkit-scrollbar-track {
  box-shadow: inset 0 0 5px grey; 
  border-radius: 10px;
}
 
/* Handle */
::-webkit-scrollbar-thumb {
  background: white; 
  border-radius: 10px;
}



.container-main{
  display: flex;
  height: 100vh;
   /*overflow-y: hidden;*/
  font-family: "acumin-pro-extra-condensed", sans-serif;
  width: 100vw;
}
.loader {
position: fixed;
top:0;
right:0;
background: black;
background-blend-mode: screen;
z-index: 1000;
width: 100vw;
height: 100vh;
background-size: cover;
background-position: center;
}
.loader video {
  width: 100%;
  height: 100%;
  object-fit: cover;

}


#content {
    flex-grow: 1;
    white-space: nowrap;
    align-items: center;
    padding: 20px;
    overflow-y: auto;
    padding-top: 50px;
}

#content.active {
  cursor: grabbing;
}
/* Wrapper controls movement */
.portal-wrapper {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 1000px;
  height: 1000px;
  animation: wander 50s cubic-bezier(.42,0,.58,1) infinite;
  z-index: 9999;
}

/* link to portal*/
.portal {
  width: 5px;
  height: 5px;
  border-radius: 100%;
  background: radial-gradient(circle, #fffefc 0%, #ffffff 40%, #ffffff 100%);
  box-shadow:
    0 0 8px rgba(246, 246, 246, 0.9),
    0 0 20px rgba(255, 255, 252, 0.8),
    0 0 35px #f3f2f2b3;
  animation: pulse 4.2s ease-in-out infinite;
  cursor: pointer;
}

/* pulse */
@keyframes pulse {
  0% {
    transform: scale(.5);
  }
  50% {
    transform: scale(1.35);
  }
  100% {
    transform: scale(1);
  }
}

/* motion */
@keyframes wander {
  0%   { transform: translate(0, 0); }
  10%  { transform: translate(60%, -40%); }
  20%  { transform: translate(-30%, 30%); }
  30%  { transform: translate(9%, 10%); }
  40%  { transform: translate(-70%, -50%); }
  50%  { transform: translate(-20%, 70%); }
  60%  { transform: translate(50%, -20%); }
  70%  { transform: translate(-90%, 40%); }
  80%  { transform: translate(30%, 60%); }
  90%  { transform: translate(-40%x, -30%); }
  100% { transform: translate(0%, 0%); }
}



.timeline {
  display: flex;
  gap: 0px;
}

.timeline-item {
  flex: 0 0 auto;
  width: 250px;
  height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  border-radius: 10px;
  text-align: center;

  cursor: pointer;
}

.timeline-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.vid-button:hover  {
  transform: scale(1.3);
  cursor: url("../assets/cursor.png"), auto;
}


.timeline-item .hover-bg {
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;

    display: flex;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;  /* MUST be positive!! */
    width: 100vw;
    height: 100vh;
    align-items: center;
    justify-content: center;
}

.timeline-item.active .hover-bg {
    visibility: visible;
    opacity: 1;
}

.hover-bg video {
    min-width: 100vw !important;
    min-height: 100vh !important;
    width: auto !important;
    height: auto !important;
    margin-bottom: 0;

}

#about {
  width: 100%;
  padding: 1em;
  position: fixed;
  background: linear-gradient(180deg,rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.719) 80%, rgba(0, 0, 0, 0) 100%);
  z-index: 10000;
  font-size: 14px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;

   }

#jjhome img { display:none; }
#jjhome:hover img { 
  display:block; 
  width:50px;
  position:absolute;
  overflow: visible;
  z-index: 10001;
  right: 20%;
  bottom: 0px;
}

.about-left {
  flex: 2;
}

/* (contact & insta) */
.about-right {
  flex: 1;
  max-width: 280px;
  text-align: right;
}


.about-right a {
  color: #fff; 
  text-decoration: none;
}

.about-right a:hover {
  text-decoration: underline;
}

/* Mobile layout */
@media (max-width: 768px) {
  #about {
    flex-direction: column;
    gap: 25px;
  }

  .about-right {
    text-align: right; 
    max-width: 100%;
  }
}


#contents {
     width: 100%;
     padding: 1em;
     position: fixed;
     top: 0;
     left: 0;
     height: 50px;
     background: linear-gradient(180deg,rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.719) 50%, rgba(0, 0, 0, 0) 100%);
     z-index: 1000;
     font-size: 14px;
   }
   
   #about a:hover {
    text-shadow: 2px 2px 10px #ffffff;
    filter: dropshadow(color=#ffffff, offx=2, offy=2);
    text-decoration: underline dotted;
    
   }

    #contents a:hover {
    text-shadow: 2px 2px 10px #ffffff;
    filter: dropshadow(color=#ffffff, offx=2, offy=2);
    font-style: italic;
    text-decoration: underline dotted;
   }

   #active {
    text-shadow: 2px 2px 10px #ffffff;
    filter: dropshadow(color=#ffffff, offx=2, offy=2);
    font-style: italic;
    text-decoration: underline dotted;

   }

   #read-more {
     width: 100%;
     text-align: left;
     font-size: 14px;
     cursor: pointer;
     border-radius: 5px;
     border: 2px white;
     border-radius: 5px;
     color: white;
     font-family: "Times New Roman", Times, serif;
     background-color: inherit;
   }

   .tooltiptext {
     visibility: hidden;
     background-color: black;
     color: #fff;
     text-align: center;
     padding: 5px 5px;
     font-size: 10px;
     /* Position the tooltip */
     position: absolute;
     z-index: 1;
     top: 95%;
     left: 50%;
     overflow: hidden;

   }

   .timeline-item:hover .tooltiptext {
     visibility: visible;
   }

  .panel-container-vertical {
  display: flex;
  flex-direction: column;
  min-width: 100vw !important;
  min-height: 100vh !important;
  width: auto !important;
  height: auto !important;
  overflow: hidden;
}

.panel-top {
  flex: 0 0 auto;
  /* only manually resize */
  max-height: 95%;
  max-width: 95%;
  white-space: nowrap;
  overflow: hidden;
  top: 40px;
  position: relative;
    margin-left: auto;
  margin-right: auto;
}

.splitter-horizontal {
  flex: 0 0 auto;
  height: 5px;
  cursor: row-resize;
  background: linear-gradient(0deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.5) 50%, rgba(0, 0, 0, 0) 100%);
  position: relative;

}

.panel-bottom {
  flex: 1 1 auto;
  /* resizable */
  padding: 1em;
  min-height: 200px;
  font-size: 14px;
  background: black;
  position: relative;
}

.videoWrapper {
  position: relative;
  padding-bottom: 56.25%;
  /* 16:9 */
  padding-top: 25px;
  height: 0;
}

.videoWrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* tablet breakpoint*/
@media (min-width:768px) {
    .grid {
        grid-template-columns: 1fr;
        grid-template-areas:
            'header '
            'main-content'
            'left-sidebar' 'right-sidebar'
            'footer';
    }
#contents {
     width: 100%;
     padding: 1em;
     position: fixed;
     top: 0;
     left: 0;
     height: 75px;
     background: linear-gradient(180deg,rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.719) 50%, rgba(0, 0, 0, 0) 100%);
     z-index: 1000;
     font-size: 14px;
   }

}
/* mobile breakpoint */
@media only screen and (max-width: 600px) {

.photo-frame {
    background-repeat: no-repeat;
    background-size: 100%;
    max-width: 100%;
    height: 400px;
    position: relative;
    margin: 0 auto;
}
.tab-content {
    padding: 0px;
    max-width: 100%;
}
.grid > * {
    padding:0.5rem;
}
#contents {
     width: 100%;
     padding: 1em;
     position: fixed;
     top: 0;
     left: 0;
     height: 150px;
     background: linear-gradient(180deg,rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.719) 50%, rgba(0, 0, 0, 0) 100%);
     z-index: 1000;
     font-size: 14px;
   }
}


/* Vid content */


.vid-content {
  display: none; /* hidden by default */
  justify-content: center;
  align-items: center;
  width: 100%;
  margin: 0 auto;
  text-align: center;
  z-index: 100000;
}

.vid-content.active {
  display: flex;
}

/* Center iframe inside */
.vid-content iframe {
  margin: 0 auto;
}
#film {
    position: absolute;
    top: 25%;
    left: 35%;
}

/* desktop breakpoint */
@media (min-width:1024px) {
    .grid {
        grid-template-columns: repeat(5, 1fr);
        grid-template-areas:
            'header header header header header'
            'left-sidebar main-content main-content main-content right-sidebar'
            'footer footer footer footer footer';
    }
    #video {
    position: absolute;
    top: 15%;
    left: 15%;
    width: 70%;
    height: 55%;
}
}
/* Hide the toggle button on desktop */
#sidebar-toggle {
  display: none;
}

/* Desktop: sidebar behaves normally */
#sidebar {
  position: static;

}


/* --- MOBILE STYLES --- */
@media (max-width: 768px) {

      /* Show toggle button */
      #sidebar-toggle {
        display: block;
        position: fixed;
        bottom: 10px;
        right: 0px;
        z-index: 2000;
        border: none;
        padding: 12px 18px;
        background: linear-gradient(180deg,rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.719) 50%, rgba(0, 0, 0, 0) 100%);
        width: 50%;

      }

    #sidebar-toggle img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
      /* sidebar slider */

      #sidebar {
        position: fixed;
        top: 100px;
        left: -260px;        /* hidden */
        width: 250px;
        height: 100vh;
        overflow-y: auto;
        overflow-x: hidden;
        background: rgba(0, 0, 0, 0.9);
        transition: left 0.5s ease;
        z-index: 1500;
      }

      /* When active: slide in */
      #sidebar.active {
        left: 0;
      }
    .vid-button:hover  {
      transform: scale(0);
    }
    .loader {
      display: none;
    }

}