/* ========================================================================== DESIGN SYSTEM & CUSTOM PROPERTIES ========================================================================== */ :root { /* Color Palette */ --color-bg-dark: #07090e; --color-bg-card: rgba(14, 20, 35, 0.55); --color-bg-card-hover: rgba(20, 28, 48, 0.75); --color-text-primary: #f8fafc; --color-text-secondary: #94a3b8; --color-text-muted: #64748b; --color-cyan: #00f2fe; --color-blue: #4facfe; --color-purple: #c471ed; --color-pink: #f857a6; --gradient-primary: linear-gradient(135deg, var(--color-cyan) 0%, var(--color-blue) 100%); --gradient-accent: linear-gradient(135deg, var(--color-purple) 0%, var(--color-pink) 100%); --gradient-card-border: linear-gradient(135deg, rgba(0, 242, 254, 0.2) 0%, rgba(196, 113, 237, 0.1) 100%); /* Typography */ --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; --font-mono: 'Space Grotesk', var(--font-sans); /* Layout & Shadows */ --border-radius-sm: 8px; --border-radius-md: 16px; --border-radius-lg: 24px; --box-shadow-glow: 0 0 30px rgba(0, 242, 254, 0.15); --box-shadow-glow-alt: 0 0 30px rgba(196, 113, 237, 0.15); --backdrop-blur-val: 16px; /* Animations */ --transition-fast: 0.2s cubic-bezier(0.4, 0, 0.2, 1); --transition-normal: 0.4s cubic-bezier(0.4, 0, 0.2, 1); --transition-slow: 0.6s cubic-bezier(0.4, 0, 0.2, 1); } /* ========================================================================== BASE STYLES & RESET ========================================================================== */ * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; font-size: 16px; } body { background-color: var(--color-bg-dark); color: var(--color-text-primary); font-family: var(--font-sans); line-height: 1.6; overflow-x: hidden; position: relative; } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: var(--color-bg-dark); } ::-webkit-scrollbar-thumb { background: #1e293b; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--color-blue); box-shadow: 0 0 10px var(--color-blue); } /* Typography Overrides */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-mono); font-weight: 700; letter-spacing: -0.02em; line-height: 1.2; } a { color: inherit; text-decoration: none; transition: var(--transition-fast); } img { max-width: 100%; height: auto; } /* ========================================================================== BACKGROUND ORBS GLOW ========================================================================== */ .glow-bg-orb { position: absolute; border-radius: 50%; filter: blur(150px); z-index: -1; pointer-events: none; opacity: 0.35; } .orb-1 { top: 5%; right: -10%; width: 50vw; height: 50vw; background: radial-gradient(circle, rgba(0,242,254,0.4) 0%, rgba(79,172,254,0) 70%); animation: pulseOrb 20s infinite alternate; } .orb-2 { top: 40%; left: -15%; width: 60vw; height: 60vw; background: radial-gradient(circle, rgba(196,113,237,0.3) 0%, rgba(248,87,166,0) 70%); animation: pulseOrb 25s infinite alternate-reverse; } .orb-3 { bottom: 5%; right: -5%; width: 45vw; height: 45vw; background: radial-gradient(circle, rgba(0,242,254,0.3) 0%, rgba(196,113,237,0.1) 70%); } @keyframes pulseOrb { 0% { transform: scale(1) translate(0, 0); opacity: 0.3; } 50% { transform: scale(1.1) translate(3%, 5%); opacity: 0.45; } 100% { transform: scale(0.9) translate(-3%, -5%); opacity: 0.3; } } /* ========================================================================== REUSABLE UTILITIES & COMPONENTS ========================================================================== */ .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px; } .section-padding { padding: 100px 0; } /* Section Headers */ .section-header { margin-bottom: 60px; } .section-title { font-size: 2.5rem; margin-bottom: 16px; position: relative; display: inline-block; } .section-underline { height: 4px; width: 60px; background: var(--gradient-primary); margin: 0 auto 24px auto; border-radius: 2px; } .section-subtitle { font-size: 1.1rem; color: var(--color-text-secondary); max-width: 600px; margin: 0 auto; } .text-center { text-align: center; } /* Gradient & Glow Text */ .gradient-text { background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .text-glow { background-image: var(--gradient-primary); text-shadow: 0 0 40px rgba(0, 242, 254, 0.4); } .text-glow-alt { background-image: var(--gradient-accent); text-shadow: 0 0 40px rgba(196, 113, 237, 0.4); } /* Badges */ .badge { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 30px; font-size: 0.85rem; font-weight: 500; letter-spacing: 0.05em; text-transform: uppercase; } .hero-badge { background: rgba(0, 242, 254, 0.08); border: 1px solid rgba(0, 242, 254, 0.2); color: var(--color-cyan); margin-bottom: 24px; box-shadow: 0 0 15px rgba(0, 242, 254, 0.05); } .badge-icon { width: 14px; height: 14px; } /* Buttons */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 28px; border-radius: var(--border-radius-sm); font-weight: 600; cursor: pointer; transition: var(--transition-normal); position: relative; overflow: hidden; border: none; } .btn-primary { background: var(--gradient-primary); color: #000; box-shadow: var(--box-shadow-glow); } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 0 35px rgba(0, 242, 254, 0.4); } .btn-primary i { transition: transform var(--transition-fast); } .btn-primary:hover i { transform: translateX(4px); } .btn-secondary { background: rgba(255, 255, 255, 0.05); color: var(--color-text-primary); border: 1px solid rgba(255, 255, 255, 0.1); backdrop-filter: blur(8px); } .btn-secondary:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.2); transform: translateY(-2px); } .btn-block { width: 100%; } /* Cards (Glassmorphism Core) */ .card { background: var(--color-bg-card); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: var(--border-radius-md); backdrop-filter: blur(var(--backdrop-blur-val)); -webkit-backdrop-filter: blur(var(--backdrop-blur-val)); transition: var(--transition-normal); position: relative; overflow: hidden; } .card:hover { background: var(--color-bg-card-hover); border-color: rgba(255, 255, 255, 0.12); } /* ========================================================================== NAVIGATION BAR ========================================================================== */ .navbar { position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; background: rgba(7, 9, 14, 0.7); border-bottom: 1px solid rgba(255, 255, 255, 0.05); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); transition: var(--transition-normal); } .navbar.scrolled { padding: 12px 0; background: rgba(7, 9, 14, 0.85); border-color: rgba(0, 242, 254, 0.1); } .nav-container { display: flex; justify-content: space-between; align-items: center; height: 70px; max-width: 1200px; margin: 0 auto; padding: 0 24px; } .logo { font-family: var(--font-mono); font-size: 1.4rem; font-weight: 700; color: var(--color-text-primary); letter-spacing: -0.03em; display: flex; align-items: center; gap: 10px; } .logo-img { height: 32px; width: 32px; border-radius: 50%; object-fit: cover; border: 1.5px solid rgba(0, 242, 254, 0.5); box-shadow: 0 0 10px rgba(0, 242, 254, 0.3); } .logo-accent { color: var(--color-cyan); } .nav-toggle { display: none; background: none; border: none; color: var(--color-text-primary); font-size: 1.5rem; cursor: pointer; } .nav-menu ul { display: flex; gap: 32px; list-style: none; } .nav-link { font-size: 0.95rem; font-weight: 500; color: var(--color-text-secondary); position: relative; padding: 8px 0; } .nav-link:hover, .nav-link.active { color: var(--color-cyan); } .nav-link::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: var(--gradient-primary); transition: var(--transition-normal); } .nav-link:hover::after, .nav-link.active::after { width: 100%; } /* ========================================================================== HERO SECTION ========================================================================== */ .hero { min-height: 100vh; display: flex; align-items: center; padding-top: 100px; position: relative; } .hero-content { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; margin: 0 auto; max-width: 800px; gap: 20px; } .hero-text { z-index: 10; display: flex; flex-direction: column; align-items: center; } .hero-title { font-size: 3.8rem; font-weight: 800; line-height: 1.1; margin-bottom: 24px; } .hero-description { font-size: 1.15rem; color: var(--color-text-secondary); margin: 0 auto 40px auto; max-width: 680px; } .hero-actions { display: flex; gap: 16px; justify-content: center; } /* Mock IDE Graphic */ .hero-graphic-container { position: relative; width: 100%; max-width: 500px; margin: 0 auto; } .hero-card-glow { position: relative; border-radius: var(--border-radius-md); background: var(--gradient-primary); padding: 1px; box-shadow: var(--box-shadow-glow); animation: cardGlowFloat 6s ease-in-out infinite alternate; } @keyframes cardGlowFloat { 0% { transform: translateY(0); box-shadow: 0 0 30px rgba(0, 242, 254, 0.15); } 100% { transform: translateY(-12px); box-shadow: 0 15px 40px rgba(0, 242, 254, 0.3); } } .hero-card-inner { background: #0b0f19; border-radius: calc(var(--border-radius-md) - 1px); overflow: hidden; } .card-header { display: flex; align-items: center; justify-content: space-between; background: #0f1524; padding: 12px 18px; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } .card-dots { display: flex; gap: 6px; } .dot { width: 10px; height: 10px; border-radius: 50%; } .dot.red { background: #ff5f56; } .dot.yellow { background: #ffbd2e; } .dot.green { background: #27c93f; } .card-title-text { font-family: var(--font-mono); font-size: 0.8rem; color: var(--color-text-muted); } .card-body-code { padding: 24px; font-family: 'Consolas', 'Courier New', Courier, monospace; font-size: 0.85rem; line-height: 1.6; overflow-x: auto; } .code-keyword { color: #f857a6; } .code-class { color: #00f2fe; } .code-method { color: #4facfe; } .code-string { color: #a5f3fc; } .code-comment { color: #475569; } /* Scroll Down Indicator */ .scroll-down { position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); z-index: 10; } .mouse-icon { width: 26px; height: 42px; border: 2px solid var(--color-text-secondary); border-radius: 20px; display: flex; justify-content: center; padding-top: 8px; } .wheel { width: 4px; height: 8px; background: var(--color-cyan); border-radius: 2px; animation: scrollMouse 1.8s infinite; } @keyframes scrollMouse { 0% { transform: translateY(0); opacity: 1; } 50% { transform: translateY(6px); opacity: 0.3; } 100% { transform: translateY(0); opacity: 1; } } /* ========================================================================== ABOUT SECTION ========================================================================== */ .about-grid { display: grid; grid-template-columns: 1.3fr 0.7fr; gap: 40px; align-items: stretch; } .about-info-panel { padding: 40px; } .card-h3 { font-size: 1.8rem; margin-bottom: 20px; color: var(--color-text-primary); } .about-text { color: var(--color-text-secondary); margin-bottom: 24px; font-size: 1.05rem; } .tech-stack-container { margin-top: 32px; } .skills-h4 { font-size: 1.1rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-primary); margin-bottom: 16px; } .skills-grid { display: flex; flex-wrap: wrap; gap: 12px; } .skill-tag { display: inline-flex; align-items: center; gap: 8px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.06); padding: 8px 16px; border-radius: 30px; font-size: 0.9rem; font-weight: 500; transition: var(--transition-fast); } .skill-tag i { width: 14px; height: 14px; color: var(--color-cyan); } .skill-tag:hover { background: rgba(0, 242, 254, 0.05); border-color: rgba(0, 242, 254, 0.2); transform: translateY(-2px); } /* Stats Cards */ .about-stats-panel { display: flex; flex-direction: column; gap: 20px; } .stat-card { display: flex; align-items: center; gap: 20px; padding: 30px; } .stat-icon-wrapper { width: 60px; height: 60px; border-radius: var(--border-radius-sm); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; } .stat-icon-wrapper.cyan { background: rgba(0, 242, 254, 0.1); border: 1px solid rgba(0, 242, 254, 0.2); color: var(--color-cyan); } .stat-icon-wrapper.purple { background: rgba(196, 113, 237, 0.1); border: 1px solid rgba(196, 113, 237, 0.2); color: var(--color-purple); } .stat-icon-wrapper.blue { background: rgba(79, 172, 254, 0.1); border: 1px solid rgba(79, 172, 254, 0.2); color: var(--color-blue); } .stat-num { display: block; font-family: var(--font-mono); font-size: 1.6rem; font-weight: 700; color: var(--color-text-primary); } .stat-label { font-size: 0.9rem; color: var(--color-text-secondary); } /* ========================================================================== PROJECTS SECTION ========================================================================== */ .filter-controls { display: flex; justify-content: center; gap: 12px; margin-bottom: 50px; } .filter-btn { background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.06); color: var(--color-text-secondary); padding: 10px 24px; border-radius: 30px; cursor: pointer; font-family: var(--font-mono); font-size: 0.9rem; font-weight: 500; transition: var(--transition-fast); } .filter-btn:hover, .filter-btn.active { background: var(--gradient-primary); border-color: transparent; color: #000; box-shadow: 0 0 20px rgba(0, 242, 254, 0.2); } .projects-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 30px; } /* Interactive Project Cards with Border Mouse Tracking */ .project-card { padding: 36px; display: flex; flex-direction: column; height: 100%; } .project-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(800px circle at var(--mouse-x, 0px) var(--mouse-y, 0px), rgba(0, 242, 254, 0.08), transparent 40%); z-index: 1; pointer-events: none; opacity: 0; transition: opacity 0.5s; } .project-card:hover::before { opacity: 1; } .project-content { position: relative; z-index: 2; display: flex; flex-direction: column; height: 100%; } .project-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; } .project-icon-box { width: 48px; height: 48px; border-radius: var(--border-radius-sm); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; } .project-icon-box.cyan { background: rgba(0, 242, 254, 0.1); color: var(--color-cyan); } .project-icon-box.purple { background: rgba(196, 113, 237, 0.1); color: var(--color-purple); } .project-icon-box.blue { background: rgba(79, 172, 254, 0.1); color: var(--color-blue); } .project-icon-box.pink { background: rgba(248, 87, 166, 0.1); color: var(--color-pink); } .project-badge { font-size: 0.75rem; font-weight: 600; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.05em; } .project-title { font-size: 1.5rem; margin-bottom: 16px; transition: var(--transition-fast); } .project-card:hover .project-title { color: var(--color-cyan); } .project-desc { color: var(--color-text-secondary); font-size: 0.95rem; margin-bottom: 24px; flex-grow: 1; } .project-tech { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; } .project-tech span { font-size: 0.75rem; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.06); padding: 4px 10px; border-radius: 4px; color: var(--color-text-secondary); } .project-links { margin-top: auto; } .project-link { display: inline-flex; align-items: center; gap: 6px; font-size: 0.9rem; font-weight: 500; color: var(--color-text-primary); } .project-link:hover { color: var(--color-cyan); } .project-link.disabled { color: var(--color-text-muted); cursor: default; pointer-events: none; } .project-link i { width: 14px; height: 14px; } /* ========================================================================== EXPERIENCE SECTION & TIMELINE ========================================================================== */ .timeline { position: relative; max-width: 800px; margin: 40px auto 0 auto; padding: 20px 0; } /* Timeline Vertical Line */ .timeline::before { content: ''; position: absolute; top: 0; left: 31px; width: 2px; height: 100%; background: linear-gradient(to bottom, var(--color-cyan), var(--color-purple), transparent); } .timeline-item { position: relative; margin-bottom: 40px; padding-left: 80px; } .timeline-item:last-child { margin-bottom: 0; } /* Dot on timeline line */ .timeline-dot { position: absolute; left: 20px; top: 24px; width: 24px; height: 24px; border-radius: 50%; background: #07090e; border: 3px solid var(--color-cyan); box-shadow: 0 0 10px var(--color-cyan); z-index: 2; transition: var(--transition-normal); } .timeline-item:nth-child(even) .timeline-dot { border-color: var(--color-purple); box-shadow: 0 0 10px var(--color-purple); } .timeline-item:hover .timeline-dot { transform: scale(1.2); } .timeline-date { font-family: var(--font-mono); font-size: 0.9rem; font-weight: 600; color: var(--color-cyan); margin-bottom: 8px; } .timeline-item:nth-child(even) .timeline-date { color: var(--color-purple); } .timeline-content { padding: 30px; } .timeline-title { font-size: 1.4rem; margin-bottom: 6px; } .timeline-subtitle { font-size: 0.95rem; color: var(--color-text-secondary); margin-bottom: 16px; font-weight: 500; } .timeline-desc { color: var(--color-text-secondary); font-size: 0.95rem; } /* ========================================================================== CERTIFICATIONS SECTION ========================================================================== */ .cert-filter-controls { display: flex; justify-content: center; gap: 12px; margin-bottom: 50px; flex-wrap: wrap; } .cert-filter-btn { background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.06); color: var(--color-text-secondary); padding: 10px 24px; border-radius: 30px; cursor: pointer; font-family: var(--font-mono); font-size: 0.9rem; font-weight: 500; transition: var(--transition-fast); } .cert-filter-btn:hover, .cert-filter-btn.active { background: var(--gradient-primary); border-color: transparent; color: #000; box-shadow: 0 0 20px rgba(0, 242, 254, 0.2); } .certs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; } .cert-card { padding: 28px; display: flex; flex-direction: column; height: 100%; } .cert-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(600px circle at var(--mouse-x, 0px) var(--mouse-y, 0px), rgba(0, 242, 254, 0.06), transparent 40%); z-index: 1; pointer-events: none; opacity: 0; transition: opacity 0.5s; } .cert-card:hover::before { opacity: 1; } .cert-content { position: relative; z-index: 2; display: flex; flex-direction: column; height: 100%; } .cert-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .cert-icon-wrapper { width: 44px; height: 44px; border-radius: var(--border-radius-sm); display: flex; align-items: center; justify-content: center; font-size: 1.15rem; } .cert-icon-wrapper.cyan { background: rgba(0, 242, 254, 0.1); border: 1px solid rgba(0, 242, 254, 0.2); color: var(--color-cyan); } .cert-icon-wrapper.purple { background: rgba(196, 113, 237, 0.1); border: 1px solid rgba(196, 113, 237, 0.2); color: var(--color-purple); } .cert-icon-wrapper.blue { background: rgba(79, 172, 254, 0.1); border: 1px solid rgba(79, 172, 254, 0.2); color: var(--color-blue); } .cert-icon-wrapper.pink { background: rgba(248, 87, 166, 0.1); border: 1px solid rgba(248, 87, 166, 0.2); color: var(--color-pink); } .cert-icon-wrapper i { width: 18px; height: 18px; } .cert-date { font-family: var(--font-mono); font-size: 0.8rem; font-weight: 600; color: var(--color-text-muted); } .cert-title { font-size: 1.2rem; margin-bottom: 8px; line-height: 1.3; transition: var(--transition-fast); } .cert-card:hover .cert-title { color: var(--color-cyan); } .cert-issuer { color: var(--color-text-secondary); font-size: 0.9rem; font-weight: 500; margin-bottom: 6px; } .cert-meta { color: var(--color-text-muted); font-size: 0.8rem; margin-bottom: 20px; flex-grow: 1; } .cert-links { margin-top: auto; } .cert-link-btn { display: inline-flex; align-items: center; gap: 6px; font-size: 0.85rem; font-weight: 600; color: var(--color-text-primary); background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08); padding: 8px 16px; border-radius: var(--border-radius-sm); transition: var(--transition-fast); } .cert-link-btn:hover { background: rgba(0, 242, 254, 0.08); border-color: rgba(0, 242, 254, 0.2); color: var(--color-cyan); transform: translateY(-2px); } .cert-link-btn i { width: 12px; height: 12px; } .cert-meta-badge { display: inline-block; font-size: 0.75rem; font-weight: 600; color: var(--color-text-muted); background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.06); padding: 4px 10px; border-radius: 4px; text-transform: uppercase; letter-spacing: 0.05em; } /* ========================================================================== CONTACT SECTION ========================================================================== */ .contact-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 40px; } .contact-info { padding: 40px; } .contact-desc-text { color: var(--color-text-secondary); margin-bottom: 36px; font-size: 1.05rem; } .info-list { display: flex; flex-direction: column; gap: 24px; margin-bottom: 40px; } .info-item { display: flex; align-items: center; gap: 16px; } .info-icon { width: 46px; height: 46px; border-radius: var(--border-radius-sm); background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.06); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; color: var(--color-cyan); } .info-label { display: block; font-size: 0.8rem; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.05em; } .info-value { font-size: 1rem; font-weight: 500; color: var(--color-text-primary); } a.info-value:hover { color: var(--color-cyan); } .social-links { display: flex; gap: 12px; } .social-link { width: 44px; height: 44px; border-radius: var(--border-radius-sm); background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.06); display: flex; align-items: center; justify-content: center; transition: var(--transition-fast); } .social-link i { width: 18px; height: 18px; } .social-link:hover { background: rgba(0, 242, 254, 0.08); border-color: rgba(0, 242, 254, 0.2); color: var(--color-cyan); transform: translateY(-3px); } /* Contact Form */ .contact-form-container { padding: 40px; } .contact-form { display: flex; flex-direction: column; gap: 20px; } .form-group-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; } .form-group { display: flex; flex-direction: column; gap: 8px; } .form-group label { font-size: 0.85rem; font-weight: 500; color: var(--color-text-secondary); } .form-group input, .form-group textarea { background: rgba(255, 255, 255, 0.02); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: var(--border-radius-sm); padding: 12px 16px; color: var(--color-text-primary); font-family: var(--font-sans); font-size: 0.95rem; transition: var(--transition-fast); } .form-group input:focus, .form-group textarea:focus { outline: none; border-color: var(--color-cyan); background: rgba(255, 255, 255, 0.04); box-shadow: 0 0 15px rgba(0, 242, 254, 0.1); } .form-feedback { margin-top: 16px; padding: 12px 16px; border-radius: var(--border-radius-sm); font-size: 0.9rem; font-weight: 500; } .form-feedback.success { background: rgba(16, 185, 129, 0.1); border: 1px solid rgba(16, 185, 129, 0.2); color: #34d399; } .form-feedback.error { background: rgba(239, 68, 68, 0.1); border: 1px solid rgba(239, 68, 68, 0.2); color: #f87171; } .hidden { display: none; } /* ========================================================================== FOOTER ========================================================================== */ .footer { border-top: 1px solid rgba(255, 255, 255, 0.05); padding: 40px 0; background: rgba(5, 7, 10, 0.8); position: relative; z-index: 10; } .footer-content { display: flex; justify-content: space-between; align-items: center; color: var(--color-text-muted); font-size: 0.9rem; } .footer-link:hover { color: var(--color-cyan); } /* ========================================================================== SCROLL ANIMATIONS (INTERSECTION OBSERVER CLASS) ========================================================================== */ .reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease, transform 0.8s ease; } .reveal.active { opacity: 1; transform: translateY(0); } /* ========================================================================== RESPONSIVE MEDIA QUERIES ========================================================================== */ @media (max-width: 992px) { html { font-size: 15px; } .hero-content { grid-template-columns: 1fr; gap: 40px; text-align: center; } .hero-description { margin: 0 auto 30px auto; } .hero-actions { justify-content: center; } .hero-graphic-container { max-width: 440px; } .about-grid { grid-template-columns: 1fr; } .contact-grid { grid-template-columns: 1fr; } } @media (max-width: 900px) { .section-padding { padding: 70px 0; } .section-title { font-size: 2rem; } /* Navigation Hamburger Menu */ .nav-toggle { display: block; } .nav-menu { position: fixed; top: 70px; left: -100%; width: 100%; height: calc(100vh - 70px); background: rgba(7, 9, 14, 0.95); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); padding: 40px 24px; transition: var(--transition-normal); border-top: 1px solid rgba(255, 255, 255, 0.05); } .nav-menu.open { left: 0; } .nav-menu ul { flex-direction: column; gap: 24px; align-items: center; } .nav-link { font-size: 1.2rem; } /* Timeline adjustments */ .timeline::before { left: 15px; } .timeline-dot { left: 4px; } .timeline-item { padding-left: 40px; } .form-group-row { grid-template-columns: 1fr; gap: 20px; } .footer-content { flex-direction: column; gap: 16px; text-align: center; } } /* ========================================================================== SCROLL TO TOP BUTTON ========================================================================== */ .scroll-top-btn { position: fixed; bottom: 30px; right: 30px; width: 48px; height: 48px; border-radius: 50%; background: rgba(14, 20, 35, 0.7); border: 1px solid rgba(0, 242, 254, 0.2); color: var(--color-cyan); display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 999; opacity: 0; visibility: hidden; transform: translateY(15px); transition: opacity var(--transition-fast), transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: 0 0 15px rgba(0, 242, 254, 0.05); } .scroll-top-btn:hover { background: rgba(0, 242, 254, 0.1); border-color: var(--color-cyan); transform: translateY(-2px) scale(1.05); box-shadow: 0 0 25px rgba(0, 242, 254, 0.25); color: #fff; } .scroll-top-btn.visible { opacity: 1; visibility: visible; transform: translateY(0); } .scroll-top-btn i { width: 20px; height: 20px; transition: transform var(--transition-fast); } .scroll-top-btn:hover i { transform: translateY(-2px); } /* ========================================================================== BIOGRAPHY DETAIL PAGE ========================================================================== */ .about-detail-grid { display: grid; grid-template-columns: 320px 1fr; gap: 40px; align-items: start; } .profile-sidebar-card { position: sticky; top: 100px; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 40px 24px; } .sidebar-avatar-wrapper { margin-bottom: 24px; } .sidebar-avatar { width: 100px; height: 100px; border-radius: 50%; background: rgba(0, 242, 254, 0.05); border: 2px solid rgba(0, 242, 254, 0.3); display: flex; align-items: center; justify-content: center; box-shadow: 0 0 20px rgba(0, 242, 254, 0.1); transition: transform var(--transition-medium), border-color var(--transition-fast), box-shadow var(--transition-fast); } .profile-sidebar-card:hover .sidebar-avatar { transform: scale(1.05); border-color: var(--color-cyan); box-shadow: 0 0 30px rgba(0, 242, 254, 0.3); } .sidebar-avatar .avatar-icon { width: 44px; height: 44px; color: var(--color-cyan); } .sidebar-name { font-size: 1.5rem; font-weight: 700; color: #fff; margin-bottom: 8px; font-family: 'Space Grotesk', sans-serif; } .sidebar-title-label { font-size: 0.95rem; color: var(--color-text-secondary); margin-bottom: 20px; } .sidebar-divider { width: 100%; height: 1px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent); margin: 20px 0; } .sidebar-stats { width: 100%; display: flex; flex-direction: column; gap: 16px; } .sidebar-stat-item { display: flex; justify-content: space-between; font-size: 0.9rem; } .sidebar-stat-item .stat-lbl { color: var(--color-text-secondary); display: flex; align-items: center; gap: 8px; } .sidebar-stat-item .stat-lbl i { width: 16px; height: 16px; color: var(--color-cyan); } .sidebar-stat-item .stat-val { color: #fff; font-weight: 500; } .sidebar-socials { display: flex; gap: 16px; justify-content: center; } .sidebar-social-link { color: var(--color-text-secondary); transition: color var(--transition-fast), transform var(--transition-fast); } .sidebar-social-link:hover { color: var(--color-cyan); transform: translateY(-2px); } .bio-content-container { display: flex; flex-direction: column; gap: 30px; } .bio-tabs { display: flex; gap: 12px; border-bottom: 1px solid rgba(255, 255, 255, 0.05); padding-bottom: 16px; } .bio-tab-btn { background: transparent; border: 1px solid rgba(255, 255, 255, 0.1); color: var(--color-text-secondary); padding: 10px 20px; border-radius: 30px; font-weight: 500; cursor: pointer; transition: all var(--transition-fast); font-family: 'Space Grotesk', sans-serif; } .bio-tab-btn:hover { border-color: rgba(0, 242, 254, 0.4); color: var(--color-cyan); } .bio-tab-btn.active { background: rgba(0, 242, 254, 0.08); border-color: var(--color-cyan); color: var(--color-cyan); box-shadow: 0 0 15px rgba(0, 242, 254, 0.15); } .bio-content-pane { display: none; animation: fadeIn 0.4s ease forwards; } .bio-content-pane.active { display: block; } .bio-article { color: var(--color-text-secondary); line-height: 1.8; } .bio-article h1 { font-family: 'Space Grotesk', sans-serif; font-size: 2.5rem; font-weight: 700; color: #fff; margin-bottom: 16px; line-height: 1.2; } .bio-article h2 { font-family: 'Space Grotesk', sans-serif; font-size: 1.6rem; font-weight: 600; color: #fff; margin: 40px 0 20px 0; position: relative; padding-left: 16px; } .bio-article h2::before { content: ''; position: absolute; left: 0; top: 4px; bottom: 4px; width: 4px; background: var(--color-cyan); border-radius: 2px; box-shadow: 0 0 8px var(--color-cyan); } .bio-article p { margin-bottom: 20px; } .bio-article p strong { color: #fff; } .bio-article ul { margin: 20px 0 30px 24px; display: flex; flex-direction: column; gap: 12px; list-style-type: disc; } .bio-article li { position: relative; padding-left: 4px; } .bio-article li strong { color: #fff; } .bio-article .lead-text { font-size: 1.15rem; color: #fff; line-height: 1.7; background: rgba(0, 242, 254, 0.02); border: 1px solid rgba(0, 242, 254, 0.1); border-left: 4px solid var(--color-purple); padding: 24px; border-radius: 0 12px 12px 0; margin-bottom: 40px; box-shadow: 0 0 20px rgba(0, 242, 254, 0.02); } @media (max-width: 992px) { .about-detail-grid { grid-template-columns: 1fr; gap: 40px; } .profile-sidebar-card { position: relative; top: 0; max-width: 400px; margin: 0 auto; } } /* ========================================================================== VITASHIELD VERIFICATION WIDGET ========================================================================== */ .vitashield-group { margin-top: 24px; margin-bottom: 24px; } .vitashield-card { background: rgba(255, 255, 255, 0.02); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: var(--border-radius-md); padding: 18px 24px; position: relative; overflow: hidden; transition: var(--transition-normal); } .vitashield-card::before { content: ''; position: absolute; top: 0; left: 0; width: 3px; height: 100%; background: var(--color-purple); transition: var(--transition-fast); } .vitashield-card.verified::before { background: var(--color-cyan); } .vs-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; } .vs-logo-title { display: flex; align-items: center; gap: 8px; color: #fff; font-weight: 600; font-size: 1rem; } .vs-logo-icon { width: 18px; height: 18px; color: var(--color-purple); transition: var(--transition-fast); } .vitashield-card.verified .vs-logo-icon { color: var(--color-cyan); } .vs-badge { font-size: 0.7rem; font-family: var(--font-mono); padding: 2px 6px; border-radius: 4px; background: rgba(168, 85, 247, 0.1); color: var(--color-purple); border: 1px solid rgba(168, 85, 247, 0.2); } .vitashield-card.verified .vs-badge { background: rgba(0, 242, 254, 0.1); color: var(--color-cyan); border: 1px solid rgba(0, 242, 254, 0.2); } .vs-status { font-size: 0.85rem; color: var(--color-text-secondary); display: flex; align-items: center; gap: 6px; font-family: var(--font-mono); } .vs-status-dot { width: 8px; height: 8px; border-radius: 50%; background: #ff5f56; display: inline-block; } .vs-status-dot.pulse { background: #ffbd2e; animation: vsDotPulse 1.5s infinite ease-in-out; } .vitashield-card.verified .vs-status-dot { background: #27c93f; box-shadow: 0 0 8px rgba(39, 201, 63, 0.8); } .vs-body { display: flex; flex-direction: column; gap: 8px; } .vs-hint { font-size: 0.85rem; color: var(--color-text-secondary); margin: 0; line-height: 1.4; } .vs-progress-bar { width: 100%; height: 6px; background: rgba(255, 255, 255, 0.05); border-radius: 3px; overflow: hidden; position: relative; } .vs-progress { height: 100%; background: var(--gradient-primary); border-radius: 3px; transition: width 0.1s ease-out; } @keyframes vsDotPulse { 0% { opacity: 0.4; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 6px rgba(255, 189, 46, 0.5); } 100% { opacity: 0.4; transform: scale(0.9); } } /* ========================================================================== VYNALTH AI — PREMIUM UI LAYER A quieter, editorial system for the personal brand portfolio. ========================================================================== */ :root { --color-bg-dark: #05070c; --color-bg-card: rgba(12, 17, 28, 0.72); --color-bg-card-hover: rgba(18, 26, 42, 0.88); --color-text-primary: #f5f7fb; --color-text-secondary: #a4afc2; --color-text-muted: #66748a; --color-cyan: #70e7ff; --color-blue: #6b8cff; --color-purple: #b58cff; --color-pink: #ff76c8; --gradient-primary: linear-gradient(135deg, #70e7ff 0%, #6b8cff 100%); --gradient-accent: linear-gradient(135deg, #b58cff 0%, #ff76c8 100%); --border-radius-sm: 10px; --border-radius-md: 18px; --border-radius-lg: 28px; --transition-fast: 180ms cubic-bezier(0.23, 1, 0.32, 1); --transition-normal: 280ms cubic-bezier(0.23, 1, 0.32, 1); --transition-slow: 520ms cubic-bezier(0.23, 1, 0.32, 1); } html { scroll-padding-top: 88px; } body { background: radial-gradient(900px 520px at 85% -10%, rgba(107, 140, 255, 0.15), transparent 68%), radial-gradient(720px 540px at -10% 32%, rgba(181, 140, 255, 0.10), transparent 70%), #05070c; } body::before { content: ''; position: fixed; inset: 0; pointer-events: none; z-index: -2; opacity: 0.22; background-image: linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(to bottom, rgba(0,0,0,0.55), transparent 76%); } body::after { content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 20; opacity: 0.035; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.36'/%3E%3C/svg%3E"); } .container { max-width: 1280px; padding-left: 28px; padding-right: 28px; } .section-padding { padding: 132px 0; } .section-header { margin-bottom: 64px; } .section-title { font-size: clamp(2.25rem, 4vw, 3.6rem); letter-spacing: -0.055em; } .section-subtitle { max-width: 660px; font-size: 1.02rem; line-height: 1.8; } .section-underline { height: 3px; width: 70px; margin-top: 18px; background: var(--gradient-primary); box-shadow: 0 0 20px rgba(112,231,255,0.32); } .card { border-color: rgba(255, 255, 255, 0.09); border-radius: var(--border-radius-md); background: linear-gradient(145deg, rgba(19, 27, 43, 0.72), rgba(8, 12, 20, 0.72)); box-shadow: 0 20px 80px rgba(0, 0, 0, 0.18), inset 0 1px 0 rgba(255,255,255,0.045); } .card:hover { border-color: rgba(112, 231, 255, 0.22); box-shadow: 0 26px 90px rgba(0,0,0,0.28), 0 0 36px rgba(112,231,255,0.06); } .navbar { padding: 10px 0; background: rgba(5, 7, 12, 0.62); border-bottom-color: rgba(255,255,255,0.08); } .navbar.scrolled { padding: 6px 0; background: rgba(5, 7, 12, 0.88); border-bottom-color: rgba(112,231,255,0.16); box-shadow: 0 12px 40px rgba(0,0,0,0.22); } .nav-container { max-width: 1280px; height: 64px; } .logo { font-size: 1.2rem; letter-spacing: -0.045em; } .logo-img { width: 30px; height: 30px; border-color: rgba(112,231,255,0.7); box-shadow: 0 0 20px rgba(112,231,255,0.22); } .nav-menu ul { gap: 30px; } .nav-link { font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; } .nav-link::after { height: 1px; } .hero { min-height: min(960px, 100vh); padding-top: 126px; padding-bottom: 90px; } .hero-content { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(370px, 0.86fr); align-items: center; max-width: 1280px; gap: clamp(42px, 7vw, 110px); text-align: left; } .hero-text { align-items: flex-start; max-width: 700px; } .hero-badge { margin-bottom: 30px; padding: 8px 13px; color: var(--color-cyan); background: rgba(112,231,255,0.06); border-color: rgba(112,231,255,0.22); font-size: 0.68rem; letter-spacing: 0.14em; box-shadow: inset 0 0 20px rgba(112,231,255,0.04), 0 0 25px rgba(112,231,255,0.08); } .hero-title { max-width: 720px; margin-bottom: 28px; font-size: clamp(3.25rem, 6.4vw, 6.3rem); letter-spacing: -0.075em; line-height: 0.98; } .hero-description { max-width: 590px; margin: 0 0 36px; color: #aeb9ca; font-size: 1.04rem; line-height: 1.8; } .hero-actions { justify-content: flex-start; gap: 12px; } .btn { min-height: 50px; padding: 14px 21px; border-radius: 11px; font-size: 0.88rem; letter-spacing: 0.02em; } .btn:active { transform: scale(0.97); } .btn-primary { color: #071019; box-shadow: 0 12px 34px rgba(112,231,255,0.16); } .btn-primary:hover { box-shadow: 0 16px 42px rgba(112,231,255,0.3); } .btn-secondary { background: rgba(255,255,255,0.035); border-color: rgba(255,255,255,0.12); } .hero-visual { position: relative; min-height: 520px; display: grid; place-items: center; isolation: isolate; } .hero-visual::before { content: ''; position: absolute; width: min(520px, 94%); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(112,231,255,0.16), rgba(107,140,255,0.06) 35%, transparent 68%); filter: blur(8px); z-index: -2; } .hero-visual::after { content: 'VYNALTH / 2026'; position: absolute; top: 4%; right: 4%; color: rgba(164,175,194,0.45); font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.16em; writing-mode: vertical-rl; } .hero-visual-orbit { position: absolute; border: 1px solid rgba(112,231,255,0.16); border-radius: 50%; transform: rotate(-24deg); pointer-events: none; } .orbit-a { width: 84%; height: 35%; border-left-color: transparent; border-right-color: rgba(181,140,255,0.25); } .orbit-b { width: 70%; height: 70%; border-top-color: transparent; border-bottom-color: rgba(112,231,255,0.25); transform: rotate(42deg); } .system-card { width: min(100%, 485px); padding: 25px; border-radius: 22px; border-color: rgba(112,231,255,0.21); background: linear-gradient(145deg, rgba(16, 27, 43, 0.92), rgba(7, 12, 21, 0.88)); box-shadow: 0 40px 100px rgba(0,0,0,0.38), 0 0 70px rgba(112,231,255,0.1); transform: rotate(2deg); } .system-card::before { content: ''; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(112,231,255,0.08), transparent 32%, rgba(181,140,255,0.07)); pointer-events: none; } .system-card-topline, .system-metrics, .system-card-main { position: relative; z-index: 1; } .system-card-topline { display: flex; justify-content: space-between; align-items: center; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,0.08); } .eyebrow, .system-code, .readout-label, .readout-meta, .system-metrics span { font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.16em; color: var(--color-text-muted); } .eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--color-cyan); } .status-pulse, .note-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--color-cyan); box-shadow: 0 0 12px var(--color-cyan); } .system-code { color: rgba(164,175,194,0.6); } .system-card-main { display: flex; align-items: center; gap: 22px; padding: 34px 4px 28px; } .system-ring { display: grid; place-items: center; width: 126px; height: 126px; flex: 0 0 126px; border: 1px solid rgba(112,231,255,0.34); border-radius: 50%; background: radial-gradient(circle, rgba(112,231,255,0.09) 0 27%, transparent 28%), conic-gradient(from 10deg, var(--color-cyan), transparent 23%, var(--color-purple) 48%, transparent 75%, var(--color-cyan)); box-shadow: 0 0 30px rgba(112,231,255,0.12), inset 0 0 25px rgba(112,231,255,0.09); animation: ringSpin 16s linear infinite; } .system-ring-core { display: grid; place-items: center; width: 82px; height: 82px; border: 1px solid rgba(255,255,255,0.16); border-radius: 50%; background: #0a111d; color: var(--color-cyan); box-shadow: inset 0 0 24px rgba(112,231,255,0.13); animation: ringSpinReverse 16s linear infinite; } .system-ring-core svg { width: 32px; height: 32px; } .system-readout { display: flex; flex-direction: column; gap: 10px; } .system-readout strong { max-width: 210px; font-size: 1.32rem; line-height: 1.15; letter-spacing: -0.04em; } .readout-label { color: var(--color-cyan); } .readout-meta { color: rgba(181,140,255,0.78); } .system-wave { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; height: 58px; padding: 0 3px; border-top: 1px solid rgba(255,255,255,0.08); border-bottom: 1px solid rgba(255,255,255,0.08); } .system-wave span { width: 5px; height: 18px; border-radius: 99px; background: var(--gradient-primary); opacity: 0.75; animation: wavePulse 1.7s ease-in-out infinite alternate; } .system-wave span:nth-child(2n) { height: 32px; animation-delay: -0.4s; } .system-wave span:nth-child(3n) { height: 44px; animation-delay: -0.8s; background: var(--gradient-accent); } .system-wave span:nth-child(4n) { height: 25px; animation-delay: -1.1s; } .system-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding-top: 20px; } .system-metrics div { display: flex; flex-direction: column; gap: 7px; } .system-metrics strong { font-family: var(--font-mono); font-size: 0.76rem; letter-spacing: 0.08em; color: #e4eaf5; } .hero-float-note { position: absolute; display: flex; align-items: center; gap: 9px; padding: 10px 13px; border: 1px solid rgba(255,255,255,0.11); border-radius: 10px; background: rgba(8,13,23,0.72); backdrop-filter: blur(14px); color: #b5bfd0; font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.03em; box-shadow: 0 14px 35px rgba(0,0,0,0.22); } .note-top { top: 18%; left: 0; animation: noteFloat 5.5s ease-in-out infinite; } .note-bottom { right: -2%; bottom: 16%; animation: noteFloat 6.5s ease-in-out -1.4s infinite; } .note-dot.purple { background: var(--color-purple); box-shadow: 0 0 12px var(--color-purple); } .about-grid { gap: 52px; } .about-info-panel { padding: 46px; } .about-text { font-size: 1rem; line-height: 1.85; } .skill-tag { padding: 9px 13px; background: rgba(255,255,255,0.025); border-color: rgba(255,255,255,0.09); font-size: 0.78rem; } .stat-card { padding: 25px; border-radius: 16px; } .stat-icon-wrapper { width: 48px; height: 48px; border-radius: 13px; } .stat-num { font-size: 1.35rem; } .filter-controls { justify-content: flex-start; margin-bottom: 38px; } .filter-btn, .cert-filter-btn { padding: 10px 17px; border-radius: 10px; background: rgba(255,255,255,0.025); border-color: rgba(255,255,255,0.10); font-size: 0.76rem; letter-spacing: 0.04em; } .filter-btn:hover, .filter-btn.active, .cert-filter-btn:hover, .cert-filter-btn.active { color: #071019; box-shadow: 0 8px 25px rgba(112,231,255,0.18); } .projects-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; } .project-card { padding: 30px; border-radius: 18px; min-height: 350px; } .project-card:first-child { grid-column: span 2; min-height: 380px; } .project-card::after { content: ''; position: absolute; top: 0; left: 30px; right: 30px; height: 1px; background: linear-gradient(90deg, transparent, rgba(112,231,255,0.45), transparent); opacity: 0.65; } .project-icon-box { width: 44px; height: 44px; border-radius: 13px; } .project-badge { padding: 6px 9px; border: 1px solid rgba(255,255,255,0.09); border-radius: 99px; font-size: 0.62rem; letter-spacing: 0.11em; } .project-title { font-size: 1.35rem; letter-spacing: -0.04em; } .project-desc { font-size: 0.91rem; line-height: 1.75; } .project-tech { gap: 6px; } .project-tech span { padding: 5px 8px; border-radius: 6px; font-size: 0.65rem; background: rgba(255,255,255,0.035); } .project-link { font-size: 0.78rem; letter-spacing: 0.05em; text-transform: uppercase; } .timeline { max-width: 920px; } .timeline::before { left: 22px; background: linear-gradient(to bottom, rgba(112,231,255,0.8), rgba(181,140,255,0.62), transparent); } .timeline-item { padding-left: 68px; } .timeline-dot { left: 11px; width: 24px; height: 24px; border-width: 2px; background: #070b12; } .timeline-content { padding: 28px; border-radius: 16px; } .timeline-title { font-size: 1.25rem; } .timeline-desc { line-height: 1.75; } .contact-grid { gap: 18px; } .contact-info, .contact-form-container { padding: 34px; border-radius: 18px; } .info-item { padding: 12px 0; } .info-icon { width: 42px; height: 42px; border-radius: 12px; } .social-links { gap: 8px; } .social-link { width: 40px; height: 40px; border-radius: 11px; } .form-group input, .form-group textarea, .form-group select { border-radius: 10px; border-color: rgba(255,255,255,0.10); background: rgba(255,255,255,0.035); transition: var(--transition-fast); } .form-group input:focus, .form-group textarea:focus, .form-group select:focus { border-color: rgba(112,231,255,0.65); box-shadow: 0 0 0 3px rgba(112,231,255,0.10), 0 0 24px rgba(112,231,255,0.08); outline: none; } button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid var(--color-cyan); outline-offset: 4px; } @keyframes ringSpin { to { transform: rotate(360deg); } } @keyframes ringSpinReverse { to { transform: rotate(-360deg); } } @keyframes wavePulse { from { transform: scaleY(0.55); opacity: 0.45; } to { transform: scaleY(1); opacity: 0.95; } } @keyframes noteFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } } @media (max-width: 1040px) { .hero-content { grid-template-columns: minmax(0, 1fr) minmax(320px, 0.82fr); gap: 38px; } .hero-title { font-size: clamp(3.05rem, 6vw, 5rem); } .projects-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .project-card:first-child { grid-column: span 2; } } @media (max-width: 820px) { .container { padding-left: 20px; padding-right: 20px; } .section-padding { padding: 92px 0; } .hero { min-height: auto; padding-top: 124px; } .hero-content { display: flex; flex-direction: column; align-items: stretch; text-align: left; gap: 42px; } .hero-text { align-items: flex-start; max-width: 680px; } .hero-visual { min-height: 450px; } .hero-visual::after { right: 1%; } .about-grid, .contact-grid { grid-template-columns: 1fr; } .about-stats-panel { display: grid; grid-template-columns: repeat(3, 1fr); } .stat-card { flex-direction: column; align-items: flex-start; gap: 13px; } .stat-num { font-size: 1.08rem; } .stat-label { font-size: 0.78rem; } .nav-menu ul { gap: 20px; } } @media (max-width: 620px) { .section-title { font-size: 2.25rem; } .section-header { margin-bottom: 42px; } .hero-title { font-size: clamp(2.85rem, 14vw, 4.4rem); } .hero-description { font-size: 0.95rem; } .hero-actions { flex-wrap: wrap; } .hero-actions .btn { flex: 1 1 170px; } .hero-visual { min-height: 390px; } .system-card { padding: 18px; transform: none; } .system-card-main { gap: 14px; padding: 25px 0 22px; } .system-ring { width: 94px; height: 94px; flex-basis: 94px; } .system-ring-core { width: 62px; height: 62px; } .system-ring-core svg { width: 25px; height: 25px; } .system-readout strong { font-size: 1.02rem; } .note-top { top: 5%; left: -1%; } .note-bottom { right: -1%; bottom: 5%; } .hero-float-note { padding: 8px 10px; font-size: 0.57rem; } .about-info-panel, .contact-info, .contact-form-container { padding: 25px 20px; } .about-stats-panel { grid-template-columns: 1fr; } .stat-card { flex-direction: row; align-items: center; } .filter-controls { overflow-x: auto; justify-content: flex-start; padding-bottom: 5px; scrollbar-width: none; } .filter-controls::-webkit-scrollbar { display: none; } .projects-grid { grid-template-columns: 1fr; } .project-card, .project-card:first-child { grid-column: auto; min-height: 0; } .project-card { padding: 25px; } .form-group-row { grid-template-columns: 1fr; gap: 20px; } .timeline-item { padding-left: 54px; } .timeline::before { left: 16px; } .timeline-dot { left: 5px; } .nav-container { height: 58px; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.001ms !important; } } /* ========================================================================== ACHIEVEMENT TIMELINE — EDITORIAL EVIDENCE CARDS ========================================================================== */ .timeline { max-width: 1080px; } .timeline-item { margin-bottom: 28px; } .timeline-item-featured .timeline-content { border-color: rgba(112,231,255,0.18); background: linear-gradient(135deg, rgba(16,29,46,0.88), rgba(10,14,25,0.82)); } .timeline-content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 0.72fr); align-items: stretch; gap: 28px; } .timeline-copy { min-width: 0; } .timeline-kicker { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 15px; color: var(--color-cyan); font-family: var(--font-mono); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.13em; text-transform: uppercase; } .timeline-kicker svg { width: 14px; height: 14px; } .timeline-media { align-self: stretch; display: flex; flex-direction: column; min-width: 0; margin: 0; overflow: hidden; border: 1px solid rgba(255,255,255,0.10); border-radius: 13px; background: rgba(0,0,0,0.22); } .timeline-media img { display: block; width: 100%; height: 100%; min-height: 190px; object-fit: cover; transition: transform var(--transition-slow), filter var(--transition-slow); } .timeline-media-wide img { min-height: 230px; } .timeline-media:hover img { transform: scale(1.035); filter: saturate(1.08) contrast(1.03); } .timeline-media figcaption { padding: 10px 12px; color: rgba(196,207,222,0.72); font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.04em; line-height: 1.45; } .timeline-content:hover .timeline-media { border-color: rgba(112,231,255,0.26); } .achievement-stats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 21px; } .achievement-stats span { display: flex; flex-direction: column; gap: 4px; min-width: 82px; padding: 10px 12px; border: 1px solid rgba(112,231,255,0.14); border-radius: 10px; background: rgba(112,231,255,0.045); } .achievement-stats strong { color: #f5f7fb; font-family: var(--font-mono); font-size: 0.95rem; letter-spacing: -0.02em; } .achievement-stats small { color: var(--color-text-muted); font-family: var(--font-mono); font-size: 0.58rem; letter-spacing: 0.07em; text-transform: uppercase; } .achievement-stats-single span { border-color: rgba(181,140,255,0.20); background: rgba(181,140,255,0.06); } .legacy-label { display: inline-block; margin-left: 5px; padding: 4px 7px; border: 1px solid rgba(181,140,255,0.22); border-radius: 99px; color: rgba(199,176,255,0.78); font-family: var(--font-mono); font-size: 0.55em; font-weight: 500; letter-spacing: 0.04em; vertical-align: middle; } @media (max-width: 820px) { .timeline-content { grid-template-columns: 1fr; gap: 20px; } .timeline-media, .timeline-media-wide { max-height: 300px; } .timeline-media img, .timeline-media-wide img { min-height: 230px; max-height: 300px; } } @media (max-width: 620px) { .timeline-kicker { font-size: 0.58rem; } .timeline-content { gap: 16px; } .timeline-media, .timeline-media-wide { max-height: 260px; } .timeline-media img, .timeline-media-wide img { min-height: 190px; max-height: 260px; } .timeline-media figcaption { font-size: 0.56rem; } .achievement-stats { gap: 6px; } .achievement-stats span { min-width: 72px; padding: 9px 10px; } .legacy-label { display: block; width: fit-content; margin: 8px 0 0; } } /* Real Vynalth AI brand mark supplied by the owner */ .logo-img.logo-symbol { display: inline-block; flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.72); background-color: #ffffff; background-image: url('assets/vynalth-symbol.jpg'); background-repeat: no-repeat; background-position: center 50%; background-size: 315% auto; box-shadow: 0 0 22px rgba(255,255,255,0.14), 0 0 18px rgba(112,231,255,0.18); object-fit: cover; } .logo:hover .logo-img.logo-symbol { border-color: var(--color-cyan); box-shadow: 0 0 24px rgba(112,231,255,0.30); } .project-logo-box { overflow: hidden; position: relative; background: rgba(255,255,255,0.92); } .project-logo-mark { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; border-radius: inherit; } .project-logo-box .project-logo-mark { transform: scale(2.95); } .project-logo-box:hover .project-logo-mark { transform: scale(3.08); } .project-logo-box .shield-logo-mark { transform: scale(1.08); } .project-logo-box:hover .shield-logo-mark { transform: scale(1.15); } /* Motion variables: small enough to feel intentional, never distracting */ .glow-bg-orb { translate: var(--parallax-x, 0px) var(--parallax-y, 0px); } .logo-symbol { translate: var(--parallax-x, 0px) var(--parallax-y, 0px); transition: translate var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast); } .hero-visual { translate: var(--parallax-x, 0px) var(--parallax-y, 0px); transition: translate 700ms cubic-bezier(0.22, 1, 0.36, 1); } .btn.magnetic { translate: var(--magnetic-x, 0px) var(--magnetic-y, 0px); transition: translate 220ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast); } .btn.magnetic:hover { translate: var(--magnetic-x, 0px) var(--magnetic-y, -2px); } @media (max-width: 820px), (prefers-reduced-motion: reduce) { .glow-bg-orb, .logo-symbol, .hero-visual, .btn.magnetic { translate: none; } } /* ========================================================================== FOUNDER ECOSYSTEM / DASHBOARD / ACTIVITY SYSTEM ========================================================================== */ .section-eyebrow { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px; color: var(--color-cyan); font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.15em; text-transform: uppercase; } .eyebrow-line { display: inline-block; width: 28px; height: 1px; background: var(--color-cyan); box-shadow: 0 0 12px rgba(112,231,255,0.65); } .section-header-split { display: flex; align-items: flex-end; justify-content: space-between; gap: 48px; } .section-header-split .section-subtitle { max-width: 420px; margin: 0 0 5px; } .ecosystem-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(270px, 0.65fr); gap: 18px; align-items: stretch; } .ecosystem-map { min-height: 585px; padding: 25px; overflow: hidden; } .ecosystem-map-topline, .dashboard-heading { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; padding-bottom: 17px; border-bottom: 1px solid rgba(255,255,255,0.08); } .ecosystem-canvas { position: relative; min-height: 500px; margin-top: 4px; isolation: isolate; } .ecosystem-canvas::before { content: ''; position: absolute; inset: 17% 20%; border: 1px solid rgba(112,231,255,0.08); border-radius: 50%; box-shadow: 0 0 80px rgba(112,231,255,0.045), inset 0 0 80px rgba(181,140,255,0.035); } .ecosystem-canvas::after { content: ''; position: absolute; inset: 29% 32%; border: 1px dashed rgba(181,140,255,0.14); border-radius: 50%; animation: orbitPulse 7s ease-in-out infinite; } .ecosystem-lines { position: absolute; inset: 8% 8%; width: 84%; height: 84%; overflow: visible; z-index: 0; } .ecosystem-lines path { fill: none; stroke: rgba(112,231,255,0.26); stroke-width: 0.22; stroke-dasharray: 1.2 1.8; vector-effect: non-scaling-stroke; } .ecosystem-core { position: absolute; top: 50%; left: 50%; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 150px; height: 150px; transform: translate(-50%, -50%); border: 1px solid rgba(112,231,255,0.34); border-radius: 50%; background: radial-gradient(circle at 50% 40%, rgba(112,231,255,0.17), rgba(10,17,28,0.96) 56%); box-shadow: 0 0 42px rgba(112,231,255,0.15), inset 0 0 28px rgba(181,140,255,0.08); text-align: center; } .core-ring { position: absolute; inset: -10px; border: 1px solid rgba(181,140,255,0.18); border-left-color: transparent; border-right-color: transparent; border-radius: 50%; animation: ringSpin 18s linear infinite; } .core-monogram { margin-bottom: 7px; color: var(--color-cyan); font-family: var(--font-mono); font-size: 1.2rem; font-weight: 700; letter-spacing: 0.08em; } .ecosystem-core strong { font-size: 0.96rem; letter-spacing: -0.03em; } .ecosystem-core small { margin-top: 6px; color: var(--color-text-muted); font-family: var(--font-mono); font-size: 0.54rem; letter-spacing: 0.12em; } .ecosystem-node { position: absolute; z-index: 3; display: flex; align-items: center; gap: 10px; width: 190px; min-height: 64px; padding: 10px 12px; border: 1px solid rgba(255,255,255,0.10); border-radius: 13px; background: rgba(9,15,25,0.78); color: var(--color-text-primary); cursor: pointer; text-align: left; backdrop-filter: blur(13px); box-shadow: 0 14px 34px rgba(0,0,0,0.18); transition: transform var(--transition-normal), border-color var(--transition-normal), background var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal); } .ecosystem-node:hover, .ecosystem-node:focus-visible, .ecosystem-node.active { border-color: rgba(112,231,255,0.58); background: rgba(15,28,44,0.92); box-shadow: 0 16px 42px rgba(0,0,0,0.27), 0 0 28px rgba(112,231,255,0.11); outline: none; } .ecosystem-node:hover { transform: translateY(-4px); } .ecosystem-node span:last-child { display: flex; flex-direction: column; gap: 4px; min-width: 0; } .ecosystem-node strong { font-size: 0.78rem; letter-spacing: -0.02em; } .ecosystem-node small { overflow: hidden; color: var(--color-text-muted); font-family: var(--font-mono); font-size: 0.55rem; text-overflow: ellipsis; white-space: nowrap; } .node-icon, .system-row-icon { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; overflow: hidden; border: 1px solid rgba(112,231,255,0.17); border-radius: 10px; background: rgba(112,231,255,0.08); color: var(--color-cyan); } .node-icon img, .system-row-icon img { width: 100%; height: 100%; object-fit: cover; transform: scale(2.45); } .node-icon.shield img, .system-row-icon.shield img { transform: scale(1.08); } .node-icon svg { width: 16px; height: 16px; } .node-vynalth { top: 10%; left: 3%; } .node-shield { top: 10%; right: 3%; } .node-navigator { bottom: 8%; left: 3%; } .node-pedia { bottom: 8%; right: 3%; } .node-vynova { top: 1%; left: 50%; transform: translateX(-50%); } .node-vynova:hover { transform: translateX(-50%) translateY(-4px); } .ecosystem-canvas:has(.ecosystem-node:hover) .ecosystem-node:not(:hover), .ecosystem-canvas:has(.ecosystem-node:focus-visible) .ecosystem-node:not(:focus-visible) { opacity: 0.46; } .ecosystem-detail { min-height: 585px; padding: 32px; display: flex; flex-direction: column; justify-content: center; } .detail-kicker, .metric-label, .activity-type { color: var(--color-cyan); font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; } .ecosystem-detail h3 { max-width: 250px; margin: 18px 0 14px; font-size: clamp(1.7rem, 3vw, 2.45rem); letter-spacing: -0.06em; } .ecosystem-detail p { color: var(--color-text-secondary); font-size: 0.94rem; line-height: 1.8; } .detail-divider { width: 100%; height: 1px; margin: 28px 0; background: rgba(255,255,255,0.10); } .detail-meta { display: flex; justify-content: space-between; gap: 15px; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.065); } .detail-meta span { color: var(--color-text-muted); font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.12em; } .detail-meta strong { color: #eaf0fa; font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.08em; } .detail-prompt { display: flex; align-items: center; gap: 9px; margin-top: auto; padding-top: 28px; color: var(--color-text-muted); font-family: var(--font-mono); font-size: 0.62rem; line-height: 1.6; } .dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(270px, 0.85fr); gap: 18px; } .dashboard-panel { padding: 26px; } .system-list { display: flex; flex-direction: column; gap: 8px; padding-top: 15px; } .system-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; padding: 14px 10px; border: 1px solid transparent; border-radius: 12px; background: transparent; color: var(--color-text-primary); cursor: pointer; text-align: left; transition: background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast); } .system-row:hover, .system-row:focus-visible, .system-row.active { border-color: rgba(112,231,255,0.15); background: rgba(112,231,255,0.045); outline: none; } .system-row:hover { transform: translateX(4px); } .system-row-icon { width: 38px; height: 38px; flex-basis: 38px; } .system-row-icon svg { width: 17px; height: 17px; } .system-row-copy { display: flex; min-width: 0; flex-direction: column; gap: 5px; } .system-row-copy strong { overflow: hidden; font-size: 0.88rem; text-overflow: ellipsis; white-space: nowrap; } .system-row-copy small { overflow: hidden; color: var(--color-text-muted); font-size: 0.7rem; text-overflow: ellipsis; white-space: nowrap; } .system-status { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-mono); font-size: 0.59rem; letter-spacing: 0.04em; white-space: nowrap; } .system-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 10px currentColor; } .status-active { color: #72efb0; } .status-developing { color: var(--color-cyan); } .status-beta { color: #f3cc75; } .status-planned { color: #a8aeba; } .dashboard-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .metric-card { display: flex; min-height: 150px; flex-direction: column; justify-content: space-between; padding: 22px; } .metric-card strong { margin: 12px 0; color: #f5f7fb; font-family: var(--font-mono); font-size: clamp(1.3rem, 3vw, 2rem); letter-spacing: -0.05em; } .metric-card small { color: var(--color-text-muted); font-size: 0.72rem; line-height: 1.45; } .metric-card-wide { grid-column: 1 / -1; min-height: 126px; } .metric-card-wide strong { color: var(--color-cyan); font-size: clamp(1rem, 2vw, 1.55rem); letter-spacing: 0.04em; } .activity-feed { display: flex; flex-direction: column; gap: 10px; } .activity-entry { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; align-items: center; gap: 24px; padding: 20px 24px; border-radius: 15px; } .activity-entry:hover { transform: translateX(5px); } .activity-entry-featured { border-color: rgba(112,231,255,0.20); } .activity-date { display: flex; flex-direction: column; gap: 3px; } .activity-date span { color: #eff6ff; font-family: var(--font-mono); font-size: 1.7rem; letter-spacing: -0.08em; } .activity-date small { color: var(--color-text-muted); font-family: var(--font-mono); font-size: 0.58rem; letter-spacing: 0.1em; } .activity-entry-body { min-width: 0; } .activity-entry-body h3 { margin: 7px 0 7px; font-size: 1.04rem; letter-spacing: -0.03em; } .activity-entry-body p { overflow: hidden; color: var(--color-text-secondary); font-size: 0.82rem; line-height: 1.65; text-overflow: ellipsis; } .activity-arrow { display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid rgba(255,255,255,0.10); border-radius: 50%; color: var(--color-cyan); } .activity-arrow svg { width: 14px; height: 14px; } .activity-note { display: flex; align-items: center; gap: 8px; margin-top: 16px; color: var(--color-text-muted); font-family: var(--font-mono); font-size: 0.61rem; letter-spacing: 0.04em; } @keyframes orbitPulse { 0%, 100% { transform: scale(0.98) rotate(0deg); opacity: 0.55; } 50% { transform: scale(1.02) rotate(12deg); opacity: 1; } } @media (max-width: 1120px) { .nav-menu ul { gap: 16px; } .nav-link { font-size: 0.74rem; } } @media (max-width: 980px) { .section-header-split { align-items: flex-start; flex-direction: column; gap: 12px; } .section-header-split .section-subtitle { max-width: 620px; } .ecosystem-layout, .dashboard-grid { grid-template-columns: 1fr; } .ecosystem-detail { min-height: 0; } } @media (max-width: 820px) { .ecosystem-map { min-height: 620px; } .ecosystem-canvas { min-height: 535px; } .ecosystem-node { width: 178px; } .dashboard-metrics { grid-template-columns: repeat(3, 1fr); } .metric-card, .metric-card-wide { grid-column: auto; min-height: 140px; } .metric-card-wide { min-height: 140px; } } @media (max-width: 620px) { .section-eyebrow { font-size: 0.56rem; letter-spacing: 0.11em; } .ecosystem-map { padding: 18px; } .ecosystem-map-topline { align-items: flex-start; flex-direction: column; gap: 10px; } .ecosystem-canvas { min-height: 560px; } .ecosystem-canvas::before { inset: 21% 8%; } .ecosystem-canvas::after { inset: 31% 18%; } .ecosystem-lines { inset: 13% 3%; width: 94%; height: 74%; } .ecosystem-core { width: 126px; height: 126px; } .ecosystem-node { width: 156px; min-height: 58px; padding: 8px; gap: 7px; } .ecosystem-node strong { font-size: 0.68rem; } .ecosystem-node small { font-size: 0.47rem; } .node-icon { flex-basis: 29px; width: 29px; height: 29px; } .node-vynalth { top: 3%; left: 0; } .node-shield { top: 3%; right: 0; } .node-navigator { bottom: 2%; left: 0; } .node-pedia { bottom: 2%; right: 0; } .node-vynova { top: 51%; } .dashboard-panel { padding: 20px 15px; } .dashboard-heading { align-items: flex-start; flex-direction: column; gap: 9px; } .dashboard-metrics { grid-template-columns: 1fr; } .metric-card, .metric-card-wide { grid-column: auto; min-height: 116px; } .activity-entry { grid-template-columns: 64px minmax(0, 1fr) auto; gap: 12px; padding: 17px 14px; } .activity-date span { font-size: 1.35rem; } .activity-entry-body h3 { font-size: 0.88rem; } .activity-entry-body p { font-size: 0.72rem; } .activity-type { font-size: 0.53rem; } } /* Touch polish */ .ecosystem-node, .system-row, .btn, .nav-toggle, .filter-btn, .cert-filter-btn, .social-link { touch-action: manipulation; -webkit-tap-highlight-color: transparent; } @media (max-width: 620px) { .node-vynova { top: 21%; } .ecosystem-node:active, .system-row:active, .btn:active { transform: scale(0.985); } } /* Mobile viewport containment and touch target polish */ html, body { max-width: 100%; overflow-x: hidden; } .filter-controls { overscroll-behavior-x: contain; } @media (max-width: 900px) { .nav-toggle { display: grid; width: 44px; height: 44px; place-items: center; } .nav-link { display: flex; min-height: 44px; align-items: center; justify-content: center; } } @media (max-width: 620px) { .filter-controls { max-width: 100%; padding-bottom: 8px; touch-action: pan-x; } }