* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}

.canvas {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100vw;
  height: 100vh;
}

.background {
  width: 90vmin;
  height: 65vmin;
   background: linear-gradient(
    to bottom,
    #0b1d3a,
    #1c3b70
  );
  animation: sky-cycle 30s ease-in-out infinite;
  border-radius: 50%;
  transform: rotate(-40deg);
  opacity: 0.8;
  z-index: -4;
  position: relative; 
    overflow: hidden;

}
.sun {
  position: relative;
  left: 78%;
  bottom: -44vmin;
  width: 8vmin;
  height: 8vmin;
  border-radius: 50%;
  background: #ff8c00;
  transform: translateX(-50%);
  animation: sun-cycle 30s ease-in-out infinite;
}
.girl {
  display: flex;
  flex-direction: column;
  position: absolute;
  align-items: center;
}
.head {
  position: relative;
}

.face {
  width: 28vmin;
  height: 25vmin;
  background: #fcead5;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding-top: 15%;
  position: relative;
}

.eyes,
.eyebrows,
.blushes {
  display: flex;
  width: 60%;
  justify-content: space-around;
  align-items: center;
}
.eye {
  width: 4.2vmin;
  height: 5.5vmin;
  border-radius: 50% 50% 5% 25%;
  background-color: white;
  box-shadow: 0 -5px 5px #eed3d9;
}

.iris {
  width: 3vmin;
  height: 3vmin;
  background: #434040;
  border-radius: 50%;
  position: relative;
  top: 45%;
  left: 16%;
}
.light {
  position: relative;
  width: 1vmin;
  height: 1vmin;
  background: white;
  border-radius: 50%;
  top: 10%;
  left: 10%;
}

.e2 {
  transform: scaleX(-1);
}
.l2 {
  left: 61%;
}

.eyebrow {
  width: 7vmin;
  height: 2vmin;
  border-radius: 50%/1vmin;
  border: solid 0.6vmin;
  border-color: #713d0e transparent transparent transparent;
}
.blush {
  width: 8vmin;
  height: 2vmin;
  border-radius: 50%;
  background: #fbc0c0;
  box-shadow: 0 0 0.62rem #fbc0c0;
  filter: blur(4px);
  opacity: 0.66;
}
.nose {
  width: 2.4vmin;
  height: 2.4vmin;
  border-radius: 50%;
  border: solid 0.5vmin;
  border-color: #caa482 #caa482 #caa482 transparent;
  transform: rotate(-30deg);
  opacity: 0.8;
}
.mouth {
  width: 7vmin;
  height: 6.5vmin;
  border-radius: 50%;
  border: solid 0.5vmin;
  border-color: transparent transparent #caa482 transparent ;
  opacity: 0.8;
  position: relative;
  top: -6%;
}

.hair {
  position: absolute;
  top: 0vmin;
}

.hair-front {
  display: flex;
  position: relative;
  left: 17%;
  top: -4vmin;
}
.front {
  width: 14vmin;
  height: 15vmin;
  background: #713d0e;
  border-radius: 130% 0 130% 0;
  transform: rotate(6deg);
}
.f2 {
  transform: scaleX(-1) rotate(6deg);
}
.hair-back {
  width: 40vmin;
  height: 44vmin;
  border-radius: 50% 50% 0 0;
  background: #713d0e;
  position: relative;
  top: -20vmin;
  z-index: -1;
}
.hair-back::after {
  content: '';
  display: block;
  position: relative;
  width: 40vmin;
  height: 7vmin;
  background: #713d0e;
  top: 95%;
  border-radius: 0 0 50% 50%;
  clip-path: polygon(
    0% 100%,
    0% 0%,
    100% 0%,
    100% 100%,
    94% 100%,
    93% 20%,
    91% 100%,
    88% 100%,
    86% 40%,
    82% 159%,
    13% 100%,
    11% 50%,
    9% 100%
  );
}

.neck {
  width: 6vmin;
  height: 8vmin;
  background: #fcead5;
  position: relative;
  top: -1vmin;
}

.body {
  width: 28vmin;
  height: 34vmin;
  background: #a37756;
  border-radius: 50%;
  position: absolute;
  top: 85%;
}

.table {
  width: 100vmin;
  height: 5vmin;
  background-color: #c6b09c;
  position: relative;
  top: 12vmin;
}

.on-table {
  width: 100vmin;
  display: flex;
  justify-content: space-around;
  align-items: end;
  position: relative;
}

.laptop {
  width: 34vmin;
  height: 21vmin;
  border-radius: 10%;
  background-color: #888888;
  z-index: 2;
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
}

.shirt-neck {
  width: 6.2vmin;
  height: 4vmin;
  background: #a37756;
  position: absolute;
  left: 39%;
  top: -6%;
}



.apple {
  position: absolute;
  right: 20%;
  width: 6vmin;
  height: 5vmin;
  background-color: #ec6a6a;
  border-radius: 50%;
}

.apple::before {
  content: '';
  display: block;
  width: 1vmin;
  height: 2vmin;
  border-radius: 20% 80% 0 0;
  background-color: #6b8e23;
  position: relative;
  top: -1vmin;
  left: 3vmin;
  transform: rotate(55deg);
}

.apple::after {
  content: '';
  display: block;
  width: 1vmin;
  height: 1vmin;
  border-radius: 50%;
  background-color: #fff;
  position: relative;
  top: -1vmin;
  left: 1.5vmin;
  opacity: 0.6;
}

.books {
  display: flex;
  flex-direction: column;
  position: absolute;
  left: 20%;
}
.book {
  width: 8vmin;
  height: 2vmin;
  border-radius: 0.5vmin;
}

.bk1 {
  background-color: #b3918d;
  width: 7vmin;
  height: 2.5vmin;
    align-self: center;
}
.bk2 {
  background-color: #696080;
  width: 8.5vmin;
  height: 2vmin;
}
.bk3 {
  background-color: #7e9160;
  width: 10vmin;
  height: 2.2vmin;
    align-self: end;
}


.building {
  width: 20vmin;
  height: 30vmin;
  background: #1e2327;
  position: relative;
  bottom: -7vmin;
  left: -11vmin;
  border-radius: 2vmin 2vmin 0 0;
  transform: rotate(40deg);
}

.flag{
  width: 5vmin;
  height: 2vmin;
  position: relative;
  top: -3vmin;
  left: 14vmin;
}
.flag-top {
  width: 100%;
  height: 33%;
  background-color: black;
  position: relative;
}
.flag-middle {
  width: 100%;
  height: 33%;
  background-color: red;
  position: relative;
}
.flag-bottom {
  width: 100%;
  height: 33%;
  background-color: gold;
  position: relative;
}
.flag::before{
  content: '';
  display: block;
  width: 0.5vmin;
  height: 2vmin;
  background-color: black;
  position: absolute;
  left: 0;
  top: 1vmin;
}

@keyframes sun-cycle {
  0% {
    transform: translate(-50%, 12vmin);
    background: #ff5e00; /* sunrise */
  }

  25% {
    transform: translate(-50%, 0vmin);
    background: #ffae00;
  }

  50% {
    transform: translate(-50%, -14vmin);
    background: #ffd93b; /* noon */
  }

  75% {
    transform: translate(-50%, 0vmin);
    background: #ff8c42;
  }

  100% {
    transform: translate(-50%, 12vmin);
    background: #ff4500; /* sunset */
  }
}

@keyframes sky-cycle {
  0% {
    background: linear-gradient(to bottom, #0b1d3a, #1c3b70);
  }

  25% {
    background: linear-gradient(to bottom, #ffb347, #87ceeb);
  }

  50% {
    background: linear-gradient(to bottom, #87ceeb, #e0f6ff);
  }

  75% {
    background: linear-gradient(to bottom, #ff9966, #6a5acd);
  }

  100% {
    background: linear-gradient(to bottom, #0b1d3a, #1c3b70);
  }
}


