:root{--blush:#f7e9e8;--blush-line:#ecd6d4;--plum:#6b3d42;--plum-dark:#3f2327;--pill-bg:#f1dcd9;--pill-text:#8a4a4f;--ink:#2b2223;--muted:#7a6d6e;--paper:#fff;--canvas:#faf6f5;--accent:#b5656b;--ok:#4f7a5c}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:-apple-system,Helvetica Neue,Arial,sans-serif}.layout{grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:start;gap:28px;max-width:1180px;margin:32px auto;padding:0 20px;display:grid}@media (max-width:680px){.layout{grid-template-columns:1fr}.side{order:-1;position:static}}.cv{background:var(--paper);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px #3f232714,0 8px 24px #3f23270f}.cv-header{background:var(--blush);align-items:center;gap:22px;padding:32px 36px;display:flex}.cv-photo{color:#fff;background:linear-gradient(135deg,#d9b3ae,#8a5a5a);border-radius:50%;flex:none;justify-content:center;align-items:center;width:84px;height:84px;font-family:Georgia,serif;font-size:28px;display:flex;overflow:hidden}.cv-photo img{object-fit:cover;width:100%;height:100%}.cv-header h1{color:var(--plum-dark);letter-spacing:.3px;margin:0 0 4px;font-family:Georgia,Times New Roman,serif;font-size:30px;font-weight:400}.cv-role{letter-spacing:.6px;color:var(--plum);text-transform:uppercase;margin-bottom:10px;font-size:11.5px;font-weight:600}.cv-contact{color:var(--muted);flex-wrap:wrap;gap:6px 10px;font-size:12.5px;display:flex}.cv-contact b{color:var(--plum);font-weight:600}.cv-contact .dot{opacity:.5}.cv-body{padding:8px 36px 36px}.section{margin-top:26px}.section h2{text-transform:uppercase;letter-spacing:.5px;color:var(--plum);align-items:center;gap:8px;margin:0 0 12px;font-size:13px;display:flex}.section h2:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;display:inline-block}.profil-text{color:#3d3232;margin:0;font-size:14px;line-height:1.6}.skills-box{background:var(--canvas);border:1px solid var(--blush-line);border-radius:10px;padding:16px 18px;font-size:13px;line-height:1.7}.skills-box b{color:var(--plum)}.side{flex-direction:column;gap:16px;display:flex;position:sticky;top:24px}.card{background:var(--paper);border-radius:14px;padding:20px 22px;box-shadow:0 1px 3px #3f232712,0 6px 18px #3f23270d}.card h3{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:0 0 12px;font-size:11.5px;font-weight:600}.status-card{background:linear-gradient(135deg, var(--blush), #fbf1f0)}.status-dot{color:var(--ok);align-items:center;gap:7px;font-size:13.5px;font-weight:600;display:inline-flex}.status-dot:before{content:"";background:var(--ok);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #4f7a5c26}.status-sub{color:var(--plum-dark);margin-top:8px;font-size:12.5px}.share-row{gap:8px;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:7px;padding:10px 12px;font-size:12.5px;font-weight:600;text-decoration:none;transition:opacity .15s;display:flex}.btn:hover{opacity:.85}.btn:disabled{opacity:.6;cursor:default}.btn-linkedin{color:#fff;background:#0a66c2}.btn-whatsapp{color:#fff;background:#25d366}.btn-copy{background:var(--canvas);width:100%;color:var(--plum);border:1px solid var(--blush-line);margin-top:8px}.btn-outline{width:100%;color:var(--plum);border:1px solid var(--blush-line);background:#fff}.btn-solid{background:var(--plum);color:#fff;width:100%}.field{margin-bottom:10px}.field label{color:var(--muted);margin-bottom:4px;font-size:11.5px;display:block}.field input,.field textarea{border:1px solid var(--blush-line);width:100%;color:var(--ink);background:var(--canvas);resize:vertical;border-radius:8px;padding:9px 10px;font-family:inherit;font-size:13px}.field textarea{min-height:64px}.privacy-note{color:var(--muted);margin-top:8px;font-size:11px;line-height:1.5}.gallery-toggle{cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:0;font-family:inherit;display:flex}.gallery-toggle h3{margin:0}.chev{color:var(--muted);transition:transform .2s}.chev.open{transform:rotate(180deg)}.gallery-grid{opacity:0;grid-template-columns:repeat(3,1fr);gap:8px;max-height:0;margin-top:14px;transition:max-height .25s,opacity .2s,margin-top .25s;display:grid;overflow:hidden}.gallery-grid.open{opacity:1;max-height:400px}.thumb{aspect-ratio:1;color:#fff;background-position:50%;background-size:cover;border-radius:9px;align-items:flex-end;padding:8px;font-size:10.5px;font-weight:600;display:flex}.thumb.t1{background:linear-gradient(160deg,#c88b8b,#6b3d42)}.thumb.t2{background:linear-gradient(160deg,#a7b89a,#4f7a5c)}.thumb.t3{background:linear-gradient(160deg,#c7a76b,#8a5a3a)}.thumb.thumb-photo{background-color:#000;position:relative}.thumb.thumb-photo:before{content:"";background:linear-gradient(#0000 45%,#0000008c);position:absolute;inset:0}.thumb span{z-index:1;position:relative}.gallery-hint{color:var(--muted);margin-top:10px;font-size:11px;line-height:1.5}.gallery-tagline{letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-top:2px;font-size:9.5px;font-weight:700;display:block}.card h3.gallery-title{color:var(--ink);text-transform:none;letter-spacing:normal;margin:1px 0 0;font-size:13px;font-weight:600}.admin-note{text-align:center;color:var(--muted);padding:4px 0 2px;font-size:11.5px}.admin-note a{color:var(--plum);border-bottom:1px dotted var(--blush-line);text-decoration:none}.topbar{z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--blush-line);background:#ffffffeb;position:sticky;top:0}.topbar-inner{align-items:center;gap:24px;max-width:1180px;margin:0 auto;padding:14px 20px;display:flex}.brand{color:var(--plum-dark);font-family:Georgia,serif;font-size:17px}.tabs{flex:1;gap:4px;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:7px 12px;font-family:inherit;font-size:12.5px;font-weight:600}.tab.active{color:var(--plum);background:var(--blush)}.recruiter-btn{background:var(--plum-dark);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:9px;padding:10px 16px;font-family:inherit;font-size:12.5px;font-weight:700}.recruiter-btn:hover{opacity:.9}.placeholder-panel{text-align:center;max-width:1180px;color:var(--muted);margin:60px auto;padding:0 20px}.placeholder-panel h2{color:var(--plum-dark);font-family:Georgia,serif;font-size:24px;font-weight:400}.portfolio-page{flex-direction:column;gap:24px;max-width:820px;margin:32px auto;padding:0 20px;display:flex}.portfolio-item{background:var(--paper);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px #3f232714,0 8px 24px #3f23270f}.portfolio-image{object-fit:cover;width:100%;max-height:320px;display:block}.portfolio-body{padding:26px 30px}.portfolio-body h3{color:var(--plum-dark);margin:0 0 16px;font-family:Georgia,serif;font-size:20px;font-weight:400}.portfolio-row{margin-bottom:14px}.portfolio-row:last-child{margin-bottom:0}.portfolio-label{text-transform:uppercase;letter-spacing:.5px;color:var(--accent);margin-bottom:4px;font-size:10.5px;font-weight:700;display:block}.portfolio-row p{color:#3d3232;margin:0;font-size:14px;line-height:1.6}.modal-backdrop{z-index:50;background:#2b222373;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-backdrop.open{display:flex}.modal-card{background:#fff;border-radius:16px;width:100%;max-width:440px;padding:28px 28px 24px;position:relative;box-shadow:0 20px 60px #2b222340}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:20px;line-height:1;position:absolute;top:14px;right:16px}.modal-header{align-items:center;gap:14px;margin-bottom:18px;display:flex}.modal-header .cv-photo{width:52px;height:52px;font-size:18px}.modal-header h2{color:var(--plum-dark);margin:0 0 3px;font-family:Georgia,serif;font-size:21px;font-weight:400}.modal-role{color:var(--muted);font-size:11.5px}.modal-grid{border-top:1px solid var(--blush-line);border-bottom:1px solid var(--blush-line);grid-template-columns:1fr 1fr;gap:12px 16px;margin-bottom:14px;padding:16px 0;display:grid}.modal-grid>div span{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:2px;font-size:10.5px;display:block}.modal-grid>div b{color:var(--ink);font-size:13px;font-weight:600}.modal-skills{margin-bottom:20px}.modal-skills span{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:4px;font-size:10.5px;display:block}.modal-skills b{color:#4a3d3e;font-size:12.5px;font-weight:500;line-height:1.5}.modal-actions{gap:10px;display:flex}.modal-actions .btn{flex:1}.timeline{padding-left:26px;position:relative}.timeline:before{content:"";background:var(--blush-line);width:2px;position:absolute;top:8px;bottom:8px;left:4px}.year-group{opacity:.45;margin-bottom:8px;transition:opacity .3s;position:relative}.year-group.active{opacity:1}.year-label{color:var(--plum-dark);margin:0 0 10px;font-family:Georgia,serif;font-size:19px;transition:color .2s;position:relative}.year-label.active{font-weight:600}.year-label:before{content:"";background:var(--accent);width:11px;height:11px;box-shadow:0 0 0 3px var(--paper), 0 0 0 4px var(--blush-line);border-radius:50%;position:absolute;top:6px;left:-26px}.year-tag{color:var(--ok);vertical-align:middle;margin-left:8px;font-size:10.5px;font-weight:600}.year-items{flex-direction:column;gap:8px;margin-bottom:6px;display:flex}.year-item{background:var(--canvas);border:1px solid var(--blush-line);border-radius:10px;padding:10px 14px}.item-type{text-transform:uppercase;letter-spacing:.5px;border-radius:20px;margin-bottom:5px;padding:2px 7px;font-size:9.5px;font-weight:700;display:inline-block}.item-type.formation{background:var(--pill-bg);color:var(--pill-text)}.item-type.entreprise{color:#5b4a8a;background:#e9e2f2}.item-type.mission{color:var(--ok);background:#e3ecdf}.year-item-title{color:var(--ink);font-size:13px;font-weight:600}.year-item-sub{color:var(--muted);margin-top:1px;font-size:11.5px}.timeline-arrow{text-align:left;width:22px;color:var(--blush-line);margin-bottom:8px;margin-left:-26px;font-size:13px}.timeline-cursor{background:var(--plum-dark);z-index:3;pointer-events:none;border-radius:50%;width:18px;height:18px;transition:top .35s cubic-bezier(.4,0,.2,1);position:absolute;left:-33px;box-shadow:0 0 0 5px #6b3d4224}.proof-grid{flex-direction:column;gap:14px;display:flex}.proof-item{background:var(--canvas);border:1px solid var(--blush-line);border-left:3px solid var(--accent);border-radius:10px;padding:14px 16px}.proof-skill{color:var(--plum-dark);margin-bottom:8px;font-size:13.5px;font-weight:700}.proof-row{color:#4a3d3e;gap:7px;margin-bottom:4px;font-size:12.5px;line-height:1.5;display:flex}.proof-row:last-child{margin-bottom:0}.proof-arrow{color:var(--accent);flex:none;font-weight:700}.things-list{flex-direction:column;display:flex}.thing-toggle{border:none;border-bottom:1px solid var(--blush-line);cursor:pointer;width:100%;color:var(--ink);text-align:left;background:0 0;align-items:center;gap:8px;padding:10px 0;font-family:inherit;font-size:13px;font-weight:600;display:flex}.things-list>div:first-child .thing-toggle{padding-top:0}.thing-arrow{color:var(--accent);font-weight:700}.thing-chev{color:var(--muted);margin-left:auto;font-size:11px;transition:transform .2s}.thing-chev.open{transform:rotate(180deg)}.thing-body{color:var(--muted);opacity:0;max-height:0;padding:0;font-size:12px;line-height:1.55;transition:max-height .25s,opacity .2s,padding .25s;overflow:hidden}.thing-body.open{opacity:1;max-height:120px;padding:8px 0 12px}.admin-login-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.admin-login-card{background:var(--paper);border-radius:14px;width:100%;max-width:340px;padding:32px 30px;box-shadow:0 1px 3px #3f232714,0 8px 24px #3f23270f}.admin-login-card h1{color:var(--plum-dark);margin:0 0 6px;font-family:Georgia,serif;font-size:22px;font-weight:400}.admin-login-card p{color:var(--muted);margin:0 0 18px;font-size:12.5px}.admin-login-card label{color:var(--muted);margin-bottom:16px;font-size:11.5px;display:block}.admin-login-card input{border:1px solid var(--blush-line);background:var(--canvas);border-radius:8px;width:100%;margin-top:5px;padding:10px 12px;font-size:14px;display:block}.admin-error{color:#b23b3b;margin-bottom:14px;font-size:12.5px}.admin-page{max-width:900px;margin:0 auto;padding:32px 20px 60px}.admin-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:6px;display:flex}.admin-topbar h1{color:var(--plum-dark);margin:0;font-family:Georgia,serif;font-size:24px;font-weight:400}.admin-actions{gap:8px;display:flex}.admin-actions .btn{flex:none;width:auto;padding:8px 14px}.admin-hint{color:var(--muted);margin:10px 0 16px;font-size:12.5px;line-height:1.5}.admin-textarea{border:1px solid var(--blush-line);background:var(--paper);width:100%;min-height:60vh;color:var(--ink);border-radius:10px;padding:16px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.6}.admin-save-row{align-items:center;gap:14px;margin-top:14px;display:flex}.admin-save-row .btn{flex:none;width:auto;padding:10px 20px}.admin-status.ok{color:var(--ok);font-size:13px;font-weight:600}.admin-status.error{color:#b23b3b;margin-top:8px;font-size:13px;font-weight:600;display:inline-block}.admin-form{flex-direction:column;gap:8px;display:flex}.admin-section{background:var(--paper);border:1px solid var(--blush-line);border-radius:12px;margin-bottom:16px;padding:20px 22px}.admin-section h2{color:var(--plum-dark);margin:0 0 14px;font-family:Georgia,serif;font-size:17px;font-weight:400}.admin-grid{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}@media (max-width:640px){.admin-grid{grid-template-columns:1fr}}.admin-field{color:var(--muted);margin-bottom:12px;font-size:11.5px;display:block}.admin-field span{margin-bottom:4px;display:block}.admin-field select{border:1px solid var(--blush-line);background:var(--canvas);width:100%;color:var(--ink);border-radius:8px;padding:9px 10px;font-family:inherit;font-size:13px;display:block}.auto-textarea{border:1px solid var(--blush-line);width:100%;color:var(--ink);background:var(--canvas);resize:none;border-radius:8px;min-height:38px;padding:9px 10px;font-family:inherit;font-size:13px;line-height:1.5;display:block;overflow:hidden}.admin-array-item{border:1px solid var(--blush-line);background:var(--canvas);border-radius:10px;margin-bottom:12px;padding:14px 16px}.admin-array-item-nested{background:var(--paper);margin-top:10px;margin-bottom:10px}.admin-array-row{align-items:flex-start;gap:10px;display:flex}.admin-array-row .admin-field{flex:1}.admin-array-actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.admin-add{border:1px dashed var(--blush-line);color:var(--plum);cursor:pointer;background:0 0;border-radius:8px;align-self:flex-start;padding:8px 12px;font-size:12.5px;font-weight:600}.platform-list{flex-direction:column;gap:10px;margin-top:16px;display:flex}.platform-item{background:var(--paper);border:1px solid var(--blush-line);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.platform-item-name{color:var(--ink);font-size:14px;font-weight:600}.platform-item-slug{color:var(--muted);font-size:12px}.admin-actions a.btn,.admin-actions .btn{width:auto}.gallery-upload-row{align-items:flex-start;gap:14px;display:flex}.gallery-upload-preview{object-fit:cover;border:1px solid var(--blush-line);border-radius:10px;flex:none;width:72px;height:72px}.gallery-upload-empty{background:var(--canvas);color:var(--muted);justify-content:center;align-items:center;font-size:20px;display:flex}.gallery-upload-fields{flex:1}.identity-photo-preview{border-radius:50%;font-size:22px}.admin-remove{color:#b23b3b;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:12px;font-weight:600}@media print{.topbar,.side,.modal-backdrop,.placeholder-panel{display:none!important}body{background:#fff}.layout{grid-template-columns:1fr;max-width:none;margin:0;padding:0}.cv{box-shadow:none;border-radius:0}}
