* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  --foreground-general: #9a9a9a;
  --foreground-emphasis: #ffffff;
  --background: #000000;
  --highlight-color-1: green;
  --highlight-color-2: blue;
}

#app {
  height: 100dvh;
  display: flex;
  flex-direction: column;
}

@keyframes showLine {
  to {
    visibility: visible;
  }
}

@keyframes blink {
  50% {
    opacity: 0;
  }
}

:root {
  font-family: "Parisienne", cursive;
  font-family: "VT323", monospace;
  color-scheme: light dark;
  color: rgba(255, 255, 255, 0.87);
  background-color: var(--background);
  font-size: 1.5rem;
  font-color: var(--foreground-general);
}

.status-bar {
  background-color: var(--foreground-general);
  color: var(--background);
  padding: 0.2rem;
}

.line {
  color: var(--foreground-general);
}

em {
  color: var(--foreground-emphasis);
}

.animated-display {
  visibility: hidden;
  animation-name: showLine;
  animation-duration: 0.01s;
  animation-fill-mode: forwards;
  animation-delay: calc(calc(var(--animation-order) * 500ms) + 2s);
}

.font-bold {
  color: var(--foreground-emphasis);
}

.terminal {
  padding: 12px;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  overflow-y: scroll;
  overflow-x: hidden;
  position: relative;
}

.fetch-logo pre {
  color: red;
}

.shell-prompt-main {
  color: var(--highlight-color-1);
}

.shell-prompt-alternate {
  color: var(--highlight-color-2);
}

.shell-prompt-container {
  align-items: center;
  display: flex;
  position: relative;
}

.shell-prompt-input {
  all: unset;
  caret-color: white;
  caret-shape: block;
  flex-grow: 1;
}

.shell-prompt-input:focus {
  outline: none;
}

#shell-form {
  flex-grow: 1;
  display: flex;
}

.intro {
  height: 100dvh;
  padding: 12px;
  display: flex;
  flex-direction: column;
  visibility: hidden;
  overflow: hidden;
  animation-name: showLine;
  animation-duration: 0.01s;
  animation-fill-mode: forwards;
  animation-delay: 2s;
}

.terminal-spacer {
  flex-grow: 1;
}

.line-break {
  height: 1rem;
}

.award-logo {
  counter-reset: lineCounter;
  height: 1.8rem;
  width: 1.2rem;
  align-self: center;
  margin-right: 0.3rem;
  image-rendering: pixelated;
  background: transparent url("/public/AwardLogo.webp") center/cover;
}

.startup-logo {
  display: flex;
  flex-direction: row;
}

.energy-star-logo {
  height: 7rem;
  width: 12rem;
  image-rendering: pixelated;
  position: fixed;
  top: 0;
  right: 0;
  margin: 30px 30px 0px 0px;
  background: transparent url("/public/EnergyStarLogo.webp") center/cover;
}

/* blog styles */

.blog {
  & h1 {
    padding-bottom: 2rem;
  }
  margin: 1rem;
  max-width: 48rem;
  padding: 0.25rem;
  & pre,
  & code {
    font-size: 0.8rem;
    color: var(--highlight-color-1);
    font-family: "Cutive Mono", monospace;
  }

  & p {
    margin: 1rem;
  }

  & ol,
  & ul {
    margin-left: 2rem;
  }

  & pre {
    padding: 1rem;
    margin: 1rem 0rem 1rem 2rem;
    border-left: 0.1rem solid var(--highlight-color-1);
  }

  & blockquote {
    margin: 0.5rem 0rem 1rem 2.5rem;
    padding: 0.1rem;
    padding-left: 0.5rem;
    border-left: 0.5rem solid var(--foreground-general);
    background-color: #f9f9f9f;
    > blockquote {
      margin: 0.5rem 0rem 1rem 1.5rem;
    }
  }
}

/* command buttons */

.command-button-container {
  flex-direction: row;
  align-self: end;
  display: flex;
  bottom: 0;
  right: 0;
  position: sticky;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: flex-end;
  align-items: center;
  margin-top: 1rem;
}

@media screen and (min-width: 768px) {
  .command-button-container {
    display: none;
  }
}

.command-button-class {
  min-height: 1.8rem;
  padding: 0rem 0.5rem;
  font-family: inherit;
  font-size: inherit;
  border-radius: 0;
  border-color: var(--foreground-general);
  border-width: 0.2rem;
  background-color: var(--background);
  border-style: double;
  color: var(--foreground-general);
}

.command-button-class:hover,
.command-button-class:focus {
  background-color: var(--foreground-general);
  color: var(--background);
  border-color: var(--background);
  cursor: pointer;
}

.window {
  display: flex;
  flex-direction: column;
  & .window-application {
    border: 6px ridge #807474;
    flex: 1;
    overflow: hidden;
    border-top: 0;
    position: relative;
    display: flex;
    background-color: darkslateblue;
  }
  .bar {
    background-color: cadetblue;
    z-index: 9001;
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 10px;
    border: 6px ridge #807474;
    & .bar-title {
      font-size: 1.5rem;
    }
    & .exit {
      font-family: "VT323";
      width: 1.5rem;
      height: 1.5rem;
      font-size: 1.3rem;
      background-color: red;
    }
  }
}

@media only screen and (max-width: 600px) {
  .shell-domain {
    display: none;
  }

  .energy-star-logo {
    display: none;
  }

  .command-button-container {
    position: sticky;
    margin-top: 0.5rem;
  }

  .status-bar {
    display: none;
  }

  .blog {
    & h1 {
      padding-bottom: 1rem;
    }
    margin: 0.3rem;
    max-width: 48rem;
    padding: 0.25rem;
    & pre,
    & code {
      font-size: 0.8rem;
      color: var(--highlight-color-1);
      font-family: "Cutive Mono", monospace;
      text-wrap: wrap;
    }

    & p {
      margin: 1rem;
    }

    & ol,
    & ul {
      margin-left: 1.3rem;
    }

    & pre {
      padding: 0.5rem;
      margin: 0.5rem 0rem 0.5rem 1rem;
      border-left: 0.1rem solid var(--highlight-color-1);
    }

    & blockquote {
      margin: 0.25rem 0rem 0.5rem 1.25rem;
      padding: 0.1rem;
      padding-left: 0.25rem;
      border-left: 0.25rem solid var(--foreground-general);
      background-color: #f9f9f9f;
      > blockquote {
        margin: 0.25rem 0rem 0.5rem 0.5rem;
      }
    }
  }
}

@keyframes breathing {
  0%,
  100% {
    transform: translateY(
      0
    ); /* At the start and end of the animation, don't move the element */
  }
  50% {
    transform: translateY(
      -10px
    ); /* At the halfway point, move the element up slightly */
  }
}

@media screen and (width >= 600px) {
  & .about-exe {
    & h1 {
      font-size: 12rem;
    }
    & .fly-out.title {
      transform: translateY(-60vh);
    }
    & .fly-out.actions {
      transform: translateY(10vh);
    }
  }
}

@media screen and (width < 600px) {
  & .about-exe {
    & h1 {
      font-size: 6rem;
    }
  }
}

.overlay {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 100;
}

.about-exe {
  background-color: slategray;
  & .start {
    background-color: orange;
    border-style: outset;
    border-width: 0.3rem;
    border-color: orangered;
    font-size: 2.5rem;
    font-family: "VT323";
    padding: 0.2rem 0.8rem;
  }
  & .start:hover {
    background-color: blue;
    border-color: greenyellow;
  }
  > #about-me-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 0.2rem;
    opacity: 1;
  }
  & .title {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 0.3rem 0.7rem;
    transition: transform 2.5s;
    transform: translateY(0);
  }
  & .actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    transform: translateY(0);
    transition: transform 1.5s;
  }
  & .start-text {
    animation: blink 1s infinite;
  }
  & h1 {
    color: orange;
    background: linear-gradient(orange, yellow);
    -webkit-background-clip: text;
    background-clip: text;
    text-align: center;
    transform: perspective(500px) rotateX(30deg);
    text-shadow:
      0px 1px 0 orangered,
      /* 0px 2px 0 orangered, */ 0px 4px 0 orangered,
      /* 0px 4px 0 orangered, */ 0px 7px 0 orangered,
      /* 0px 6px 0 orangered, */ 0px 10px 0 orangered,
      /* 0px 8px 0 orangered, */ 0px 13px 0 orangered,
      /* 0px 10px 0 orangered, */ 0px 16px 0 orangered,
      /* 0px 12px 0 orangered */ 0px 19px 0 orangered;
  }
}

@media screen and (width >= 850px) {
  & .selection-screen {
    flex-direction: row;
    flex: 1;
  }
  & .selection-info {
    max-width: 550px;
  }
  & .selection-graphic {
    flex: 1;
    gap: 2rem;
  }
  & .selection-content {
    margin: 1rem;
  }
  & #selection-render-space {
    width: 150%;
    max-width: 50rem;
  }
  & .graphic-heading {
    display: flex;
    > h1 {
      font-size: 2rem;
    }
  }
  & .blinking {
    animation: blink 1s infinite;
  }
  & .hidden {
    display: none;
  }
  & .graphic-text {
    > h2 {
      font-size: 3rem;
    }
  }
  & .arrow {
    width: 2rem;
    height: 2rem;
  }
}

@media screen and (width < 850px) {
  & .selection-screen {
    flex-direction: column-reverse;
    height: 100%;
  }
  & .selection-content {
    max-height: 100%;
    margin: 0rem;
  }
  & .selection-info {
    overflow: hidden;
  }
  & #selection-render-space {
    width: 160vw;
  }
  & .graphic-heading {
    display: none;
  }
  & .graphic-text {
    margin-top: -2rem;
    > h2 {
      font-size: 2rem;
    }
  }
  & .arrow {
    width: 2rem;
    height: 2rem;
  }
  & .education-image-1 {
    display: none;
  }
}

.selection-screen {
  background: url("/public/about/selection-backdrop.webp");
  background-size: cover;
  image-rendering: pixelated;
  image-rendering: -moz-crisp-edges;
  display: flex;
  flex: 1;
  justify-content: center;
  align-items: center;
  width: 100%;
  & #instruction-text {
    position: absolute;
  }
  & .selection-graphic {
    position: relative;
    min-width: 0px;
    justify-content: center;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    max-width: 700px;
    width: 100%;
  }
  & #selection-render-space {
    object-fit: contain;
    align-self: center;
  }
  & .selection-info {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 550px;
  }
  & #selection-caption {
    transition: opacity 0.5s ease;
    opacity: 0;
  }
  & .selection-text {
    align-items: center;
    justify-content: center;
    > h2,
    h1 {
      color: white;
      text-align: center;
    }
  }
  & .graphic-heading {
    top: 0;
    padding-top: 3rem;
  }
  & .graphic-text {
    bottom: 0;
    justify-content: space-between;
    padding: 1rem 2rem;
    display: flex;
  }
  & .arrow {
    opacity: 0.8;
  }
  & .arrow:hover {
    opacity: 1;
  }
  & .arrow-button {
    background: transparent;
    border: transparent;
  }
  & .selection-content {
    background-color: darkslateblue;
    z-index: 100;
    border: 19px double #ffffff;
    width: 100%;
    display: flex;
    flex-direction: column;
  }
  & #selection-section-heading {
    font-size: 2.5rem;
    text-align: center;
  }
  & #selection-box {
    transition: opacity 0.5s ease;
    opacity: 0;
  }
  & .selection-divider {
    border-bottom: 4px solid #ffffff;
  }
  & .padded {
    padding: 1rem;
  }
  & .location-image {
    height: 15vh;
    width: 100%;
    object-fit: cover;
  }
  & .interests-content {
  }
  & .interests-image {
    width: 5rem;
    background: url(/public/about/selection/interests_1.webp);
    background-size: cover;
    margin-left: -1.7rem;
  }
  & .interests-text {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    flex: 1;
  }
  & .interests-paragraph {
    flex: 1;
  }
  & .row {
    display: flex;
    gap: 0.3rem;
  }
  & .bio-image {
    background: url(/public/about/selection/bio_1.webp);
    background-size: cover;
    width: 5rem;
    background-position: center;
  }
  & .content {
    gap: 0.7rem;
    display: flex;
    flex-direction: column;
  }

  .content {
    gap: 0.7rem;
    display: flex;
    flex-direction: column;
  }
  .custom-scrollbar {
    margin-right: 0.2rem;
  }
  .custom-scrollbar::-webkit-scrollbar {
    width: 0.4rem;
  }

  .custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
  }

  .custom-scrollbar::-webkit-scrollbar-thumb {
    background: #a4a4a4;
  }
  .custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background: #555;
  }

  & .paragraph {
    flex: 1;
  }
  & .education-image-1 {
    background: url(/public/about/selection/education_1.webp);
    width: 5rem;
    background-size: cover;
    background-position: center;
  }
  & .education-image-2 {
    background: url(/public/about/selection/education_2.webp);
    width: 5rem;
    background-size: cover;
    background-position: top;
  }
  & .logo-container {
    display: grid;
    grid-template-columns: auto auto; /* two columns, each sized according to their content */
    gap: 10px; /* optional: adds space between columns */
  }
  & .logo-cell {
    display: flex;
    gap: 10px;
    align-items: center;
  }
  & .logo-image {
    height: 2rem;
    width: 2rem;
    image-rendering: pixelated;
    image-rendering: -moz-crisp-edges;
    image-rendering: crisp-edges;
  }
  & .logo-text {
    font-size: 1rem;
    text-transform: uppercase;
  }
  & .experience-content {
    position: relative;
  }
  & #graph-canvas {
    position: absolute;
    z-index: -10;
    width: 100%;
    height: 100%;
  }
  & .hidden {
    display: none;
  }
  & .scrollable {
    overflow-y: scroll;
    flex: 1;
  }
}
