:root {
    --navy: #0b1628;
    --navy-mid: #112240;
    --navy-light: #1e3a5f;
    --gold: #d4a853;
    --gold-light: #f0c97a;
    --teal: #00b4d8;
    --teal-light: #90e0ef;
    --cream: #f4f1eb;
    --white: #ffffff;
    --text-muted: #8899aa;
    --card-bg: rgba(17,34,64,0.85);
    --border: rgba(212,168,83,0.18);
    --transition: 0.45s cubic-bezier(0.23,1,0.32,1);
  }

  /* Light theme overrides when `light-theme` is present on <html> */
  .light-theme, html.light-theme {
    --navy: #f6f7f8;
    --navy-mid: #ffffff;
    --navy-light: #eef3f8;
    --gold: #b77b2f;
    --gold-light: #e8c38a;
    --teal: #007f9b;
    --teal-light: #3fb0c7;
    --cream: #0b1628;
    --white: #0b1628;
    --text-muted: #5b6b7a;
    --card-bg: rgba(255,255,255,0.92);
    --border: rgba(11,22,40,0.08);
  }

  .light-theme nav { background: rgba(255,255,255,0.92); border-color: rgba(11,22,40,0.12); }
  .light-theme .mobile-menu { background: rgba(255,255,255,0.98); }
  .light-theme .nav-links a { color: rgba(11,22,40,0.78); }
  .light-theme .mobile-menu a { color: var(--navy); }
  .light-theme .hero-social-icon i { color: var(--navy); }
  .light-theme .hero-social-icon::before { background: rgba(11,22,40,0.03); }
  .light-theme .hero-social-icon.gmail-icon { background: rgba(234,67,53,0.12); border: 1.5px solid rgba(234,67,53,0.25); }
  .light-theme .hero-social-icon.gmail-icon i { color: #EA4335; }
  .light-theme .hero-social-icon.linkedin-icon { background: rgba(10,102,194,0.12); border: 1.5px solid rgba(10,102,194,0.25); }
  .light-theme .hero-social-icon.linkedin-icon i { color: #0A66C2; }
  .light-theme .hero-social-icon.github-icon { background: rgba(36,41,46,0.12); border: 1.5px solid rgba(36,41,46,0.22); }
  .light-theme .hero-social-icon.github-icon i { color: #24292e; }
  .light-theme .hero-social-icon.phone-icon { background: rgba(37,211,102,0.16); border: 1.5px solid rgba(37,211,102,0.3); }
  .light-theme .hero-social-icon.phone-icon i { color: #128c7e; }
  .light-theme .hero-social-icon:hover::before { opacity: 0.22; background: rgba(11,22,40,0.1); }
  .light-theme .hero-social-label { color: rgba(11,22,40,0.75); }
  .light-theme .social-btn {
    background: rgba(11,22,40,0.12);
    border-color: rgba(11,22,40,0.22);
    color: var(--navy);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
  }
  .light-theme .social-btn i { color: var(--navy); }
  .light-theme .social-btn:hover i { color: var(--white); }
  .light-theme .social-btn::before { opacity: 0.18; }
  .light-theme .contact-card.github:hover  { border-color: rgba(0,0,0,0.12); box-shadow:0 20px 50px rgba(0,0,0,0.08); }
  .light-theme .contact-card { background: rgba(255,255,255,0.96); border-color: rgba(11,22,40,0.16); color: var(--cream); }
  .light-theme .contact-card:hover { box-shadow:0 24px 70px rgba(11,22,40,0.12); }
  .light-theme .contact-card.gmail:hover  { border-color: rgba(234,67,53,0.35); box-shadow:0 24px 70px rgba(234,67,53,0.15); }
  .light-theme .contact-card.linkedin:hover{ border-color: rgba(10,102,194,0.32); box-shadow:0 24px 70px rgba(10,102,194,0.14); }
  .light-theme .contact-card.github:hover  { border-color: rgba(36,41,46,0.28); box-shadow:0 24px 70px rgba(36,41,46,0.14); }
  .light-theme .contact-card.phone:hover   { border-color: rgba(37,211,102,0.35); box-shadow:0 24px 70px rgba(37,211,102,0.14); }
  .light-theme .contact-label { color: rgba(11,22,40,0.8); }
  .light-theme .contact-value { color: rgba(11,22,40,0.92); }
  .light-theme .contact-intro { color: rgba(11,22,40,0.72); }
  html.light-theme .section-title,
  .light-theme .section-title { color: var(--cream) !important; }
  html.light-theme .section-title .accent,
  .light-theme .section-title .accent { color: var(--gold) !important; }
  html.light-theme .section-label,
  .light-theme .section-label { color: rgba(11,22,40,0.75) !important; }
  html.light-theme section,
  .light-theme section { color: rgba(11,22,40,0.88); }
  html.light-theme #contact,
  .light-theme #contact { background: rgba(247,249,252,0.97); }
  html.light-theme a,
  .light-theme a { color: rgba(11,22,40,0.88) !important; }
  html.light-theme a:hover,
  .light-theme a:hover { color: rgba(11,22,40,1) !important; }
  .light-theme .contact-form { background: rgba(255,255,255,0.98); border-color: rgba(11,22,40,0.14); color: var(--cream); }
  .light-theme .form-title { color: var(--cream) !important; }
  .light-theme .form-copy { color: rgba(11,22,40,0.7); }
  .light-theme .form-fields input,
  .light-theme .form-fields textarea { border-color: rgba(11,22,40,0.24); background: rgba(11,22,40,0.06); color: var(--cream); }
  .light-theme .form-fields input::placeholder,
  .light-theme .form-fields textarea::placeholder { color: rgba(11,22,40,0.55); }
  .light-theme .form-fields input:focus,
  .light-theme .form-fields textarea:focus { background: rgba(11,22,40,0.12); border-color: rgba(11,22,40,0.3); }
  .light-theme .btn-primary { color: var(--cream) !important; }
  .light-theme .btn-primary span,
  .light-theme .btn-primary i { color: var(--cream) !important; }
  .light-theme .btn-primary:hover { color: rgba(11,22,40,0.95) !important; }
  .light-theme .btn-primary:hover span,
  .light-theme .btn-primary:hover i { color: rgba(11,22,40,0.95) !important; }
  .light-theme .btn-outline { color: var(--gold); border-color: var(--gold); background: rgba(212,168,83,0.08); }

  /* Smoothly transition themeable properties */
  html, body, nav, .about-card, .project-card, .timeline-card, .skill-category, .contact-card, .logo-bubble {
    transition: background-color 0.45s cubic-bezier(0.23,1,0.32,1), color 0.45s cubic-bezier(0.23,1,0.32,1), border-color 0.45s cubic-bezier(0.23,1,0.32,1);
  }

  /* Theme toggle button */
  .theme-toggle {
    background: transparent;
    border: 1.5px solid var(--border);
    color: var(--gold);
    width: 44px; height: 44px; border-radius: 8px;
    display:flex; align-items:center; justify-content:center;
    cursor: pointer; font-size: 0.95rem;
    margin-left: 12px;
    transition: var(--transition);
  }
  .theme-toggle i { pointer-events:none; }
  .theme-toggle:hover { transform: translateY(-3px); border-color: rgba(212,168,83,0.28); }

  .theme-toggle:focus { outline: none; box-shadow: 0 6px 20px rgba(0,0,0,0.12); }

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

  html { scroll-behavior: smooth; }

  body {
    background: var(--navy);
    color: var(--cream);
    font-family: 'DM Sans', sans-serif;
    font-size: 16px;
    line-height: 1.7;
    overflow-x: hidden;
    cursor: none;
  }

  /* ─── SCROLL ORB ──────────────────────────────── */
  .scroll-orb {
    position: fixed;
    width: 80px; height: 80px;
    pointer-events: none;
    z-index: 10;
    transform: translate(-50%, -50%);
    mix-blend-mode: screen;
  }
  .orb-core {
    position: absolute; inset: 50%;
    width: 14px; height: 14px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: var(--orb-color, #d4a853);
    box-shadow: 0 0 18px 6px var(--orb-color, #d4a853);
    transition: background 0.8s ease, box-shadow 0.8s ease;
    animation: orbPulse 2s ease-in-out infinite;
  }
  .orb-ring {
    position: absolute; inset: 0;
    border-radius: 50%;
    border: 1.5px solid var(--orb-color, #d4a853);
    opacity: 0.55;
    transition: border-color 0.8s ease;
    animation: orbRingSpin 6s linear infinite;
  }
  .orb-ring-2 {
    width: 120px; height: 120px;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0.2;
    animation: orbRingSpin 10s linear infinite reverse;
  }
  .orb-label {
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.6rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--orb-color, #d4a853);
    white-space: nowrap;
    opacity: 0.7;
    transition: color 0.8s ease;
  }
  @keyframes orbPulse {
    0%, 100% { transform: translate(-50%,-50%) scale(1);   opacity: 1; }
    50%       { transform: translate(-50%,-50%) scale(1.5); opacity: 0.7; }
  }
  @keyframes orbRingSpin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
  }

  /* ─── CUSTOM CURSOR ───────────────────────────── */
  .cursor-dot {
    width: 8px; height: 8px;
    background: var(--gold);
    border-radius: 50%;
    position: fixed; top:0; left:0;
    pointer-events: none; z-index: 9999;
    transform: translate(-50%,-50%);
    transition: transform 0.08s;
  }
  .cursor-ring {
    width: 36px; height: 36px;
    border: 1.5px solid var(--gold);
    border-radius: 50%;
    position: fixed; top:0; left:0;
    pointer-events: none; z-index: 9998;
    transform: translate(-50%,-50%);
    transition: transform 0.22s cubic-bezier(0.23,1,0.32,1), width 0.3s, height 0.3s, border-color 0.3s;
    opacity: 0.7;
  }
  .cursor-ring.hover { width: 56px; height: 56px; border-color: var(--teal); opacity:1; }

  /* ─── NOISE OVERLAY ───────────────────────────── */
  body::before {
    content:'';
    position: fixed; inset:0; z-index: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
    opacity: 0.5; pointer-events: none;
  }

  /* ─── NAV ─────────────────────────────────────── */
  nav {
    position: fixed; top:0; left:0; right:0; z-index: 999;
    padding: 22px 6vw;
    display: flex; align-items:center; justify-content: space-between;
    background: rgba(11,22,40,0.82);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--border);
    transition: padding var(--transition);
  }
  nav.scrolled { padding: 14px 6vw; }
  .nav-logo {
    font-family: 'Playfair Display', serif;
    font-size: 1.4rem; font-weight: 700;
    color: var(--gold);
    letter-spacing: 0.04em;
    text-decoration: none;
  }
  .nav-logo span { color: var(--teal); }
  .nav-links { display:flex; gap: 2.2rem; list-style:none; }
  .nav-links a {
    font-size: 0.82rem; font-weight: 500;
    color: var(--text-muted);
    text-decoration: none;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    position: relative;
    transition: color var(--transition);
  }
  .nav-links a::after {
    content:''; position:absolute; bottom:-4px; left:0; right:0;
    height: 1.5px; background: var(--gold);
    transform: scaleX(0); transform-origin: right;
    transition: transform var(--transition);
  }
  .nav-links a:hover, .nav-links a.active { color: var(--gold); }
  .nav-links a:hover::after, .nav-links a.active::after { transform: scaleX(1); transform-origin: left; }
  .mobile-menu a.active { color: var(--gold); }

  .hamburger { display:none; flex-direction: column; gap:5px; cursor:pointer; padding:4px; }
  .hamburger span { width:24px; height:2px; background: var(--gold); border-radius:2px; transition: var(--transition); }

  .mobile-menu {
    display:none; position:fixed; inset:0; z-index:998;
    background: var(--navy);
    flex-direction:column; align-items:center; justify-content:center;
    gap: 2.5rem;
  }
  .mobile-menu.open { display:flex; }
  .mobile-menu a {
    font-family: 'Playfair Display', serif;
    font-size: 2rem; color: var(--cream);
    text-decoration:none;
    transition: color var(--transition);
  }
  .mobile-menu a:hover { color: var(--gold); }

  /* ─── HERO ────────────────────────────────────── */
  #hero {
    min-height: 100vh;
    display: flex; align-items: center;
    padding: 120px 6vw 80px;
    position: relative;
    overflow: hidden;
  }

  /* ─── HERO TWO-COLUMN ─── */
  .hero-inner {
    position: relative; z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 60px;
    width: 100%;
  }

  /* ─── 3D MODEL CONTAINER ─── */
  .hero-3d {
    position: relative;
    width: 100%;
    height: 520px;
    opacity: 0;
    animation: fadeUp 1s 0.8s forwards;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .hero-3d.loaded .model-hint { opacity: 0.55; }
  #glbCanvas {
    width: 100% !important;
    height: 100% !important;
    border-radius: 16px;
    cursor: grab;
  }
  #glbCanvas:active { cursor: grabbing; }
  .model-hint {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.72rem;
    color: var(--teal-light);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-family: 'JetBrains Mono', monospace;
    opacity: 0;
    transition: opacity 0.6s;
    pointer-events: none;
    white-space: nowrap;
  }
  .model-hint i { margin-right: 5px; }

  /* ─── ROBOT SPEECH BUBBLE ─── */
  .robot-bubble {
    position: absolute;
    top: 8%;
    right: -10px;
    background: rgba(11, 22, 40, 0.92);
    border: 1.5px solid var(--teal);
    border-radius: 18px 18px 18px 4px;
    padding: 12px 18px;
    max-width: 200px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.78rem;
    color: var(--teal-light);
    line-height: 1.5;
    pointer-events: none;
    opacity: 0;
    transform: translateY(6px) scale(0.95);
    transition: opacity 0.5s ease, transform 0.5s ease;
    backdrop-filter: blur(10px);
    box-shadow: 0 0 24px rgba(0,180,216,0.18), inset 0 0 12px rgba(0,180,216,0.04);
    z-index: 10;
  }
  /* Little tail pointing left-down toward the robot head */
  .robot-bubble::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 18px;
    border-width: 10px 10px 0 0;
    border-style: solid;
    border-color: var(--teal) transparent transparent transparent;
  }
  .robot-bubble::before {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 20px;
    border-width: 8px 8px 0 0;
    border-style: solid;
    border-color: rgba(11,22,40,0.92) transparent transparent transparent;
    z-index: 1;
  }
  .robot-bubble.visible {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  @keyframes bubbleFloat {
    0%, 100% { transform: translateY(0px) scale(1); }
    50%      { transform: translateY(-8px) scale(1.02); }
  }
  .bubble-cursor {
    display: inline-block;
    color: var(--gold);
    animation: blink 0.8s infinite;
    margin-left: 1px;
    font-size: 0.7rem;
  }
  .bubble-cursor.hidden { display: none; }

  /* Thinking dots between messages */
  .thinking-dots { display: none; }
  .thinking-dots.active {
    display: inline-flex; gap: 3px; align-items: center;
  }
  .thinking-dots span {
    width: 4px; height: 4px;
    background: var(--teal-light);
    border-radius: 50%;
    animation: thinkDot 1.2s ease-in-out infinite;
  }
  .thinking-dots span:nth-child(2) { animation-delay: 0.2s; }
  .thinking-dots span:nth-child(3) { animation-delay: 0.4s; }
  @keyframes thinkDot {
    0%, 100% { opacity: 0.3; transform: scale(0.8); }
    50%      { opacity: 1; transform: scale(1.3); }
  }

  .model-glow {
    position: absolute;
    inset: -20px;
    background: radial-gradient(ellipse at 50% 50%, rgba(0,180,216,0.12) 0%, transparent 70%);
    pointer-events: none;
    border-radius: 50%;
    animation: pulse 5s ease-in-out infinite;
  }

  @media (max-width: 900px) {
    .hero-inner { grid-template-columns: 1fr; }
    .hero-3d { height: 340px; order: -1; }
  }

  /* Animated geometric background */
  .hero-bg {
    position: absolute; inset:0; z-index:0;
    overflow:hidden;
  }
  .hero-bg .circle {
    position:absolute; border-radius: 50%;
    border: 1px solid;
    opacity: 0.07;
    animation: pulse 8s ease-in-out infinite;
  }
  .hero-bg .circle:nth-child(1) { width:600px; height:600px; border-color: var(--gold); top:-100px; right:-100px; animation-delay:0s; }
  .hero-bg .circle:nth-child(2) { width:400px; height:400px; border-color: var(--teal); top:10%; right:8%; animation-delay:2s; }
  .hero-bg .circle:nth-child(3) { width:200px; height:200px; border-color: var(--gold); bottom:20%; left:5%; animation-delay:4s; }
  .hero-bg .grid-lines {
    position:absolute; inset:0;
    background-image:
      linear-gradient(rgba(212,168,83,0.04) 1px, transparent 1px),
      linear-gradient(90deg, rgba(212,168,83,0.04) 1px, transparent 1px);
    background-size: 60px 60px;
  }

  @keyframes pulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.06)} }

  .hero-content { position:relative; z-index:1; }

  .hero-badge {
    display: inline-flex; align-items:center; gap: 8px;
    background: rgba(0,180,216,0.08);
    border: 1px solid rgba(0,180,216,0.3);
    border-radius: 100px;
    padding: 6px 16px;
    font-size: 0.78rem; font-weight: 600;
    color: var(--teal); letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 28px;
    opacity:0; animation: fadeUp 0.8s 0.3s forwards, badgePulse 4s 1.2s infinite ease-in-out;
  }
  .hero-badge:hover { animation-play-state: paused; }
  .hero-badge .dot { width:7px; height:7px; border-radius:50%; background:var(--teal); animation: blink 1.4s infinite; }
  @keyframes blink { 0%,100%{opacity:1} 50%{opacity:0.2} }
  @keyframes badgePulse {
    0%, 100% { transform: scale(1); box-shadow: 0 0 0 rgba(0,180,216,0); }
    50% { transform: scale(1.02); box-shadow: 0 0 18px rgba(0,180,216,0.14); }
  }

  .hero-name {
    font-family: 'Playfair Display', serif;
    font-size: clamp(3rem, 7vw, 5.5rem);
    font-weight: 900;
    line-height: 1.05;
    margin-bottom: 12px;
    opacity:0; animation: fadeUp 0.9s 0.5s forwards;
  }
  .hero-name .gold { color: var(--gold); }
  .hero-name .line2 { display:block; }

  .hero-title {
    font-size: clamp(1rem, 2.5vw, 1.35rem);
    color: var(--teal-light);
    font-weight: 400;
    margin-bottom: 24px;
    opacity:0; animation: fadeUp 0.9s 0.7s forwards;
    font-family: 'JetBrains Mono', monospace;
  }
  .hero-title .type-cursor { animation: blink 1s infinite; color: var(--gold); }

  .hero-ticker {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.92rem;
    letter-spacing: 0.08em;
    color: var(--text-muted);
  }
  .ticker-label {
    color: var(--teal);
    text-transform: uppercase;
    font-size: 0.78rem;
    letter-spacing: 0.16em;
  }
  .ticker-text {
    position: relative;
    overflow: hidden;
    min-height: 1.2rem;
    color: var(--white);
    transition: color 0.35s ease;
  }

  .hero-desc {
    font-size: 1.05rem; color: var(--text-muted);
    max-width: 520px; line-height: 1.8;
    margin-bottom: 44px;
    opacity:0; animation: fadeUp 0.9s 0.9s forwards;
  }

  .hero-cta {
    display: flex; gap: 16px; flex-wrap: wrap;
    opacity:0; animation: fadeUp 0.9s 1.1s forwards;
  }

  .btn-primary {
    padding: 14px 36px;
    background: var(--gold);
    color: var(--navy);
    font-weight: 700; font-size: 0.9rem;
    letter-spacing: 0.08em; text-transform: uppercase;
    border-radius: 4px;
    text-decoration: none;
    display: inline-flex; align-items:center; gap:8px;
    transition: var(--transition);
    position: relative; overflow:hidden;
    z-index: 1;
  }
  .btn-primary::before {
    content:''; position:absolute; inset:0;
    background: var(--gold-light);
    transform: translateX(-100%);
    transition: transform var(--transition);
    z-index: -1;
  }
  .btn-primary:hover::before { transform: translateX(0); }
  .btn-primary span,
  .btn-primary i { position:relative; z-index:1; }
  .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 40px rgba(212,168,83,0.35); }

  .btn-outline {
    padding: 14px 36px;
    border: 1.5px solid var(--gold);
    color: var(--gold);
    font-weight: 600; font-size: 0.9rem;
    letter-spacing: 0.08em; text-transform: uppercase;
    border-radius: 4px;
    text-decoration: none;
    display: inline-flex; align-items:center; gap:8px;
    transition: var(--transition);
  }
  .btn-outline:hover { background: rgba(212,168,83,0.1); transform: translateY(-2px); }

  .hero-scroll {
    position:absolute; bottom: 40px; left:50%;
    transform: translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:8px;
    opacity: 0; animation: fadeIn 1s 1.6s forwards;
  }
  .hero-scroll span { font-size:0.7rem; letter-spacing:0.2em; color:var(--text-muted); text-transform:uppercase; }
  .scroll-line { width:1px; height:50px; background: linear-gradient(var(--gold), transparent); animation: scrollPulse 2s infinite; }
  @keyframes scrollPulse { 0%{opacity:1;transform:scaleY(1)} 100%{opacity:0;transform:scaleY(0);transform-origin:top} }

  /* ─── HERO SOCIAL STRIP ───────────────────────── */
  .hero-socials {
    display: flex; align-items: center; gap: 12px;
    margin-top: 36px;
    opacity:0; animation: fadeUp 0.9s 1.3s forwards;
  }
  .hero-social-icon {
    width: 42px; height: 42px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1rem; text-decoration: none;
    transition: var(--transition);
    position: relative;
  }
  .hero-social-icon::before {
    content:''; position:absolute; inset:0; border-radius:50%;
    opacity:0; transition: opacity var(--transition);
  }
  .hero-social-icon i { position:relative; z-index:1; transition: color var(--transition); color:#fff; }
  .hero-social-icon:hover { transform: translateY(-4px) scale(1.12); }
  .hero-social-icon:hover::before { opacity:1; }

  .gmail-icon   { background: rgba(234,67,53,0.15); border: 1.5px solid rgba(234,67,53,0.4); }
  .gmail-icon i { color: #EA4335; }
  .gmail-icon::before { background: #EA4335; }
  .gmail-icon:hover i { color:#fff; }
  .gmail-icon:hover { box-shadow: 0 8px 24px rgba(234,67,53,0.4); }

  .linkedin-icon   { background: rgba(10,102,194,0.15); border: 1.5px solid rgba(10,102,194,0.4); }
  .linkedin-icon i { color: #0A66C2; }
  .linkedin-icon::before { background: #0A66C2; }
  .linkedin-icon:hover i { color:#fff; }
  .linkedin-icon:hover { box-shadow: 0 8px 24px rgba(10,102,194,0.4); }

  .github-icon   { background: rgba(255,255,255,0.07); border: 1.5px solid rgba(255,255,255,0.2); }
  .github-icon i { color: #e0e0e0; }
  .github-icon::before { background: #24292e; }
  .github-icon:hover i { color:#fff; }
  .github-icon:hover { box-shadow: 0 8px 24px rgba(255,255,255,0.12); border-color:rgba(255,255,255,0.4); }

  .phone-icon   { background: rgba(37,211,102,0.12); border: 1.5px solid rgba(37,211,102,0.35); }
  .phone-icon i { color: #25d366; }
  .phone-icon::before { background: linear-gradient(135deg,#25d366,#128c7e); }
  .phone-icon:hover i { color:#fff; }
  .phone-icon:hover { box-shadow: 0 8px 24px rgba(37,211,102,0.35); }

  .hero-social-sep { width: 1px; height: 24px; background: var(--border); margin: 0 4px; }
  .hero-social-label { font-size: 0.72rem; color: var(--text-muted); letter-spacing: 0.1em; text-transform: uppercase; }

  @keyframes fadeUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
  @keyframes fadeIn { from{opacity:0} to{opacity:1} }

  /* ─── SECTION COMMON ──────────────────────────── */
  section { padding: 110px 6vw; position:relative; }
  .section-label {
    display: inline-flex; align-items:center; gap:12px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.75rem; color: var(--teal);
    letter-spacing: 0.2em; text-transform: uppercase;
    margin-bottom: 16px;
  }
  .section-label::before { content:'//'; color: var(--gold); }
  .section-title {
    font-family: 'Playfair Display', serif;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700; color: var(--white);
    margin-bottom: 60px;
    position: relative;
  }
  .section-title .accent { color: var(--gold); }
  .section-title::after {
    content:''; display:block;
    width: 60px; height: 3px;
    background: linear-gradient(90deg, var(--gold), var(--teal));
    margin-top: 16px;
    border-radius: 2px;
  }

  /* ─── ABOUT ───────────────────────────────────── */
  #about { background: var(--navy-mid); }
  .about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
    align-items:center;
  }
  .about-visual {
    position: relative;
  }
  .about-card {
    background: var(--navy);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 40px;
    position: relative;
    overflow:hidden;
  }
  .about-card::before {
    content:''; position:absolute; top:0; left:0;
    width: 100%; height: 3px;
    background: linear-gradient(90deg, var(--gold), var(--teal));
  }
  .about-avatar {
    width: 90px; height:90px; border-radius: 50%;
    background: linear-gradient(135deg, var(--gold), var(--teal));
    display:flex; align-items:center; justify-content:center;
    font-family: 'Playfair Display', serif;
    font-size: 2.2rem; font-weight: 900;
    color: var(--navy);
    margin: 0 auto 28px;
    box-shadow: 0 0 40px rgba(212,168,83,0.25);
  }
  .about-stats {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 20px; margin-top: 24px;
  }
  .stat {
    text-align:center; padding: 18px;
    background: rgba(212,168,83,0.06);
    border: 1px solid var(--border);
    border-radius: 8px;
  }
  .stat-num { font-family: 'Playfair Display', serif; font-size: 1.8rem; color: var(--gold); font-weight: 700; }
  .stat-label { font-size: 0.75rem; color: var(--text-muted); letter-spacing:0.1em; text-transform:uppercase; margin-top:4px; }

  .about-text p { color: var(--text-muted); margin-bottom: 20px; line-height: 1.9; }
  .about-tags { display:flex; flex-wrap:wrap; gap:10px; margin-top: 28px; }
  .tag {
    background: rgba(0,180,216,0.08);
    border: 1px solid rgba(0,180,216,0.25);
    color: var(--teal-light);
    padding: 6px 14px; border-radius: 100px;
    font-size: 0.8rem; font-family:'JetBrains Mono',monospace;
    transition: var(--transition);
  }
  .tag:hover { background: rgba(0,180,216,0.18); transform:translateY(-2px); }

  /* ─── SKILLS ──────────────────────────────────── */

  .skills-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 24px;
  }
  .skill-category {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 32px;
    transition: var(--transition);
    backdrop-filter: blur(10px);
  }
  .skill-cat-title {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.75rem; color: var(--teal);
    letter-spacing: 0.18em; text-transform:uppercase;
    margin-bottom: 24px;
    display:flex; align-items:center; gap:8px;
  }
  .skill-cat-title i { color: var(--gold); font-size:1rem; }
  .skill-item { margin-bottom: 18px; }
  .skill-header { display:flex; justify-content:space-between; margin-bottom:8px; }
  .skill-name { font-size: 0.9rem; font-weight: 500; color: var(--cream); }
  .skill-pct { font-family:'JetBrains Mono',monospace; font-size: 0.8rem; color: var(--gold); }
  .skill-bar {
    height: 4px; background: rgba(255,255,255,0.07);
    border-radius: 2px; overflow:hidden;
  }
  .skill-fill {
    height:100%; border-radius:2px;
    background: linear-gradient(90deg, var(--gold), var(--teal));
    transform: scaleX(0); transform-origin: left;
    transition: transform 1.2s cubic-bezier(0.23,1,0.32,1);
  }
  .skill-fill.animated { transform: scaleX(1); }
  /* Skill bar shimmer after fill */
  .skill-fill.animated::after {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
    animation: shimmer 2s ease-in-out infinite;
    border-radius: 2px;
  }
  @keyframes shimmer {
    0%   { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
  }
  .skill-bar { position: relative; overflow: hidden; }
  .skill-fill { position: relative; }
  /* Expertise card enhanced hover */
  .skill-category {
    position: relative;
    overflow: hidden;
    will-change: transform;
  }
  .skill-category:hover {
    border-color: var(--gold);
    transform: perspective(800px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(-6px);
    box-shadow: 0 24px 60px rgba(0,0,0,0.3);
  }
  .skill-category:hover .skill-cat-title i {
    animation: skillIconPulse 1s ease-in-out infinite;
  }
  @keyframes skillIconPulse {
    0%, 100% { transform: scale(1); color: var(--gold); }
    50%      { transform: scale(1.2); color: var(--teal); }
  }
  /* gradient border glow on skill card hover */
  .skill-category::before {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--gold), var(--teal), var(--gold));
    background-size: 200% 200%;
    z-index: -1;
    opacity: 0;
    transition: opacity 0.5s ease;
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask-composite: exclude;
    -webkit-mask-composite: xor;
    padding: 1.5px;
    pointer-events: none;
  }
  .skill-category:hover::before {
    opacity: 1;
    animation: gradientShift 2.5s ease infinite;
  }

  /* ─── EXPERIENCE ──────────────────────────────── */
  #experience { background: var(--navy-mid); }
  .timeline { position:relative; }
  .timeline::before {
    content:''; position:absolute;
    left: 18px; top:0; bottom:0;
    width: 1px; background: linear-gradient(var(--gold), var(--teal), transparent);
  }
  .timeline-item {
    padding-left: 60px;
    position: relative;
    margin-bottom: 56px;
  }
  .timeline-item:last-child { margin-bottom:0; }
  .timeline-dot {
    position:absolute; left:0; top:6px;
    width: 38px; height:38px; border-radius:50%;
    background: var(--navy);
    border: 2px solid var(--gold);
    display:flex; align-items:center; justify-content:center;
    color: var(--gold); font-size: 0.9rem;
    z-index:1;
    transition: var(--transition);
  }
  .timeline-item:hover .timeline-dot { background: var(--gold); color: var(--navy); }
  .timeline-card {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 32px;
    backdrop-filter: blur(10px);
    transition: var(--transition);
  }
  .timeline-item:hover .timeline-card { border-color: rgba(212,168,83,0.4); }
  .timeline-meta {
    display:flex; justify-content:space-between; align-items:flex-start;
    flex-wrap:wrap; gap:12px;
    margin-bottom: 8px;
  }
  .timeline-role { font-family:'Playfair Display',serif; font-size:1.2rem; color:var(--white); font-weight:700; }
  .timeline-date {
    font-family:'JetBrains Mono',monospace;
    font-size:0.75rem; color: var(--teal);
    background: rgba(0,180,216,0.08);
    border: 1px solid rgba(0,180,216,0.2);
    padding: 4px 12px; border-radius:100px;
    white-space:nowrap;
  }
  .timeline-company { color: var(--gold); font-size:0.9rem; margin-bottom:16px; font-weight:500; }
  .timeline-bullets { list-style:none; }
  .timeline-bullets li {
    color: var(--text-muted); font-size:0.92rem;
    padding: 5px 0 5px 20px;
    position:relative;
    line-height:1.6;
  }
  .timeline-bullets li::before { content:'›'; position:absolute; left:0; color:var(--gold); font-size:1.1rem; }

  /* ─── PROJECTS ────────────────────────────────── */
  
  .github-stats-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    gap: 22px;
    margin-bottom: 34px;
    align-items: stretch;
  }
  .stats-card {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: 18px;
    overflow: hidden;
    padding: 18px;
    backdrop-filter: blur(10px);
  }
  .stats-card img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 12px;
  }
  @media (max-width: 860px) {
    .github-stats-panel { grid-template-columns: 1fr; }
  }

  .projects-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 28px;
  }
  .project-card {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 36px;
    position:relative; overflow:hidden;
    transition: var(--transition);
    backdrop-filter: blur(10px);
    display:flex; flex-direction:column;
    will-change: transform;
  }
  .project-card::before {
    content:''; position:absolute;
    top:0; left:0; right:0; height:3px;
    background: linear-gradient(90deg, var(--gold), var(--teal));
    transform: scaleX(0); transform-origin:left;
    transition: transform var(--transition);
  }
  .project-card:hover { transform: perspective(800px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(-8px); border-color: rgba(212,168,83,0.4); box-shadow: 0 24px 60px rgba(0,0,0,0.4); }
  .project-card:hover::before { transform: scaleX(1); }
  @keyframes gradientShift {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
  }
  .project-icon {
    width: 50px; height:50px;
    background: rgba(212,168,83,0.1);
    border: 1px solid var(--border);
    border-radius: 10px;
    display:flex; align-items:center; justify-content:center;
    font-size:1.3rem; color: var(--gold);
    margin-bottom: 20px;
    transition: var(--transition);
  }
  .project-card:hover .project-icon { background: var(--gold); color: var(--navy); }
  /* Icon 3D spin on hover */
  .project-card:hover .project-icon i {
    animation: iconSpin 0.7s cubic-bezier(0.23,1,0.32,1) forwards;
  }
  @keyframes iconSpin {
    0%   { transform: rotateY(0deg) scale(1); }
    50%  { transform: rotateY(180deg) scale(1.15); }
    100% { transform: rotateY(360deg) scale(1); }
  }
  .project-name { font-family:'Playfair Display',serif; font-size:1.2rem; color:var(--white); font-weight:700; margin-bottom:12px; }
  .project-desc { color: var(--text-muted); font-size:0.9rem; line-height:1.7; margin-bottom: 24px; flex:1; }
  .project-tech { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
  .tech-badge {
    font-family:'JetBrains Mono',monospace;
    font-size: 0.72rem; padding: 4px 12px;
    background: rgba(0,180,216,0.07);
    border: 1px solid rgba(0,180,216,0.2);
    color: var(--teal-light);
    border-radius: 4px;
    transition: var(--transition);
  }
  /* Tech badge stagger-pop on card hover */
  .project-card:hover .tech-badge {
    animation: badgePop 0.4s cubic-bezier(0.34,1.56,0.64,1) forwards;
    opacity: 0;
    transform: scale(0.7);
  }
  .project-card:hover .tech-badge:nth-child(1) { animation-delay: 0.05s; }
  .project-card:hover .tech-badge:nth-child(2) { animation-delay: 0.1s; }
  .project-card:hover .tech-badge:nth-child(3) { animation-delay: 0.15s; }
  .project-card:hover .tech-badge:nth-child(4) { animation-delay: 0.2s; }
  .project-card:hover .tech-badge:nth-child(5) { animation-delay: 0.25s; }
  .project-card:hover .tech-badge:nth-child(6) { animation-delay: 0.3s; }
  @keyframes badgePop {
    0%   { opacity: 0; transform: scale(0.7) translateY(5px); }
    100% { opacity: 1; transform: scale(1) translateY(0); }
  }
  .project-links { display:flex; gap:12px; }
  .proj-link {
    display:inline-flex; align-items:center; gap:6px;
    font-size:0.8rem; color:var(--gold); font-weight:600;
    text-decoration:none; letter-spacing:0.05em;
    transition: var(--transition);
    border-bottom: 1px solid transparent;
  }
  .proj-link:hover { color: var(--gold-light); border-color: var(--gold-light); }

  /* ─── EDUCATION ───────────────────────────────── */
  #education { background: var(--navy-mid); }
  .edu-card {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 44px;
    backdrop-filter: blur(10px);
    display: grid; grid-template-columns: auto 1fr;
    gap: 36px; align-items:start;
    transition: var(--transition);
    max-width: 820px;
  }
  .edu-card:hover { border-color: var(--gold); box-shadow: 0 20px 60px rgba(0,0,0,0.3); }
  .edu-icon {
    width: 72px; height:72px; border-radius:50%;
    background: linear-gradient(135deg, rgba(212,168,83,0.2), rgba(0,180,216,0.2));
    border: 2px solid var(--gold);
    display:flex; align-items:center; justify-content:center;
    font-size:1.8rem; color: var(--gold);
    flex-shrink:0;
  }
  .edu-degree { font-family:'Playfair Display',serif; font-size:1.35rem; color:var(--white); font-weight:700; margin-bottom:6px; }
  .edu-school { color: var(--gold); margin-bottom: 10px; font-weight:500; }
  .edu-meta { display:flex; gap:20px; flex-wrap:wrap; }
  .edu-pill {
    display:inline-flex; align-items:center; gap:6px;
    font-family:'JetBrains Mono',monospace;
    font-size:0.78rem; color:var(--teal);
    background: rgba(0,180,216,0.08);
    border: 1px solid rgba(0,180,216,0.2);
    padding: 4px 14px; border-radius:100px;
  }

  /* ─── ACHIEVEMENTS ────────────────────────────── */

  .ach-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(280px,1fr)); gap:24px; }
  .ach-card {
    background: var(--card-bg); border: 1px solid var(--border);
    border-radius:12px; padding:32px;
    backdrop-filter:blur(10px);
    transition:var(--transition);
    text-align:center;
    position: relative;
    overflow: hidden;
    will-change: transform;
  }
  .ach-card:hover {
    border-color:var(--gold);
    transform: perspective(800px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(-6px) scale(1.02);
    box-shadow: 0 24px 60px rgba(0,0,0,0.35);
  }
  /* Emoji bounce on hover */
  .ach-card:hover .ach-icon {
    animation: emojiBounce 0.6s cubic-bezier(0.34,1.56,0.64,1);
  }
  @keyframes emojiBounce {
    0%   { transform: scale(1) rotate(0deg); }
    30%  { transform: scale(1.3) rotate(-8deg); }
    60%  { transform: scale(1.1) rotate(5deg); }
    100% { transform: scale(1) rotate(0deg); }
  }
  /* Border glow pulse on hover */
  .ach-card::before {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 12px;
    background: conic-gradient(from 0deg, var(--gold), var(--teal), var(--gold-light), var(--gold));
    z-index: -1;
    opacity: 0;
    transition: opacity 0.4s ease;
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask-composite: exclude;
    -webkit-mask-composite: xor;
    padding: 1.5px;
    pointer-events: none;
  }
  .ach-card:hover::before {
    opacity: 1;
    animation: conicSpin 2s linear infinite;
  }
  @keyframes conicSpin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
  }
  .ach-icon { font-size:2.4rem; margin-bottom:16px; display:block; }
  .ach-title { font-family:'Playfair Display',serif; font-size:1rem; color:var(--white); font-weight:700; margin-bottom:8px; }
  .ach-desc { color:var(--text-muted); font-size:0.88rem; line-height:1.6; }

  /* ─── CONTACT ─────────────────────────────────── */
  #contact { background: var(--navy-mid); text-align:center; }
  .contact-intro { color: var(--text-muted); max-width:560px; margin:0 auto 36px; font-size:1.05rem; line-height:1.8; }
  .contact-form-wrapper { max-width: 760px; margin: 0 auto 36px; }
  .contact-form {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 32px;
    backdrop-filter: blur(10px);
    color: var(--cream);
  }
  .form-header { margin-bottom: 24px; }
  .form-title { font-family:'Playfair Display',serif; font-size:1.6rem; color: var(--white); margin-bottom: 8px; }
  .form-copy { color: var(--text-muted); line-height:1.7; }
  .form-fields { display:grid; gap:16px; }
  .form-fields input,
  .form-fields textarea {
    width:100%;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.05);
    color: var(--cream);
    padding: 14px 16px;
    font-size: 0.95rem;
    transition: border-color var(--transition), background var(--transition);
  }
  .form-fields input:focus,
  .form-fields textarea:focus {
    outline: none;
    border-color: rgba(212,168,83,0.45);
    background: rgba(255,255,255,0.1);
  }
  .form-fields textarea { resize: vertical; min-height:140px; }
  .contact-grid { display:flex; flex-wrap:wrap; gap:20px; justify-content:center; margin-bottom:60px; }
  .contact-card {
    display:flex; align-items:center; gap:18px;
    background: var(--card-bg); border: 1px solid var(--border);
    border-radius:14px; padding:22px 28px;
    text-decoration:none; color:var(--cream);
    transition:var(--transition); backdrop-filter:blur(10px);
    min-width:240px;
  }
  .contact-card:hover { transform:translateY(-6px); box-shadow:0 20px 50px rgba(0,0,0,0.4); }
  .contact-card:hover .logo-bubble { transform: scale(1.1) rotate(-4deg); }

  /* Branded logo bubble */
  .logo-bubble {
    width: 52px; height: 52px; border-radius: 14px;
    display: flex; align-items:center; justify-content:center;
    font-size: 1.5rem; flex-shrink:0;
    transition: transform var(--transition);
    box-shadow: 0 4px 16px rgba(0,0,0,0.25);
  }
  .logo-bubble.gmail   { background: #EA4335; color:#fff; border-radius:50%; }
  .logo-bubble.linkedin{ background: #0A66C2; color:#fff; border-radius:12px; }
  .logo-bubble.github  { background: #24292e; color:#fff; border-radius:50%; border: 1.5px solid rgba(255,255,255,0.12); }
  .logo-bubble.phone   { background: linear-gradient(135deg,#25d366,#128c7e); color:#fff; border-radius:14px; }

  .contact-card.gmail:hover  { border-color: rgba(234,67,53,0.5); box-shadow:0 20px 50px rgba(234,67,53,0.15); }
  .contact-card.linkedin:hover{ border-color: rgba(10,102,194,0.5); box-shadow:0 20px 50px rgba(10,102,194,0.15); }
  .contact-card.github:hover  { border-color: rgba(255,255,255,0.2); box-shadow:0 20px 50px rgba(255,255,255,0.07); }
  .contact-card.phone:hover   { border-color: rgba(37,211,102,0.4); box-shadow:0 20px 50px rgba(37,211,102,0.12); }

  .contact-info { text-align:left; }
  .contact-form .btn-primary { padding: 14px 24px; width: fit-content; }
  .contact-label { font-size:0.68rem; color:var(--text-muted); letter-spacing:0.14em; text-transform:uppercase; margin-bottom:3px; }
  .contact-value { font-size:0.88rem; font-weight:600; color:var(--white); word-break:break-all; }

  .social-row { display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }
  .social-btn {
    width:42px; height:42px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:1rem;
    text-decoration:none; transition:var(--transition);
    position:relative; overflow:hidden;
    background: rgba(255,255,255,0.04);
    border: 1.5px solid rgba(255,255,255,0.12);
    color: #fff;
  }
  .social-btn::before {
    content:''; position:absolute; inset:0; border-radius:50%;
    opacity:0; transition: opacity var(--transition);
  }
  .social-btn i { position:relative; z-index:1; transition: color var(--transition); color:#fff; }
  .social-btn:hover { transform:translateY(-4px); }

  .social-btn.sb-gmail { background: rgba(234,67,53,0.15); border-color: rgba(234,67,53,0.35); }
  .social-btn.sb-linkedin { background: rgba(10,102,194,0.15); border-color: rgba(10,102,194,0.35); }
  .social-btn.sb-github { background: rgba(36,41,46,0.15); border-color: rgba(36,41,46,0.3); }
  .social-btn.sb-phone { background: rgba(37,211,102,0.15); border-color: rgba(37,211,102,0.35); }

  .social-btn.sb-gmail::before   { background: #EA4335; }
  .social-btn.sb-linkedin::before{ background: #0A66C2; }
  .social-btn.sb-github::before  { background: #24292e; }
  .social-btn.sb-phone::before   { background: linear-gradient(135deg,#25d366,#128c7e); }

  .social-btn.sb-gmail:hover   { border-color:#EA4335; box-shadow:0 8px 24px rgba(234,67,53,0.3); }
  .social-btn.sb-linkedin:hover{ border-color:#0A66C2; box-shadow:0 8px 24px rgba(10,102,194,0.3); }
  .social-btn.sb-github:hover  { border-color:rgba(255,255,255,0.3); box-shadow:0 8px 24px rgba(255,255,255,0.1); }
  .social-btn.sb-phone:hover   { border-color:#25d366; box-shadow:0 8px 24px rgba(37,211,102,0.3); }

  .social-btn:hover::before { opacity:1; }
  .social-btn:hover i { color:#fff; }

  /* ─── FOOTER ──────────────────────────────────── */
  footer {
    padding: 36px 6vw;
    border-top: 1px solid var(--border);
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:16px;
  }
  footer p { color:var(--text-muted); font-size:0.82rem; }
  footer .heart { color:var(--gold); }
  .footer-logo { font-family:'Playfair Display',serif; font-size:1.1rem; color:var(--gold); }

  /* ─── SCROLL REVEAL ───────────────────────────── */
  /* ─── SCROLL ANIMATIONS ───────────────────────────────── */

  /* Base state — hidden */
  .reveal                { opacity: 0; }
  .reveal.visible        { opacity: 1; }

  /* ── Fade up (default) */
  .reveal-up             { opacity:0; transform: translateY(60px); transition: opacity 0.75s cubic-bezier(0.23,1,0.32,1), transform 0.75s cubic-bezier(0.23,1,0.32,1); }
  .reveal-up.visible     { opacity:1; transform: translateY(0); }

  /* ── Fade left */
  .reveal-left           { opacity:0; transform: translateX(-70px); transition: opacity 0.75s cubic-bezier(0.23,1,0.32,1), transform 0.75s cubic-bezier(0.23,1,0.32,1); }
  .reveal-left.visible   { opacity:1; transform: translateX(0); }

  /* ── Fade right */
  .reveal-right          { opacity:0; transform: translateX(70px); transition: opacity 0.75s cubic-bezier(0.23,1,0.32,1), transform 0.75s cubic-bezier(0.23,1,0.32,1); }
  .reveal-right.visible  { opacity:1; transform: translateX(0); }

  /* ── Scale pop */
  .reveal-pop            { opacity:0; transform: scale(0.82) translateY(30px); transition: opacity 0.65s cubic-bezier(0.34,1.56,0.64,1), transform 0.65s cubic-bezier(0.34,1.56,0.64,1); }
  .reveal-pop.visible    { opacity:1; transform: scale(1) translateY(0); }

  /* ── Flip in (3D tilt) */
  .reveal-flip           { opacity:0; transform: perspective(800px) rotateX(22deg) translateY(50px); transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.23,1,0.32,1); }
  .reveal-flip.visible   { opacity:1; transform: perspective(800px) rotateX(0deg) translateY(0); }

  /* ── Rotate slide */
  .reveal-rotate         { opacity:0; transform: rotate(-4deg) translateY(50px) scale(0.95); transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.23,1,0.32,1); }
  .reveal-rotate.visible { opacity:1; transform: rotate(0deg) translateY(0) scale(1); }

  /* ── Stagger delays */
  .reveal-d1  { transition-delay: 0.08s !important; }
  .reveal-d2  { transition-delay: 0.16s !important; }
  .reveal-d3  { transition-delay: 0.24s !important; }
  .reveal-d4  { transition-delay: 0.32s !important; }

  /* ── Old .reveal fallback (keep working) */
  .reveal     { transition: opacity 0.75s cubic-bezier(0.23,1,0.32,1), transform 0.75s cubic-bezier(0.23,1,0.32,1); transform: translateY(50px); }
  .reveal.visible { transform: translateY(0); }
  .reveal-delay-1 { transition-delay: 0.1s; }
  .reveal-delay-2 { transition-delay: 0.2s; }
  .reveal-delay-3 { transition-delay: 0.3s; }
  .reveal-delay-4 { transition-delay: 0.4s; }

  /* ── Glint sweep on cards after reveal ── */
  .project-card::after, .cert-card::after, .contact-card::after,
  .ach-card::after, .edu-card::after, .skill-category::after,
  .timeline-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,0.06) 50%, transparent 70%);
    background-size: 200% 100%;
    background-position: -100% 0;
    border-radius: inherit;
    pointer-events: none;
    transition: background-position 0s;
  }
  .project-card.visible::after, .cert-card.visible::after,
  .contact-card.visible::after, .ach-card.visible::after,
  .edu-card.visible::after, .skill-category.visible::after,
  .timeline-card.visible::after {
    animation: cardGlint 0.7s 0.4s ease forwards;
  }
  @keyframes cardGlint {
    from { background-position: -100% 0; }
    to   { background-position:  200% 0; }
  }

  /* ─── PROGRESS BAR ────────────────────────────── */
  .progress-bar {
    position:fixed; top:0; left:0; height:2px; z-index:10000;
    background: linear-gradient(90deg, var(--gold), var(--teal));
    width:0%; transition: width 0.1s;
  }

  /* ─── BACK TO TOP ─────────────────────────────── */
  .back-top {
    position:fixed; bottom:32px; right:32px; z-index:998;
    width:46px; height:46px; border-radius:50%;
    background: var(--gold); color:var(--navy);
    display:flex; align-items:center; justify-content:center;
    font-size:1rem; cursor:pointer;
    opacity:0; pointer-events:none;
    transition: var(--transition);
    border:none;
    box-shadow: 0 8px 24px rgba(212,168,83,0.3);
  }
  .back-top.show { opacity:1; pointer-events:all; }
  .back-top:hover { transform:translateY(-4px); }

  /* ─── RESPONSIVE ──────────────────────────────── */
  @media(max-width:900px) {
    .about-grid { grid-template-columns:1fr; }
    .about-visual { max-width:400px; margin:0 auto; }
    .edu-card { grid-template-columns:1fr; }
    .nav-links { display:none; }
    .hamburger { display:flex; }
    body { cursor:auto; }
    .cursor-dot, .cursor-ring { display:none; }
    .cert-grid { grid-template-columns: 1fr; }
    .cert-card { max-width: 520px; margin: 0 auto; width: 100%; }
  }
  @media(max-width:600px) {
    section { padding:80px 5vw; }
    .projects-grid { grid-template-columns:1fr; }
    .contact-card { min-width:unset; width:100%; }
    footer { flex-direction:column; text-align:center; }
    .hero-cta { flex-direction:column; }
    .btn-primary, .btn-outline { text-align:center; justify-content:center; }
    .cert-grid { grid-template-columns: 1fr; gap: 20px; }
    .cert-card { max-width: 100%; }
    .cert-footer { padding: 14px 16px; }
    .cert-title { font-size: 1rem; }
    .cert-badge-top { font-size: 0.68rem; padding: 10px 16px; }
  }

  /* ─── CERTIFICATES ────────────────────────────── */
  #certificates { background: var(--navy-mid); }
  .cert-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
    gap: 32px;
  }
  .cert-card {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
    backdrop-filter: blur(10px);
    transition: var(--transition);
  }
  .cert-card:hover { transform: translateY(-8px); border-color: rgba(212,168,83,0.5); box-shadow: 0 28px 70px rgba(0,0,0,0.4); }
  .cert-badge-top {
    padding: 12px 20px;
    background: linear-gradient(90deg, rgba(212,168,83,0.12), rgba(0,180,216,0.08));
    border-bottom: 1px solid var(--border);
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.75rem; color: var(--teal);
    letter-spacing: 0.15em; text-transform: uppercase;
    display: flex; align-items: center; gap: 8px;
  }
  .cert-badge-top i { color: var(--gold); }
  .cert-img {
    width: 100%; display: block;
    object-fit: contain;
  }
  .cert-footer {
    padding: 20px 24px;
    border-top: 1px solid var(--border);
  }
  .cert-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.15rem; color: var(--white); font-weight: 700;
    margin-bottom: 4px;
  }
  .cert-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.72rem; color: var(--text-muted);
    margin-bottom: 12px;
  }
  .cert-verify {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 0.8rem; color: var(--gold); font-weight: 600;
    text-decoration: none; letter-spacing: 0.05em;
    border-bottom: 1px solid transparent;
    transition: var(--transition);
  }   .cert-verify:hover { color: var(--gold-light); border-color: var(--gold-light); }