:root {
    --black: #000000;
    /* Primary darkest background color */
    --black: #000000;
    /* Secondary darker background color */
    --white: #ffffff;
    /* Secondary color for text and elements */
    --primary--darkest: var(--black);
    /* Main dark color */
    --primary--darker: var(--black);
    /* Slightly lighter dark color */
    --secondary: var(--white);
    /* Secondary color */

    --mono: "Georgia", Georgia;
    --sans: "Times New Roman", Times New Roman;

    --container--block-padding: 64px;
    --container--inline-padding: min(360px, 4dvw);

    --grid-column-count: 4;
    --grid-gap: 12px;
    --grid-gap-count: calc(var(--grid-column-count) - 1);
    --total-gap-width: calc(var(--grid-gap-count) * var(--grid-gap));

    --grid-item--min-width--constraint: 300px;
    --grid-item--max-width--constraint: 480px;
    --grid-item--min-width: min(100%, var(--grid-item--min-width--constraint));
    --grid-item--max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));

    --grid-item--bg: var(--primary--darker);
    --grid-item--color: var(--secondary);
}

*,
*:before,
*:after {
    box-sizing: border-box;
    line-height: 1.2;
}

html {
    background: var(--primary--darkest);
    color: var(--secondary);
    /* Text color for the entire document */
    font-family: var(--sans);
    padding: var(--container--block-padding) var(--container--inline-padding);
}

a:any-link {
    color: inherit;
}

a.button,
a.tag {
    text-decoration: none;
    transition-property: background, color;
}

.tags--overflow-container {
    padding-inline: calc(var(--content-padding) + 4px);
    position: relative;
}

.tags--overflow-container::after {
    background: linear-gradient(90deg,
            var(--grid-item--bg) var (--content-padding),
            transparent calc(var(--content-padding) + 10px),
            transparent calc(100% - calc(var(--content-padding) + 10px)),
            var(--grid-item--bg) calc(100% - var(--content-padding)));
    pointer-events: none;
    content: "";
    inset: 0;
    position: absolute;
    z-index: 6;
}

.tags--container {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
    transform: translateX(0);

    
}

a.tag,
.tag {
    border: 0.05rem solid color-mix(in oklab, currentColor, transparent 80%);
    border-radius: 100px;
    display: flex;
    align-items: center;
    font-size: 13px;
    font-weight: 500;
    user-select: none;
    padding-inline: 14px;
    padding-bottom: 1px;
    transition-property: background, border, transform;
    transition-duration: 0.15s, 0.15s, 6s;
    height: 32px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

a.tag:hover,
.tag:hover {
    border-color: transparent;
    background: color-mix(in oklab, currentColor, transparent 80%);
}

.grid--container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item--min-width), var(--grid-item--max-width)), 1fr));
    grid-auto-rows: minmax(420px, auto);
    grid-auto-flow: dense;
    gap: var(--grid-gap);
    margin: 0 auto;
    max-width: 1920px;
}

.grid--cell {
    position: relative;
}

.grid--item {
    --preview--h: 325px;
    --content-gap: 14px;
    --content-padding: 12px;
    --options--h: 42px;
    --hover--h: calc(var(--content-gap) + var(--options--h));
    --hover-offset: calc((var(--hover--h) / 2) * -1);
    --shadow-blur: 36px;
    --shadow-transparency: 60%;
    border-radius: 18px;
    color: var(--grid-item--color);
    display: grid;
    grid-template-rows: var(--preview--h) 1fr;
    align-content: start;
    filter: drop-shadow(0 0 var(--shadow-blur) color-mix(in oklab, var(--primary--darkest), transparent var(--shadow-transparency)));
    position: relative;
    transition-property: transform, filter;
    transition-duration: 0.3s;

    height: 100%;
    width: 100%;
}

.grid--item::before {
    background: var(--grid-item--bg);
    clip-path: inset(0% 0% round 18px);

    content: "";
    inset: 0;
    position: absolute;
    z-index: -1;
}

.preview-image--container,
.preview-image {
    height: 100%;
    width: 100%;
}

.preview--container {
    background: var(--secondary);
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    position: relative;
    height: var(--preview--h);
    width: 100%;
}

.preview-image {
    --bg-scale: 1.15, 1.15;
    --bg-position: 50% 50%;
    background-size: cover;
    transform: scale(var(--bg-scale)) translateZ(1px);
    background-position: var(--bg-position);
    background-repeat: no-repeat;
    filter: grayscale(100%);
    mix-blend-mode: multiply;
    opacity: 0.75;

    transition-property: background, filter, mix-blend-mode, opacity, transform;
    transition-duration: 4.5s, 0.15s, 0.15s, 0.3s, 3s;
}

.meta--container {
    display: flex;
    flex-wrap: wrap;
    font-family: var(--mono);
    font-size: 11px;
    font-weight: 500;
    height: 30px;
    position: absolute;
    z-index: 6;
}

.issue,
.page {
    align-items: center;
    display: flex;
    height: 100%;
    padding-inline: 12px;
    text-decoration: none;
    color: var(--text-color);
    /* Default text color */
    background: var(--primary--darkest);
    border-radius: 4px 0 0 0;
}

.issue {
    border-radius: 4px 0 0 0;
}

.page {
    background: var(--grid-item--bg);
}

.content--container {
    clip-path: inset(0% 0% round 0 0 18px 18px);
    display: grid;
    align-self: stretch;
    gap: var(--content-gap);
    padding-block: var(--content-padding) calc(var(--content-padding) + 2px);
    height: 100%;
}

.title--container,
.tags--container,
.hover--options {
    width: 100%;
}

.title--container {
    align-self: stretch;
    height: auto;
    padding-inline: calc(var(--content-padding) + 8px);
}

a.title--text {
    font-size: 22px;
    font-weight: 500;
    line-height: 1.2;
    margin: 0;
    padding-bottom: 1px;
    text-decoration-color: color-mix(in oklab, currentColor, transparent 86%);
    text-decoration-skip-ink: none;
    text-decoration-thickness: 3px;
    overflow: hidden;
    white-space: normal;
}

a.title--text:hover {
    text-decoration-color: color-mix(in oklab, currentColor, transparent 72%);
}

@media screen and (min-width: 320px) {
    .title--container {
        min-height: 2.4rlh;
    }

    /* a.title--text {
        -webkit-line-clamp: 2;
    } */
}

@media screen and (min-width: 600px) {
    .title--container {
        min-height: unset;
    }

    /* a.title--text {
        -webkit-line-clamp: 1;
    } */
}

.tags--overflow-container {
    display: flex;
    align-items: flex-end;
}

.hover--options {
    display: none;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: -4px;
    padding-inline: calc(var(--content-padding) + 4px);
}

.button {
    border-radius: 100px;
    display: flex;
    height: var(--options--h);
    align-items: center;
    font-weight: 500;
    /* Match the font-weight of tags */
    font-size: 13px;
    /* Match the font-size of tags */
    transition-duration: 0.15s;
    padding: 0 12px;
    /* Adjust padding for better fit */
}


.grid--item:not(.featured) .preview--container {
    clip-path: inset(0% 0% round 18px 18px 0 0);
}

.grid--item.featured .post-type {
    left: -12px;
    top: 12px;
    position: absolute;
}

.grid--item.featured .preview--container {
    clip-path: inset(0% 0% round 18px 18px 0 0);
    justify-content: unset;
}

.grid--item.featured .tags--container {
    margin-bottom: 12px;
    position: absolute;
    z-index: 6;
}

.grid--item.featured .content--container {
    padding-bottom: calc(var(--content-padding) + 4px);
}

.grid--item.featured .intro--container,
.grid--item.featured .description--container {
    line-height: 2.2ex;
    margin: 0;
    padding-inline: calc(var(--content-padding) + 8px);
}

@media screen and (min-width: 652px) {
    .grid--item.featured {
        grid-template-columns: 1fr 1fr;
    }

    .grid--item.featured .preview--container {
        clip-path: inset(0% 0% round 0 18px 18px 0);
        height: 100%;
        order: 2;
    }
}

.grid--item:hover,
.grid--item:focus {
    --grid-item--bg: var(--secondary);
    --grid-item--color: var(--primary--darker);
    height: auto;
    transform: translateY(var(--hover-offset));
    position: absolute;
    z-index: 5;
}

.grid--item:hover::before {
    --shadow-blur: 90px;
    --shadow-transparency: 0%;
}

.grid--item:hover .hover--options {
    display: flex;
}

.grid--item:hover .preview--container {
    background: var(--primary--darkest);
}

.grid--item:hover .preview-image {
    --bg-scale: 1, 1;
    --bg-position: 50% 100%;
    filter: revert;
    mix-blend-mode: revert;
    opacity: revert;
}

.grid--item:hover .issue {
    color: var(--secondary);
    /* White color */
}

.grid--item:hover .page {
    color: var(--black);
    /* Black color */
}

.grid--item:hover .title--text {
    color: var(--primary--darker);
    /* Change to white on hover of the whole grid item */
}

/* @media screen and (min-width: 600px) {
    .grid--item:hover .tags--container {
        animation: marquee 10s linear alternate infinite;
        animation-delay: 0.6s;
        animation-timing-function: ease-out;
    }

    .grid--item:hover .tags--container:hover {
        animation-play-state: paused;
    }
} */

@keyframes marquee {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-48%);
    }
}

.image-container a {
    text-decoration: none;
    color: inherit;
    display: inline-block;
    /* Ensures the link only covers the image */
}

.image-container a img {
    display: block;
    width: 100%;
    height: auto;
    border: none;
    /* Remove any border applied by default */
}

.content-wrapper h2,
.content-wrapper p,
.content-wrapper .tags {
    margin: 0;
    padding: 0;
}

.content-wrapper .tags {
    display: flex;
    gap: 4px;
}

.content-wrapper .tag {
    border: 0.05rem solid color-mix(in oklab, currentColor, transparent 80%);
    border-radius: 100px;
    display: flex;
    align-items: center;
    font-size: 13px;
    font-weight: 500;
    user-select: none;
    padding-inline: 14px;
    padding-bottom: 1px;
    transition: background-color 0.3s ease, border 0.3s ease;
    height: 32px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    cursor: pointer;
    /* Makes the tag appear clickable */
}

.content-wrapper .tag:hover {
    background-color: grey;
    /* Change background color to grey on hover */
    border-color: transparent;
}
/* about me page setting */

/* About Me Link Styling */
.about-me-link {
    text-decoration: none;
    font-family: Georgia, 'Times New Roman', Times, serif;
    font-size: 1.5rem;
    margin-left: 90%;
    color: #ffffff;
    /* Link color matching the theme */
    font-weight: 500;
    padding: 10px 20px;
    transition: color 0.3s ease, background-color 0.3s ease;
}

/* Hover effect for the link */
.about-me-link:hover {
    color: #00ffdd;
    /* Changes text color on hover */
    background-color: #000000;
    /* Adds a background color on hover */
}

/* Optimized previews: retain the card appearance with inexpensive hover motion. */
.preview-image { display: block; object-fit: cover; object-position: 50% 50%; transition: transform .25s ease, opacity .2s ease; }
.grid--item { filter: none; transition: transform .2s ease; }
.grid--item:hover, .grid--item:focus { position: relative; height: 100%; }
@media (prefers-reduced-motion: reduce) { .grid--item, .preview-image { transition: none; transform: none; } }


/* Portfolio dark hover consistency — 2026 */
.grid--item:hover,
.grid--item:focus-within {
    --grid-item--bg: #080809;
    --grid-item--color: #f2f2f2;
    color: #f2f2f2;
}

.grid--item:hover::before,
.grid--item:focus-within::before,
.grid--item:hover .content--container,
.grid--item:focus-within .content--container {
    background: #080809;
}

.grid--item:hover .title--text,
.grid--item:focus-within .title--text,
.grid--item:hover .tag,
.grid--item:focus-within .tag {
    color: #f2f2f2;
}

.grid--item:hover .page,
.grid--item:focus-within .page {
    background: #080809;
    color: #f2f2f2;
}
