:root{--bg:#242525;--ink:#f2f0ec;--mute:#b9b5ae;--cream:#ede0c8;--navy:#173f8a;--line:#555;--panel:#d6d3ce;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#242525}}
:root[data-theme="dark"]{--bg:#242525}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Source Sans 3','Source Sans Pro',Arial,sans-serif;font-size:1.05rem;line-height:1.6}
.page{max-width:900px;margin:0 auto;padding:48px 40px 56px}
h1,h2,h3,.sans{font-family:'DM Serif Display',Georgia,serif;font-weight:400}
header{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:36px;align-items:center}
h1{margin:0;text-align:center;font-size:clamp(2.4rem,8vw,3.6rem);letter-spacing:.14em;line-height:1}
.role{margin:12px 0 0;text-align:center;font:400 clamp(1.2rem,3.4vw,1.5rem)/1.2 'Source Sans 3','Source Sans Pro',sans-serif;letter-spacing:.08em;padding-bottom:18px;border-bottom:1px solid var(--mute)}
.contact{margin:18px 0 0;text-align:center;color:var(--mute);font-size:1rem}
.contact a{color:inherit}
.photo{margin:0;width:210px;justify-self:center;background:#fff;padding:8px 8px 8px;transform:rotate(4deg);box-shadow:0 6px 18px rgba(0,0,0,.45)}
.photo img{display:block;width:100%;height:auto;filter:grayscale(1)}
.intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:36px;margin-top:48px;align-items:start}
.intro p{margin:0 0 14px;font-size:.98rem}
.intro h3{margin:20px 0 8px;font:400 1.35rem 'DM Serif Display',serif}
/* Skills — style du CV00 */
.skills{background:var(--panel);color:#1d1d1d;padding:28px 28px 22px}
.skills h2{margin:0 0 4px;color:#1d1d1d;font-size:1.6rem;font-weight:400;letter-spacing:.04em}
.skills h3{margin:22px 0 2px;color:#1d1d1d;font-size:1.15rem;font-weight:400;letter-spacing:.02em;padding-top:14px;border-top:1px solid #1d1d1d}
.skills h3:first-of-type{border-top:0;padding-top:0;margin-top:14px}
.sk{margin-top:12px;font:600 1rem/1.2 'Source Sans 3','Source Sans Pro',sans-serif}
.bar{position:relative;height:2px;background:#1d1d1d;margin-top:8px}
.bar i{position:absolute;top:-6px;left:var(--v);width:5px;height:14px;background:#111;border-radius:1px;transform:translateX(-50%)}
h2.sec{margin:64px 0 28px;font-size:clamp(1.8rem,4.5vw,2.6rem);font-weight:400;letter-spacing:.04em}
.tl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;border-top:2px dotted var(--mute);padding-top:0}
.tl li{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:14px;position:relative}
.tl li::before{content:"";position:absolute;top:-7px;width:12px;height:12px;background:var(--bg);border:2px solid var(--ink);border-radius:50%}
.tl .y{order:1;margin-top:6px;background:var(--panel);color:#2b2b2b;font:700 .95rem 'Source Sans 3','Source Sans Pro',sans-serif;padding:6px 10px;border-radius:5px;white-space:nowrap}
.tl .t{order:0;font:600 .95rem/1.25 'Source Sans 3','Source Sans Pro',sans-serif;min-height:3.4em;display:flex;align-items:flex-end}
.tl .n{order:2;color:var(--mute);font-size:.72rem;margin-top:6px}
.tl li.now .t{font-weight:700}
.bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;margin-top:20px;align-items:start}
.bottom h2{margin:56px 0 24px;font-size:clamp(1.7rem,4.5vw,2.4rem);font-weight:400;letter-spacing:.04em}
.int{display:flex;gap:26px;flex-wrap:wrap}
.int div{text-align:center;font-size:.85rem;color:var(--mute)}
.int svg{width:54px;height:54px;display:block;margin:0 auto 8px;fill:none;stroke:var(--panel);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.lang{background:var(--panel);color:#2b2b2b;padding:22px 26px;margin-top:56px}
.lang h2{margin:0 0 10px;font-size:1.5rem}
.lang p{margin:2px 0;font-size:.95rem}
@media (max-width:760px){
 .page{padding:32px 20px 40px}
 header,.intro,.bottom{grid-template-columns:1fr}
 .photo{max-width:180px;order:-1;justify-self:center}
 .tl{grid-template-columns:1fr;border-top:0;border-left:2px dotted var(--mute);gap:18px;padding-left:20px}
 .tl li{align-items:flex-start;text-align:left;padding-top:0}
 .tl li::before{top:6px;left:-27px}
 .tl .t{min-height:0}
 .bottom h2{margin-top:40px}.lang{margin-top:8px}
}
@media print{:root{-webkit-print-color-adjust:exact;print-color-adjust:exact}.page{padding:20px}}