/**
 * OS Reflection Single Post Styles
 * OS 19-Jul
 * 
 * A magical reading experience with zen-like minimalism
 * Monochromatic design with focus on pure content joy
 */

/* Reset and Base */
.wtd-os-reflection {
    --text-primary: #1a1a1a;
    --text-secondary: #666;
    --text-muted: #999;
    --bg-primary: #fff;
    --bg-secondary: #f8f8f8;
    --border-light: #e5e5e5;
    --reading-width: 680px;
    --transition-smooth: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Full Viewport Hero */
.os-ref-hero {
    position: relative;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Featured Image with Monochrome Filter */
.os-ref-hero-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 120%;
    opacity: 0;
    animation: heroFadeIn 2s ease-out forwards;
}

.os-ref-hero-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(1) contrast(1.2) brightness(0.8);
    transform: scale(1.1);
    transition: transform 20s var(--transition-smooth);
}

.os-ref-hero.scrolled .os-ref-hero-image img {
    transform: scale(1);
}

/* Hero Gradient Overlay */
.os-ref-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.2) 0%,
        rgba(0, 0, 0, 0.5) 50%,
        rgba(0, 0, 0, 0.6) 100%
    );
    pointer-events: none;
}

/* Hero Content */
.os-ref-hero-content {
    position: relative;
    z-index: 1;
    width: 100%;
    text-align: center;
    padding: 2rem;
    color: #fff;
    opacity: 0;
    transform: translateY(30px);
    animation: heroContentSlide 1.5s 0.5s ease-out forwards;
}

.os-ref-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* Hero Title */
.os-ref-hero-title {
    font-size: clamp(2.5rem, 6vw, 6rem);
    font-weight: 600;
    line-height: 1.2;
    margin-bottom: 1.5rem;
    letter-spacing: -0.02em;
    opacity: 0;
    animation: fadeInUp 1s 0.8s ease-out forwards;
    font-family: 'biennale';
    text-transform: lowercase;
    letter-spacing: 2px;
}

/* Hero Tagline */
.os-ref-hero-tagline {
    font-size: 1.5rem;
    font-weight: 200;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 2.5rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    opacity: 0;
    animation: fadeInUp 1s 0.9s ease-out forwards;
    letter-spacing: 0.02em;
    font-family: 'Poppins';
}
.os-ref-date {
    letter-spacing: 2px;
    text-transform: uppercase;
    font-family: 'Poppins';
    font-weight: 100;
    color: #ffffff;
}

.os-ref-reading-time {
    text-transform: uppercase;
    font-family: Poppins;
    font-weight: 100;
    color: #ffffff;
}

/* Hero Meta */
.os-ref-hero-meta {
    display: flex;
    gap: 2rem;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.8);
    justify-content: center;
    opacity: 0;
    animation: fadeInUp 1s 1s ease-out forwards;
}

.os-ref-hero-meta span {
    position: relative;
}

.os-ref-hero-meta span:not(:last-child)::after {
    content: '·';
    position: absolute;
    right: -1rem;
    color: rgba(255, 255, 255, 0.4);
}

/* Scroll Indicator */
.os-ref-scroll-indicator {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    opacity: 0;
    animation: fadeIn 1s 2s ease-out forwards, bounce 2s 3s infinite;
}

.os-ref-scroll-indicator svg {
    width: 24px;
    height: 24px;
    fill: rgba(255, 255, 255, 0.6);
}

/* Article Container */
.os-ref-article {
    background: var(--bg-primary);
    position: relative;
    z-index: 1;
}

/* Content Wrapper */
.os-ref-content {
    max-width: 850px;
    margin: 0 auto;
    padding: 5rem 1.5rem 8rem;
}

/* Beautiful Drop Cap */
.os-ref-content > p:first-of-type:first-letter {
    float: left;
    font-size: 5.5rem;
    line-height: 0.8;
    margin: 0.1em 0.1em 0 0;
    font-weight: 100;
    color: var(--text-primary);
}

/* Typography */
.os-ref-content p {
    font-size: 1.6rem;
    line-height: 1.9;
    margin-bottom: 2rem;
    color: var(--text-primary);
    font-weight: 400;
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInContent 0.8s ease-out forwards;
    font-family: 'Cormorant';
}

.os-ref-content h1 {
    font-size: 2.4rem;
    letter-spacing: 1px;
    font-family: biennale;
    font-weight: 600;
    color: var(--text-primary);
}

.os-ref-content h2 {
    font-size: 2.5rem;
    font-weight: 200;
    margin: 4rem 0 2rem;
    color: var(--text-primary);
    letter-spacing: -0.02em;
}

.os-ref-content h3 {
    font-size: 1.75rem;
    font-weight: 300;
    margin: 3rem 0 1.5rem;
    color: var(--text-primary);
}

.os-ref-content h4 {
    font-size: 1.375rem;
    font-weight: 400;
    margin: 2.5rem 0 1.25rem;
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.os-ref-content h5 {
    font-size: 1.25rem;
    font-weight: 400;
    margin: 2rem 0 1rem;
    color: var(--text-primary);
    font-family: 'Cormorant';
    line-height: 1.7;
}

.os-ref-content h6 {
    font-size: 1.125rem;
    font-weight: 500;
    margin: 1.5rem 0 0.75rem;
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.os-ref-content a {
    color: var(--text-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: var(--border-light);
    transition: text-decoration-color 0.3s ease;
}

.os-ref-content a:hover {
    text-decoration-color: var(--text-primary);
}

/* Blockquotes */
.os-ref-content blockquote {
    position: relative;
    margin: 3rem 0;
    padding: 2rem 3rem;
    background: var(--bg-secondary);
    border: none;
    font-style: italic;
    font-size: 1.375rem;
    line-height: 1.7;
    color: var(--text-secondary);
    quotes: none;
}

.os-ref-content blockquote::before {
    content: '"';
    position: absolute;
    top: -1rem;
    left: 2rem;
    font-size: 6rem;
    font-weight: 100;
    color: var(--border-light);
    font-family: Georgia, serif;
}

/* Images */
.os-ref-content img {
    max-width: 100%;
    height: auto;
    margin: 3rem auto;
    display: block;
    filter: grayscale(0.5);
    transition: filter 0.5s ease;
}

.os-ref-content img:hover {
    filter: grayscale(0);
}

/* Lists */
.os-ref-content ul,
.os-ref-content ol {
    margin: 2rem 0;
    padding-left: 2rem;
}

.os-ref-content li {
    font-size: 1.25rem;
    line-height: 1.9;
    margin-bottom: 1rem;
    color: var(--text-primary);
    font-weight: 300;
}

/* Override global strong/b styling for reflection content - OS 24-Sep-2025 */
/* Prevents unintended bold text in dialog and quotes */
.os-ref-content strong,
.os-ref-content b {
    font-weight: 400; /* Same as normal paragraph text */
}

/* Allow intentional bold text with specific class */
.os-ref-content .intentional-bold {
    font-weight: 600;
}

/* Meta Footer */
.os-ref-meta-footer {
    max-width: var(--reading-width);
    margin: 0 auto;
    padding: 4rem 1.5rem;
    border-top: 1px solid var(--border-light);
}

/* Tags */
.os-ref-tags {
    margin-bottom: 3rem;
}

.os-ref-tag {
    display: inline-block;
    font-size: 0.875rem;
    color: var(--text-secondary);
    text-decoration: none;
    margin-right: 1.5rem;
    margin-bottom: 0.5rem;
    transition: color 0.3s ease;
    font-weight: 400;
}

.os-ref-tag::before {
    content: '#';
    color: var(--text-muted);
}

.os-ref-tag:hover {
    color: var(--text-primary);
}

/* Navigation */
.os-ref-navigation {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    margin-top: 4rem;
}

.os-ref-nav-item {
    position: relative;
    padding: 2rem;
    background: var(--bg-secondary);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.os-ref-nav-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.os-ref-nav-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    margin-bottom: 0.75rem;
    display: block;
}

.os-ref-nav-title {
    font-size: 1.125rem;
    color: var(--text-primary);
    text-decoration: none;
    font-weight: 300;
    line-height: 1.4;
    display: block;
}

/* Animations */
@keyframes heroFadeIn {
    to {
        opacity: 0.9;
    }
}

@keyframes heroContentSlide {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    to {
        opacity: 1;
    }
}

@keyframes fadeInContent {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateX(-50%) translateY(0);
    }
    40% {
        transform: translateX(-50%) translateY(-10px);
    }
    60% {
        transform: translateX(-50%) translateY(-5px);
    }
}

/* Responsive Design */
@media (max-width: 768px) {
    .os-ref-hero-title {
        font-size: 2.5rem;
    }
    
    .os-ref-content p,
    .os-ref-content li {
        font-size: 1.125rem;
    }
    
    .os-ref-content blockquote {
        padding: 1.5rem 2rem;
        font-size: 1.25rem;
    }
    
    .os-ref-navigation {
        grid-template-columns: 1fr;
    }
}

/* Dark Mode Support */
@media (prefers-color-scheme: dark) {
    .wtd-os-reflection {
        --text-primary: #e5e5e5;
        --text-secondary: #999;
        --text-muted: #666;
        --bg-primary: #1a1a1a;
        --bg-secondary: #2a2a2a;
        --border-light: #333;
    }
    
    .os-ref-hero-image img {
        filter: grayscale(1) contrast(1.1) brightness(0.6);
    }

    /*
     * Explicit dark-mode overrides for ALL content elements.
     * CSS variables handle most, but WP global-styles / inline presets
     * can inject color on headings, paragraphs, spans etc. with higher
     * specificity. These rules use the .wtd-os-reflection wrapper for weight.
     */
    .wtd-os-reflection .os-ref-content,
    .wtd-os-reflection .os-ref-content p,
    .wtd-os-reflection .os-ref-content h1,
    .wtd-os-reflection .os-ref-content h2,
    .wtd-os-reflection .os-ref-content h3,
    .wtd-os-reflection .os-ref-content h4,
    .wtd-os-reflection .os-ref-content h5,
    .wtd-os-reflection .os-ref-content h6,
    .wtd-os-reflection .os-ref-content li,
    .wtd-os-reflection .os-ref-content span,
    .wtd-os-reflection .os-ref-content strong,
    .wtd-os-reflection .os-ref-content b,
    .wtd-os-reflection .os-ref-content em,
    .wtd-os-reflection .os-ref-content i,
    .wtd-os-reflection .os-ref-content pre,
    .wtd-os-reflection .os-ref-content code,
    .wtd-os-reflection .os-ref-content figcaption,
    .wtd-os-reflection .os-ref-content dt,
    .wtd-os-reflection .os-ref-content dd,
    .wtd-os-reflection .os-ref-content td,
    .wtd-os-reflection .os-ref-content th,
    .wtd-os-reflection .os-ref-content .wp-block-heading,
    .wtd-os-reflection .os-ref-content .wp-block-verse,
    .wtd-os-reflection .os-ref-content .wp-block-preformatted,
    .wtd-os-reflection .os-ref-content .wp-block-freeform,
    .wtd-os-reflection .os-ref-content .has-text-color,
    .wtd-os-reflection .os-ref-content [class*="has-"][class*="-color"]:not([class*="background-color"]):not([class*="border-color"]),
    .wtd-os-reflection .os-ref-content [style*="color:"] {
        color: #e5e5e5 !important;
        -webkit-text-fill-color: currentColor !important;
    }

    .wtd-os-reflection .os-ref-content blockquote,
    .wtd-os-reflection .os-ref-content blockquote *,
    .wtd-os-reflection .os-ref-content .wp-block-quote,
    .wtd-os-reflection .os-ref-content .wp-block-quote *,
    .wtd-os-reflection .os-ref-content .wp-block-pullquote,
    .wtd-os-reflection .os-ref-content .wp-block-pullquote * {
        color: #d4d4d4 !important;
        -webkit-text-fill-color: currentColor !important;
    }

    .wtd-os-reflection .os-ref-content blockquote {
        background: var(--bg-secondary);
        border-left-color: #555 !important;
    }

    .wtd-os-reflection .os-ref-content blockquote::before {
        color: #555;
    }

    .wtd-os-reflection .os-ref-content blockquote cite {
        color: #a3a3a3 !important;
    }

    .wtd-os-reflection .os-ref-content a {
        color: #8ab4f8 !important;
        -webkit-text-fill-color: currentColor !important;
        text-decoration-color: #555;
    }

    .wtd-os-reflection .os-ref-content a:hover,
    .wtd-os-reflection .os-ref-content a:active {
        color: #adc6ff !important;
        -webkit-text-fill-color: currentColor !important;
        text-decoration-color: #8ab4f8;
    }

    .wtd-os-reflection .os-ref-content img,
    .wtd-os-reflection .os-ref-content svg,
    .wtd-os-reflection .os-ref-content video {
        color: unset !important;
        -webkit-text-fill-color: unset !important;
    }

    .wtd-os-reflection .os-ref-content img {
        opacity: 0.9;
    }

    .wtd-os-reflection .os-ref-content pre,
    .wtd-os-reflection .os-ref-content code {
        background-color: #2a2a2a !important;
    }

    .wtd-os-reflection .os-ref-content hr {
        border-color: #333 !important;
    }

    .wtd-os-reflection .os-ref-content > p:first-of-type:first-letter {
        color: #e5e5e5;
    }

    .wtd-os-reflection .os-ref-meta-footer {
        border-top-color: #333;
    }

    .wtd-os-reflection .os-ref-tag {
        color: #999;
    }

    .wtd-os-reflection .os-ref-tag::before {
        color: #666;
    }

    .wtd-os-reflection .os-ref-tag:hover {
        color: #e5e5e5;
    }

    .wtd-os-reflection .os-ref-nav-item {
        background: #2a2a2a;
    }

    .wtd-os-reflection .os-ref-nav-title {
        color: #e5e5e5;
    }

    .wtd-os-reflection .os-ref-nav-label {
        color: #666;
    }
} 