/* ==========================================
   MYSTICAL & CINEMATIC EFFECTS
   Weltklasse Visual Enhancement
   ========================================== */

/* ===== PARTICLE CANVAS ===== */
.particle-canvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
    opacity: 0.6;
}

/* ===== CUSTOM CURSOR GLOW ===== */
.cursor-glow {
    position: fixed;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(212, 175, 55, 0.15), transparent 70%);
    pointer-events: none;
    transform: translate(-50%, -50%);
    z-index: 9998;
    mix-blend-mode: screen;
    transition: opacity 0.3s;
    opacity: 0;
}

body:hover .cursor-glow {
    opacity: 1;
}

/* ===== FOG LAYERS ===== */
.fog-layer {
    position: fixed;
    width: 200%;
    height: 100%;
    top: 0;
    left: -50%;
    pointer-events: none;
    z-index: 2;
    background: 
        radial-gradient(ellipse at 20% 30%, rgba(26, 20, 16, 0.4) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 70%, rgba(26, 20, 16, 0.3) 0%, transparent 50%);
}

.fog-layer.fog-1 {
    animation: fogDrift 40s infinite linear;
}

.fog-layer.fog-2 {
    animation: fogDrift 60s infinite linear reverse;
    opacity: 0.5;
}

@keyframes fogDrift {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* ===== LOADING SCREEN ===== */
.loading-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #0a0a0a 0%, #1a1410 50%, #0a0a0a 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    transition: opacity 1s, visibility 1s;
}

.loading-screen.hidden {
    opacity: 0;
    visibility: hidden;
}

.loader-content {
    text-align: center;
}

.loader-symbol {
    font-size: 5rem;
    color: var(--color-gold);
    margin-bottom: 2rem;
    animation: pulseGlow 2s infinite;
}

.loader-symbol .loader-icon {
    width: 120px;
    height: auto;
    filter: 
        brightness(0) 
        saturate(100%) 
        invert(77%) 
        sepia(48%) 
        saturate(566%) 
        hue-rotate(1deg) 
        brightness(98%) 
        contrast(87%);
    animation: rotateRune 3s infinite linear, pulseGlow 2s infinite;
    display: block;
}

.loader-symbol .rune {
    display: inline-block;
    animation: rotateRune 3s infinite linear, pulseGlow 2s infinite;
}

@keyframes rotateRune {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes pulseGlow {
    0%, 100% {
        text-shadow: 
            0 0 20px var(--color-gold),
            0 0 40px rgba(212, 175, 55, 0.5),
            0 0 60px rgba(212, 175, 55, 0.3);
        transform: scale(1);
    }
    50% {
        text-shadow: 
            0 0 30px var(--color-gold),
            0 0 60px rgba(212, 175, 55, 0.7),
            0 0 90px rgba(212, 175, 55, 0.5);
        transform: scale(1.1);
    }
}

.loader-text {
    font-family: var(--font-epic);
    font-size: 1.2rem;
    color: var(--color-copper);
    letter-spacing: 0.3em;
    text-transform: uppercase;
    animation: fadeInOut 3s infinite;
}

@keyframes fadeInOut {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 1; }
}

/* ===== HERO ENHANCEMENTS ===== */
.hero-vignette {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(ellipse at center, transparent 30%, rgba(10, 10, 10, 0.8) 100%);
    z-index: 1;
}

/* Floating Runes */
.runes-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 2;
}

.floating-rune {
    position: absolute;
    font-size: 2rem;
    color: var(--color-gold);
    opacity: 0.3;
    text-shadow: 0 0 20px var(--color-gold);
    animation: floatRune 10s infinite ease-in-out;
}

.rune-1 {
    top: 20%;
    left: 10%;
    animation-delay: 0s;
    animation-duration: 15s;
}

.rune-2 {
    top: 60%;
    right: 15%;
    animation-delay: 2s;
    animation-duration: 12s;
}

.rune-3 {
    top: 40%;
    left: 80%;
    animation-delay: 4s;
    animation-duration: 18s;
}

.rune-4 {
    top: 80%;
    left: 30%;
    animation-delay: 1s;
    animation-duration: 14s;
}

@keyframes floatRune {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
        opacity: 0.2;
    }
    25% {
        transform: translateY(-30px) rotate(90deg);
        opacity: 0.4;
    }
    50% {
        transform: translateY(-60px) rotate(180deg);
        opacity: 0.3;
    }
    75% {
        transform: translateY(-30px) rotate(270deg);
        opacity: 0.5;
    }
}

/* ===== GLITCH EFFECT ===== */
.glitch {
    position: relative;
}

.glitch::before,
.glitch::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
}

.glitch:hover::before {
    animation: glitch1 0.3s infinite;
    color: var(--color-copper);
    z-index: -1;
}

.glitch:hover::after {
    animation: glitch2 0.3s infinite;
    color: var(--color-bronze);
    z-index: -2;
}

@keyframes glitch1 {
    0%, 100% {
        transform: translate(0);
        opacity: 0;
    }
    20% {
        transform: translate(-2px, 2px);
        opacity: 0.8;
    }
    40% {
        transform: translate(-2px, -2px);
        opacity: 0.6;
    }
    60% {
        transform: translate(2px, 2px);
        opacity: 0.8;
    }
    80% {
        transform: translate(2px, -2px);
        opacity: 0.6;
    }
}

@keyframes glitch2 {
    0%, 100% {
        transform: translate(0);
        opacity: 0;
    }
    20% {
        transform: translate(2px, -2px);
        opacity: 0.7;
    }
    40% {
        transform: translate(2px, 2px);
        opacity: 0.5;
    }
    60% {
        transform: translate(-2px, -2px);
        opacity: 0.7;
    }
    80% {
        transform: translate(-2px, 2px);
        opacity: 0.5;
    }
}

/* ===== SHIMMER EFFECT ===== */
.shimmer {
    background: linear-gradient(
        90deg,
        var(--color-copper) 0%,
        var(--color-gold) 30%,
        var(--color-copper) 60%,
        var(--color-gold) 100%
    );
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: shimmerEffect 3s linear infinite;
}

@keyframes shimmerEffect {
    to {
        background-position: 200% center;
    }
}

.shimmer-text {
    position: relative;
    background: linear-gradient(
        90deg,
        var(--color-cream) 0%,
        var(--color-gold) 40%,
        var(--color-cream) 50%,
        var(--color-gold) 60%,
        var(--color-cream) 100%
    );
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: shimmerEffect 4s linear infinite;
}

/* ===== TEXT GLOW ===== */
.text-glow {
    text-shadow: 
        0 0 10px var(--color-gold),
        0 0 20px rgba(212, 175, 55, 0.5),
        0 0 30px rgba(212, 175, 55, 0.3),
        0 0 40px rgba(212, 175, 55, 0.2);
    animation: intensifyGlow 3s ease-in-out infinite;
}

@keyframes intensifyGlow {
    0%, 100% {
        text-shadow: 
            0 0 10px var(--color-gold),
            0 0 20px rgba(212, 175, 55, 0.5),
            0 0 30px rgba(212, 175, 55, 0.3);
    }
    50% {
        text-shadow: 
            0 0 20px var(--color-gold),
            0 0 40px rgba(212, 175, 55, 0.7),
            0 0 60px rgba(212, 175, 55, 0.5),
            0 0 80px rgba(212, 175, 55, 0.3);
    }
}

/* ===== ANIMATED ORNAMENTS ===== */
.animated-ornament {
    position: relative;
    overflow: visible;
}

.animated-ornament::before {
    animation: expandContract 4s ease-in-out infinite;
}

.ornament-glow {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100px;
    height: 100px;
    background: radial-gradient(circle, var(--color-gold), transparent 70%);
    opacity: 0.3;
    animation: pulseOrnament 3s ease-in-out infinite;
}

@keyframes expandContract {
    0%, 100% {
        transform: scaleX(1);
        opacity: 1;
    }
    50% {
        transform: scaleX(1.2);
        opacity: 0.7;
    }
}

@keyframes pulseOrnament {
    0%, 100% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 0.2;
    }
    50% {
        transform: translate(-50%, -50%) scale(1.5);
        opacity: 0.5;
    }
}

/* ===== QUOTE CONTAINER ENHANCEMENT ===== */
.quote-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
}

.quote-ornament-left,
.quote-ornament-right {
    font-size: 2rem;
    color: var(--color-gold);
    opacity: 0.8;
    animation: rotateOrnament 8s linear infinite;
}

.quote-ornament-right {
    animation-direction: reverse;
}

@keyframes rotateOrnament {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* ===== DRAGON EYE ENOORA ===== */
.dragon-eye-container {
    position: relative;
    display: inline-block;
}

.dragon-flames {
    position: absolute;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
    width: 200px;
    height: 100px;
    background: radial-gradient(ellipse at center, rgba(212, 175, 55, 0.4), transparent 70%);
    filter: blur(20px);
    animation: flameFlicker 2s ease-in-out infinite;
}

@keyframes flameFlicker {
    0%, 100% {
        opacity: 0.6;
        transform: translateX(-50%) translateY(0) scale(1);
    }
    50% {
        opacity: 1;
        transform: translateX(-50%) translateY(-10px) scale(1.1);
    }
}

.dragon-smoke {
    position: absolute;
    bottom: -30px;
    left: 50%;
    transform: translateX(-50%);
    width: 150px;
    height: 80px;
    background: radial-gradient(ellipse at center, rgba(139, 134, 128, 0.3), transparent 70%);
    filter: blur(15px);
    animation: smokeDrift 4s ease-in-out infinite;
}

@keyframes smokeDrift {
    0%, 100% {
        opacity: 0.4;
        transform: translateX(-50%) translateY(0);
    }
    50% {
        opacity: 0.7;
        transform: translateX(-50%) translateY(10px);
    }
}

.dragon-eye {
    position: relative;
    animation: dragonBlink 5s infinite !important;
}

@keyframes dragonBlink {
    0%, 90%, 100% {
        transform: scaleY(1);
    }
    95% {
        transform: scaleY(0.1);
    }
}

/* ===== SECTION TRANSITIONS ===== */
.section-transition {
    position: relative;
    height: 150px;
    overflow: hidden;
    background: linear-gradient(to bottom, transparent, var(--color-dark));
}

.transition-wave {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 200%;
    height: 100%;
    background: 
        repeating-linear-gradient(
            -45deg,
            transparent,
            transparent 20px,
            rgba(184, 115, 51, 0.1) 20px,
            rgba(184, 115, 51, 0.1) 40px
        );
    animation: waveScroll 20s linear infinite;
}

@keyframes waveScroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* ===== FOG DIVIDER ===== */
.fog-divider {
    position: relative;
    height: 200px;
    overflow: hidden;
    background: linear-gradient(to bottom, var(--color-dark-brown), var(--color-dark));
}

.fog {
    position: absolute;
    width: 200%;
    height: 100%;
    background: radial-gradient(ellipse at center, rgba(139, 134, 128, 0.2), transparent 60%);
    filter: blur(30px);
}

.fog-1 {
    top: 0;
    left: -50%;
    animation: fogMove1 30s infinite linear;
}

.fog-2 {
    top: 30%;
    left: -50%;
    animation: fogMove2 40s infinite linear reverse;
    opacity: 0.7;
}

.fog-3 {
    top: 60%;
    left: -50%;
    animation: fogMove1 50s infinite linear;
    opacity: 0.5;
}

@keyframes fogMove1 {
    from { transform: translateX(0); }
    to { transform: translateX(50%); }
}

@keyframes fogMove2 {
    from { transform: translateX(0) translateY(0); }
    to { transform: translateX(50%) translateY(20px); }
}

/* ===== 3D CARD TILT EFFECT ===== */
.philosophy-card,
.meaning-card {
    transform-style: preserve-3d;
    transition: transform 0.3s ease;
}

.philosophy-card:hover,
.meaning-card:hover {
    transform: perspective(1000px) rotateX(5deg) rotateY(5deg) translateZ(20px);
}

/* ===== COPPER LIGHTNING ===== */
@keyframes copperLightning {
    0%, 100% {
        box-shadow: 
            0 0 10px rgba(184, 115, 51, 0.3),
            0 0 20px rgba(184, 115, 51, 0.2),
            0 0 30px rgba(184, 115, 51, 0.1);
    }
    50% {
        box-shadow: 
            0 0 20px rgba(184, 115, 51, 0.6),
            0 0 40px rgba(184, 115, 51, 0.4),
            0 0 60px rgba(184, 115, 51, 0.2),
            0 0 80px rgba(184, 115, 51, 0.1);
    }
}

.image-placeholder.product {
    animation: copperLightning 3s ease-in-out infinite;
}

/* ===== RUNE CIRCLE ANIMATION ===== */
.rune-circle {
    position: absolute;
    top: 10%;
    left: 50%;
    transform: translateX(-50%);
    width: 150px;
    height: 150px;
    opacity: 0.6;
    animation: rotateRune 20s linear infinite;
}

.rune-svg {
    width: 100%;
    height: 100%;
    filter: drop-shadow(0 0 20px var(--color-gold));
}

.rune-outer {
    fill: none;
    stroke: var(--color-gold);
    stroke-width: 2;
    opacity: 0.6;
    animation: pulseStroke 3s ease-in-out infinite;
}

.rune-inner {
    fill: none;
    stroke: var(--color-copper);
    stroke-width: 1.5;
    opacity: 0.4;
    animation: pulseStroke 3s ease-in-out infinite reverse;
}

.rune-cross {
    stroke: var(--color-gold);
    stroke-width: 1;
    opacity: 0.5;
}

.rune-text {
    fill: var(--color-gold);
    font-size: 40px;
    text-anchor: middle;
    dominant-baseline: middle;
    animation: pulseGlow 2s infinite;
}

@keyframes pulseStroke {
    0%, 100% {
        stroke-opacity: 0.4;
        stroke-width: 2;
    }
    50% {
        stroke-opacity: 0.8;
        stroke-width: 3;
    }
}

/* ===== RESPONSIVE MYSTICAL EFFECTS ===== */
@media (max-width: 768px) {
    .cursor-glow {
        display: none;
    }
    
    .floating-rune {
        font-size: 1.5rem;
    }
    
    .fog-divider {
        height: 100px;
    }
    
    .rune-circle {
        width: 100px;
        height: 100px;
    }
}

/* ===== PERFORMANCE: DISABLE HEAVY EFFECTS ON LOW-END DEVICES ===== */
@media (prefers-reduced-motion: reduce) {
    .glitch::before,
    .glitch::after,
    .shimmer,
    .floating-rune,
    .fog,
    .dragon-flames,
    .dragon-smoke {
        animation: none !important;
    }
}
