/* ═══════════════════════════════════════════════════════════════════════════ GLOBAL.CSS — APEX PRO v2.0 — Gokul R Portfolio Sleek · Modern · Professional · Subtle Elegance ═══════════════════════════════════════════════════════════════════════════ */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Outfit:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600;700&display=swap'); /* ───────────────────────────────────────────────────────────── DARK THEME (default) — Midnight Indigo ───────────────────────────────────────────────────────────── */ :root, [data-theme='dark'] { /* ── Backgrounds ── */ --bg: #08080f; --bg-deep: #04040a; --bg-card: rgba(18, 18, 34, 0.88); --bg-glass: rgba(99, 102, 241, 0.06); --bg-glass-2: rgba(6, 182, 212, 0.04); /* ── Borders ── */ --border: rgba(99, 102, 241, 0.12); --border-hot: rgba(6, 182, 212, 0.4); --border-fire: rgba(236, 72, 153, 0.35); /* ── Text ── */ --text-primary: #f0eff5; --text-secondary:#9896ad; --text-muted: #605e78; /* ── Accents ── */ --accent: #6366f1; --accent-2: #06b6d4; --accent-warm: #f59e0b; --accent-green: #10b981; --accent-pink: #ec4899; --accent-glow: rgba(99, 102, 241, 0.1); /* ── Gradients ── */ --grad-main: linear-gradient(135deg, #6366f1 0%, #06b6d4 50%, #10b981 100%); --grad-fire: linear-gradient(135deg, #ec4899 0%, #f59e0b 50%, #facc15 100%); --grad-aurora: linear-gradient(135deg, #06b6d4 0%, #6366f1 40%, #ec4899 100%); --grad-ice: linear-gradient(135deg, #3b82f6 0%, #06b6d4 100%); --grad-galaxy: linear-gradient(135deg, #6366f1 0%, #06b6d4 30%, #8b5cf6 60%, #ec4899 100%); --grad-quantum: linear-gradient(135deg, #06b6d4 0%, #6366f1 25%, #ec4899 50%, #f59e0b 75%, #10b981 100%); /* ── Shadows ── */ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3); --shadow-md: 0 4px 20px rgba(0, 0, 0, 0.35); --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.4); --shadow-xl: 0 20px 60px rgba(0, 0, 0, 0.5); --shadow-accent: 0 4px 24px rgba(99, 102, 241, 0.25); --shadow-cyan: 0 4px 24px rgba(6, 182, 212, 0.2); --shadow-card: 0 8px 32px rgba(0, 0, 0, 0.4); --shadow-glow: 0 0 30px rgba(99, 102, 241, 0.12); /* ── System ── */ --nav-bg: rgba(8, 8, 15, 0.94); --input-bg: rgba(99, 102, 241, 0.06); --input-border: rgba(99, 102, 241, 0.18); --footer-bg: #04040a; --grid-color: rgba(99, 102, 241, 0.035); --noise-opacity: 0.25; --orb-opacity: 0.35; /* ── Cursor Vars ── */ --cursor-dot-color: #6366f1; --cursor-dot-size: 6px; --cursor-ring-color: rgba(99, 102, 241, 0.5); --cursor-ring-expand: rgba(6, 182, 212, 0.7); --cursor-trail-color: rgba(99, 102, 241, 0.08); --cursor-glow: 0 0 8px #6366f1; --cursor-ring-glow: 0 0 12px rgba(99, 102, 241, 0.2); --cursor-expand-glow: 0 0 20px rgba(6, 182, 212, 0.35); --cursor-trail-glow: 0 0 6px rgba(99, 102, 241, 0.15); --cursor-particle-color: #6366f1; --cursor-blend: screen; --cursor-ring-border: 1.5px solid rgba(99, 102, 241, 0.5); --cursor-ring-expand-border: 1.5px solid rgba(6, 182, 212, 0.7); /* ── Toggle ── */ --toggle-border: rgba(99, 102, 241, 0.3); --toggle-bg: rgba(99, 102, 241, 0.1); --toggle-glow: 0 0 16px rgba(99, 102, 241, 0.2); } /* ───────────────────────────────────────────────────────────── LIGHT THEME — Crystal Frost ───────────────────────────────────────────────────────────── */ [data-theme='light'] { /* ── Backgrounds ── */ --bg: #f5f6fa; --bg-deep: #eef0f6; --bg-card: rgba(255, 255, 255, 0.94); --bg-glass: rgba(99, 102, 241, 0.06); --bg-glass-2: rgba(255, 255, 255, 0.94); /* ── Borders ── */ --border: rgba(99, 102, 241, 0.14); --border-hot: rgba(6, 182, 212, 0.45); --border-fire: rgba(236, 72, 153, 0.35); /* ── Text ── */ --text-primary: #1a1a2e; --text-secondary:#4a4a66; --text-muted: #8a8aa6; /* ── Accents ── */ --accent: #6366f1; --accent-2: #0891b2; --accent-warm: #d97706; --accent-green: #059669; --accent-pink: #db2777; --accent-glow: rgba(99, 102, 241, 0.08); /* ── Gradients ── */ --grad-main: linear-gradient(135deg, #6366f1 0%, #0891b2 50%, #059669 100%); --grad-fire: linear-gradient(135deg, #db2777 0%, #d97706 50%, #ca8a04 100%); --grad-aurora: linear-gradient(135deg, #0891b2 0%, #6366f1 40%, #db2777 100%); --grad-ice: linear-gradient(135deg, #3b82f6 0%, #0891b2 100%); --grad-galaxy: linear-gradient(135deg, #6366f1 0%, #0891b2 30%, #7c3aed 60%, #db2777 100%); --grad-quantum: linear-gradient(135deg, #0891b2 0%, #6366f1 25%, #db2777 50%, #d97706 75%, #059669 100%); /* ── Shadows ── */ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06); --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.08); --shadow-lg: 0 10px 32px rgba(0, 0, 0, 0.1); --shadow-xl: 0 20px 48px rgba(0, 0, 0, 0.12); --shadow-accent: 0 4px 20px rgba(99, 102, 241, 0.15); --shadow-cyan: 0 4px 20px rgba(6, 182, 212, 0.12); --shadow-card: 0 8px 28px rgba(99, 102, 241, 0.1); --shadow-glow: 0 0 20px rgba(99, 102, 241, 0.06); /* ── System ── */ --nav-bg: rgba(245, 246, 250, 0.96); --input-bg: rgba(99, 102, 241, 0.04); --input-border: rgba(99, 102, 241, 0.16); --footer-bg: #eef0f6; --grid-color: rgba(99, 102, 241, 0.04); --noise-opacity: 0.06; --orb-opacity: 0.2; /* ── Cursor Vars ── */ --cursor-dot-color: #6366f1; --cursor-dot-size: 6px; --cursor-ring-color: rgba(99, 102, 241, 0.6); --cursor-ring-expand: rgba(6, 182, 212, 0.8); --cursor-trail-color: rgba(99, 102, 241, 0.06); --cursor-glow: 0 0 8px rgba(99, 102, 241, 0.4); --cursor-ring-glow: 0 0 12px rgba(99, 102, 241, 0.2); --cursor-expand-glow: 0 0 20px rgba(6, 182, 212, 0.25); --cursor-trail-glow: 0 0 6px rgba(99, 102, 241, 0.1); --cursor-particle-color: #6366f1; --cursor-blend: multiply; --cursor-ring-border: 1.5px solid rgba(99, 102, 241, 0.6); --cursor-ring-expand-border: 1.5px solid rgba(6, 182, 212, 0.8); /* ── Toggle ── */ --toggle-border: rgba(99, 102, 241, 0.3); --toggle-bg: rgba(99, 102, 241, 0.08); --toggle-glow: 0 0 16px rgba(99, 102, 241, 0.12); } /* ───────────────────────────────────────────────────────────── DESIGN TOKENS ───────────────────────────────────────────────────────────── */ :root { --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; --font-heading: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif; --font-code: 'JetBrains Mono', 'Fira Code', monospace; --radius-sm: 6px; --radius-md: 12px; --radius-lg: 20px; --radius-xl: 32px; --ease: cubic-bezier(0.4, 0, 0.2, 1); --ease-back: cubic-bezier(0.34, 1.56, 0.64, 1); --ease-expo: cubic-bezier(0.19, 1, 0.22, 1); --ease-spring: cubic-bezier(0.22, 1.5, 0.36, 1); --t: 0.35s; --max-width: 1200px; /* ── Typography Scale ── */ --text-xs: 0.75rem; --text-sm: 0.875rem; --text-base: 1rem; --text-lg: 1.125rem; --text-xl: 1.25rem; --text-2xl: 1.5rem; --text-3xl: 1.875rem; --text-4xl: 2.25rem; --text-5xl: 3rem; --text-6xl: 3.75rem; } /* ───────────────────────────────────────────────────────────── RESET ───────────────────────────────────────────────────────────── */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; scroll-padding-top: 80px; } body { background: var(--bg); color: var(--text-primary); font-family: var(--font-body); font-size: var(--text-base); line-height: 1.7; font-weight: 400; overflow-x: hidden; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; transition: background 0.6s cubic-bezier(0.4, 0, 0.2, 1), color 0.6s cubic-bezier(0.4, 0, 0.2, 1); } /* ── Headings ── */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); font-weight: 700; line-height: 1.15; letter-spacing: -0.02em; } /* ── Code ── */ code, pre { font-family: var(--font-code); } /* ───────────────────────────────────────────────────────────── THEME TRANSITION ───────────────────────────────────────────────────────────── */ body.theme-transitioning::after { content: ''; position: fixed; inset: 0; z-index: 99997; pointer-events: none; background: radial-gradient( circle at var(--ripple-x, 50%) var(--ripple-y, 50%), rgba(99, 102, 241, 0.12) 0%, rgba(6, 182, 212, 0.06) 30%, transparent 70% ); animation: themeRipple 0.6s cubic-bezier(0.19, 1, 0.22, 1) forwards; } [data-theme='light'] body.theme-transitioning::after { background: radial-gradient( circle at var(--ripple-x, 50%) var(--ripple-y, 50%), rgba(99, 102, 241, 0.1) 0%, rgba(6, 182, 212, 0.05) 30%, transparent 70% ); } @keyframes themeRipple { 0% { transform: scale(0); opacity: 0.8; } 60% { transform: scale(3); opacity: 0.4; } 100% { transform: scale(6); opacity: 0; } } /* ───────────────────────────────────────────────────────────── SCROLLBAR ───────────────────────────────────────────────────────────── */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: var(--bg-deep); } ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--accent), var(--accent-2)); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: var(--accent); } ::selection { background: rgba(99, 102, 241, 0.25); color: var(--text-primary); } [data-theme='light'] ::selection { background: rgba(99, 102, 241, 0.15); color: var(--text-primary); } /* ───────────────────────────────────────────────────────────── SUBTLE NOISE TEXTURE ───────────────────────────────────────────────────────────── */ body::before { content: ''; position: fixed; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E"); pointer-events: none; z-index: 0; opacity: var(--noise-opacity); mix-blend-mode: soft-light; transition: opacity 0.6s ease; } /* ───────────────────────────────────────────────────────────── AMBIENT GRADIENT ORBS (toned down) ───────────────────────────────────────────────────────────── */ .orb { position: fixed; border-radius: 50%; filter: blur(120px); pointer-events: none; z-index: 0; opacity: var(--orb-opacity); transition: opacity 0.8s ease, background 0.8s ease; } .orb-1 { width: 600px; height: 600px; background: radial-gradient(circle, rgba(99, 102, 241, 0.12) 0%, rgba(6, 182, 212, 0.05) 50%, transparent 70%); top: -250px; left: -250px; animation: orbDrift1 25s ease-in-out infinite; } .orb-2 { width: 500px; height: 500px; background: radial-gradient(circle, rgba(236, 72, 153, 0.08) 0%, rgba(99, 102, 241, 0.05) 50%, transparent 70%); bottom: -200px; right: -200px; animation: orbDrift2 30s ease-in-out infinite; } [data-theme='light'] .orb-1 { background: radial-gradient(circle, rgba(99, 102, 241, 0.06) 0%, rgba(6, 182, 212, 0.03) 50%, transparent 70%); } [data-theme='light'] .orb-2 { background: radial-gradient(circle, rgba(236, 72, 153, 0.05) 0%, rgba(99, 102, 241, 0.03) 50%, transparent 70%); } @keyframes orbDrift1 { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(50px, 40px) scale(1.05); } 66% { transform: translate(-30px, 60px) scale(0.95); } } @keyframes orbDrift2 { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(-50px, -40px) scale(1.05); } 66% { transform: translate(30px, -60px) scale(0.95); } } /* ───────────────────────────────────────────────────────────── LAYOUT ───────────────────────────────────────────────────────────── */ .container { max-width: var(--max-width); margin: 0 auto; padding: 0 28px; position: relative; z-index: 1; } section { padding: 120px 0; position: relative; z-index: 1; } /* ───────────────────────────────────────────────────────────── SECTION LABEL ───────────────────────────────────────────────────────────── */ .section-label { display: inline-flex; align-items: center; gap: 12px; font-family: var(--font-heading); font-size: var(--text-xs); font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--accent); margin-bottom: 16px; transition: color 0.6s ease; } .section-label::before { content: ''; height: 1.5px; width: 32px; background: var(--grad-main); border-radius: 2px; transition: width 0.3s var(--ease); } .section-label::after { content: ''; height: 1.5px; width: 16px; background: var(--grad-main); border-radius: 2px; opacity: 0.5; transition: width 0.3s var(--ease); } .section-label:hover::before { width: 40px; } .section-label:hover::after { width: 22px; } /* ───────────────────────────────────────────────────────────── SECTION TITLE ───────────────────────────────────────────────────────────── */ .section-title { font-family: var(--font-heading); font-size: clamp(30px, 4vw, 52px); font-weight: 800; line-height: 1.08; color: var(--text-primary); margin-bottom: 56px; letter-spacing: -0.03em; transition: color 0.6s ease; } .section-title span { background: var(--grad-main); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; background-size: 200% 200%; animation: gradShift 6s ease-in-out infinite; } @keyframes gradShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* ───────────────────────────────────────────────────────────── GLASS CARD — Modern Glassmorphism ───────────────────────────────────────────────────────────── */ .glass-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%); position: relative; overflow: hidden; transition: border-color 0.35s var(--ease), box-shadow 0.35s var(--ease), transform 0.35s var(--ease-back), background 0.6s var(--ease), backdrop-filter 0.6s var(--ease); will-change: transform, box-shadow; } /* Inner subtle gradient overlay */ .glass-card::before { content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; border-radius: inherit; background: linear-gradient(135deg, rgba(255, 255, 255, 0.04) 0%, transparent 50%, rgba(99, 102, 241, 0.03) 100%); transition: background 0.6s ease; } [data-theme='light'] .glass-card::before { background: linear-gradient(135deg, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0.4) 50%, rgba(99, 102, 241, 0.02) 100%); } /* Hover sheen sweep */ .glass-card::after { content: ''; position: absolute; top: 0; left: -100%; width: 60%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.05), transparent); transition: left 0.6s var(--ease-expo); pointer-events: none; } .glass-card:hover::after { left: 150%; } .glass-card:hover { border-color: rgba(99, 102, 241, 0.35); box-shadow: var(--shadow-card), var(--shadow-glow), inset 0 1px 0 rgba(255, 255, 255, 0.06); transform: translateY(-5px); } [data-theme='light'] .glass-card { background: rgba(255, 255, 255, 0.9); box-shadow: var(--shadow-card); } [data-theme='light'] .glass-card:hover { box-shadow: var(--shadow-lg), var(--shadow-glow); } /* ───────────────────────────────────────────────────────────── BUTTONS — Professional & Polished ───────────────────────────────────────────────────────────── */ .btn-primary { display: inline-flex; align-items: center; gap: 8px; padding: 14px 30px; background: var(--grad-main); background-size: 200% 200%; color: #fff; font-family: var(--font-heading); font-weight: 600; font-size: var(--text-sm); letter-spacing: 0.02em; border: none; border-radius: var(--radius-xl); cursor: pointer; text-decoration: none; position: relative; overflow: hidden; transition: box-shadow 0.3s var(--ease), transform 0.3s var(--ease-back), background 0.6s ease; box-shadow: var(--shadow-accent); will-change: transform; } .btn-primary::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.2) 50%, transparent 100%); transform: translateX(-100%) skewX(-20deg); transition: transform 0.5s var(--ease-expo); } .btn-primary:hover { transform: translateY(-3px); box-shadow: 0 8px 32px rgba(99, 102, 241, 0.35); } .btn-primary:hover::before { transform: translateX(160%) skewX(-20deg); } .btn-primary:active { transform: translateY(-1px); } .btn-outline { display: inline-flex; align-items: center; gap: 8px; padding: 13px 30px; background: transparent; color: var(--text-primary); font-family: var(--font-heading); font-weight: 600; font-size: var(--text-sm); letter-spacing: 0.02em; border: 1.5px solid var(--border); border-radius: var(--radius-xl); cursor: pointer; text-decoration: none; position: relative; overflow: hidden; transition: all 0.3s var(--ease-back), color 0.6s ease; } .btn-outline::before { content: ''; position: absolute; inset: 0; background: var(--grad-main); opacity: 0; transition: opacity 0.3s; } .btn-outline:hover { border-color: var(--accent); color: #fff; box-shadow: var(--shadow-accent); transform: translateY(-2px); } .btn-outline:hover::before { opacity: 1; } .btn-outline:hover > * { position: relative; z-index: 1; } [data-theme='light'] .btn-outline:hover { color: #fff; } /* ───────────────────────────────────────────────────────────── SKILL TAGS ───────────────────────────────────────────────────────────── */ .skill-tag { display: inline-flex; align-items: center; gap: 6px; padding: 7px 16px; background: var(--bg-glass); border: 1px solid var(--border); color: var(--text-secondary); font-family: var(--font-body); font-size: var(--text-sm); font-weight: 500; border-radius: 100px; cursor: default; transition: all 0.3s var(--ease-back), color 0.3s, background 0.3s; position: relative; overflow: hidden; will-change: transform; } .skill-tag:hover { background: rgba(99, 102, 241, 0.1); border-color: rgba(99, 102, 241, 0.3); color: var(--accent); transform: translateY(-3px) scale(1.03); box-shadow: 0 6px 20px rgba(99, 102, 241, 0.12); } .skill-tag img { width: 18px; height: 18px; object-fit: contain; filter: saturate(0.8); transition: filter 0.3s, transform 0.3s; } .skill-tag:hover img { filter: saturate(1); transform: scale(1.1); } /* ───────────────────────────────────────────────────────────── FADE IN ANIMATIONS ───────────────────────────────────────────────────────────── */ .fade-in { opacity: 0; transform: translateY(24px); animation: revealUp 0.7s var(--ease-expo) forwards; } @keyframes revealUp { to { opacity: 1; transform: translateY(0); } } .delay-1 { animation-delay: 0.10s; } .delay-2 { animation-delay: 0.20s; } .delay-3 { animation-delay: 0.30s; } .delay-4 { animation-delay: 0.40s; } .delay-5 { animation-delay: 0.50s; } .delay-6 { animation-delay: 0.65s; } /* ───────────────────────────────────────────────────────────── SPINNER ───────────────────────────────────────────────────────────── */ .spinner { width: 20px; height: 20px; border: 2px solid rgba(99, 102, 241, 0.12); border-top-color: var(--accent); border-radius: 50%; animation: spin 0.7s linear infinite; flex-shrink: 0; } @keyframes spin { to { transform: rotate(360deg); } } /* ───────────────────────────────────────────────────────────── BACK TO TOP ───────────────────────────────────────────────────────────── */ .back-to-top { position: fixed; bottom: 32px; right: 32px; z-index: 800; width: 48px; height: 48px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md); color: var(--text-secondary); font-size: 20px; display: flex; align-items: center; justify-content: center; cursor: pointer; opacity: 0; transform: translateY(20px) scale(0.9); pointer-events: none; transition: opacity 0.35s var(--ease), transform 0.35s var(--ease-spring), box-shadow 0.3s, background 0.3s, color 0.3s, border-color 0.3s; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } .back-to-top.show { opacity: 1; transform: translateY(0) scale(1); pointer-events: all; box-shadow: var(--shadow-md); } .back-to-top:hover { background: var(--accent); border-color: var(--accent); color: #fff; transform: translateY(-3px) scale(1.05); box-shadow: var(--shadow-accent); } .back-to-top:active { transform: translateY(-1px) scale(1.02); } /* ───────────────────────────────────────────────────────────── FORMS ───────────────────────────────────────────────────────────── */ .form-group { display: flex; flex-direction: column; gap: 6px; } .form-group label { font-family: var(--font-heading); font-size: var(--text-xs); font-weight: 600; color: var(--text-secondary); letter-spacing: 0.1em; text-transform: uppercase; transition: color 0.6s ease; } .form-input { width: 100%; padding: 14px 18px; background: var(--input-bg); border: 1.5px solid var(--input-border); border-radius: var(--radius-md); color: var(--text-primary); font-family: var(--font-body); font-size: var(--text-base); outline: none; resize: none; transition: border-color 0.25s, background 0.6s, box-shadow 0.25s, color 0.6s; } .form-input::placeholder { color: var(--text-muted); font-size: var(--text-sm); } .form-input:focus { border-color: var(--accent); background: var(--bg-glass); box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.08); } [data-theme='light'] .form-input:focus { border-color: var(--accent); background: rgba(99, 102, 241, 0.02); box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.06); } .form-textarea { min-height: 130px; line-height: 1.7; } .form-error { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: rgba(239, 68, 68, 0.06); border: 1px solid rgba(239, 68, 68, 0.2); color: #ef4444; font-size: var(--text-sm); border-radius: var(--radius-sm); font-weight: 500; } .form-submit { width: 100%; justify-content: center; padding: 16px; font-size: var(--text-sm); } .form-submit:disabled { opacity: 0.5; cursor: not-allowed; } /* ───────────────────────────────────────────────────────────── SECTION AURORA SEPARATOR ───────────────────────────────────────────────────────────── */ .section-aurora-sep { width: 100%; height: 1px; background: linear-gradient( 90deg, transparent 0%, rgba(99, 102, 241, 0.2) 15%, rgba(6, 182, 212, 0.35) 40%, rgba(16, 185, 129, 0.35) 60%, rgba(99, 102, 241, 0.2) 85%, transparent 100% ); opacity: 0.7; transition: background 0.6s ease, opacity 0.6s ease; } [data-theme='light'] .section-aurora-sep { background: linear-gradient( 90deg, transparent 0%, rgba(99, 102, 241, 0.12) 15%, rgba(6, 182, 212, 0.25) 40%, rgba(5, 150, 105, 0.25) 60%, rgba(99, 102, 241, 0.12) 85%, transparent 100% ); } /* ───────────────────────────────────────────────────────────── RESPONSIVE ───────────────────────────────────────────────────────────── */ @media (max-width: 1024px) { section { padding: 96px 0; } .container { padding: 0 24px; } } @media (max-width: 768px) { section { padding: 72px 0; } .container { padding: 0 18px; } .section-title { margin-bottom: 40px; font-size: clamp(26px, 6vw, 36px); } .back-to-top { bottom: 20px; right: 18px; width: 44px; height: 44px; font-size: 18px; } } @media (max-width: 480px) { section { padding: 56px 0; } .container { padding: 0 16px; } .section-title { margin-bottom: 32px; } .btn-primary, .btn-outline { padding: 12px 22px; font-size: var(--text-xs); } .glass-card { border-radius: var(--radius-md); } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } }