/*
Theme Name: Elite Virtual Investments
Theme URI: https://wordpress.org/themes/elite-virtual-investments/
Author: Theme Author
Author URI: https://wordpress.org/
Description: Corporate theme for Elite Virtual Investments (EVI), featuring investment opportunities in agriculture, real estate, and virtual reality. Dark, premium design with gold accents.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.4
Requires PHP: 7.4
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: elite-virtual-investments
Tags: one-column, two-columns, custom-colors, custom-menu, custom-logo, featured-images, footer-widgets, accessibility-ready, custom-background, theme-options, translation-ready, blog, portfolio

Elite Virtual Investments WordPress Theme. (C) 2024. GPLv2 or later.
*/

/* ==========================================================================
   CSS Custom Properties (Design Tokens)
   ========================================================================== */
:root {
	--evi-brand-dark: #02040a;
	--evi-brand-primary: #0f172a;
	--evi-brand-secondary: #1e293b;
	--evi-brand-accent: #d4af37;
	--evi-brand-accent-light: #f3e5ab;
	--evi-brand-accent-dark: #aa8c2c;
	--evi-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	--evi-font-serif: 'Playfair Display', Georgia, serif;
	--evi-container-max: 80rem;
	--evi-spacing-unit: 1rem;
}

/* ==========================================================================
   Base & Reset
   ========================================================================== */
html {
	scroll-behavior: smooth;
}

body {
	overflow-x: hidden;
	background-color: var(--evi-brand-dark);
	color: #e2e8f0;
	font-family: var(--evi-font-sans);
	-webkit-font-smoothing: antialiased;
}

.evi-text-body { color: #e2e8f0; }
.overflow-x-hidden { overflow-x: hidden; }
.evi-screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
	overflow: hidden;
	position: absolute;
	width: 1px;
	word-wrap: normal;
}
.evi-screen-reader-text:focus {
	clip: auto;
	height: auto;
	overflow: visible;
	position: static;
	width: auto;
}

::selection {
	background: var(--evi-brand-accent);
	color: var(--evi-brand-dark);
}

/* Accessibility: skip link (required by Theme Review) */
.evi-skip-link {
	position: absolute;
	top: -100px;
	left: 0;
	z-index: 100000;
	padding: 0.75rem 1.5rem;
	background: var(--evi-brand-accent);
	color: var(--evi-brand-dark);
	font-weight: 700;
	text-decoration: none;
	transition: top 0.2s ease;
}
.evi-skip-link:focus {
	top: 0;
	outline: 2px solid var(--evi-brand-accent-light);
	outline-offset: 2px;
}

/* Content links (required: underlined in content) */
.entry-content a,
.comment-content a {
	text-decoration: underline;
}

/* ==========================================================================
   Scrollbar
   ========================================================================== */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--evi-brand-dark); }
::-webkit-scrollbar-thumb { background: #334155; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--evi-brand-accent); }

/* ==========================================================================
   Film Grain & Scanline Overlays
   ========================================================================== */
.evi-grain {
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 9998;
	opacity: 0.035;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='1'/%3E%3C/svg%3E");
}

.evi-scanline {
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 9997;
	background: linear-gradient(to bottom, transparent 50%, rgba(0,0,0,0.1) 50%);
	background-size: 100% 4px;
	opacity: 0.15;
}

.evi-scanline-bar {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 10%;
	background: linear-gradient(to bottom, transparent, rgba(212,175,55,0.1), transparent);
	z-index: 9997;
	animation: evi-scanline 8s linear infinite;
	pointer-events: none;
}

@keyframes evi-scanline {
	0% { transform: translateY(-100%); }
	100% { transform: translateY(100%); }
}

/* ==========================================================================
   Keyframes (animations)
   ========================================================================== */
@keyframes evi-fadeInUp {
	0% { opacity: 0; transform: translateY(40px); }
	100% { opacity: 1; transform: translateY(0); }
}

@keyframes evi-fadeIn {
	0% { opacity: 0; }
	100% { opacity: 1; }
}

@keyframes evi-reveal {
	0% { transform: translateY(100%); }
	100% { transform: translateY(0); }
}

@keyframes evi-blob {
	0% { transform: translate(0, 0) scale(1); }
	33% { transform: translate(30px, -50px) scale(1.1); }
	66% { transform: translate(-20px, 20px) scale(0.9); }
	100% { transform: translate(0, 0) scale(1); }
}

@keyframes evi-shimmer {
	0% { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

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

@keyframes evi-glitch1 {
	0% { clip-path: inset(40% 0 61% 0); }
	20% { clip-path: inset(92% 0 1% 0); }
	40% { clip-path: inset(43% 0 1% 0); }
	60% { clip-path: inset(25% 0 58% 0); }
	80% { clip-path: inset(54% 0 7% 0); }
	100% { clip-path: inset(58% 0 43% 0); }
}

@keyframes evi-glitch2 {
	0% { clip-path: inset(25% 0 58% 0); }
	20% { clip-path: inset(54% 0 7% 0); }
	40% { clip-path: inset(58% 0 43% 0); }
	60% { clip-path: inset(40% 0 61% 0); }
	80% { clip-path: inset(92% 0 1% 0); }
	100% { clip-path: inset(43% 0 1% 0); }
}

/* ==========================================================================
   Utility classes
   ========================================================================== */
.evi-animate-fade-in-up {
	animation: evi-fadeInUp 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.evi-animate-fade-in {
	animation: evi-fadeIn 1.2s ease-out forwards;
}

.evi-container {
	width: 100%;
	max-width: var(--evi-container-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--evi-spacing-unit);
	padding-right: var(--evi-spacing-unit);
}

@media (min-width: 640px) {
	.evi-container { padding-left: 1.5rem; padding-right: 1.5rem; }
}

@media (min-width: 1024px) {
	.evi-container { padding-left: 2rem; padding-right: 2rem; }
}

.evi-font-serif { font-family: var(--evi-font-serif); }
.evi-text-accent { color: var(--evi-brand-accent); }
.evi-bg-dark { background-color: var(--evi-brand-dark); }
.evi-bg-primary { background-color: var(--evi-brand-primary); }
.evi-bg-secondary { background-color: var(--evi-brand-secondary); }

/* Mask for text reveal */
.evi-mask-text {
	overflow: hidden;
	display: inline-block;
	vertical-align: bottom;
}

/* Glitch text on hover */
.evi-glitch-wrap {
	position: relative;
	display: inline-block;
}
.evi-glitch-wrap:hover .evi-glitch-1 { opacity: 0.5; animation: evi-glitch1 2.5s infinite linear alternate-reverse; }
.evi-glitch-wrap:hover .evi-glitch-2 { opacity: 0.5; animation: evi-glitch2 3s infinite linear alternate-reverse; }
.evi-glitch-1, .evi-glitch-2 {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	pointer-events: none;
	z-index: -1;
}
.evi-glitch-1 { color: var(--evi-brand-accent); transform: translateX(2px); }
.evi-glitch-2 { color: #3b82f6; transform: translateX(-2px); }

/* Focus visible (accessibility) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--evi-brand-accent);
	outline-offset: 2px;
}
