:root {
  --bg: #f4f5f7;
  --surface: #ffffff;
  --surface-soft: #f8f9fb;
  --text: #111827;
  --muted: #6b7280;
  --line: #e5e7eb;
  --primary: #171717;
  --accent: #6d5dfc;
  --accent-soft: #efedff;
  --danger: #c24141;
  --shadow: 0 16px 50px rgba(17, 24, 39, .08);
  --radius: 18px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
}

button, input, textarea { font: inherit; }

button { cursor: pointer; }

.topbar {
  height: 70px;
  background: rgba(255,255,255,.92);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 32px;
  position: sticky;
  top: 0;
  z-index: 20;
  backdrop-filter: blur(12px);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--text);
  font-weight: 800;
  letter-spacing: -.02em;
}

.brand-mark {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: var(--primary);
  color: white;
  font-size: 11px;
  letter-spacing: -.04em;
}

.topbar-action {
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 9px 14px;
  color: var(--text);
  font-weight: 650;
}

.topbar-action:hover { background: var(--surface-soft); }

.app-shell {
  width: min(1480px, calc(100% - 48px));
  margin: 0 auto;
  padding: 54px 0 70px;
}

.hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 42px;
}

.eyebrow, .section-kicker, .preview-label {
  color: var(--accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin: 0 0 8px;
}

.hero h1 {
  font-size: clamp(38px, 5vw, 66px);
  line-height: .98;
  letter-spacing: -.055em;
  margin: 0;
  font-weight: 850;
}

.hero h1 span { color: var(--accent); }

.hero-text {
  max-width: 650px;
  color: var(--muted);
  margin: 18px 0 0;
  font-size: 16px;
}

.hero-badge {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: var(--surface);
  border: 1px solid var(--line);
  padding: 11px 14px;
  border-radius: 999px;
  color: #4b5563;
  font-size: 13px;
  box-shadow: 0 5px 20px rgba(0,0,0,.03);
}

.status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #20a464;
  box-shadow: 0 0 0 4px #e4f7ed;
}

.workspace {
  display: grid;
  grid-template-columns: minmax(420px, .92fr) minmax(520px, 1.08fr);
  gap: 28px;
  align-items: start;
}

.panel, .preview-panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.form-panel { padding: 30px; }

.panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 4px;
}

.panel-heading h2 {
  font-size: 25px;
  letter-spacing: -.035em;
  margin: 0;
}

.save-state {
  background: var(--surface-soft);
  color: var(--muted);
  padding: 6px 9px;
  border-radius: 7px;
  font-size: 11px;
  white-space: nowrap;
}

.form-section {
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
}

.form-section:last-of-type { border-bottom: 0; }

.section-title {
  display: flex;
  gap: 13px;
  align-items: flex-start;
  margin-bottom: 22px;
}

.section-number {
  width: 30px;
  height: 30px;
  flex: none;
  border-radius: 9px;
  background: var(--accent-soft);
  color: var(--accent);
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 800;
}

.section-title h3 {
  margin: 0 0 2px;
  font-size: 16px;
  letter-spacing: -.02em;
}

.section-title p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.grid {
  display: grid;
  gap: 14px;
}

.grid.two { grid-template-columns: 1fr 1fr; }

.field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 14px;
}

.field > span {
  font-size: 12px;
  font-weight: 700;
  color: #374151;
}

.field input, .field textarea, .field select {
  width: 100%;
  border: 1px solid #dfe2e7;
  background: #fff;
  border-radius: 10px;
  padding: 11px 12px;
  outline: none;
  color: var(--text);
  transition: .18s ease;
}

.field textarea {
  resize: vertical;
  min-height: 90px;
}

.field input:focus, .field textarea:focus, .field select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}

.field small, .field-help {
  color: var(--muted);
  font-size: 11px;
  margin: -2px 0 4px;
}

.photo-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}

.photo-preview {
  width: 76px;
  height: 76px;
  border-radius: 18px;
  background: var(--primary);
  color: #fff;
  display: grid;
  place-items: center;
  overflow: hidden;
  flex: none;
  font-size: 18px;
  font-weight: 800;
}

.photo-preview img, .cv-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.file-label {
  display: inline-block;
  border: 1px solid var(--line);
  padding: 8px 11px;
  border-radius: 9px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.file-label:hover { background: var(--surface-soft); }

.text-button {
  border: 0;
  background: none;
  padding: 0;
  font-size: 11px;
  font-weight: 700;
}

.danger-text { color: var(--danger); }

.repeat-card {
  border: 1px solid var(--line);
  background: var(--surface-soft);
  border-radius: 13px;
  padding: 16px;
  margin-bottom: 12px;
}

.repeat-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
}

.repeat-card-title {
  font-size: 12px;
  font-weight: 800;
  color: #374151;
}

.remove-button {
  border: 0;
  background: transparent;
  color: var(--danger);
  font-size: 11px;
  font-weight: 750;
}

.tag-row {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-bottom: 9px;
}

.tag-row input { margin: 0; }

.tag-row .remove-button {
  width: 32px;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: white;
}

.outline-button, .secondary-button, .primary-button {
  border-radius: 10px;
  padding: 11px 14px;
  font-size: 12px;
  font-weight: 750;
  transition: .18s ease;
}

.outline-button {
  width: 100%;
  border: 1px dashed #cfd3da;
  background: transparent;
  color: #374151;
}

.outline-button:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: var(--accent-soft);
}

.form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding-top: 25px;
}

.secondary-button {
  border: 1px solid var(--line);
  background: white;
  color: var(--text);
}

.secondary-button:hover { background: var(--surface-soft); }

.primary-button {
  border: 1px solid var(--primary);
  background: var(--primary);
  color: white;
  padding-inline: 18px;
}

.primary-button:hover { transform: translateY(-1px); }

.preview-panel {
  position: sticky;
  top: 94px;
  overflow: hidden;
  background: #eef0f3;
}

.preview-toolbar {
  min-height: 70px;
  background: #fff;
  padding: 13px 18px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.preview-toolbar strong {
  display: block;
  font-size: 14px;
}

.icon-button {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: white;
  font-weight: 800;
}

.paper-wrap {
  padding: 34px;
  max-height: calc(100vh - 165px);
  overflow: auto;
}

.cv-paper {
  box-sizing: border-box;
  width: 210mm;
  min-height: 297mm;
  margin: 0 auto;
  background: #fff;
  box-shadow: 0 18px 45px rgba(0,0,0,.12);
  padding: 16mm 16mm;
  color: #171717;
}

.cv-header {
  display: flex;
  gap: 20px;
  padding-bottom: 20px;
  border-bottom: 2px solid #171717;
}

.cv-photo {
  width: 28mm;
  height: 28mm;
  border-radius: 8px;
  background: #171717;
  color: white;
  display: grid;
  place-items: center;
  flex: none;
  overflow: hidden;
  font-size: 17px;
  font-weight: 800;
}

.cv-heading { min-width: 0; }

.cv-heading h1 {
  font-size: 29px;
  line-height: 1;
  letter-spacing: -.045em;
  margin: 2px 0 7px;
  text-transform: uppercase;
}

.cv-headline {
  margin: 0 0 10px;
  color: #6d5dfc;
  font-size: 12px;
  font-weight: 800;
}

.contact-line {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 15px;
  font-size: 8.5px;
  color: #626262;
}

.cv-body {
  display: grid;
  grid-template-columns: 1fr 55mm;
  gap: 11mm;
  padding-top: 19px;
}

.cv-main { min-width: 0; }

.cv-side {
  border-left: 1px solid #e5e5e5;
  padding-left: 7mm;
}

.cv-section {
  margin-bottom: 21px;
  break-inside: avoid;
}

.cv-section h2 {
  margin: 0 0 10px;
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #6d5dfc;
}

.cv-section p {
  font-size: 9.5px;
  line-height: 1.55;
  margin: 0;
  color: #333;
  white-space: pre-line;
}

.cv-item {
  margin-bottom: 15px;
  break-inside: avoid;
}

.cv-item:last-child { margin-bottom: 0; }

.cv-item-title {
  font-size: 11px;
  font-weight: 800;
  margin: 0 0 2px;
}

.cv-item-subtitle {
  font-size: 9px;
  color: #666;
  margin-bottom: 6px;
}

.cv-item-description {
  font-size: 9px;
  line-height: 1.5;
  color: #333;
  white-space: pre-line;
}

.cv-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.cv-list li {
  font-size: 9px;
  line-height: 1.45;
  margin-bottom: 6px;
  color: #333;
}

.cv-list li::before {
  content: "•";
  color: #6d5dfc;
  margin-right: 6px;
  font-weight: 800;
}

.language-item {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 7px;
  font-size: 9px;
}

.language-item strong { font-weight: 750; }
.language-item span { color: #666; text-align: right; }

.placeholder-text { color: #aaa !important; font-style: italic; }

.toast {
  position: fixed;
  left: 50%;
  bottom: 22px;
  transform: translate(-50%, 20px);
  background: #171717;
  color: white;
  border-radius: 10px;
  padding: 10px 15px;
  font-size: 12px;
  opacity: 0;
  pointer-events: none;
  transition: .22s ease;
  z-index: 50;
}

.toast.show {
  opacity: 1;
  transform: translate(-50%, 0);
}

@media (max-width: 1100px) {
  .workspace { grid-template-columns: 1fr; }
  .preview-panel { position: static; }
  .paper-wrap { max-height: none; }
}

@media (max-width: 700px) {
  .topbar { padding: 0 16px; }
  .app-shell { width: min(100% - 24px, 680px); padding-top: 32px; }
  .hero { display: block; }
  .hero-badge { margin-top: 22px; }
  .form-panel { padding: 20px; }
  .grid.two { grid-template-columns: 1fr; gap: 0; }
  .paper-wrap { padding: 15px 8px 25px; overflow-x: auto; }
  .cv-paper { transform-origin: top center; }
  .preview-panel { border-radius: 14px; }
  .form-actions { flex-direction: column-reverse; }
  .form-actions button { width: 100%; }
}

@media print {
  @page {
    size: A4;
    margin: 0;
  }

  body {
    background: white;
  }

  body * {
    visibility: hidden !important;
  }

  #cvPreview,
  #cvPreview * {
    visibility: visible !important;
  }

  #cvPreview {
    position: absolute;
    left: 0;
    top: 0;
    box-sizing: border-box !important;
    width: 210mm !important;
    min-height: 297mm !important;
    height: auto !important;
    margin: 0 !important;
    box-shadow: none !important;
    padding: 16mm 16mm !important;
    overflow: visible !important;
  }
}


/* ================= V1.1 ================= */
.skill-card {
  border: 1px solid var(--line);
  background: var(--surface-soft);
  border-radius: 13px;
  padding: 13px 14px;
  margin-bottom: 10px;
}
.skill-card-top {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
}
.skill-name-input {
  width: 100%;
  border: 1px solid var(--line);
  background: var(--surface);
  border-radius: 10px;
  padding: 11px 12px;
  outline: none;
  color: var(--text);
}
.skill-name-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.skill-level-line {
  display: grid;
  grid-template-columns: 92px 1fr 48px;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
}
.skill-level-caption, .skill-level-meta {
  font-size: 11px;
  color: var(--muted);
}
.skill-range {
  width: 100%;
  accent-color: var(--accent);
  cursor: pointer;
}
.skill-level-number {
  font-size: 13px;
  text-align: right;
}
.skill-level-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 5px;
}
.skills-help {
  line-height: 1.5;
  margin-top: 10px !important;
}
.cv-skill-item { list-style: none; margin-bottom: 9px; }
.cv-skill-head { display: flex; justify-content: space-between; gap: 8px; font-size: 10px; }
.cv-skill-bar { height: 4px; background: #e5e7eb; border-radius: 999px; overflow: hidden; margin-top: 4px; }
.cv-skill-bar span { display: block; height: 100%; background: currentColor; border-radius: inherit; }
#previewCareerStorySection p { white-space: pre-line; }
@media (max-width: 620px) {
  .skill-level-line { grid-template-columns: 1fr 48px; }
  .skill-level-caption { grid-column: 1 / -1; }
  .skill-level-meta { font-size: 10px; }
}


/* V1.2 — évaluation guidée et responsive */
.assessment-intro { color: var(--muted); font-size: 12px; line-height: 1.45; margin: 12px 0 8px; }
.assessment-checklist { display: grid; gap: 7px; margin: 8px 0 12px; }
.assessment-task { display: flex; align-items: flex-start; gap: 9px; font-size: 12px; line-height: 1.4; padding: 7px 9px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); cursor: pointer; }
.assessment-task input { margin-top: 2px; accent-color: var(--accent); flex: 0 0 auto; }
.assessment-result { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid var(--line); padding-top: 10px; font-size: 11px; color: var(--muted); }
.assessment-result strong { color: var(--text); white-space: nowrap; }
.skill-detail-field { margin-top: 12px; }
.skill-detail-field input { width: 100%; }
@media (max-width: 620px) { .assessment-result { align-items: flex-start; flex-direction: column; gap: 4px; } }

/* V1.2.1 — galerie de modèles */
.template-picker{padding:14px 16px;background:#f8fafc;border-bottom:1px solid var(--line)}
.template-picker-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}
.template-picker-heading strong{font-size:13px}.template-picker-heading span{font-size:10px;color:var(--muted)}
.template-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.template-option{min-width:0;display:flex;align-items:center;gap:7px;text-align:left;padding:7px;border:1px solid #dfe3e8;border-radius:9px;background:white;cursor:pointer;color:#20242b}
.template-option:hover{border-color:#8a91a0}.template-option.is-selected{border-color:#635bdf;box-shadow:0 0 0 2px #635bdf22;background:#f5f4ff}
.template-option b{display:block;font-size:10px;line-height:1.2}.template-option small{display:block;font-size:9px;line-height:1.25;color:#727987;margin-top:3px}
.template-swatch{display:grid;place-items:center;flex:0 0 30px;height:39px;border:1px solid #e3e5e8;background:white;font-family:Georgia,serif;font-size:12px;font-weight:bold;color:#263345}
.swatch-classic{border-top:4px solid #222}.swatch-modern{border-top:6px solid #277c85}.swatch-compact{font-family:Arial,sans-serif;letter-spacing:-1px}.swatch-executive{border-top:3px double #8c754d;color:#8c754d}.swatch-technical{font-family:monospace;background:#f0f4f7}.swatch-editorial{font-size:17px;font-style:italic}.swatch-minimal{border:0}.swatch-accent{border-left:5px solid #d95f45}.swatch-carbone{background:#29313a;color:white;border-color:#29313a}.swatch-academic{font-family:Georgia,serif;border-bottom:3px double #5d5143}
@media(max-width:700px){.template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.template-picker-heading{align-items:flex-start;flex-direction:column;gap:3px}.template-option b{font-size:11px}}
@media print{.template-picker,.preview-toolbar,.topbar,.hero,.form-panel{display:none!important}.preview-panel{position:static!important;background:white!important;overflow:visible!important}.paper-wrap{padding:0!important;max-height:none!important;overflow:visible!important}.cv-paper{margin:0!important;box-shadow:none!important;width:100%!important;min-height:0!important}}

/* V1.2.2: sélecteur compact pour un grand catalogue de modèles */
.template-select-label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin:10px 0 6px}
.template-select{display:block;width:100%;padding:12px 13px;border:1px solid #dfe3e8;border-radius:10px;background:#fff;color:var(--text);font:inherit;cursor:pointer}
.template-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.software-card{border:1px solid #e5e7eb;border-radius:12px;padding:10px;margin-bottom:12px;background:#fff}
.software-card .tag-row{margin-bottom:0}
.software-card .tag-row input{flex:1;min-width:0;width:100%;border:1px solid #dfe2e7;border-radius:9px;padding:11px 12px;font:inherit}
.software-card .assessment-intro{margin:10px 0;font-size:12px;color:var(--muted)}
.software-card .assessment-result{margin-top:9px;padding-top:8px;border-top:1px solid #eee;display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted)}
.software-card .assessment-result strong{color:var(--text)}


/* V1.2.3 corrigée — A4 stable, marges sûres et densité adaptée. */
.cv-paper.density-sparse { padding: 16mm 16mm; }
.cv-paper.density-sparse .cv-header { padding-bottom: 14px; gap: 16px; }
.cv-paper.density-sparse .cv-body {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  padding-top: 15px;
}
.cv-paper.density-sparse .cv-side {
  border-left: 0;
  border-top: 1px solid #e5e5e5;
  padding: 13px 0 0;
  margin-top: 2px;
}
.cv-paper.density-sparse .cv-section { margin-bottom: 13px; }
.cv-paper.density-sparse .cv-section h2 { margin-bottom: 6px; }
.cv-paper.density-sparse .cv-item { margin-bottom: 9px; }
.cv-paper.density-sparse .cv-section p,
.cv-paper.density-sparse .cv-item-description { font-size: 10px; line-height: 1.5; }
.cv-paper.density-regular .cv-section { margin-bottom: 17px; }
.cv-paper.density-regular .cv-item { margin-bottom: 12px; }
.cv-paper.density-dense { padding: 14mm 14mm; }
.cv-paper.density-dense .cv-header { padding-bottom: 13px; gap: 14px; }
.cv-paper.density-dense .cv-body {
  grid-template-columns: minmax(0, 1fr) 49mm;
  gap: 7mm;
  padding-top: 13px;
}
.cv-paper.density-dense .cv-side { padding-left: 5mm; }
.cv-paper.density-dense .cv-section { margin-bottom: 12px; }
.cv-paper.density-dense .cv-section h2 { margin-bottom: 6px; }
.cv-paper.density-dense .cv-item { margin-bottom: 8px; }
.cv-paper.density-dense .cv-section p,
.cv-paper.density-dense .cv-item-description { font-size: 9px; line-height: 1.4; }
.cv-paper.density-dense .cv-item-title { font-size: 10px; }
.cv-paper.density-dense .cv-item-subtitle { font-size: 8.5px; }
.cv-paper.density-dense .cv-skill-bar { height: 3px; }
.cv-paper .cv-section[style*="display: none"] { display: none !important; }
.cv-paper .cv-main:empty, .cv-paper .cv-side:empty { display: none; }

/* Le modèle Carbone conserve son bandeau sans déplacer le texte vers le bord. */
.cv-paper.template-carbone .cv-header {
  margin-left: -16mm;
  margin-right: -16mm;
  padding-left: 16mm;
  padding-right: 16mm;
}
@media print {
  @page { size: A4; margin: 0; }
  .cv-paper {
    box-sizing: border-box !important;
    width: 210mm !important;
    min-height: 297mm !important;
    height: auto !important;
    padding: 16mm 16mm !important;
  }
  .cv-paper.density-sparse { padding: 16mm 16mm !important; }
  .cv-paper.density-dense { padding: 14mm 14mm !important; }
  .cv-paper.template-carbone .cv-header {
    margin-left: -16mm;
    margin-right: -16mm;
    padding-left: 16mm;
    padding-right: 16mm;
  }
}

/* ==========================================================
   PolyProfil V1.2.4 — identité, accueil animé et aperçu filigrané
   ========================================================== */
:root { --primary: #0b2944; --accent: #159ec2; --accent-soft: #e6f7fb; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text); }
.brand-logo { width:43px; height:43px; object-fit:contain; border-radius:9px; background:#fff; }
.brand-copy { display:flex; flex-direction:column; line-height:1.15; }
.brand-copy strong { font-size:17px; letter-spacing:-.4px; color:#0b2944; }
.brand-copy small { font-size:10px; color:#1787a7; margin-top:4px; }
.topbar-action { background:#0b2944!important; color:#fff!important; }
.eyebrow { color:#168eaf!important; letter-spacing:.13em!important; }
.primary-button { background:linear-gradient(120deg,#0b2944,#159ec2)!important; }

.welcome-screen { position:fixed; inset:0; z-index:9999; display:grid; place-items:center; overflow:hidden; color:#fff; background:radial-gradient(ellipse at 50% 42%,#123f60 0%,#0b2944 48%,#071827 100%); transition:opacity .45s ease, visibility .45s ease; }
.welcome-screen::before { content:""; position:absolute; inset:0; opacity:.15; background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px); background-size:46px 46px; mask-image:radial-gradient(ellipse at center,#000,transparent 75%); }
.welcome-glow { position:absolute; width:300px; height:300px; border-radius:50%; filter:blur(75px); opacity:.23; pointer-events:none; }
.welcome-glow-one { background:#18b8dd; top:-100px; right:-70px; animation:glowDrift 7s ease-in-out infinite alternate; }
.welcome-glow-two { background:#2474d8; bottom:-150px; left:-80px; animation:glowDrift 8s ease-in-out infinite alternate-reverse; }
.welcome-content { position:relative; z-index:1; display:flex; align-items:center; flex-direction:column; width:min(92%,560px); padding:28px 16px; text-align:center; animation:welcomeRise .8s cubic-bezier(.2,.7,.2,1) both; }
.welcome-logo-wrap { display:grid; place-items:center; width:116px; height:116px; padding:5px; border:1px solid rgba(255,255,255,.3); border-radius:29px; background:rgba(255,255,255,.97); box-shadow:0 0 0 9px rgba(255,255,255,.04),0 18px 65px rgba(0,0,0,.25); animation:logoFloat 3s ease-in-out infinite; }
.welcome-logo { width:100%; height:100%; object-fit:contain; border-radius:23px; }
.welcome-overline { margin:30px 0 10px; color:#8edff2; font-size:10px; font-weight:800; letter-spacing:.2em; }
.welcome-content h1 { margin:0; color:#fff; font-size:clamp(27px,5vw,43px); line-height:1.15; letter-spacing:-1.2px; }
.welcome-content h1 span { color:#42c4e4; }
.welcome-slogan { margin:13px 0 27px; color:#d9eaf4; font-size:clamp(17px,3vw,21px); font-weight:500; }
.welcome-loader { width:145px; height:3px; overflow:hidden; border-radius:9px; background:rgba(255,255,255,.17); }
.welcome-loader span { display:block; width:42%; height:100%; border-radius:9px; background:#47c6e6; animation:loaderTravel 1.25s ease-in-out infinite; }
.welcome-caption { margin:11px 0 0; color:#a9c0d1; font-size:11px; }
.welcome-skip { margin-top:25px; padding:9px 14px; border:1px solid rgba(255,255,255,.22); border-radius:999px; color:#d8eaf4; background:rgba(255,255,255,.06); font-size:12px; transition:background .2s ease; }
.welcome-skip:hover { background:rgba(255,255,255,.14); }
.welcome-skip span { padding-left:5px; color:#4bc8e6; }
.welcome-exit { opacity:0; visibility:hidden; pointer-events:none; }
body.is-loading { overflow:hidden; }

.cv-paper { position:relative; isolation:isolate; overflow:hidden; }
.cv-paper::before { content:"POLYPROFIL  •  APERÇU"; position:absolute; z-index:5; inset:-15% -30%; display:flex; align-items:center; justify-content:center; white-space:pre-wrap; text-align:center; overflow-wrap:anywhere; color:rgba(11,65,91,.12); font-size:clamp(22px,3vw,34px); line-height:3.8; letter-spacing:.13em; font-weight:800; pointer-events:none; transform:rotate(-32deg); background-image:repeating-linear-gradient(0deg,transparent 0,transparent 118px,rgba(255,255,255,0) 119px); text-shadow:0 145px rgba(11,65,91,.12),0 -145px rgba(11,65,91,.12); }
.cv-paper > * { position:relative; z-index:1; }
.cv-paper::before { z-index:20; }
.watermark-pill { display:inline-block; margin-left:7px; padding:3px 7px; border-radius:999px; vertical-align:middle; color:#0b6785; background:#e3f7fb; font-size:9px; font-weight:700; }
.unlock-modal[hidden] { display:none!important; }
.unlock-modal { position:fixed; inset:0; z-index:10000; display:grid; place-items:center; padding:18px; background:rgba(5,18,31,.72); backdrop-filter:blur(8px); }
.unlock-card { position:relative; width:min(100%,440px); padding:32px 27px 24px; border:1px solid #dceaf0; border-radius:23px; background:#fff; box-shadow:0 25px 80px #00142655; text-align:center; animation:welcomeRise .25s ease both; }
.unlock-close { position:absolute; top:12px; right:14px; width:35px; height:35px; border:0; border-radius:50%; background:#f0f5f7; color:#244050; font-size:25px; }
.unlock-icon { display:grid; place-items:center; width:50px; height:50px; margin:0 auto 13px; border-radius:16px; color:#fff; background:linear-gradient(135deg,#0b2944,#159ec2); font-size:25px; }
.unlock-kicker { margin:0 0 8px; color:#1686a6; font-size:10px; font-weight:800; letter-spacing:.17em; }
.unlock-card h2 { margin:0 0 10px; color:#102d42; font-size:25px; letter-spacing:-.6px; }
.unlock-card > p:not(.unlock-kicker):not(.payment-note) { margin:0 auto 17px; color:#60717e; font-size:13px; line-height:1.6; }
.unlock-formats { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:16px 0; }
.unlock-formats span { padding:11px 7px; border:1px solid #dcecf1; border-radius:10px; background:#f4fbfd; color:#164a61; font-size:11px; font-weight:700; }
.payment-note { padding:13px; border-radius:12px; background:#f5f7f9; color:#526571; font-size:12px; line-height:1.65; }
.payment-note strong { color:#18384c; }
.unlock-confirm { width:100%; margin-top:8px; }
.unlock-footnote { display:block; margin-top:11px; color:#788791; font-size:10px; line-height:1.5; }
body.modal-open { overflow:hidden; }
@keyframes welcomeRise { from { opacity:0; transform:translateY(15px) scale(.985); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes logoFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-5px); } }
@keyframes glowDrift { from { transform:translate3d(0,0,0) scale(1); } to { transform:translate3d(35px,25px,0) scale(1.15); } }
@keyframes loaderTravel { from { transform:translateX(-120%); } to { transform:translateX(360%); } }
@media(max-width:620px) { .topbar { padding:0 14px!important; } .brand-logo { width:37px;height:37px; } .brand-copy strong { font-size:15px; } .brand-copy small { font-size:9px; } .welcome-logo-wrap { width:96px;height:96px;border-radius:25px; } .welcome-overline { max-width:270px; line-height:1.7; } .unlock-card { padding:29px 19px 21px; } .cv-paper::before { font-size:23px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; } }
@media print { .cv-paper::before { content:"POLYPROFIL • APERÇU"!important; color:rgba(11,65,91,.12)!important; -webkit-print-color-adjust:exact; print-color-adjust:exact; } }
