/**
 * Base & Global Styles
 *
 * Contains CSS variables, resets, and base typography.
 * This file should be loaded first before other stylesheets.
 *
 * @package WPMediaFlow
 * @since 1.0.0
 */

/* ==========================================================================
   CSS Variables / Design Tokens
   ========================================================================== */
:root {
    /* Spacing */
    --spacing-0: 0px;
    --spacing-1: 4px;
    --spacing-2: 8px;
    --spacing-2-5: 10px;
    --spacing-3: 12px;
    --spacing-4: 16px;
    --spacing-5: 20px;
    --spacing-6: 24px;
    --spacing-8: 32px;
    --spacing-10: 40px;
    --spacing-12: 48px;
    --spacing-16: 64px;
    --spacing-20: 80px;
    --spacing-24: 96px;
    --spacing-32: 128px;
    --spacing-64: 256px;
    --spacing-80: 320px;
    --spacing-96: 384px;

    /* Colors */
    --colors-primary: rgba(168, 87, 64, 1);
    --colors-primary-dark: rgba(138, 66, 48, 1);
    --colors-primary-10: rgba(168, 87, 64, 0.1);
    --colors-primary-30: rgba(168, 87, 64, 0.3);
    --colors-neutral-50: rgba(247, 246, 242, 1);
    --colors-neutral-50-80: rgba(247, 246, 242, 0.8);
    --colors-neutral-100: rgba(235, 234, 230, 1);
    --colors-neutral-200: rgba(220, 218, 213, 1);
    --colors-neutral-300: rgba(212, 212, 212, 1);
    --colors-neutral-400: rgba(163, 163, 163, 1);
    --colors-neutral-500: rgba(115, 115, 115, 1);
    --colors-neutral-600: rgba(82, 82, 82, 1);
    --colors-neutral-700: rgba(64, 64, 64, 1);
    --colors-neutral-800: rgba(45, 45, 45, 1);
    --colors-neutral-900: rgba(26, 26, 26, 1);
    --colors-white: rgba(255, 255, 255, 1);
    --colors-white-60: rgba(255, 255, 255, 0.6);
    --colors-white-80: rgba(255, 255, 255, 0.8);
    --colors-black: rgba(0, 0, 0, 1);
    --colors-black-0: rgba(0, 0, 0, 0);
    --colors-black-5: rgba(0, 0, 0, 0.05);
    --colors-black-10: rgba(0, 0, 0, 0.1);
    --colors-black-25: rgba(0, 0, 0, 0.25);
    --colors-accent: rgba(212, 211, 205, 1);
    --colors-accent-20: rgba(212, 211, 205, 0.2);
    --colors-red-400: rgba(248, 113, 113, 1);
    --colors-yellow-400: rgba(250, 204, 21, 1);
    --colors-green-400: rgba(74, 222, 128, 1);
    --colors-gray-200: #e5e7eb;
    --colors-gray-400: #9ca3af;

    /* Typography */
    --fontFamily-display: "Clash Display", sans-serif;
    --fontFamily-body: Satoshi, sans-serif;
    --fontFamily-sans: ui-sans-serif, system-ui, sans-serif;
    --fontFamily-mono: ui-monospace, monospace;
    --fontWeight-light: 300;
    --fontWeight-medium: 500;
    --fontWeight-semibold: 600;
    --fontSize-xs: 12px;
    --fontSize-sm: 14px;
    --fontSize-base: 16px;
    --fontSize-lg: 18px;
    --fontSize-xl: 20px;
    --fontSize-2xl: 24px;
    --fontSize-3xl: 30px;
    --fontSize-4xl: 36px;
    --fontSize-5xl: 48px;
    --fontSize-7xl: 72px;

    /* Border Radius */
    --borderRadius-DEFAULT: 4px;
    --borderRadius-lg: 8px;
    --borderRadius-xl: 12px;
    --borderRadius-2xl: 16px;
    --borderRadius-full: 9999px;
}

/* ==========================================================================
   Reset & Base Styles
   ========================================================================== */
*, ::before, ::after {
    box-sizing: border-box;
    border-width: 0;
    border-style: solid;
    border-color: var(--colors-gray-200);
}

html, :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    tab-size: 4;
    font-family: var(--fontFamily-sans);
    font-feature-settings: normal;
    font-variation-settings: normal;
    -webkit-tap-highlight-color: transparent;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    line-height: inherit;
    color: var(--colors-neutral-900);
    background-color: var(--colors-neutral-50);
    font-family: var(--fontFamily-body);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
}

a {
    color: inherit;
    text-decoration: inherit;
}

b, strong {
    font-weight: bolder;
}

blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre {
    margin: 0;
}

ol, ul, menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

button, input, optgroup, select, textarea {
    font-family: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    margin: 0;
    padding: 0;
}

button, [role="button"] {
    cursor: pointer;
}

button, input:where([type='button']), input:where([type='reset']), input:where([type='submit']) {
    -webkit-appearance: button;
    appearance: button;
    background-color: transparent;
    background-image: none;
}

img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
}

img, video {
    max-width: 100%;
    height: auto;
}

/* Selection */
::selection {
    background-color: var(--colors-primary);
    color: var(--colors-white);
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: #F7F6F2;
}

::-webkit-scrollbar-thumb {
    background: #D4D3CD;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #A85740;
}

/* ==========================================================================
   Utility Classes & Animations
   ========================================================================== */
.perspective-1000 {
    perspective: 1000px;
}

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

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

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

/* Scroll reveal animation */
.scroll-reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.scroll-reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Screen reader only text */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}
