/* Regards volés, au milieu de l’exposition. */
.play-panel.gaze-stage{top:auto;bottom:22px;width:min(780px,94%);padding:18px 22px;overflow:visible;background:#fff9edfa}.gaze-heading{display:flex;justify-content:space-between;align-items:center;gap:14px}.gaze-heading strong{font-size:19px}.gaze-caught{font-size:14px;color:#816149;white-space:nowrap}.gaze-status{margin:12px 0;font-size:18px;line-height:1.35;min-height:25px;color:#326052}.gaze-stage[data-gaze-state=warning] .gaze-status{color:#a75a29}.gaze-stage[data-gaze-state=watch] .gaze-status,.gaze-stage[data-gaze-state=caught] .gaze-status{color:#b24039}.gaze-meter{height:12px;border-radius:8px;overflow:hidden;background:#dce4d8;border:2px solid #355b50}.gaze-meter i{display:block;height:100%;width:0;background:#5eaa87}.gaze-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:13px}.gaze-button{background:#efbf70;color:#1d4845;border:2px solid #21483f;border-radius:10px;box-shadow:3px 3px 0 #21483f;font-size:17px;padding:12px 20px;min-height:48px;touch-action:none;user-select:none;flex:1}.gaze-button.looking{background:#b8d9ba;box-shadow:1px 1px 0 #21483f;transform:translate(2px,2px)}.gaze-rounds{font-size:25px;white-space:nowrap;color:#a56b38}.gaze-help{font-size:14px;margin:12px 0 0;color:#657969}.gaze-mode .vignette{background:linear-gradient(#123b3aa8,transparent 30%,transparent 65%,#123b3a80)}
/* Le même puzzle, sur un sommet. Une étoile remplace toute figure de bébé. */
.puzzle-piece{background-image:url('assets/hug-sunset-scarab.png')}.puzzle-star{position:absolute;z-index:3;pointer-events:none;font-family:Georgia,serif;font-size:clamp(30px,5vw,54px);line-height:1;color:#fff1a3;text-shadow:0 0 9px #ffce66,0 0 24px #ffdf85;transform:translate(-50%,-50%)}
/* Une seule table de banquet, avec un compte à rebours toujours visible. */
.play-panel.banquet-stage{display:flex;flex-direction:column;overflow:hidden;padding:14px 20px;gap:8px}.banquet-header{display:flex;align-items:center;justify-content:center;gap:35px;flex-shrink:0}.banquet-host{width:84px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:14px;color:#5b7061}.banquet-host img{height:86px;width:76px;object-fit:contain}.banquet-timebox{text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}.banquet-clock-label{font-size:12px;letter-spacing:1.5px;color:#607467}.banquet-countdown{font-size:64px;line-height:1.02;color:#174e43;font-variant-numeric:tabular-nums;letter-spacing:2px}.banquet-countdown.urgent{color:#c44336}.banquet-count{font-size:14px;color:#526e60}.banquet-stage .activity-instruction{margin:0;text-align:center;font-size:15px;line-height:1.4;min-height:22px;flex-shrink:0;white-space:normal;overflow:visible;text-overflow:clip}.banquet-floor{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;background:#e4ecdf;border:2px solid #a1b395;border-radius:16px;padding:14px 10px;display:flex;align-items:center}.banquet-plan{position:relative;display:grid;grid-template-columns:repeat(8,minmax(44px,1fr));grid-template-rows:48px 98px 48px;align-items:center;justify-items:center;width:100%;gap:7px 2px;min-width:385px;isolation:isolate}.banquet-surface{position:absolute;top:39px;bottom:39px;left:0;right:0;background:#fff8e4;border:4px solid #c09861;border-radius:70px;box-shadow:0 5px 0 #a17c5050;z-index:-1}.banquet-surface:after{content:'';position:absolute;left:12px;right:12px;top:38%;bottom:38%;background:#87b6a5;opacity:.65;border-radius:4px}.banquet-seat{grid-column:var(--position);font-size:26px;line-height:1;width:46px;height:46px;border:2px dashed var(--group);border-radius:12px;background:#fffcf1;opacity:.62;filter:saturate(.4);touch-action:manipulation}.banquet-seat[data-side=a]{grid-row:1}.banquet-seat[data-side=b]{grid-row:3}.banquet-decor{grid-column:var(--position);grid-row:2;width:46px;height:46px;font-size:26px;border:2px dashed #759286;background:#f5f5eac9;border-radius:50%;opacity:.5;filter:grayscale(1);touch-action:manipulation}.banquet-seat.occupied,.banquet-decor.occupied{opacity:1;filter:none;border-style:solid;box-shadow:0 2px 0 #29574530;background:#fff3d3}.banquet-stage .table-tray{margin:0;min-height:73px;flex-shrink:0}.banquet-stage .tray-token{min-height:73px}.banquet-stage .token-label{font-size:14px}
/* La tenue rappelle le chapitre, sans modifier les cartes à valider plus tard. */
.memory-look{position:absolute;top:12px;height:56px;width:45px;object-fit:contain}.memory-look.nyko{left:16px}.memory-look.sylvie{right:16px}.memory-stage>.panel-label,.memory-stage>.activity-instruction{max-width:calc(100% - 108px);margin-left:auto;margin-right:auto}.dance-panel #danceOutfit{font-size:14px;line-height:1.4;letter-spacing:1px}.dance-panel .rhythm-target{transition:left .3s ease,width .3s ease}.dance-panel .rhythm-track{overflow:hidden}.dance-panel .rhythm-dot{pointer-events:none}.dance-panel .rhythm-target{border-radius:4px}
@media(max-width:760px){.play-panel.gaze-stage{bottom:14px;padding:13px 15px}.gaze-heading{gap:8px;align-items:start}.gaze-heading strong{font-size:16px;max-width:57%}.gaze-caught{font-size:12px;white-space:normal;text-align:right}.gaze-status{font-size:15px;min-height:40px;margin:9px 0}.gaze-actions{gap:12px;margin-top:11px}.gaze-button{font-size:14px;padding:10px 12px;min-height:47px}.gaze-rounds{font-size:19px}.gaze-help{font-size:12px;margin-top:10px}.gaze-mode .goal-panel h2{font-size:18px}.gaze-mode .goal-panel p{font-size:12px}.play-panel.banquet-stage{padding:10px 12px;gap:8px;top:150px}.banquet-header{gap:12px}.banquet-host{width:47px;font-size:12px}.banquet-host img{height:68px;width:45px}.banquet-clock-label{font-size:12px;letter-spacing:.3px}.banquet-countdown{font-size:52px}.banquet-count{font-size:13px}.banquet-stage .activity-instruction{font-size:13px;min-height:18px;line-height:1.25}.banquet-floor{padding:8px;display:block}.banquet-plan{grid-template-columns:44px 94px 44px;grid-template-rows:repeat(8,44px);gap:7px 2px;min-width:0;width:max-content;margin:auto}.banquet-surface{top:0;bottom:0;left:38px;right:38px;border-width:3px;border-radius:35px}.banquet-surface:after{top:13px;bottom:13px;left:40%;right:40%}.banquet-seat{grid-row:var(--position)!important;width:44px;height:44px;font-size:25px}.banquet-seat[data-side=a]{grid-column:1}.banquet-seat[data-side=b]{grid-column:3}.banquet-decor{grid-column:2;grid-row:var(--position);width:43px;height:43px;font-size:25px}.banquet-stage .table-tray{min-height:67px;gap:6px}.banquet-stage .tray-token{min-height:67px}.banquet-stage .token-label{font-size:12px}.memory-look{height:50px;width:35px;top:12px}.memory-look.nyko{left:12px}.memory-look.sylvie{right:12px}.memory-stage>.panel-label,.memory-stage>.activity-instruction{max-width:calc(100% - 80px)}.dance-panel #danceOutfit{font-size:12px;letter-spacing:.5px}}
@media(max-height:580px) and (orientation:landscape){.play-panel.gaze-stage{bottom:9px;padding:9px 15px;width:min(720px,94%)}.gaze-heading strong{font-size:14px}.gaze-caught{font-size:12px}.gaze-status{font-size:14px;min-height:0;margin:6px 0}.gaze-meter{height:9px}.gaze-actions{margin-top:6px}.gaze-button{min-height:35px;font-size:13px;padding:6px 12px}.gaze-help{display:none}.gaze-rounds{font-size:20px}.play-panel.banquet-stage{top:107px;padding:8px 12px;gap:5px}.banquet-header{position:absolute;top:4px;right:15px;gap:0;z-index:2}.banquet-host{display:none}.banquet-clock-label,.banquet-count{display:none}.banquet-countdown{font-size:33px}.banquet-stage .activity-instruction{text-align:left;max-width:75%;font-size:12px;min-height:28px}.banquet-floor{padding:6px;display:flex}.banquet-plan{grid-template-columns:repeat(8,minmax(36px,1fr));grid-template-rows:36px 46px 36px;width:100%;gap:4px;min-width:360px}.banquet-seat{grid-column:var(--position)!important;width:36px;height:36px;font-size:23px}.banquet-seat[data-side=a]{grid-row:1!important}.banquet-seat[data-side=b]{grid-row:3!important}.banquet-decor{grid-column:var(--position);grid-row:2;width:36px;height:36px;font-size:23px}.banquet-surface{left:0;right:0;top:29px;bottom:29px}.banquet-surface:after{left:15px;right:15px;top:38%;bottom:38%}.banquet-stage .table-tray{min-height:42px;gap:7px}.banquet-stage .tray-token{min-height:42px}.banquet-stage .token-label{font-size:12px}.memory-look{display:none}.memory-stage>.panel-label,.memory-stage>.activity-instruction{max-width:100%}.dance-panel #danceOutfit{display:block;font-size:12px;margin:0 0 5px}.dance-panel .rhythm-track{height:32px}.dance-panel .rhythm-dot{top:3px}}

/* Une seule jauge commune, qui garde les points d’un tour à l’autre. */
.gaze-meter{position:relative;height:25px;background:#edf0db}
.gaze-meter i{background:#f4b2aa}
.gaze-score{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;font-weight:bold;color:#143c39;line-height:1}
.gaze-mode .stats{display:none}
.gaze-mode .goal-panel{max-width:100%}
.gaze-stage[data-gaze-state=caught] .gaze-meter i{background:#e89e83}
.gaze-stage .gaze-help{line-height:1.35}

/* Toute la surface de jeu ; plein écran natif si le navigateur le permet. */
body.immersive-mode{overflow:hidden}
.immersive-mode #app{height:100svh;height:100dvh;min-height:0}
#app:fullscreen,#app:-webkit-full-screen{width:100%;height:100%;min-height:0}
.immersive-mode .topbar{position:absolute;z-index:9;top:0;left:0;right:0;height:50px;padding:0 max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left));background:#123e43eb;gap:10px}
.immersive-mode .wordmark{font-size:22px;padding:0}
.immersive-mode .wordmark span{font-size:18px}
.immersive-mode .top-actions{gap:8px}
.immersive-mode .icon-button{height:36px;min-width:36px;width:36px;font-size:19px}
.immersive-mode .chapters-button{width:auto;font-size:14px}
.immersive-mode #chapterLabel{font-size:12px;letter-spacing:1px}
.immersive-mode .hud{top:62px;left:16px;right:16px;align-items:center;z-index:3}
.immersive-mode .chapter-number,.immersive-mode .goal-panel p{display:none}
.immersive-mode .goal-panel h2{font-size:20px;margin:0}
.immersive-mode .goal-panel{max-width:55%}
.immersive-mode .stats{padding:7px 11px}
.immersive-mode #progressText{font-size:14px;white-space:normal}
.immersive-mode .play-panel.mountain-stage{width:100%;left:0;right:0;transform:none;bottom:0;border-radius:15px 15px 0 0;box-shadow:none;border-width:2px 0 0;padding:12px max(15px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(15px,env(safe-area-inset-left))}
.immersive-mode .climb-help{margin-bottom:0}
@media(min-width:980px) and (min-height:560px){
 .immersive-mode .play-panel.mountain-stage{top:115px;bottom:18px;left:auto;right:18px;width:300px;max-height:calc(100% - 133px);overflow:auto;border:2px solid #193e42;border-radius:17px;padding:20px;display:flex;flex-direction:column;justify-content:center;gap:14px}
 .immersive-mode .climb-info{flex-direction:column;align-items:start;gap:9px}
 .immersive-mode .climb-weather{text-align:left;font-size:15px}
 .immersive-mode .mountain-line{font-size:18px;min-height:48px;margin:0}
 .immersive-mode .climb-anger{flex-direction:column;align-items:stretch;font-size:14px;margin:0}
 .immersive-mode .climb-actions{flex-direction:column;align-items:stretch;gap:18px}
 .immersive-mode .rock-choices{display:flex;gap:10px}
 .immersive-mode .rock-choice{flex:1;font-size:14px}
 .immersive-mode .grip-track{height:30px;margin-bottom:9px}
 .immersive-mode .climb-button{min-height:54px;font-size:16px}
 .immersive-mode .climb-hug{min-height:48px}
 .immersive-mode .climb-help{font-size:14px;line-height:1.4}
}
/* Le banquet n’est plus enfermé dans une carte : la table remplit l’espace. */
.banquet-mode .hud{display:none}
.immersive-mode .play-panel.banquet-stage{top:50px;bottom:0;left:0;right:0;transform:none;width:100%;max-height:none;border:0;box-shadow:none;border-radius:0;padding:10px 18px max(10px,env(safe-area-inset-bottom));gap:8px}
.immersive-mode .banquet-header{position:static;gap:30px}
.immersive-mode .banquet-host{display:flex}
.immersive-mode .banquet-host img{height:66px}
.immersive-mode .banquet-countdown{font-size:52px}
.immersive-mode .banquet-count{display:block}
.immersive-mode .banquet-clock-label{display:block}
.immersive-mode .banquet-stage .activity-instruction{text-align:center;max-width:100%;margin:0;font-size:15px;min-height:21px}
.immersive-mode .banquet-floor{padding:16px;display:flex;justify-content:center}
.immersive-mode .banquet-plan{max-width:1400px;grid-template-columns:repeat(8,minmax(44px,1fr));grid-template-rows:64px 148px 64px;gap:12px 4px;min-width:385px;width:100%}
.immersive-mode .banquet-seat{width:64px;height:64px;font-size:38px}
.immersive-mode .banquet-decor{width:62px;height:62px;font-size:36px}
.immersive-mode .banquet-surface{top:54px;bottom:54px;border-radius:85px}
.immersive-mode .table-tray{max-width:1100px;width:100%;margin:0 auto}
.immersive-mode .tray-token{min-height:73px;font-size:16px}
@media(max-width:760px) and (orientation:portrait){
 .immersive-mode .goal-panel h2{font-size:17px}
 .immersive-mode #progressText{font-size:13px}
 .immersive-mode .topbar #chapterLabel{font-size:11px;letter-spacing:0}
 .immersive-mode .climb-info{gap:10px}
 .immersive-mode .climb-turn,.immersive-mode .climb-weather{font-size:14px}
 .immersive-mode .mountain-line{font-size:15px;min-height:38px}
 .immersive-mode .climb-help{display:none}
 .immersive-mode .play-panel.banquet-stage{padding:7px 10px max(8px,env(safe-area-inset-bottom));gap:6px}
 .immersive-mode .banquet-header{gap:18px}
 .immersive-mode .banquet-host img{height:52px}
 .immersive-mode .banquet-countdown{font-size:44px}
 .immersive-mode .banquet-stage .activity-instruction{font-size:14px;line-height:1.3;min-height:19px}
 .immersive-mode .banquet-floor{display:block;padding:8px}
 .immersive-mode .banquet-plan{grid-template-columns:1fr 2fr 1fr;grid-template-rows:repeat(8,44px);gap:6px 2px;min-width:0;max-width:420px;width:100%;margin:auto}
 .immersive-mode .banquet-seat{width:44px;height:44px;font-size:27px}
 .immersive-mode .banquet-decor{width:44px;height:44px;font-size:27px}
 .immersive-mode .banquet-surface{left:calc(25% - 7px);right:calc(25% - 7px);top:0;bottom:0;border-radius:38px}
 .immersive-mode .table-tray,.immersive-mode .tray-token{min-height:64px}
 .immersive-mode .token-label{font-size:12px}
}
@media(max-height:580px) and (orientation:landscape){
 .immersive-mode .topbar{height:44px}
 .immersive-mode .hud{top:50px;left:12px;right:12px}
 .immersive-mode .goal-panel h2{font-size:17px}
 .immersive-mode .play-panel.mountain-stage{top:93px;bottom:8px;left:auto;right:8px;width:245px;max-height:calc(100% - 101px);overflow:auto;border:2px solid #193e42;border-radius:12px;padding:10px}
 .immersive-mode .climb-info{display:block}
 .immersive-mode .climb-turn,.immersive-mode .climb-weather{display:block;max-width:100%;font-size:14px;text-align:left}
 .immersive-mode .climb-weather{margin-top:5px}
 .immersive-mode .mountain-line{font-size:14px;min-height:34px;margin:8px 0}
 .immersive-mode .climb-actions{display:flex;flex-wrap:wrap;gap:8px}
 .immersive-mode .rock-choices{flex:1}
 .immersive-mode .grip-control{order:2;flex-basis:100%;display:block}
 .immersive-mode .grip-track{height:24px;margin:0 0 6px}
 .immersive-mode .climb-button{min-height:40px;font-size:14px}
 .immersive-mode .rock-choice,.immersive-mode .climb-hug{min-height:38px;font-size:13px;padding:6px}
 .immersive-mode .climb-help,.immersive-mode .climb-anger{display:none}
 .immersive-mode .play-panel.banquet-stage{top:44px;padding:8px 12px;gap:6px}
 .immersive-mode .banquet-header{position:absolute;right:16px;top:4px;gap:0}
 .immersive-mode .banquet-countdown{font-size:34px}
 .immersive-mode .banquet-host,.immersive-mode .banquet-count,.immersive-mode .banquet-clock-label{display:none}
 .immersive-mode .banquet-stage .activity-instruction{text-align:left;max-width:calc(100% - 120px);font-size:14px;min-height:30px}
 .immersive-mode .banquet-floor{padding:8px;display:flex}
 .immersive-mode .banquet-plan{grid-template-columns:repeat(8,minmax(40px,1fr));grid-template-rows:44px 70px 44px;gap:5px 2px;min-width:350px}
 .immersive-mode .banquet-seat,.immersive-mode .banquet-decor{width:42px;height:42px;font-size:27px}
 .immersive-mode .banquet-surface{top:36px;bottom:36px;left:0;right:0}
 .immersive-mode .table-tray,.immersive-mode .tray-token{min-height:48px}
}
@media(max-width:420px){.immersive-mode #chapterLabel{display:none}}

/* Les commandes restent au-dessus de la zone de gestes et des barres du téléphone. */
@media(pointer:coarse),(max-width:760px){
 body.playing{overflow:hidden;--control-clearance:max(32px,calc(env(safe-area-inset-bottom,0px) + 20px))}
 body.playing #app{height:var(--play-height,100svh);min-height:0}
 body.playing .play-panel.activity-panel,body.playing .play-panel.sms-stage{bottom:var(--control-clearance)}
 body.playing .play-panel.gaze-stage,body.playing .play-panel.dance-panel,body.playing .play-panel.mountain-stage{bottom:var(--control-clearance)}
 body.playing .play-panel.dance-panel{max-height:none;padding:14px 18px;width:min(650px,94%);overflow:visible}
 body.playing .dance-panel #danceButton{min-height:58px;min-width:0;width:100%;font-size:18px;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
 body.playing .dance-panel .rhythm-track{height:56px;margin:10px 0 12px}
 body.playing .dance-panel .rhythm-dot{top:14px;width:24px;height:24px}
 body.playing .dance-panel .panel-title{font-size:19px;line-height:1.25}
 body.playing .dance-panel .help-small{margin:8px 0 0;font-size:14px}
 body.playing .dance-panel #danceOutfit{font-size:13px}
 body.playing .dance-panel .rhythm-target{transition:none}
 body.playing .play-panel.banquet-stage{bottom:0;padding-bottom:var(--control-clearance)}
 body.playing .controls{bottom:var(--control-clearance)}
 body.playing .gaze-button,body.playing .climb-button{min-height:50px;font-size:15px}
 body.playing .play-panel.mountain-stage{border-radius:15px;padding-bottom:12px}
 body.playing .speech{bottom:calc(var(--control-clearance) + 230px)}
}
@media(max-height:600px) and (orientation:portrait){
 body.playing .play-panel.dance-panel{padding:10px 14px}
 body.playing .dance-panel .panel-title,body.playing .dance-panel .help-small{display:none}
 body.playing .dance-panel .rhythm-track{margin:7px 0 10px}
 body.playing .play-panel.gaze-stage{padding:10px 14px}
 body.playing .gaze-help{display:none}
}
@media(pointer:coarse) and (max-height:580px) and (orientation:landscape), (max-width:760px) and (max-height:580px) and (orientation:landscape){
 body.playing .play-panel.dance-panel{bottom:var(--control-clearance);padding:8px 14px;width:min(650px,90%);display:grid;grid-template-columns:1fr minmax(155px,.65fr);gap:8px 16px;align-items:center}
 body.playing .dance-panel #danceOutfit{grid-column:1/-1;margin:0;font-size:13px}
 body.playing .dance-panel .rhythm-track{height:50px;margin:0}
 body.playing .dance-panel .rhythm-dot{top:11px}
 body.playing .dance-panel #danceButton{min-height:50px;font-size:17px}
 body.playing .dance-panel .panel-title,body.playing .dance-panel .help-small{display:none}
 body.playing .play-panel.mountain-stage{top:85px;max-height:calc(100% - 85px - var(--control-clearance));padding:8px}
 body.playing .mountain-stage .mountain-line{font-size:13px;min-height:30px;margin:5px 0}
 body.playing .mountain-stage .climb-info{line-height:1.15}
 body.playing .mountain-stage .climb-button{min-height:44px;font-size:14px}
 body.playing .speech{bottom:calc(var(--control-clearance) + 112px);padding:6px 12px;font-size:13px}
}

/* Surf et bachata : actions lisibles, annoncées à l’avance et à portée du pouce. */
body.playing .play-panel.surf-stage,body.playing .play-panel.bachata-stage{top:auto;bottom:var(--control-clearance,28px);max-height:none;overflow:visible;width:min(700px,94%);padding:16px 20px;background:#fff9eafa}
.lesson-steps{display:flex;gap:8px;justify-content:space-between;font-size:14px;font-weight:700;color:#71847b}
.lesson-steps span{padding:5px 8px;border-radius:7px}.lesson-steps .current{background:#efc477;color:#234e48}
.lesson-talk{font-size:17px;font-weight:600;line-height:1.35;min-height:24px;margin:10px 0;color:#285f59}
.lesson-label{font-size:14px;margin-bottom:6px;font-weight:700;font-variant-numeric:tabular-nums}
.lesson-track{height:24px;background:#174b50;border-radius:8px;position:relative;overflow:hidden;margin:6px 0 13px}
.lesson-fill{display:block;height:100%;background:#86c1a0;transition:width .1s}
.lesson-zone{position:absolute;inset:0 auto;background:#f4cf87;border-left:2px solid #fff0c5;border-right:2px solid #fff0c5}
.lesson-needle{position:absolute;top:3px;bottom:3px;width:8px;transform:translateX(-50%);border-radius:4px;background:white;box-shadow:0 0 0 2px #123c49}
.lesson-track[data-stage=balance] .lesson-zone{background:#9dcfb3}.lesson-track.unsteady{outline:3px solid #d97962}
.lesson-actions{display:flex;gap:12px}.lesson-button{flex:1;min-width:0;min-height:54px;padding:10px 12px;border:2px solid #28544c;border-radius:10px;background:#f8e7c5;color:#234b44;font-weight:700;font-size:16px;box-shadow:2px 3px 0 #28544c;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.lesson-button.suggested,.lesson-button.held,.lesson-button:active{background:#efc477;box-shadow:1px 1px 0 #28544c}
.lesson-button:disabled{opacity:.55}.stand-button{width:100%}.lesson-help{font-size:13px;line-height:1.35;margin:10px 0 0;color:#667b70}
.bachata-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.bachata-heading strong{font-size:17px}
.lesson-music{color:#28544c;background:#e1ebda;border:1px solid #809b80;border-radius:8px;padding:8px 10px;min-height:40px;font-size:13px;touch-action:manipulation}
.bachata-lane{height:61px;background:#174b50;border-radius:11px;position:relative;overflow:hidden;margin-top:10px}
.bachata-hit-zone{position:absolute;left:calc(20% - 24px);width:48px;top:0;bottom:0;border-left:2px solid #f4cf87;border-right:2px solid #f4cf87;background:#f4cf8735;display:flex;align-items:flex-end;justify-content:center;color:#fff0cd;font-size:9px;letter-spacing:1px;padding-bottom:2px}
.bachata-note{position:absolute;top:7px;height:40px;width:40px;transform:translateX(-50%);border:2px solid #f5d596;border-radius:9px;display:grid;place-items:center;background:#fff4d8;color:#1a4849;font-size:26px;font-weight:bold}
.bachata-note.on-time{background:#f4c573;box-shadow:0 0 12px #f4c57388}.bachata-next{font-size:14px;min-height:19px;margin:8px 0 10px;font-weight:bold;color:#28544c}
.surf-mode .stats #hearts,.bachata-mode .stats #hearts{display:none}.surf-mode .vignette,.bachata-mode .vignette{background:linear-gradient(#123e4370,transparent 35%,transparent 70%,#123e4355)}
@media(max-width:760px){
 body.playing .play-panel.surf-stage,body.playing .play-panel.bachata-stage{padding:12px 14px}
 .lesson-steps{font-size:12px;gap:2px}.lesson-steps span{padding:4px 5px}
 .lesson-talk{font-size:15px;min-height:20px;margin:8px 0}.lesson-label{font-size:12px}
 .lesson-button{font-size:14px;min-height:54px;padding:8px 6px}.lesson-actions{gap:8px}.lesson-help{font-size:12px}
 .bachata-heading strong{font-size:14px}.lesson-music{font-size:12px;padding:6px 8px}
 .surf-mode .hud,.bachata-mode .hud{flex-wrap:wrap;gap:5px}.surf-mode .stats,.bachata-mode .stats{padding:5px 8px;margin-left:auto}
 .surf-mode.activity-mode .goal-panel,.bachata-mode.activity-mode .goal-panel{max-width:100%}
 .surf-mode .goal-panel h2,.bachata-mode .goal-panel h2{font-size:18px}
 .surf-mode .goal-panel p,.bachata-mode .goal-panel p,.surf-stage .lesson-help,.bachata-stage .lesson-help{display:none}
 .bachata-note{font-size:24px;width:36px;height:38px}
}
@media(max-height:620px){.surf-stage .lesson-help,.bachata-stage .lesson-help{display:none}.surf-stage .lesson-talk,.bachata-stage .lesson-talk{min-height:0;font-size:13px;margin:6px 0}.lesson-steps span{padding:2px 5px}}
@media(max-height:580px) and (orientation:landscape){
 body.playing .play-panel.surf-stage,body.playing .play-panel.bachata-stage{padding:8px 12px;width:min(660px,92%)}
 .surf-mode .topbar,.bachata-mode .topbar{height:48px}.surf-mode .hud,.bachata-mode .hud{top:54px}.surf-mode .chapter-number,.bachata-mode .chapter-number{font-size:25px}
 .surf-mode .goal-panel h2,.bachata-mode .goal-panel h2{font-size:16px}.surf-mode .goal-panel p,.bachata-mode .goal-panel p{display:none}
 .surf-stage .lesson-track{height:18px;margin:4px 0 8px}.lesson-button{min-height:44px}
 .bachata-heading{float:right;max-width:50%}.bachata-heading strong{display:none}.bachata-heading .lesson-music{min-height:30px;padding:4px 8px}
 .bachata-lane{height:44px;margin-top:6px;clear:both}.bachata-note{top:3px;height:32px;width:32px;font-size:22px}.bachata-hit-zone span{display:none}
 .bachata-next{margin:5px 0;font-size:12px;min-height:15px}
}

.card-face.proposal-picture,.matched-picture.proposal-picture{background-image:url('assets/couple-cards-v8.png')}

/* Au vrai sommet, les commandes s’effacent pour ouvrir la vue sur le lagon. */
body.playing .play-panel.mountain-stage.mountain-summit{top:auto;left:50%;right:auto;transform:translateX(-50%);bottom:var(--control-clearance,24px);width:min(700px,94%);max-height:none;padding:12px 18px;display:block;border:2px solid #254d4b;border-radius:14px;background:#fff9eaf5}
.mountain-summit .climb-actions,.mountain-summit .climb-anger,.mountain-summit .climb-help{display:none}
.mountain-summit .climb-info{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:10px}
.mountain-summit .mountain-line{margin:8px 0 0;min-height:0;font-size:15px}
.mountain-summit .climb-weather{font-size:13px}

@media(max-width:760px){
 .mountain-summit .climb-info{flex-direction:column;gap:3px}.mountain-summit .climb-turn{font-size:15px}.mountain-summit .mountain-line{font-size:13px;text-align:center}
}
@media(max-height:580px) and (orientation:landscape){
 .mountain-summit .climb-weather{display:none}.mountain-summit .climb-info{display:block}.mountain-summit .mountain-line{margin:4px 0 0}
}
