* {box-sizing:border-box}


/* Body */
body, html {
  height: 100vh;
  margin: 0;
  padding: 0;
  overscroll-behavior: none;
}

/* Tool Bar Styles */
.tool-bar{
  height: 110px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  transition: top 0.5s;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 500;
}
.tool-bar-english-start{
  margin-left: 75px;
  margin-right: 25px;
  margin-top: 0px;
  margin-bottom: 0px;
}
.tool-bar-english{
  margin-left: 25px;
  margin-right: 25px;
  margin-top: 0px;
  margin-bottom: 0px;
}
.tool-bar-language{
  margin-left: 25px;
  margin-right: 75px;
  margin-left: 7px;
  margin-top: 0px;
  margin-bottom: 0px;
}
.tool-bar-english-text{
  color: rgb(69, 101, 173);
}
.tool-bar-japanese-text{
  font-family: "fot-tsukuardgothic-std", sans-serif;
  font-weight: 700;
  font-style: normal;
  color: rgb(230, 51, 49);
  font-size: 30px;
  margin-top: 0px;
  margin-bottom: 0px;
}
.divider{
  border-left: 3px solid rgb(230, 51, 49);
  height: 33px;
  margin-top: 7px;
  margin-left: 5px;
  margin-right: 5px;
}
.tool-bar-english-end-text{
  color: rgb(69, 101, 173);
  margin-left: 7px;
  margin-top: 0px;
  margin-bottom: 0px;
}
.tool-bar-english-text:hover{
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 3px;
  color: rgb(230, 51, 49);
}
.tool-bar-english-end-text:hover{
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 3px;
  color: rgb(230, 51, 49);
}
.tool-bar-japanese-text:hover{
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 3px;
  color: rgb(69, 101, 173);
}
.tool-bar-logo-left{
  height: 115px;
  display: flex;
  align-items: center;
  padding-left: 75px;
  position: fixed;
  top: 43.5%;
  left: 0px;
  z-index: 400;
  transition: left 1s;
}


/* Phone & HD Tool Bar Styles (hidden)*/
.tool-bar-phone{
  display: none;
}
.tool-bar-HD{
  display: none;
}

/* Main Video Styles */
.video-container {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;   
  pointer-events: none;
  z-index: 0;
}
.video-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.video-container iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  min-width: 177.78vh;
  min-height: 56.25vw;
  transform: translate(-50%, -50%);
  border: 0;
}


/* Logo & Logo Image Styles */
#alexjplogo-container{
  width: 113px;
  display: flex;
  justify-content: center;
  align-items: center;
}
#alexjplogo{
  max-width: 100%;
  height: auto;
}
.tool-bar-logo-right{
  height: 115px;
  display: flex;
  align-items: center;
  padding-right: 75px;
  position: fixed;
  top: 43.5%;
  right: 0px;
  z-index: 400;
  transition: right 1s;
}
#alexlogo-container{
  width: 105px;
  display: flex;
  justify-content: center;
  align-items: center;
}
#alexlogo{
  max-width: 100%;
  height: auto;
}


/* Text Grid */
.text-container{
  display: flex;
  justify-content: space-between;
  flex-direction: row;
  padding-top: 125px;
  padding-right: 75px;
  padding-left: 75px;
  padding-bottom: 125px;
}
.heading-container{
  padding-right: 75px;
}
.body-text{
  width: 800px;
}


/* Image Styles and Grid */
.portfolio{
  display: grid; 
  padding-right: 75px;
  padding-left: 75px;
  grid-template-columns: 1fr;
  }
.image-container{
  width: 100%;
  aspect-ratio: 16 / 9;
  margin-bottom: 50px;  
  position: relative;
  overflow: hidden;
}
.image{
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
}


/* Carousel Images */
.fade-carousel {
  width: 100%;
  height: 100%; 
  position: relative;
  overflow: hidden;
}
.fade-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.6s ease-in-out;
}
.fade-slide.active {
  opacity: 1;
}


/* Carousel Dots */
.dots {
  z-index: 1;
  position: absolute;
  bottom: 30px;
  display: flex;
  gap: 8px;
  left: 50%;
  transform: translateX(-50%); 
}
.dot {
  cursor: pointer;
  height: 10px;
  width: 10px;
  margin: 2px;
  background-color: rgba(230, 51, 49, 0.2);
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}
.dot.active {
  background-color: rgb(230, 51, 49);
}


/* Cursour Buttons */
.prev, .next{
  cursor: url(images/icons/red-arrow-left-small.png) move;
  cursor: url(images/icons/red-arrow-left-small.png) 16 16, move;
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  margin: 0;
  transition: 0.6s ease;
  user-select: none;
}
.next{
  cursor: url(images/icons/blue-arrow-right-small.png) move;
  cursor: url(images/icons/blue-arrow-right-small.png) 16 16, move;
  right: 0;
}


/* Text & Font Styles */
.text-red{
  color: rgb(230, 51, 49);
}
.text-blue{
  color: rgb(69, 101, 173);
}
.sub-heading{
  font-weight: 500;
  font-size: 30px;
}
h1{
  font-family: "fot-tsukuardgothic-std", sans-serif;
  font-weight: 700;
  font-style: normal;
  color: rgb(230, 51, 49);
  font-size: 30px;
  margin-top: 0px;
  margin-bottom: 0px;
}
.h1-en{
  font-variant-ligatures: contextual;
  -moz-font-feature-settings: "calt";
  -webkit-font-feature-settings: "calt";
  font-feature-settings: "calt";
  font-family: "houschka-rounded", sans-serif;
  font-weight: 600;
  font-style: normal;
  color: rgb(230, 51, 49);
  font-size: 30px;
  margin-top: 0px;
  margin-bottom: 0px;
}
p{
  font-family: "fot-tsukuardgothic-std", sans-serif;
  font-weight: 400;
  font-style: normal;
  color: rgb(230, 51, 49);
  font-size: 30px;
  margin-top: 0px;
  margin-bottom: 0px;
}
h3{
  font-variant-ligatures: contextual;
  -moz-font-feature-settings: "calt";
  -webkit-font-feature-settings: "calt";
  font-feature-settings: "calt";
  font-family: "houschka-rounded", sans-serif;
  font-weight: 600;
  font-style: normal;
  color: rgb(69, 101, 173);
  text-align: center;
  font-size: 30px;
  margin-top: 0px;
  margin-bottom: 10px;
}


/* Screen Size above 3840px */
@media only screen and (min-width: 3840px){


/* HD Tool Bar Styles */
.tool-bar-HD{
  display: flex;
  flex-direction: row;
  transition: top 0.5s;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 499;
  margin-left: 134px;
  margin-top: 55px;
}
.logo-gap{
  padding-right: 20px;
}
.tool-bar{
  height: 197px;
  display: flex;
  flex-direction: row;
  align-items:right;
  justify-content: flex-end;
}
.tool-bar-english-start{
  margin-left: 134px;
  margin-right: 44px;
}
.tool-bar-english{
  margin-left: 44px;
  margin-right: 44px;
}
.tool-bar-language{
  margin-left: 44px;
  margin-right: 134px;
  margin-left: 12px;
}
.divider{  
  margin-top: 12px;
  margin-left: 9px;
  margin-right: 9px;
}


/* Logo & Logo Image Styles */
.tool-bar-logo-left{
  height: 206px;
  padding-left: 134px;
}
.tool-bar-logo-right{
  height: 206px;
  padding-right: 134px;
}
#alexjplogo-container{
  width: 202px;
}
#alexlogo-container{
  width: 187px;
}


/* Text Grid */
.text-container{
  padding-top: 125px;
  padding-right: 134px;
  padding-left: 134px;
  padding-bottom: 125px;
}
.heading-container{
  padding-right: 134px;
}
.body-text{
  width: 860px;
}


/* Image Styles and Grid */
.portfolio{
  display: grid; 
  padding-right: 134px;
  padding-left: 134px;
  grid-template-columns: 1fr;
}
.image-container{
  margin-bottom: 50px;  
}


/* Contact Styles */
.instagram{
  padding-left: 134px;
}
.linkedin{
  padding-right: 134px;
}
.footer{
  bottom: 67px;
}
h3{
  margin-bottom: 17px;
}


/* Carousel Dots */
.dots {
  bottom: 53px;
  gap: 13px;
}
.dot {
  height: 17px;
  width: 17px;
  margin: 4px;
}


/* Cursour Buttons */
.prev, .next {
  cursor: url(images/icons/red-arrow-left-big-size.png) move;
  cursor: url(images/icons/red-arrow-left-big-size.png) 28 28, move;
}
.next {
  cursor: url(images/icons/blue-arrow-right-big-size.png) move;
  cursor: url(images/icons/blue-arrow-right-big-size.png) 28 28, move;
}
}


/* Screen Size above 2560px and below 3840px */
@media only screen and (min-width: 2560px) and (max-width: 3839px){


/* HD Tool Bar Styles */
.tool-bar-HD{
  display: flex;
  flex-direction: row;
  transition: top 0.5s;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 499;
  margin-left: 134px;
  margin-top: 55px;
}
.logo-gap{
  padding-right: 20px;
}
.tool-bar{
  height: 197px;
  display: flex;
  flex-direction: row;
  align-items:right;
  justify-content: flex-end;
}
.tool-bar-english-start{
  margin-left: 134px;
  margin-right: 44px;
}
.tool-bar-english{
  margin-left: 44px;
  margin-right: 44px;
}
.tool-bar-language{
  margin-left: 44px;
  margin-right: 134px;
  margin-left: 12px;
}
.divider{  
  margin-top: 12px;
  margin-left: 9px;
  margin-right: 9px;
}


/* Logo & Logo Image Styles */
.tool-bar-logo-left{
  height: 206px;
  padding-left: 134px;
}
.tool-bar-logo-right{
  height: 206px;
  padding-right: 134px;
}
#alexjplogo-container{
  width: 202px;
}
#alexlogo-container{
  width: 187px;
}


/* Text Grid */
.text-container{
  padding-top: 125px;
  padding-right: 134px;
  padding-left: 134px;
  padding-bottom: 125px;
}
.heading-container{
  padding-right: 134px;
}
.body-text{
  width: 860px;
}


/* Image Styles and Grid */
.portfolio{
  display: grid; 
  padding-right: 134px;
  padding-left: 134px;
  grid-template-columns: 1fr;
}
.image-container{
  margin-bottom: 50px;  
}


/* Contact Styles */
.instagram{
  padding-left: 134px;
}
.linkedin{
  padding-right: 134px;
}
.footer{
  bottom: 67px;
}
h3{
  margin-bottom: 17px;
}


/* Carousel Dots */
.dots {
  bottom: 53px;
  gap: 13px;
}
.dot {
  height: 17px;
  width: 17px;
  margin: 4px;
}


/* Cursour Buttons */
.prev, .next {
  cursor: url(images/icons/red-arrow-left-big-size.png) move;
  cursor: url(images/icons/red-arrow-left-big-size.png) 28 28, move;
}
.next {
  cursor: url(images/icons/blue-arrow-right-big-size.png) move;
  cursor: url(images/icons/blue-arrow-right-big-size.png) 28 28, move;
}
}


/* Screen Size above 1920px and below 2560px */
@media only screen and (min-width: 1920px) and (max-width: 2559px){


/* Tool Bar Styles */
.tool-bar{
  height: 147px;
}
.tool-bar-english-start{
  margin-left: 100px;
  margin-right: 33px;
}
.tool-bar-english{
  margin-left: 33px;
  margin-right: 33px;
}
.tool-bar-language{
  margin-left: 33px;
  margin-right: 100px;
  margin-left: 9px;
}
.divider{  
  margin-top: 9px;
  margin-left: 7px;
  margin-right: 7px;
}


/* Logo & Logo Image Styles */
.tool-bar-logo-left{
  height: 154px;
  padding-left: 100px;
}
.tool-bar-logo-right{
  height: 154px;
  padding-right: 100px;
}
#alexjplogo-container{
  width: 151px;
}
#alexlogo-container{
  width: 140px;
}


/* Text Grid */
.text-container{
  padding-top: 125px;
  padding-right: 100px;
  padding-left: 100px;
  padding-bottom: 125px;
}
.heading-container{
  padding-right: 100px;
}
.body-text{
  width: 860px;
}


/* Image Styles and Grid */
.portfolio{
  display: grid; 
  padding-right: 100px;
  padding-left: 100px;
  grid-template-columns: 1fr;
}
.image-container{
  margin-bottom: 50px;  
}


/* Contact Styles */
.instagram{
  padding-left: 100px;
}
.linkedin{
  padding-right: 100px;
}
.footer{
  bottom: 50px;
}
h3{
  margin-bottom: 13px;
}


/* Carousel Dots */
.dots {
  bottom: 40px;
  gap: 10px;
}
.dot {
  height: 13px;
  width: 13px;
  margin: 3px;
}


/* Cursour Buttons */
.prev, .next {
  cursor: url(images/icons/red-arrow-left-mid-size.png) move;
  cursor: url(images/icons/red-arrow-left-mid-size.png) 21 21, move;
}
.next {
  cursor: url(images/icons/blue-arrow-right-mid-size.png) move;
  cursor: url(images/icons/blue-arrow-right-mid-size.png) 21 21, move;
}
}


/* Screen Size above 1600px and below 1920px */
@media only screen and (min-width: 1600px) and (max-width: 1919px){
}


/* Screen Size above 990px and below 1200px */
@media only screen and (min-width: 991px) and (max-width: 1200px){


/* Tool Bar Styles */
.tool-bar{
  height: 82px;
}
.tool-bar-english-start{
  margin-left: 56px;
  margin-right: 19px;
}
.tool-bar-english{
  margin-left: 19px;
  margin-right: 19px;
}
.tool-bar-language{
  margin-left: 19px;
  margin-right: 56px;
  margin-left: 5px;
}
.divider{
  border-left: 3px solid rgb(230, 51, 49);
  height: 25px;
  margin-top: 5px;
  margin-left: 4px;
  margin-right: 4px;
}
.tool-bar-japanese-text{
  font-size: 22px;
}


/* Logo & Logo Image Styles */
.tool-bar-logo-left{
  height: 86px;
  padding-left: 56px;
}
.tool-bar-logo-right{
  height: 86px;
  padding-right: 56px;
}
#alexjplogo-container{
width: 85px;
}
#alexlogo-container{
  width: 79px;
}


/* Text Grid */
.text-container{
  padding-top: 95px;
  padding-right: 56px;
  padding-left: 56px;
  padding-bottom: 95px;
}
.sub-heading{
  font-size: 22px;
}
.body-text{
  width: 600px;
}


/* Image Styles and Grid */
.portfolio{
  display: grid; 
  padding-right: 56px;
  padding-left: 56px;
  grid-template-columns: 1fr;
}
.image-container{
  margin-bottom: 38px;
}


/* Text & Font Styles */
p{
  font-size: 22px;
}
h1{
  font-size: 22px;
}
.h1-en{
  font-size: 22px;
}
h2{
  font-size: 22px;
}
h3{
  font-size: 22px;
  margin-bottom: 8px;
}


/* Carousel Dots */
.dots {
  bottom: 22px;
  gap: 6px;
}
.dot {
  height: 7px;
  width: 7px;
  margin: 2px;
}
}


/* Screen Size above 770px and below 990px */
@media only screen and (min-width: 770px) and (max-width: 990px){


/* Tool Bar Styles */
.tool-bar{
  height: 66px;
}
.tool-bar-english-start{
  margin-left: 45px;
  margin-right: 19px;
}
.tool-bar-english{
  margin-left: 19px;
  margin-right: 19px;
}
.tool-bar-language{
  margin-left: 19px;
  margin-right: 45px;
  margin-left: 5px;
}
.divider{
  border-left: 3px solid rgb(230, 51, 49);
  height: 25px;
  margin-top: 5px;
  margin-left: 4px;
  margin-right: 4px;
}
.tool-bar-japanese-text{
  font-size: 20px;
}


/* Logo & Logo Image Styles */
.tool-bar-logo-left{
  height: 86px;
  padding-left: 45px;
}
.tool-bar-logo-right{
  height: 86px;
  padding-right: 45px;
}
#alexjplogo-container{
  width: 85px;
}
#alexlogo-container{
  width: 79px;
}


/* Text Grid */
.text-container{
  padding-top: 75px;
  padding-right: 45px;
  padding-left: 45px;
  padding-bottom: 75px;
}
.sub-heading{
  font-size: 20px;
}
.body-text{
  width: 480px;
}


/* Image Styles and Grid */
.portfolio{
  display: grid; 
  padding-right: 45px;
  padding-left: 45px;
  grid-template-columns: 1fr;
}
.image-container{
  margin-bottom: 30px;
}


/* Text & Font Styles */
p{
  font-size: 20px;
}
h1{
  font-size: 20px;
}
.h1-en{
  font-size: 20px;
}
h2{
  font-size: 20px;
}
h3{
  font-size: 20px;
  margin-bottom: 8px;
}


/* Carousel Dots */
.dots {
  bottom: 22px;
  gap: 6px;
}
.dot {
  height: 7px;
  width: 7px;
  margin: 2px;
}
}


/* Screen Size above 600px and below 770px */
@media only screen and (min-width: 601px) and (max-width: 769px){


/* Tool Bar Styles */
.tool-bar{
  height: 66px;
}
.tool-bar-english-start{
  margin-left: 45px;
  margin-right: 19px;
}
.tool-bar-english{
  margin-left: 19px;
  margin-right: 19px;
}
.tool-bar-language{
  margin-left: 19px;
  margin-right: 45px;
  margin-left: 5px;
}
.divider{
  border-left: 3px solid rgb(230, 51, 49);
  height: 25px;
  margin-top: 5px;
  margin-left: 4px;
  margin-right: 4px;
}
.tool-bar-japanese-text{
  font-size: 20px;
}


/* Logo & Logo Image Styles */
.tool-bar-logo-left{
  height: 86px;
  padding-left: 45px;
}
.tool-bar-logo-right{
  height: 86px;
  padding-right: 45px;
}
#alexjplogo-container{
  width: 85px;
}
#alexlogo-container{
  width: 79px;
}


/* Text Grid */
.text-container{
  display: block;
  justify-content: none;
  flex-direction: none;
  padding-top: 75px;
  padding-right: 45px;
  padding-left: 45px;
  padding-bottom: 75px;
}
.sub-heading{
  font-size: 20px;
}
.body-text{
  padding-top: 10px;
  width: auto;
}


/* Image Styles and Grid */
.portfolio{
  display: grid; 
  padding-right: 45px;
  padding-left: 45px;
  grid-template-columns: 1fr;
}
.image-container{
  margin-bottom: 30px;
}


/* Text & Font Styles */
p{
  font-size: 20px;
}
h1{
  font-size: 20px;
}
.h1-en{
  font-size: 20px;
}
h2{
  font-size: 20px;
}
h3{
  font-size: 20px;
  margin-bottom: 8px;
}


/* Carousel Dots */
.dots {
  bottom: 20px;
  gap: 6px;
}
.dot {
  height: 7px;
  width: 7px;
  margin: 2px;
}
}


/* Screen Size below 600px */
@media only screen and (max-width: 600px){


/* Phone Tool Bar Styles */
.tool-bar-phone{
  padding-top: 15px;
  padding-left: 15px;
  padding-right: 15px;
  justify-content: space-between;
  display: flex;
  transition: top 0.5s;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 500;
}
.phone-links-bg{
  display: none;
  z-index: -100;
  position: absolute;
  top: 0;
  left: 0;
  vertical-align: middle;
  background-color: white;
  opacity: 0.75;
  height: 275px;
  width: 100vh;
}
.tool-bar-phone #phone-links {
  display: none;
}
.phone-links {
  padding-top: 35px;
  position: block;
  display: none;
}
.tool-bar-phone a {
  text-decoration: none;
  display: block;
}
.phone-text{
  z-index: 500;
  padding-top: 0px;
  padding-bottom: 15px;
  display: block;
  text-align: center;
}
.tool-bar-english-text{
  color: rgb(69, 101, 173);
  z-index: 500;
  padding-top: 0px;
  padding-bottom: 10px;
  display: block;
  text-align: center;
  font-size: 18px;
}
.tool-bar-japanese-text{
  z-index: 500;
  padding-top: 0px;
  padding-bottom: 10px;
  display: block;
  text-align: center;
  font-size: 18px;
}
.tool-bar-english-text:hover{
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
  color: rgb(230, 51, 49);
}
.tool-bar-japanese-text:hover{
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
  color: rgb(69, 101, 173);
}


/* Hamburger Menu */
.logo-phone-en{
  left: 15px;
  top: 15px;
  position: absolute;
  height: 30px;
}
.logo-phone-jp{
  left: 50px;
  top: 15px;
  position: absolute;
  height: 30px;
}
.hamburger-icon-en{
  height: 20px;
  display: block;
  position: absolute;
  right: 15px;
  top: 15px;
  overflow: hidden;
}


/* Main Video Styles */
.video-container {
  position: relative;
  top: 0;
  width: 100%;
  height: 70vh;
  overflow: hidden;   
  z-index: 0;
}
.video-container iframe {
  width: 124.3vh; 
}


/* Tool Bar & Logos Styles (hidden)*/
.tool-bar{
 display: none;
}
.tool-bar-logo-left{
  display: none;
}
.tool-bar-logo-right{
  display: none;
}


/* Text Grid */
.text-container{
  display: block;
  justify-content: none;
  flex-direction: none;
  padding-top: 75px;
  padding-right: 30px;
  padding-left: 30px;
  padding-bottom: 75px;
}
.sub-heading{
  font-size: 18px;
}
.body-text{
  padding-top: 10px;
  width: auto;
}


/* Image Styles and Grid */
.portfolio{
  display: grid; 
  padding-right: 15px;
  padding-left: 15px;
  grid-template-columns: 1fr;
}
.image-container{
  margin-bottom: 15px;
}


/* Text & Font Styles */
p{
  font-size: 18px;
}
h1{
  font-size: 18px;
}
.h1-en{
  font-size: 18px;
}
h2{
  font-size: 18px;
}
h3{
  font-size: 18px;
  margin-bottom: 5px;
}


/* Carousel Dots */
.dots {
  bottom: 14px;
  gap: 4px;
}
.dot {
  height: 7px;
  width: 7px;
  margin: 1px;
}
}