@keyframes sunrise-fade-up {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes sunrise-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes sunrise-reveal-left {
    from { opacity: 0; transform: translateX(-30px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes sunrise-badge-reveal {
    0% { opacity: 0; transform: translateY(-20px) scale(0.8); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

@keyframes float {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-15px); }
    100% { transform: translateY(0px); }
}

@keyframes pulse-glow {
    0% { box-shadow: 0 0 0 0 rgba(255, 77, 0, 0.4); }
    70% { box-shadow: 0 0 0 15px rgba(255, 77, 0, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 77, 0, 0); }
}

html {
    scroll-behavior: smooth;
}

.animate-fade-up {
    opacity: 0;
    transform: translateY(40px);
    transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.animate-fade-up.revealed {
    opacity: 1;
    transform: translateY(0);
}

.animate-reveal-left {
    opacity: 0;
    transform: translateX(-40px);
    transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.animate-reveal-left.revealed {
    opacity: 1;
    transform: translateX(0);
}

/* Premium Custom Cursor */
.custom-cursor {
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255, 77, 0, 0.4);
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    z-index: 9999;
    transform: translate(-50%, -50%);
    transition: width 0.3s, height 0.3s, background-color 0.3s, border-color 0.3s;
    backdrop-filter: grayscale(0.2);
}
.custom-cursor.hovering {
    width: 70px;
    height: 70px;
    background-color: rgba(255, 77, 0, 0.05);
    border-color: rgba(255, 77, 0, 0.8);
}
.custom-cursor-dot {
    width: 6px;
    height: 6px;
    background-color: var(--sunrise-orange);
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    z-index: 10000;
    transform: translate(-50%, -50%);
    transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.custom-cursor-dot.hovering {
    transform: translate(-50%, -50%) scale(0);
}

.animate-badge-reveal {
    opacity: 0;
}
.revealed .animate-badge-reveal,
.animate-badge-reveal.revealed {
    animation: sunrise-badge-reveal 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.animate-float {
    animation: float 6s ease-in-out infinite;
}

.hover-glow:hover {
    animation: pulse-glow 1.5s infinite;
}

.story-line {
    position: relative;
}
.story-line::before {
    content: '';
    position: absolute;
    left: -20px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(to bottom, var(--sunrise-orange), transparent);
    opacity: 0.5;
}

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

.animate-marquee {
    display: flex;
    width: max-content;
    animation: marquee 30s linear infinite;
}

.animate-marquee:hover {
    animation-play-state: paused;
}

.premium-card-hover {
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.premium-card-hover:hover {
    transform: translateY(-10px) scale(1.02);
    box-shadow: 0 20px 40px -10px rgba(255, 77, 0, 0.2);
    border-color: rgba(255, 77, 0, 0.5);
}
