:root {
    --font-heading: "Economica", sans-serif;
    --font-text: "Source Sans 3", sans-serif;
    --color-background: #f7efe2;
    --color-text: #142a33;
    --color-line: #e9e1d2;
    --color-accent: #d82313;
    --color-button: #dce7f4;
    --color-button-hover: #cbdbee;
    --color-button-text: #002f79;
    --color-link: #3b95e9;
}

html {
    overflow-x: clip;
}

body {
    margin: 0;
    background: var(--color-background);
    color: var(--color-text);
    font: 1.2rem/1.5 var(--font-text);
}

.page {
    max-width: 1120px;
    margin: auto;
    padding: 24px 16px;
}

section {
    margin-bottom: 48px;
}

img {
    max-width: 100%;
    height: auto;
}

h1 {
    margin: 0;
    font: 700 7rem/1 var(--font-heading);
}

h2 {
    margin: 0;
    font-size: 2.5rem;
}

p {
    margin-top: 0;
}

a {
    color: var(--color-link);
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

.site-nav {
    position: absolute;
    top: 1em;
    right: 0;
    padding: .2em .8em;
    border-top-left-radius: 9999px;
    border-bottom-left-radius: 9999px;
    background: #f7efe2d9;
    font: 400 1.5rem/1 var(--font-heading);
}

.site-nav a {
    color: var(--color-text);
    text-decoration: none;
}

.site-nav a.selected {
    font-weight: bold;
    cursor: default;
}

.site-nav a:hover:not(.selected) {
    color: var(--color-accent);
}

.site-nav a:not(:first-child):before {
    content: " · ";
    padding: 0 .5em;
    font-weight: normal;
}

.label {
    display: block;
    margin: 0;
    color: var(--color-accent);
    font: 700 1.4rem var(--font-heading);
}

.hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.box {
    border-radius: 1rem;
    border: 1px solid #e9e1d2;
    box-shadow: 0 8px 24px var(--color-line);
}

div.box {
    padding: 1.5rem;
    background-color: #fdf5e9;
}

.box-solid {
    border-radius: 2.2rem;
    padding: 2rem 2.5rem;
    background: url("bg_box_dark.jpg") no-repeat #056464;
    box-shadow: 3px 3px 8px rgba(0,0,0,0.6);

}

.box-solid>:last-child {
    margin-bottom: 0;
}


/* SECTOIN: Hero */

.logo {
    width: 110px;
    vertical-align: middle;
    transform: translateY(-10px);
}

.sec-hero h1 {
    text-shadow:
        0 0 8px var(--color-background),
        0 0 18px var(--color-background),
        0 0 32px var(--color-background);
}

.sec-hero p {
    max-width: 35ch;
    margin-top: 2rem;
    font-size: 2rem;
    font-weight: 300;
}



/* SECTOIN: Infographic */

.sec-infographic img {
    display: block;
}

.deep-link {
    margin-top: .5em;
    text-align: right;
    font-size: 1.15rem;
}



/* SECTOIN: Featured */

.sec-feature h2 .title {
    font: 700 4rem/1 var(--font-heading);
}

.sec-feature .box {
    display: flow-root;
}

.sec-feature img.cover {
    display: block;
    float: left;
    width: 35%;
    margin-right: 2rem;
    border: 1px solid var(--color-line);
}

.sec-feature .button {
    margin-top: 1.5rem;
}

.sec-feature .button a {
    display: inline-block;
    padding: 0.65em 1.3em;
    border-radius: 999px;
    background: var(--color-button);
    box-shadow: 0 2px 6px rgb(20 42 51 / 8%);
    color: var(--color-button-text);
    font-weight: 700;
    text-decoration: none;
    transition: background-color 160ms ease, box-shadow 160ms ease;
}

.sec-feature .button a:hover {
    background: var(--color-button-hover);
    box-shadow: 0 4px 10px rgb(20 42 51 / 14%);
}

.sec-feature .button a:focus-visible {
    outline: 3px solid var(--color-link);
    outline-offset: 3px;
}


/* SECTOIN: About */
.sec-about {
    display: flow-root;
}

.sec-about img {
    float: left;
    margin-right: 2rem;
}

.sec-about .content {
    float: left;
    transform: translateX(-20px);
}

.sec-about h2 {
    margin-top: 5rem;
    margin-bottom: 1rem;
}

.sec-about p {
    width: 40ch;
}


/* SECTION: Collab */

.sec-collab {
    color: var(--color-button);
}

.sec-collab .button a {
    display: inline-block;
    padding: 0.65em 1.3em;
    border: 1px solid var(--color-button);
    border-radius: 999px;
    color: var(--color-button);
    font-weight: 700;
    text-decoration: none;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.sec-collab .button a:hover {
    color: white;
    border-color: white;
}

.sec-collab .button a:active {
    color: rgb(172, 208, 222);
    border-color: rgb(172, 208, 222);
}



/* Footer */
footer {
    font-size: .9em;
    color: #034444;
}




/* Paint marks */

.page, .sec-infographic, .sec-feature, .sec-collab {
    position: relative;
}


/* Marks in Hero */
.page::before {
    z-index: -1;
    content: "";
    position: absolute;
    top: -150px;
    right: -250px;
    width: 900px;
    height: 700px;
    background: url("paint_mark_top.png") center / contain no-repeat;
}


/* Marks in Infographic */
.sec-infographic::before {
    z-index: 1;
    content: "";
    position: absolute;
    bottom: -60px;
    left: -120px;
    width: 200px;
    height: 280px;
    background: url("paint_mark_infographic.png") center / 100% 100% no-repeat;
}


/* Marks in Fatured */
.sec-feature::after {
    z-index: 1;
    content: "";
    position: absolute;
    bottom: 10px;
    right: -240px;
    width: 634px;
    height: 264px;
    background: url("paint_mark_featured.png") center / 100% 100% no-repeat;
}


/* Marks in Collab */
.sec-collab::before {
    z-index: 1;
    content: "";
    position: absolute;
    top: -80px;
    right: -190px;
    width: 400px;
    height: 300px;
    background: url("paint_mark_collaborate.png") center / 100% 100% no-repeat;
}

.sec-collab::after {
    z-index: 1;
    content: "";
    position: absolute;
    bottom: -110px;
    right: 40px;
    width: 402px;
    height: 168px;
    background: url("paint_mark_collaborate2.png") center / 100% 100% no-repeat;
}


/* Inside Whole-Play and Flavors */

.content-page h1 {
    font-size: clamp(4rem, 9vw, 6.5rem);
}

.page-intro {
    margin-bottom: 4rem;
}

.page-intro h1 {
    margin: 0.35rem 0 1.4rem;
}

.page-intro p {
    max-width: 67ch;
}

.page-intro .intro-line {
    max-width: 28ch;
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: 300;
}

.story-section {
    max-width: 72ch;
    margin-bottom: 3.5rem;
}

.video-embed {
    margin: 2rem 0;
}

.video-embed iframe {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
    border-radius: 0.5rem;
}

.content-page h2 {
    margin-bottom: 1rem;
    font: 700 3rem/1.1 var(--font-heading);
}

.process {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.65rem;
    margin: 2.5rem 0 0;
    padding: 0;
    list-style: none;
    counter-reset: step;
}

.process li {
    min-height: 6rem;
    padding: 1rem;
    border-top: 5px solid #056464;
    border-radius: 0.35rem;
    background: #fdf5e9;
    font-weight: 700;
    counter-increment: step;
}

.process li::before {
    display: block;
    margin-bottom: 0.4rem;
    color: var(--color-accent);
    font: 700 1.5rem/1 var(--font-heading);
    content: counter(step, decimal-leading-zero);
}

.next-step {
    margin: 4rem 0;
    padding: 2rem;
    border-radius: 1rem;
    background: #056464;
    color: #fdf5e9;
}

.next-step p {
    margin-bottom: 0.65rem;
}

.next-step .label {
    color: #ffca71;
}

.next-step a {
    color: white;
    font-weight: 700;
}

.flavors-page .page-intro {
    max-width: 72ch;
}

.flavor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    margin-bottom: 4rem;
}

.flavor-card {
    --flavor-color: #056464;
    margin: 0;
    padding: 1.8rem;
    border-top: 7px solid var(--flavor-color);
    border-radius: 0.5rem 0.5rem 1rem 1rem;
    background: #fdf5e9;
    box-shadow: 0 8px 24px var(--color-line);
}

.flavor-card h2 {
    margin-bottom: 0;
}

.flavor-number {
    margin-bottom: 1.2rem;
    color: var(--flavor-color);
    font: 700 2rem/1 var(--font-heading);
}

.flavor-subtitle {
    margin: 0.2rem 0 1.5rem;
    color: var(--flavor-color);
    font-weight: 700;
}

.flavor-card p:last-child {
    margin-bottom: 0;
}

.flavor-web { --flavor-color: #d82313; }
.flavor-games { --flavor-color: #9b611f; }
.flavor-looper { --flavor-color: #3a7895; }

.flavor-outro {
    max-width: 72ch;
}

.content-page footer {
    margin-top: 5rem;
}

@media (max-width: 1105px) {
    .page::before {
        top: -280px;
    }
}

@media (max-width: 960px) {
    .sec-about img,
    .sec-about .content {
        float: none;
        transform: none;
    }

    .sec-about h2 {
        margin-top: 0;
    }
}

@media (max-width: 892px) {
    .page::before {
        top: -400px;
        right: -350px;
    }

    .sec-feature::after {
        bottom: -90px;
        right: -440px;
    }

    .sec-collab::before {
        right: -250px;
    }

    .sec-collab::after {
        right: -240px;
    }

    .site-nav {
        top: 0.15em;
        padding: .1em .8em;
    }

    .sec-hero h1 {
        transform: translateY(1rem);
        font-size: 5rem;
    }

    .logo {
        width: 90px;
        transform: translateY(-5px);
    }
}

@media (max-width: 700px) {
    .process,
    .flavor-grid {
        grid-template-columns: 1fr;
    }

    .process li {
        min-height: 0;
    }

    .sec-about p {
        width: auto;
    }

}
