body {
    background-color: #0e0e0e;
    font-family: "Telegraf";
}

h1 {
    font-size: 48pt;
    margin: 0;
}


h2 {
    margin: 0;
    font-size: 24pt;
    text-transform: uppercase;
    color: white;
}

.article-section h2 {
    color: black;
}

h3 {
    margin: 0;
    font-weight: 400;
    font-size: 18pt;
    color: lightgray;
}

p {
    margin: 0;
}

.gallery-section p {
    color: white
}

a {
    color: lightgray;
    text-decoration: none;
    text-transform: uppercase;
}

a:hover {
    text-decoration: underline;
}

li {
    margin-left: 2em;
    font-size: 14pt;
}

.article-section p {
    color: #3d3d3d;
    font-size: 16pt;
    text-align: left;
    text-indent: 2em;
}

@font-face {
    font-family: "Telegraf";
    font-weight:300;
    src: url(PPTelegraf-UltraLight.woff2);
}

@font-face {
    font-family: "Telegraf";
    font-weight:400;
    src: url(PPTelegraf-Regular.woff2);
}

@font-face {
    font-family: "Telegraf";
    font-weight:700;
    src: url(PPTelegraf-Bold.woff2);
}

@font-face {
    font-family: "Telegraf";
    font-weight:900;
    src: url(PPTelegraf-Black.woff2);
}

#header-wrapper {
    max-width: 90vw;
    margin: auto;
    display: flex;
    justify-content: space-between;
}

#nyt-logo {
    height: 35px;
    filter: invert();
}

#login {
    color: lightgray;
    text-decoration: none;
    text-transform: uppercase;
}

#login:hover {
    text-decoration: underline;
}

.hero-section {
    padding: 2vw 0 2vw 0;
    text-align: center;
    background-color: #0e0e0e;
    color: white;
}

#hero-wrapper {
    height: 80vh;
    max-width: 80vw;
    margin: auto;
    text-align: left;
    

    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 30px;
}

#title-wrapper {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

#article-title {
    text-transform: uppercase;
    max-width: 75%;
}

#article-subtitle {
    max-width: 50%;
}

.header-info {
    display: flex;
    align-items: center;
    gap: 20px;
}

.author {
    display: flex;
    align-items: center;
    gap: 10px;
}

.author-pic {
    height: 50px;
}

.author-text {
    margin: 0;
}

.published-date {
    color: lightgray;
}

.hero-img {
    width: 90vw;
    border-radius: 25px;
}

#cast-wrapper {
    height: 40vh;
    width: 80vw;
    margin: auto;
    text-align: left;

    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 30px;
}

.cast-row {
    max-width: 80vw;
    display: flex;
    justify-content: space-between;
}

.actor-wrapper {
    height: 50px;
    width: 200px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: left;
}

.actor-name {
    font-size: 18pt;
}

.actor-role {
    color: lightgray;
}

.article-section {
    background-color: #efefef;
    padding:10vw 10vw 10vw 10vw;
    margin: auto;

    display: flex;
    flex-direction: column;
    gap: 20px;

    border-radius: 25px;

}

#article-header {
    text-align: center;
}

#article-wrapper {
    padding: 0 15vw 0 15vw;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.callout {
    border: solid black 1px;
    border-radius: 25px;
    padding: 2vw 0 2vw 0;
}

.recommendation-section {
    padding:5vw 10vw 5vw 10vw;
    margin: auto;

    display: flex;
    flex-direction: column;
    gap: 20px;
}

.recommendation-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1em;
    margin: auto;
}

.recommendation-element {
    display: flex;
    flex-direction: column;

    border: solid white 1px;
    border-radius: 10px;

    padding: 2vw;

    text-decoration: none;
    text-transform: none;

    transition:cubic-bezier(0.75, 0, 0.25, 1) 0.25s;
}

.recommendation-element:hover {
    text-decoration: none;
    background-color: rgba(255, 255, 255, 0.05);
    color: white;
}

.review-source {
    color: lightgray;
}

.review-title {
    font-size: 18pt;    
    font-weight: 700;
    margin: 10px 0 10px 0;
}

.review-preview {

}

.gallery-section {
    padding:0vw 10vw 5vw 10vw;
    margin: auto;

    display: flex;
    flex-direction: column;
    gap: 20px;
}

.gallery-wrapper {
    white-space: nowrap;
    overflow-x: auto;
}

.gallery-img {
    height: 500px;
    border-radius: 25px;
}

.footer {
    padding: 1vw;
    text-align: center;
}