/* Base Styles - Global resets and typography */

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: var(--font-family-base);
    background-color: var(--color-gray-50);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* Main Layout */
.main-wrapper {
    flex: 1;
}

.container {
    max-width: 80rem;
    margin: 0 auto;
    padding: 0 var(--spacing-md);
}

.content-container {
    max-width: 80rem;
    margin: 0 auto;
    padding: var(--spacing-xl) var(--spacing-md);
}

/* Typography */
.page-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--color-gray-900);
    margin-bottom: var(--spacing-sm);
}

.page-subtitle {
    color: var(--color-gray-500);
    margin-bottom: var(--spacing-lg);
}

/* Hide content until JavaScript is ready */
body:not(.js-ready) main,
body:not(.js-ready) .content-container {
    display: none !important;
}

body.js-ready main,
body.js-ready .content-container {
    display: block;
    animation: fadeIn 0.3s ease-in;
}

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

/* Utility Classes */
.hidden {
    display: none !important;
}