@font-face {
    font-family: 'abjfont';
    src: url('/fonts/abjfont.woff2') format('woff2'),
        url('/fonts/abjfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/*CSS RESET*/
a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}table{border-collapse:collapse;border-spacing:0}*{box-sizing:border-box}
/***********/

html, body {
    scroll-behavior: smooth;
}

body {
    font-family: abjfont, cursive;
    font-size: 20px;
    overflow-x: hidden;
}

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

img {
    max-width: 100%;
}

header {
    position: fixed;
    z-index: 10;
    width: 100vw;
    top: 0;
    left: 0;
}

header .bigrip {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(/img/bigrip.svg);
    background-position: bottom;
    background-repeat: no-repeat;
    z-index: -1;
    background-size: 100% auto;
}

header .bigrip::after {
    content: "";
    background: #fce78d;
    position: absolute;
    top: -2.5vh;
    left: 0;
    width: 100%;
    height: 5vh;
}

nav {
    max-width: 1200px;
    height: 10vh;
    min-height: 100px;
    margin: auto;
    justify-content: flex-end;
    align-items: center;
    display: flex;
    padding-bottom: 1vw;
}

nav a {
    text-transform: uppercase;
    margin-left: 1em;
    padding: 0.5em 0;
    border-bottom: 3px solid transparent;
}

body[navsec="about"] nav a:nth-child(1),
body[navsec="randomice"] nav a:nth-child(2),
body[navsec="roadmap"] nav a:nth-child(3),
body[navsec="faq"] nav a:nth-child(4) {
    border-color: #5f69af;
}

section {
    position: relative;
    min-height: 60vh;
    padding: 12vh 15px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

section h2 {
    text-align: center;
    text-transform: uppercase;
    font-size: calc(1.5em + 1vw);
    margin-bottom: auto;
}

.content {
    width: 100%;
    max-width: 1200px;
    margin: 1em auto auto;
}

.cta {
    text-transform: uppercase;
    background: #aae0fa;
    color: black;
    border-radius: 10px;
    border: 3px solid black;
    margin: 1em auto;
    font-weight: 800;
    padding: 0.5em 1.35em 0.4em;
    font-size: 1.5em;
    transition: 300ms ease-in-out;
}

.cta:hover, a:hover .cta {
    background: #5d68b0;
    color: white;
    border-color: white;
}

/* socials */
.socials {
    display: flex;
    justify-content: center;
    align-items: center;
}

.socials a {
    max-width: 35px;
    margin: 5px 10px;
}

.socials svg {
    max-width: 100%;
    width: 100%;
}

/* specific areas */
/* about/splash area */
#about {
    padding-top: calc(10vh + 50px);
    padding-bottom: 0;
    min-height: 80vh;
    text-align: center;
    background: linear-gradient(0deg, rgba(230,230,231,1) 0%, rgba(255,255,255,1) 50%);
    overflow: hidden;
}

#about .content {
    width: 100%;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: 0;
}

#about p {
    max-width: 650px;
    font-size: 1.1em;
    line-height: 1.25em;
}

#about .socials {
    margin-top: 1em;
}

#logo {
    max-width: 600px;
    width: 100%;
}

#drrando {
    position: absolute;
    background-image: url(/img/drrando.png);
    height: 500px;
    width: 600px;
    transform: translateX(-430px);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    max-width: 600px;
    pointer-events: none;
}

#machine {
    position: absolute;
    z-index: -1;
    width: 60vw;
    height: 100vh;
    transform: translateX(25vw) translateY(5vh);
    background: url(/img/machine.png);
    background-size: contain;
    background-position: bottom;
    background-repeat: no-repeat;
    opacity: 0.2;
    bottom: 0;
    transform-origin: bottom;
    animation: MACHINE 1s ease-in-out infinite alternate;
}

@keyframes MACHINE {
    0% { transform: translateX(25vw) translateY(5vh) scaleX(1.01) scaleY(0.99)}
    100% { transform: translateX(25vw) translateY(5vh) scaleX(0.99) scaleY(1.01)}
}

/* Randomice */
#randomice {
    background: #5d68b0;
    color: white;
}

#randomice::after {
    content: "";
    position: absolute;
    top: 0;
    height: 30px;
    width: 100%;
    background-image: url(/img/smallrip.svg);
}

.randogrid {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.randogrid > span {
    flex-basis: 16%;
    padding: 5px;
}

.randogrid > span:nth-child(6) ~ span { /* every mouse after the 6th has some space above it to let the animation breathe */
    margin-top: 10px;
}

.randogrid img {
    border-radius: 15px;
    display: block;
    animation: MOUSEHOVER 2s ease-in-out infinite alternate;
}

.randohighlight {
    display: flex;
    margin: 2em auto;
}

.randohighlight > * {
    flex-basis: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin: auto;
}

.randohighlight img {
    border-radius: 15px;
    border: 3px solid black;
}

.randohighlight p {
    font-size: 1.5em;
    line-height: 1.25em;
}

@keyframes MOUSEHOVER {
    0% { transform: translateY(-10px) }
    100% { transform: translateY(0) }
}

/* Roadmap */
#roadmap {
    background: linear-gradient(180deg, rgba(149,212,177,1) 0%, rgba(234,195,226,1) 100%);
    overflow: hidden;
}

#roadmap::after {
    content: "";
    position: absolute;
    top: 0;
    height: 30px;
    width: 100%;
    background-image: url(/img/roadrip.svg);
}

.roadmap {
    z-index: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.milestone {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 500px;
    min-height: 100px;
    background: white;
    border: 3px solid black;
    border-radius: 15px;
    padding: 15px;
    margin-right: auto;
    text-align: left;
    margin-top: 50px;
}

.milestone:first-child {
    margin-top: 175px;
}

.milestone-title {
    position: absolute;
    display: block;
    top: 0;
    left: 23px;
    width: 225px;
    transform: translateY(-70px);
    font-size: 20px;
    white-space: nowrap;
    font-family: monospace;
    text-align: center;
    text-transform: uppercase;
}

.milestone-title.longtitle {
    font-size: 18px;
    margin-left: -3px;
}
  
.milestone-body {
    line-height: 1.25em;
}

.milestone::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 600px;
    height: 175px;
    transform: translateY(calc(-100% - 3px));
    background-repeat: no-repeat;
    background-position: bottom left;
    pointer-events: none;
}

.milestone:nth-child(5n+1)::before { background-image: url(/img/roadmap/Machine.png) }
.milestone:nth-child(5n+2)::before { background-image: url(/img/roadmap/Machine2.png) }
.milestone:nth-child(5n+3)::before { background-image: url(/img/roadmap/Machine3.png) }
.milestone:nth-child(5n+4)::before { background-image: url(/img/roadmap/Machine4.png) }
.milestone:nth-child(5n+5)::before { background-image: url(/img/roadmap/Machine5.png) }
.milestone:nth-child(5n+2) .milestone-title, .milestone:nth-child(5n+4) .milestone-title { left: 99px }

.milestone::after {
    content: "";
    width: 100%;
    height: 100%;
    min-height: 200px;
    position: absolute;
    bottom: 0;
    right: 0;
    transform: translate(75%, 75%);
    background-image: url('/img/roadmap/Feet.png');
    background-size: 100% 100%;
    z-index: -1;
    pointer-events: none;
}

.milestone:nth-child(2n+2) {
    margin-left: auto;
    margin-right: 0;
}

.milestone:nth-child(2n+2)::after {
    right: unset;
    left: 0;
    transform: translate(-75%, 75%) rotateY(180deg);
}

.milestone:last-child::after {
    opacity: 0;
}

.milestone strong {
    text-decoration: underline;
    font-weight: 600;;
}
  

/* FAQs */
#faq {
    background: #fbe579;
}

#faq::after {
    content: "";
    position: absolute;
    top: 0;
    height: 30px;
    width: 100%;
    background-image: url(/img/faqrip.svg);
}

.questions {
    width: 100%;
}

.question {
    width: 100%;
    border: 2px solid;
    padding: 1em;
    border-radius: 10px;
    background: white;
    margin-top: 2em;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.qname {
    font-size: 1.5em;
    padding-bottom: 0.5em;
    margin: 0 0.5em 0.5em 0.5em;
    border-bottom: 3px solid;
    display: block;
    text-align: center;
    position: relative;
}

.qname::selection {
    background: transparent;
    color: black;
}

.question.collapsed .qans {
    display: none;
}

.question.collapsed .qname {
    border-bottom: 0;
    padding-bottom: 0;
    margin: 0;
}

.expander {
    width: 100%;
    cursor: pointer;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 2em;
}

.expander::after {
    content: "-";
    position: absolute;
    right: 0;
    font-size: 2em;
}

.collapsed .expander::after {
    content: "+"
}
  

/* Footer */
footer {
    min-height: 15vh;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

footer::before {
    content: "";
    position: absolute;
    top: -15%;
    height: 30px;
    width: 100%;
    background-image: url(/img/footerrip.svg);
    transform: rotate(180deg);
    background-position: bottom;
    background-repeat: repeat-x;
}
  
/* Responsive adjustments */
@media only screen and (max-width: 1175px) {
    header .bigrip, #randomice::after, #roadmap::after, #faq::after {
        background-size: auto 100%;
    }

    #faq::after, #randomice::after {
        background-repeat: no-repeat;
        transform: translateY(-1px);
    }
    
    header .bigrip {
        left: -1%;
    }
}
@media only screen and (max-width: 1020px) {
    .milestone {
        margin-top: 175px;
    }
}

@media only screen and (max-width: 1200px) {
    nav {
        justify-content: space-around;
    }

    nav a {
        margin: 0;
    }

    #drrando {
        height: 50vw;
        width: 50vw;
        transform: translateX(-40vw) translateY(-9vh);
    }

    .milestone {
        margin-bottom: 2em;
    }

    .milestone::after {
        width: 50%;
    }
}

@media only screen and (max-width: 800px) {
    /* GENERAL */
    nav a {
        font-size: 4vw;
    }

    section {
        padding: 12vh 15px 0
    }


    /* ABOUT */
    #about {
        padding-bottom: 0;
    }

    #drrando {
        height: 50vw;
        width: 50vw;
        transform: translateX(-40vw) translateY(-9vh);
    }

    #machine {
        transform: unset;
        bottom: unset;
        width: 100vw;
        height: 40vh;
        top: -15vh;
    }


    /* RANDOMICE */
    .randogrid > span {
        flex-basis: 33%;
    }

    .randogrid > span:nth-child(6) ~ span {
        display: none;
    }

    .randohighlight {
        flex-wrap: wrap;
    }

    .randohighlight > * {
        flex-basis: 100%;
    }

    .randohighlight > a {
        margin-top: 2em;
        text-align: center;
    }

    .randohighlight p {
        font-size: 1.1em;
    }

    .randohighlight img {
        width: 70vw;
        max-width: 300px;
    }

    .randohighlight > div:nth-child(2) {
        order: -1;
        margin-bottom: 2em;
    }
    
    /* MILESTONES */
    #roadmap {
        padding: 12vh 0;
    }
    
    .milestone, .milestone:nth-child(2n+2) {
        margin: 175px auto 2em;
    }
    
    .milestone::after {
        display: none;
    }
    
    .milestone:last-child {
        margin-bottom: unset;
    }  

    /* FAQ */
    #faq {
        padding-bottom: 5vh;
    }
}

@media only screen and (max-height: 430px) {
    .bigrip {
        background-size: 100%;
    }

    nav {
        height: 15vh;
    }

    #about .content {
        max-width: 50vw;
    }

    #drrando {
        transform: translateX(-35vw) translateY(-9vh);
    }

    #machine {
        height: 100vh;
    }

    footer {
        padding-top: 1em;
    }
}

.markdown * {
    margin: 0.5em 0;
    line-height: 1.25em;
}

.markdown h1 {
    font-size: calC(1.5em + 0.75vw);
}  

.markdown h2 {
    font-size: calC(1em + 0.75vw);
}  

.markdown h3 {
    font-size: calC(1em + 0.5vw);
}  

.markdown ul {
    padding-left: 15px;
}