:root {
    --background: linear-gradient(180deg, #090E1E 0%, #190926 100%);
    --dark_purple: #2f1743;
    --lavender: #907CB2;
    --dark_blue: #090E1E;
    --white: #F0EEFF;
    --button_inset_shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.20) inset;
    --button_shadow: 0 4px 12px 0 rgba(255, 255, 255, 0.10);
    --button-bg: linear-gradient(180deg, rgba(186, 165, 222, 0.50) 0%, rgba(55, 61, 75, 0.50) 135.29%);
    --car1-shadow: rgba(196, 210, 223, 0.60);
}

:host {
    display: block;
    position: relative;
    contain: strict;
    width: 100%;
    height: 80px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
    position: relative;
    background: var(--background);
}

/* common styles */

button {
    padding: 9px 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-shadow: var(--button_shadow), var(--button_inset_shadow);
    background: var(--button-bg);
    border-radius: 6px;
    border: none;
    cursor: pointer;
    transition: all 300ms ease-in-out;
}

button:hover {
    box-shadow: none;
    background: none;
    border: 0.25px solid var(--white);
}

button span {
    font-family: "termina-regular";
    font-size: 14px;
    letter-spacing: 2.5px;
    color: var(--white);
}

.horizontal-flip {
    transform: scaleX(-1);
}

a {
    text-decoration: none;
    cursor: pointer;
}

/* text styles */

@font-face {
    font-family: "panchang-bold";
    src: url(fonts/panchang/Panchang-Bold.otf);
}

@font-face {
    font-family: "panchang-extrabold";
    src: url(fonts/panchang/Panchang-Extrabold.otf);
}

@font-face {
    font-family: "termina-regular";
    src: url(fonts/termina/TerminaTest-Regular.otf);
}

@font-face {
    font-family: "termina-med";
    src: url(fonts/termina/TerminaTest-Medium.otf);
}

@font-face {
    font-family: "termina-semi";
    src: url(fonts/termina/TerminaTest-Demi.otf);
}

@font-face {
    font-family: "termina-bold";
    src: url(fonts/termina/TerminaTest-Bold.otf);
}

h1 {
    font-size: 128px;
}

h2 {
    font-size: 60px;
}

h3 {
    font-size: 54px;
}

h4 {
    font-size: 40px;
}

h5 {
    font-size: 18px;
}

h6 {
    font-size: 14px;
}

p {
    font-size: 12px;
}

.sec-title {
    font-family: "panchang-bold";
    font-size: 40px;
    font-weight: 700;
    letter-spacing: 7.2px;
    background-image: url(imgs/title-bg.svg);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    text-align: center;
    text-transform: uppercase;
}

/* text styles */

.display-none {
    display: none;
}

.display-block {
    display: block;
}

.row-reverse {
    display: flex;
    align-items: center;
    gap: 60px;
    flex-direction: row-reverse;
}

/* common styles */

/* scrollbar */

::-webkit-scrollbar {
    width: 6px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background-color: var(--white);
    border-radius: 10px;
}

::-webkit-scrollbar-thumb {
    background-color: var(--lavender);
    border-radius: 10px;
    transition: all 200ms;
}

::-webkit-scrollbar-thumb:hover {
    background-color: var(--dark_purple);
}

/* scrollbar */

/* preloader */

#preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--dark_blue);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 3;
}

.loader {
    width: 120px;
    height: 22px;
    border-radius: 20px;
    color: var(--white);
    border: 2px solid;
    position: absolute;
}

.loader::before {
    content: "";
    top: 300px;
    position: absolute;
    z-index: 999;
    margin: 2px;
    inset: 0 100% 0 0;
    border-radius: inherit;
    background: currentColor;
    animation: loader 450ms;
}

@keyframes loader {
    100% {
        inset:0
    }
}
/* preloader */


/* header */

header {
    position: fixed;
    z-index: 2;
    top: 0;
    padding:32px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

.header-logo {
    width: 48px;
    height: 48px;
}

.burger-menu {
    height: 20px;
    width: 44px;
    cursor: pointer;
}

/* header */


/* home page */

/* landing screen */

.bg-img {
    position: fixed;
    top: 0;
    width: 100%;
    height: 100vh;
    z-index: -2;
    opacity: 0.02;
    background-image: url(imgs/potential-bg.svg);
    background-size: cover;
    background-position: center;
}

.hero {
    position: relative;
    background: var(--background);
    width: 100%;
    height: 100vh;
    padding-top: 60px;
    display: flex;
    align-items: center;    
    flex-direction: column;
    overflow: hidden;
}

.hero-bg-img {
    background-image: url(imgs/hero-bg-img.png);
    background-size: contain;
    background-position: bottom;
    background-repeat: no-repeat;
}

.hero h1 {
    font-family: "panchang-extrabold";
    letter-spacing: 30px;
    overflow: visible;
    color: var(--white);
}

.hero-model {
    width: 100%;
    height: calc(100vh - 100px);
    flex-grow: 1;
    display: block;
}

model-viewer::part(default-progress-bar) {
  display: none;
}

.main-headline {
    font-weight: 2000;
    perspective: 800px;
    overflow: visible;
    display: inline-block;
}

.scroll-cont {
    position: absolute;
    bottom: 0;
    z-index: 1;
    right: 100px;
    display: flex;
    align-items: start;
}

.scroll-cont p {
    font-family: "panchang-extrabold";
    color: var(--white);
    transform: rotate(90deg);
    line-height: 74px;
    width: 100%;
    font-weight: 800;
    display: flex;
    align-self: start;
}

.scroll-indicator {
    width: 2px;
    height: 170px;
    border-radius: 2px;
}

.scroll-indicator span {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--white);
    transform-origin: top;
    animation: scroll 1.6s ease-in-out infinite;
}

@keyframes scroll {
    0% {
        transform: scaleY(1);
    }
    50% {
        transform: scaleY(0);
    }
    100% {
        transform: scaleY(1);
    }
}

/* landing screen */


/* hero section */

.main-hero {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 100px;
    height: 100vh;
    width: 100%;
}

.main-hero h6 {
    color: var(--white);
    font-family: "termina-regular";
    max-width: 477px;
}

.main-hero-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    width: 100%;
}

.hero-model {
    width: 100%;
    height: calc(100vh - 100px);
    flex-grow: 1;
    display: block;
}

.main-hero-brand-bg {
    position: absolute;
    z-index: -1;
    top: 110px;
    width: 100%;
}

.car-shadow {
    position: absolute;
    left: 0;
    bottom: 170px;
    z-index: -1;
    width: 100%;
    height: 20px;
    border-radius: 1389px;
    background: var(--car1-shadow);
    filter: blur(25px);
    opacity: 0.5;
}

.hero-color-changer {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 28px;
}

.hero-color-changer h6 {
    color: var(--white);
    font-family: "termina-regular";
    font-weight: 400;
}

.color-changer {
    background-color: var(--white);
    height: 2px;
    align-items: center;
    width: 220px;
    display: flex;
    justify-content: space-between;
    overflow: visible;
}

.color-changer-colors {
    cursor: pointer;
    width: 20px;
    height: 20px;
    border-radius: 20px;
    border: 4px solid var(--white);
    transition: all 300ms ease-in-out;
}

.color-changer-colors:hover {
    width: 30px;
    height: 30px;
    border: none;
}

.color-changer-colors-focused {
    border: none;
    width: 30px;
    height: 30px;
}

.color-changer-purple {
    background-color: rgb(40, 9, 61);
}

.color-changer-red {
    background-color: #A1081C;
}

.color-changer-blue {
    background-color: #C4D2DF;
}

.main-hero model-viewer {
    overflow: visible;
}

/* hero section */

/* section 1 */

.sec1 {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    height: auto;
    width: 100%;
    padding: 100px 48px;
}

.sec1 button {
    z-index: 1;
}

.sec1 h5 {
    color: var(--white);
    font-family: "termina-regular";
    font-weight: 400;
    text-align: center;
}

.icon-logo {
    max-width: 215px;
}

.sec1-cont {
    display: flex;
    align-items: center;
    width: 100%;
}

.slider {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 32px;
}

.slider-track {
  display: flex;
  justify-content: center;
  align-items: center;
}

.slide {
  position: relative;
  flex-shrink: 0;
  cursor: pointer;
  transition: transform 0.3s ease, opacity 0.3s ease;
  opacity: 0.5;
}

.slide.active {
  transform: scale(1.3);
  opacity: 1;
}

.car-logo-bg {
  position: absolute;
  width: 100%;
  height: auto;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  z-index: 0;
  transition: opacity 0.3s ease;
}

.sec1-car {
    flex-grow: 1;
    display: block;
    z-index: 1;
    margin-left: -20px;
    margin-right: -20px;
}

.sec1-cont {
    width: 100%;
}

.sec1-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
}

/* section 1 */

/* section 2 */

.sec2 {
    padding: 100px;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sec2 h3 {
    font-family: "termina-bold";
    text-align: center;
    color: #6F7081;
}

.sec2-word {
    display: inline-block;
    margin-right: 0.3em;
    transition: color 0.4s ease;
    cursor: pointer;
}

/* section 2 */

/* section 3 */

.lineup-sec {
    padding: 100px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 60px;
}

.lineup-sec h5 {
    color: var(--white);
    font-family: "termina-regular";
    font-weight: 400;
    max-width: 750px;
    text-align: center;
}

.lineup-cont {
    display: flex;
    flex-direction: column;
    gap: 60px;
}

.lineup-row {
    display: flex;
    flex-direction: row;
    width: 100%;
    gap: 60px;
}

.lineup-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    position: relative;
    width: 100%;
    padding: 24px;
    color: var(--white);
    border: 1px solid var(--white);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(130, 115, 155, 0.5) 0%, rgba(34, 38, 47, 0.5) 135.29%);
    box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.25) inset;
}

.lineup-card button {
    background: none;
    border: 0.25px solid var(--white);
    background: rgba(9, 14, 30, 0.2);
    width: 100%;
}

.lineup-card button:hover {
    box-shadow: none;
    background: none;
    border: 0.25px solid var(--white);
}

.card-car-logo {
    max-width: 150px;
}

.bookmark-icon {
    position: absolute;
    top: 24px;
    right: 20px;
    z-index: 5;
    pointer-events: none;
}

.brand-watermark {
    position: absolute;
    top: 40px;
    left: 50%;
    width: 100%;
    transform: translateX(-50%);
    opacity: 1;
}

.card-specs {
    display: flex;
    justify-content: space-between;
    gap: 10px;
}

.card-specs h6 {
    color: var(--white);
    font-family: "termina-semi";
}

.card-specs p {
    color: var(--white);
    font-family: "termina-regular";
}

.specs {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.spec {
    display: flex;
    align-items: flex-end;
}

.line {
    height: 100%;
    width: 1px;
    background-color: var(--white);
}

.lineup-card span {
    text-align: center;
}

/* section 3 */


/* section 4 */

.performance-row {
    display: flex;
    align-items: center;
    gap: 60px;
}

.sec4 {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 60px;
    padding: 100px;
}

.sec4 h5 {
    font-family: "termina-regular";
    color: var(--white);
    max-width: 750px;
    text-align: center;
}

.sec4-row {
    display: flex;
    align-items: center;
    gap: 60px;
}

.sec4-column {
    display: flex;
    flex-direction: column;
    gap: 60px;
}

.sec4-title {
    text-transform: uppercase;
    letter-spacing: 9.6px;
    font-size: 32px;
    font-family: "termina-semi";
    color: var(--white);
}

.sec4-text {
    color: var(--white);
    font-family: "termina-regular";
    font-size: 20px;
    font-weight: 400;
}

.sec4 video {
    width: 50%;
    border-radius: 12px;
    box-shadow: 3px 6px 13px 0 rgba(240, 238, 255, 0.20);
}

/* section 4 */


/* section 5 */

.lineup-card span {
    font-family: "termina-regular";
    font-size: 16px;
    font-weight: 500;
}

/* section 5 */


/* section 6 */

.sec6 {
  overflow: hidden;
  width: 100%;
  padding: 100px 0;
}

.sec6-top {
    padding: 100px;
    display: flex;
    width: 100%;
    justify-content: space-between;
}

.sec6-top h6 {
    font-family: "termina-regular";
    font-weight: 400;
    color: var(--white);
    max-width: 500px;
}

.partners-carousel {
  display: flex;
  gap: 80px;
  opacity: 0.2;
  width: max-content;
  transition: opacity 0.3s ease;
}

.partners-carousel img {
  height: 30px;
  user-select: none;
  filter: grayscale(100%);
  cursor: pointer;
}

.partners-carousel:hover {
    opacity: 1;
}

/* section 6 */



/* footer */

footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 60px 100px 32px 100px;
    height: 50vh;
    border-top: 1px solid #EDEAE8;
    background: linear-gradient(180deg, #090E1E 0%, #BAA5DE 192.25%);
    color: var(--white);
}

footer h6 {
    font-family: "termina-regular";
}

footer span {
    font-size: 32px;
    font-family: "termina-regular";
    width: 100%;
    text-transform: uppercase;
}

.align-right {
    text-align: end;
}

.footer-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

.footer-slogan {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.footer-socials {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* footer */

/* home page */

/* product page */

/* hero */

.product-hero {
    background-image: url(imgs/car1-hero-bg.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 100vh;
    width: 100%;
    padding: 100px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.breadcrumbs {
    display: flex;
    gap: 24px;
    align-items: center;
    width: 100%;
}

.breadcrumbs-line {
    height: 20px;
    width: 1px;
    background-color: var(--white);
}

.breadcrumbs span {
    font-size: 16px;
    font-family: "termina-semi";
    font-weight: 600;
    color: var(--white);
    text-transform: uppercase;
}

.breadcrumbs-focused {
    opacity: 0.5;
}

.product-car-logo {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.product-car-logo img {
    max-width: 350px;
}

.product-car-logo span {
    font-size: 16px;
    font-weight: 600;
    font-family: "termina-semi";
    color: var(--white);
    max-width: 575px;
    text-transform: uppercase;
}

/* hero */


/* sec1 */

.product-sec1 {
    display: flex;
    padding: 100px;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    color: var(--white);
}

.prod-sec1-col {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.prod-sec1-row {
    display: flex;
    align-items: flex-end;
}

.prod-sec1-col h2 {
    font-family: "panchang-bold";
    font-weight: 700;
}

.prod-sec1-col span {
    font-size: 24px;
    font-family: "termina-regular";
    font-weight: 500;
}

/* sec1 */

/* sec2 */

.prod-car-desc {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    padding: 100px;
}

.prod-car-desc h5 {
    font-family: "termina-regular";
    color: var(--white);
    font-weight: 400;
    text-align: center;
}

/* sec2 */

/* sec3 */

.prod-sec3 {
    background-image: url(imgs/ar-car1-bg.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    padding: 100px;
    height: 60vh;
    display: flex;
    align-items: start;
    justify-content: end;
    flex-direction: column;
    gap: 32px;
}

.prod-sec3 h4 {
    color: var(--white);
    font-family: "panchang-bold";
    font-weight: 700;
}

.prod-sec3 h5 {
    max-width: 650px;
    font-family: "termina-regular";
    font-weight: 500;
    color: var(--white);
}

/* sec3 */


/* sec4 */

.prod-sec4 {
    padding: 100px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 60px;
    width: 100%;
}

.prod-sec4 h5 {
    color: var(--white);
    font-family: "termina-regular";
    text-align: center;
    max-width: 750px;
}

.prod-sec4 img {
    width: 100%;
}

/* sec4 */


/* sec5 */

.prod-sec5 {
    display: flex;
    flex-direction: column;
    padding: 100px;
    gap: 60px;
    justify-content: space-between;
}

.prod-sec5-cont {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 60px;
    width: 100%;
}

.prod-sec5-content {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 50%;
}

.prod-sec5-content h5 {
    color: var(--white);
    font-family: "termina-regular";
    text-align: left;
    width: 100%;
}

.prod-sec5-content li {
    color: var(--white);
    font-family: "termina-semi";
    text-align: left;
    width: 100%;
}

.prod-sec5-point {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.prod-sec5-content h6 {
    color: var(--white);
    font-family: "termina-regular";
    text-align: left;
    width: 50%;
}

.prod-sec5-imgs {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.prod-sec5-img-row {
    display: flex;
    gap: 12px;
}

.prod-sec5-imgs img {
    width: 100%;
}

/* sec5 */


/* sec6 */

.prod-sec6 {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 100px;
    gap: 60px;
    justify-content: space-between;
}

.prod-sec6 h5 {
    color: var(--white);
    font-family: "termina-regular";
    text-align: center;
    max-width: 750px;
}

/* sec6 */


/* sec7 */

.prod-sec7 {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 100px;
    gap: 60px;
    justify-content: space-between;
}


.prod-sec7 h5 {
    color: var(--white);
    font-family: "termina-regular";
    text-align: center;
    max-width: 750px;
}

/* product page */

