/* Écran extérieur des cabines — lecture immédiate à 2–3 mètres. */
#welcome > .body,
#welcome > .duo{display:none!important}

.screen{transition:opacity .65s ease,transform .65s ease,visibility 0s linear .65s}
.screen.on{transition:opacity .65s ease,transform .65s ease}

#welcome .top{position:relative;z-index:2}
#welcome .cabine-label{font-size:clamp(15px,1.1vw,18px)}
#welcome .clock{font-size:clamp(19px,1.25vw,23px)}
.phase-strip{
  position:relative;z-index:2;display:flex;align-items:center;gap:clamp(18px,3.2vw,52px);
  margin:clamp(20px,3.2vh,30px) max(4vw,28px) 0;padding-bottom:clamp(12px,1.8vh,18px);
  border-bottom:1px solid rgba(43,43,43,.14);
}
.phase-step{
  position:relative;font:600 clamp(12px,1.3vw,17px)/1 var(--sans);letter-spacing:.2em;
  text-transform:uppercase;white-space:nowrap;opacity:.34;transition:color .8s ease,opacity .8s ease;
}
.phase-step::after{
  content:"";position:absolute;left:0;right:.2em;bottom:calc(clamp(12px,1.8vh,18px) * -1 - 1px);
  height:2px;background:var(--pop);transform:scaleX(0);transform-origin:left;
  transition:transform .8s cubic-bezier(.22,.8,.22,1);
}
.phase-step.active{color:var(--pop);opacity:1}
.phase-step.active::after{transform:scaleX(1)}
.phase-strip.available .phase-step{opacity:.22}

.cabin-information{justify-content:flex-end;margin-top:10px;padding-bottom:10px}
.infrared-info-button{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:9px 18px;border:1px solid rgba(196,100,74,.35);border-radius:999px;background:rgba(255,255,255,.62);color:var(--earth);font:600 clamp(13px,1.2vw,18px)/1.3 var(--sans);cursor:pointer}
.infrared-info-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.infrared-info-button:focus-visible,.infrared-info-panel button:focus-visible,.infrared-info-panel summary:focus-visible{outline:3px solid var(--pop);outline-offset:4px}
.infrared-info-overlay{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:24px;isolation:isolate}
.infrared-info-overlay::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(43,31,25,.58);animation:infraredBackdropEnter .24s ease-out both}
.infrared-info-overlay[hidden]{display:none}
.infrared-info-panel{position:relative;display:flex;flex-direction:column;width:min(1060px,100%);max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);min-height:0;border-radius:30px;background:var(--cream);box-shadow:0 20px 80px rgba(43,31,25,.22);overflow:hidden;animation:infraredPanelEnter .32s cubic-bezier(.22,1,.36,1) both}
@keyframes infraredPanelEnter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes infraredBackdropEnter{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.infrared-info-overlay::before,.infrared-info-panel{animation:none}}
.infrared-info-close{position:absolute;right:20px;top:18px;z-index:1;width:48px;height:48px;border:1px solid rgba(196,100,74,.2);border-radius:50%;background:rgba(255,255,255,.7);color:var(--black);font:300 32px/1 var(--sans);cursor:pointer}
.infrared-info-header{padding:30px 78px 20px 36px;background:linear-gradient(115deg,#f9dcc6,var(--cream))}
.infrared-info-kicker{font:650 12px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--earth);margin-bottom:10px}
.infrared-info-header h2{font:300 clamp(28px,3.3vw,45px)/1.12 var(--serif);margin-bottom:14px}
.infrared-info-intro{max-width:850px;font:400 16px/1.5 var(--sans)}
.infrared-info-scroll{overflow:auto;overscroll-behavior:contain;min-height:0;padding:22px 36px 28px;scrollbar-color:var(--earth) transparent}
.infrared-info-scroll h3{font:650 18px/1.3 var(--sans);margin-bottom:8px}
.infrared-info-scroll p{font:400 15px/1.6 var(--sans)}
.infrared-info-scroll>section{margin-bottom:22px}
.infrared-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:26px}
.infrared-info-benefit{background:rgba(255,255,255,.8);border:1px solid rgba(196,100,74,.16);border-radius:20px;padding:18px 20px}
.infrared-info-number{float:right;color:var(--earth);font:300 24px/1 var(--serif);margin:0 0 6px 12px}
.infrared-info-scroll .infrared-info-tips{border-left:3px solid var(--earth);padding-left:18px}
.infrared-info-sources{font:400 13px/1.6 var(--sans);color:#60554d}
.infrared-info-sources summary{cursor:pointer;font-weight:600;padding:12px 0}
.infrared-info-sources section{margin:16px 0}
.infrared-info-sources a{display:block;margin-top:10px;color:var(--earth);text-underline-offset:3px}
.infrared-info-footer{padding:16px 36px;border-top:1px solid rgba(196,100,74,.16);background:var(--cream);text-align:right}
.infrared-info-footer button{border:0;border-radius:999px;background:var(--black);color:white;padding:14px 24px;font:600 15px/1.3 var(--sans);cursor:pointer;min-height:48px}
.member-moment-message,#sessionSuccessWelcomeBody{white-space:pre-line}
@media(max-width:600px){
  .infrared-info-overlay{padding:10px}
  .infrared-info-panel{max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);border-radius:22px}
  .infrared-info-header{padding:24px 68px 16px 22px}
  .infrared-info-scroll{padding:20px 22px}
  .infrared-info-grid{grid-template-columns:1fr}
  .infrared-info-footer{padding:14px 22px}
}

.exterior-shell{
  position:relative;z-index:2;flex:1;min-height:0;display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(290px,.7fr);align-items:center;
  gap:clamp(42px,7vw,112px);padding:clamp(18px,3vh,36px) max(5.2vw,38px) clamp(20px,3vh,34px);
}
.exterior-copy{min-width:0;max-width:900px}
.exterior-shell.has-member-moments{
  grid-template-columns:minmax(0,1.62fr) minmax(230px,.48fr);gap:clamp(28px,4vw,64px);
  padding-top:clamp(10px,1.5vh,18px);padding-bottom:clamp(16px,2vh,24px);
}
.state-title-row{display:flex;align-items:center;gap:clamp(14px,2vw,28px);min-width:0}
.state-kicker{
  min-height:1em;margin-bottom:clamp(12px,2vh,22px);font:650 clamp(13px,1.35vw,18px)/1 var(--sans);
  letter-spacing:.31em;text-transform:uppercase;color:var(--pop);
}
.state-kicker:empty{display:none}
.state-title{
  max-width:11em;font-family:var(--serif);font-weight:300;font-size:clamp(68px,8.6vw,132px);
  line-height:.94;letter-spacing:-.018em;text-wrap:balance;white-space:pre-line;
}
.state-title.compact{font-size:clamp(56px,6.8vw,104px);max-width:13em;line-height:1}
.member-spark-badge{
  display:none;flex:0 0 auto;width:clamp(36px,4vw,54px);height:clamp(36px,4vw,54px);
  align-items:center;justify-content:center;border:1px solid rgba(232,86,42,.32);border-radius:50%;
  color:var(--pop);background:rgba(246,236,226,.42);box-shadow:0 0 0 9px rgba(232,86,42,.045);
}
.member-spark-badge.on{display:flex}
.member-spark-badge svg{width:52%;height:52%}
.exterior-shell.milestone .member-spark-badge.on{animation:milestoneGlow 3.2s ease-in-out infinite}
@keyframes milestoneGlow{
  0%,100%{transform:scale(1);box-shadow:0 0 0 9px rgba(232,86,42,.04),0 0 18px rgba(232,86,42,.06)}
  50%{transform:scale(1.08);box-shadow:0 0 0 17px rgba(232,86,42,.075),0 0 38px rgba(232,86,42,.2)}
}
.activity-title{
  margin-top:clamp(24px,4.2vh,44px);font-family:var(--serif);font-weight:400;
  font-size:clamp(35px,4.2vw,64px);line-height:1.05;text-wrap:balance;
}
.reservation-line{
  min-height:1.4em;margin-top:clamp(12px,2.2vh,22px);font:450 clamp(20px,2.15vw,30px)/1.4 var(--sans);
  letter-spacing:.025em;opacity:.68;font-variant-numeric:tabular-nums;white-space:pre-line;
}
.reservation-line:empty{display:none}
.member-meta{
  display:none;margin-top:clamp(9px,1.4vh,14px);font:600 clamp(13px,1.3vw,17px)/1.3 var(--sans);
  letter-spacing:.16em;text-transform:uppercase;color:var(--pop);
}
.member-meta.on{display:block}
.member-moments{
  display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.2vw,16px);
  max-width:920px;margin-top:clamp(16px,2.4vh,25px);
}
.member-moments.on{display:grid}
.member-moments.count-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}
.member-moments.count-4{grid-template-columns:repeat(2,minmax(0,1fr));max-width:980px}
.member-moments.count-4 .member-moment{padding:14px;min-height:0;gap:6px}
.member-moments.count-4 .member-moment-headline{font-size:clamp(17px,1.5vw,23px)}
.member-moments.count-4 .member-moment-message{font-size:clamp(15px,1.25vw,19px);line-height:1.3}
.member-moment{
  display:flex;min-width:0;min-height:clamp(108px,14vh,142px);flex-direction:column;gap:clamp(8px,1vh,12px);
  padding:clamp(14px,1.7vw,22px);border:1px solid rgba(43,43,43,.16);border-radius:18px;
  background:rgba(255,255,255,.24);box-shadow:0 18px 48px rgba(106,48,24,.07);
}
.member-moment strong{
  color:var(--pop);font:500 clamp(23px,2.2vw,32px)/1 var(--serif);letter-spacing:-.01em;
}
.member-moment span{
  font:470 clamp(15px,1.25vw,19px)/1.4 var(--sans);text-wrap:balance;
}
.single-instruction{
  min-height:1.45em;margin-top:clamp(22px,4vh,42px);padding-left:clamp(16px,1.8vw,24px);
  border-left:3px solid var(--pop);font:500 clamp(23px,2.55vw,36px)/1.38 var(--sans);
  text-wrap:balance;
}
.single-instruction:empty{display:none}
.exterior-shell[data-phase="welcome"] .state-title{font-size:clamp(62px,7.3vw,114px);max-width:10.5em}
.exterior-shell[data-phase="welcome"] .state-title.compact{font-size:clamp(53px,6.2vw,96px)}
.exterior-shell[data-phase="welcome"] .activity-title{
  max-width:31em;margin-top:clamp(18px,2.6vh,28px);font-family:var(--sans);font-weight:430;
  font-size:clamp(22px,2vw,31px);line-height:1.42;
}
.exterior-shell[data-phase="welcome"] .reservation-line{
  max-width:34em;margin-top:clamp(16px,2.3vh,24px);padding:clamp(12px,1.7vh,17px) clamp(15px,1.8vw,22px);
  border:1px solid rgba(43,43,43,.18);border-radius:14px;background:rgba(255,255,255,.18);
  font-size:clamp(17px,1.55vw,22px);line-height:1.55;opacity:.82;
}
.exterior-shell[data-phase="welcome"] .single-instruction{
  max-width:39em;margin-top:clamp(15px,2.3vh,24px);font-size:clamp(18px,1.7vw,24px);line-height:1.45;
}

.exterior-gauge{
  display:flex;min-width:290px;align-items:center;justify-content:center;align-self:center;
  perspective:900px;perspective-origin:50% 44%;
}
.phase-count{display:none;flex-direction:column;align-items:center;gap:clamp(12px,1.8vh,18px);text-align:center}
.phase-count.on{display:flex}
.phase-count.on + .available-pulse{display:none!important}
.phase-count .cring{width:min(33vh,270px);height:min(33vh,270px)}
.phase-count .c-num{font-size:min(7vh,62px)}
.phase-count .c-label{font-size:clamp(13px,1.3vw,17px);max-width:18em}
.phase-count.live .c-label{font-size:min(4.8vh,40px)}
.phase-count.live .c-num{font-size:min(7.2vh,64px)}
.phase-count .c-effort{max-width:19em;font-size:clamp(18px,1.75vw,23px);font-variant-numeric:tabular-nums}

.available-pulse{
  --logo-y:0%;
  position:relative;width:min(30vh,240px);height:min(30vh,240px);display:none;
  align-items:center;justify-content:center;border-radius:50%;color:var(--pop);
  border:1px solid rgba(232,86,42,.3);
  background:radial-gradient(circle,rgba(255,250,244,.78) 0 45%,rgba(232,86,42,.08) 72%,rgba(232,86,42,.13));
  box-shadow:inset 0 0 36px rgba(255,255,255,.45),0 0 0 18px rgba(232,86,42,.045),0 20px 58px rgba(126,48,22,.13);
  backface-visibility:hidden;
}
.available-pulse::before,.available-pulse::after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;
}
.available-pulse::before{inset:7%;border:1px solid rgba(255,255,255,.56)}
.available-pulse::after{left:17%;right:17%;bottom:-10%;height:18%;background:radial-gradient(ellipse,rgba(101,40,18,.13),transparent 70%)}
.available-logo-canvas{
  position:absolute;z-index:4;inset:-18%;width:136%;height:136%;pointer-events:none;opacity:0;
  transition:opacity .45s ease;
}
.available-pulse svg{
  position:relative;z-index:5;width:35%;height:35%;will-change:transform;
  filter:drop-shadow(0 8px 10px rgba(118,39,15,.14));
  animation:logoCoreBeat 4.8s ease-in-out infinite;
}
.logo-halo{
  position:absolute;z-index:1;inset:18%;border-radius:50%;background:radial-gradient(circle,rgba(232,86,42,.24),rgba(232,86,42,.08) 48%,transparent 72%);
  box-shadow:0 0 34px rgba(232,86,42,.18);will-change:transform,opacity;
  animation:logoHaloBeat 4.8s ease-in-out infinite;
}
.available-pulse.logo-canvas-ready .available-logo-canvas{opacity:1}
.available-pulse.logo-canvas-ready .available-logo-fallback,
.available-pulse.logo-canvas-ready .logo-halo{opacity:0;animation:none}
.ready-pulse-label{
  display:none;position:absolute;z-index:6;top:20%;left:11%;right:11%;font:650 clamp(12px,1.2vw,16px)/1.25 var(--sans);
  letter-spacing:.2em;text-transform:uppercase;text-align:center;color:var(--pop);
  text-shadow:0 2px 10px rgba(255,255,255,.8);
}
.exterior-shell[data-phase="available"] .available-pulse{display:flex}
.exterior-shell[data-phase="available"] .exterior-gauge{opacity:.76}
.exterior-shell[data-phase="welcome"].cabin-ready .available-pulse{display:flex}
.exterior-shell[data-phase="welcome"].cabin-ready .ready-pulse-label{display:block}
.exterior-shell[data-phase="welcome"].cabin-ready .available-pulse{--logo-y:20%}
@keyframes logoHeartbeat{
  0%,100%{transform:scale(.995)}
  50%{transform:scale(1.025)}
}
@keyframes logoCoreBeat{
  0%,100%{transform:translateY(var(--logo-y)) scale(.99)}
  50%{transform:translateY(var(--logo-y)) scale(1.055)}
}
@keyframes logoHaloBeat{
  0%,100%{transform:scale(.9);opacity:.34}
  50%{transform:scale(1.18);opacity:.62}
}
@keyframes logoWave{
  0%{transform:scale(.96);opacity:0}
  16%{opacity:.26}
  76%,100%{transform:scale(1.24);opacity:0}
}

.phase-enter .state-kicker{animation:exteriorRise .5s .02s both}
.phase-enter .state-title{animation:exteriorRise .6s .05s both}
.phase-enter .activity-title{animation:exteriorRise .6s .09s both}
.phase-enter .reservation-line{animation:exteriorRise .58s .12s both}
.phase-enter .single-instruction{animation:exteriorRise .58s .15s both}
.phase-enter .member-meta{animation:exteriorRise .55s .13s both}
.phase-enter .member-moment{animation:exteriorRise .58s both}
.phase-enter .member-moment:nth-child(1){animation-delay:.12s}
.phase-enter .member-moment:nth-child(2){animation-delay:.2s}
.phase-enter .member-moment:nth-child(3){animation-delay:.28s}
.phase-enter .exterior-gauge{animation:exteriorGaugeIn .65s .06s both}
@keyframes exteriorRise{from{opacity:.28;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes exteriorGaugeIn{from{opacity:.3;transform:scale(.97)}to{opacity:1;transform:none}}

.exterior-shell[data-phase="workout"] .state-title,
.exterior-shell[data-phase="exit"] .state-title{max-width:9em}
.exterior-shell[data-phase="workout"] .activity-title,
.exterior-shell[data-phase="exit"] .activity-title{color:var(--pop)}
.exterior-shell[data-phase="available"] .activity-title{font-size:clamp(31px,3.5vw,52px)}
.exterior-shell[data-phase="available"] .state-title{font-style:italic}

#welcome .foot{position:relative;z-index:2;font-size:clamp(15px,1.05vw,18px)}

@media (max-width:900px) and (orientation:landscape){
  .exterior-shell{grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr);gap:28px}
  .phase-count .cring{width:min(30vh,225px);height:min(30vh,225px)}
  .state-title{font-size:clamp(58px,7.7vw,86px)}
  .exterior-shell[data-phase="welcome"] .state-title{font-size:clamp(52px,6.7vw,78px)}
  .member-moment{min-height:98px;padding:13px}
  .member-moment span{font-size:clamp(13px,1.35vw,16px)}
}
@media (orientation:portrait){
  .phase-strip{justify-content:space-between;gap:8px}
  .phase-step{font-size:11px;letter-spacing:.12em}
  .exterior-shell{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:20px;text-align:center}
  .exterior-copy{margin:auto}
  .state-title{margin-inline:auto}
  .state-title-row{justify-content:center}
  .member-moments{grid-template-columns:1fr}
  .single-instruction{display:inline-block;text-align:left}
  .exterior-gauge{min-width:0}
  .phase-count .cring{width:min(27vh,250px);height:min(27vh,250px)}
}
/* L'accueil donne la place aux personnes : cartes sur toute la largeur,
   repères de séance et disponibilité regroupés en tête. Aucun carrousel. */
#welcome.member-welcome{overflow-y:auto}
#welcome.member-welcome .foot{display:none}
.exterior-shell.has-member-moments{
  flex:1 0 auto;
  grid-template-columns:minmax(0,1fr) 160px;
  grid-template-rows:auto auto auto auto auto;
  column-gap:26px;row-gap:12px;align-content:center;align-items:center;
  padding:18px max(4vw,28px) 22px;
}
.has-member-moments .exterior-copy{display:contents}
.has-member-moments .state-title-row{grid-column:1;grid-row:1}
.exterior-shell.has-member-moments .state-title,
.exterior-shell.has-member-moments .state-title.compact{
  max-width:none;font-size:clamp(46px,5.4vw,80px);line-height:1.05;text-wrap:balance;
}
.has-member-moments .activity-title:empty{display:none}
.exterior-shell.has-member-moments .reservation-line{
  grid-column:1;grid-row:2;max-width:none;margin:0;padding:0;border:0;background:none;
  font:500 clamp(17px,1.65vw,23px)/1.4 var(--sans);letter-spacing:0;opacity:.85;
}
.exterior-shell.has-member-moments .exterior-gauge{
  grid-column:2;grid-row:1/3;min-width:0;align-self:center;
}
.has-member-moments .available-pulse{width:94px;height:94px;--logo-y:0% !important}
.has-member-moments .ready-pulse-label{display:none !important}
.has-member-moments .phase-count{gap:6px}
.has-member-moments .phase-count .cring{width:118px;height:118px}
.has-member-moments .phase-count .c-num{font-size:31px}
.has-member-moments .phase-count .c-label{font-size:13px;letter-spacing:.075em}
.has-member-moments .phase-count .c-effort{font-size:14px}
.exterior-shell.has-member-moments .member-moments{
  grid-column:1/-1;grid-row:3;max-width:none;width:100%;margin:8px 0 4px;gap:20px;text-align:left;
}
.member-moments.count-1{grid-template-columns:1fr}
.exterior-shell.has-member-moments .member-moment{
  --status-accent:var(--pop);--status-soft:rgba(255,250,244,.91);--status-line:rgba(119,66,40,.16);
  min-height:220px;gap:14px;padding:24px;border:1px solid var(--status-line);
  border-top:5px solid var(--status-accent);border-radius:22px;background:var(--status-soft);
  box-shadow:inset 5px 0 0 rgba(201,101,70,.2),0 12px 32px rgba(96,46,23,.07);
}
.member-moment h2{margin:0;color:var(--status-accent,#c76548);font:400 clamp(52px,5.6vw,84px)/1.02 var(--serif);overflow-wrap:normal;word-break:normal;hyphens:none}
.member-moment .member-moment-headline{margin:0;color:var(--black);font:650 clamp(23px,2.4vw,32px)/1.22 var(--sans);text-wrap:pretty}
.member-moment .member-moment-message{margin:0;color:#4e4038;font:450 clamp(20px,1.8vw,25px)/1.42 var(--sans);text-wrap:pretty}
.member-moment .member-status-progress{
  margin:auto 0 0;padding-top:10px;border-top:1px solid var(--status-line);
  color:var(--status-accent);font:700 clamp(14px,1.2vw,17px)/1.3 var(--sans);letter-spacing:.01em;
}
.member-moment .member-moment-headline:empty{display:none}
.member-moment-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.with-badges .member-moment-header{min-height:118px}
.member-moment-header h2{min-width:0;flex:1}
.welcome-badge{display:flex;flex:none;align-items:center;justify-content:center;flex-direction:column;gap:7px;width:124px;color:#cd6647}
.welcome-badge .welcome-badge-icon{
  position:relative;display:flex;align-items:center;justify-content:center;
  width:72px;height:72px;border-radius:50%;border:1px solid rgba(255,255,255,.35);
  background:linear-gradient(145deg,#f1b68b,#b95840);
  box-shadow:0 4px 12px #b75b3415;
}
.welcome-badge-icon svg{position:relative;z-index:1;width:44%;height:44%;color:white;display:block}
.welcome-badge .welcome-badge-label{font:700 11px/1.15 var(--sans);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.welcome-badge .welcome-badge-detail{font:450 12px/1.15 var(--sans);color:#85817d;white-space:nowrap}
.badge-bronze .welcome-badge-icon{
  background:radial-gradient(circle at 28% 20%,#e8b083,#bf7457 54%,#8f452f 100%);
}
.badge-silver{color:#77716d}
.badge-silver .welcome-badge-icon{
  background:radial-gradient(circle at 28% 20%,#ffffff,#d8d4d1 52%,#8f8b89 100%);
  box-shadow:0 0 0 4px rgba(166,160,157,.12),0 4px 14px rgba(75,70,67,.13);
}
.badge-gold{color:#f25124}
.badge-gold .welcome-badge-icon{
  background:radial-gradient(circle at 66% 20%,#ffb07b,#f56530 46%,#ce421b 100%);
  box-shadow:0 0 0 6px #f66d3630,0 4px 18px #eb5b2824;
}
.badge-visitor{color:#82827f}
.badge-visitor .welcome-badge-icon{
  border:1px solid #e0e1e1;background:white;box-shadow:none;
}
.badge-visitor .welcome-badge-icon svg{color:#b2b3b1}
.member-moment.member-status-bronze{
  --status-accent:#a94f34;--status-line:rgba(169,79,52,.5);
  --status-soft:linear-gradient(145deg,#fff8f1 5%,#edc9b4 100%);
  box-shadow:inset 6px 0 0 rgba(169,79,52,.38),0 13px 34px rgba(132,63,40,.12);
}
.member-moment.member-status-silver{
  --status-accent:#746e6a;--status-line:rgba(125,119,115,.48);
  --status-soft:linear-gradient(145deg,#ffffff 4%,#e2dfdc 100%);
  box-shadow:inset 6px 0 0 rgba(132,127,123,.34),0 13px 34px rgba(69,65,62,.12);
}
.member-moment.member-status-gold{
  --status-accent:#e5471b;--status-line:rgba(229,71,27,.58);
  --status-soft:radial-gradient(circle at 88% 7%,rgba(255,151,78,.45),transparent 35%),linear-gradient(145deg,#fff9e9 4%,#ffc493 100%);
  box-shadow:inset 6px 0 0 rgba(229,71,27,.46),0 0 0 3px rgba(238,91,40,.1),0 17px 40px rgba(163,61,25,.17);
}
.member-moment.member-status-visitor{
  --status-accent:#6f716f;--status-line:rgba(112,114,112,.34);
  --status-soft:linear-gradient(145deg,rgba(255,255,255,.96),rgba(239,239,236,.78));
  border-style:dashed;border-top-style:solid;
  box-shadow:inset 5px 0 0 rgba(128,130,128,.18),0 10px 28px rgba(61,61,58,.07);
}
.member-moment.member-status-unknown{--status-accent:#c76548}
.count-3 .member-moment{position:relative}
.count-3 .member-moment-header{padding-right:82px}
.count-3 .member-moment-header h2{font-size:clamp(34px,3.35vw,48px);white-space:nowrap}
.count-3 .member-moment-header .welcome-badge{position:absolute;top:12px;right:8px;width:76px}
.count-3 .member-moment-header .welcome-badge-icon{width:50px;height:50px}
.count-3 .member-moment-header .welcome-badge-label{font-size:8px;letter-spacing:.055em}
.count-3 .member-moment-header .welcome-badge-detail{font-size:9px}
.count-3 .member-moment .member-moment-headline{font-size:clamp(21px,2vw,27px)}
.count-3 .member-moment .member-moment-message{font-size:clamp(18px,1.65vw,23px)}
.exterior-shell.has-member-moments .single-instruction{
  grid-column:1/-1;grid-row:4;max-width:none;margin:0;padding-left:0;border:0;
  font:500 clamp(17px,1.6vw,22px)/1.35 var(--sans);
}
.exterior-shell.has-member-moments .session-action{grid-column:1/-1;grid-row:5;margin:0}
.has-member-moments .session-action-button{background:var(--black);color:#fff8ef;border-color:var(--black);min-height:52px}
.has-member-moments .session-action-hint{font-size:clamp(16px,1.35vw,20px);opacity:.8}
@media (max-height:850px) and (orientation:landscape){
  #welcome.member-welcome .phase-strip{margin-top:12px;padding-bottom:10px}
  .exterior-shell.has-member-moments{row-gap:6px;padding-top:8px;padding-bottom:10px}
  .exterior-shell.has-member-moments .member-moments{gap:14px;margin-top:4px}
  .exterior-shell.has-member-moments .member-moment{min-height:185px;padding:18px;gap:10px}
  .has-member-moments .phase-count{gap:4px}
  .has-member-moments .phase-count .cring{width:82px;height:82px}
  .has-member-moments .phase-count .c-num{font-size:25px}
  .has-member-moments .phase-count .c-label{font-size:11px;line-height:1.2}
  .has-member-moments .phase-count .c-effort{font-size:12px}
  .member-moment h2{font-size:54px}
  .member-moment h2.long-member-name{font-size:44px}
  .member-moment .member-moment-headline{font-size:24px}
  .member-moment .member-moment-message{font-size:20px;line-height:1.32}
  .member-moment .member-status-progress{padding-top:7px;font-size:13px}
  .count-3 .member-moment-header{padding-right:72px}
  .count-3 .member-moment h2{font-size:36px}
  .count-3 .member-moment-header .welcome-badge{top:8px;right:6px;width:66px}
  .count-3 .member-moment-header .welcome-badge-icon{width:44px;height:44px}
  .count-3 .member-moment .member-moment-headline{font-size:21px}
  .count-3 .member-moment .member-moment-message{font-size:18px;line-height:1.36}
  .member-moment-header{gap:8px}
  .with-badges .member-moment-header{min-height:82px}
  .welcome-badge{width:104px;gap:5px}
  .welcome-badge .welcome-badge-icon{width:54px;height:54px}
  .welcome-badge .welcome-badge-label{font-size:9px;letter-spacing:.08em}
  .welcome-badge .welcome-badge-detail{font-size:10px}
  .exterior-shell.has-member-moments .member-moment{padding:12px;gap:6px}
}
@media (orientation:portrait){
  #welcome.member-welcome{overflow-y:auto}
  .exterior-shell.has-member-moments{flex:none;grid-template-columns:minmax(0,1fr) 110px;text-align:left}
  .has-member-moments .state-title-row{justify-content:flex-start}
  .has-member-moments .state-title{margin:0}
  .exterior-shell.has-member-moments .member-moments{grid-template-columns:1fr}
  .exterior-shell.has-member-moments .member-moment{min-height:0}
  .has-member-moments .session-action{flex-wrap:wrap}
}
@media (prefers-reduced-motion:reduce){
  .available-pulse,.available-pulse::before,.available-pulse::after,
  .available-pulse svg,.logo-halo,.available-logo-canvas,
  .phase-enter .state-kicker,.phase-enter .state-title,.phase-enter .activity-title,
  .phase-enter .reservation-line,.phase-enter .member-meta,.phase-enter .single-instruction,
  .phase-enter .member-moment,.phase-enter .exterior-gauge,.exterior-shell.milestone .member-spark-badge.on{animation:none}
}
/* Static, cached portraits: no extra animation or session-blocking load. */
.member-avatar{position:relative;display:inline-block;width:132px;height:132px;flex:0 0 132px;border-radius:50%;overflow:hidden;background-color:#fbede1;background-repeat:no-repeat;border:2px solid #f4d6c5}
.member-avatar-female,.member-avatar-male{background-image:url('/cabin-avatar-fallbacks-v1.png');background-size:240% auto;background-position:7.5% center}
.member-avatar-male{background-position:92% center}
.member-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.member-avatar-neutral{display:none}
.member-moment-header{gap:14px}
.member-moment-header h2{min-width:0;white-space:nowrap;overflow-wrap:normal;word-break:normal;hyphens:none}
#sessionSuccessAvatar{float:left;margin:0 18px 12px 0}
@media(max-height:850px),(max-width:1100px){.member-avatar{width:96px;height:96px;flex-basis:96px}.member-moment-header{gap:10px}.with-badges .member-moment-header{min-height:104px}}
.member-moment .member-moment-header.name-needs-room{display:grid;grid-template-columns:auto minmax(0,1fr);padding-right:0;gap:8px 10px}
.name-needs-room .member-avatar{grid-column:1;grid-row:1/3}
.name-needs-room h2{grid-column:2;grid-row:1;width:100%}
.member-moment .name-needs-room .welcome-badge{position:static;grid-column:2;grid-row:2;width:100%;flex-direction:row;justify-content:flex-start;gap:7px}
.member-moment .name-needs-room .welcome-badge-icon{width:28px;height:28px;flex:none}
.member-moment .name-needs-room .welcome-badge-label{font-size:10px;letter-spacing:.055em;white-space:normal;text-align:left}
.name-needs-room .welcome-badge-detail{display:none}
