diff --git a/cv-data.json b/cv-data.json index 808092f..ecfe2dd 100644 --- a/cv-data.json +++ b/cv-data.json @@ -8,9 +8,22 @@ "accroche": "UX & Digital Manager // Product Manager // E-Commerce Architect // Data Leader", "description": "Fort de 25 ans d'expérience dans l'édition de logiciels, l'e-commerce et les systèmes d'information, Stéphane accompagne la transformation IT des entreprises en alliant vision stratégique, innovation et excellence opérationnelle.", "disponibilite": "AVAILABLE — CV NOV. 2025", - "email": "", - "linkedin": "", - "site": "www.stephaneliabeuf.fr" + "contact": { + "email": "", + "telephone": "", + "linkedin": "", + "linkedin_label": "linkedin.com/in/stephaneliabeuf", + "github": "", + "site": "https://www.stephaneliabeuf.fr" + }, + "seo": { + "title": "Stéphane Liabeuf — Directeur Conseil UX & Digital | CGI Clermont-Ferrand", + "description": "CV de Stéphane Liabeuf, Directeur Conseil et UX & Digital Manager chez CGI. 25 ans d'expérience en transformation digitale, e-commerce, product management et UX/UI.", + "keywords": "Stéphane Liabeuf, UX Designer, Digital Manager, Product Manager, E-Commerce, CGI, Clermont-Ferrand, Salesforce, Scrum, Power BI", + "og_image": "https://www.stephaneliabeuf.fr/og-image.png", + "canonical": "https://www.stephaneliabeuf.fr", + "twitter_handle": "" + } }, "stats": [ { @@ -46,12 +59,7 @@ "programme": "Plateforme BI & CRM — Pilotage commercial européen", "objectif": "Transformation digitale du pôle Field Seeds — écosystème de tableaux de bord unifiés (Power BI + CRM Dynamics) pour piloter les performances commerciales, marketing et terrain à l'échelle européenne.", "description": "Roadmap produit LFS, conception UX/UI (wireframes, maquettes, guidelines), ateliers Design Thinking avec équipes sales / marketing / CRM / data. KPIs par profil utilisateur (Comex, Country Managers, Sales Managers, commerciaux). Gouvernance Scrum : backlog, rituels Sprint, cadencement trimestriel, coaching des équipes Data et CRM.", - "resultats": [ - "Evangélisation au mode produit", - "Mise en place des rituels Scrum", - "Mise en place des KPIs par profil utilisateur", - "Mise en place des dashboards" - ], + "resultats": [], "tags": [ "Power BI", "CRM Dynamics", diff --git a/index.html b/index.html index bc191c5..696706c 100644 --- a/index.html +++ b/index.html @@ -1,440 +1,2505 @@ + - - -CV — Stéphane Liabeuf - - - - - + + + + + + [data-theme="itpro"] .hero-subtitle::before { + display: none + } + + [data-theme="itpro"] .stat-box { + background: rgba(255, 255, 255, .08); + border: 1px solid rgba(255, 255, 255, .15); + border-radius: 8px; + clip-path: none; + backdrop-filter: blur(8px) + } + + [data-theme="itpro"] .stat-num { + font-family: 'DM Serif Display', serif; + color: #93c5fd; + font-size: 38px; + text-shadow: none + } + + [data-theme="itpro"] .stat-label { + font-family: 'Inter', sans-serif; + color: rgba(255, 255, 255, .5); + font-size: 10px; + font-weight: 500; + letter-spacing: .12em + } + + [data-theme="itpro"] nav { + background: #fff; + border-bottom: 1px solid #e2e8f0; + backdrop-filter: none; + box-shadow: 0 1px 4px rgba(0, 0, 0, .06) + } + + [data-theme="itpro"] .nav-logo { + font-family: 'DM Serif Display', serif; + color: #1a56db; + font-size: 18px; + text-shadow: none; + letter-spacing: 0; + font-weight: 400 + } + + [data-theme="itpro"] nav a { + font-family: 'Inter', sans-serif; + font-size: 13px; + font-weight: 500; + color: #64748b; + text-transform: none; + letter-spacing: .01em + } + + [data-theme="itpro"] nav a::before { + display: none + } + + [data-theme="itpro"] nav a:hover { + color: #1a56db + } + + [data-theme="itpro"] #experience { + background: #f8fafc + } + + [data-theme="itpro"] #competences { + background: #f1f5f9 + } + + [data-theme="itpro"] #secteurs { + background: #f8fafc + } + + [data-theme="itpro"] #formation { + background: #f1f5f9 + } + + [data-theme="itpro"] footer { + background: #0f172a; + border-top: none + } + + [data-theme="itpro"] .section-id { + font-family: 'Share Tech Mono', monospace; + color: #1a56db; + font-size: 11px; + letter-spacing: .12em; + opacity: .7 + } + + [data-theme="itpro"] .section-title { + font-family: 'DM Serif Display', serif; + color: #0f172a; + text-transform: none; + font-weight: 400; + letter-spacing: -.01em + } + + [data-theme="itpro"] .section-title::after { + background: #1a56db; + height: 2px; + width: 100% + } + + [data-theme="itpro"] .group-label { + font-family: 'Inter', sans-serif; + font-size: 10px; + font-weight: 700; + letter-spacing: .14em; + color: #fff; + background: #1a56db; + border-radius: 3px; + text-transform: uppercase + } + + [data-theme="itpro"] .group-label.sec { + background: #475569 + } + + [data-theme="itpro"] .exp-item { + border-top: 1px solid #e2e8f0; + border-left: 3px solid transparent; + background: transparent; + padding: 28px 0; + margin-bottom: 0 + } + + [data-theme="itpro"] .exp-item:hover { + border-left-color: #1a56db; + background: #f8fafc; + padding-left: 20px + } + + [data-theme="itpro"] .exp-period { + font-family: 'Share Tech Mono', monospace; + color: #1a56db; + font-size: 11px; + letter-spacing: .08em + } + + [data-theme="itpro"] .exp-co { + font-family: 'Inter', sans-serif; + color: #64748b; + font-size: 12px; + font-weight: 500; + text-transform: none; + letter-spacing: 0 + } + + [data-theme="itpro"] .exp-role { + font-family: 'DM Serif Display', serif; + color: #0f172a; + font-size: 18px; + text-transform: none; + font-weight: 400; + letter-spacing: -.01em + } + + [data-theme="itpro"] .exp-program { + font-family: 'Inter', sans-serif; + color: #64748b; + font-size: 11px; + font-weight: 500; + letter-spacing: .04em + } + + [data-theme="itpro"] .exp-objective { + font-family: 'Inter', sans-serif; + font-size: 13px; + color: #64748b; + border-left: 2px solid #e2e8f0; + font-style: italic + } + + [data-theme="itpro"] .exp-objective strong { + color: #1a56db; + font-style: normal + } + + [data-theme="itpro"] .exp-desc { + color: #64748b; + font-family: 'Inter', sans-serif; + font-size: 14px + } + + [data-theme="itpro"] .exp-results { + border: 1px solid #d1fae5; + background: #f0fdf4; + clip-path: none; + border-radius: 6px + } + + [data-theme="itpro"] .exp-results-title { + font-family: 'Inter', sans-serif; + color: #0e9f6e; + font-size: 10px; + font-weight: 700; + letter-spacing: .12em; + text-transform: uppercase + } + + [data-theme="itpro"] .exp-results li { + color: #166534; + font-family: 'Inter', sans-serif; + font-size: 13px + } + + [data-theme="itpro"] .exp-results li::before { + content: '✓ '; + color: #0e9f6e + } + + [data-theme="itpro"] .tag { + font-family: 'Inter', sans-serif; + font-size: 11px; + font-weight: 500; + color: #1a56db; + border: 1px solid #bfdbfe; + background: #eff6ff; + border-radius: 20px; + clip-path: none; + text-transform: none; + letter-spacing: 0 + } + + [data-theme="itpro"] .tag.mag { + color: #7c3aed; + border-color: #ddd6fe; + background: #f5f3ff + } + + [data-theme="itpro"] .tag.grn { + color: #0e9f6e; + border-color: #a7f3d0; + background: #ecfdf5 + } + + [data-theme="itpro"] .skill-panel { + border: 1px solid #e2e8f0; + background: #fff; + clip-path: none; + border-radius: 8px; + box-shadow: 0 1px 3px rgba(0, 0, 0, .06) + } + + [data-theme="itpro"] .skill-panel::before { + display: none + } + + [data-theme="itpro"] .skill-cat { + font-family: 'Inter', sans-serif; + font-size: 10px; + font-weight: 700; + color: #1a56db; + letter-spacing: .14em; + text-transform: uppercase; + border-bottom: 1px solid #e2e8f0 + } + + [data-theme="itpro"] .skill-name { + font-family: 'Inter', sans-serif; + color: #1e293b; + font-weight: 500; + font-size: 13px + } + + [data-theme="itpro"] .skill-meta { + font-family: 'Inter', sans-serif; + color: #64748b; + font-size: 11px + } + + [data-theme="itpro"] .skill-bar { + background: #e2e8f0; + border-radius: 4px; + height: 5px + } + + [data-theme="itpro"] .skill-fill { + background: linear-gradient(90deg, #1a56db, #6875f5); + box-shadow: none; + border-radius: 4px + } + + [data-theme="itpro"] .skill-fill::after { + display: none + } + + [data-theme="itpro"] .sector-cell { + border: 1px solid #e2e8f0; + background: #fff; + border-radius: 6px; + color: #64748b; + font-family: 'Inter', sans-serif; + font-size: 12px; + font-weight: 500; + text-transform: none + } + + [data-theme="itpro"] .sector-cell::before { + content: ''; + display: none + } + + [data-theme="itpro"] .sector-cell:hover { + color: #1a56db; + border-color: #1a56db; + background: #eff6ff + } + + [data-theme="itpro"] .edu-card { + border: 1px solid #e2e8f0; + background: #fff; + clip-path: none; + border-radius: 8px; + box-shadow: 0 1px 3px rgba(0, 0, 0, .06); + border-top: 3px solid #1a56db + } + + [data-theme="itpro"] .edu-card::before { + display: none + } + + [data-theme="itpro"] .edu-year { + font-family: 'Share Tech Mono', monospace; + color: #64748b; + font-size: 11px; + letter-spacing: .1em + } + + [data-theme="itpro"] .edu-degree { + font-family: 'DM Serif Display', serif; + color: #0f172a; + text-transform: none; + font-weight: 400; + font-size: 20px + } + + [data-theme="itpro"] .edu-school { + font-family: 'Inter', sans-serif; + color: #64748b; + font-size: 13px + } + + [data-theme="itpro"] .certs-title { + font-family: 'Inter', sans-serif; + color: #0f172a; + font-size: 12px; + font-weight: 700; + letter-spacing: .1em; + text-transform: uppercase + } + + [data-theme="itpro"] .cert-chip { + font-family: 'Inter', sans-serif; + font-size: 11px; + font-weight: 500; + color: #1e293b; + border: 1px solid #e2e8f0; + background: #fff; + border-radius: 4px; + text-transform: none; + box-shadow: 0 1px 2px rgba(0, 0, 0, .05) + } + + [data-theme="itpro"] .footer-name { + font-family: 'DM Serif Display', serif; + color: #fff; + font-size: 22px; + font-weight: 400; + text-shadow: none; + letter-spacing: 0 + } + + [data-theme="itpro"] .footer-info { + font-family: 'Inter', sans-serif; + color: rgba(255, 255, 255, .5) + } + + [data-theme="itpro"] .footer-status { + color: #34d399 + } + + /* ════ BASE LAYOUT ════ */ + .cursor-dot { + position: fixed; + width: 8px; + height: 8px; + background: #00f5ff; + border-radius: 50%; + pointer-events: none; + z-index: 10000; + transform: translate(-50%, -50%); + box-shadow: 0 0 10px #00f5ff, 0 0 20px rgba(0, 245, 255, .5); + display: none + } + + @keyframes fadeIn { + from { + opacity: 0; + transform: translateY(12px) + } + + to { + opacity: 1; + transform: none + } + } + + .hero { + position: relative; + min-height: 100vh; + display: flex; + flex-direction: column; + justify-content: center; + padding: 80px; + z-index: 1; + overflow: hidden + } + + .hero-bg { + position: absolute; + inset: 0; + z-index: 0 + } + + .corner-bracket { + position: absolute; + width: 24px; + height: 24px; + z-index: 2 + } + + .corner-bracket.tl { + top: 20px; + left: 60px + } + + .corner-bracket.tr { + top: 20px; + right: 60px + } + + .corner-bracket.bl { + bottom: 20px; + left: 60px + } + + .corner-bracket.br { + bottom: 20px; + right: 60px + } + + .hero-badge { + position: relative; + z-index: 2; + opacity: 0; + animation: fadeIn .5s ease .3s forwards + } + + .hero-name { + position: relative; + z-index: 2; + font-size: clamp(48px, 8vw, 110px); + font-weight: 900; + line-height: .9; + letter-spacing: -.02em; + opacity: 0; + animation: fadeIn .6s ease .5s forwards + } + + .hero-name-line2 { + display: block + } + + .hero-subtitle { + position: relative; + z-index: 2; + margin-top: 24px; + font-size: 13px; + opacity: 0; + animation: fadeIn .6s ease .7s forwards + } + + .hero-stats { + position: relative; + z-index: 2; + display: flex; + gap: 20px; + margin-top: 52px; + flex-wrap: wrap; + opacity: 0; + animation: fadeIn .6s ease .9s forwards + } + + .stat-box { + padding: 14px 22px + } + + .stat-num { + font-size: 32px; + font-weight: 700; + display: block + } + + .stat-label { + font-size: 10px; + letter-spacing: .15em; + text-transform: uppercase; + display: block + } + + .hero-scroll { + position: absolute; + bottom: 48px; + left: 50%; + transform: translateX(-50%); + z-index: 2; + font-size: 10px; + letter-spacing: .2em + } + + nav { + position: sticky; + top: 0; + z-index: 100; + display: flex; + align-items: center; + padding: 0 48px + } + + .nav-logo { + font-size: 14px; + font-weight: 700; + margin-right: auto + } + + nav a { + font-size: 11px; + text-decoration: none; + padding: 18px 20px; + transition: color .2s; + position: relative + } + + section { + position: relative; + z-index: 1; + padding: 100px 80px; + opacity: 0; + transform: translateY(20px); + transition: opacity .6s ease, transform .6s ease + } + + section.visible { + opacity: 1; + transform: none + } + + .section-header { + margin-bottom: 52px + } + + .section-id { + font-size: 11px; + letter-spacing: .3em; + margin-bottom: 12px; + display: block + } + + .section-title { + font-size: clamp(28px, 4vw, 48px); + font-weight: 700; + display: inline-block + } + + .section-title::after { + content: ''; + display: block; + margin-top: 12px; + height: 2px + } + + .exp-group { + margin-bottom: 40px + } + + .group-label { + font-size: 10px; + letter-spacing: .25em; + text-transform: uppercase; + display: inline-block; + padding: 3px 14px; + margin-bottom: 1px + } + + .exp-item { + display: grid; + grid-template-columns: 220px 1fr; + padding: 28px 0 28px 24px; + margin-bottom: 2px; + position: relative; + transition: all .2s + } + + .exp-left { + padding-right: 28px; + padding-top: 2px + } + + .exp-period { + font-size: 11px; + letter-spacing: .1em; + margin-bottom: 6px; + display: block + } + + .exp-co { + font-size: 11px; + letter-spacing: .1em; + line-height: 1.5; + display: block + } + + .exp-role { + font-size: 14px; + font-weight: 700; + margin-bottom: 4px; + line-height: 1.3; + display: block + } + + .exp-program { + font-size: 11px; + letter-spacing: .1em; + margin-bottom: 10px; + display: block + } + + .exp-objective { + font-size: 12px; + padding-left: 10px; + margin-bottom: 10px; + line-height: 1.6 + } + + .exp-desc { + font-size: 14px; + line-height: 1.7; + max-width: 640px; + display: block; + margin-bottom: 4px + } + + .exp-results { + margin-top: 12px; + padding: 12px 16px + } + + .exp-results-title { + font-size: 10px; + letter-spacing: .2em; + margin-bottom: 6px; + display: block + } + + .exp-results ul { + list-style: none + } + + .exp-results li { + font-size: 13px; + padding: 2px 0 + } + + .tag-wrap { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-top: 12px + } + + .tag { + font-size: 10px; + letter-spacing: .08em; + padding: 3px 10px; + text-transform: uppercase; + display: inline-block + } + + .skills-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 32px + } + + .skill-panel { + padding: 28px; + position: relative + } + + .skill-cat { + font-size: 11px; + font-weight: 700; + letter-spacing: .2em; + text-transform: uppercase; + margin-bottom: 24px; + padding-bottom: 12px; + display: block + } + + .skill-row { + margin-bottom: 16px + } + + .skill-info { + display: flex; + justify-content: space-between; + margin-bottom: 6px + } + + .skill-name { + font-size: 13px; + font-weight: 600 + } + + .skill-meta { + font-size: 10px + } + + .skill-bar { + height: 5px + } + + .skill-fill { + height: 100%; + width: 0; + transition: width 1.4s cubic-bezier(.4, 0, .2, 1); + position: relative; + display: block + } + + .skill-fill::after { + content: ''; + position: absolute; + right: -1px; + top: -3px; + width: 2px; + height: 9px; + background: #fff; + display: none + } + + .sectors-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 8px + } + + .sector-cell { + padding: 16px 18px; + font-size: 13px; + font-weight: 600; + letter-spacing: .08em; + text-transform: uppercase; + transition: all .2s; + cursor: default; + display: flex; + align-items: center + } + + .edu-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 24px; + margin-bottom: 48px + } + + .edu-card { + padding: 32px; + position: relative + } + + .edu-year { + font-size: 11px; + letter-spacing: .2em; + margin-bottom: 12px; + display: block + } + + .edu-degree { + font-size: 18px; + font-weight: 700; + margin-bottom: 6px; + display: block + } + + .edu-school { + font-size: 12px; + line-height: 1.7; + display: block + } + + .certs-title { + font-size: 12px; + letter-spacing: .2em; + margin-bottom: 20px; + display: block; + text-transform: uppercase + } + + .certs-grid { + display: flex; + flex-wrap: wrap; + gap: 10px + } + + .cert-chip { + font-size: 11px; + letter-spacing: .1em; + padding: 6px 14px; + text-transform: uppercase; + display: inline-block + } + + footer { + position: relative; + z-index: 1; + padding: 48px 80px; + display: flex; + justify-content: space-between; + align-items: center + } + + .footer-name { + font-size: 20px; + font-weight: 900; + letter-spacing: .1em + } + + .footer-info { + font-size: 11px; + text-align: right; + line-height: 1.8 + } + + /* responsive */ + @media (max-width:900px) { + + section, + .hero, + footer { + padding-left: 24px; + padding-right: 24px + } + + .exp-item { + grid-template-columns: 1fr + } + + .exp-left { + margin-bottom: 10px + } + + .skills-grid, + .sectors-grid, + .edu-grid { + grid-template-columns: 1fr + } + + nav { + padding: 0 16px; + flex-wrap: wrap + } + + nav a { + padding: 12px 10px; + font-size: 10px + } + + #theme-switcher { + bottom: 16px; + right: 16px + } + + .theme-btn { + padding: 8px 12px; + font-size: 11px + } + } + + /* ════ CONTACT BAR ════ */ + .contact-bar { + position: relative; + z-index: 1; + display: flex; + justify-content: center; + flex-wrap: wrap; + gap: 12px; + padding: 14px 48px; + } + + [data-theme="cyberpunk"] .contact-bar { + background: #050810; + border-bottom: 1px solid rgba(0, 245, 255, .12); + } + + [data-theme="bd"] .contact-bar { + background: #FFE033; + border-bottom: 4px solid #1a1a1a; + } + + [data-theme="itpro"] .contact-bar { + background: #fff; + border-bottom: 1px solid #e2e8f0; + box-shadow: 0 1px 4px rgba(0, 0, 0, .04); + } + + .contact-link { + display: inline-flex; + align-items: center; + gap: 7px; + font-size: 12px; + text-decoration: none; + padding: 6px 16px; + border-radius: 3px; + transition: all .2s; + font-weight: 600; + letter-spacing: .04em; + } + + [data-theme="cyberpunk"] .contact-link { + font-family: 'Share Tech Mono', monospace; + color: #00f5ff; + border: 1px solid rgba(0, 245, 255, .25); + background: rgba(0, 245, 255, .04); + } + + [data-theme="cyberpunk"] .contact-link:hover { + background: rgba(0, 245, 255, .12); + border-color: #00f5ff; + } + + [data-theme="bd"] .contact-link { + font-family: 'Comic Neue', cursive; + color: #1a1a1a; + border: 2px solid #1a1a1a; + background: #fff; + box-shadow: 2px 2px 0 #1a1a1a; + border-radius: 4px; + } + + [data-theme="bd"] .contact-link:hover { + background: #E8001C; + color: #fff; + border-color: #E8001C; + } + + [data-theme="itpro"] .contact-link { + font-family: 'Inter', sans-serif; + color: #1a56db; + border: 1px solid #bfdbfe; + background: #eff6ff; + border-radius: 20px; + } + + [data-theme="itpro"] .contact-link:hover { + background: #1a56db; + color: #fff; + } + + .contact-icon { + font-size: 14px; + } + + - -
-
CHARGEMENT DU CV...
-
-
+ +
+
CHARGEMENT DU CV...
+
+
+
+
- -
+ +
- -
- - - -
+ +
+ + + +
- -
+ +
- + }); + - + + \ No newline at end of file