.session-action{display:none;align-items:center;gap:clamp(14px,1.6vw,22px);margin-top:clamp(20px,3vh,32px)}
.session-action.on{display:flex}
.session-action-button{position:relative;overflow:hidden;min-width:clamp(260px,24vw,380px);padding:clamp(16px,2vh,21px) clamp(26px,2.6vw,42px);border:1.5px solid var(--black);border-radius:999px;background:rgba(246,236,226,.5);color:var(--black);font:650 clamp(18px,1.65vw,25px)/1 var(--sans);cursor:pointer;box-shadow:0 14px 38px rgba(102,42,22,.08);transition:transform .2s ease,background .3s ease,color .3s ease,box-shadow .3s ease}
.session-action-button::after{content:"";position:absolute;inset:-45% auto -45% -35%;width:24%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);transform:skewX(-18deg);animation:sessionButtonSweep 5.5s ease-in-out infinite}
.session-action-button:active{transform:scale(.97);background:var(--black);color:var(--cream)}
.session-action-button[disabled]{opacity:.5;cursor:wait}
.session-action-hint{max-width:18em;font:500 clamp(14px,1.15vw,17px)/1.4 var(--sans);opacity:.58}
@keyframes sessionButtonSweep{0%,35%{transform:translateX(-12vw) skewX(-18deg);opacity:0}48%{opacity:.8}72%,100%{transform:translateX(40vw) skewX(-18deg);opacity:0}}

/* Surprise anniversaire : elle reste visible jusqu'à ce que le membre la
   ferme. Le déclencheur reste local tant que la date de naissance n'est pas
   prouvée par une source fiable. */
.birthday-celebration{
  position:fixed;inset:0;z-index:60;overflow:hidden;display:flex;align-items:center;justify-content:center;
  padding:clamp(30px,5vw,80px);color:var(--black);text-align:center;
  background:
    radial-gradient(circle at 50% 30%,rgba(255,194,124,.96) 0 8%,rgba(245,131,56,.78) 24%,transparent 48%),
    radial-gradient(circle at 10% 80%,rgba(230,86,37,.46),transparent 34%),
    radial-gradient(circle at 90% 16%,rgba(255,239,216,.84),transparent 31%),
    linear-gradient(132deg,#f4d5bf 0%,#fff5ea 47%,#edb18a 100%);
  opacity:0;visibility:hidden;transform:scale(1.04);filter:saturate(.9);
  transition:opacity .32s ease,transform .9s cubic-bezier(.16,.85,.25,1),filter .9s ease,visibility 0s linear .9s;
}
.birthday-celebration.on{
  opacity:1;visibility:visible;transform:scale(1);filter:saturate(1.08);
  transition:opacity .32s ease,transform .9s cubic-bezier(.16,.85,.25,1),filter .9s ease;
}
.birthday-celebration.leaving{opacity:0;transform:scale(1.015);filter:saturate(.94) blur(2px);visibility:visible;transition:opacity .38s ease,transform .38s ease,filter .38s ease}
.birthday-close{position:absolute;z-index:8;top:clamp(22px,3.2vw,52px);right:clamp(22px,3.2vw,52px);display:grid;place-items:center;width:clamp(58px,5vw,76px);height:clamp(58px,5vw,76px);padding:0;border:1px solid rgba(79,42,27,.2);border-radius:50%;background:rgba(255,248,239,.76);color:var(--black);font:300 clamp(38px,3.2vw,50px)/1 var(--sans);cursor:pointer;box-shadow:0 16px 40px rgba(120,49,20,.13);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
.birthday-close:active{transform:scale(.92);background:rgba(255,255,255,.94);box-shadow:0 8px 20px rgba(120,49,20,.1)}
.birthday-bloom{
  position:absolute;left:50%;top:44%;width:28vmax;height:28vmax;border-radius:50%;
  background:radial-gradient(circle,rgba(255,247,226,.98) 0 12%,rgba(255,166,70,.76) 28%,rgba(232,86,42,.18) 51%,transparent 70%);
  mix-blend-mode:screen;transform:translate(-50%,-50%) scale(.1);opacity:0;
}
.birthday-celebration.on .birthday-bloom{animation:birthdayBloom 2.2s cubic-bezier(.18,.88,.22,1) both,birthdayBreathe 3.3s ease-in-out 2.2s infinite}
.birthday-rays{
  position:absolute;left:50%;top:43%;width:110vmax;height:110vmax;border-radius:50%;opacity:0;
  background:repeating-conic-gradient(from 8deg,rgba(255,255,255,.38) 0 2deg,transparent 2deg 11deg,rgba(232,86,42,.12) 11deg 14deg,transparent 14deg 24deg);
  mask-image:radial-gradient(circle,transparent 0 11%,#000 25%,transparent 67%);
  -webkit-mask-image:radial-gradient(circle,transparent 0 11%,#000 25%,transparent 67%);
  transform:translate(-50%,-50%) rotate(-18deg) scale(.65);
}
.birthday-celebration.on .birthday-rays{animation:birthdayRaysIn 1.2s .22s cubic-bezier(.18,.88,.22,1) both,birthdayRaysSpin 18s 1.4s linear infinite}
.birthday-center{position:relative;z-index:4;display:flex;flex-direction:column;align-items:center;width:min(100%,1100px);transform:translateY(-1.5vh)}
.birthday-mark{position:relative;display:flex;align-items:center;justify-content:center;width:clamp(150px,15vw,245px);height:clamp(150px,15vw,245px);color:var(--pop);opacity:0;transform:scale(.15) rotate(-35deg)}
.birthday-celebration.on .birthday-mark{animation:birthdayMarkIn 1.15s .12s cubic-bezier(.15,.9,.2,1.15) forwards,birthdayMarkFloat 3.2s 1.3s ease-in-out infinite}
.birthday-mark svg{position:relative;z-index:4;width:45%;height:45%;filter:drop-shadow(0 10px 22px rgba(151,53,20,.2))}
.birthday-orbit{position:absolute;border-radius:50%;border:1px solid rgba(232,86,42,.48)}
.birthday-orbit::after{content:"";position:absolute;left:50%;top:-5px;width:10px;height:10px;border-radius:50%;background:var(--pop);box-shadow:0 0 20px 7px rgba(232,86,42,.34)}
.birthday-orbit-one{inset:12%;transform:rotate(-22deg) scaleY(.62);animation:birthdayOrbit 3.9s linear infinite}
.birthday-orbit-two{inset:1%;border-color:rgba(255,255,255,.9);transform:rotate(36deg) scaleY(.45);animation:birthdayOrbit 5.8s linear reverse infinite}
.birthday-orbit-three{inset:-14%;border-color:rgba(232,86,42,.2);transform:rotate(8deg) scaleY(.77);animation:birthdayOrbit 8s linear infinite}
.birthday-kicker{margin-top:clamp(2px,.7vh,9px);color:#a53d1d;font:700 clamp(13px,1.2vw,18px)/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;opacity:0}
.birthday-celebration.on .birthday-kicker{animation:birthdayRise .7s .62s ease forwards}
.birthday-center h2{margin-top:clamp(13px,2vh,24px);font:300 clamp(62px,7.5vw,124px)/.86 var(--serif);letter-spacing:-.03em;opacity:0;transform:translateY(34px)}
.birthday-center h2 em{display:inline-block;margin-top:.18em;color:var(--pop);font-style:italic;transform:rotate(-2deg)}
.birthday-celebration.on .birthday-center h2{animation:birthdayRise .9s .77s cubic-bezier(.18,.88,.22,1) forwards}
.birthday-center>p{opacity:0}
.birthday-surprise{max-width:min(860px,82vw);margin-top:clamp(22px,2.8vh,34px);padding:clamp(13px,1.6vh,19px) clamp(24px,2.8vw,42px);border:1px solid rgba(232,86,42,.28);border-radius:999px;background:rgba(255,248,239,.64);box-shadow:0 18px 48px rgba(120,49,20,.09);font:500 clamp(19px,1.65vw,26px)/1.3 var(--sans)}
.birthday-surprise strong{color:var(--pop);font-weight:650}
.birthday-wish{margin-top:clamp(13px,1.8vh,21px);font:520 clamp(18px,1.45vw,23px)/1.3 var(--sans)}
.birthday-celebration.on .birthday-surprise{animation:birthdayRise .75s 1.02s ease forwards}
.birthday-celebration.on .birthday-wish{animation:birthdayRise .75s 1.17s ease forwards}
.birthday-fact{display:flex;min-width:min(700px,78vw);align-items:center;justify-content:center;gap:clamp(18px,2.5vw,36px);margin-top:clamp(28px,4vh,48px);padding:clamp(17px,2.2vh,25px) clamp(26px,3vw,46px);border:1px solid rgba(255,255,255,.72);border-radius:999px;background:rgba(255,248,239,.62);box-shadow:0 24px 60px rgba(120,49,20,.12);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);opacity:0;transform:translateY(28px)}
.birthday-fact strong{color:var(--pop);font:620 clamp(18px,1.65vw,26px)/1.2 var(--sans)}
.birthday-fact span{padding-left:clamp(18px,2vw,30px);border-left:1px solid rgba(43,43,43,.16);font:500 clamp(17px,1.45vw,23px)/1.25 var(--sans)}
.birthday-celebration.on .birthday-fact{animation:birthdayRise .8s 1.28s cubic-bezier(.18,.88,.22,1) forwards}
.birthday-signature{position:absolute;z-index:4;right:clamp(28px,4vw,70px);bottom:clamp(26px,4vh,58px);color:#9e3d1d;font:400 italic clamp(19px,1.7vw,28px)/1 var(--serif);opacity:0;transform:rotate(-4deg)}
.birthday-celebration.on .birthday-signature{animation:birthdayRise .7s 1.58s ease forwards}
.birthday-streamers{position:absolute;inset:0;z-index:3;pointer-events:none}
.birthday-streamers i{position:absolute;top:-12vh;width:9px;height:clamp(70px,8vh,120px);border-radius:999px;background:linear-gradient(var(--pop),#ffb455);opacity:0;transform-origin:center;filter:drop-shadow(0 6px 8px rgba(111,43,15,.13))}
.birthday-celebration.on .birthday-streamers i{animation:birthdayStreamer 2.4s cubic-bezier(.16,.72,.35,1) both}
.birthday-streamers i:nth-child(1){left:6%;animation-delay:.08s!important;--r:32deg}.birthday-streamers i:nth-child(2){left:14%;animation-delay:.52s!important;--r:-24deg;background:linear-gradient(#fff3dc,#ed8955)}
.birthday-streamers i:nth-child(3){left:23%;animation-delay:.24s!important;--r:49deg}.birthday-streamers i:nth-child(4){left:32%;animation-delay:.75s!important;--r:-38deg;background:linear-gradient(#d44a22,#fff0d6)}
.birthday-streamers i:nth-child(5){left:41%;animation-delay:.4s!important;--r:18deg}.birthday-streamers i:nth-child(6){left:48%;animation-delay:.12s!important;--r:-52deg;background:linear-gradient(#fff,#ee743d)}
.birthday-streamers i:nth-child(7){left:57%;animation-delay:.63s!important;--r:41deg}.birthday-streamers i:nth-child(8){left:65%;animation-delay:.2s!important;--r:-17deg;background:linear-gradient(#ffba65,#fff1dd)}
.birthday-streamers i:nth-child(9){left:73%;animation-delay:.82s!important;--r:54deg}.birthday-streamers i:nth-child(10){left:81%;animation-delay:.34s!important;--r:-42deg;background:linear-gradient(#fff,#dc5229)}
.birthday-streamers i:nth-child(11){left:89%;animation-delay:.56s!important;--r:27deg}.birthday-streamers i:nth-child(12){left:95%;animation-delay:.16s!important;--r:-31deg;background:linear-gradient(#ef6a34,#fff1d7)}
@keyframes birthdayBloom{0%{transform:translate(-50%,-50%) scale(.08);opacity:0}45%{opacity:1}100%{transform:translate(-50%,-50%) scale(3.1);opacity:.74}}
@keyframes birthdayBreathe{50%{transform:translate(-50%,-50%) scale(3.35);opacity:.9}}
@keyframes birthdayRaysIn{to{opacity:.72;transform:translate(-50%,-50%) rotate(0) scale(1)}}
@keyframes birthdayRaysSpin{to{transform:translate(-50%,-50%) rotate(360deg) scale(1)}}
@keyframes birthdayMarkIn{0%{opacity:0;transform:scale(.15) rotate(-35deg)}68%{opacity:1;transform:scale(1.16) rotate(6deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes birthdayMarkFloat{50%{transform:translateY(-9px) scale(1.025)}}
@keyframes birthdayOrbit{to{rotate:360deg}}
@keyframes birthdayRise{to{opacity:1;transform:translateY(0)}}
@keyframes birthdayStreamer{0%{opacity:0;transform:translateY(-8vh) rotate(0)}12%{opacity:1}72%{opacity:.95}100%{opacity:0;transform:translateY(116vh) rotate(var(--r))}}

/* Le fond de confirmation reprend la direction artistique validée. Seul le
   prénom est affiché ; aucune donnée de compte ou d'accès n'est exposée. */
.session-flow{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:4vw;visibility:hidden;pointer-events:none;isolation:isolate}
.session-flow::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(43,31,25,.42);opacity:0}
.session-flow.on{visibility:visible;pointer-events:auto}
.session-flow.on::before{opacity:1;animation:popupBackdropEnter .24s ease-out both}
.session-flow.success::before{display:none}
.session-flow.success{padding:0;overflow:hidden;background:radial-gradient(circle at 50% 20%,rgba(255,178,105,.42),transparent 24%),radial-gradient(circle at 80% 66%,rgba(242,160,111,.34),transparent 31%),radial-gradient(circle at 16% 76%,rgba(198,152,124,.22),transparent 29%),linear-gradient(125deg,#f5e4d5 0%,#f9eee3 52%,#f5ddcc 100%);backdrop-filter:none;-webkit-backdrop-filter:none}
.session-flow.success.leaving{opacity:0;visibility:visible;transition:opacity .8s ease}
.session-flow-card{position:relative;width:min(780px,88vw);min-height:min(360px,75vh);max-height:82vh;overflow:auto;padding:clamp(34px,4.5vw,64px);border:1px solid rgba(43,43,43,.14);border-radius:32px;background:#f6ece2;box-shadow:0 24px 64px rgba(68,26,12,.2)}
.session-flow.on:not(.success) .session-flow-card{animation:popupPanelEnter .32s cubic-bezier(.22,1,.36,1) both}
/* One entry, no text zoom and no nested fading. Keep the same animation when
   loading turns into names, rather than replaying it on each data refresh. */
@keyframes popupPanelEnter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes popupBackdropEnter{from{opacity:0}to{opacity:1}}
.session-flow.loading .session-flow-card::after{content:"";display:block;width:min(360px,80%);height:10px;margin:36px auto 8px;border-radius:999px;background:var(--pop);transform-origin:center;animation:sessionLoading 1.2s ease-in-out infinite}
.session-flow.loading .session-flow-copy{text-align:center}
@keyframes sessionLoading{0%,100%{transform:scaleX(.65);opacity:.5}50%{transform:scaleX(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.session-flow.loading .session-flow-card::after{animation:none;opacity:.85}}
.session-flow:not(.on) .session-flow-card{visibility:hidden;pointer-events:none}
.session-flow.success .session-flow-card{visibility:hidden;pointer-events:none}
.session-flow-close{position:absolute;right:22px;top:18px;width:46px;height:46px;border:0;border-radius:50%;background:rgba(43,43,43,.07);color:var(--black);font:300 32px/1 var(--sans);cursor:pointer}
.session-flow-kicker{font:700 clamp(13px,1.2vw,17px)/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--pop)}
.session-flow h2{margin-top:16px;font:300 clamp(46px,5vw,76px)/1 var(--serif);letter-spacing:-.015em}
.session-flow-copy{margin-top:16px;font:450 clamp(19px,1.7vw,25px)/1.45 var(--sans)}
.session-candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:30px}
.session-candidate{min-height:76px;padding:16px 22px;border:1.5px solid rgba(43,43,43,.28);border-radius:18px;background:rgba(255,255,255,.34);color:var(--black);font:650 clamp(20px,1.9vw,28px)/1.15 var(--sans);cursor:pointer;text-align:left;transition:transform .2s ease,border-color .2s ease,background .2s ease}
.session-candidate:active{transform:scale(.97);border-color:var(--pop);background:rgba(232,86,42,.1)}
.session-candidate[disabled]{opacity:.5;cursor:wait}
.session-flow-help{margin-top:24px;font:450 clamp(15px,1.2vw,18px)/1.5 var(--sans);opacity:.62}
.session-success{visibility:hidden;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:clamp(34px,5vh,72px) 6vw;text-align:center;pointer-events:none}
.session-flow.on.success .session-success{visibility:visible;pointer-events:auto;animation:popupPanelEnter .32s cubic-bezier(.22,1,.36,1) both}
.session-success-ambient{position:absolute;inset:-5%;overflow:hidden}
.session-success-ambient::before{content:"";position:absolute;left:-10%;top:-8%;width:54%;height:70%;border-radius:50%;background:radial-gradient(ellipse at 32% 42%,rgba(81,62,50,.35),transparent 15%),radial-gradient(ellipse at 54% 62%,rgba(81,62,50,.2),transparent 18%);filter:blur(34px);transform:rotate(-18deg);opacity:.58}
.session-success-ambient::after{content:"";position:absolute;right:-8%;top:7%;width:39%;height:91%;filter:blur(9px);opacity:.25;transform:rotate(-8deg);background:radial-gradient(ellipse 9% 22% at 58% 7%,rgba(67,54,46,.7) 0 42%,transparent 48%),radial-gradient(ellipse 8% 20% at 77% 18%,rgba(67,54,46,.65) 0 42%,transparent 48%),radial-gradient(ellipse 8% 20% at 46% 30%,rgba(67,54,46,.58) 0 42%,transparent 48%),radial-gradient(ellipse 8% 20% at 78% 43%,rgba(67,54,46,.56) 0 42%,transparent 48%),radial-gradient(ellipse 8% 20% at 49% 57%,rgba(67,54,46,.52) 0 42%,transparent 48%),radial-gradient(ellipse 8% 20% at 74% 70%,rgba(67,54,46,.48) 0 42%,transparent 48%),linear-gradient(73deg,transparent 48.5%,rgba(67,54,46,.38) 49.5% 50.5%,transparent 51.5%)}
.session-success-cabin{position:absolute;left:clamp(24px,3vw,52px);top:clamp(24px,3vw,52px);display:flex;align-items:center;justify-content:center;width:clamp(52px,4.1vw,72px);height:clamp(52px,4.1vw,72px);border:1px solid rgba(255,255,255,.32);border-radius:4px;background:rgba(43,43,43,.68);box-shadow:0 8px 18px rgba(43,43,43,.16);color:#fff;font:500 clamp(22px,2vw,31px)/1 var(--serif)}
.session-success-cabin:empty{display:none}
.session-success-center{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;width:min(100%,980px);transform:translateY(-1.4vh)}
.session-success-mark{position:relative;width:clamp(130px,12vw,205px);height:clamp(130px,12vw,205px);display:flex;align-items:center;justify-content:center;color:var(--pop)}
.session-success-mark svg{position:relative;z-index:3;width:47%;height:47%;filter:drop-shadow(0 8px 18px rgba(232,86,42,.2));animation:successSpark 1s cubic-bezier(.22,.8,.22,1) both}
.session-success-orbit{position:absolute;border-radius:50%;animation:successOrbit 4.8s linear infinite}
.session-success-orbit::after{content:"";position:absolute;left:50%;top:-4px;width:8px;height:8px;border-radius:50%;background:var(--pop);box-shadow:0 0 17px 5px rgba(232,86,42,.34)}
.session-success-orbit.orbit-one{inset:13%;border:1.5px solid rgba(232,86,42,.35);transform:rotate(-17deg) scaleY(.68)}
.session-success-orbit.orbit-two{inset:3%;border:1px solid rgba(255,255,255,.8);animation-duration:6.4s;animation-direction:reverse;transform:rotate(27deg) scaleY(.48)}
.session-success-particles{position:absolute;z-index:2;width:5px;height:5px;border-radius:50%;background:rgba(232,86,42,.92);box-shadow:-72px -19px 0 -1px rgba(232,86,42,.75),-57px 35px 0 -1px rgba(232,86,42,.9),-38px -59px 0 -1px rgba(255,255,255,.95),23px -72px 0 -1px rgba(232,86,42,.8),61px -36px 0 -1px rgba(255,255,255,.9),76px 13px 0 -1px rgba(232,86,42,.82),46px 63px 0 -1px rgba(232,86,42,.76),-20px 75px 0 -1px rgba(255,255,255,.95),-71px 48px 0 -1px rgba(255,255,255,.84);animation:successParticles 5.8s linear infinite}
.session-success h2{margin-top:clamp(7px,1vh,14px);font:300 clamp(58px,5.6vw,96px)/.93 var(--serif);letter-spacing:-.024em;color:var(--black)}
.session-success h2 span,.session-success h2 em{display:block}
.session-success h2 em{position:relative;margin-top:.08em;color:var(--pop);font-style:italic}
.session-success h2 em::after{content:"";position:absolute;left:13%;right:13%;bottom:-.16em;height:3px;border-radius:99px;background:var(--pop);transform:rotate(-2deg) scaleX(.92)}
.session-success-message{margin-top:clamp(28px,3.5vh,46px);font:500 clamp(21px,1.7vw,29px)/1.25 var(--sans);color:var(--black)}
.session-success-message b,.session-success-note b{color:var(--pop);font:500 1.35em/1 var(--serif)}
.session-success-progress{display:grid;grid-template-columns:auto minmax(0,1fr) 1px auto;align-items:center;gap:clamp(18px,2vw,30px);width:min(760px,72vw);margin-top:clamp(30px,4.3vh,54px);padding:clamp(18px,2.2vh,26px) clamp(28px,2.8vw,42px);border:1px solid rgba(255,255,255,.54);border-radius:999px;background:rgba(255,250,245,.54);box-shadow:0 18px 44px rgba(105,58,35,.08);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);text-align:left}
.session-success-progress-icon{display:flex;align-items:center;justify-content:center;width:clamp(52px,4.8vw,70px);height:clamp(52px,4.8vw,70px);border:1px solid rgba(232,86,42,.24);border-radius:50%;background:rgba(255,255,255,.36)}
.session-success-progress-icon svg{width:56%;height:56%;fill:none;stroke:var(--pop);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.session-success-progress-copy{display:flex;flex-direction:column;gap:5px;font-family:var(--sans)}
.session-success-progress-copy strong{color:var(--pop);font-size:clamp(18px,1.45vw,24px);font-weight:550}
.session-success-progress-copy span{color:var(--black);font-size:clamp(17px,1.3vw,22px);font-weight:450}
.session-success-divider{align-self:stretch;background:rgba(43,43,43,.12)}
.session-success-encouragement{position:relative;color:var(--pop);font:400 italic clamp(21px,1.75vw,29px)/1.1 var(--serif);white-space:nowrap;transform:rotate(-4deg)}
.session-success-encouragement::after{content:"";position:absolute;left:2%;right:2%;bottom:-9px;height:2px;border-radius:99px;background:var(--pop);transform:rotate(-6deg)}
.session-success-brand{position:absolute;z-index:2;left:50%;bottom:clamp(21px,3vh,40px);transform:translateX(-50%);color:var(--pop);font:500 clamp(18px,1.45vw,25px)/.8 var(--serif);text-align:left}
.session-success-note{position:absolute;z-index:2;right:clamp(34px,4vw,70px);bottom:clamp(27px,3.6vh,50px);color:#9f401f;font:400 italic clamp(17px,1.5vw,25px)/1 var(--serif);transform:rotate(-3deg)}
.session-success-note::after{content:"";position:absolute;right:11%;bottom:-14px;width:42%;height:2px;border-radius:99px;background:var(--pop);transform:rotate(-6deg)}
@keyframes successOrbit{to{rotate:360deg}}
@keyframes successParticles{to{transform:rotate(360deg) scale(1.04)}}
@keyframes successSpark{0%{transform:scale(.35) rotate(-24deg);opacity:0}70%{transform:scale(1.12) rotate(5deg)}100%{transform:scale(1);opacity:1}}

@media (max-width:900px) and (orientation:landscape){.session-action{justify-content:center;flex-direction:column}}
@media (max-width:640px){.session-candidates{grid-template-columns:1fr}.session-flow-card{width:94vw;border-radius:24px}.session-success-progress{grid-template-columns:auto minmax(0,1fr);width:90vw;border-radius:28px}.session-success-divider,.session-success-encouragement,.session-success-note{display:none}}
@media (prefers-reduced-motion:reduce){.session-action-button::after,.session-success-mark span,.session-success-mark svg,.birthday-celebration *{animation:none!important}.birthday-celebration.on .birthday-mark,.birthday-celebration.on .birthday-kicker,.birthday-celebration.on .birthday-center h2,.birthday-celebration.on .birthday-center>p,.birthday-celebration.on .birthday-fact,.birthday-celebration.on .birthday-signature{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.session-flow.on::before,.session-flow.on:not(.success) .session-flow-card,.session-flow.on.success .session-success{animation:none}}

/* Les textes approuvés restent à lire, puis à fermer volontairement. */
.session-success-close{position:absolute;z-index:8;right:24px;top:22px;width:52px;height:52px;border:1px solid rgba(43,43,43,.24);border-radius:50%;background:rgba(255,255,255,.75);color:var(--black);font:400 34px/1 var(--sans);cursor:pointer}
.session-success-done{position:absolute;z-index:8;bottom:24px;left:50%;transform:translateX(-50%);min-height:64px;min-width:min(360px,84vw);padding:16px 36px;border:1px solid var(--black);border-radius:999px;background:var(--black);color:white;font:650 clamp(24px,2.2vw,32px)/1.2 var(--sans);cursor:pointer}
.session-success-done:focus-visible{outline:3px solid var(--pop);outline-offset:5px}
.session-success-welcome[hidden]{display:none}
.session-success-welcome{width:min(980px,86vw);margin:20px auto 0;padding:24px 32px;border-radius:26px;border:1px solid rgba(215,147,111,.35);background:rgba(255,251,244,.86);text-align:left}
.session-success-welcome h3{margin:0 0 14px;font:500 clamp(24px,2.5vw,36px)/1.15 var(--serif);color:var(--pop)}
.session-success-welcome p{margin:0;font:450 clamp(19px,1.85vw,27px)/1.45 var(--sans)}
.session-success-welcome small{display:block;margin-top:16px;color:#765746;font:550 clamp(16px,1.4vw,20px)/1.3 var(--sans)}
.personalized-success .session-success{overflow-y:auto;padding:58px 0 120px;align-items:center}
.personalized-success .session-success-center{margin:auto;width:100%;min-height:0}
.personalized-success .session-success-mark{width:110px;height:110px;margin:0 auto 6px}
.personalized-success .session-success-center h2{font-size:clamp(38px,4.4vw,66px);line-height:1.02}
.personalized-success .session-success-center h2 em{font-size:clamp(44px,5vw,74px)}
.personalized-success .session-success-message{font-size:20px;margin-top:14px}
.personalized-success .session-success-progress,.personalized-success .session-success-brand,.personalized-success .session-success-note{display:none}
@media(max-height:700px){.personalized-success .session-success{display:block}.personalized-success .session-success-mark{width:76px;height:76px}.personalized-success .session-success-center h2{font-size:36px}.personalized-success .session-success-center h2 em{font-size:42px}.session-success-welcome{margin-top:14px;padding:18px 24px}.session-success-welcome p{font-size:20px}.session-success-close,.session-success-done{position:fixed}}
@media(max-width:640px){.session-success-welcome{padding:20px}.session-success-welcome p{font-size:19px}.personalized-success .session-success{display:block}.session-success-done,.session-success-close{position:fixed}}
.session-success-sync {font:500 clamp(13px,1.25vw,18px)/1.4 Inter,sans-serif;color:#765b4c;text-align:center;margin:6px 0 12px;max-width:900px;}

/* No second reading after the welcome: a clear, generous next action. */
.session-success h2{max-width:100%}
#sessionSuccessName,.session-candidate{white-space:nowrap}
.compact-success .session-success{padding:72px 5vw 170px}
.compact-success .session-success-center{transform:none}
.compact-success .session-success-progress,.compact-success .session-success-brand,.compact-success .session-success-note{display:none}
.compact-success .session-success-mark{width:clamp(100px,12vw,150px);height:clamp(100px,12vw,150px)}
.compact-success .session-success h2{font-size:clamp(42px,5.5vw,80px);line-height:1.05}
.compact-success .session-success-message{margin-top:28px}
.compact-success .session-success-done{bottom:clamp(28px,7vh,64px);min-height:80px;min-width:min(440px,84vw);font-size:clamp(28px,3vw,36px)}
@media(max-height:600px){.compact-success .session-success{padding:66px 4vw 132px}.compact-success .session-success-mark{width:72px;height:72px}.compact-success .session-success h2{font-size:38px}.compact-success .session-success-message{margin-top:20px}.compact-success .session-success-done{bottom:20px;min-height:66px}}
@media(prefers-reduced-motion:reduce){.session-flow,.session-flow-card,.session-success{transition:none}.session-success-orbit,.session-success-particles{animation:none}}
