/* =========================================================
   GLOBAL BOX SIZING
   ========================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}
/* =========================================================
   BACKGROUND
   ========================================================= */

.bg {
    position: fixed;
    inset: 0;
    overflow: hidden;
    z-index: -1;
    background: #66edff;
}

.bg-layer {
    position: absolute;

    left: -410px;
    top: -408px;

    width: calc(100% + 820px);
    height: calc(100% + 816px);

    background-image: url("/assets/410408.jpg");
    background-repeat: repeat;
    background-size: 410px 408px;

    will-change: transform;
    transform: translate3d(0,0,0);

    animation: diagonal-scroll 47s linear infinite;
}

@keyframes diagonal-scroll {
    from {
        transform: translate3d(0,0,0);
    }

    to {
        transform: translate3d(-410px,-408px,0);
    }
}


/* =========================================================
   BASICS
   ========================================================= */

body {
    margin: 0;
    padding: 10px;

    display: flex;
    justify-content: center;
    align-items: flex-start;

    min-height: 100vh;

    font-family: 'lato', calibri, sans-serif;
    color: #666;
    font-size: 9px;
    letter-spacing: 1px;
    text-shadow: 0 0 1px #bbb;
}


/* Links */

a:link,
a:visited,
a:active {
    color: #222;
    text-decoration: none;
}

a:hover {
    color: #888;
}


/* =========================================================
   SCROLLBAR
   ========================================================= */

::-webkit-scrollbar-thumb {
    background-color: #fff;
    border: 1px solid #888;
    border-radius: 3px;
}

::-webkit-scrollbar {
    width: 5px;
    height: 0;
    background: transparent;
}


/* =========================================================
   PAGE
   ========================================================= */

/*
   Sidebar = 220px
   Gap     =   5px
   Main    = 730px
   ----------------
   Total   = 955px
*/

.page {
    width: 955px;
    margin-top: 75px;
}


/* =========================================================
   HEADER / MAIN CONTAINER
   ========================================================= */

.container {
    display: flex;
    flex-direction: column;

    width: 955px;
    box-sizing: border-box;

    background: #e6e6e6;

    border-radius: 5px 5px 0 0;

    box-shadow:
        0 12px 24px rgba(0,0,0,0.2),
        inset 0 -4px 10px rgba(255,255,255,0.5);

    overflow: hidden;

    border: 1px solid #888;
}


/* =========================================================
   SITE NAME
   ========================================================= */

.sitename {
    width: 100%;
    box-sizing: border-box;

    text-align: left;

    font-family: 'doto', sans-serif;
    font-size: 20px;
    line-height: 30px;

    letter-spacing: 5px;

    color: #333;

    padding: 8px 15px;

    border-bottom: 2px solid #ccc;

    text-shadow: 5px 5px 5px #fff;

    background: linear-gradient(145deg, #dcdcdc, #fff);
}


/* =========================================================
   NAVIGATION
   ========================================================= */

.navigation {
    display: flex;
    justify-content: center;
    gap: 5px;

    padding: 5px 0;

    background: linear-gradient(145deg, #dcdcdc, #dedede);

    border-bottom: 2px solid #ccc;

    box-shadow:
        inset 0 2px 5px rgba(255,255,255,0.4);
}

.navigation a {
    display: inline-block;

    padding: 2px 20px;

    letter-spacing: 1px;

    font: 8px 'silkscreen';

    color: #444;

    border-radius: 5px;
    border: 1px solid #ccc;

    background: linear-gradient(145deg, #ffffff, #dcdcdc);

    box-shadow:
        0 2px 4px rgba(0,0,0,0.1),
        inset 0 -2px 4px rgba(255,255,255,0.5);

    cursor: pointer;

    transition: all 0.3s ease;
}

.navigation a:hover {
    box-shadow:
        0 4px 6px rgba(0,0,0,0.12),
        inset 0 -2px 4px rgba(255,255,255,0.6);
}


/* =========================================================
   CONTENT ROW
   ========================================================= */

/*
   This begins AFTER the header/navigation.

   This is the crucial difference.

   Sidebar and main content start at exactly
   the same vertical position.
*/

.content-row {
    display: flex;
    align-items: stretch;

    gap: 10px;

    width: 955px;

    margin-top: 10px;
}


/* =========================================================
   SIDEBAR
   ========================================================= */

.sidebar {
    flex: 0 0 220px;

    width: 220px;
    box-sizing: border-box;

    display: flex;
    flex-direction: column;

    background: linear-gradient(145deg, #f7f7f7, #e0e0e0);

    border-radius: 5px;

    border: 1px solid #ccc;

    padding: 5px;

    box-shadow:
        inset 0 -2px 4px rgba(255,255,255,0.5),
        0 2px 4px rgba(0,0,0,0.05);
}


/*
   Let the three boxes distribute themselves through
   the height of the main column.

   They will collectively reach the bottom of
   the main content rather than floating above it.
*/

.sidebar .box {
    flex: 1 1 0;
    min-height: 0;
}


/* Keep the prize GIF at the bottom */

.sidebar > a {
    flex: 0 0 auto;

    display: block;

    margin-top: 0;
}

.sidebar > a img {
    display: block;

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


/* =========================================================
   MAIN AREA
   ========================================================= */

.main-area {
    flex: 0 0 730px;

    width: 730px;
    min-width: 0;

    display: flex;
    flex-direction: column;

    gap: 5px;
}


/* =========================================================
   VIDEO
   ========================================================= */

.banner-vid {
    width: 100%;
    box-sizing: border-box;

    padding: 4px;

    background: linear-gradient(145deg,#fff,#dcdcdc);

    border: 1px solid #bbb;
    border-radius: 6px;
}

.banner-vid iframe {
    display: block;

    width: 100%;

    aspect-ratio: 16 / 9;

    border: none;

    box-shadow:
        inset 0 0 8px rgba(0,0,0,.35);
}


/* =========================================================
   MAIN CONTENT
   ========================================================= */

.main {
    width: 100%;
    box-sizing: border-box;

    background: linear-gradient(145deg, #f7f7f7, #e0e0e0);

    border-radius: 5px;

    border: 1px solid #ccc;

    padding: 5px;

    box-shadow:
        inset 0 -2px 4px rgba(255,255,255,0.5),
        0 2px 4px rgba(0,0,0,0.05);
}


/* =========================================================
   BOXES
   ========================================================= */

.box {
    background: linear-gradient(145deg, #ffffff, #eee);

    border-radius: 5px;

    padding: 5px;

    margin-bottom: 5px;

    box-sizing: border-box;

    box-shadow:
        0 2px 4px rgba(0,0,0,0.08),
        inset 0 -2px 4px rgba(255,255,255,0.6);

    transition: transform 0.3s ease;
}

.box:hover {
    transform: translateY(-2px);
}


/* =========================================================
   TITLES
   ========================================================= */

.title {
    font: 10px 'orbitron';

    text-transform: uppercase;

    letter-spacing: 4px;

    background: linear-gradient(145deg, #f5f5f5, #dcdcdc);

    padding: 1px 2px;

    border-radius: 5px;

    margin-bottom: 2px;

    box-shadow:
        inset 0 -1px 2px rgba(255,255,255,0.5),
        0 1px 2px rgba(0,0,0,0.05);
}


/* =========================================================
   MAIN BUTTONS
   ========================================================= */

.main-button a {
    display: inline-block;

    margin-top: 5px;

    padding: 2px 20px;

    font-weight: bold;

    letter-spacing: 2px;

    font: 9px ms gothic, 'silkscreen';

    color: #444;

    border-radius: 5px;

    border: 1px solid #ccc;

    background: linear-gradient(145deg, #ffffff, #dcdcdc);

    box-shadow:
        0 2px 4px rgba(0,0,0,0.1),
        inset 0 -2px 4px rgba(255,255,255,0.5);

    cursor: pointer;

    transition: all 0.3s ease;

    text-align: center;
}

.main-button a:hover {
    box-shadow:
        0 4px 6px rgba(0,0,0,0.12),
        inset 0 -2px 4px rgba(255,255,255,0.6);
}

.main-button img {
    vertical-align: middle;
    margin-right: 3px;
}


/* =========================================================
   FOOTER
   ========================================================= */

.footer {
    background: linear-gradient(145deg, #ffffff, #dcdcdc);

    text-align: center;

    font: 9px ms gothic, calibri;

    padding: 5px;

    border-top: 2px solid #ccc;

    text-shadow:
        0 1px 2px rgba(0,0,0,0.1);

    border-radius: 0 0 5px 5px;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    body {
        padding: 5px;
        display: block;
    }

   .page {
    width: 955px;
    max-width: 100%;
    margin-top: 75px;
}

    /*
       Header remains full width.
    */

    .container {
        width: 100%;
    }

    /*
       Main + sidebar become a vertical stack.

       Main first.
       Sidebar second.
    */

    .content-row {
        width: 100%;

        flex-direction: column;

        gap: 5px;
    }

    .main-area {
        width: 100%;
        flex: none;
        order: 1;
    }

    .sidebar {
        width: 100%;
        flex: none;
        order: 2;

        background: linear-gradient(145deg, #f7f7f7, #e0e0e0);

        border: 1px solid #ccc;

        padding: 5px;

        box-sizing: border-box;
    }

    /*
       Don't stretch sidebar boxes on mobile.
    */

    .sidebar .box {
        flex: none;
        min-height: auto;
    }

    .sidebar > a img {
        max-width: 220px;
    }

    /*
       Navigation wraps.
    */

    .navigation {
        flex-wrap: wrap;

        padding-left: 5px;
        padding-right: 5px;
    }

    .navigation a {
        padding-left: 12px;
        padding-right: 12px;
    }

    /*
       Main content fills the phone.
    */

    .banner-vid,
    .main {
        width: 100%;
    }

    /*
       Smaller title on phones.
    */

    .sitename {
        font-size: 16px;
        letter-spacing: 3px;

        padding-left: 10px;
        padding-right: 10px;
    }
}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media (max-width: 400px) {

    body {
        padding: 3px;
    }

    .page {
        margin-top: 10px;
    }

    .sitename {
        font-size: 14px;
        letter-spacing: 2px;
    }

    .navigation {
        gap: 3px;
    }

    .navigation a {
        padding-left: 8px;
        padding-right: 8px;
    }

    .title {
        font-size: 9px;
        letter-spacing: 3px;
    }
}