/*
Theme Name:     shell api
Description:    Shell Project
Author:         toolbox

*/

:root {
    --main-color: #000;
    --checkbox-border-color: #000;
    --checkbox-fill-color: #000;
    --gap: 35px;
}

html{
    width: 100vw;
    height: 100vh;     
    font-size: 16px;        
}

body{ 
    background: #ffffff;
    font-family: "Sofia Sans Condensed", sans-serif;
    color: var(--main-color);    
    font-size: 1.4rem;
    text-align: center;
    
    width: 100vw;
    height: 100vh;    
    overflow: hidden;
}

a{
    color: var(--main-color);
}

img[src$=".gif"] {
    user-select: none;
    -webkit-user-drag: none;
}

.gif-wrapper {
    position: relative;
    display: inline-block;
}

.overlay {
    position: absolute;
    inset: 0;
    background: transparent;
    z-index: 30;
}

body *{
    font-family: "Sofia Sans Condensed", sans-serif;
}

.slide{
    width: 100%;
    height: 100%;
    position: relative;
    display: none; 
}

.slide.active{
    display: block;
}

button{
    border: 0;
    background-color: transparent;
    color: #fff;
}

.fixed-images{
    position: absolute;
    z-index: 1;
    display: block;
    
}

/*
 * Intro Animation
*/
.intro-wrapper.active, .exseed-limit.active{
    display: flex;
}

.exseed-limit p{
    color: #c51828;
    font-size: 1.1rem;
    line-height: 1.3rem;
}

.intro-wrapper, .exseed-limit{
    position: fixed;        
    inset: 0;
    align-items: center;
    justify-content: center;
    background: transparent;
    z-index: 3;
  
}

.intro-gif{
    width: 50%;
    height: auto;
    padding: 0 2% 0 0;
    
}

.form-control{
    border: 0;    
    width: 210px;
    margin: 0 auto;
    
    display: grid!important;
    grid-template-columns: 1em auto;
    gap: 0.8em;    
    font-size: 1rem;
    line-height: 1.2rem;
    position: relative;
    
}

.form-control input[type="checkbox"] {
    /* Add if not using autoprefixer */
    -webkit-appearance: none;
    appearance: none;
    /* For iOS < 15 to remove gradient background */
    background-color: transparent;
    /* Not removed via appearance */
    margin: 0;
    
    font: inherit;
    color: transparent;
    width: 1.2em;
    height: 1.2em;
    border: 0.15em solid var(--checkbox-border-color);
    border-radius: 0.15em;
    transform: translateY(-0.075em);    
    
    display: grid;
    place-content: center;    
    
}

.form-control .checkbox-text{
    font-size: 1rem;
    line-height: 1.2rem;
    text-align: center;
    position: absolute;
    top: -1px;
    left: 25px;    
    
}

.form-control .checkbox-text a{
    text-decoration: underline;
    
}

input[type="checkbox"]::before {
  content: "";
  width: 1em;
  height: 1em;
  transform: scale(0);
  transition: 120ms transform ease-in-out;
  box-shadow: inset 1em 1em var(--checkbox-fill-color);
  
  transform-origin: bottom left;
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);  
  
}

input[type="checkbox"]:checked::before {
  transform: scale(1);
  
}

.start{
    font-size: 2rem;
    margin: 5rem auto 1rem auto;
    position: relative;
    text-align: center;
    display: block;
    width: 30vw;
    max-width: 500px;
    color: #000000;
    
}

.start img{
    width: 100%;
    height: auto;
}

/*
 * Intro Animation
*/

/*
 * wraper
*/

.areas-wrapper {
  overflow: hidden;
  width: 100%;
  height: 100%;
  position: fixed;

  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
  
}

.areas-track {
  display: flex;
  width: 100%;
  height: 100%;  
  transition: transform 0.3s ease;
  will-change: transform;
}

.area {
  width: 100%;
  height: 100%;
  flex-shrink: 0;
  position: relative;
  
  overflow: hidden; /* σημαντικό για slider */  
}

.areas-wrapper,
.areas-track,
.area {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

.background-image{
    width: auto;
    height: 100%;
    
    position: absolute;

    top: 50%;
    left: 50%;

    transform: translate(-50%, -50%);
    z-index: 1;
}

.front-area{
    width: 100%;
    height: 100%;
    
    position: absolute;    
    z-index: 5;    
}

.logo-shell{
    display: block;
    margin: 3% auto 2% auto;
    width: 25vw;
    height: auto;
}

.logo-date{
    width: 50vw;
    height: auto;   
    position: absolute;
    left: 50%;
    bottom: 1%;
    transform: translate(-50%, 0);   
    
}

.choise-area,
.choise-area img,
.main-choise {
  -webkit-tap-highlight-color: transparent;
}

.wrapper-choise-area, ul.choises li{
    width: 88%;
    margin: 0 auto;
    display: grid;
    
    grid-template-columns: 0.9fr 4.2fr 0.9fr;
    align-items: center;
}

.wrapper-choise-area{
    position: relative;
    z-index: 20;
}

ul.choises {
    list-style-type: none;
    max-height: 0;
    overflow: hidden;

}

ul.choises li{
    margin: 3% auto;
    font-size: 1.3rem;
}

.choise-selection{
    text-align: center;
    background-color: #fceed3;
    border: 2px solid #953217;
    border-radius: 30px;
    color: #953217;
    padding: 5px 0;
    display: block;
    transition: 0.4s;
}

#area-slide-2 .choise-selection{
    background-color: #b9b9b9;
    border: 2px solid #10100e;
    color: #10100e;    
}

.left-hand-animation, .right-hand-animation{
    display: block;
    width: 100%;
    height: auto;
    padding: 0;
    margin: 0 0 80% 0;
}

.active-slide .left-hand-animation, .active-slide .right-hand-animation{
    animation-duration: 1.2s;
    animation-timing-function: ease-in-out;    
    animation-iteration-count: 4; /* θα παίξει 4 φορές και θα σταματήσει */
}

.choise-area{
    width: 100%;    
    padding: 0;
    margin: 0;    
}

.choise-area img{
    width: 100%;
    height: auto;    
    padding: 0;
    margin: 0;    
}

/* αριστερό χέρι → κινείται αριστερά */
.active-slide .left-hand-animation {
    animation-name: moveLeft;
}

/* δεξί χέρι → κινείται δεξιά */
.active-slide .right-hand-animation {
    animation-name: moveRight;
}

@keyframes moveLeft {
    0% {
        transform: translateX(0);
    }
    50% {
        transform: translateX(-8px);
    }
    100% {
        transform: translateX(0);
    }
}

@keyframes moveRight {
    0% {
        transform: translateX(0);
    }
    50% {
        transform: translateX(8px);
    }
    100% {
        transform: translateX(0);
    }
}

/*
 * wraper
*/

/*
 * Take Image 
*/

#take-image.active{
    position: fixed;
    background-color: #dcdecc;
}

#preview-canvas, #video{
    width: 100vw;
    height: calc((4 * 100vw) / 3 );
}

#video.selfie, #preview-canvas.selfie{
    -webkit-transform: scaleX(-1);
    transform: scaleX(-1); /* για mirror */    
}

#video{
    display: block;
    position: absolute;
    z-index: 10;
    left: 0;
    top: 0;
    opacity: 0;
}

#preview-canvas{
    background-color: #000000;
}

.effect-area{
    width: 90%;
    margin: 10vw auto 3vw auto;
    display: grid;
    
    grid-template-columns: 5fr 3fr 5fr;
    align-items: center;    
    position: relative;
}

.effect-area button{
    display: block;
    padding: 0;
    color: #000000;
    background-color: #f2f2eb;
    position: relative;    
}

.effect-area .line-button{
    padding: 0.5rem 0;
    margin: 1rem 0;
    font-size: 1.1rem;
    font-weight: bold;
    z-index: 5;
    
}

.effect-area .curcle-button{
    padding: 0.7rem 0.9rem;
    border-radius: 45px;
    z-index: 10;
    height: 90px;
    width: 90px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}

.effect-area .left-button{
    right: -10px;
    border-radius: 20px 0 0 20px;    
}

.effect-area .right-button{
    left: -10px;
    border-radius: 0 20px 20px 0;        
}

.curcle-button img{
    width: 100%;
    height: 100%;
    display: none;
}

.curcle-button img.area-1930{
    width: 90%;
    height: 90%;
}

.curcle-button img.area-1950{
    width: 95%;
    height: auto;
}

.curcle-button img.area-1970{
    width: 93%;
    height: auto;
}

.curcle-button img.active-image{
    display: block;    
}

#change-camera{
    position: absolute;
    display: none;
    width: 15vw;
    height: 15vw;
    right: 0;
    top: calc(((4 * 100vw) / 3 ) - 15vw);
    z-index: 50;
}

#change-camera.active{
    display: block;
}

#change-camera svg {
    transition: transform 0.4s ease;
}

#change-camera.rotate svg {
    transform: rotate(180deg);
}

#take-image svg{
    width: 100%;
    height: 100%;
}

/*
 * Take Image 
*/

/*
 * Download Image 
*/

#download-image.active{
    position: fixed;    
    background-color: #dcdecc;
    overflow: hidden;
}

#final-canvas{
    margin: 5vh auto 0 auto;
    border: 10px solid #ffffff;
    width: calc(90vw - 20px);
    height: calc((4 * calc(90vw - 20px)) / 3 );
    background-color: #c51828;
}

.image-demo{
    display: block;
    margin: 5vh auto 0 auto;    
    width: 80vw;    
    height: auto;
    
}

.has-diff .image-demo {
    width: 65vw;        
}

#download-image .effect-area .curcle-button{
    padding: 0.3rem 0.3rem;
    border-radius: 45px;
    height: 90px;
    width: 90px;
    
}

.curcle-button img.area-1930.show-logo, .curcle-button img.area-1950.show-logo, .curcle-button img.area-1970.show-logo{
    width: 100%;
    height: auto;
    
}

.left-button svg{
    width: 10%;
    height: auto;
    padding-right: 0.2rem;
    
}

#take-image .left-button svg{
    width: 8%;
    height: auto;
    padding-right: 0.2rem;
    position: relative;
    top: 0px;
}

.right-button svg,#take-image .right-button svg{
    width: 9%;
    height: auto;
    padding-left: 0.2rem;
    
}

#go-to-start, #go-back{
    color: #000000;
    font-weight: bold;
    font-size: 1.1rem;
    position: absolute;
    
}

#go-to-start{
    right: 10%;    
    z-index: 30;    
    
}

#go-back{
    bottom: 10px;    
    left: 10%;    
    z-index: 20;
    
}

/*
 * Download Image 
*/

/*
 * Loading
*/

#loading-decade.active{
    position: fixed;       
    background-color: #dcdecc;
}

#loading-decade .animated-logo{
    position: absolute;
    width: 23vw;
    height: auto;
    top: 34vh;
    left: 50%;
    transform: translate(-50%, 0);       
    z-index: 3;
}

#loading-decade.has-diff .animated-logo{
    width: 20vw;
    top: 32vh;
}

#loading-decade .top-animated-logo{
    position: absolute;
    width: 87vw;
    height: auto;    
    left: 50%;
    transform: translate(-50%, 0);           
    z-index: 2;    
    top: 4vh;    
}

#loading-decade.has-diff .top-animated-logo{
    width: 80vw;    
    top: 3vh;    
}

#loading-decade .top-animated-logo img, #loading-decade .animated-logo img{
    width: 100%;
    height: auto;
}

#loading-decade .animated-logo.android{
    top: calc(35vh - var(--gap));        
}

#loading-decade .message{
    position: absolute;
    width: 100%;
    text-align: center;
    left: 0;
    z-index: 3;
    top: 48vh;
}

#loading-decade.has-diff .message{
    top: 47vh;
}

#loading-decade .message p {
    transition: opacity 0.3s ease;
}

#loading-decade .message.android{
    top: calc(50vh - var(--gap));    
}

#loading-decade h2{
    padding: 2% 0;
    color: #c51828;
}

#loading-decade .message p{
    display: flex;
    padding: 0 5%;
    font-size: 1.1rem;
    line-height: 1.3rem;
    width: 90%;
    height: 10vh;
    flex-wrap: wrap;
    justify-content: center;
    align-content: center;
}

#loading-decade .warning{
    position: absolute;
    width: 100%;
    text-align: center;
    left: 0;
    z-index: 3;
    top: 65vh;    
    display: block;
    padding: 1% 0;
    color: #c51828;    
    text-align: center;
    font-size: 1.1rem;
    line-height: 1.3rem;    
}

#loading-decade .image-bottom {
    position: absolute;    
    left: 13%;
    bottom: -5px;    
    width: 74%;
    height: auto;
    z-index: 3;   
    display: none;
}

#loading-decade .image-bottom.active-image{
    display: block;    
}

/*
 * Loading
*/

/* Fold closed / very narrow screens */
@media (max-width: 330px) {

    .effect-area .line-button{
        font-size: 0.8rem;
    }
    
    #go-to-start, #go-back{
        font-size: 0.8rem;        
    }
    
}

/* Fold opened / wider than normal mobile */
@media (min-width: 600px) and (max-width: 900px) {
    .start{
        width: 15vw;
    }
    
    .logo-shell{
        width: 11vw;
    }
    
    ul.choises li{
        margin-top: 2%;
        margin-bottom: 2%;
    }
    
    .wrapper-choise-area, ul.choises li {
        width: 40%;
    }    
    
    .logo-date{
        width: 20vw;
    }

    #preview-canvas, #video{
        width: 42vw;
        height: calc((4 * 42vw) / 3);        
        margin-left: auto;
        margin-right: auto;
        
    }    
    
    #video{
        opacity: 0;
        
    }
    
    #change-camera{
        width: 6vw;
        
    }
    
    .effect-area{
        grid-template-columns: 10fr 2fr 10fr;
        margin-top: 3vw;
    }
    
    #loading-decade .top-animated-logo{
        width: 57vw;
    }
    
    #loading-decade .image-bottom{
        width: auto;
        height: 20vh;
        left: 50%;
        transform: translate(-50%, 0);           
    }
    
    #loading-decade .animated-logo{
        top: 40vh;
        width: 10vw;
    }
    
    .image-demo{
        margin-top: 2vh;
        width: 40vw;
    }
    
    .left-button svg, .right-button svg{
        width: 3%;
    }
    
    #take-image .left-button svg, #take-image .right-button svg{
        width: 5%;        
    }
    
}

@media (min-width: 901px) {
    .active{
        display: none!important;
    }
    
    #big-screens{
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
    }

}

body.orientation-locked{
    overflow: auto;    
}

.orientation-locked .active{
    display: none!important;
}

.orientation-locked #big-screens{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    overflow: auto;
}

.big-screen-area{
    text-align: center;
}

#big-screens p{
    display: block;
    width: 100%;
    text-align: center;
    font-size: 1.3rem;
    line-height: 1.6rem;
}

#big-screens .logo{
    width: 7vw;
    margin: 1rem auto 2rem auto;
}

#big-screens .qr-code{
    width: 12vw;
    margin: 2rem auto;        
}    

#big-screens .logo img, #big-screens .qr-code img{
    width: 100%;
    height: auto;
}    

#debugBox{
  position: fixed;
  bottom: 0px;
  left: 0px;
  background: rgba(0,0,0,0.7);
  color: #00ffcc;
  font-size: 14px;
  padding: 10px;
  z-index: 9999;
  font-family: monospace;
  width: 100%;
}




































