/* ============================================================
   HABIB ODOUNHARO — Portfolio CSS v2
   Dark mode · i18n · Project filters · EmailJS
   ============================================================ */

/* ---- CSS VARIABLES (Light theme) ---- */
:root {
  --blue-100: #e0f2fe;
  --blue-200: #bae6fd;
  --blue-300: #7dd3fc;
  --blue-400: #38bdf8;
  --blue-500: #0ea5e9;
  --blue-600: #0284c7;
  --blue-700: #0369a1;
  --gradient:      linear-gradient(135deg, #38bdf8 0%, #0284c7 100%);
  --gradient-soft: linear-gradient(135deg, #e0f2fe 0%, #bae6fd 100%);

  /* Themed colours */
  --bg-primary:   #ffffff;
  --bg-secondary: #f8fbff;
  --bg-card:      #ffffff;
  --text-primary: #0f172a;
  --text-secondary:#64748b;
  --text-muted:   #94a3b8;
  --border:       rgba(56,189,248,0.12);
  --border-hover: rgba(56,189,248,0.35);
  --shadow-sm: 0 2px 12px rgba(2,132,199,0.08);
  --shadow-md: 0 8px 30px rgba(2,132,199,0.12);
  --shadow-lg: 0 20px 60px rgba(2,132,199,0.16);
  --nav-bg:    rgba(255,255,255,0.88);
  --nav-border:rgba(56,189,248,0.10);
  --input-bg:  #fafcff;
  --input-border:#e2e8f0;

  --radius:    16px;
  --radius-lg: 24px;
  --font-title:'Syne', sans-serif;
  --font-body: 'DM Sans', sans-serif;
  --transition: all 0.35s cubic-bezier(0.4,0,0.2,1);
}

/* ---- DARK THEME ---- */
[data-theme="dark"] {
  --blue-100: rgba(56,189,248,0.1);
  --blue-200: rgba(56,189,248,0.2);
  --gradient-soft: linear-gradient(135deg,rgba(56,189,248,0.12),rgba(2,132,199,0.18));

  --bg-primary:   #0b1120;
  --bg-secondary: #111827;
  --bg-card:      #1a2438;
  --text-primary: #f1f5f9;
  --text-secondary:#94a3b8;
  --text-muted:   #64748b;
  --border:       rgba(56,189,248,0.15);
  --border-hover: rgba(56,189,248,0.45);
  --shadow-sm: 0 2px 12px rgba(0,0,0,0.3);
  --shadow-md: 0 8px 30px rgba(0,0,0,0.4);
  --shadow-lg: 0 20px 60px rgba(0,0,0,0.5);
  --nav-bg:    rgba(11,17,32,0.92);
  --nav-border:rgba(56,189,248,0.12);
  --input-bg:  #1a2438;
  --input-border:#2d3f5c;
}

/* ---- RESET & BASE ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{
  font-family:var(--font-body);
  color:var(--text-primary);
  background:var(--bg-primary);
  overflow-x:hidden;
  line-height:1.7;
  transition:background 0.4s ease,color 0.4s ease;
}
h1,h2,h3,h4,h5,h6{font-family:var(--font-title);font-weight:700;line-height:1.2;color:var(--text-primary)}
a{text-decoration:none;color:inherit}
img{max-width:100%}

/* ---- UTILITIES ---- */
.section-padding{padding:100px 0}
.bg-white{background:var(--bg-primary)!important}
.bg-light-custom{background:var(--bg-secondary)!important}

.gradient-text{
  background:var(--gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.section-header{margin-bottom:20px}
.section-tag{
  display:inline-block;font-size:0.78rem;font-weight:600;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--blue-500);background:var(--blue-100);
  padding:6px 16px;border-radius:50px;margin-bottom:14px;
}
.section-title{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:12px}
.section-subtitle{font-size:1.05rem;color:var(--text-secondary);max-width:520px;margin:0 auto}

/* ---- BUTTONS ---- */
.btn-primary-custom{
  background:var(--gradient);color:#fff!important;border:none;border-radius:50px;
  padding:12px 30px;font-family:var(--font-title);font-weight:600;font-size:0.92rem;
  letter-spacing:0.02em;transition:var(--transition);
  box-shadow:0 4px 20px rgba(2,132,199,0.3);display:inline-flex;align-items:center;
}
.btn-primary-custom:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(2,132,199,0.45);color:#fff!important}
.btn-outline-custom{
  background:transparent;color:var(--blue-600)!important;border:2px solid var(--blue-400);
  border-radius:50px;padding:10px 30px;font-family:var(--font-title);font-weight:600;
  font-size:0.92rem;transition:var(--transition);display:inline-flex;align-items:center;
}
.btn-outline-custom:hover{background:var(--gradient);border-color:transparent;color:#fff!important;transform:translateY(-2px)}
.btn-white{
  background:rgba(255,255,255,0.95);color:#0f172a!important;border:none;border-radius:50px;
  padding:7px 18px;font-size:0.82rem;font-weight:600;transition:var(--transition);
}
.btn-white:hover{background:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.15)}

/* ============================================================
   NAVBAR
   ============================================================ */
#mainNav{
  background:var(--nav-bg);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--nav-border);
  padding:14px 0;transition:var(--transition);z-index:1030;
}
#mainNav.scrolled{padding:10px 0;box-shadow:var(--shadow-md)}
.brand-text{font-family:var(--font-title);font-size:1.35rem;font-weight:800;color:var(--text-primary);letter-spacing:-0.02em}
.brand-dot{color:var(--blue-500)}
.nav-link{font-family:var(--font-body);font-size:0.9rem;font-weight:500;color:var(--text-secondary)!important;padding:8px 14px!important;border-radius:8px;transition:var(--transition)}
.nav-link:hover,.nav-link.active{color:var(--blue-600)!important;background:var(--blue-100)}

/* Control buttons */
.ctrl-btn{
  background:var(--blue-100);border:1.5px solid var(--border);
  border-radius:50px;padding:6px 14px;font-size:0.8rem;font-weight:700;
  color:var(--text-primary);cursor:pointer;transition:var(--transition);
  display:flex;align-items:center;gap:5px;white-space:nowrap;
}
.ctrl-btn:hover{background:var(--gradient);color:#fff;border-color:transparent}
.theme-btn{padding:7px 12px}

/* Hamburger */
.navbar-toggler{border:none;background:none;padding:4px;box-shadow:none!important;outline:none!important}
.hamburger-icon{display:flex;flex-direction:column;gap:5px;cursor:pointer}
.hamburger-icon span{display:block;width:24px;height:2px;background:var(--text-primary);border-radius:2px;transition:var(--transition)}

/* ============================================================
   HERO
   ============================================================ */
.hero-section{
  min-height:100vh;padding:130px 0 80px;position:relative;overflow:hidden;
  background:linear-gradient(160deg,var(--bg-secondary) 0%,var(--bg-primary) 50%,var(--bg-secondary) 100%);
}
.hero-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:0.3;pointer-events:none;transition:opacity 0.4s}
[data-theme="dark"] .hero-blob{opacity:0.15}
.hero-blob-1{width:500px;height:500px;background:radial-gradient(circle,#7dd3fc,#0ea5e9);top:-100px;right:-100px}
.hero-blob-2{width:350px;height:350px;background:radial-gradient(circle,#bae6fd,#38bdf8);bottom:-50px;left:-80px}

/* Particles */
.hero-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.particle{
  position:absolute;width:4px;height:4px;border-radius:50%;
  background:var(--blue-400);opacity:0;
  animation:particleFly linear infinite;
}
@keyframes particleFly{
  0%{opacity:0;transform:translateY(100vh) scale(0)}
  10%{opacity:0.6}
  90%{opacity:0.3}
  100%{opacity:0;transform:translateY(-20px) scale(1)}
}

.hero-tag{display:inline-block;font-size:0.82rem;font-weight:600;color:var(--blue-600);background:var(--blue-100);border:1px solid var(--blue-200);padding:6px 16px;border-radius:50px;margin-bottom:20px}
.hero-title{font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800;line-height:1.1;letter-spacing:-0.03em;margin-bottom:16px}
.hero-subtitle{font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:400;color:var(--text-secondary);margin-bottom:18px;min-height:2rem}
.typing-prefix{color:var(--text-primary);font-weight:500}
.typing-text{color:var(--blue-600);font-weight:700;font-family:var(--font-title)}
.typing-cursor{color:var(--blue-400);animation:blink 0.8s step-end infinite;font-weight:300}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
.hero-desc{font-size:1rem;color:var(--text-secondary);max-width:500px;margin-bottom:36px;line-height:1.8}
.hero-actions{margin-bottom:48px;display:flex;flex-wrap:wrap;gap:12px}
.hero-stats{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.stat-item{text-align:center}
.stat-number{display:block;font-family:var(--font-title);font-size:1.8rem;font-weight:800;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}
.stat-label{font-size:0.78rem;color:var(--text-secondary);font-weight:500;letter-spacing:0.02em}
.stat-divider{width:1px;height:36px;background:linear-gradient(180deg,transparent,var(--blue-200),transparent)}

/* Avatar */
.hero-avatar-wrap{position:relative;width:360px;height:360px}
.hero-avatar{width:320px;height:320px;border-radius:50%;background:var(--gradient);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);position:absolute;top:20px;left:20px;animation:float 5s ease-in-out infinite}
.avatar-inner{width:280px;height:280px;border-radius:50%;background:linear-gradient(180deg,#bae6fd 0%,#7dd3fc 100%);display:flex;align-items:center;justify-content:center;overflow:hidden}
.avatar-icon{font-size:8rem;color:var(--blue-700);margin-top:40px}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.badge-float{position:absolute;background:var(--bg-card);border-radius:50px;padding:8px 16px;font-size:0.78rem;font-weight:700;color:var(--text-primary);box-shadow:var(--shadow-md);display:flex;align-items:center;gap:6px;animation:floatBadge 4s ease-in-out infinite;white-space:nowrap;border:1px solid var(--border)}
.badge-float i{color:var(--blue-500);font-size:0.9rem}
.badge-float-1{top:0;left:0;animation-delay:0s}
.badge-float-2{bottom:50px;right:0;animation-delay:1.2s}
.badge-float-3{bottom:0;left:20px;animation-delay:2s}
@keyframes floatBadge{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* ============================================================
   ABOUT
   ============================================================ */
.about-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:36px;box-shadow:var(--shadow-md);border:1px solid var(--border);text-align:center}
.about-avatar-mini{width:80px;height:80px;border-radius:50%;background:var(--gradient);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:2rem;color:white;box-shadow:0 4px 16px rgba(2,132,199,0.3)}
.about-name{font-size:1.5rem;font-weight:800}
.about-role{font-size:0.88rem;color:var(--blue-500);font-weight:600;background:var(--blue-100);padding:4px 14px;border-radius:50px;display:inline-block;margin-top:6px}
.about-bio{font-size:0.95rem;color:var(--text-secondary);line-height:1.8}
.about-info-list{text-align:left;margin-top:20px}
.info-row{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:0.9rem;color:var(--text-primary);border-bottom:1px solid var(--border)}
.info-row i{color:var(--blue-500);width:16px}
.info-row:last-child{border-bottom:none}
.skill-card{background:var(--bg-card);border-radius:var(--radius);padding:28px 24px;box-shadow:var(--shadow-sm);border:1px solid var(--border);height:100%;transition:var(--transition);position:relative;overflow:hidden}
.skill-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient);transform:scaleX(0);transition:var(--transition)}
.skill-card:hover::before{transform:scaleX(1)}
.skill-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.skill-card-icon{width:52px;height:52px;border-radius:14px;background:var(--gradient-soft);display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:var(--blue-600);margin-bottom:14px}
.skill-card h5{font-size:1rem;font-weight:700;margin-bottom:8px}
.skill-card p{font-size:0.87rem;color:var(--text-secondary);margin:0}

/* ============================================================
   SKILLS
   ============================================================ */
.skills-block{background:var(--bg-card);border-radius:var(--radius-lg);padding:36px;box-shadow:var(--shadow-sm);border:1px solid var(--border)}
.skills-block-title{font-size:1rem;font-weight:700;margin-bottom:28px;padding-bottom:14px;border-bottom:2px solid var(--blue-100);display:flex;align-items:center}
.skills-block-title i{color:var(--blue-500)}
.skill-bar-wrap{margin-bottom:22px}
.skill-bar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:0.88rem;font-weight:600;color:var(--text-primary)}
.skill-percent{color:var(--blue-500);font-weight:700}
.skill-track{background:var(--blue-100);border-radius:50px;height:8px;overflow:hidden}
.skill-fill{height:100%;border-radius:50px;background:var(--gradient);width:0;transition:width 1.2s cubic-bezier(0.4,0,0.2,1);box-shadow:0 2px 8px rgba(2,132,199,0.3)}
.tech-badges{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px}
.tech-badge{display:inline-flex;align-items:center;gap:6px;background:var(--bg-card);border:1.5px solid var(--blue-200);color:var(--blue-700);padding:8px 18px;border-radius:50px;font-size:0.82rem;font-weight:600;transition:var(--transition);cursor:default}
.tech-badge:hover{background:var(--gradient);border-color:transparent;color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-sm)}

/* ============================================================
   PROJECT FILTERS
   ============================================================ */
.project-filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.filter-btn{
  background:var(--bg-card);border:1.5px solid var(--border);
  color:var(--text-secondary);border-radius:50px;
  padding:8px 22px;font-size:0.85rem;font-weight:600;
  cursor:pointer;transition:var(--transition);font-family:var(--font-body);
}
.filter-btn:hover{border-color:var(--blue-400);color:var(--blue-600)}
.filter-btn.active{background:var(--gradient);border-color:transparent;color:#fff;box-shadow:0 4px 16px rgba(2,132,199,0.3)}

/* Project cards */
.project-card{border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-card);box-shadow:var(--shadow-sm);border:1px solid var(--border);transition:var(--transition);height:100%}
.project-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}
.project-img{height:200px;display:flex;align-items:center;justify-content:center;font-size:3.5rem;color:rgba(255,255,255,0.8);position:relative;overflow:hidden}
.project-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.45);display:flex;align-items:center;justify-content:center;gap:8px;opacity:0;transition:var(--transition)}
.project-card:hover .project-overlay{opacity:1}
.project-item.hiding{opacity:0;transform:scale(0.9);transition:all 0.3s ease}
.project-item.showing{opacity:1;transform:scale(1);transition:all 0.35s ease}
.project-body{padding:22px 24px}
.project-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.p-tag{font-size:0.73rem;font-weight:700;background:var(--blue-100);color:var(--blue-600);padding:3px 10px;border-radius:50px}
.project-title{font-size:1.05rem;font-weight:700;margin-bottom:8px}
.project-desc{font-size:0.87rem;color:var(--text-secondary);margin:0}

/* ============================================================
   SERVICES
   ============================================================ */
.service-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:40px 32px;box-shadow:var(--shadow-sm);border:1px solid var(--border);height:100%;transition:var(--transition);position:relative;overflow:hidden}
.service-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:var(--border-hover)}
.service-card-featured{background:var(--gradient);border-color:transparent}
.service-card-featured h4,.service-card-featured p,.service-card-featured .service-list li{color:rgba(255,255,255,0.95)!important}
.service-card-featured .service-list li i{color:rgba(255,255,255,0.8)!important}
.service-card-featured .service-icon{background:rgba(255,255,255,0.2)!important;color:white!important}
.service-badge{position:absolute;top:18px;right:18px;background:rgba(255,255,255,0.25);color:white;font-size:0.72rem;font-weight:700;padding:4px 12px;border-radius:50px;letter-spacing:0.05em}
.service-icon{width:64px;height:64px;border-radius:18px;background:var(--gradient-soft);display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:var(--blue-600);margin-bottom:20px}
.service-card h4{font-size:1.15rem;font-weight:700;margin-bottom:12px}
.service-card>p{font-size:0.9rem;color:var(--text-secondary);margin-bottom:20px}
.service-list{list-style:none;padding:0;margin:0}
.service-list li{display:flex;align-items:center;gap:10px;font-size:0.87rem;color:var(--text-secondary);padding:5px 0}
.service-list li i{color:var(--blue-500);font-size:0.75rem}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-info{padding:8px 0}
.contact-info-item{display:flex;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid var(--border)}
.contact-info-item:last-of-type{border-bottom:none}
.ci-icon{width:46px;height:46px;min-width:46px;border-radius:12px;background:var(--gradient-soft);display:flex;align-items:center;justify-content:center;color:var(--blue-600);font-size:1rem}
.contact-info-item h6{font-size:0.8rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-secondary);margin-bottom:2px}
.contact-info-item p{font-size:0.92rem;margin:0;font-weight:500}
.contact-socials{display:flex;gap:10px}
.social-btn{width:42px;height:42px;border-radius:50%;background:var(--bg-card);border:1.5px solid var(--border);color:var(--blue-600)!important;display:flex;align-items:center;justify-content:center;font-size:0.95rem;transition:var(--transition);box-shadow:var(--shadow-sm)}
.social-btn:hover{background:var(--gradient);border-color:transparent;color:#fff!important;transform:translateY(-3px);box-shadow:0 6px 20px rgba(2,132,199,0.35)}

.contact-form{background:var(--bg-card);border-radius:var(--radius-lg);padding:40px;box-shadow:var(--shadow-md);border:1px solid var(--border)}
.emailjs-notice{background:var(--blue-100);border:1px solid var(--blue-200);border-radius:10px;padding:11px 16px;font-size:0.82rem;color:var(--blue-700);line-height:1.5}
.emailjs-notice code{background:rgba(2,132,199,0.15);padding:1px 5px;border-radius:4px;font-size:0.8rem}
.form-group-custom{margin-bottom:4px}
.form-group-custom label{display:block;font-size:0.82rem;font-weight:700;color:var(--text-primary);margin-bottom:7px;letter-spacing:0.02em}
.form-control{border:1.5px solid var(--input-border);border-radius:12px;padding:12px 16px;font-size:0.92rem;color:var(--text-primary);font-family:var(--font-body);transition:var(--transition);background:var(--input-bg)}
.form-control:focus{border-color:var(--blue-400);box-shadow:0 0 0 3px rgba(56,189,248,0.15);background:var(--bg-card);outline:none}
.form-control.is-invalid{border-color:#ef4444}
.invalid-feedback{font-size:0.8rem;color:#ef4444;display:none}
.form-control.is-invalid+.invalid-feedback{display:block}
.form-control::placeholder{color:var(--text-muted)}
.alert-success-custom{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:1px solid #6ee7b7;border-radius:12px;padding:14px 20px;font-size:0.9rem;font-weight:600;color:#065f46}
.alert-error-custom{background:linear-gradient(135deg,#fee2e2,#fca5a5);border:1px solid #f87171;border-radius:12px;padding:14px 20px;font-size:0.9rem;font-weight:600;color:#991b1b}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:#060d1a;padding:60px 0 0}
[data-theme="dark"] .footer{background:#030710}
.footer-inner{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:36px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,0.07)}
.footer-brand .brand-text{font-size:1.4rem;color:#fff}
.footer-brand p{font-size:0.88rem;color:rgba(255,255,255,0.4);margin-top:10px;line-height:1.7}
.footer-links{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center}
.footer-links a{font-size:0.88rem;color:rgba(255,255,255,0.5);font-weight:500;transition:var(--transition)}
.footer-links a:hover{color:var(--blue-400)}
.footer-socials{display:flex;gap:10px}
.footer .social-btn{background:rgba(255,255,255,0.07);border-color:rgba(255,255,255,0.12);color:rgba(255,255,255,0.55)!important}
.footer .social-btn:hover{background:var(--gradient);border-color:transparent;color:#fff!important}
.footer-bottom{padding:20px 0;text-align:center}
.footer-bottom p{font-size:0.83rem;color:rgba(255,255,255,0.3);margin:0}

/* ============================================================
   MODALS
   ============================================================ */
.modal-content.modal-custom{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden}
.modal-custom .modal-header{background:var(--gradient);padding:20px 28px;border-bottom:none}
.modal-custom .modal-title{color:white;font-family:var(--font-title);font-weight:700}
.btn-close-custom{background:rgba(255,255,255,0.2);border:none;color:white;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition)}
.btn-close-custom:hover{background:rgba(255,255,255,0.35)}
.modal-custom .modal-body{padding:28px;color:var(--text-secondary)}
.modal-custom .modal-body p{font-size:0.93rem;line-height:1.7;margin-bottom:14px}
.modal-custom .modal-body ul{padding-left:20px}
.modal-custom .modal-body li{font-size:0.88rem;color:var(--text-secondary);margin-bottom:6px}
.modal-tags{display:flex;gap:6px;flex-wrap:wrap}

/* ============================================================
   TOAST NOTIFICATION
   ============================================================ */
.toast-notif{
  position:fixed;bottom:90px;right:24px;z-index:9999;
  background:var(--dark,#0f172a);color:#fff;
  padding:14px 24px;border-radius:12px;font-size:0.88rem;font-weight:600;
  box-shadow:0 8px 30px rgba(0,0,0,0.3);
  transform:translateY(20px);opacity:0;
  transition:all 0.35s cubic-bezier(0.4,0,0.2,1);
  pointer-events:none;max-width:300px;line-height:1.4;
  border-left:4px solid var(--blue-400);
}
.toast-notif.show{transform:translateY(0);opacity:1}

/* ============================================================
   SCROLL TO TOP
   ============================================================ */
.scroll-top-btn{position:fixed;bottom:28px;right:28px;width:46px;height:46px;border-radius:50%;background:var(--gradient);color:white;border:none;font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 20px rgba(2,132,199,0.4);opacity:0;transform:translateY(20px);transition:var(--transition);z-index:999}
.scroll-top-btn.visible{opacity:1;transform:translateY(0)}
.scroll-top-btn:hover{transform:translateY(-4px);box-shadow:0 8px 28px rgba(2,132,199,0.5)}

/* ============================================================
   SCROLL ANIMATIONS
   ============================================================ */
[data-animate]{opacity:0;transition:opacity 0.6s ease,transform 0.6s ease}
[data-animate="fade-up"]   {transform:translateY(40px)}
[data-animate="fade-down"] {transform:translateY(-40px)}
[data-animate="fade-right"]{transform:translateX(-40px)}
[data-animate="fade-left"] {transform:translateX(40px)}
[data-animate].animated{opacity:1;transform:translate(0,0)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:991.98px){
  .section-padding{padding:72px 0}
  .hero-section{padding:110px 0 60px}
  .hero-title{font-size:clamp(2rem,7vw,3rem)}
  .hero-stats{gap:16px}
  .navbar-controls{order:2}
  .navbar-collapse{background:var(--bg-card);backdrop-filter:blur(20px);border-radius:var(--radius);padding:16px;margin-top:12px;box-shadow:var(--shadow-md);border:1px solid var(--border)}
  .navbar-nav{gap:4px}
  .nav-link{padding:10px 16px!important}
  .navbar-nav .ms-lg-3{margin-top:8px}
  .navbar-nav .ms-lg-3 .btn-primary-custom{width:100%;justify-content:center}
  .footer-inner{flex-direction:column;align-items:center;text-align:center}
  .footer-links,.footer-socials{justify-content:center}
}
@media(max-width:575.98px){
  .hero-actions{flex-direction:column}
  .hero-actions .btn-primary-custom,.hero-actions .btn-outline-custom{width:100%;justify-content:center}
  .hero-stats{justify-content:center}
  .contact-form{padding:24px 20px}
  .skills-block{padding:24px 20px}
  .about-card{padding:24px 20px}
  .project-filters{gap:6px}
  .filter-btn{padding:7px 16px;font-size:0.8rem}
  .navbar-controls .lang-btn .lang-label{display:none}
}
