@charset "utf-8";
/* --- Roots ---*/
:root {
  --clr-drk: #0A1631;
  --clr-primary: #bbddee;
  --clr-accent: #f1a87b;
  --clr-secondary-bg: #27375c;
  --clr-blur-bg: #A5F0D544;
  --font-size-title: 32px;
  --font-size-subtitle: 20px;
  --font-size-reg: 16px;
  --font-size-small: 10px;
  --app-transition: all 0.3s ease-in-out;
  --app-border-rad: 8px;
  --app-shadow: 1px 1px 8px rgba(0, 0, 0, 0.25);
  --app-blur: 10px;
}
@media(orientation: portrait) {
  :root {
    --font-size-title: 24px;
    --font-size-subtitle: 18px;
    --font-size-reg: 14px;
    --font-size-small: 10px;
  }
}
@media (max-width: 500px) {
  :root{
    --font-size-title: 18px;
  }
}

/* --- Utility Classes --- */
.container {
  width: min(100% - 30px, 1200px);
  margin-inline: auto;
}
.flex {
  display: flex;
}
.f-col {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.bold {
  font-weight: 600;
}
.gp-25px {
  gap: 25px;
}
.mlr-5px {
  margin-left: 5px;
  margin-right: 5px;
}
.mb-5px {
  margin-bottom: 5px;
}
.mb-25px {
  margin-bottom: 25px;
}
.mb-50px {
  margin-bottom: 50px;
}
.w-100 {
  width: 100%;
}
.w-100px { 
  max-width: 100px;
}
.w-200px {
  width: 200px;
}
.sp-vn {
  justify-content: space-evenly;
}
.sp-between {
  justify-content: space-between;
}
.center {
  justify-content:center;
  align-items: center;
}
.cen {
  justify-content: center;
  align-items: center;
}
.hover {
  transition: var(--app-transition);
}
.hover:hover {
  filter: brightness(1.2)
}
.pointer {
  cursor: pointer;
}

/* --- Global Styles --- */

body {
  background-color: var(--clr-drk);
}
code {
  font-size: var(--font-size-small);
}

ul {
  list-style-type: none;
}
a {
  font-size: inherit;
  color: inherit;
  text-decoration: none;
}

/* --- Hero Banner --- */

#page-top {
  height: 100svh;
  width: 100%;
  position: relative;
  overflow: hidden;
  align-items: center;
  justify-content: center;
  display: flex;
  flex-direction: column;
}

.hero-banner {
  position: fixed;
  top: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100vh;
  object-fit: cover;
  object-position: center;
  z-index: -100;
}
.parallax {
  position: fixed;
  pointer-events: none;
  background-size: cover;
  background-repeat: no-repeat;
}

.parallax.one {
  z-index: 100;
  top: 20px;
  left: 5svw;
  width: 200px;
  height: 200px;
  filter: opacity(0.7);
  background-image: url("../img/git-logo.png");
}

.parallax.two {
  z-index: 200;
  top: 20px;
  right: 15svw;
  width: 300px;
  height: 300px;
  background-image: url("../img/git-logo-reverse.png");
}
.parallax.three {
  z-index: 300;
  top: 100px;
  right: 40svw;
  width: 100px;
  height: 100px;
  background-image: url("../img/git-logo.png");
}
.parallax.four {
  z-index: 400;
  top: 300px;
  right: 50svw;
  width: 200px;
  height: 200px;
  background-image: url("../img/git-logo-reverse.png");
}
.parallax.five {
  z-index: 500;
  top: 350px;
  left: 70svw;
  width: 250px;
  height: 250px;
  background-image: url("../img/git-logo.png");
}
.parallax.six {
  z-index: 600;
  top: 140px;
  right: 90svw;
  width: 200px;
  height: 200px;
  background-image: url("../img/git-logo-reverse.png");
}
.parallax.seven {
  z-index: 700;
  top: 800px;
  right: 25svw;
  width: 400px;
  height: 400px;
  filter: blur(5px) opacity(0.9) brightness(1.5);
  background-image: url("../img/git-logo.png");
}
.secondary-header {
  font-size: var(--font-size-title);
  height: 30svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: var(--clr-primary);
  font-family: "Kode Mono", "IBM Monoplex", monospace;
  background-color: var(--clr-blur-bg);
}
.secondary-header img {
  height: 200px;
}

main{
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-family: "Space Mono","IBM Plex Mono", monospace;
  padding: 100px 0;
  background-color: var(--clr-drk);
  position: relative;
  z-index: 1000;
  color: var(--clr-primary);
}


h4, h5 {
  font-size: var(--font-size-reg);
  margin: 0;
}

p {
  font-size: var(--font-size-reg);
  max-width: 800px;
}
.doc-main {
  min-height: 62svh;
}
.doc-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 400px;
  border: solid var(--clr-secondary-bg) 1px;
  padding: 20px;
  border-radius: var(--app-border-rad);
}

.hero-card {
  max-width: 700px;
  text-wrap: wrap;
  border-radius: 6px;
  padding: 25px;
  background-color: var(--clr-blur-bg);
  backdrop-filter: blur(var(--app-blur));
  position: relative;
  z-index: 5000;
  h2 {
    font-size: var(--font-size-title);
    color: var(--clr-drk);
    font-family: 'Kode Mono';
    text-align: center;
  }
}
.strong {
  font-weight: 600;
}

.icon-btn{
  width: 70px;
  transition: var(--app-transition);
}
.icon-btn.small {
  width: 50px;
}
.icon-btn:hover {
  filter: brightness(1.2);
}

.icon-text {
  max-width: 160px;
  font-size: var(--font-size-small);
  background-color: #A5F0D544;
  backdrop-filter: blur(10px);
  border-radius: 6px;
  margin-bottom: 25px;
  padding: 0 5px;
}

.btn {
  height: 30px;
  width: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  background-color: #012;
  color: var(--clr-accent);
  font-size: var(--font-size-reg);
  font-family: 'Kode Mono';
  border-radius: var(--app-border-rad);
  cursor: pointer;
  transition: var(--app-transition);
}
.btn:hover {
  color: #fefefe;
  filter: brightness(2);
}

.body-card {
  margin-bottom: 50px;
  background-color: var(--clr-secondary-bg);
  box-shadow: var(--app-shadow);
  border-radius: var(--app-border-rad);
  padding: 25px;
  max-width: 600px;
  font-size: var(--font-size-reg);
  h4 {
    font-size: var(--font-size-subtitle);
  }
}

.body-card .btn {
  min-width: min(500px, 60svw);
  justify-content: left;
}
.body-card .btn i {
  margin: 0 25px;
}

.body-card.clear {
  background-color: var(--clr-blur-bg);
  backdrop-filter: blur(var(--app-blur));
}

.main-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 5000;
  text-align: center;
}
/* --- Details Element --- */
summary {
  list-style: none; 
  display: flex;
  align-items: center;
  cursor: pointer;
  font-size: var(--font-size-subtitle);
}

/* List-style: none; More specific fix for Safari/Chrome */
summary::-webkit-details-marker {
  display: none;
}

summary::before {
  content: '';
  width: 20px; 
  height: 20px;
  margin-right: 10px;
  background-image: url('../img/greater-than.png');
  background-size: contain;
  background-repeat: no-repeat;
  transition: var(--app-transition);
}

details[open] summary::before {
  transform: rotate(90deg); 
}
details .content {
  padding: 25px;
  overflow: hidden;
  transition: var(--app-transition);
  height: 0; 
}

.contributors {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 50px
}

.intro-btn {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

.intro-video {
  height: 0;
  overflow: hidden;
  transition: var(--app-transition);
}
.intro-video.open {
  height: 425px;
}


footer {
  height: 8svh;
  font-family: "Space Mono","IBM Plex Mono", monospace;
  background-color: var(--clr-drk);
  font-size: var(--font-size-title);
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  position: relative;
  z-index: 1000;
}

.ds-code {
  height: 30px;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@media(orientation: portrait) {
  .logo, dialog {
    width: 90svw;
  }
  .media-flip {
    flex-direction: column;
  }
  .icon-btn {
    width: 50px;
  }
  .parallax.two, .parallax.four, .parallax.five {
    display: none;
  }
}
