:root {
  --bg-color: 255, 255, 255;
  --text-color: 12, 12, 12;
  --shadow-color: 0, 0, 0;
  --gradient-1: 108, 29, 103;
  --gradient-2: 108, 25, 148;
  --sidebar-gradient-1: 255, 255, 255;
  --sidebar-gradient-2: 251, 247, 247;
  --invert: 100%; }

#headers {
  margin-top: 3rem;
  display: flex; }
  #headers header * {
    font-size: 2.25rem;
    margin: 0;
    color: rgba(var(--text-color), 1); }
  #headers header {
    box-shadow: 0 3px 6px rgba(var(--text-color), 0.16), 0 3px 6px rgba(var(--text-color), 0.23);
    background-color: rgba(var(--bg-color), 1);
    margin-left: 3rem;
    padding: 5.6rem 3.2rem;
    justify-content: space-around;
    transition: all .4s; }
    #headers header:hover {
      box-shadow: 0 10px 20px rgba(var(--text-color), 0.19), 0 6px 6px rgba(var(--text-color), 0.23); }
  #headers header div {
    display: flex;
    flex-direction: column;
    align-items: center; }
  #headers header:last-of-type {
    flex-grow: 1;
    display: flex;
    margin-right: 6rem; }
  @media (max-width: 1100px) {
    #headers {
      margin-top: 6rem;
      flex-direction: column; }
      #headers header * {
        text-align: center;
        font-size: 3.5rem; }
      #headers header {
        margin: 0 4rem !important;
        padding: 8rem 3.2rem; }
      #headers header:last-of-type {
        margin-top: 5rem !important; } }

#input-section {
  margin-top: 3rem;
  margin-left: 6rem; }
  #input-section * {
    display: block; }
  #input-section input {
    width: max-content;
    font-size: 3rem;
    text-transform: uppercase;
    background-color: transparent;
    opacity: .36;
    outline: none;
    border: none;
    color: rgba(var(--text-color), 1); }
  #input-section label {
    visibility: hidden;
    color: rgba(var(--text-color), 1);
    font-size: 1rem;
    opacity: .5; }
  #input-section input:focus + label {
    visibility: visible; }
  #input-section ::placeholder {
    color: inherit; }
  @media (max-width: 1400px) {
    #input-section input {
      font-size: 4.2rem; }
    #input-section label {
      font-size: 1.5rem; } }
  @media (max-width: 1100px) {
    #input-section {
      margin: 3rem 0 0; }
      #input-section input {
        width: 100%;
        margin: 10rem 0 .5rem;
        font-size: 7.2rem;
        text-align: center; }
      #input-section label {
        font-size: 2.3rem;
        text-align: center;
        font-weight: 500;
        text-transform: uppercase; } }

#menu-section {
  color: rgba(var(--text-color), 1); }
  #menu-section input {
    display: none; }

input#menu:checked ~ #menu-controller {
  transform: translate(-10vw); }

input#menu:checked ~ #menu-dimmed-bg {
  visibility: visible;
  transform: translate(0);
  transition: transform 1s 0s; }

input#menu:checked ~ #menu-content {
  visibility: visible;
  transform: translate(0);
  transition: transform .5s .4s; }

#menu-controller {
  width: calc(4.5vw + 70px);
  min-height: 100vh;
  height: 100%;
  box-sizing: border-box;
  flex-shrink: 0;
  padding-top: 40px;
  background-image: linear-gradient(rgba(var(--sidebar-gradient-1), 1), rgba(var(--sidebar-gradient-2), 1));
  box-shadow: 0 10px 20px rgba(var(--shadow-color), 0.19), 0 6px 6px rgba(var(--shadow-color), 0.23);
  transition: transform 1s; }
  #menu-controller label {
    width: 40%;
    margin: 0 auto;
    background-position: center;
    height: 50px;
    display: block;
    background-image: url("../images/hamburger.png");
    background-size: contain;
    background-repeat: no-repeat; }

#menu-dimmed-bg {
  visibility: hidden;
  transform: translate(-120vw);
  transition: all 0.8s 0.2s, color 0.2s, background-color 0.2s;
  background-color: rgba(var(--text-color), 0.6);
  z-index: 1;
  position: fixed;
  top: 0;
  min-height: 100vh;
  width: 100%; }

#menu-content {
  --menu-font-size: 2.25rem;
  visibility: hidden;
  transform: translate(-1200px);
  transition: all 0.6s 0s color 0.2s, background-color 0.2s;
  transition: transform .6s 0s, opacity 0s .6s;
  padding: 40px;
  padding-left: 100px;
  position: absolute;
  top: 0;
  z-index: 2;
  box-sizing: border-box;
  min-height: 100vh;
  background-color: rgba(var(--bg-color), 1);
  width: 54%; }
  #menu-content header {
    transition: all 0.2s;
    display: flex;
    justify-content: space-between; }
    #menu-content header h4 {
      text-transform: uppercase;
      margin: 0;
      font-size: var(--menu-font-size); }
    #menu-content header label {
      width: 40px;
      height: 40px;
      margin-right: 100px;
      background-image: url("../images/close.png");
      background-size: contain;
      background-repeat: no-repeat; }
  #menu-content #theme {
    transition: all 0.2s; }
    #menu-content #theme h5 {
      margin-top: 7rem;
      font-size: var(--menu-font-size);
      text-transform: uppercase;
      line-height: 10%; }
      #menu-content #theme h5 span {
        margin-left: 40px; }
        #menu-content #theme h5 span:hover {
          opacity: .6; }
  #menu-content #completed-tasks {
    transition: all 0.2s; }
    #menu-content #completed-tasks h5 {
      font-size: var(--menu-font-size);
      margin: 7rem 0 1.5 rem;
      text-transform: uppercase; }
    #menu-content #completed-tasks li {
      font-size: var(--menu-font-size);
      list-style: none;
      margin: 12px 0;
      width: max-content;
      padding: 5px; }
      #menu-content #completed-tasks li span {
        margin-left: 22px; }
  #menu-content #reset {
    transition: all 0.2s;
    font-size: var(--menu-font-size);
    text-transform: uppercase;
    padding: 5px;
    width: max-content; }
    #menu-content #reset:hover {
      background-color: rgba(var(--text-color), 1);
      color: rgba(var(--bg-color), 1); }
  @media (max-width: 1500px) {
    #menu-content {
      width: 70%; } }

@media (max-width: 1100px) {
  #menu-controller {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: auto;
    height: 100px;
    padding-top: 0; }
    #menu-controller label {
      width: 100px; }
  #menu-dimmed-bg {
    transform: translate(0, -120vh); }
  #menu-content {
    --menu-font-size: 3.2rem;
    transform: translate(0, -100vh);
    width: 100%;
    padding: 0; }
    #menu-content header {
      display: flex;
      flex-direction: column-reverse;
      align-items: center; }
      #menu-content header label {
        height: 40px;
        margin: 40px 0;
        background-position: center; }
    #menu-content #theme {
      margin: 10 rem; }
      #menu-content #theme h5 {
        text-align: center; }
    #menu-content #completed-tasks h5 {
      margin: 10rem 0 4rem;
      text-align: center; }
    #menu-content #completed-tasks li {
      margin-left: auto;
      margin-right: auto; }
    #menu-content #reset {
      margin: 12rem auto 100px; }
  input#menu:checked #menu-controller {
    transform: translate(0, -10vh); } }

@media (max-width: 500px) {
  #menu-controller {
    height: 75px; }
    #menu-controller label {
      height: 40px; } }

@keyframes flipInX {
  from {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg) translateY(-50%);
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg) translateY(-50%);
    animation-timing-function: ease-in; }
  60% {
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg) translateY(-50%);
    animation-timing-function: ease-in; }
  80% {
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg) translateY(-50%);
    animation-timing-function: ease-in; }
  to {
    transform: perspective(400px) translateY(-50%); } }

@keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

#modal {
  border: none;
  font-size: 1rem;
  background-image: linear-gradient(to left, rgba(var(--gradient-1), 1), rgba(var(--gradient-2), 1));
  color: white;
  padding: 2.8rem 10rem;
  position: fixed;
  z-index: 100;
  top: 50%;
  transform: translateY(-50%);
  outline: none; }
  #modal h2 {
    margin-bottom: 30px;
    line-height: 170%; }
  #modal button {
    outline: none;
    border: 2px solid white;
    font-size: 1.15rem;
    background-color: white;
    color: #222;
    padding: .6em 4em;
    transition: all .1s;
    background-color: transparent;
    color: white; }
    #modal button:hover {
      transform: scale(1.1); }
  #modal[open] {
    animation: flipInX ease .5s .2s;
    animation-fill-mode: both; }
    @media (max-width: 1100px) {
      #modal[open] {
        animation: fadeIn ease .25s; } }
  @media (max-width: 1400px) {
    #modal {
      font-size: 1.65rem; }
      #modal button {
        font-size: 1.85rem; } }
  @media (max-width: 1100px) {
    #modal {
      font-size: 3.2rem;
      height: 100vh;
      width: 100%;
      text-align: center;
      padding: 0;
      padding-top: 60vh;
      margin: 0; }
      #modal h2 {
        text-align: center; }
      #modal button {
        font-size: 3.5rem; } }
  @media (max-width: 500px) {
    #modal {
      letter-spacing: -1px;
      font-size: 2.45rem; }
      #modal button {
        font-size: 3rem; } }

@keyframes task-exit {
  from {
    transform: perspective(400px); }
  30% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1; }
  to {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0; } }

.exit {
  animation-name: task-exit;
  animation-duration: .35s;
  animation-fill-mode: forwards; }

#task-list {
  height: 40vh;
  margin-left: 6rem;
  margin-top: 3rem;
  margin-bottom: 0;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-content: flex-start;
  user-select: none;
  font-size: 16px; }
  #task-list li {
    list-style: none;
    font-size: 5em;
    margin: .34em 0;
    margin-right: 2em;
    color: rgba(var(--text-color), 1); }
  @media (max-width: 1500px) {
    #task-list {
      font-size: 15px; } }
  @media (max-width: 1500px) {
    #task-list {
      height: 54vh; } }
  @media (max-width: 1300px) {
    #task-list {
      font-size: 14px; } }
  @media (max-width: 1200px) {
    #task-list {
      font-size: 13px; } }
  @media (max-width: 1100px) {
    #task-list {
      font-size: 12px;
      flex-wrap: nowrap;
      height: auto;
      align-items: center;
      margin: 6rem 0 12rem; }
      #task-list li {
        margin: 2rem 0;
        font-size: 6.4rem; }
      #task-list li:last-of-type {
        margin-bottom: 10rem; } }
  #task-list li:first-child:nth-last-child(n+3),
  #task-list li:first-child::nth-last-child(n+3) ~ li {
    font-size: 4.5em; }
  #task-list li:first-child:nth-last-child(n+5),
  #task-list li:first-child::nth-last-child(n+5) ~ li {
    font-size: 3.2em; }
  #task-list li:first-child:nth-last-child(n+9),
  #task-list li:first-child::nth-last-child(n+9) ~ li {
    font-size: 2.8em; }
  #task-list li:first-child:nth-last-child(n+12),
  #task-list li:first-child::nth-last-child(n+12) ~ li {
    font-size: 2.4em; }
  #task-list li:first-child:nth-last-child(n+20),
  #task-list li:first-child::nth-last-child(n+20) ~ li {
    font-size: 2.1em; }
  #task-list li:first-child:nth-last-child(n+25),
  #task-list li:first-child::nth-last-child(n+25) ~ li {
    font-size: 2em; }
  #task-list li:first-child:nth-last-child(n+30),
  #task-list li:first-child::nth-last-child(n+30) ~ li {
    font-size: 1.75em; }

.black {
  font-weight: 900; }

.bold {
  font-weight: 700; }

.current-theme {
  border-bottom: 4px solid; }

.invert {
  background-color: rgba(var(--text-color), 1);
  color: rgba(var(--bg-color), 1);
  transition: all 0.2s; }

.icon {
  transition: transform .4s;
  transform-origin: center;
  transition-timing-function: cubic-bezier(0.9, 1.65, 0.42, 0.61); }
  .icon:hover {
    transform: rotate(180deg); }

header, h1, h2, h3, h4, h5, h6, input {
  font-weight: inherit; }

button, input {
  font-family: inherit; }

ul {
  padding: 0; }

:root {
  min-height: 100vh; }
  @media (max-width: 1720px) {
    :root {
      font-size: 95%; } }
  @media (max-width: 1600px) {
    :root {
      font-size: 90%; } }
  @media (max-width: 1500px) {
    :root {
      font-size: 82%; } }
  @media (max-width: 1400px) {
    :root {
      font-size: 75%; } }
  @media (max-width: 1300px) {
    :root {
      font-size: 70%; } }
  @media (max-width: 1200px) {
    :root {
      font-size: 62%; } }
  @media (max-width: 1100px) {
    :root {
      font-size: 55%; } }
  @media (max-width: 1000px) {
    :root {
      font-size: 50%; } }
  @media (max-width: 900px) {
    :root {
      font-size: 45%; } }
  @media (max-width: 800px) {
    :root {
      font-size: 42%; } }
  @media (max-width: 700px) {
    :root {
      font-size: 38%; } }
  @media (max-width: 600px) {
    :root {
      font-size: 35%; } }
  @media (max-width: 500px) {
    :root {
      font-size: 32%; } }

body {
  font-family: "Montserrat", sans-serif;
  background-color: rgba(var(--bg-color), 1);
  margin: 0;
  cursor: default;
  min-height: 100vh;
  display: none; }
  @media (max-width: 1100px) {
    body {
      flex-direction: column; } }

#main {
  flex-grow: 1;
  position: relative; }

#main::after {
  content: "";
  position: fixed;
  top: 0;
  right: 0;
  z-index: -1;
  height: 44vh;
  width: 20%;
  background-image: linear-gradient(rgba(var(--gradient-1), 1), rgba(var(--gradient-2), 1));
  clip-path: polygon(0 0, 100% 0, 100% 83%, 22% 100%); }
  @media (max-width: 1600px) {
    #main::after {
      width: 30%; } }
  @media (max-width: 1400px) {
    #main::after {
      width: 40%;
      height: 38vh;
      clip-path: polygon(0 0, 100% 0, 100% 83%, 22% 100%); } }
  @media (max-width: 1100px) {
    #main::after {
      position: absolute;
      width: 100%;
      height: 10vh;
      top: auto;
      bottom: 0;
      clip-path: polygon(0 39%, 100% 0, 100% 100%, 0 100%); } }
