@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&family=Sarabun:ital,wght@0,400;0,600;1,400;1,600&display=swap');

* {
  margin: 0;
  padding: 0;
  font: inherit;
}

html:focus-within {
  scroll-behavior: smooth;
}

/* /// /// /// Variables /// /// /// */
:root {
  --bg-color: hsl(0, 0%, 100%);
  --navbar-color: hsl(0, 0%, 100%);
  --footer-color: hsl(250, 24%, 6%);

  --text-color: hsl(269, 92%, 10%);
  --alt-text-color: hsl(0, 0%, 100%);
  --subtle-text-color:  hsl(0, 0%, 45%);
  --disabled-text-color:  hsla(0, 0%, 5%, 40%);

  --primary-color: hsl(250, 80%, 55%);
  --primary-hover-color: hsl(250, 80%, 45%);
  --primary-disabled-color: hsla(250, 80%, 55%, 40%);
  --primary-disabled-text-color: hsla(269, 92%, 10%, 40%);

  --red-color: hsl(350, 80%, 50%);
  --red-hover-color: hsl(350, 80%, 40%);

  --input-bg-color: hsl(0, 0%, 100%);
  --icon-color: hsl(250, 80%, 85%);
  --line-color: hsl(0, 0%, 30%);
  --hover-color: hsl(0, 0%, 100%);

  --box-shadow: 0px 2px 4px 0px hsla(0, 0%, 0%, 0.15);

  --logo-text-color: hsl(0, 0%, 100%);
  --logo-hover: brightness(0) saturate(100%) invert(21%) sepia(100%) saturate(2310%) hue-rotate(244deg) brightness(87%) contrast(113%);
  --logo-scrolled: brightness(0) saturate(100%) invert(7%) sepia(0%) saturate(2745%) hue-rotate(176deg) brightness(88%) contrast(76%);

  --font-family-body: "Sarabun", sans-serif;
  --font-family-heading: "Barlow+Condensed", sans-serif;

}

@media (prefers-color-scheme: dark) {
  :root {
    --bg-color: hsl(250, 24%, 6%);
    --navbar-color: hsl(250, 24%, 6%);
    --footer-color: hsl(250, 24%, 6%);

    --text-color: hsl(0, 0%, 80%);
    --subtle-text-color: hsl(0, 0%, 50%);
    --disabled-text-color: hsla(0, 0%, 80%, 40%);

    --primary-color: hsl(250, 80%, 55%);
    --primary-hover-color: hsl(250, 80%, 45%);
    --primary-disabled-color: hsla(250, 80%, 55%, 40%);
     --primary-disabled-text-color: hsla(0, 0%, 100%, 40%);

    --input-bg-color: hsl(250, 36%, 8.5%);
    --icon-color: hsl(0, 0%, 7.5%);
    --line-color: hsl(250, 5%, 30%);
    --hover-color: hsl(250, 36%, 12%);

    --box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.5);

    --logo-text-color: hsl(0, 0%, 100%);
    --logo-hover: brightness(0) saturate(100%) invert(21%) sepia(100%) saturate(2310%) hue-rotate(244deg) brightness(87%) contrast(113%);
    --logo-scrolled: brightness(0) saturate(100%) invert(97%) sepia(7%) saturate(0%) hue-rotate(355deg) brightness(115%) contrast(100%);
  
  }
}

i {
  color: var(--icon-color);
  transition: 0.2s;
}


/*
 /$$$$$$$$                           
|__  $$__/                           
   | $$ /$$   /$$  /$$$$$$   /$$$$$$ 
   | $$| $$  | $$ /$$__  $$ /$$__  $$
   | $$| $$  | $$| $$  \ $$| $$  \ $$
   | $$| $$  | $$| $$  | $$| $$  | $$
   | $$|  $$$$$$$| $$$$$$$/|  $$$$$$/
   |__/ \____  $$| $$____/  \______/ 
        /$$  | $$| $$                
       |  $$$$$$/| $$                
        \______/ |__/                
*/

/* /// /// /// Typography /// /// /// */
h1 {
  font-size: clamp(4rem, 4.5vw, 5.5rem);
  font-family: var(--font-family-heading);
  font-weight: 700;
  font-style: italic;
  margin: 0.5rem 0 0.5rem 0;
  line-height: 6rem;
  text-align: left;
}

h2 {
  font-family: var(--font-family-heading);
  font-size: 3.5rem;
  line-height: 2.5rem;
  font-weight: 600;
  font-style: italic;
  margin: 0rem 0 1rem 0;
}

h3 {
  font-family: var(--font-family-heading);
  font-size: 1.5rem;
  font-weight: 600;
  margin: 0.5rem 0 0.5rem 0;
}

h4 {
  font-family: var(--font-family-heading);
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0.5rem 0 0 0;
}

p {
  margin: 0 0 0.5rem 0;
}

body {
  font-size: 1.1rem;
  font-family: var(--font-family-body);
  font-weight: 300;
  line-height: 1.5rem;
  color: var(--text-color);
  background-color: var(--bg-color);
  padding: 0;
  margin: 0;
  transition: 0.2s;
}

.subtle {
  color: var(--subtle-text-color);
}

.error-text {
  color: var(--red-color);
}

@media (max-width: 50rem) {
  body {
    font-size: 0.9rem;
  }
}

/*
 /$$$$$$$              /$$     /$$                                  
| $$__  $$            | $$    | $$                                  
| $$  \ $$ /$$   /$$ /$$$$$$ /$$$$$$    /$$$$$$  /$$$$$$$   /$$$$$$$
| $$$$$$$ | $$  | $$|_  $$_/|_  $$_/   /$$__  $$| $$__  $$ /$$_____/
| $$__  $$| $$  | $$  | $$    | $$    | $$  \ $$| $$  \ $$|  $$$$$$ 
| $$  \ $$| $$  | $$  | $$ /$$| $$ /$$| $$  | $$| $$  | $$ \____  $$
| $$$$$$$/|  $$$$$$/  |  $$$$/|  $$$$/|  $$$$$$/| $$  | $$ /$$$$$$$/
|_______/  \______/    \___/   \___/   \______/ |__/  |__/|_______/ 
*/

/* /// /// /// Action Buttons /// /// /// */
button {
  padding: 0.5rem 1.5rem;
  border: 0.1rem solid var(--line-color);
  background-color: var(--input-bg-color);
  color: var(--text-color);
  cursor: pointer;
  font-family: var(--font-family-bod);
  font-size: 1rem;
  font-weight: 600;
  transition: 0.2s;
}

button:hover:enabled {
  background-color: var(--hover-color);
}

button:disabled, button:disabled i {
  color: var(--disabled-text-color);
  cursor: default; 
}

.round-button {
  min-width: 5rem;
  border-radius: 2rem;
}

.square-button {
  border-radius: 0.75rem;
}

/* Primary (Purply-Blue) Button */
.primary-button {
  border: 0;
  background-color: var(--primary-color);
  color: var(--alt-text-color);
}

.primary-button i,
.red-button i,
.green-button i,
.icon-button i {
  color: var(--alt-text-color);
}

.primary-button:hover:enabled {
  background-color: var(--primary-hover-color);
}

.primary-button:disabled {
  background-color: var(--primary-disabled-color);
  color: var(--primary-disabled-text-color);
}

/* Icon Button */
.icon-button {
  display: inline;
  padding: 1rem;
  border: 0;
  background-color: rgba(0, 0, 0, 0);
}

.icon-button:hover:enabled,
.icon-button:hover:enabled i {
  color: var(--primary-color);
  background-color: rgba(0, 0, 0, 0);
}



/* /// /// /// Decorations /// /// /// */
hr {
  border: 0;
  height: 0.1rem;
  background-color: var(--line-color);
  margin: 0.75rem 0rem;
  transition: .2s ease-in-out;
}

.image-frame {
  height: 100%;
  width: 100%;
  display: grid;
  place-items: center;
}

/* /// /// /// Forms and Fields /// /// /// */
form {
  display: inline;
}
form label {
  display: block;
  margin: 0.5rem 0.5rem 0.25rem 1rem;
}

form input, form textarea, form select {
  width: 100%;
  padding: 0.5rem 0.8rem;
  margin: 0rem 0 0.5rem 0;
  margin-right: 1rem;
  display: inline-block;
  border: 0.1rem solid var(--line-color);
  border-radius: 2rem;
  box-sizing: border-box;
  font-family: var(--font-family-heading);
  font-size: 16px;
  transition: .2s ease-in-out;
  background-color: var(--input-bg-color);
  color: var(--text-color);
}

form input:hover, form select:hover{
  background-color: var(--hover-color);
}

form input:focus, form select:focus{
  background-color: var(--input-bg-color);
  border: 0.1rem solid var(--primary-color);
  outline: 0;
}


/* /// /// /// Fade-In on Scroll /// /// /// */
/* Fade-in and shift sideways when entering view */
/* Use un-blur for bg elements that can't move or change opacity */
.fade-in {
  opacity: 0;
  filter: blur(1rem);
  transform: translateX(-5rem);
  transition: all 0.75s cubic-bezier(0, 0, 0, 1);
  transition-delay: calc(100ms * var(--delay));
}

.faded-in {
  opacity: 1;
  filter: blur(0rem);
  transform: translateX(0);
}

.un-blur {
  filter: blur(1rem);
  transition: all 1.25s cubic-bezier(0, 0, 0, 1);
  /* transform: scale(1.2); */
  transition-delay: calc(100ms * var(--delay));
}

.un-blurred {
  filter: blur(0rem);
  /* transform: scale(1); */
}

/* /// /// /// Invisible / Hidden /// /// /// */

.invisible {
  opacity: 0;
  backdrop-filter: blur(0rem);
  transition: opacity 0.4s cubic-bezier(0, 0, 0, 1),
    backdrop-filter 0.4s cubic-bezier(0, 0, 0, 1);
}

.display-none {
  display: none;
}

/* /// /// /// Container /// /// /// */
.container {
  max-width: min(80rem, 100% - 2rem);
  margin-inline: auto;
  padding: 5rem;
}

@media (max-width: 50rem) {
  .container {
    max-width: 100%;
    margin-inline: auto;
    padding: 3rem 2rem;
  }
}

/* /// /// /// Columns /// /// /// */
.columns-1-1 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 5rem;
}

.columns-3-2 {
  display: grid;
  grid-template-columns: 3fr 2fr;
  column-gap: 4rem;
}

.columns-2-3 {
  display: grid;
  grid-template-columns: 2fr 3fr;
  column-gap: 4rem;
}

.columns-1-1-1 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}

@media (max-width: 70rem) {
  .columns-1-1,
  .columns-3-2,
  .columns-2-3,
  .columns-1-1-1 {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 3rem;
    justify-items: center;
  }

  .columns-2-3 {
    display: flex;
    flex-direction: column-reverse;
  }
}

/* /// /// /// Center /// /// /// */
.center {
  margin-left: auto;
  margin-right: auto;
}

.vertical-center {
 margin-top: auto;
 margin-bottom: auto;
}


/* /// /// /// Padding / Margin / Gap / Width /// /// /// */
.flexgap05 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.flexgap1 {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.flexgap2 {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  row-gap: 1rem;
}

.padding1 {
  padding: 1rem;
}

.vertical-padding1 {
  padding: 1rem 0 1rem 0;
}

.margin05 {
  margin: 0.5rem;
}

.width25 {
  width: min(80vw, 25rem);
}

/* /// /// /// Expandable / Accordion /// /// /// */
.expandable {
  border-bottom: 0.1rem solid var(--line-color);
  border-radius: 0px;
  margin: 0;
  padding: 0;
}

.expandable-header {
  background-color: var(--bg-color);
  border-radius: 0px;
  padding: 1rem;
  padding-right: 4rem;
  cursor: pointer;
  font-weight: 500;
}

.expandable-header:hover {
  background-color: var(--hover-color);
}

.expandable-header:after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f078";
  color: var(--icon-color);
  /* float: right; */
  position: absolute;
  right: 2rem;
}

.expandable-active:after {
  content: "\f077";
}

.panel {
  padding: 0rem;
  background-color: var(--bg-color);
  border-radius: 0px;
  max-height: 0rem;
  overflow: hidden;
  transition: max-height 0.2s ease-out;
}

.panel-content {
  padding: 1rem;
}


/*
 /$$   /$$                           /$$                    
| $$  | $$                          | $$                    
| $$  | $$  /$$$$$$   /$$$$$$   /$$$$$$$  /$$$$$$   /$$$$$$ 
| $$$$$$$$ /$$__  $$ |____  $$ /$$__  $$ /$$__  $$ /$$__  $$
| $$__  $$| $$$$$$$$  /$$$$$$$| $$  | $$| $$$$$$$$| $$  \__/
| $$  | $$| $$_____/ /$$__  $$| $$  | $$| $$_____/| $$      
| $$  | $$|  $$$$$$$|  $$$$$$$|  $$$$$$$|  $$$$$$$| $$      
|__/  |__/ \_______/ \_______/ \_______/ \_______/|__/      
                                                            
                                                            
                                                            
*/

/* /// /// /// Header /// /// /// */
.top-nav-bar {
  display: flex;
  width: calc(100% - 10rem);
  padding: 0.5rem 5rem;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  z-index: 1;
  transition: 0.4s cubic-bezier(0, 0, 0, 1);
}

.logo {
  display: flex;
  align-items: center;
  padding: 0.5rem 1rem;
  gap: 0.35rem;
  text-decoration: none;
  transition: 0.4s cubic-bezier(0, 0, 0, 1);
}

.logo:hover div {
  color: var(--primary-color);
}

.logo img {
  width: 2rem;
  height: 2rem;
  transition: 0.4s cubic-bezier(0, 0, 0, 1);
}

.logo-text {
  font-family: var(--font-family-heading);
  font-style: italic;
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--logo-text-color);
  transition: 0.4s cubic-bezier(0, 0, 0, 1);
}

.primary-navigation {
  width: 50%;
  text-align: center;
}

.primary-navigation ul {
  display: flex;
  width: 100%;
  justify-content: space-evenly;
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.primary-navigation li {
  float: left;
}

.primary-navigation li a {
  display: block;
  color: var(--alt-text-color);
  font-family: var(--font-family-heading);
  font-size: 1.1rem;
  font-weight: 600;
  text-align: center;
  padding: 0.5rem 1.5rem;
  text-decoration: none;
  transition: 0.2s cubic-bezier(0, 0, 0, 1);
}

.primary-navigation li a:hover {
  color: var(--primary-color);
}

/* /// /// /// Scrolled Formatting /// /// /// */

.scrolled {
  background-color: var(--navbar-color);
  color: var(--text-color);
  box-shadow: var(--box-shadow);
}

.scrolled .logo div {
  color: var(--text-color);
}

.scrolled .logo img {
  color: var(--primary-color);
}

.scrolled .logo:hover div {
  color: var(--primary-color);
}

.scrolled li a {
  color: var(--text-color);
}

::-webkit-scrollbar {
  width: 0.5rem;
  height: 0.5rem;
}

::-webkit-scrollbar-track {
  background: none;
  border-radius: 25px;
}

::-webkit-scrollbar-thumb {
  background: var(--line-color);
  border-radius: 25px;
}

::-webkit-scrollbar-corner {
  background: none;
}

/*/ Mobile Navigation /*/

.mobile-navigation-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.mobile-navigation {
  transition: opacity 0.2s cubic-bezier(0, 0, 0, 1),
    transform 0.2s cubic-bezier(0, 0, 0, 1);
  position: absolute;
  z-index: 2;
  top:0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  padding-top: 5vh;
  width: 100%;
  overflow: scroll;
}

.mobile-navigation ul {
  list-style-type: none;
  width: 15rem;
  margin: auto;
  padding: 0;
}

.mobile-navigation li a {
  display: block;
  color: var(--alt-text-color);
  font-family: var(--font-family-heading);
  font-size: 1.5rem;
  text-align: center;
  padding: 1.5rem 1rem;
  text-decoration: none;
  text-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.15);
  transition: 0.4s cubic-bezier(0, 0, 0, 1);
}

.mobile-navigation li a:hover {
  color: var(--primary-color);
}

.mobile-navigation-open-button {
  display: none;
  transition: 0.2s cubic-bezier(0, 0, 0, 1);
}

.mobile-navigation-close-button {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 3;
  transition: 0.4s;
}

.logo-icon {
  margin: 0.5rem 1rem;
  width: 5rem;
  height: 5rem;
}

.blurred-background {
  backdrop-filter: blur(1rem);
  transition: backdrop-filter 0.4s cubic-bezier(0, 0, 0, 1),
    opacity 0.4s cubic-bezier(0, 0, 0, 1);

  width: 100%;
  height: 100%;
  z-index: 1;
  background-color: rgba(0, 0, 0, 0.25);
}

@media (max-width: 50rem) {
  .top-nav-bar {
    width: 100%;
    padding: 0rem;
  }

  .logo img {
    width: 1.7rem;
    height: 1.7rem;
  }

  .primary-navigation {
    display: none;
  }

  .top-download-button {
    display: none;
  }

  .mobile-navigation-open-button {
    display: block;
  }
}


/* /// /// /// Footer /// /// /// */
.footer {
  background-color: var(--footer-color);
  color: var(--alt-text-color);
  padding: 3rem 6rem;
  margin: 0px;
}

.footer-logo,
.footer-navigation,
.social-media-links {
  text-align: center;
}

.footer-logo {
  width: 5rem;
  height: 5rem;
  margin: 1rem;
}

.footer-navigation ul,
.social-media-links ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.footer-navigation li a {
  display: block;
  width: fit-content;
  color: var(--alt-text-color);
  text-align: left;
  padding: 0.5rem 2rem;
  text-decoration: none;
  transition: 0.2s cubic-bezier(0, 0, 0, 1);
}

.social-media-links li a {
  display: block;
  color: var(--alt-text-color);
  text-decoration: none;
  transform: scale(0.6);
  transition: 0.2s cubic-bezier(0, 0, 0, 1);
}

.footer-navigation li a:hover,
.social-media-links li a:hover {
  color: var(--primary-color);
}

.fine-print {
  padding-top: 5rem;
  text-align: center;
  color: var(--disabled-text-color);
}



@media (max-width: 70rem) {
  .footer {
    padding: 4rem 0rem;
  }

  .footer-logo {
    width: 4rem;
    height: 4rem;
    margin: 0;
  }

  .footer-navigation li a {
    width: auto;
    text-align: center;
  }

  .social-media-links li {
    display: inline-block;
  }

  .social-media-links li a {
    transform: none;
  }
}

/* /// /// /// Notifications and Cookie Consent /// /// /// */
.floating-notification-wrapper {
  width: 100%;
  display: flex;
  justify-content: center;
  position: fixed;
  bottom: 0rem;
  z-index: 1;
}


.floating-notification {
  box-shadow: var(--box-shadow);
  padding: 1.5rem 2rem;
  margin: 1rem;
  background-color: var(--navbar-color);
  border-radius: 0.5rem;
}


/* /// /// /// Banner with bg Image /// /// /// */
.banner-section {
  height: max(25vw, 15rem);
  overflow: hidden;
  background-color: black;
}

.banner-img {
  height: 100%;
  width: 100%;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

.banner-content {
  background-color: rgba(0, 0, 0, 0.25);
  color: var(--alt-text-color);
  text-align: center;
  position: relative;
  bottom: 100%;
  width: 100%;
  height: 100%;
  display: grid;
  align-items: center;
}

/* /// /// /// /// /// INDEX /// /// /// /// /// */

/* /// /// /// Cover Page /// /// /// */
.cover-page {
  height: 100vh;
  color: var(--alt-text-color);
  background-color: black;
  overflow: hidden;
}

.cover-img {
  height: 100vh;
  width: 100vw;
  z-index: -1;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

.cover-page-content {
  display: grid;
  align-content: center;
  position: relative;
  height: calc(100vh - 2rem);
  bottom: 100%;
  padding-top: 2rem;
  background-color: rgba(0, 0, 0, 0.15);
}

.top-download-button {
  text-align: right;
}

.tagline {
  display: grid;
  row-gap: 1.5rem;
  text-align: center;
  align-content: center;
  padding-bottom: 20%;
}

.download-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  max-height: 3rem;
}

.download-badges img:hover {
  filter: brightness(1.4);
}

/* Styles for the app screenshot are in app-img.css */

/* /// /// /// /// /// ABOUT /// /// /// /// /// */

/* /// /// /// /// /// FAQ /// /// /// /// /// */

/* /// /// /// /// /// CONTACT /// /// /// /// /// */

/* /// /// /// /// /// GET STARTED /// /// /// /// /// */

/* /// /// /// /// /// TERMS OF USE /// /// /// /// /// */

/* /// /// /// /// /// PRIVACY POLICY /// /// /// /// /// */

@media (prefers-reduced-motion) {
  :root *,
  :before,
  :after {
    transition: none !important;
  }
}
