:root {
    font-size: 20px;
    font-family: lato, sans-serif;
    color: #ddd
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0
}

* {
    box-sizing: border-box
}

a {
    text-decoration: none;
    transition: color .2s
}

footer {
    padding: .5rem;
    font-size: 14px;
    background-color: #eee;
    display: flex;
    align-items: center;
    color: #222
}

footer span {
    flex: 1 1 0
}

footer a {
    display: flex;
    align-items: center;
    gap: .5rem;
    border: 1px solid #ccc;
    padding: .5rem;
    border-radius: 8px;
    transition: background-color .2s, color .2s;
    color: #666
}

footer a img {
    height: 1rem
}

footer a:hover {
    color: #222;
    background-color: #fff
}

h1, h2, h3 {
    font-weight: normal;
    font-family: raleway, sans-serif;
}

canvas {
    width: 100%;
    height: 100vh
}

.button {
    display: inline-block;
    padding: .5rem 1rem;
    background-color: #fff;
    border-radius: 2rem;
    border: none;
    color: #222;
    font: normal 1rem raleway;
    cursor: pointer;
    transition: background-color .2s, color .2s;
    box-shadow: 0 0 10px #555
}

.button:hover {
    background-color: #ddd;
    color: #000
}

#top {
    position: sticky;
    top: 0;
    padding: 1rem 0;
    background-color: #111;
    border-bottom: 1px solid #444;
    z-index: 1
}

#top a {
    font-family: raleway, sans-serif;
    color: #ccc
}

#top a:hover {
    color: #fff
}

#top div {
    display: flex;
    align-items: center;
    gap: 1rem;
    height: 2rem
}

#top img {
    height: 100%;
    margin-right: 1rem
}

#head {
    position: relative;
    height: calc(100vh - 4rem);
    max-height: 20rem;
    /* background-position: 0 25%; */
    display: flex;
    align-items: center;
    box-shadow: 0 0 15px #555
}

#head img {
    position: absolute;
    /* filter: brightness(.9); */
    object-fit: cover;
    object-position: top;
    width: 100%;
    height: 100%;
    z-index: -1
}

#head h2 {
    overflow: hidden;
    font-size: 2rem;
    color: #aaa;
    margin: 0
}

#head h2 span {
    display: block;
    transform: translateY(100%);
    animation: 1s 1s slide forwards
}

#head h1 {
    font-size: 3rem;
    color: #fff;
    margin: 0;
    filter: drop-shadow(0 0 2px #555)
}

#canvas {
    position: sticky;
    top: 0;
    height: 0;
    z-index: -1
}

#services p {
    margin-bottom: 0
}

#services {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
    gap: 2rem
}

#services span {
    color: #f52;
    font-size: 3rem
}

#services h3 {
    font-size: 1.5rem;
    color: #fff;
    margin: 0
}

#services div div {
    display: flex;
    align-items: center;
    gap: 1rem
}

#services > div {
    background-color: #000;
    border: 4px solid #333;
    padding: 2rem;
    border-radius: .8rem
}

#banner {
    background-color: #222;
    padding: 4rem 0;
    color: #ccc;
    mix-blend-mode: exclusion;
    border-top: 4px solid #555;
    border-bottom: 4px solid #555
}

#intro {
    background-color: #ccc;
    color: #222
}

#intro p {
    margin-bottom: 1.5rem
}

#intro, #contact {
    margin: 6rem 0;
    padding: 3rem;
    outline: 4px dashed #fff;
    outline-offset: -1rem;
    border-radius: .8rem
}

/* #bottom {
    padding-top: 6rem;
    padding-bottom: 6rem
} */

#contact {
    background-color: #58d;
    color: #fff;
    
    display: flex;
    flex-wrap: wrap;
    
    gap: 2rem
    /* border-radius: .8rem;
    background-color: #ddd;
    margin-top: 2rem;
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    padding: 2rem */
}

#contact form {
    background-color: #fff;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 10rem;
    max-width: 20rem;
    gap: 1rem;
    padding: 1rem;
    border-radius: .8rem
}

#contact input, #contact textarea {
    font: inherit;
    padding: .5rem 1rem;
    background-color: #fff;
    border: none;
    outline: none;
    border-bottom: 2px solid #ddd
}

#contact textarea {
    resize: none;
    height: 10rem
}

#contact > div {
    flex: 1 1 0
}

#contact ul {
    list-style-type: none;
    padding: 0
}

#contact li {
    display: flex;
    gap: 1rem
}

#contact a {
    color: #8df
}

#contact a:hover {
    color: #fff
}

#banner, #contact, #head {
    scroll-margin-top: 4rem
}

.main h3 {
    font-size: 1rem;
    margin: 0
}

.main h2 {
    font-size: 2rem;
    margin: 0 0 2rem
}

.main {
    width: 100%;
    max-width: 64rem;
    margin: 0 auto;
    padding-right: 6rem;
    padding-left: 6rem
}

.symbol {
    font-family: symbols
}

@font-face {
    font-family: raleway;
    src: url(webfonts/raleway.woff2), url(webfonts/raleway.woff)
}

@font-face {
    font-family: lato;
    src: url(webfonts/lato.woff2), url(webfonts/lato.woff)
}

@font-face {
    font-family: symbols;
    src: url(webfonts/rounded.woff2)
}

@keyframes slide {
    to {transform: translateY(0)}
}

@media screen and (max-width: 60rem) {
    :root {
        font-size: 16px
    }

    .main {
        padding-left: 4rem;
        padding-right: 4rem
    }
}

@media screen and (max-width: 35rem) {
    :root {
        font-size: 14px
    }

    .main {
        padding-left: 2rem;
        padding-right: 2rem
    }
}