/* ===========================================================
 * Infobd 3D Theme — Extended 3D Effects & Animations
 * =========================================================== */

/* Tilt-on-hover cards */
.tilt-card {
    transition: transform .15s ease-out;
    transform-style: preserve-3d;
    will-change: transform;
}

/* Shine sweep across hero cards */
.hero-main::after,
.post-card::after {
    content: '';
    position: absolute;
    top: 0; left: -120%;
    width: 60%;
    height: 100%;
    background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.12) 50%, transparent 100%);
    transform: skewX(-20deg);
    transition: left .8s ease;
    pointer-events: none;
    z-index: 2;
}
.hero-main:hover::after,
.post-card:hover::after { left: 130%; }

/* Float animation for category cards */
@keyframes floatY {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-6px); }
}
.cat-card { animation: floatY 4s ease-in-out infinite; }
.cat-card:nth-child(2n) { animation-delay: -1s; }
.cat-card:nth-child(3n) { animation-delay: -2s; }
.cat-card:nth-child(4n) { animation-delay: -3s; }
.cat-card:hover { animation-play-state: paused; }

/* Glow text effect for titles */
.glow-text {
    text-shadow:
        0 0 10px rgba(255,45,85,0.5),
        0 0 20px rgba(255,45,85,0.3),
        0 0 30px rgba(255,45,85,0.2);
}

/* Neon border on interactive elements */
.neon-border {
    box-shadow:
        0 0 5px var(--primary),
        0 0 10px var(--primary),
        inset 0 0 5px rgba(255,45,85,0.3);
}

/* Cube hover button */
.cube-btn {
    position: relative;
    display: inline-block;
    padding: 12px 28px;
    transform-style: preserve-3d;
    transition: transform .4s;
}
.cube-btn::before, .cube-btn::after {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--gradient-1);
    border-radius: inherit;
}
.cube-btn::after {
    transform: translateZ(-10px);
    filter: blur(15px);
    opacity: 0.7;
}

/* Reveal-on-scroll */
.reveal {
    opacity: 0;
    transform: translateY(40px) rotateX(-15deg);
    transition: opacity .8s ease, transform .8s cubic-bezier(.2,.9,.3,1.4);
}
.reveal.in-view {
    opacity: 1;
    transform: translateY(0) rotateX(0);
}

/* 3D flip card */
.flip-card {
    perspective: 1000px;
    height: 280px;
}
.flip-card-inner {
    position: relative;
    width: 100%; height: 100%;
    transform-style: preserve-3d;
    transition: transform .8s;
}
.flip-card:hover .flip-card-inner { transform: rotateY(180deg); }
.flip-card-front, .flip-card-back {
    position: absolute;
    inset: 0;
    backface-visibility: hidden;
    border-radius: var(--radius);
    overflow: hidden;
}
.flip-card-back {
    transform: rotateY(180deg);
    background: var(--gradient-1);
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

/* Parallax hero layer */
.parallax-layer {
    will-change: transform;
    transition: transform .1s linear;
}

/* Glitch effect on hover */
.glitch {
    position: relative;
}
.glitch:hover::before, .glitch:hover::after {
    content: attr(data-text);
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    pointer-events: none;
}
.glitch:hover::before {
    color: var(--secondary);
    transform: translate(2px, 0);
    clip-path: inset(0 0 50% 0);
}
.glitch:hover::after {
    color: var(--primary);
    transform: translate(-2px, 0);
    clip-path: inset(50% 0 0 0);
}

/* Gradient animated border */
@keyframes borderRotate {
    0% { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
}
.gradient-border {
    position: relative;
    background: var(--bg-card);
    border-radius: var(--radius);
}
.gradient-border::before {
    content: '';
    position: absolute;
    inset: -2px;
    background: linear-gradient(90deg, var(--primary), var(--secondary), var(--accent), var(--primary));
    background-size: 200% 100%;
    border-radius: inherit;
    z-index: -1;
    animation: borderRotate 4s linear infinite;
}

/* Particles background helper layer (optional) */
.particles-bg {
    position: relative;
    overflow: hidden;
}
.particles-bg::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(2px 2px at 10% 10%, rgba(255,45,85,0.6), transparent),
        radial-gradient(2px 2px at 80% 30%, rgba(0,212,255,0.6), transparent),
        radial-gradient(1px 1px at 50% 70%, rgba(255,214,10,0.6), transparent),
        radial-gradient(2px 2px at 25% 80%, rgba(116,0,184,0.6), transparent),
        radial-gradient(1px 1px at 90% 90%, rgba(255,45,85,0.5), transparent);
    animation: particleDrift 30s linear infinite;
    pointer-events: none;
}
@keyframes particleDrift {
    from { transform: translate(0, 0); }
    to { transform: translate(-50px, -50px); }
}

/* Highlighted dates */
.date-highlight {
    display: inline-block;
    padding: 4px 12px;
    background: var(--gradient-3);
    color: #000;
    border-radius: 16px;
    font-weight: 800;
    font-size: 12px;
    box-shadow: 0 4px 12px rgba(255,214,10,0.4);
    transform: translateZ(10px);
}

/* Custom scrollbar */
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--bg-dark); }
::-webkit-scrollbar-thumb {
    background: var(--gradient-1);
    border-radius: 6px;
    border: 2px solid var(--bg-dark);
}
::-webkit-scrollbar-thumb:hover { background: var(--gradient-2); }

/* Selection */
::selection { background: var(--primary); color: #fff; }
::-moz-selection { background: var(--primary); color: #fff; }

/* Highlight last published post */
.post-card.is-new::before {
    content: 'NEW';
    position: absolute;
    top: 12px; right: 12px;
    background: var(--gradient-3);
    color: #000;
    padding: 4px 10px;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 1px;
    z-index: 3;
    box-shadow: 0 4px 12px rgba(255,214,10,0.5);
    animation: pulseGlow 2s infinite;
}

/* Loader spinner alt */
.spinner-3d {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: conic-gradient(var(--primary), var(--secondary), var(--accent), var(--primary));
    animation: spin 1s linear infinite;
    mask: radial-gradient(circle, transparent 50%, #000 51%);
    -webkit-mask: radial-gradient(circle, transparent 50%, #000 51%);
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Anti-image-drag */
img { -webkit-user-drag: none; user-drag: none; }

/* Print */
@media print {
    .site-header, .site-footer, .site-sidebar, .breaking-news, .top-bar, .share-buttons, .back-to-top { display: none !important; }
    body { background: #fff !important; color: #000 !important; }
    .single-post-content { box-shadow: none !important; border: none !important; padding: 0 !important; background: #fff !important; color: #000 !important; }
}
