/* CV language picker (FR / EN / ES / DE). Added by tools/cv/picker.py */
.cvp{ position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; padding:16px; }
.cvp[hidden]{ display:none; }
.cvp-bg{ position:absolute; inset:0; background:rgba(9,9,11,.55); opacity:0; transition:opacity .25s ease; }
.cvp-card{ position:relative; width:100%; max-width:420px; border-radius:26px; background:#fff; padding:26px 22px 20px;
  box-shadow:0 40px 80px -30px rgba(11,31,77,.55), 0 0 0 1px rgba(24,24,27,.06); font-family:'Inter',system-ui,sans-serif;
  opacity:0; transform:translateY(14px) scale(.97); transition:opacity .25s ease, transform .3s cubic-bezier(.2,.8,.2,1); }
.cvp.on .cvp-bg{ opacity:1; } .cvp.on .cvp-card{ opacity:1; transform:none; }
.cvp-card::before{ content:""; position:absolute; left:22px; right:22px; top:0; height:3px; border-radius:0 0 4px 4px;
  background:linear-gradient(90deg,#0b1f4d,#2563eb 35%,#7c3aed 65%,#06b6d4); }
.cvp-x{ position:absolute; top:12px; right:12px; width:34px; height:34px; border-radius:9999px; border:0; background:#f4f4f5; color:#3f3f46;
  font-size:20px; line-height:1; cursor:pointer; }
.cvp-x:hover{ background:#e4e4e7; }
.cvp-ic{ width:46px; height:46px; border-radius:14px; display:flex; align-items:center; justify-content:center; color:#fff;
  background:linear-gradient(135deg,#1d4ed8,#7c3aed); margin-bottom:12px; }
.cvp-ic svg{ width:22px; height:22px; }
.cvp h3{ margin:0; font:700 20px/1.2 'Geist','Inter',sans-serif; letter-spacing:-.02em; color:#09090b; }
.cvp p{ margin:4px 0 16px; font-size:14px; color:#71717a; }
.cvp-list{ display:grid; gap:8px; }
.cvp-o{ display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:16px; border:1px solid #e4e4e7; background:#fafafa;
  color:#18181b; text-decoration:none; transition:border-color .2s ease, background .2s ease, transform .2s ease; }
.cvp-o:hover, .cvp-o:focus-visible{ border-color:#a5b4fc; background:#eef2ff; transform:translateY(-1px); outline:none; }
.cvp-o.rec{ border-color:#c7d2fe; background:linear-gradient(110deg,#eef2ff,#f5f3ff 60%,#ecfeff); }
.cvp-flag{ flex:0 0 auto; width:30px; height:21px; border-radius:5px; overflow:hidden; box-shadow:0 0 0 1px rgba(0,0,0,.08); }
.cvp-flag svg{ display:block; width:100%; height:100%; }
.cvp-flag.fr{ background:linear-gradient(90deg,#0055a4 33.3%,#fff 33.3% 66.6%,#ef4135 66.6%); }
.cvp-flag.es{ background:linear-gradient(#aa151b 25%,#f1bf00 25% 75%,#aa151b 75%); }
.cvp-flag.de{ background:linear-gradient(#000 33.3%,#dd0000 33.3% 66.6%,#ffce00 66.6%); }
.cvp-n{ flex:1; font:600 15px 'Geist','Inter',sans-serif; }
.cvp-n small{ display:block; font:500 12px 'Inter',sans-serif; color:#71717a; margin-top:1px; }
.cvp-r{ font:600 11px 'Geist Mono',monospace; letter-spacing:.06em; text-transform:uppercase; color:#4338ca; background:#e0e7ff; border-radius:9999px; padding:3px 8px; }
.cvp-go{ color:#a1a1aa; } .cvp-o:hover .cvp-go{ color:#4f46e5; }
.cvp-go svg{ width:18px; height:18px; display:block; }
@media (prefers-reduced-motion:reduce){ .cvp-bg, .cvp-card{ transition:none; } }
