@import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;700&display=swap');

body {
    font-family: 'Roboto Mono', monospace;
    background-color: #1a1a1a;
    color: #e0e0e0;
}

.text-brand-orange {
    color: #ff8c00; /* A vibrant orange for highlights */
}

.bg-brand-orange {
    background-color: #ff8c00;
}

.hero-background {
    background-color: #222222; /* A slightly lighter dark shade */
    background-image: 
        linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%),
        linear-gradient(-45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.1) 75%),
        linear-gradient(-45deg, transparent 75%, rgba(0, 0, 0, 0.1) 75%);
    background-size: 20px 20px;
}

.card-image-wrapper {
    position: relative;
    padding-top: 66.66%; /* 3:2 aspect ratio */
    overflow: hidden;
    border-radius: 0.5rem;
}

.card-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.card-overlay-tag {
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    background-color: rgba(0, 0, 0, 0.7);
    color: #ff8c00;
    padding: 0.25rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.article-content {
    font-family: 'Ubuntu', sans-serif;
    line-height: 1.6;
}

.article-content p {
    margin-bottom: 1em;
    text-align: justify;
}

.article-content ul,
.article-content ol {
    margin-left: 1.5em;
    margin-bottom: 1em;
}

.article-content ul {
    list-style-type: disc;
}

.article-content ol {
    list-style-type: decimal;
}

.article-content li {
    margin-bottom: 0.5em;
}

.article-content h3 {
    font-size: 1.75rem; /* Approx 28px */
    font-weight: bold;
    margin-top: 1.5em;
    margin-bottom: 0.75em;
    color: #f0f0f0; /* Slightly brighter for headings */
}

.article-content h4 {
    font-size: 1.5rem; /* Approx 24px */
    font-weight: bold;
    margin-top: 1.25em;
    margin-bottom: 0.6em;
    color: #f0f0f0;
}

.article-content h5 {
    font-size: 1.25rem; /* Approx 20px */
    font-weight: bold;
    margin-top: 1em;
    margin-bottom: 0.5em;
    color: #f0f0f0;
}

pre,
code {
    font-family: 'Menlo', 'Courier New', Courier, monospace;
    background-color: #1e1e1e;
    border: 1px solid #444;
    border-radius: 0.25rem;
    padding: 0.5rem;
    display: block; /* Ensures pre takes full width and border is visible */
    overflow-x: auto; /* Enables horizontal scrolling for long lines */
}

code {
    display: inline; /* For inline code snippets */
    padding: 0.2em 0.4em;
    border: 1px solid #444;
    background-color: #333;
    border-radius: 3px;
}

.article-header-background {
    background-color: #2d2d2d; /* Dark carbon steel base */
    background-image: 
        radial-gradient(ellipse at center, rgba(236, 72, 153, 0.3), transparent 70%), /* Pink radial gradient */
        linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
    background-size: 100% 100%, 25px 25px, 25px 25px;
    background-position: center, center, center;
    padding-bottom: 3rem; /* Add some padding to allow for the gradient fade */
    margin-bottom: -3rem; /* Pull the content up to overlap with the gradient */
    position: relative; /* Needed for z-index */
    z-index: 1; /* Ensure it's above the content below */
}

.article-header-background::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 3rem; /* Height of the fade effect */
    background: linear-gradient(to bottom, transparent, #1f2937); /* Fade to bg-gray-800 */
    z-index: 2; /* Ensure it's above the background but below the text */
}

/* Equal height article cards */
.grid article h3 {
    /* 
       Set a consistent height for the title area.
       text-lg in Tailwind is 1.125rem (18px).
       leading-tight is a line-height of 1.25.
       So, 1 line = 18 * 1.25 = 22.5px.
       We'll allow for 3 lines of text. 22.5px * 3 = 67.5px
    */
    min-height: 67.5px;

    /* The following properties are for multi-line text truncation */
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3; /* Limit to 3 lines */
    -webkit-box-orient: vertical;
}

/* Styles for elements that use Tailwind's bg-gray-800, text-gray-300, etc. */
.bg-gray-800 {
    background-color: #1f2937;
}

.border-gray-700 {
    border-color: #374151;
}

.bg-gray-700 {
    background-color: #374151;
}

.hover\:bg-gray-600:hover {
    background-color: #4b5563;
}

.text-gray-300 {
    color: #d1d5db;
}

.text-gray-400 {
    color: #9ca3af;
}

.text-gray-500 {
    color: #6b7280;
}

.text-gray-600 {
    color: #4b5563;
}

.text-white {
    color: #ffffff;
}

.shadow-lg {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.hover\:shadow-2xl:hover {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.article-content img {
    max-width: 100%;
    height: auto;
    border-radius: 0.5rem;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
}