/*
   Fixed-size web application
   Uses rem units for proportional scaling during development
   Layout is intentionally non-responsive
*/

/* ********** SETUP OF DOCUMENT ********** */

html {
    font-size: 11px;
    /* font-size: 8px; */
}

body {
    font-family: Oswald, sans-serif;
    background-image: url(../images/background-dc.jpg);
    background-size: cover;

    display: flex;
    justify-content: center;   /* horizontal */
    align-items: center;       /* vertical */
    min-height: 100vh;         /* full viewport height */

    margin: 0;                 /* IMPORTANT: removes default spacing */
    pointer-events: none;
}

/* ********** MAIN ELEMENTS ********** */

main {
    width: 120rem;
    height: 67.5rem;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 42rem 78rem;
    grid-template-rows: 62.5rem 5rem;
}

/* ********** CONTAINERS ********** */

.left-side {
    grid-template-rows: 12.5rem 12.5rem 37.5rem;
}

.right-side {
    background-color: #AAA;
    display: grid;
    grid-template-rows: 43.875rem 18.625rem;
}

.bottom {
    grid-column: 1 / -1;
    background-color: #138261;
    display: flex;
    align-items: center;
}

/* ********** CONTENT ********** */

.left-side-top {
    height: 12rem;
}

.left-side-middle {
    height: 12.5rem;
    background-color: #721b43;
    border-bottom: 0.636rem solid white;
}

.left-side-bottom {
    height: 37.5rem;
    background-color: #bdbdbd;
}

.right-side-top {
    height: 43.875rem;
    background-color: #ABABAB;
}

.right-side-bottom {
    height: 18.625rem;
    background-color: #fff;
    overflow: hidden;
}

/* LOGO */

#dc-logo {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    background-color: white;
    padding: 1rem 2rem;
    height: 7.6rem;
}

#dc-logo img {
    height: 100%;
    width: auto;
    display: block;
}

.vertical {
    border-left: 0.273rem solid #3E2B2F;
    height: 100%;
}

/* TIME */

#time-tape {
    background-color: white;
    position: relative;
    width: 100%;
    height: auto;
}

#time-line1 {
    position: absolute;
    top: 7.5%;
    left: 6%;
    font-size: 2.75rem;
    color: white;
    font-weight: 700;
}

#time-line2 {
    position: absolute;
    top: 7.5%;
    right: 5.455rem;
    font-size: 2.75rem;
    color: #3E2B2F;
    font-weight: 400;
}

#time-tape img {
    width: 100%;
    height: auto;
}

sup {
    font-size: 0.6em;
    vertical-align: super;
}

/* MOTION */

#gsap-iframe {
    width: 100%;
    height: 100%;
}

/* ************** NEWS ************** */

.news-slider {
    display: flex;
    align-items: center;
    width: 100%;
}

#news-logo {
    position: relative;
    height: 13.636rem;
    top: 0.909rem;
    margin-left: 1.818rem;
}

.news-text h2 {
    font-size: 3rem;
    color: #138261;
    margin-bottom: 0.455rem;
}

.news-text p {
    font-size: 1.5rem;
    color: #3E2B2F;
    margin-bottom: 0.455rem;
}

.news-text {
    padding: 0 3.636rem;
}

.news-image {
    border: 0.455rem solid #138261;
    position: relative;
    width: 22.727rem;
    top: 0.909rem;
    margin-right: 3.636rem;
    object-fit: cover;
}

.slick-dots {
    position: absolute;
    bottom: -2.273rem;
}

.slick-dots li button:before {
    color: #735b60;
}

.slick-dots li.slick-active button:before {
    color: #3E2B2F;
}

/* ************* TICKER ************* */

.marquee {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    margin-left: 5rem;
    overflow: hidden;
    background-color: #92d0aa;
    font-size: 3rem;
    color: white;

    clip-path: polygon(
        0 0,
        100% 0,
        100% 100%,
        2.273rem 100%
    );
}

.meal {
    font-weight: bold;
    color: #3e2b2f;
}

.meals {
    font-weight: 200;
}

#ticker-logo {
    position: relative;
    height: 3.5rem;
    left: 2.5rem;
}

/* ************* WEATHER ************* */

#weather-container {
    display: flex;
    justify-content: space-between;
    align-items: stretch; /* FIX */
    width: 100%;
    min-width: 0;
}

.weather-item {
    flex: 1;
    color: white;
    text-align: center;
    position: relative;
    min-width: 0;
}

.weather-item:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 0.273rem;
    background: white;
}

.weather-item > video {
    height: auto;
    width: auto;
    margin: 0 auto;
}

.weather-day {
    margin-top: 0.5rem;
    font-size: 1.5rem;
    margin-bottom: 1rem;
    font-weight: 700;
}

.weather-name {
    margin-top: 0.5rem;
    font-size: 1.5rem;
    font-weight: 50;
}

.weather-temp {
    margin-top: 0.5rem;
    font-size: 1.5rem;
    font-weight: 700;
}

.weather-icon {
    width: 4rem;
    height: 4rem;
    object-fit: contain;
}
/* ************* YOUTUBE ************* */

#youtube-iframe {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.right-side-top {
    position: relative;
    background-color: black;
    overflow: hidden;
}

/* ************* TV FRAME ************* */

body {
    background-image: url(../images/background-dc.jpg);
    background-size: cover;
    pointer-events: none;
}

main {
    background-color: white;
}

#tv-wrapper {
    margin: auto;
    width: calc(120rem + 4rem);
    height: calc(67.5rem + 4rem);
    display: flex;
    justify-content: center;
    align-items: center;

    border: 2rem solid #222;
    border-radius: 1rem;
    box-shadow:
        0 0 3rem rgba(0, 0, 0, 0.7),
        inset 0 0 2rem rgba(255, 255, 255, 0.05);

    background: linear-gradient(
        to top left,
        rgba(255, 255, 255, 0.05),
        rgba(255, 255, 255, 0)
    );
}

/* ************* SCALING ************* */

@media screen and (max-width: 1919px) {
    html {
        font-size: calc(round(nearest, 0.7vw, 1px));
    }
}