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

:root {
  --bg:            #0B0B0B;
  --bg-subtle:     #0f0f14;
  --bg-card:       #111118;
  --bg-hover:      #16161e;
  --border:        rgba(228,228,228,0.07);
  --border-hover:  rgba(228,228,228,0.15);
  --border-strong: rgba(228,228,228,0.22);
  --text-primary:  #E4E4E4;
  --text-secondary:rgba(228,228,228,0.52);
  --text-muted:    rgba(228,228,228,0.22);
  --accent:        #2B396D;
  --accent-mid:    #3a4f96;
  --accent-light:  rgba(43,57,109,0.18);
  --accent-border: rgba(43,57,109,0.45);
  --dot-color:     #4ade80;
  --grain-opacity: 0.04;
  color-scheme: dark;
}

html { font-size: 16px; scroll-behavior: smooth; }

body {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  background: var(--bg);
  color: var(--text-primary);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body::after {
  content: '';
  position: fixed; inset: 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)'/%3E%3C/svg%3E");
  background-size: 180px 180px;
  opacity: var(--grain-opacity);
  pointer-events: none; z-index: 9990;
}


.modal-tags { display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem; }
.modal-tags span { font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:#7a9fd4;border:1px solid rgba(43,57,109,.5);background:rgba(43,57,109,.18);padding:5px 12px;border-radius:100px; }

/* ═══════════════════════════════════════════
   BARRE DE PROGRESSION SCROLL
═══════════════════════════════════════════ */
.scroll-progress {
  position: fixed;
  top: 0; left: 0;
  width: 0%;
  height: 2px;
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent-mid) 100%);
  z-index: 9999;
  transition: width 0.1s linear;
}

/* ═══════════════════════════════════════════
   LOADER
═══════════════════════════════════════════ */
.loader { position:fixed;inset:0;background:var(--accent);z-index:10000;display:flex;align-items:center;justify-content:center;transition:opacity .6s,visibility .6s; }
.loader.hidden { opacity:0;visibility:hidden; }
.loader__inner { text-align:center; }
.loader__label { font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(228,228,228,.55);margin-bottom:.5rem; }
.loader__name { font-family:'DM Serif Display',serif;font-size:clamp(1.8rem,5vw,3rem);color:#E4E4E4;letter-spacing:-.02em;margin-bottom:2rem; }
.loader__bar-wrap { width:200px;height:1px;background:rgba(228,228,228,.2);margin:0 auto 1rem;overflow:hidden; }
.loader__bar { height:100%;width:0%;background:#E4E4E4;transition:width .05s linear; }
.loader__pct { font-size:.75rem;letter-spacing:.1em;color:rgba(228,228,228,.5); }

/* ═══════════════════════════════════════════
   NAVBAR
═══════════════════════════════════════════ */
.nav { position:fixed;inset:0 0 auto 0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 3rem;height:64px;background:rgba(11,11,11,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border);transition:border-color .3s; }
.nav.scrolled { border-bottom-color:var(--border-hover); }
.nav__logo { font-family:'DM Serif Display',serif;font-size:1.25rem;color:var(--text-primary);text-decoration:none;letter-spacing:-.02em; }
.nav__logo-dot { color:var(--accent-mid); }
.nav__links { display:flex;gap:0; }
.nav__links a { font-size:.7rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);text-decoration:none;padding:.4rem .9rem;border:1px solid transparent;border-radius:100px;transition:color .2s,border-color .2s,background .2s; }
.nav__links a:hover { color:var(--text-primary);border-color:var(--border-hover);background:var(--bg-hover); }

/* ═══════════════════════════════════════════
   HERO — photo GAUCHE, texte DROITE
═══════════════════════════════════════════ */
.hero {
  min-height: 100vh;
  padding: 64px 3rem 0;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(135deg, #0B0B0B 0%, #0d1226 50%, #0B0B0B 100%);
}

.hero__glow { position:absolute;border-radius:50%;pointer-events:none;filter:blur(80px); }
.hero__glow--1 { width:550px;height:550px;top:10%;left:-5%;background:rgba(43,57,109,.25); }
.hero__glow--2 { width:450px;height:450px;bottom:5%;right:8%;background:rgba(43,57,109,.15); }

/* GRID : photo fixe à gauche, texte prend le reste */
.hero__content {
  display: grid;
  grid-template-columns: 280px 1fr;  /* photo à gauche EN PREMIER */
  align-items: center;
  gap: 4rem;
  width: 100%;
  position: relative;
  z-index: 1;
  padding: 5rem 0;
}

/* Colonne photo — centrée dans sa colonne */
.hero__photo-col {
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero__photo-wrap {
  width: 260px;
  height: 330px;
  position: relative;
  flex-shrink: 0;
}

.hero__photo-placeholder { width:100%;height:100%;border:1px solid var(--border-hover);border-radius:12px;background:var(--accent-light);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;color:var(--text-muted);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;position:relative;z-index:1;transition:opacity .4s; }
.hero__photo-placeholder small { font-size:.62rem;letter-spacing:.04em;text-transform:none; }
.hero__photo-overlay { position:absolute;inset:0;border-radius:12px;background:linear-gradient(135deg,rgba(43,57,109,.3),rgba(58,79,150,.15));opacity:0;z-index:2;transition:opacity .4s;pointer-events:none; }
.hero__photo-wrap:hover .hero__photo-overlay { opacity:1; }
.hero__photo-wrap:hover .hero__photo-placeholder { opacity:.82; }
.hero__photo-wrap img { width:100%;height:100%;object-fit:cover;border-radius:12px;position:relative;z-index:1;transition:transform .5s cubic-bezier(0.16,1,0.3,1),filter .4s; }
.hero__photo-wrap:hover img { transform:scale(1.03);filter:brightness(.9); }
.hero__photo-ring { position:absolute;inset:-10px;border:1px solid var(--accent-border);border-radius:16px;opacity:0;transform:scale(1.03);transition:opacity .35s,transform .35s; }
.hero__photo-wrap:hover .hero__photo-ring { opacity:1;transform:scale(1); }
.hero__photo-wrap.clicked { animation:photo-bounce .5s cubic-bezier(.36,.07,.19,.97); }
@keyframes photo-bounce { 0%,100%{transform:scale(1)} 25%{transform:scale(1.04) rotate(1deg)} 75%{transform:scale(.97) rotate(-1deg)} }

/* Texte hero */
.hero__badge { display:inline-flex;align-items:center;gap:.6rem;font-size:.72rem;letter-spacing:.07em;color:var(--text-secondary);border:1px solid var(--border-hover);padding:6px 16px;border-radius:100px;background:rgba(43,57,109,.12);margin-bottom:2rem;width:fit-content; }
.hero__dot { width:6px;height:6px;border-radius:50%;background:var(--dot-color);flex-shrink:0;animation:pulse-dot 2.5s ease-in-out infinite; }
@keyframes pulse-dot { 0%,100%{box-shadow:0 0 0 0 rgba(74,222,128,.5)} 50%{box-shadow:0 0 0 6px rgba(74,222,128,0)} }
.hero__name { display:flex;flex-direction:column;font-size:clamp(3rem,7vw,7rem);font-weight:300;line-height:.92;letter-spacing:-.04em;margin-bottom:1.5rem; }
.hero__name-first { font-family:'DM Serif Display',serif;font-style:italic;font-weight:400;color:var(--text-secondary); }
.hero__cursor { display:inline-block;width:3px;height:.72em;background:var(--accent-mid);margin-left:4px;vertical-align:baseline;top:.05em;position:relative;animation:blink 1.1s step-end infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
.hero__title-role { font-size:1.1rem;font-weight:400;color:var(--text-primary);letter-spacing:-.01em;margin-bottom:.3rem; }
.hero__subtitle { font-size:.82rem;color:var(--text-secondary);letter-spacing:.06em;text-transform:uppercase;margin-bottom:1.8rem; }
.hero__quote { font-family:'DM Serif Display',serif;font-style:italic;font-size:.95rem;color:var(--text-muted);border-left:2px solid var(--accent-border);padding-left:1rem;margin-bottom:2.5rem;max-width:380px;line-height:1.6; }
.hero__actions { display:flex;gap:1rem;flex-wrap:wrap; }
.btn-primary { display:inline-flex;align-items:center;gap:.5rem;font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:400;letter-spacing:.07em;text-transform:uppercase;color:#E4E4E4;text-decoration:none;background:var(--accent);border:1px solid var(--accent);padding:11px 22px;border-radius:100px;transition:background .2s,transform .2s; }
.btn-primary:hover { background:var(--accent-mid);transform:translateY(-1px); }
.btn-outline { display:inline-flex;align-items:center;gap:.5rem;font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:400;letter-spacing:.07em;text-transform:uppercase;color:var(--text-secondary);text-decoration:none;border:1px solid var(--border-hover);padding:11px 22px;border-radius:100px;background:transparent;transition:color .2s,border-color .2s,background .2s,transform .2s; }
.btn-outline:hover { color:var(--text-primary);border-color:var(--border-strong);background:var(--bg-hover);transform:translateY(-1px); }

/* ═══════════════════════════════════════════
   TICKER
═══════════════════════════════════════════ */
.ticker { overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:1rem 0;background:var(--bg-subtle); }
.ticker__track { display:flex;align-items:center;gap:1.5rem;white-space:nowrap;animation:ticker-move 35s linear infinite; }
.ticker__track span { font-size:.78rem;letter-spacing:.08em;color:var(--text-secondary);text-transform:uppercase; }
.ticker__sep { color:var(--accent-mid) !important;font-size:.6rem !important; }
@keyframes ticker-move { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ═══════════════════════════════════════════
   SECTIONS
═══════════════════════════════════════════ */
.section { padding:6rem 3rem;border-bottom:1px solid var(--border);position:relative; }
.section--last { border-bottom:none; }
.section__label { display:inline-flex;align-items:center;gap:.75rem;margin-bottom:4rem;border:1px solid rgba(43,57,109,.55);background:rgba(43,57,109,.15);padding:6px 16px 6px 12px;border-radius:100px; }
.section__label::after { content:'';width:32px;height:1px;background:rgba(43,57,109,.6); }
.section__num { font-family:'DM Serif Display',serif;font-style:italic;font-size:.65rem;letter-spacing:.14em;color:var(--accent-mid); }
.section__name { font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-primary); }

/* ═══════════════════════════════════════════
   PROFIL
═══════════════════════════════════════════ */
.profil { display:grid;grid-template-columns:1fr 260px;gap:5rem;align-items:start;margin-bottom:4rem; }
.profil__left { display:flex;flex-direction:column;gap:2.5rem; }
.profil__bio { display:flex;flex-direction:column;gap:1.3rem; }
.profil__bio p { font-size:1rem;color:var(--text-secondary);line-height:1.85;font-weight:300;text-align:justify; }

.profil__cards { display:flex;flex-direction:column;gap:.75rem; }

.info-card { border:1px solid var(--border-hover);border-radius:12px;padding:1rem 1.25rem;background:rgba(228,228,228,.02);transition:background .2s,border-color .2s; }
.info-card:hover { background:rgba(228,228,228,.04);border-color:var(--border-strong); }
.info-card__label { font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.4rem; }
.info-card__value { font-size:.9rem;color:var(--text-secondary);font-weight:300;line-height:1.5; }

/* Langues — switch compact, flèches de chaque côté */
.lang-switch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
}

.lang-switch__display { display:flex;flex-direction:column;gap:.1rem;flex:1;text-align:center; }
.lang-switch__name { font-size:.9rem;color:var(--text-secondary);transition:transform .3s cubic-bezier(0.16,1,0.3,1),opacity .25s; }
.lang-switch__level { font-size:.72rem;color:var(--text-muted);transition:transform .3s cubic-bezier(0.16,1,0.3,1),opacity .25s; }
.lang-switch__display.animating .lang-switch__name,
.lang-switch__display.animating .lang-switch__level { transform:translateX(10px);opacity:0; }

/* Boutons flèches gauche/droite */
.lang-switch__btn {
  width: 24px;
  height: 24px;
  border: 1px solid var(--border-hover);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: color .2s, border-color .2s, background .2s;
}
.lang-switch__btn:hover { color:var(--text-primary);border-color:var(--border-strong);background:var(--bg-hover); }

/* Info-card avec lien externe */
.info-card--link-row .info-card__row { display:flex;align-items:center;justify-content:space-between;gap:1rem; }
.info-card__ext-btn { display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-hover);border-radius:6px;color:var(--text-muted);text-decoration:none;flex-shrink:0;transition:color .2s,border-color .2s,background .2s; }
.info-card__ext-btn:hover { color:var(--text-primary);border-color:var(--accent-border);background:var(--accent-light); }

/* Outils — grille 5 colonnes */
.outils-list { display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem;margin-top:.25rem; }
.outil-tag { display:flex;align-items:center;justify-content:center;font-size:.58rem;letter-spacing:.05em;text-transform:uppercase;font-weight:400;color:#7a9fd4;border:1px solid rgba(43,57,109,.5);background:rgba(43,57,109,.18);padding:5px 4px;border-radius:6px;text-decoration:none;text-align:center;line-height:1.3;transition:color .2s,border-color .2s,background .2s,transform .15s; }
.outil-tag:hover { color:#aac4eb;border-color:rgba(43,57,109,.85);background:rgba(43,57,109,.32);transform:translateY(-1px); }

/* Stats */
.profil__stats { display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:6px;overflow:hidden;align-self:end;margin-top:2rem; }
.stat { padding:1.5rem 1.75rem;border-bottom:1px solid var(--border);transition:background .2s; }
.stat:last-child { border-bottom:none; }
.stat:hover { background:var(--bg-hover); }
.stat--link { display:block;text-decoration:none;color:inherit;cursor:pointer;position:relative; }
.stat--link::after { content:'→';position:absolute;right:1.75rem;top:50%;transform:translateY(-50%);font-size:.7rem;color:var(--text-muted);opacity:0;transition:opacity .2s,transform .2s; }
.stat--link:hover::after { opacity:1;transform:translateY(-50%) translateX(3px); }
.stat__num { display:block;font-family:'DM Serif Display',serif;font-size:2.6rem;line-height:1;letter-spacing:-.03em;color:var(--text-primary);margin-bottom:.2rem; }
.stat__label { font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted); }
.stat__sub { display:block;font-size:.62rem;color:var(--text-muted);letter-spacing:.03em;margin-top:.15rem;font-style:italic; }

/* ═══════════════════════════════════════════
   SOFT SKILLS
═══════════════════════════════════════════ */
.softskills__label { font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:1.5rem; }
.softskills__grid { display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:6px;overflow:hidden; }
.ss-card { background:var(--bg);padding:2rem 1.75rem;display:flex;flex-direction:column;gap:.75rem;transition:background .2s;position:relative;overflow:hidden; }
.ss-card::before { content:'';position:absolute;top:-30px;right:-30px;width:100px;height:100px;background:radial-gradient(circle,rgba(43,57,109,.2) 0%,transparent 70%);opacity:0;transition:opacity .3s;pointer-events:none; }
.ss-card:hover { background:var(--bg-hover); }
.ss-card:hover::before { opacity:1; }
.ss-card__icon { width:36px;height:36px;border:1px solid var(--border-hover);border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--accent-mid);flex-shrink:0; }
.ss-card__title { font-size:.9rem;font-weight:500;color:var(--text-primary);letter-spacing:-.01em; }
.ss-card__desc { font-size:.82rem;color:var(--text-secondary);line-height:1.65;font-weight:300; }

/* ═══════════════════════════════════════════
   COMPÉTENCES
═══════════════════════════════════════════ */
.competences__intro { margin-bottom:3rem;max-width:600px; }
.competences__title { font-family:'DM Serif Display',serif;font-size:1.8rem;font-weight:400;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:.75rem;line-height:1.2; }
.competences__desc { font-size:.9rem;color:var(--text-secondary);line-height:1.7;font-weight:300; }
.competences__grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:6px;overflow:hidden; }
.comp-card { background:var(--bg);padding:2rem;cursor:pointer;display:flex;flex-direction:column;gap:.75rem;transition:background .2s;position:relative;overflow:hidden; }
.comp-card:hover { background:var(--bg-hover); }
.comp-card::before { content:'';position:absolute;top:-40px;right:-40px;width:120px;height:120px;background:radial-gradient(circle,rgba(43,57,109,.2) 0%,transparent 70%);opacity:0;transition:opacity .3s;pointer-events:none; }
.comp-card:hover::before { opacity:1; }
.comp-card__icon { width:40px;height:40px;border:1px solid var(--border-hover);border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--accent-mid);flex-shrink:0; }
.comp-card__title { font-size:1rem;font-weight:400;letter-spacing:-.01em;color:var(--text-primary); }
.comp-card__teaser { font-size:.85rem;color:var(--text-secondary);line-height:1.6;font-weight:300;flex:1; }
.comp-card__cta { display:inline-flex;align-items:center;gap:.4rem;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border);padding:5px 12px;border-radius:100px;margin-top:.5rem;width:fit-content;transition:color .2s,border-color .2s,background .2s; }
.comp-card:hover .comp-card__cta { color:var(--text-primary);border-color:var(--accent-border);background:var(--accent-light); }

/* ═══════════════════════════════════════════
   MODAL SYSTEM
═══════════════════════════════════════════ */
.modal-overlay { position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:2rem;opacity:0;pointer-events:none;transition:opacity .35s,backdrop-filter .35s;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);background:rgba(11,11,11,0); }
.modal-overlay.open { opacity:1;pointer-events:all;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:rgba(11,11,11,.75); }
.modal-box { background:var(--bg-card);border:1px solid var(--border-hover);border-radius:12px;padding:2.5rem;max-width:520px;width:100%;position:relative;transform:translateY(12px) scale(.98);transition:transform .35s cubic-bezier(0.16,1,0.3,1);max-height:88vh;overflow-y:auto; }
.modal-overlay.open .modal-box { transform:translateY(0) scale(1); }
.modal-box--wide { max-width:700px; }
.modal-close { position:absolute;top:1.25rem;right:1.25rem;width:32px;height:32px;border:1px solid var(--border-hover);border-radius:50%;background:transparent;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:color .2s,border-color .2s,background .2s; }
.modal-close:hover { color:var(--text-primary);border-color:var(--border-strong);background:var(--bg-hover); }
.modal-icon { width:44px;height:44px;border:1px solid var(--border-hover);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--accent-mid);margin-bottom:1.25rem; }
.modal-title { font-size:1.4rem;font-weight:400;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:1.5rem;padding-right:2.5rem;line-height:1.2; }
.modal-title-row { display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem; }
.modal-title-row .modal-title { margin-bottom:0;padding-right:0; }
.modal-tiktok-btn { display:inline-flex;align-items:center;gap:.4rem;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#7a9fd4;border:1px solid rgba(43,57,109,.5);background:rgba(43,57,109,.18);padding:6px 14px;border-radius:100px;text-decoration:none;white-space:nowrap;flex-shrink:0;transition:color .2s,border-color .2s,background .2s,transform .15s; }
.modal-tiktok-btn:hover { color:#aac4eb;border-color:rgba(43,57,109,.85);background:rgba(43,57,109,.32);transform:translateY(-1px); }
.modal-list { list-style:none;display:flex;flex-direction:column;gap:.6rem; }
.modal-list li { font-size:.9rem;color:var(--text-secondary);padding-left:1.1rem;position:relative;line-height:1.5; }
.modal-list li::before { content:'–';position:absolute;left:0;color:var(--text-muted); }
.modal-section-label { display:inline-block;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-primary);background:rgba(43,57,109,.25);border:1px solid rgba(43,57,109,.55);padding:4px 12px;border-radius:100px;margin-bottom:1rem; }
.modal-text { font-size:.88rem;color:var(--text-secondary);line-height:1.75;font-weight:300; }
.modal-real-meta { display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:.75rem; }
.modal-real-img { height:220px;border-radius:8px;overflow:hidden;background:var(--accent-light);margin-bottom:1.5rem;border:1px solid var(--border); }
.modal-real-img .real-card__img-placeholder { height:100%; }
.modal-real-grid { display:grid;grid-template-columns:1fr 1fr;gap:2rem; }

/* ═══════════════════════════════════════════
   CITATION
═══════════════════════════════════════════ */
.citation-block { padding:4rem 3rem;text-align:center;border-bottom:1px solid var(--border);position:relative;overflow:hidden; }
.citation-block::before { content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 50% 50%,rgba(43,57,109,.1) 0%,transparent 70%);pointer-events:none; }
.citation-block__text { font-family:'DM Serif Display',serif;font-style:italic;font-size:clamp(1.2rem,3vw,2rem);color:var(--text-primary);letter-spacing:-.02em;line-height:1.35;margin-bottom:1rem;position:relative;max-width:700px;margin-left:auto;margin-right:auto; }
.citation-block__author { font-size:.75rem;letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;position:relative; }

/* ═══════════════════════════════════════════
   PARCOURS
═══════════════════════════════════════════ */
.parcours { display:flex;flex-direction:column;border:1px solid var(--border);border-radius:6px;overflow:hidden; }
.parcours__header { display:grid;grid-template-columns:32px 1fr 160px 110px 44px;gap:0;padding:.75rem 1.5rem;background:var(--bg-subtle);border-bottom:1px solid var(--border); }
.parcours__header span { font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted); }

.exp-item { display:grid;grid-template-columns:32px 1fr 160px 110px 44px;grid-template-rows:auto auto;align-items:center;gap:0;padding:1.5rem;border-bottom:1px solid var(--border);cursor:pointer;transition:background .2s;position:relative;user-select:none; }
.exp-item:last-child { border-bottom:none; }
.exp-item:hover { background:var(--bg-hover); }
.exp-item::before { content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent-mid);transform:scaleY(0);transform-origin:bottom;transition:transform .3s cubic-bezier(0.16,1,0.3,1); }
.exp-item:hover::before { transform:scaleY(1); }

.exp-item__dot { width:6px;height:6px;border-radius:50%;background:var(--border-strong);border:1px solid var(--border-hover);align-self:center;justify-self:center;flex-shrink:0;transition:background .2s,border-color .2s; }
.exp-item:hover .exp-item__dot { background:var(--accent-mid);border-color:var(--accent-mid); }
.exp-item__main { padding-right:1rem; }
.exp-item__title { font-size:.95rem;font-weight:400;color:var(--text-primary);letter-spacing:-.01em;margin-bottom:.2rem;line-height:1.3; }
.exp-item__sub { font-size:.75rem;color:var(--text-muted);letter-spacing:.02em; }
.exp-item__period { font-size:.78rem;color:var(--text-secondary); }
.exp-item__status { font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:100px;border:1px solid;width:fit-content; }
.exp-item__status--encours { color:#4ade80;border-color:rgba(74,222,128,.3);background:rgba(74,222,128,.07); }
.exp-item__status--termine { color:#f87171;border-color:rgba(248,113,113,.3);background:rgba(248,113,113,.07); }
.exp-item__toggle { width:28px;height:28px;border:1px solid var(--border-hover);border-radius:50%;background:transparent;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:color .2s,border-color .2s,transform .35s cubic-bezier(0.16,1,0.3,1);justify-self:end;pointer-events:none; }
.exp-item:hover .exp-item__toggle { color:var(--text-primary);border-color:var(--border-strong); }
.exp-item.open .exp-item__toggle { transform:rotate(45deg); }
.exp-item__detail { grid-column:1/-1;max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(0.16,1,0.3,1); }
.exp-item.open .exp-item__detail { max-height:400px; }
.exp-item__detail-inner { padding:1.5rem 0 .5rem;border-top:1px solid var(--border);margin-top:1rem; }
.exp-item__detail-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.25rem; }
.exp-item__dl { display:block;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.25rem; }
.exp-item__dd { display:block;font-size:.85rem;color:var(--text-secondary); }
.exp-item__dd--encours { color:#4ade80; }
.exp-item__desc { font-size:.88rem;color:var(--text-secondary);line-height:1.75;font-weight:300;margin-bottom:.75rem; }
.exp-item__results { font-size:.85rem;color:var(--text-secondary);line-height:1.7;font-weight:300; }
.exp-item__results strong { font-weight:500;color:var(--text-primary); }

/* ═══════════════════════════════════════════
   RÉALISATIONS
═══════════════════════════════════════════ */
.realisations__grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem; }
.real-card { border:1px solid var(--border);border-radius:6px;background:var(--bg-card);overflow:hidden;cursor:pointer;transition:border-color .2s,transform .2s; }
.real-card:hover { border-color:var(--border-hover);transform:translateY(-2px); }
.real-card__img-wrap { height:180px;background:var(--accent-light);overflow:hidden; }
.real-card__img-placeholder { width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border); }
.real-card__img-wrap img { width:100%;height:100%;object-fit:cover; }
.real-card__body { padding:1.5rem; }
.real-card__meta { display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap; }
.real-card__date { font-size:.65rem;letter-spacing:.08em;color:var(--text-muted); }
.real-card__cat { font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-mid);border:1px solid var(--accent-border);padding:2px 8px;border-radius:3px;background:var(--accent-light); }
.real-card__title { font-size:1rem;font-weight:400;letter-spacing:-.01em;color:var(--text-primary);margin-bottom:.6rem;line-height:1.3; }
.real-card__desc { font-size:.84rem;color:var(--text-secondary);line-height:1.65;font-weight:300;margin-bottom:1.25rem; }
.real-card__btn { font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);background:transparent;border:1px solid var(--border-hover);padding:7px 14px;border-radius:100px;cursor:pointer;transition:color .2s,border-color .2s,background .2s; }
.real-card__btn:hover { color:var(--text-primary);border-color:var(--border-strong);background:var(--bg-hover); }

/* ═══════════════════════════════════════════
   CONTACT
═══════════════════════════════════════════ */
.contact { display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start; }
.contact__title { font-family:'DM Serif Display',serif;font-size:clamp(2.8rem,5.5vw,5rem);font-weight:400;line-height:1;letter-spacing:-.03em;color:var(--text-primary);margin-bottom:1.25rem; }
.contact__title em { font-style:italic;color:var(--text-secondary); }
.contact__sub { font-size:.9rem;color:var(--text-muted);font-weight:300;line-height:1.75;max-width:320px; }
.contact__right { display:flex;flex-direction:column;padding-top:.5rem; }
.contact-item { display:flex;justify-content:space-between;align-items:center;padding:1.3rem 0;border-bottom:1px solid var(--border);cursor:pointer;transition:padding-left .25s,border-color .2s; }
.contact-item:first-child { border-top:1px solid var(--border); }
.contact-item--link { text-decoration:none;color:inherit; }
.contact-item:hover { padding-left:.5rem;border-bottom-color:var(--border-hover); }
.contact-item__left { display:flex;flex-direction:column;gap:.2rem; }
.contact-item__label { font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted); }
.contact-item__value { font-size:.9rem;color:var(--text-secondary);font-weight:300;transition:color .2s; }
.contact-item:hover .contact-item__value { color:var(--text-primary); }
.contact-item__action { font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border);padding:5px 11px;border-radius:100px;transition:color .2s,border-color .2s; }
.contact-item:hover .contact-item__action { color:var(--text-primary);border-color:var(--border-hover); }
.contact-item__arrow { width:28px;height:28px;border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--text-muted);transition:transform .25s,color .2s,border-color .2s; }
.contact-item:hover .contact-item__arrow { transform:rotate(-45deg);color:var(--text-primary);border-color:var(--border-hover); }

/* ═══════════════════════════════════════════
   FOOTER / TOAST
═══════════════════════════════════════════ */
.footer { display:flex;justify-content:space-between;align-items:center;padding:1.5rem 3rem;border-top:1px solid var(--border);font-size:.72rem;letter-spacing:.06em;color:var(--text-muted); }
.toast { position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(10px);background:var(--accent);color:#E4E4E4;font-size:.78rem;letter-spacing:.06em;padding:8px 20px;border-radius:100px;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:600; }
.toast.show { opacity:1;transform:translateX(-50%) translateY(0); }

/* ═══════════════════════════════════════════
   FADE-UP
═══════════════════════════════════════════ */
.fade-up { opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(0.16,1,0.3,1),transform .7s cubic-bezier(0.16,1,0.3,1); }
.fade-up.visible { opacity:1;transform:translateY(0); }

/* ═══════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════ */
@media (max-width:1100px) {
  .competences__grid { grid-template-columns:repeat(2,1fr); }
  .realisations__grid { grid-template-columns:repeat(2,1fr); }
  .softskills__grid { grid-template-columns:repeat(2,1fr); }
  .outils-list { grid-template-columns:repeat(4,1fr); }
}
@media (max-width:900px) {
  .nav { padding:0 1.5rem; }
  .nav__links { display:none; }
  .hero { padding:64px 1.5rem 0; }
  .hero__content { grid-template-columns:1fr;gap:3rem; }
  .hero__photo-col { display:none; }
  .section { padding:4rem 1.5rem; }
  .profil { grid-template-columns:1fr;gap:2.5rem; }
  .profil__stats { flex-direction:row;border-radius:6px; }
  .stat { flex:1;border-bottom:none;border-right:1px solid var(--border); }
  .stat:last-child { border-right:none; }
  .exp-item { grid-template-columns:32px 1fr auto; }
  .exp-item__period { display:none; }
  .parcours__header { display:none; }
  .exp-item__detail-grid { grid-template-columns:repeat(2,1fr); }
  .contact { grid-template-columns:1fr;gap:3rem; }
  .footer { padding:1.5rem;flex-direction:column;gap:.4rem; }
  .modal-real-grid { grid-template-columns:1fr; }
  .outils-list { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:600px) {
  .competences__grid { grid-template-columns:1fr; }
  .realisations__grid { grid-template-columns:1fr; }
  .softskills__grid { grid-template-columns:1fr; }
  .outils-list { grid-template-columns:repeat(2,1fr); }
}

/* ═══════════════════════════════════════════
   GRAS TYPOGRAPHIQUE — mots-clés importants
═══════════════════════════════════════════ */
.profil__bio p strong,
.ss-card__desc strong,
.exp-item__desc strong,
.exp-item__results strong,
.modal-text strong {
  font-weight: 500;
  color: var(--text-primary);
}

/* Style spécifique pour les mots-clés de la zone contact */
.contact__sub strong {
  font-weight: 300; /* On enlève l'effet épais du gras */
  font-style: italic; /* On passe le texte en italique */
  text-decoration: underline; /* On souligne le texte */
  text-underline-offset: 3px; /* Petite astuce : on décale un peu le trait vers le bas pour que ce soit plus aéré et lisible */
  color: var(--text-primary);
}
