* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-size: 100%;
    font: inherit;
}

html {
    /* font-size: 18px; */
    font-size: 20px;
}

@view-transition {
  navigation: auto;
}

/* ::view-transition-old(root),
::view-transition-new(root) {
    animation-duration: 5s;
    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
} */

/* @keyframes slide-in {
    from { transform: translateY(20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

@keyframes slide-out {
    from { transform: translateY(0); opacity: 1; }
    to { transform: translateY(-20px); opacity: 0; }
}

::view-transition-old(root) {
    animation: 0.3s ease-in slide-out;
}

::view-transition-new(root) {
    animation: 0.4s ease-out slide-in;
} */

@font-face {
    font-family: 'Indicate Mono';
    /* src: url('../fonts/IndicateMono.woff2'); */
    src: url('../fonts/IndicateMono-Jacco.woff2');
    font-weight: normal;
}

body {
    /* font-family: sans-serif; */
    font-family: 'Indicate Mono';
    color: blue;
    line-height: 1.2em;
    overflow-x: hidden;

    padding: 1rem;
}

a {
    text-decoration: none;
    color: red;
}

.main p a.external:after {
    content: ' ↗';
}

.main p a:hover {
    transform: scale(1.2) rotate(var(--rotate));
}

p {
    /* max-width: 90ch; */
}

p+p, p+img, p+figure {
    margin-top: 1.2em;
}

figcaption {
    margin-top: 1.2rem;
}

.main p a {
    display: inline-block;
}

::selection {
    background: red;
    /* background: blue; */
    color: #fff;
}

.tabkey a:focus, .tabkey button:focus {
    outline: solid 4px rgba(0,0,0,.2);
}



/* nav */

.nav {
}

.nav ul {
    list-style-type: none;
    display: flex;
    gap: 1.5rem;

    a {
        padding: .5rem;
        display: flex;
        position: relative;
        left: -.5rem;
        top: -.5rem;
    }
}

.current {
    text-decoration: underline;
    /* text-decoration-style: wavy; */
    /* text-decoration-thickness: 2px; */
    text-decoration-color: blue;
}

.nav li:nth-of-type(1) {
   view-transition-name: nav-item-1;
}

.nav li:nth-of-type(2) {
   view-transition-name: nav-item-2;
}

.nav li:nth-of-type(3) {
   view-transition-name: nav-item-3;
}

.nav li:nth-of-type(4) {
   view-transition-name: nav-item-4;
}

.nav li:nth-of-type(5) {
   view-transition-name: nav-item-5;
}

.nav li:nth-of-type(6) {
   view-transition-name: nav-item-6;
}

.hamburger {
    display: none;
    align-self: flex-end;
    justify-self: flex-end;
    appearance: none;
    background: none;
    border: none;
    cursor: pointer;
    color: red;
    position: fixed;
    top: 0;
    right: 0;
    padding: 1rem;
}

body.mobilemenu {
    overflow: hidden;
}

body.mobilemenu .nav ul {
    position: fixed;
    background: #fff;
}

.hamburger span+span {
    display: none;
}

body.mobilemenu .hamburger span:first-of-type {
    display: none;
}

body.mobilemenu .hamburger span+span {
    display: block;
}



/* main */

.main {
    margin-top: 2.4rem;
    display: grid;
}

h1 {
    font-size: 2rem;
    margin-bottom: 1.2rem;
}

img, video {
    max-width: 100%;
    height: auto;
    display: flex;
}

figure {
    margin-bottom: 2.4rem;
}

ul.projects {
    list-style-type: none;
    display: grid;
    /* grid-template-columns: 1fr 1fr 1fr 1fr; */
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    flex-direction: column;
    gap: 3rem 1rem;
    margin-top: 2.4rem;

    /* outline: solid 1px red; */

    li {
        a {
            display: flex;
            flex-direction: column;
            
            font-size: 1.5rem;
            line-height: 1.2em;

            position: relative;

            justify-content: center;
            align-items: center;

            overflow: hidden;

            span {
                display: inline-flex;
                /* margin-top: .6rem; */

                position: absolute;

                background: #fff;
                color: red;

                border-radius: 2rem;
                padding: .5rem .75rem;

                transition: all .2s cubic-bezier(0.25, 1, 0.5, 1);
            }

            img {
                transition: all .2s cubic-bezier(0.25, 1, 0.5, 1);
            }

            &:hover {
                span {
                    background: red;
                    color: #fff;
                }

                img {
                    transform: scale(1.1);
                }
            }


        }
    }
}



/* animations */
/* @keyframes rotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes shake {
    from {
        transform: translateX(-10vw);
    }

    to {
        transform: translateX(10vw);
    }
} */

.rotater, .skewer {
    transition: all .2s;
}

.rotater:hover {
    transform: rotate(var(--rotate)) scale(1.5);
}

.skewer:hover {
    transform: skew(var(--skew));
}



@media (max-width: 800px) {
    .main {
        padding-top: 1.2rem;
    }

    .nav li {
        display: none;
        view-transition-name: unset !important;
    }

    .nav li:first-child {
        display: block;
    }

    .hamburger {
        display: flex;
        z-index: 400;
    }

    body.mobilemenu .nav ul li {
        display: block;
    }

    .nav ul {
        display: block;
        position: fixed;
        width: 100dvw;
        /* height: 100dvh; */
        height: 60px;
        top: 0;
        padding: 1rem 0;
        z-index: 300;
    }

    body.mobilemenu .nav ul {
        height: 100dvh;
    }

    .rotater:hover, .skewer:hover {
        transform: unset;
    }

    ul.projects {
        margin-top: 1.2rem;
    }
}