@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@400;700&display=swap'); *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } body { display: grid; align-content: center; gap: 2rem; padding: 2rem; color: rgba(30, 30, 30); background-image: radial-gradient(#181818 2px, transparent 2px), radial-gradient(#181818 2px, transparent 2px); background-size: 32px 32px; background-position: 0 0, 16px 16px; background-color: #121212; position: relative; --accent-color: #a256ff; font-family: 'Josefin Sans', sans-serif; } header { width: min(60rem, 100%); margin-inline: auto; display: flex; row-gap: 2rem; flex-wrap: nowrap; justify-content: left; } nav { width: min(60rem, 100%); margin-inline: auto; display: flex; row-gap: 2rem; height: 2rem; flex-wrap: wrap; justify-content: left; font-size: 1.2rem; color: white; background-color: var(--accent-color); z-index: 1; /* Make sure nav content is above pseudo-elements */ } nav::before, nav::after { content: ''; position: absolute; height: 2rem; width: calc(50vw - 30rem); /* Adjust width to ensure it extends to the edges */ background-color: var(--accent-color); /* Same background color */ z-index: -1; /* Place behind the nav */ } nav::before { left: 0; /* Extend to the left */ } nav::after { right: 0; /* Extend to the right */ } article.article-box { width: min(60rem, 90%); margin-inline: auto; display: flex; row-gap: 2rem; flex-wrap: wrap; justify-content: center; box-shadow: 5px 5px 20px white; } article.article-box article.article-content { background: rgba(224, 224, 224, 1.0); --overlap-size: 1.5rem; width: min(60rem, 100%); padding-block-start: 0.5rem; padding-block-end: 2rem; display: grid; grid-template-rows: max-content max-content 1fr max-content; gap: 0.5rem; box-shadow: 0.25rem 0.25rem 0.5rem rgba(0, 0, 0, 0.5); } article.article-box article.article-content .article { padding: 0 1rem 0 1rem ; } article.article-box article.article-content .article-meta { font-size: 1.2rem; color: var(--accent-color); text-align: left; padding-left: 0.75rem; } article.article-box article.article-content .article-title { justify-self: start; margin-left: calc(var(--overlap-size) * -1); padding-block: 0.5rem; padding-inline: 2.5rem; border: none; font-family: inherit; color: white; font-size: 1.1rem; background-color: var(--accent-color); position: relative; } article.article-box article.article-content .article-title::after { content: ""; position: absolute; height: var(--overlap-size); width: var(--overlap-size); left: 0; bottom: 100%; background-color: inherit; background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)); clip-path: polygon(100% 0, 100% 100%, 0 100%); } article.article-box article.article-content .article-end-ribbon { justify-self: end; margin-right: calc(var(--overlap-size) * -1); padding-block: 0.25rem; padding-inline: 2.5rem; background-color: var(--accent-color); color: white; font-size: 1.1rem; background-image: linear-gradient(transparent 50%, rgba(0, 0, 0, 0.25) 0); background-size: 100% 200%; transition: background-position 100ms ease; cursor: pointer; position: relative; } article.article-box article.article-content .article-end-ribbon:focus-visible { outline-offset: 5px; outline: 2px solid var(--accent-color); background-position: 0 100%; } article.article-box article.article-content .article-end-ribbon:hover { background-position: 0 100%; } article.article-box article.article-content .article-end-ribbon::after { content: ""; position: absolute; height: var(--overlap-size); width: var(--overlap-size); right: 0; top: 100%; background-color: inherit; background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)); clip-path: polygon(0 0, 100% 0, 0 100%); } footer { position: fixed; left: 0; right: 0; bottom: 0; width: 100%; max-width: none; margin: 0; display: flex; height: 3rem; padding-inline: min(2rem, 4vw); background-color: var(--accent-color); z-index: 1; } footer .container { width: min(60rem, 100%); margin-inline: auto; display: flex; align-items: center; height: 100%; padding-inline: 1rem; /* optional inner padding */ gap: 1rem; font-size: 1.2rem; color: white; } /* Ensure the background strips (pseudo-elements) still span outwards */ footer::before, footer::after { content: ''; position: absolute; height: 3rem; width: 50vw; background-color: var(--accent-color); z-index: -1; } footer::before { left: 0; } footer::after { right: 0; }