@import "./reset.css";
@import "./font.css";

:root {
    --dark-blue: #287C98;
    --pink: #B94F9B;
    --orange: #E89046;
    --red: #DC4761;
    --light-blue: #5AC8DE;
    --dark-yellow: #332d1a;
    --darkest-yellow: #2f241b;
    --yellow: #eba600;

    --dark: #222;
    --white: #fefefe;
    --bkg-white: rgba(254, 254, 254, .2);
    --border-white: rgba(254, 254, 254, .3);
    --gap: 30px;
    --border-radius: 16px;
    --max-width: 780px;
}

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    font-family: var(--text-font); color: var(--white);
    text-align: center;
    background:
            radial-gradient(200px at 20% 20%, var(--light-blue), transparent) no-repeat,
            radial-gradient(400px at 85% 5%, var(--red), transparent) no-repeat,
            radial-gradient(250px at 15% 75%, var(--pink), transparent) no-repeat,
            radial-gradient(300px at 70% 95%, var(--orange), transparent) no-repeat,
            var(--dark-blue);
}

h1, h2 {
    font-family: var(--title-font);
}

p, li {
    font-size: 1.2rem;
    line-height: 1.3em;
}

strong {
    font-family: var(--title-font);
}

a {
    color: inherit;
}

header {
    margin: calc(2 * var(--gap)) auto;
    max-width: var(--max-width);
    text-align: center;

    h1 {
        margin: calc(var(--gap) / 2) 0 var(--gap);
        font-size: 4rem; line-height: 1em;
    }
}

main {
    margin: var(--gap) auto;
    width: 90%;
    max-width: var(--max-width);
    text-align: left;

    .intro {
        margin: var(--gap);
    }

    .program {
        margin: calc(-0.5*var(--gap)) 0 0 calc(2*var(--gap)); padding: 0;
    }

    [role="list"] {
        margin: 0 var(--gap); padding: 0;
    }

    .link-item {
        margin: calc(var(--gap)) 0;
        padding: 0;
    }

    .link-box {
        position: relative; display: block;
        padding: calc(var(--gap)); padding-right: calc(var(--gap) *1.5); border: 1px solid var(--border-white); border-radius: var(--border-radius);
        background: var(--bkg-white);
        text-decoration: none;
        transition: background-color 200ms ease-in;

        &::after {
            position: absolute; top: 50%; right: 0;
            content: '〉';
            transform: translate(-50%, -50%);
            transition: transform 200ms linear;
        }
    }

    .link-box:hover {
        background-color: var(--border-white);

        &::after {
            transform: translate(-30%, -50%);
        }
    }

    .columns {
        display: flex;
        align-items: center; justify-content: start;
        gap: var(--gap);
    }

    .stroke {
        padding: 10px;
        background-color: var(--border-white);
        border-radius: var(--border-radius);
    }
}

@media only screen and (max-width: 780px) {
    :root {
        --gap: 15px;
    }

    header h1 {
        margin-left: var(--gap);
        margin-right: var(--gap);
        font-size: 3.3rem;
    }

    p {
        font-size: 1.2rem;
    }

    article .link-box {
        padding-right: calc(var(--gap) *3);

        .icon img {
            max-width: 40px;
        }

        h2 {
            font-size: 1.6rem;
        }
    }
}
