/* ============================================================
   Portfolio — Papa Amadou Ndiaye
   style.css — Feuille de styles principale
   ============================================================ */

:root {
  --bg:      #07080d;
  --bg2:     #0c0d15;
  --surface: #161822;
  --border:  rgba(255,255,255,0.06);
  --accent:  #ff6b1a;
  --accent2: #ff9500;
  --text:    #e8eaf2;
  --muted:   #6b7189;
  --white:   #ffffff;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'DM Sans',sans-serif; background:var(--bg); color:var(--text); overflow-x:hidden; cursor:none; }

/* CURSEUR */
.cursor { position:fixed;width:10px;height:10px;background:var(--accent);border-radius:50%;pointer-events:none;z-index:9999;transition:transform 0.15s;mix-blend-mode:exclusion; }
.cursor-ring { position:fixed;width:38px;height:38px;border:1.5px solid rgba(255,107,26,0.5);border-radius:50%;pointer-events:none;z-index:9998;transition:all 0.3s ease; }

/* NAV */
nav { position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:22px 64px;background:rgba(7,8,13,0.9);backdrop-filter:blur(20px);border-bottom:1px solid var(--border); }
.nav-logo { font-family:'Poppins',sans-serif;font-weight:800;font-size:1rem;color:var(--white);text-decoration:none; }
.nav-logo span { color:var(--accent); }
.nav-links { display:flex;gap:36px;list-style:none; }
.nav-links a { font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color 0.2s;font-weight:500;font-family:'Poppins',sans-serif; }
.nav-links a:hover { color:var(--accent); }
.nav-cta { padding:10px 26px;background:var(--accent);color:var(--white);font-size:0.78rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:600;transition:all 0.25s;font-family:'Poppins',sans-serif;clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);border:none;cursor:pointer; }
.nav-cta:hover { background:var(--accent2);transform:translateY(-2px); }
.nav-mob-btn { display:none;background:none;border:none;color:var(--white);font-size:1.4rem;cursor:pointer; }
#navMobile { position:fixed;inset:0;background:rgba(7,8,13,0.97);backdrop-filter:blur(20px);z-index:99;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;transform:translateX(100%);transition:transform 0.4s; }
#navMobile.open { transform:translateX(0); }
#navMobile a { font-family:'Poppins',sans-serif;font-size:1.5rem;font-weight:700;color:var(--white);text-decoration:none;letter-spacing:0.1em;text-transform:uppercase; }
#navMobile a:hover { color:var(--accent); }
.nmcls { position:absolute;top:24px;right:32px;background:none;border:none;color:var(--muted);font-size:1.8rem;cursor:pointer; }

/* HERO */
#hero { min-height:100vh;display:grid;grid-template-columns:1fr 480px;align-items:center;padding:120px 64px 80px;position:relative;overflow:hidden;gap:60px; }
.hero-bg { position:absolute;inset:0;background:radial-gradient(ellipse 55% 70% at 70% 40%,rgba(255,107,26,0.12) 0%,transparent 60%),radial-gradient(ellipse 40% 50% at 10% 80%,rgba(255,149,0,0.07) 0%,transparent 55%),radial-gradient(ellipse 30% 40% at 90% 90%,rgba(255,60,0,0.06) 0%,transparent 50%); }
.hero-particles { position:absolute;inset:0;overflow:hidden; }
.particle { position:absolute;border-radius:50%;animation:floatParticle linear infinite;opacity:0; }
@keyframes floatParticle { 0%{opacity:0;transform:translateY(0) scale(0)}20%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translateY(-120vh) scale(1.5)} }
.hero-mesh { position:absolute;inset:0;background-image:linear-gradient(rgba(255,107,26,0.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,107,26,0.03) 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(ellipse 90% 90% at 60% 40%,black 20%,transparent 75%); }
.hero-orb { position:absolute;border-radius:50%;filter:blur(80px);animation:orbFloat 8s ease-in-out infinite; }
.orb1{width:500px;height:500px;background:radial-gradient(circle,rgba(255,107,26,0.15),transparent 70%);right:-100px;top:10%;}
.orb2{width:350px;height:350px;background:radial-gradient(circle,rgba(255,149,0,0.1),transparent 70%);right:200px;bottom:-50px;animation-delay:-3s;}
.orb3{width:250px;height:250px;background:radial-gradient(circle,rgba(255,60,0,0.08),transparent 70%);left:30%;top:-80px;animation-delay:-5s;}
@keyframes orbFloat { 0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-30px) scale(1.05)} }
.hero-left { position:relative;z-index:2; }
.hero-tag { display:inline-flex;align-items:center;gap:10px;font-size:0.72rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:28px;font-family:'Poppins',sans-serif;padding:8px 16px;border:1px solid rgba(255,107,26,0.3);background:rgba(255,107,26,0.06); }
.hero-tag .dot { width:7px;height:7px;background:var(--accent);border-radius:50%;animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(0.8)} }
h1 { font-family:'Poppins',sans-serif;font-size:clamp(2.8rem,5.5vw,5.5rem);font-weight:900;line-height:1.05;letter-spacing:-0.03em;color:var(--white);margin-bottom:8px; }
h1 .name-line1 { display:block;margin-bottom:6px; }
h1 .name-line2 { display:block;background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.hero-subtitle { font-size:1rem;color:var(--muted);font-weight:300;margin:22px 0 36px;max-width:480px;line-height:1.75; }
.hero-roles { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:44px; }
.role-pill { padding:6px 14px;border:1px solid var(--border);font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);font-weight:500;background:var(--surface);font-family:'Poppins',sans-serif;transition:all 0.2s; }
.role-pill:hover { border-color:var(--accent);color:var(--accent); }
.hero-ctas { display:flex;gap:14px;align-items:center;flex-wrap:wrap; }
.btn-primary { padding:14px 36px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:var(--white);font-family:'Poppins',sans-serif;font-weight:700;font-size:0.82rem;letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;transition:all 0.3s;display:inline-block;clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%); }
.btn-primary:hover { transform:translateY(-3px);box-shadow:0 20px 40px rgba(255,107,26,0.3); }
.hero-right { position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:24px; }
.photo-frame { position:relative;width:360px;height:430px; }
.photo-glow { position:absolute;inset:-20px;background:radial-gradient(ellipse,rgba(255,107,26,0.2),transparent 65%);animation:orbFloat 6s ease-in-out infinite;border-radius:50%; }
.photo-border { position:absolute;inset:0;border:2px solid rgba(255,107,26,0.4);clip-path:polygon(20px 0%,100% 0%,100% calc(100% - 20px),calc(100% - 20px) 100%,0% 100%,0% 20px);z-index:3; }
.photo-corner { position:absolute;width:24px;height:24px;border-color:var(--accent);border-style:solid;z-index:4; }
.photo-corner.tl{top:-2px;left:-2px;border-width:3px 0 0 3px;}
.photo-corner.tr{top:-2px;right:-2px;border-width:3px 3px 0 0;}
.photo-corner.bl{bottom:-2px;left:-2px;border-width:0 0 3px 3px;}
.photo-corner.br{bottom:-2px;right:-2px;border-width:0 3px 3px 0;}
.photo-img { width:100%;height:100%;object-fit:cover;object-position:top;clip-path:polygon(20px 0%,100% 0%,100% calc(100% - 20px),calc(100% - 20px) 100%,0% 100%,0% 20px);position:relative;z-index:2;display:block; }
.photo-badge { position:absolute;bottom:-16px;left:-20px;background:var(--surface);border:1px solid rgba(255,107,26,0.4);padding:14px 20px;z-index:5;display:flex;align-items:center;gap:12px; }
.badge-icon { font-size:1.5rem; }
.badge-num { font-family:'Poppins',sans-serif;font-size:1.4rem;font-weight:800;color:var(--accent);line-height:1; }
.badge-label { font-size:0.65rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted); }
.hero-stats-row { display:flex;gap:2px;width:100%; }
.stat-mini { flex:1;background:var(--surface);border:1px solid var(--border);padding:16px 20px;text-align:center;transition:border-color 0.3s; }
.stat-mini:hover { border-color:rgba(255,107,26,0.4); }
.stat-mini .num { font-family:'Poppins',sans-serif;font-size:1.6rem;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1; }
.stat-mini .lbl { font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);margin-top:3px;font-family:'Poppins',sans-serif; }

/* SECTIONS */
section { padding:96px 64px; }
.section-header { margin-bottom:60px; }
.section-tag { font-size:0.7rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:12px;font-family:'Poppins',sans-serif;display:flex;align-items:center;gap:12px; }
.section-tag::after { content:'';flex:1;max-width:50px;height:1px;background:var(--accent); }
h2 { font-family:'Poppins',sans-serif;font-size:clamp(2rem,4vw,3rem);font-weight:800;color:var(--white);letter-spacing:-0.025em;line-height:1.1; }
h2 em { background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-style:normal; }
.divider { width:100%;height:1px;background:linear-gradient(90deg,var(--accent),rgba(255,149,0,0.3),transparent); }

/* À PROPOS */
#about { background:var(--bg2);position:relative;overflow:hidden; }
#about::before { content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 0% 50%,rgba(255,107,26,0.04),transparent); }
.about-grid { display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start; }
.about-text p { font-size:1rem;line-height:1.85;color:var(--muted);margin-bottom:18px; }
.about-text p strong { color:var(--text);font-weight:500; }
.about-info { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:32px; }
.info-item { padding:14px 18px;background:var(--surface);border-left:2px solid var(--accent);transition:transform 0.2s; }
.info-item:hover { transform:translateX(4px); }
.info-label { font-size:0.63rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;font-weight:600;font-family:'Poppins',sans-serif; }
.info-value { font-size:0.85rem;color:var(--text);font-weight:500; }
.about-right h3 { font-family:'Poppins',sans-serif;font-size:1.3rem;font-weight:700;color:var(--white);margin-bottom:28px; }

/* COMPÉTENCES */
.skills-grid { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
.skill-card { background:var(--surface);border:1px solid var(--border);padding:20px;position:relative;overflow:hidden;transition:all 0.3s;cursor:default; }
.skill-card:hover { border-color:rgba(255,107,26,0.4);transform:translateY(-3px);box-shadow:0 12px 32px rgba(255,107,26,0.1); }
.skill-card-top { display:flex;align-items:center;justify-content:space-between;margin-bottom:14px; }
.skill-logo { width:42px;height:42px;display:flex;align-items:center;justify-content:center;font-size:1.6rem; }
.skill-logo img { width:36px;height:36px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,0.5)); }
.skill-pct-ring { position:relative;width:52px;height:52px; }
.skill-pct-ring svg { transform:rotate(-90deg); }
.skill-pct-ring .track { fill:none;stroke:rgba(255,255,255,0.07);stroke-width:3.5; }
.skill-pct-ring .fill { fill:none;stroke:url(#orangeGrad);stroke-width:3.5;stroke-linecap:round;transition:stroke-dashoffset 1.5s cubic-bezier(0.4,0,0.2,1);stroke-dasharray:138;stroke-dashoffset:138; }
.skill-pct-label { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Poppins',sans-serif;font-size:0.65rem;font-weight:700;color:var(--accent); }
.skill-name { font-family:'Poppins',sans-serif;font-size:0.78rem;font-weight:600;color:var(--white);margin-bottom:4px; }
.skill-desc { font-size:0.68rem;color:var(--muted);line-height:1.5; }
.skill-wave { position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent2));transform:scaleX(0);transform-origin:left;transition:transform 1.2s ease; }
.skill-card.animate .skill-wave { transform:scaleX(1); }

/* PROJETS */
#projects { background:var(--bg); }
.projects-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:2px; }
.project-card { background:var(--surface);padding:48px;position:relative;overflow:hidden;transition:all 0.35s;border:1px solid transparent;cursor:default; }
.project-card:hover { border-color:var(--accent);transform:translateY(-4px);box-shadow:0 24px 60px rgba(255,107,26,0.12); }
.project-card::before { content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,107,26,0.05),transparent);opacity:0;transition:opacity 0.35s; }
.project-card:hover::before { opacity:1; }
.project-num { font-family:'Poppins',sans-serif;font-size:5rem;font-weight:900;color:rgba(255,255,255,0.03);position:absolute;top:16px;right:24px;line-height:1;transition:color 0.35s; }
.project-card:hover .project-num { color:rgba(255,107,26,0.1); }
.project-cat { font-size:0.65rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:14px;font-family:'Poppins',sans-serif; }
.project-icon-box { width:56px;height:56px;border:1px solid rgba(255,107,26,0.25);background:rgba(255,107,26,0.06);display:flex;align-items:center;justify-content:center;margin-bottom:22px;transition:all 0.3s; }
.project-card:hover .project-icon-box { border-color:var(--accent);background:rgba(255,107,26,0.12);box-shadow:0 0 20px rgba(255,107,26,0.15); }
.project-card h3 { font-family:'Poppins',sans-serif;font-size:1.35rem;font-weight:700;color:var(--white);margin-bottom:10px;line-height:1.2; }
.project-card p { font-size:0.85rem;color:var(--muted);line-height:1.75; }
.projects-cta { text-align:center;margin-top:52px; }
.projects-cta a { display:inline-block;padding:16px 48px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:var(--white);font-family:'Poppins',sans-serif;font-weight:700;font-size:0.85rem;letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;transition:all 0.3s;clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%); }
.projects-cta a:hover { transform:translateY(-3px);box-shadow:0 20px 40px rgba(255,107,26,0.3); }

/* EXPÉRIENCE */
#experience { background:var(--bg2); }
.exp-grid { display:grid;grid-template-columns:1fr 1fr;gap:60px; }
.exp-col h3 { font-family:'Poppins',sans-serif;font-size:0.9rem;font-weight:700;color:var(--accent);letter-spacing:0.12em;text-transform:uppercase;margin-bottom:36px;padding-bottom:12px;border-bottom:1px solid var(--border); }
.exp-item { display:flex;gap:20px;margin-bottom:34px; }
.exp-dot { width:10px;height:10px;background:var(--accent);border-radius:50%;margin-top:6px;flex-shrink:0;position:relative;box-shadow:0 0 12px rgba(255,107,26,0.5); }
.exp-dot::after { content:'';position:absolute;top:10px;left:4px;width:1px;height:calc(100% + 24px);background:linear-gradient(to bottom,rgba(255,107,26,0.4),transparent); }
.exp-item:last-of-type .exp-dot::after { display:none; }
.exp-content h4 { font-family:'Poppins',sans-serif;font-size:0.95rem;font-weight:700;color:var(--white);margin-bottom:3px; }
.exp-role { font-size:0.78rem;color:var(--accent);font-weight:500;margin-bottom:3px;font-family:'Poppins',sans-serif; }
.exp-date { font-size:0.7rem;color:var(--muted);margin-bottom:8px; }
.exp-content p { font-size:0.8rem;color:var(--muted);line-height:1.6; }
.btn-diplomas { display:inline-flex;align-items:center;gap:10px;margin-top:32px;padding:13px 28px;border:1.5px solid rgba(255,107,26,0.5);background:rgba(255,107,26,0.06);color:var(--accent);font-family:'Poppins',sans-serif;font-size:0.78rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;transition:all 0.25s; }
.btn-diplomas:hover { border-color:var(--accent);background:rgba(255,107,26,0.14);transform:translateY(-2px);box-shadow:0 8px 24px rgba(255,107,26,0.2); }

/* TÉMOIGNAGES */
#testimonials { background:var(--bg);padding-bottom:96px; }
.testi-outer { position:relative;max-width:560px;margin:0 auto; }
.testi-stage { position:relative;height:260px;overflow:hidden; }
.testi-card { position:absolute;inset:0;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:32px 36px;opacity:0;transform:translateX(60px) scale(0.96);transition:opacity 0.5s ease,transform 0.5s ease;pointer-events:none;box-sizing:border-box; }
.testi-card.active { opacity:1;transform:translateX(0) scale(1);pointer-events:all;border-color:rgba(255,107,26,0.4);box-shadow:0 12px 40px rgba(255,107,26,0.12); }
.testi-card::before { content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:6px 6px 0 0; }
.testi-header { display:flex;align-items:center;gap:14px;margin-bottom:18px; }
.testi-avatar { width:50px;height:50px;border-radius:50%;border:2px solid rgba(255,107,26,0.5);background:#0c0d15;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden; }
.testi-avatar img { width:100%;height:100%;object-fit:contain; }
.testi-client { font-family:'Poppins',sans-serif;font-size:0.78rem;font-weight:700;color:var(--white);letter-spacing:0.07em;text-transform:uppercase; }
.testi-role { font-size:0.66rem;color:var(--accent);margin-top:3px;font-family:'Poppins',sans-serif; }
.quote-mark { font-size:2.2rem;line-height:0.8;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:0.4;margin-bottom:10px;font-family:'Poppins',sans-serif; }
.testi-card p { font-size:0.84rem;color:var(--text);line-height:1.8;font-style:italic; }
.testi-controls { display:flex;align-items:center;justify-content:center;gap:16px;margin-top:28px; }
.testi-btn { width:42px;height:42px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:1rem;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all 0.25s; }
.testi-btn:hover { border-color:var(--accent);color:var(--accent);background:rgba(255,107,26,0.08); }
.testi-dots { display:flex;gap:8px;align-items:center; }
.testi-dot { width:8px;height:8px;border-radius:50%;background:var(--border);cursor:pointer;transition:all 0.35s;border:none;padding:0; }
.testi-dot.active { background:var(--accent);width:24px;border-radius:4px; }

/* CONTACT */
#contact { background:var(--bg2);text-align:center;position:relative;overflow:hidden;padding-bottom:96px; }
#contact::before { content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 70% at 50% 50%,rgba(255,107,26,0.06),transparent); }
#contact .section-header { text-align:center; }
#contact .section-tag { justify-content:center; }
#contact .section-tag::after { display:none; }
#contact .section-tag::before { content:'';width:50px;height:1px;background:var(--accent); }
.contact-subtitle { font-size:1rem;color:var(--muted);max-width:440px;margin:0 auto 52px;line-height:1.75; }
.contact-items { display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-bottom:52px;position:relative;z-index:2; }
.contact-item { display:flex;align-items:center;gap:14px;padding:18px 28px;background:var(--surface);border:1px solid var(--border);transition:all 0.3s; }
.contact-item:hover { border-color:var(--accent);transform:translateY(-3px);box-shadow:0 12px 32px rgba(255,107,26,0.12); }
.contact-icon { font-size:1.3rem; }
.contact-label { font-size:0.62rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);font-weight:600;font-family:'Poppins',sans-serif; }
.contact-val { font-size:0.85rem;color:var(--text);font-weight:500; }
.btn-contact-main { display:inline-block;padding:18px 56px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:var(--white);font-family:'Poppins',sans-serif;font-weight:800;font-size:0.92rem;letter-spacing:0.12em;text-transform:uppercase;border:none;cursor:pointer;transition:all 0.3s;position:relative;z-index:2;clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%); }
.btn-contact-main:hover { transform:translateY(-3px);box-shadow:0 20px 40px rgba(255,107,26,0.35); }

/* FOOTER */
footer { padding:32px 64px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);background:var(--bg); }
.footer-text { font-size:0.76rem;color:var(--muted); }
.footer-brand { font-family:'Poppins',sans-serif;font-size:0.82rem;font-weight:700;color:var(--white); }
.footer-brand span { color:var(--accent); }
.fsoc { display:flex;gap:14px;align-items:center; }
.sl { width:32px;height:32px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all 0.25s;text-decoration:none; }
.sl:hover { border-color:var(--accent);color:var(--accent);background:rgba(255,107,26,0.08); }
.sl svg { width:14px;height:14px;fill:currentColor; }

/* WHATSAPP */
.wa { position:fixed;bottom:30px;right:30px;width:54px;height:54px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(37,211,102,0.4);z-index:200;transition:all 0.3s;text-decoration:none; }
.wa:hover { transform:translateY(-4px);box-shadow:0 16px 36px rgba(37,211,102,0.5); }
.wa svg { width:28px;height:28px;fill:white; }

/* SCROLL REVEAL */
.reveal { opacity:0;transform:translateY(30px);transition:opacity 0.7s ease,transform 0.7s ease; }
.reveal.visible { opacity:1;transform:translateY(0); }
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:var(--bg); }
::-webkit-scrollbar-thumb { background:linear-gradient(var(--accent),var(--accent2)); }

/* ============================================================
   MODAL — Formulaire de contact
   ============================================================ */
.modal-overlay { position:fixed;inset:0;background:rgba(0,0,0,0.85);backdrop-filter:blur(10px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity 0.3s ease; }
.modal-overlay.open { opacity:1;pointer-events:all; }
.modal-box { background:var(--surface);border:1px solid rgba(255,107,26,0.35);padding:48px 44px;width:100%;max-width:500px;max-height:88vh;overflow-y:auto;position:relative;transform:translateY(28px);transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1);box-shadow:0 40px 80px rgba(0,0,0,0.7); }
.modal-box::-webkit-scrollbar { width:3px; }
.modal-box::-webkit-scrollbar-thumb { background:var(--accent); }
.modal-overlay.open .modal-box { transform:translateY(0); }
.modal-close { position:absolute;top:16px;right:20px;background:none;border:none;color:var(--muted);font-size:1.4rem;cursor:pointer;line-height:1;transition:color 0.2s;width:32px;height:32px;display:flex;align-items:center;justify-content:center; }
.modal-close:hover { color:var(--accent); }
.modal-tag { font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);font-weight:600;font-family:'Poppins',sans-serif;margin-bottom:8px; }
.modal-title { font-family:'Poppins',sans-serif;font-size:1.5rem;font-weight:800;color:var(--white);margin-bottom:32px;line-height:1.2; }
.modal-title em { background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-style:normal; }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:14px; }
.form-group { display:flex;flex-direction:column;gap:7px;margin-bottom:16px; }
.form-group label { font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);font-weight:600;font-family:'Poppins',sans-serif; }
.form-group input, .form-group textarea { background:rgba(255,255,255,0.04);border:1px solid var(--border);padding:13px 16px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.9rem;outline:none;transition:border-color 0.25s;width:100%; }
.form-group input:focus, .form-group textarea:focus { border-color:rgba(255,107,26,0.6);background:rgba(255,107,26,0.04); }
.form-group textarea { min-height:110px;resize:vertical; }
.btn-send { width:100%;padding:15px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:var(--white);font-family:'Poppins',sans-serif;font-weight:700;font-size:0.85rem;letter-spacing:0.12em;text-transform:uppercase;border:none;cursor:pointer;transition:all 0.3s;margin-top:8px; }
.btn-send:hover { opacity:0.9;transform:translateY(-2px);box-shadow:0 12px 32px rgba(255,107,26,0.35); }
.form-success { display:none;text-align:center;padding:32px 0; }
.form-success .ck { font-size:3rem;margin-bottom:16px; }
.form-success p { font-size:0.95rem;color:var(--text);line-height:1.7; }
.form-success strong { color:var(--accent); }

/* ============================================================
   MODAL — Galerie Diplômes
   ============================================================ */
.dip-overlay { position:fixed;inset:0;background:rgba(0,0,0,0.9);backdrop-filter:blur(10px);z-index:2100;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity 0.3s ease; }
.dip-overlay.open { opacity:1;pointer-events:all; }
.dip-box { background:var(--surface);border:1px solid rgba(255,107,26,0.35);padding:48px 44px;width:100%;max-width:860px;max-height:88vh;overflow-y:auto;position:relative;transform:translateY(28px);transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1);box-shadow:0 40px 80px rgba(0,0,0,0.8); }
.dip-box::-webkit-scrollbar { width:3px; }
.dip-box::-webkit-scrollbar-thumb { background:var(--accent); }
.dip-overlay.open .dip-box { transform:translateY(0); }
.dip-close { position:absolute;top:16px;right:20px;background:none;border:none;color:var(--muted);font-size:1.4rem;cursor:pointer;line-height:1;transition:color 0.2s;width:32px;height:32px;display:flex;align-items:center;justify-content:center; }
.dip-close:hover { color:var(--accent); }
.dip-tag { font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);font-weight:600;font-family:'Poppins',sans-serif;margin-bottom:8px; }
.dip-title { font-family:'Poppins',sans-serif;font-size:1.5rem;font-weight:800;color:var(--white);margin-bottom:6px;line-height:1.2; }
.dip-title em { background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-style:normal; }
.dip-sub { font-size:0.8rem;color:var(--muted);margin-bottom:36px; }
.dip-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:16px;margin-bottom:28px; }
.dip-card { background:var(--bg2);border:1px solid var(--border);padding:26px 18px;text-align:center;transition:all 0.3s;position:relative;overflow:hidden; }
.dip-card::before { content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent2));transform:scaleX(0);transition:transform 0.4s;transform-origin:left; }
.dip-card:hover { border-color:rgba(255,107,26,0.45);transform:translateY(-4px);box-shadow:0 14px 32px rgba(255,107,26,0.12); }
.dip-card:hover::before { transform:scaleX(1); }
.dip-icon { font-size:2.4rem;margin-bottom:12px; }
.dip-name { font-family:'Poppins',sans-serif;font-size:0.8rem;font-weight:700;color:var(--white);margin-bottom:6px;line-height:1.35; }
.dip-org { font-size:0.67rem;color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:0.1em;margin-bottom:5px; }
.dip-year { font-size:0.65rem;color:var(--muted); }
.dip-note { padding:18px 22px;background:rgba(255,107,26,0.04);border:1px dashed rgba(255,107,26,0.2);text-align:center; }
.dip-note p { font-size:0.76rem;color:var(--muted);line-height:1.7; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px) {
  nav { padding:18px 32px; }
  .nav-links { display:none; }
  .nav-mob-btn { display:block; }
  #hero { grid-template-columns:1fr;padding:120px 32px 60px;gap:40px; }
  .hero-right { order:-1; }
  .photo-frame { width:280px;height:320px; }
  section { padding:70px 32px; }
  .about-grid,.exp-grid,.projects-grid { grid-template-columns:1fr;gap:36px; }
  .skills-grid { grid-template-columns:1fr 1fr; }
  footer { flex-direction:column;gap:12px;text-align:center;padding:24px 32px; }
}
@media (max-width:768px) {
  nav { padding:16px 20px; }
  #hero { padding:100px 20px 50px; }
  section { padding:56px 20px; }
  .photo-frame { width:240px;height:280px; }
  .about-info { grid-template-columns:1fr; }
  .skills-grid { grid-template-columns:1fr 1fr;gap:12px; }
  .skill-card { padding:14px; }
  .form-row { grid-template-columns:1fr; }
  .projects-grid { grid-template-columns:1fr; }
  .project-card { padding:32px 24px; }
  .contact-items { flex-direction:column;align-items:center; }
  .contact-item { width:100%;max-width:340px; }
  footer { padding:20px;flex-direction:column;gap:14px;text-align:center; }
  .dip-grid { grid-template-columns:1fr 1fr; }
  .modal-box,.dip-box { padding:32px 24px; }
}
@media (max-width:480px) {
  .skill-card { padding:12px 10px; }
  .skill-name { font-size:.7rem; }
  .skill-desc { font-size:.6rem; }
  .project-card { padding:24px 16px; }
  .project-card h3 { font-size:1.1rem; }
  .dip-grid { grid-template-columns:1fr; }
  footer { padding:16px; }
  .hero-stats-row { flex-wrap:wrap; }
  .stat-mini { min-width:calc(50% - 1px); }
}
