 :root {
     --bg: #0a0a0a;
     --surface: #111111;
     --border: #1e1e1e;
     --accent: #00e5a0;
     --accent2: #0066ff;
     --text: #f0f0f0;
     --muted: #666;
     --card: #131313;
 }

 *,
 *::before,
 *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
 }

 html {
     scroll-behavior: smooth;
 }

 body {
     background: var(--bg);
     color: var(--text);
     font-family: 'DM Sans', sans-serif;
     font-size: 16px;
     line-height: 1.6;
     overflow-x: hidden;
 }

 /* ── CURSOR ── */
 .cursor {
     width: 10px;
     height: 10px;
     background: var(--accent);
     border-radius: 50%;
     position: fixed;
     top: 0;
     left: 0;
     pointer-events: none;
     z-index: 9999;
     transform: translate(-50%, -50%);
     transition: transform 0.08s, width 0.2s, height 0.2s, background 0.2s;
 }

 .cursor-ring {
     width: 36px;
     height: 36px;
     border: 1.5px solid var(--accent);
     border-radius: 50%;
     position: fixed;
     top: 0;
     left: 0;
     pointer-events: none;
     z-index: 9998;
     transform: translate(-50%, -50%);
     opacity: 0.4;
     transition: transform 0.18s ease, width 0.2s, height 0.2s;
 }

 /* ── NAV ── */
 nav {
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     z-index: 100;
     display: flex;
     justify-content: space-between;
     align-items: center;
     padding: 1.25rem 4rem;
     border-bottom: 1px solid transparent;
     transition: border-color 0.3s, background 0.3s, backdrop-filter 0.3s;
 }

 nav.scrolled {
     border-color: var(--border);
     background: rgba(10, 10, 10, 0.88);
     backdrop-filter: blur(14px);
 }

 .nav-logo {
     font-family: 'Syne', sans-serif;
     font-weight: 800;
     font-size: 1.1rem;
     letter-spacing: -0.02em;
     color: var(--text);
     text-decoration: none;
 }

 .nav-logo span {
     color: var(--accent);
 }

 .nav-links {
     display: flex;
     gap: 2rem;
     list-style: none;
 }

 .nav-links a {
     color: var(--muted);
     text-decoration: none;
     font-size: 0.85rem;
     letter-spacing: 0.04em;
     transition: color 0.2s;
 }

 .nav-links a:hover {
     color: var(--text);
 }

 /* ── HERO ── */
 #hero {
     min-height: 100vh;
     display: flex;
     flex-direction: column;
     justify-content: center;
     padding: 8rem 4rem 4rem;
     position: relative;
     overflow: hidden;
 }

 .hero-grid-overlay {
     position: absolute;
     inset: 0;
     background-image:
         linear-gradient(rgba(0, 229, 160, 0.035) 1px, transparent 1px),
         linear-gradient(90deg, rgba(0, 229, 160, 0.035) 1px, transparent 1px);
     background-size: 60px 60px;
     pointer-events: none;
 }

 .hero-glow {
     position: absolute;
     width: 600px;
     height: 600px;
     background: radial-gradient(circle, rgba(0, 229, 160, 0.08) 0%, transparent 70%);
     top: 10%;
     left: 55%;
     transform: translateX(-50%);
     pointer-events: none;
     animation: pulse 4s ease-in-out infinite;
 }

 @keyframes pulse {

     0%,
     100% {
         opacity: 0.5;
         transform: translateX(-50%) scale(1);
     }

     50% {
         opacity: 1;
         transform: translateX(-50%) scale(1.1);
     }
 }

 .hero-tag {
     display: inline-flex;
     align-items: center;
     gap: 0.5rem;
     border: 1px solid var(--border);
     border-radius: 100px;
     padding: 0.35rem 1rem;
     font-size: 0.75rem;
     color: var(--muted);
     letter-spacing: 0.06em;
     margin-bottom: 2rem;
     width: fit-content;
     animation: fadeUp 0.6s ease both;
 }

 .hero-tag .dot {
     width: 6px;
     height: 6px;
     background: var(--accent);
     border-radius: 50%;
     animation: blink 1.8s infinite;
 }

 @keyframes blink {

     0%,
     100% {
         opacity: 1;
     }

     50% {
         opacity: 0.2;
     }
 }

 h1.hero-title {
     font-family: 'Syne', sans-serif;
     font-size: clamp(3rem, 7vw, 6.5rem);
     font-weight: 800;
     line-height: 1;
     letter-spacing: -0.03em;
     margin-bottom: 1.5rem;
     animation: fadeUp 0.6s 0.1s ease both;
     max-width: 900px;
 }

 h1.hero-title em {
     font-style: normal;
     color: var(--accent);
 }

 .hero-sub {
     font-size: 1.1rem;
     color: var(--muted);
     max-width: 540px;
     line-height: 1.7;
     animation: fadeUp 0.6s 0.2s ease both;
     font-weight: 300;
 }

 .hero-ctas {
     display: flex;
     gap: 1rem;
     margin-top: 3rem;
     animation: fadeUp 0.6s 0.3s ease both;
     flex-wrap: wrap;
 }

 .btn {
     display: inline-flex;
     align-items: center;
     gap: 0.5rem;
     padding: 0.85rem 1.8rem;
     border-radius: 6px;
     font-size: 0.9rem;
     font-weight: 500;
     cursor: pointer;
     text-decoration: none;
     transition: all 0.2s;
 }

 .btn-primary {
     background: var(--accent);
     color: #000;
     font-weight: 600;
 }

 .btn-primary:hover {
     background: #00ffb3;
     transform: translateY(-2px);
     box-shadow: 0 8px 24px rgba(0, 229, 160, 0.25);
 }

 .btn-secondary {
     border: 1px solid var(--border);
     color: var(--text);
     background: transparent;
 }

 .btn-secondary:hover {
     border-color: #333;
     background: var(--surface);
     transform: translateY(-2px);
 }

 .hero-stats {
     display: flex;
     gap: 3rem;
     margin-top: 5rem;
     border-top: 1px solid var(--border);
     padding-top: 2.5rem;
     animation: fadeUp 0.6s 0.4s ease both;
     flex-wrap: wrap;
 }

 .stat-num {
     font-family: 'Syne', sans-serif;
     font-size: 2.2rem;
     font-weight: 800;
     color: var(--text);
     line-height: 1;
 }

 .stat-num span {
     color: var(--accent);
 }

 .stat-label {
     font-size: 0.78rem;
     color: var(--muted);
     letter-spacing: 0.06em;
     margin-top: 0.3rem;
 }

 @keyframes fadeUp {
     from {
         opacity: 0;
         transform: translateY(24px);
     }

     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 /* ── SECTIONS ── */
 section {
     padding: 6rem 4rem;
 }

 .section-label {
     display: flex;
     align-items: center;
     gap: 0.75rem;
     font-size: 0.72rem;
     letter-spacing: 0.12em;
     color: var(--accent);
     text-transform: uppercase;
     font-weight: 600;
     margin-bottom: 1rem;
 }

 .section-label::after {
     content: '';
     flex: 1;
     height: 1px;
     background: var(--border);
     max-width: 60px;
 }

 .section-title {
     font-family: 'Syne', sans-serif;
     font-size: clamp(2rem, 4vw, 3rem);
     font-weight: 800;
     letter-spacing: -0.02em;
     line-height: 1.1;
     margin-bottom: 3rem;
 }

 /* ── ABOUT ── */
 #about {
     background: var(--surface);
     border-top: 1px solid var(--border);
     border-bottom: 1px solid var(--border);
 }

 .about-grid {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 5rem;
     align-items: start;
 }

 .about-text p {
     color: #aaa;
     line-height: 1.85;
     font-weight: 300;
     margin-bottom: 1.25rem;
 }

 .about-text p strong {
     color: var(--text);
     font-weight: 500;
 }

 .skills-grid {
     display: flex;
     flex-direction: column;
     gap: 1.5rem;
 }

 .skill-cat-title {
     font-size: 0.72rem;
     letter-spacing: 0.1em;
     text-transform: uppercase;
     color: var(--muted);
     margin-bottom: 0.75rem;
     font-weight: 500;
 }

 .skill-pills {
     display: flex;
     flex-wrap: wrap;
     gap: 0.5rem;
 }

 .pill {
     padding: 0.4rem 0.9rem;
     border: 1px solid var(--border);
     border-radius: 4px;
     font-size: 0.8rem;
     color: #ccc;
     background: var(--card);
     transition: border-color 0.2s, color 0.2s;
 }

 .pill:hover {
     border-color: var(--accent);
     color: var(--accent);
 }

 /* ── PROJECTS ── */
 #projects {
     background: var(--bg);
 }

 .projects-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
     gap: 1.5rem;
 }

 .project-card {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: 10px;
     padding: 2rem;
     position: relative;
     overflow: hidden;
     transition: border-color 0.25s, transform 0.25s;
     cursor: pointer;
     text-decoration: none;
     display: block;
     color: inherit;
 }

 .project-card::before {
     content: '';
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     height: 2px;
     background: linear-gradient(90deg, var(--accent), var(--accent2));
     opacity: 0;
     transition: opacity 0.3s;
 }

 .project-card:hover {
     border-color: #2a2a2a;
     transform: translateY(-4px);
 }

 .project-card:hover::before {
     opacity: 1;
 }

 .project-header {
     display: flex;
     justify-content: space-between;
     align-items: flex-start;
     margin-bottom: 1.25rem;
 }

 .project-icon {
     width: 42px;
     height: 42px;
     background: rgba(0, 229, 160, 0.08);
     border: 1px solid rgba(0, 229, 160, 0.15);
     border-radius: 8px;
     display: grid;
     place-items: center;
     font-size: 1.1rem;
 }

 .project-arrow {
     color: var(--muted);
     font-size: 1.1rem;
     transition: color 0.2s, transform 0.2s;
 }

 .project-card:hover .project-arrow {
     color: var(--accent);
     transform: translate(3px, -3px);
 }

 .project-name {
     font-family: 'Syne', sans-serif;
     font-size: 1.15rem;
     font-weight: 700;
     margin-bottom: 0.5rem;
 }

 .project-desc {
     font-size: 0.88rem;
     color: var(--muted);
     line-height: 1.65;
     margin-bottom: 1.5rem;
 }

 .project-tags {
     display: flex;
     flex-wrap: wrap;
     gap: 0.4rem;
 }

 .project-tag {
     font-size: 0.72rem;
     padding: 0.25rem 0.65rem;
     background: rgba(255, 255, 255, 0.04);
     border: 1px solid var(--border);
     border-radius: 3px;
     color: #888;
     letter-spacing: 0.03em;
 }

 /* ── EXPERIENCE ── */
 #experience {
     background: var(--surface);
     border-top: 1px solid var(--border);
     border-bottom: 1px solid var(--border);
 }

 .exp-card {
     background: var(--card);
     border: 1px solid var(--border);
     border-radius: 10px;
     padding: 2.5rem;
     max-width: 800px;
     position: relative;
 }

 .exp-header {
     display: flex;
     justify-content: space-between;
     align-items: flex-start;
     margin-bottom: 1.5rem;
     flex-wrap: wrap;
     gap: 1rem;
 }

 .exp-role {
     font-family: 'Syne', sans-serif;
     font-size: 1.4rem;
     font-weight: 700;
 }

 .exp-company {
     color: var(--accent);
     font-size: 0.9rem;
     margin-top: 0.3rem;
     font-weight: 500;
 }

 .exp-date {
     font-size: 0.8rem;
     color: var(--muted);
     background: var(--surface);
     border: 1px solid var(--border);
     padding: 0.35rem 0.9rem;
     border-radius: 100px;
     white-space: nowrap;
 }

 .exp-bullets {
     list-style: none;
     display: flex;
     flex-direction: column;
     gap: 0.75rem;
 }

 .exp-bullets li {
     display: flex;
     gap: 0.75rem;
     font-size: 0.9rem;
     color: #aaa;
     line-height: 1.6;
 }

 .exp-bullets li::before {
     content: '→';
     color: var(--accent);
     flex-shrink: 0;
     margin-top: 0.05rem;
 }

 /* ── CONTACT ── */
 #contact {
     background: var(--bg);
     text-align: center;
 }

 .contact-wrapper {
     max-width: 600px;
     margin: 0 auto;
 }

 .contact-email {
     font-family: 'Syne', sans-serif;
     font-size: clamp(1.3rem, 3vw, 2rem);
     font-weight: 700;
     color: var(--text);
     text-decoration: none;
     display: inline-block;
     margin: 1.5rem 0 2rem;
     transition: color 0.2s;
 }

 .contact-email:hover {
     color: var(--accent);
 }

 .contact-links {
     display: flex;
     gap: 1rem;
     justify-content: center;
     flex-wrap: wrap;
     margin-top: 2.5rem;
 }

 .contact-link {
     display: flex;
     align-items: center;
     gap: 0.5rem;
     padding: 0.7rem 1.4rem;
     border: 1px solid var(--border);
     border-radius: 6px;
     font-size: 0.85rem;
     color: var(--muted);
     text-decoration: none;
     transition: all 0.2s;
 }

 .contact-link:hover {
     border-color: var(--accent);
     color: var(--accent);
     background: rgba(0, 229, 160, 0.04);
 }

 /* ── FOOTER ── */
 footer {
     border-top: 1px solid var(--border);
     padding: 2rem 4rem;
     display: flex;
     justify-content: space-between;
     align-items: center;
     font-size: 0.78rem;
     color: var(--muted);
     flex-wrap: wrap;
     gap: 1rem;
 }

 /* ── SCROLL REVEAL ── */
 .reveal {
     opacity: 0;
     transform: translateY(30px);
     transition: opacity 0.7s ease, transform 0.7s ease;
 }

 .reveal.visible {
     opacity: 1;
     transform: none;
 }

 /* ── RESPONSIVE ── */
 @media (max-width: 768px) {
     nav {
         padding: 1rem 1.5rem;
     }

     .nav-links {
         display: none;
     }

     section {
         padding: 4rem 1.5rem;
     }

     #hero {
         padding: 7rem 1.5rem 3rem;
     }

     .about-grid {
         grid-template-columns: 1fr;
         gap: 2.5rem;
     }

     footer {
         padding: 1.5rem;
     }

     .hero-stats {
         gap: 2rem;
     }
 }