/* Reset and Base Styles */
:root {
    --primary-color: #F04037;
    --secondary-color: #E53935;
    --accent-color: #FF6B63;
    --text-color: #333;
    --bg-color: #fff;
    --border-color: rgba(0, 0, 0, 0.08);
    --shadow-light: 0 4px 20px rgba(0, 0, 0, 0.08);
    --shadow-medium: 0 8px 32px rgba(0, 0, 0, 0.15);
    --shadow-heavy: 0 25px 60px rgba(0, 0, 0, 0.25);
    --transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Inter', sans-serif;
    line-height: 1.6;
    color: #333;
    overflow-x: hidden;
    width: 100%;
    min-height: 100vh;
    opacity: 1;
}

body.page-ready {
    opacity: 1;
}

/* Prevent text overflow on small screens */
h1, h2, h3, h4, h5, h6 {
    word-wrap: break-word;
    
    overflow-wrap: break-word;
}

p {
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Page load animation */
@keyframes pageLoad {
    to {
        opacity: 1;
    }
}

/* Elegant scroll animations */
.fade-in-up {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.fade-in-up.animate {
    opacity: 1;
    transform: translateY(0);
}

.fade-in-left {
    opacity: 0;
    transform: translateX(-40px);
    transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.fade-in-left.animate {
    opacity: 1;
    transform: translateX(0);
}

.fade-in-right {
    opacity: 0;
    transform: translateX(40px);
    transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.fade-in-right.animate {
    opacity: 1;
    transform: translateX(0);
}

.scale-in {
    opacity: 0;
    transform: scale(0.9);
    transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.scale-in.animate {
    opacity: 1;
    transform: scale(1);
}

/* Global scrolling behaviour */
html {
    width: 100%;
    height: 100%;
    scroll-behavior: smooth;
    /* Offset to account for the fixed header (70px) + desired breathing room */
    scroll-padding-top: 70px;
}

/* Enhanced image loading */
img {
    opacity: 1;
    transform: scale(1);
    transition: all 0.5s ease;
    filter: blur(0);
}

img.loaded {
    opacity: 1;
    transform: scale(1);
    filter: blur(0);
}
