@import url("https://fonts.googleapis.com/css2?family=Catamaran:wght@100..900&family=League+Spartan:wght@100..900&family=Maitree:wght@200;300;400;500;600;700&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap");
:root,
.dark,
:root:has(#dark:checked) {
  --bg-color: #303030;
  --h-color: #ffffc7;
  --text-color: white;
  --fill: var(--h-color);
  --bs-color: var(--h-color);
  --graph: #b03f3d;
}
:root:has(#light:checked),
.light {
  --bg-color: #e1e1a9;
  --h-color: #202124;
  --text-color: black;
  --fill: var(--h-color);
  --bs-color: var(--bg-color);
  --graph: var(--bg-color);
}
:root:has(#blue:checked),
.blue {
  --bg-color: #102c57;
  --h-color: #a7bbec;
  --text-color: aliceblue;
  --fill: var(--h-color);
  --bs-color: var(--h-color);
  --graph: var(--bg-color);
}
* {
  font-family: "Catamaran", Arial, Helvetica, sans-serif;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.mouse {
  background-color: rgba(0, 0, 0, 0.4);
  width: 3dvw;
  aspect-ratio: 1/1;
  border-radius: 50%;
  position: fixed;
  transform: translate(-50%, -50%);
  display: none;
  z-index: 9999;
  pointer-events: none;
  box-shadow: 0 0 0.5dvw rgba(0, 0, 0, 0.5);
}
::selection {
  background-color: inherit;
  color: inherit;
}
::-webkit-scrollbar {
  display: none;
}

.everythingelse {
  background-color: var(--bg-color);
  width: 100%;
  display: flex;
  overflow: hidden;
}
.everythingelse ::-webkit-scrollbar {
  display: none;
}
nav {
  height: 100vh;
  writing-mode: vertical-lr;
  transform: rotate(180deg);
  position: sticky;
  left: 0;
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  background-color: #121212;
}
nav p {
  text-decoration: none;
  font-size: max(1.5vw, 1.5vh);
  position: relative;
  color: white;
  font-family: "Catamaran", Arial, Helvetica, sans-serif;
  cursor: pointer;
  padding: max(1.5vw, 1.5vh);
  transition: all 0.3s ease-in-out;
}

nav p::before {
  position: absolute;
  content: "";
  right: 0;
  top: 0;
  width: 0%;
  height: 100%;
  background-color: var(--bg-color);
  z-index: -1;
  transition: all 0.3s ease-in-out;
  border-radius: max(1vw, 1vh) 0 0 max(1vw, 1vh);
}
nav p:hover {
  color: var(--h-color);
}
nav p:hover::before {
  width: 80%;
}
.menu {
  display: none;
}
.Table {
  position: relative;
  color: var(--h-color);
}
.Table::before {
  position: absolute;
  content: "";
  right: 0;
  top: 0;
  width: 75%;
  height: 100%;
  background-color: var(--bg-color);
  z-index: -1;
  transition: all 0.3s ease-in-out;
  border-radius: max(1vw, 1vh) 0 0 max(1vw, 1vh);
}
.container {
  transition: all 0.5s ease-in-out;
}
.container1 {
  height: 100dvh;
  width: 100dvw;
  background-color: var(--bg-color);
  position: relative;
}
.name {
  height: 100%;
  width: 100dvw;
  position: relative;
  display: grid;
  place-items: center;
}
.firstname span {
  color: var(--h-color);
  font-size: max(8dvw, 8dvh);
  white-space: nowrap;
  font-optical-sizing: auto;
}

.lastname span {
  color: var(--h-color);
  font-size: max(8dvw, 8dvh);
  white-space: nowrap;
  font-optical-sizing: auto;
  font-style: normal;
}
.marquee,
.firstname span,
.lastname span {
  font-family: "Poppins", Arial, Helvetica, sans-serif, sans-serif;
}
.firstname-phone{
  display: none;
}
.firstname {
  position: absolute;
  writing-mode: vertical-lr;
  transform: rotate(180deg);
  bottom: 0;
  left: max(-1dvw, -1dvh);
}
.firstname,
.lastname {
  transition: all 1s cubic-bezier(0.5, -0.1, 0.5, 1.5);
}
.lastname {
  position: absolute;
  left: 9dvw;
  top: min(-2dvw, -2dvh);
  margin-left: 0;
}

.link-images {
  position: absolute;
  bottom: 2dvw;
  right: 15dvw;
  gap: max(2dvw, 2dvh);
  display: flex;
  align-items: center;
  justify-content: center;
}
.link-images a {
  transition: all 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  cursor: pointer;
}

.link-images svg {
  fill: var(--h-color);
  width: max(3dvw, 3dvh);
  aspect-ratio: 1/1;
  cursor: pointer;
}
.link-images .gmail-svg {
  width: max(3.5dvw, 3.5dvh);
}

.mainScale {
  scale: 1.25;
  transform: translateY(-40%);
  filter: drop-shadow(0 0 3px var(--h-color));
}
.leftScale {
  scale: 1.1;
  transform: translateY(-10%);
}
.opacity {
  opacity: 0.4;
}

.about {
  transform: perspective(5000px);
  transition: transform 0.1s ease;
  transform-style: preserve-3d;
  background-color: black;
  border-radius: max(1dvw, 1dvh);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  padding: 1dvw;
  width: 50dvw;
  height: fit-content;
  transition: scale 1s cubic-bezier(0.5, -0.1, 0.1, 1.5);
}

.photo {
  background-image: url(IMG_9880.webp);
  background-size: 125%;
  background-position: 0% 11.5%;
  background-repeat: no-repeat;
  z-index: 1;
  width: max(20dvw, 20dvh);
  aspect-ratio: 1/1;
  background-color: var(--bg-color);
  aspect-ratio: 1/1;
  border-radius: max(0.5dvw, 0.5dvh);
}

.about .Content {
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 85%;
}

.about .Content .wrapper h2 {
  border-bottom: 1px solid gray;
  width: 90%;
  font-size: 160%;
  white-space: nowrap;
  font-family: "Maitree", Georgia, "Times New Roman", Times, serif;
}

.about .Content .wrapper p {
  padding-top: 1dvw;
  font-size: 1dvw;
}
@media screen and (min-width: 1100px) {
  .about {
    transform: rotateY(var(--rotateY)) rotateX(var(--rotateX));
  }
  .about::before,
  .about::after {
    content: "";
    position: absolute;
    border-radius: inherit;
  }

  .about::before {
    inset: 0.1rem;
    background-color: var(--bs-color);
    transform: translateZ(-49px);
    filter: blur(0.5dvw);
    opacity: 0.7;
  }

  .about::after {
    inset: -0.7rem;
    background-color: inherit;
    transform: translateZ(-50px);
  }
}

.marquee {
  position: absolute;
  writing-mode: vertical-lr;
  rotate: 180deg;
  bottom: 0;
  left: 0;
  color: var(--h-color);
  text-align: center;
  font-size: 9dvw;
  height: 100%;
  white-space: nowrap;
}

.container3 .marquee {
  font-size: max(7dvw, 7dvh);
}

.container2 {
  position: relative;
  min-width: 100dvw;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100dvh;
}
.grid {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
}
.container2 section {
  border-radius: max(0.5dvw, 0.5dvh);
  background-color: var(--h-color);
  color: var(--bg-color);
  position: relative;
  transition: all 0.5s ease-in-out;
  z-index: 1;
  width: 6dvw;
  height: 30dvw;
  margin-right: 1dvw;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: -9dvw;
}
.container2 section h3 {
  white-space: nowrap;
  rotate: 270deg;
  font-size: 1dvw;
  color: var(--bg-color);
}
.container2 section:hover h3 {
  display: none;
}
.container2 section .description {
  position: absolute;
  top: 0;
  width: 100%;
  height: min-content;
  background-color: #1f1f1f;
  color: white;
  border-radius: 0 0 max(0.5dvw, 0.5dvh) max(0.5dvw, 0.5dvh);
  padding: 2dvw;
  opacity: 0;
  z-index: -1000;
  transition: all 0.5s ease-in-out;
  transform-origin: top;
}
.container2 section .description * {
  margin: 1dvw;
}
.container2 section .description h4 {
  width: 80%;
  border-bottom: 1px solid gray;
  margin: 1dvw 1dvw 1.5dvw 1dvw;
  font-size: 1.05dvw;
}
.container2 section .description p {
  margin: 1dvw 1dvw 0 1dvw;
  font-size: 1.05dvw;
}
pre,
article.content {
  -webkit-overflow-scrolling: touch;
  overflow: auto;
  position: absolute;
  top: 0;
  right: 0;
  font-family: "Space Mono", Consolas, Monaco, "Andale Mono", monospace;
  font-size: 1px;
  width: 100%;
  height: 100%;
  padding-left: 1dvw;
  border-top-left-radius: max(0.5dvw, 0.5dvh);
  border-top-right-radius: max(0.5dvw, 0.5dvh);
  background-color: #1f1f1f;
  color: #abcccc;
  display: none;
}
article.content {
  padding-top: 1dvw;
  font-size: 1.05dvw;
}
.content::-webkit-scrollbar {
  display: block;
}

.content::-webkit-scrollbar-thumb {
  background-color: #c1c1c1;
}
.content::-webkit-scrollbar-thumb:hover {
  background-color: #787878;
}
.content::-webkit-scrollbar-track {
  background-color: #f1f1f1;
}

.container2 section:hover {
  width: 35dvw;
  background-color: #1f1f1f;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.container2 section:hover .description {
  opacity: 1;
  top: 100%;
  z-index: 1;
}
.container2 section:hover pre,
.container2 section:hover .content {
  display: block;
}
code span {
  font-family: Consolas, Monaco, "Andale Mono", monospace;
  font-size: 1.05dvw;
}
.skill {
  margin-bottom: max(0.5dvw, 0.5dvh);
}
.skill-name {
  margin-bottom: max(0.2dvw, 0.2dvh);
  color: white;
}
.skill-bar {
  height: max(1dvw, 1dvh);
  background-color: var(--graph);
  transition: width 1s ease-in-out;
  border-top-right-radius: max(0.25dvw, 0.25dvh);
  border-bottom-right-radius: max(0.25dvw, 0.25dvh);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-family: "Space Mono", Consolas, Monaco, "Andale Mono", monospace;
  font-size: max(0.7dvh, 0.7dvw);
  padding-right: max(0.5dvw, 0.5dvh);
  color: var(--text-color);
  text-shadow: 0 0 1px var(--text-color);
}
.blue {
  color: #299ed6;
}
.value {
  color: #db8e59;
}
.greater {
  color: #808067;
}
.function {
  color: #ddb863;
}
.pbracket {
  color: #f1d50a;
}
.if {
  color: #8168be;
}
.classname {
  color: #00ab67;
}
.container3 {
  position: relative;
  min-width: 100dvw;
  display: flex;
  align-items: center;
  justify-content: center;
}
.form {
  margin-right: 5dvw;
  background-color: #121212;
  padding: max(2dvw, 2dvh);
  border-radius: max(0.5dvw, 0.5dvh);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: max(1.5dvw, 1.5dvh);
  width: 45dvw;
  aspect-ratio: 5/4;
  height: auto;
  box-shadow: rgba(0, 0, 0, 0.16) 0px 3px 6px, rgba(0, 0, 0, 0.23) 0px 3px 6px;
}

.form .wrapper {
  position: relative;
  border-radius: max(0.5dvw, 0.5dvh);
  width: 100%;
}
.form .wrapper input {
  color: white;
  border-radius: max(0.5dvw, 0.5dvh);
  background-color: transparent;
  border: 1px solid gray;
  width: 100%;
  padding: max(1dvw, 1dvh);
  font-size: 1dvw;
  outline: none;
}
.form .wrapper input:-webkit-autofill,
.form .wrapper input:-webkit-autofill:hover,
.form .wrapper input:-webkit-autofill:focus,
.form .wrapper input:-webkit-autofill:active {
  -webkit-background-clip: text;
  -webkit-text-fill-color: white;
}
.form .wrapper input[type="number"]::-webkit-inner-spin-button,
.form .wrapper input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}
.form .wrapper label {
  position: absolute;
  left: 3%;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.9dvw;
  color: white;
  transition: all 0.3s cubic-bezier(0.075, 0.82, 0.165, 1);
}
.form .wrapper .label {
  position: absolute;
  top: 0%;
  padding: 0 max(0.25dvw, 0.25dvh);
  left: 2%;
  font-size: 0.75dvw;
  background-color: #121212;
  color: #0b57d0;
  font-weight: 600;
}
.form button[type="submit"],
.form button[type="reset"] {
  font-family: "Space Mono", Consolas, Monaco, "Andale Mono", monospace;
  border-radius: max(0.25dvw, 0.25dvh);
  padding: max(0.5dvw, 0.5dvh);
  cursor: pointer;
  font-size: 1dvw;
}
.form button[type="submit"] {
  width: 100%;
  background-color: #0b57d0;
  border: none;
  color: white;
}
.form button[type="submit"]:hover {
  background-color: #0e4eb5;
}
.form button[type="reset"] {
  background-color: transparent;
  width: 100%;
  border: 1px solid gray;
  color: white;
}
.form button[type="submit"]:disabled {
  cursor: not-allowed;
  background-color: gray;
  color: black;
}
.form button[type="reset"]:disabled {
  cursor: not-allowed;
}
.tooltip {
  border: none;
  background-color: none;
  border-radius: max(10dvw, 10dvh);
  display: none;
  position: absolute;
  top: 50%;
  right: max(1dvw, 1dvh);
  transform: translate(-50%, -50%);
  width: max-content;
  aspect-ratio: 1/1;
}
.danger {
  width: max(1dvh, 1dvw);
  aspect-ratio: 1/1;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: #121212;
  border-radius: max(10dvw, 10dvh);
}
.tooltip:hover .danger {
  display: block;
}
.tooltip::before {
  position: absolute;
  left: max(8dvh, 8dvw);
  content: attr(aria-description);
  background-color: #4c5d6b;
  border-radius: max(0.25dvw, 0.25dvh);
  color: rgba(240, 248, 255, 0.85);
  padding: 0.5dvw;
  font-size: 100%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: max(10dvh, 10dvw);
  display: none;
}
.tooltip:hover::before,
.tooltip:hover::after {
  display: block;
  z-index: 10000;
}
.tooltip::after {
  display: none;
  content: "";
  position: absolute;
  top: 50%;
  left: max(1dvh, 1dvw);
  transform: translateY(-50%);
  border-width: 12px;
  border-style: solid;
  border-color: transparent #4c5d6b transparent transparent;
}
.error {
  position: absolute;
  bottom: 5%;
  right: max(7dvw, 7dvh);
  color: var(--text-color);
  background-color: #202124;
  padding: max(1dvw, 1dvh);
  border-radius: max(0.25dvw, 0.25dvh);
  font-size: 85%;
  max-width: max(20dvw, 20dvh);
  box-shadow: 0 0.25dvw 0.5dvw rgba(0, 0, 0, 0.642);
  display: none;
}
.error .bar {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0%;
  height: 1px;
  background-color: white;
  animation: progress 10s linear;
  animation-play-state: paused;
}
@keyframes progress {
  to {
    width: 100%;
  }
  from {
    width: 0;
  }
}
.container4 {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 100dvw;
  min-width: 100dvw;
  height: 100dvh;
  overflow: hidden;
}
.container4 h1 {
  font-size: 2.05dvw;
}
.container4 p {
  font-size: 1.05dvw;
}
.container4 .percent {
  color: var(--h-color);
  font-family: space mono, "Courier New", Courier, monospace;
}
.container4 a {
  width: -moz-min-content;
  width: min-content;
  height: -moz-min-content;
  height: min-content;
  position: relative;
  transition: all 0.5s linear;
}
.container4 .work {
  width: 65dvw;
  aspect-ratio: 16/9;
  position: relative;
  border-radius: max(1dvw, 1dvh);
  box-shadow: 0 0.25dvw 0.5dvw rgba(0, 0, 0, 0.642);
}
.container4 .work::before {
  z-index: 1;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));
  border-radius: inherit;
}
.container4 .work .info {
  z-index: 5;
  position: absolute;
  bottom: 5%;
  left: 3%;
  width: 90%;
}
.container4 .work h1,
.container4 .work p {
  color: aliceblue;
  text-shadow: 0px 0px 10px black;
}
.container4 .work h1 {
  font-family: "Maitree", Georgia, "Times New Roman", Times, serif;
}
.container4 .work p {
  font-family: "Catamaran", Arial, Helvetica, sans-serif;
}
.container4 .work video {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: inherit;
}
.container4 .goesdown {
  position: absolute;
  transform: translate(0, -200%);
  z-index: -10;
  opacity: 0;
}
.container4 .goesup {
  position: absolute;
  transform: translate(0, 200%);
  z-index: -10;
  opacity: 0;
}
.container4 .arrow {
  width: max(3dvw, 3dvh);
  aspect-ratio: 1/1;
  fill: var(--h-color);
  cursor: pointer;
  position: absolute;
}
.container4 .not-allowed {
  cursor: not-allowed;
  opacity: 0.25;
}
.container4 .up {
  top: 2%;
}
.container4 .down {
  bottom: 2%;
}

.hidden {
  opacity: 0.5;
  filter: blur(0.25dvw);
  transition: all 0.5s ease-in-out;
}
.show {
  opacity: 1;
  filter: blur(0);
  transition: all 0.5s ease-in-out;
}
.container2 .grid .hidden {
  scale: 0.5;
}
.container2 .grid .show {
  scale: 1;
}
@media (prefers-reduced-motion: no-preference) {
  .hidden {
    transition: none;
  }
}
.switch {
  width: fit-content;
  aspect-ratio: 1/1;
  position: fixed;
  top: 1dvw;
  right: 1dvw;
}
select {
  outline: none;
  padding: 0.5dvw 1dvw;
  border-radius: max(0.25dvw, 0.25dvh);
  border: none;
  background-color: var(--h-color);
  color: var(--bg-color);
  cursor: pointer;
}
select option {
  outline: none;
  padding: 5dvw;
  cursor: pointer;
}
#blue {
  background-color: #102c57;
  color: aliceblue;
}
#light {
  background-color: #ffffc7;
  color: black;
}
#dark {
  background-color: #202124;
  color: white;
}
#default {
  display: none;
}
option:checked {
  display: none;
}
.popup {
  display: none;
}
.something-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  padding: 0 max(1dvw, 1dvh);
  height: 100%;
  background-color: var(--bg-color);
  display: flex;
  z-index: -1;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  transition: background-color 0.3s linear, color 0.3s linear;
}
.something-content p {
  color: var(--text-color);
  font-family: "League Spartan", "Poppins", system-ui, -apple-system,
    BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell,
    "Open Sans", "Helvetica Neue", sans-serif;
  font-weight: bold;
  font-size: 300%;
}
.something-content .progress-container {
  width: 75dvw;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: max(1dvw, 1dvh);
}
.everythingelse {
  opacity: 0;
}
.fadeOut {
  transition: all 0.5s linear;
  opacity: 0 !important;
}
.fadeIn {
  transition: all 0.5s linear;
  opacity: 1;
}
#progress {
  height: 5px;
  border-radius: 50%;
  background-color: var(--h-color);
  opacity: 1;
  z-index: 2;
  transition: all 0.5s linear;
}
#amount {
  margin-top: 2dvw;
}
.scaled {
  scale: 0.5;
  transition: all 0.5s linear;
}
