@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&family=Oswald:wght@200..700&display=swap');:root {
    --black: hsl(0, 0%, 4%);
    --white: hsl(0, 0%, 100%);
    --white-transparent: hsla(0, 0%, 100%, 0.3);
    --grey: hsl(0, 0%, 63%);
    --border: hsl(0, 0%, 16%);
    --jetbrains: "JetBrains Mono", monospace;
    --dmsans: "DM Sans", sans-serif;
    --oswald: Oswald, sans-serif;
}
html {
    box-sizing: border-box;
    scroll-behavior: smooth;
}
body {
    background-color: var(--black);
    margin: 0;
    margin: 0 1rem;
}
/* ! main */
#main {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-direction: column;
    height: 100vh;
    border-bottom: var(--border) 1px solid;
}
/* ! header */
.header {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-top: 1.2em;
}
.site-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: var(--jetbrains);
    color: var(--grey);
    text-transform: uppercase;
    font-size: 0.7rem;
    width: 100%;
}
.site-nav-name a {
    text-decoration: none;
    color: var(--grey);
    transition: color ease 0.2s;
}
.site-nav-name a:hover {
    color: var(--white);
}
.site-nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    list-style: none;
    gap: 0.8rem;
}
.site-nav-links li a {
    text-decoration: none;
    color: var(--grey);
    transition: color ease 0.2s;
}
.site-nav-links li a:hover {
    color: var(--white);
}
/* ! hero */
.hero {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
    width: 100%;
    height: 100%;
}
.hero-title {
    color: var(--grey);
    font-family: var(--jetbrains);
    text-transform: uppercase;
    font-size: 14px;
}
.hero-name {
    color: var(--white);
    font-family: var(--oswald);
    text-transform: uppercase;
    font-size: clamp(4rem, 10vw, 8rem);
    line-height: 0;
    margin-top: 3rem;
    font-weight: 700;
    user-select: none;
}
.hero-desc {
    color: var(--grey);
    font-family: var(--dmsans);
    font-size: 18px;
    line-height: 1.5rem;
}
.hero-content {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
}
.hero-btn {
    margin-top: 1.5rem;
}
/* ! Projects */
#projects {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
    margin-top: 4rem;
    border-bottom: var(--border) 1px solid;
    padding-bottom: 4rem;
}
.projects-teaser {
    text-transform: uppercase;
    font-family: var(--jetbrains);
    color: var(--grey);
    font-size: 14px;
}
.projects-title {
    text-transform: uppercase;
    font-family: var(--oswald);
    font-weight: 700;
    color: var(--white);
    font-size: 2rem;
    margin-top: 1rem;
}
/* projects */
.projects-gallery {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    width: 100%;
    height: 100%;
    margin-top: 3rem;
    gap: 2rem;
}
.project {
    height: 100%;
    width: 100%;
    opacity: 0.6;
    transition: opacity ease 0.2s, transform ease 0.2s;
}
.project:hover {
    opacity: 1;
    transform: scale(1.01);
}
.project-image {
    width: 100%;
    height: 100%;
    cursor: pointer;
}
.project-image img {
    width: 100%;
    height: 100%;
}
.project-content {
    display: flex;
    margin-top: 1rem;
}
.project-title {
    text-transform: uppercase;
    font-family: var(--oswald);
    font-weight: 700;
    font-size: 1.3rem;
    line-height: 0;
    color: var(--white);
}
.project-desc {
    font-family: var(--dmsans);
    font-weight: 400;
    color: var(--grey);
    margin-top: 1.5rem;
    font-size: 14px;
    line-height: 1.3rem;
}
.project-tags, .about-tags {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.project-tag, .about-tag {
    border: 1px solid var(--border);
    background: transparent;
    padding: 5px 10px;
    text-transform: uppercase;
    font-family: var(--jetbrains);
    color: var(--grey);
    font-size: 12px;
}
.projects-btn {
    margin-top: 5rem;
}
/* ! services */
#services {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
    margin-top: 4rem;
    /* border-bottom: var(--border) 1px solid; */
    padding-bottom: 4rem;
    width: 100%;
}
.services-teaser {
    text-transform: uppercase;
    font-family: var(--jetbrains);
    color: var(--grey);
    font-size: 14px;
}
.services-title {
    text-transform: uppercase;
    font-family: var(--oswald);
    font-weight: 700;
    color: var(--white);
    font-size: 2rem;
    margin-top: 1rem;
}
/* services start */
.services-grid {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    height: 100%;
    width: 100%;
}
.service-card {
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-template-rows: 1fr 1fr;
    grid-template-areas: 
    "title price"
    "desc desc";
    justify-content: center;
    align-items: center;
    padding-top: 1rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--border);
    gap: 10px;
    max-height: 130px;
    min-height: 60px;
    height: auto;
    width: 100%;
}
.service-card-title {
    font-family: var(--dmsans);
    font-size: 1rem;
    color: var(--white);
    grid-area: title;
    margin:0;
}
.service-card-desc {
    font-family: var(--jetbrains);
    font-size: 0.8rem;
    color: var(--grey);
    grid-area: desc;
    margin:0;
    line-height: 1.2rem;
}
.service-card-price {
    font-family: var(--jetbrains);
    font-size: 0.8rem;
    color: var(--grey);
    grid-area: price;
    justify-self: flex-end;
}
.service-card-price:hover {
    color: var(--white);
}
/* ! about */
#about {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
    margin-top: 1rem;
    border-bottom: var(--border) 1px solid;
    padding-bottom: 4rem;
}
.about-teaser {
    text-transform: uppercase;
    font-family: var(--jetbrains);
    color: var(--grey);
    font-size: 14px;
}
.about-title {
    text-transform: uppercase;
    font-family: var(--oswald);
    font-weight: 700;
    color: var(--white);
    font-size: 2rem;
    margin-top: 1rem;
}
.about-desc {
    font-family: var(--dmsans);
    color: var(--grey);
    font-size: 1rem;
    margin-top: 1rem;
    line-height: 1.5rem;
}
.about-tags {
    margin-top: 2rem;
}
.about-tag {
    color: var(--white);
}
/* ! contact */
#contact {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
    margin-top: 4rem;
    border-bottom: var(--border) 1px solid;
    padding-bottom: 4rem;
}
.contact-teaser {
    text-transform: uppercase;
    font-family: var(--jetbrains);
    color: var(--grey);
    font-size: 14px;
}
.contact-title {
    text-transform: uppercase;
    font-family: var(--oswald);
    font-weight: 700;
    color: var(--white);
    font-size: 2rem;
    margin-top: 1rem;
}
.contact-content {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
}
.contact-desc {
    font-family: var(--dmsans);
    color: var(--grey);
    font-size: 1rem;
    margin-top: 1rem;
    line-height: 1.5rem;
}
.contact-email {
    text-transform: uppercase;
    font-family: var(--oswald);
    font-weight: 700;
    color: var(--white);
    font-size: 1.4rem;
    margin-top: 1rem;
}
/* ! form */
form {
    background-color: var(--charcoal);
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
}
form label {
    font-family: var(--dmsans);
    color: var(--white);
    margin-top: 2rem;
    align-self: flex-start;
}
.form-input {
    background: transparent;
    border: 1px solid var(--grey);
    font-size: 1rem;
    font-family: var(--jetbrains);
    color: var(--grey);
    padding: 10px;
    width: 100%;
    box-sizing: border-box;
}
textarea {
    line-height: 1.5rem;
}

input:-webkit-autofill,
textarea:-webkit-autofill {
  -webkit-box-shadow: 0 0 0px 1000px var(--charcoal) inset;
  -webkit-text-fill-color: var(--light-grey);
}
.form-input:focus {
    outline:none;
}
.message {
    transition: border 0.3s ease;
    font-size: 0.8rem;
}
.message.highlight {
    border: 2px solid var(--white);
}
/* ! footer */
#footer {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: 1rem;
}
.footer-copyright, .back-to-top {
    text-transform: uppercase;
    font-family: var(--jetbrains);
    color: var(--grey);
    font-size: 10px;
    letter-spacing: 4px;
    line-height: 1.5rem;
    text-decoration: none;
}
/* ! utility */
.btn {
    border: var(--white-transparent) 1px solid;
    color: var(--white);
    font-family: var(--oswald);
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 3px;
    padding: 0.9rem 2.3rem;
    text-decoration: none;
    font-weight: 400;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    transition: background-color ease 0.3s, color ease 0.3s;
}
.btn i {
    margin-top: 1px;
}
.btn:hover {
    background-color: var(--white);
    color: var(--black);
}
.form-btn {
    background-color: transparent;
    border: 1px solid var(--grey);
    margin-top: 1rem;
    width: 100%;
}