/* Direction choisie : violet profond, cœur lumineux et obélisque architectural. */
.theme-violet {
  color-scheme: dark;
  --bg: #1b1025;
  --bg-2: #291a35;
  --bg-3: #352141;
  --surface: #2c1c37;
  --text: #fcf7ff;
  --text-soft: #e2d2eb;
  --muted: #baa7c7;
  --accent: #e0b7f7;
  --accent-2: #f1d5ff;
  --border: #dfbbe92b;
  --border-strong: #e9cdfb70;
  --grad: linear-gradient(120deg, #e9caff, #dcb0f3);
  background: var(--bg);
}
.theme-violet ::selection { background: #d6a0ef; color: #271231; }
.theme-violet h2, .theme-violet h3 { font-family: var(--font-body); font-weight: 400; }
.theme-violet h2 em { font-style: normal; color: inherit; }
.theme-violet .text-link { color: #e6c1fa; font-size: 14px; }
.theme-violet .text-link:hover { color: #fff; }
.theme-violet .btn--primary { background: var(--grad); color: #281333; font-weight: 600; }
.theme-violet .btn--primary:hover { background: #f1d8ff; color: #281333; box-shadow: 0 8px 35px #d7a0ef20; }

/* L'identité du header apparaît au défilement, comme sur l'accueil initial. */
.theme-violet .site-header { height: 92px; background: #1c1125ed; border-color: var(--border); }
.theme-violet .site-header.is-scrolled { background: #1c1125ed; box-shadow: 0 7px 25px #10091540; }
.theme-violet .site-brand { color: #fff7ff; }
.theme-violet .site-brand img { background: #faf6f1; border-radius: 50%; padding: 2px; }
.theme-violet .site-brand > span { font-family: var(--font-body); font-size: 20px; letter-spacing: -.04em; }
.theme-violet .site-nav { gap: 30px; }
.theme-violet .site-nav a { color: #e4d7eb; font-size: 14px; }
.theme-violet .site-nav a:hover, .theme-violet .site-nav a.is-active { color: #fff; }
.theme-violet .site-nav a.is-active::after { background: #e5b7ff; }
.theme-violet .header-contact { color: #fff5ff; border-color: #e5cde6a6; padding: 10px 25px; gap: 35px; font-size: 14px; }
.theme-violet .header-contact:hover { background: #ffffff0c; }
.theme-violet .nav-toggle { border-color: #e5cde669; }
.theme-violet .nav-toggle span { background: #f1d8ff; }

.is-home .hero {
  isolation: isolate;
  padding: 132px 0 44px;
  background: radial-gradient(ellipse at 82% 70%, #5d285541 0, transparent 48%), linear-gradient(118deg, #1b1026, #24142e 58%, #301a39);
  border-bottom: 1px solid #edc0f73d;
}
.hero__atmosphere { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hero__atmosphere::before {
  content: ''; position: absolute; inset: 0; opacity: .065;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.7' d='M0 0h180v180H0z'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}
.hero__atmosphere::after {
  content: ''; position: absolute; inset: -10% -5%;
  background: linear-gradient(127deg, transparent 14%, #e6bcfb09 23%, #0602093b 24%, #08030d45 27%, transparent 29%, transparent 36%, #efd8ff08 44%, #05010742 45%, #05010740 48%, transparent 51%);
  filter: blur(8px);
  animation: room-light 24s ease-in-out infinite alternate;
}
.hero__obelisk { position: absolute; left: -8px; bottom: -8px; height: calc(100% - 124px); width: 145px; opacity: .65; pointer-events: none; z-index: 0; }
.is-home .hero__grid { max-width: 1210px; grid-template-columns: 1fr 1fr; gap: 64px; min-height: 625px; z-index: 1; }
.is-home .hero__intro { position: relative; isolation: isolate; padding: 0; }
.is-home .hero__intro::after {
  content: ''; position: absolute; z-index: 3; inset: -80px -24px -40px; pointer-events: none;
  background: linear-gradient(127deg, transparent 7%, #fff8ff18 18%, #0000005e 19%, #0000005e 23%, transparent 25%, transparent 37%, #fff8ff12 46%, #00000050 47%, #00000050 50%, transparent 52%);
  /* Fondre les bords du calque projeté, y compris pendant son déplacement. */
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 13%, #000 70%, transparent), linear-gradient(180deg, transparent, #000 100px, #000 calc(100% - 70px), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 13%, #000 70%, transparent), linear-gradient(180deg, transparent, #000 100px, #000 calc(100% - 70px), transparent);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
  mix-blend-mode: soft-light; opacity: .6; filter: blur(3px);
  animation: room-light 24s ease-in-out infinite alternate;
}
.is-home .hero__logo { width: 205px; background: #fcf8f2; border-radius: 50%; padding: 4px; margin: 0 0 19px 26px; box-shadow: 0 0 0 1px #f2d9ff99, 0 15px 45px #07010c36; filter: none; }
.is-home .hero__signature .hero__name { font: 400 clamp(44px, 4.6vw, 67px)/1.1 var(--font-body); color: #fff9ff; letter-spacing: -.055em; margin: 0 0 17px; }
.heartmath-badge { display: block; position: relative; width: 327px; max-width: 90%; margin-bottom: 32px; }
.is-home .hero__intro .heartmath-logo { width: 100%; margin: 0; filter: brightness(0) invert(1); }
/* Le masque utilise les pixels du logo fourni et conserve son lettrage original. */
.heartmath-badge::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, #ae60c8 0%, #d51295 26%, #fdf5ff 33%); -webkit-mask: url('../img/heartmath-coach.png') center / contain no-repeat; mask: url('../img/heartmath-coach.png') center / contain no-repeat; pointer-events: none; }
.is-home .hero__intro .credentials-list { color: #ecdaff; font-size: 18px; line-height: 1.6; margin-bottom: 28px; gap: 5px; max-width: none; }
.is-home .hero__intro .credential-sub { color: #dac9e5; font-size: 14px; }
.is-home .hero__cv { padding: 17px 29px; font-size: 14px; gap: 27px; min-height: 59px; }
.is-home .hero__visual { align-self: center; width: 100%; }
.is-home .hero__quote { margin: 0 0 12px; width: 100%; text-align: center; }
.is-home .hero__quote p { color: #fff4fc; font: italic 400 clamp(29px, 2.7vw, 39px)/1.13 var(--font-head); letter-spacing: -.015em; margin: 0; text-shadow: 0 2px 15px #170b2480; }
.is-home .hero__quote cite { color: #eadcef; font: normal 13px/1.5 var(--font-body); margin-top: 14px; letter-spacing: 0; }

/* Sculpture, halo et lumière rasante : chaque couche reste indépendante du texte. */
.is-home .heart-scene { height: 506px; overflow: visible; }
.is-home .heart-scene::before {
  width: 125%; height: 60%; top: auto; bottom: -14%; border-radius: 50%;
  background: radial-gradient(ellipse, #f2a1df17, #95589c08 48%, transparent 70%); box-shadow: none;
  transform: perspective(350px) rotateX(65deg); z-index: -2;
}
.is-home .heart-scene::after { width: 110%; height: 105%; background: radial-gradient(ellipse at 56% 46%, #f1a9e059 0, #b94f955c 29%, #a748991d 50%, transparent 69%); filter: blur(22px); opacity: .8; z-index: -1; animation: violet-halo 7s ease-in-out infinite alternate; }
.is-home .heart-scene__light { width: 128px; height: 920px; top: -345px; right: -13px; transform: rotate(43deg); background: linear-gradient(180deg, transparent, #fe99d382 20%, #ed8bceab 48%, #f5a0db36 75%, transparent); border-radius: 50%; filter: blur(24px); opacity: .7; z-index: -1; animation: violet-beam 12s ease-in-out infinite alternate; }
.is-home .heart-sculpture { width: 415px; max-width: 82%; z-index: 2; transform: none; animation: violet-float 7s ease-in-out infinite; transform-origin: 50% 70%; }
.is-home .hero__heart-img { filter: drop-shadow(10px 20px 18px #0d05164d) drop-shadow(0 0 18px #ed72ce24); animation: violet-beat 2.8s ease-in-out infinite; }
.is-home .heart-sculpture::after { background: linear-gradient(118deg, transparent 30%, #fff4 48%, transparent 64%); background-size: 300% 100%; -webkit-mask-image: url('../img/heart-violet.png'); mask-image: url('../img/heart-violet.png'); opacity: .18; animation: violet-shimmer 12s ease-in-out infinite; }
.is-home .heart-scene__orbit--one { width: 485px; height: 485px; max-width: 100%; top: 6px; border: 1px solid #e9a1d948; transform: rotate(-25deg); z-index: 0; box-shadow: 0 -3px 12px #f49cdb22, inset 0 3px 7px #f4b0e00f; }
.is-home .heart-scene__orbit--one::after { content: ''; position: absolute; inset: -1px; border: 2px solid transparent; border-top-color: #ffc7ecb0; border-right-color: #efb3e54d; border-radius: 50%; filter: drop-shadow(0 0 6px #ff9de1); -webkit-mask-image: linear-gradient(135deg, transparent 18%, #000 48%, transparent 79%); mask-image: linear-gradient(135deg, transparent 18%, #000 48%, transparent 79%); }
.heart-scene__floor { position: absolute; bottom: 2px; left: 4%; width: 94%; height: 14px; border-radius: 50%; background: radial-gradient(ellipse, #ffd4efa8 0, #e17bbd57 28%, #8b3c781c 57%, transparent 74%); filter: blur(4px); box-shadow: 0 10px 28px #d25bab29; z-index: 0; }

.is-home .coherence-intro { position: relative; background: linear-gradient(120deg, #382344, #30203d); border: 0; padding: 61px 0; }
.is-home .coherence-intro__inner { grid-template-columns: 1fr 1fr; gap: 76px; }
.is-home .coherence-intro h2 { font-size: clamp(38px, 4.1vw, 58px); line-height: 1.09; letter-spacing: -.055em; }
.is-home .coherence-intro__copy { font-size: 17px; line-height: 1.8; max-width: 500px; }
.is-home .coherence-intro .eyebrow { color: #e0b6f3; }
.is-home .coherence-intro .text-link { font-size: 15px; }
.is-home .coherence-intro .text-link::after { content: none; }
.is-home #apropos { background: radial-gradient(ellipse at 12% 35%, #69426826, transparent 58%), #1f142b; }
.is-home .about-layout { gap: 100px; }
.is-home .portrait__frame::before { background: #5b396650; border: 1px solid #d5a5e130; }
.is-home .portrait__frame img { filter: saturate(.7); }
.is-home .about-copy h2 { font-size: clamp(32px, 3.2vw, 46px); line-height: 1.16; }
.is-home .journal-section { background: #1f142b; padding-bottom: 88px; }
.is-home .post-card, .is-home .post-card:nth-child(2), .is-home .post-card:nth-child(3) { background: #2e1e39; border: 1px solid #e8b8fb1c; border-radius: 12px; }
.is-home .post-card:nth-child(2) { background: #32213d; }
.is-home .post-card:nth-child(3) { background: #362340; }
.is-home .post-card:hover { border-color: #d5a8ec70; background: #3b2648; }
.is-home .post-card h3 { font-size: 24px; line-height: 1.3; letter-spacing: -.035em; }
.is-home .post-card__cat { color: #dbb4eb; }
.is-home .post-card__bottom, .is-home .post-card__bottom a { border-color: #d7b3ed35; }
.is-home .section--cta { background: #1f142b; }
.is-home .cta { background: radial-gradient(ellipse at 90% 100%, #824f895c, transparent 64%), #3e274b; border: 1px solid #cc9de52b; padding-block: 48px; }
.is-home .cta h2 { font-size: clamp(34px, 3.7vw, 50px); line-height: 1.12; }
.is-home .cta h2 em { color: #edc8ff; }
.is-home .cta .btn { background: #e6c6f6; color: #291434; }
.is-home .cta .btn:hover { background: #f1deff; }
.theme-violet .site-footer { background: #170e20; border-top-color: #bc94d129; }
.theme-violet .site-footer__brand strong { color: #f8ecff; font-family: var(--font-body); font-weight: 400; }
.theme-violet .site-footer__logo { background: #fcf8f2; padding: 3px; opacity: 1; }
.theme-violet .site-footer__links a:hover { color: #fff; }

@keyframes room-light { from { transform: translate(-12px, -8px); opacity: .6; } to { transform: translate(15px, 10px); opacity: .85; } }
@keyframes violet-float { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-9px) rotate(0); } }
@keyframes violet-beat { 0%, 40%, 100% { transform: scale(1); } 12% { transform: scale(1.022); } 23% { transform: scale(.997); } 30% { transform: scale(1.009); } }
@keyframes violet-halo { from { opacity: .66; transform: scale(.97); } to { opacity: .9; transform: scale(1.035); } }
@keyframes violet-beam { from { opacity: .56; transform: rotate(41deg) translateX(-8px); } to { opacity: .8; transform: rotate(45deg) translateX(8px); } }
@keyframes violet-shimmer { 0%, 15% { background-position: 100% 0; opacity: 0; } 50% { opacity: .22; } 85%, 100% { background-position: 0 0; opacity: 0; } }

@media (min-width: 800px) {
  .is-home .site-header:not(.brand-revealed) .site-nav { position: absolute; left: 50%; transform: translateX(-50%); }
}
@media (max-width: 1100px) and (min-width: 800px) {
  .is-home .container { width: calc(100% - 6rem); }
  .is-home .hero__grid { gap: 28px; min-height: 565px; }
  .hero__obelisk { left: -30px; width: 115px; opacity: .42; }
  .is-home .hero__logo { width: 175px; margin-left: 10px; }
  .is-home .hero__signature .hero__name { font-size: clamp(39px, 4.6vw, 49px); }
  .heartmath-badge { width: 280px; }
  .is-home .hero__intro .credentials-list { font-size: 16px; }
  .is-home .hero__intro .credential-sub { font-size: 13px; }
  .is-home .hero__cv { font-size: 12px; padding: 14px 20px; gap: 15px; }
  .is-home .hero__quote p { font-size: 29px; }
  .is-home .hero__quote cite { font-size: 11px; }
  .is-home .heart-scene { height: 420px; }
  .is-home .heart-sculpture { width: 310px; max-width: 90%; }
  .is-home .heart-scene__orbit--one { width: 365px; height: 365px; top: 20px; }
  .is-home .site-nav { gap: 18px; }
  .is-home .site-nav a { font-size: 12px; }
  .is-home .header-contact { font-size: 12px; padding: 8px 17px; gap: 15px; }
  .is-home .site-brand > span { font-size: 17px; }
  .is-home .coherence-intro__inner { gap: 40px; }
  .is-home .coherence-intro__copy { font-size: 15px; }
  .is-home .about-layout { gap: 50px; }
}
@media (max-width: 799px) {
  .is-home .site-header { height: 76px; }
  .is-home .site-nav { gap: 4px; background: #261731fa; border-color: #cc99ec30; }
  .is-home .site-nav a { color: #f1e3fa; }
  .is-home .site-nav a.is-active { background: #79548a40; }
  .is-home .site-brand > span { font-size: 19px; }
  .is-home .hero { padding: 111px 0 36px; }
  .is-home .hero__grid { grid-template-columns: minmax(0, 1fr); gap: 48px; min-height: 0; }
  .is-home .hero__intro { max-width: 520px; margin-inline: auto; }
  .is-home .hero__logo { width: 160px; margin: 0 0 19px 3px; }
  .is-home .hero__signature .hero__name { font-size: clamp(40px, 8.4vw, 60px); margin-bottom: 17px; }
  .heartmath-badge { width: 288px; margin-bottom: 28px; }
  .is-home .hero__intro .credentials-list { font-size: 16px; line-height: 1.6; margin-bottom: 26px; }
  .is-home .hero__intro .credential-sub { font-size: 12px; }
  .is-home .hero__cv { font-size: 12px; padding: 15px 20px; gap: 20px; min-height: 55px; }
  .hero__obelisk { height: 690px; top: 95px; bottom: auto; width: 85px; left: -40px; opacity: .34; }
  .is-home .hero__intro::after { inset: -70px -20px -25px; opacity: .5; }
  .is-home .hero__visual { max-width: 480px; }
  .is-home .hero__quote { margin: 0 0 24px; }
  .is-home .hero__quote p { font-size: clamp(27px, 5vw, 35px); }
  .is-home .hero__quote cite { font-size: 11px; }
  .is-home .heart-scene { height: 425px; }
  .is-home .heart-sculpture { width: 308px; max-width: 90%; }
  .is-home .heart-scene__orbit--one { width: 385px; height: 385px; top: 12px; max-width: 112%; }
  .is-home .heart-scene__light { height: 650px; width: 92px; right: 0; top: -205px; opacity: .6; }
  .is-home .coherence-intro { padding: 47px 0; }
  .is-home .coherence-intro__inner { grid-template-columns: 1fr; gap: 26px; }
  .is-home .coherence-intro h2 { font-size: clamp(38px, 7.5vw, 50px); }
  .is-home .coherence-intro__copy { font-size: 15px; }
  .is-home .about-layout { gap: 40px; }
  .is-home .journal-section { padding-bottom: 58px; }
  .is-home .cta { padding: 35px 27px; }
}
@media (max-width: 380px) {
  .is-home .hero__signature .hero__name { font-size: 37px; }
  .is-home .hero__cv { font-size: 11px; padding-inline: 16px; gap: 10px; }
  .is-home .heart-scene { height: 390px; }
  .is-home .heart-sculpture { width: 282px; }
  .is-home .heart-scene__orbit--one { width: 340px; height: 340px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero__atmosphere::after, .is-home .hero__intro::after, .is-home .heart-sculpture,
  .is-home .hero__heart-img, .is-home .heart-sculpture::after,
  .is-home .heart-scene::after, .is-home .heart-scene__light { animation: none; }
}
