/* Labs · Trou noir */
.bh-page{background:#000;color:#eef2f0;overflow-x:hidden}
.bh-page .nav{position:fixed;z-index:30}
.bh-page .nav__lang a{color:var(--muted);text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.05em;padding:7px 12px}
.bh-page .nav__lang a.is-active{background:rgba(201,168,106,.16);color:var(--gold-bright,var(--gold))}
#bh-canvas{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;display:block;z-index:0;touch-action:pan-y;cursor:grab}
#bh-canvas.is-drag{cursor:grabbing}
#bh-canvas.is-launch{touch-action:none;cursor:crosshair}
.bh-launching .bh-card{pointer-events:none}
@media (max-width:720px),(pointer:coarse){html.bh-launching .bh-step .bh-card{opacity:.3;transition:opacity .25s}}
#bh-fx{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;display:block;z-index:1;pointer-events:none}
.bh-mode{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex-basis:100%;justify-content:center}
.bh-btn[aria-pressed=true]{background:rgba(255,154,60,.28);border-color:#ff9a3c;color:#fff}
.bh-btn:disabled{opacity:.45;cursor:default}
.bh-chk{display:inline-flex;align-items:center;gap:6px;font:600 .74rem/1 system-ui,sans-serif;color:#c9d1cd;cursor:pointer}.bh-chk input{accent-color:#ff9a3c;width:16px;height:16px}
.bh-tally{font:500 .74rem/1.2 ui-monospace,Menlo,Consolas,monospace;color:#9aa6a1;min-width:16rem;text-align:center}
.bh-fallback{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1;text-align:center;font:600 1.05rem/1.5 system-ui,sans-serif;background:radial-gradient(circle at 50% 50%,#000 0 18%,#2a1606 19%,#000 40%)}
.bh-fallback[hidden]{display:none}
.bh-fallback p{max-width:30rem;background:rgba(0,0,0,.6);padding:18px 22px;border:1px solid rgba(255,255,255,.15);border-radius:14px}
.bh-steps{position:relative;z-index:2;pointer-events:none}
.bh-step{min-height:100vh;min-height:100dvh;display:flex;align-items:center;padding:96px clamp(18px,5vw,72px) 150px}
.bh-card{pointer-events:auto;max-width:25rem;padding:22px 24px;border-radius:18px;background:rgba(8,10,14,.55);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:.25;transform:translateY(16px);transition:opacity .6s,transform .6s}
.bh-step.is-active .bh-card{opacity:1;transform:none}
.bh-num{font:500 .78rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.14em;color:#ffb36b}
.bh-card h1,.bh-card h2{font:800 clamp(1.9rem,4.6vw,3.2rem)/1.02 system-ui,"Segoe UI",Helvetica,Arial,sans-serif;letter-spacing:-.03em;margin:.45rem 0 .7rem}
.bh-card p{font:400 .98rem/1.55 system-ui,sans-serif;color:#d5dbd8;margin:0 0 .6rem}
.bh-card .bh-eq{font:500 .86rem/1.4 ui-monospace,Menlo,Consolas,monospace;color:#ffd7a8}
.bh-dots{position:fixed;right:clamp(10px,2vw,26px);top:50%;transform:translateY(-50%);z-index:5;display:flex;flex-direction:column;gap:14px;align-items:flex-end;list-style:none;margin:0;padding:0}
.bh-dots a{display:flex;align-items:center;gap:8px;text-decoration:none;color:#8d9792;font:500 .72rem/1 ui-monospace,Menlo,Consolas,monospace}
.bh-dots a i{width:9px;height:9px;border-radius:50%;border:1px solid currentColor;transition:.3s}
.bh-dots a span{opacity:0;transition:.3s}
.bh-dots a.is-active{color:#ffb36b}.bh-dots a.is-active i{background:currentColor;transform:scale(1.3)}.bh-dots a.is-active span{opacity:1}
.bh-dock{position:fixed;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:6;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:center;padding:12px 18px;width:min(940px,calc(100vw - 20px));box-sizing:border-box;border-radius:20px;background:rgba(14,16,22,.5);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 10px 40px rgba(0,0,0,.45)}
.bh-ctl{display:flex;flex-direction:column;gap:4px;min-width:150px;flex:1}
.bh-ctl label{font:600 .74rem/1 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#c9d1cd;display:flex;justify-content:space-between;gap:8px}
.bh-ctl output{font:500 .74rem/1 ui-monospace,Menlo,Consolas,monospace;color:#ffb36b;text-transform:none;letter-spacing:0}
.bh-ctl input[type=range]{width:100%;accent-color:#ff9a3c}
.bh-btn{font:700 .8rem/1 system-ui,sans-serif;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);border-radius:12px;padding:10px 14px;cursor:pointer}
.bh-btn:hover,.bh-btn:focus-visible{background:rgba(255,154,60,.22);border-color:#ff9a3c}
.bh-read{display:grid;grid-template-columns:auto auto;gap:3px 10px;font:500 .74rem/1.25 ui-monospace,Menlo,Consolas,monospace;color:#9aa6a1}
.bh-read b{color:#eef2f0;font-weight:500;text-align:right}
.bh-tag{position:fixed;left:clamp(14px,3vw,30px);top:78px;z-index:4;font:500 .72rem/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase;color:#9aa6a1;margin:0}
.bh-foot{position:relative;z-index:2;padding:40px 20px 230px;text-align:center}
.bh-foot a{color:#ffb36b}
@media (max-width:720px){
  .bh-step{align-items:flex-end;padding-top:80px;padding-bottom:270px}
  .bh-mode{gap:6px}.bh-mode .bh-btn{padding:8px 10px;font-size:.74rem}.bh-tally{min-width:0;flex-basis:100%;font-size:.68rem}
  .bh-card{padding:14px 16px;background:rgba(8,10,14,.7)}.bh-card p{font-size:.86rem;line-height:1.45}.bh-card h1,.bh-card h2{font-size:1.7rem}
  .bh-dots a span{display:none}
  .bh-dock{gap:8px 12px;padding:10px 12px}.bh-ctl{min-width:120px}
  .bh-read{grid-column:1/-1;grid-template-columns:repeat(3,auto auto)}
  .bh-tag{display:none}
}
@media (prefers-reduced-motion:reduce){.bh-card{transition:none}}
/* v4 : options (sonde, dilatation, 2e trou noir, chute) */
.bh-opts{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:center;flex-basis:100%;margin:0;padding:0;border:0;min-width:0}
.bh-opts legend{float:left;font:600 .7rem/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#8d9792;margin-right:4px}
.bh-pad{position:fixed;z-index:7;right:clamp(54px,6vw,90px);bottom:250px;width:min(290px,calc(100vw - 20px));box-sizing:border-box;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px;border-radius:16px;background:rgba(10,12,18,.62);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.bh-pad[hidden],.bh-hud[hidden],.bh-hud section[hidden]{display:none}
.bh-pad .bh-btn{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;min-height:44px;min-width:44px;padding:6px 4px;font-size:.72rem;line-height:1.15}
.bh-pad .bh-btn.is-on{background:rgba(110,230,255,.3);border-color:#6ee6ff}
.bh-hud{position:fixed;z-index:7;top:76px;right:clamp(54px,6vw,90px);width:min(290px,calc(100vw - 20px));box-sizing:border-box;padding:12px 14px;border-radius:16px;background:rgba(10,12,18,.62);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font:500 .78rem/1.35 system-ui,sans-serif;color:#d5dbd8;display:flex;flex-direction:column;gap:10px}
.bh-hud section{display:flex;flex-direction:column;gap:5px}
.bh-hud-t{margin:0;font:700 .74rem/1.2 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#ffb36b}
.bh-hud-t small{text-transform:none;letter-spacing:0;color:#9aa6a1;font-weight:500}
.bh-msg{margin:0}.bh-msg[data-s=ok]{color:#7dffb8}.bh-msg[data-s=ko]{color:#ff8f80}.bh-msg[data-s=mid]{color:#8ef0ff}
.bh-hint{margin:0;color:#8d9792;font-size:.7rem}
.bh-fuel{display:flex;align-items:center;gap:8px}.bh-fuel meter{flex:1;height:10px}
.bh-clk{display:grid;grid-template-columns:1fr auto;gap:2px 10px;margin:0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.74rem}
.bh-clk dt{color:#9aa6a1}.bh-clk dd{margin:0;text-align:right;color:#eef2f0}
.bh-hud .bh-btn{align-self:flex-start;padding:7px 10px;font-size:.72rem}
html.bh-falling .bh-step .bh-card{opacity:.35}
@media (max-width:720px){
  .bh-hud{top:86px;right:10px;left:10px;width:auto;padding:8px 10px;gap:6px;font-size:.7rem}
  html.bh-hud-on .bh-step .bh-card{opacity:.4}
  .bh-hint{display:none}
  .bh-opts{gap:4px 10px}.bh-opts legend{display:none}.bh-opts .bh-chk{font-size:.68rem}
  /* v4.1 : pavé tactile en barre fixe au pouce, au-dessus de la zone sûre ; le dock se réduit aux options */
  .bh-pad{left:0;right:0;bottom:0;width:auto;border-radius:16px 16px 0 0;border-bottom:0;gap:6px;padding:8px max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
  .bh-pad{grid-template-columns:repeat(6,1fr)}.bh-pad .bh-btn{min-height:52px;font-size:.68rem;padding:4px 2px}
  html.bh-probe-on .bh-step .bh-card{opacity:.12}
  html.bh-probe-on .bh-dock{bottom:calc(76px + env(safe-area-inset-bottom));padding:6px 10px}
  html.bh-probe-on .bh-dock>:not(.bh-opts){display:none}
  html.bh-probe-on .bh-step{padding-bottom:200px}
  .bh-step{padding-bottom:330px}
  /* v5.2 : pavé simple (3 boutons) ou manuel (joystick + 5 boutons) */
  .bh-pad[data-m="simple"]{grid-template-columns:repeat(3,1fr)}
  html .bh-pad[data-m="manual"]{width:auto;grid-template-columns:112px repeat(3,1fr)}
  .bh-pad[data-m="manual"] .bh-btn{min-height:52px}
  html.bh-probe-on.bh-pilot-manual .bh-dock{bottom:calc(136px + env(safe-area-inset-bottom))}
}
/* v4.2 · Mode jeu plein écran */
.bh-play{background:rgba(255,154,60,.3);border-color:#ff9a3c;color:#fff;font-weight:700;min-height:44px}
html.bh-game .bh-play{display:none}
html.bh-game,html.bh-game body{overflow:hidden;overscroll-behavior:none}
html.bh-game #bh-canvas{z-index:40;touch-action:none;cursor:grab}
html.bh-game #bh-canvas.is-launch{cursor:crosshair}
html.bh-game #bh-fx{z-index:41}
html.bh-game .bh-steps,html.bh-game .bh-dots,html.bh-game .bh-tag,html.bh-game .bh-foot{visibility:hidden}
html.bh-game .bh-dock,html.bh-game .bh-hud{display:none}
html.bh-game.bh-g-opts-on .bh-dock{display:flex;z-index:43;max-height:calc(100dvh - 90px);overflow:auto;overscroll-behavior:contain}
html.bh-game.bh-g-info-on .bh-hud:not([hidden]){display:block;z-index:43;top:calc(66px + env(safe-area-inset-top))}
html.bh-game .bh-pad:not([hidden]){z-index:44}
.bh-gbar{position:fixed;z-index:45;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));display:flex;gap:6px;padding:4px;border-radius:14px;background:rgba(8,10,14,.6);border:1px solid rgba(255,255,255,.12);touch-action:manipulation}
.bh-gbar[hidden]{display:none}
.bh-gbtn{width:44px;height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#eef2f0;font:600 1.1rem/1 system-ui,sans-serif;cursor:pointer}
.bh-gbtn[aria-expanded=true]{background:rgba(255,154,60,.28);border-color:#ff9a3c}
.bh-gbtn:focus-visible{outline:2px solid #ff9a3c;outline-offset:2px}
html.bh-game .bh-dock,html.bh-game .bh-hud{touch-action:pan-y}
@media (min-width:721px) and (pointer:fine){html.bh-game .bh-pad{bottom:max(14px,env(safe-area-inset-bottom))}html.bh-game.bh-g-opts-on .bh-pad{bottom:250px}}
/* v5 : vue sonde, carte de fin, aide de premier lancement */
.bh-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bh-pad .bh-btn[aria-pressed=true]{background:rgba(110,230,255,.22);border-color:#6ee6ff}
.bh-end,.bh-help{position:fixed;z-index:46;left:50%;top:50%;transform:translate(-50%,-50%);width:min(360px,calc(100vw - 28px));box-sizing:border-box;padding:16px 18px;border-radius:18px;background:rgba(8,10,16,.9);border:1px solid rgba(255,255,255,.18);color:#eef2f0;font:.86rem/1.45 system-ui,sans-serif;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.5)}
.bh-end[hidden],.bh-help[hidden],.bh-help-b[hidden]{display:none}
.bh-end p,.bh-help p{margin:0 0 8px}
.bh-end-t{font-weight:800;font-size:1.1rem}.bh-end[data-s=ok] .bh-end-t{color:#7dffb8}.bh-end[data-s=ko] .bh-end-t{color:#ff8f80}.bh-end[data-s=n] .bh-end-t{color:#cfd8ff}.bh-end[data-s=ko] .bh-end-sc,.bh-end[data-s=n] .bh-end-sc{font-size:1rem;color:#9aa6a1}
.bh-end-sc{font:800 1.5rem/1.2 ui-monospace,Menlo,Consolas,monospace;color:#ffd68c}.bh-end-why{font-size:.74rem;color:#9aa6a1}
.bh-end-b{display:flex;gap:8px;justify-content:center;margin-top:10px}.bh-end-b .bh-btn{min-height:44px;min-width:44px}
.bh-btn--p{background:rgba(110,230,255,.25);border-color:#6ee6ff}
.bh-help{top:auto;bottom:max(90px,calc(env(safe-area-inset-bottom) + 90px));transform:translateX(-50%)}
@media (prefers-reduced-motion:no-preference){.bh-end:not([hidden]),.bh-help:not([hidden]){animation:bh-pop .25s ease-out}}
@keyframes bh-pop{from{opacity:0}to{opacity:1}}

/* v5 : vitesse de simulation (cibles ≥ 44 px au pouce) */
.bh-speed{display:inline-flex;align-items:center;gap:4px;flex-wrap:nowrap}.bh-speed-l{font:600 .7rem/1 system-ui,sans-serif;color:#8d9792;margin-right:2px}
.bh-speed button{min-width:44px;min-height:44px;padding:0 8px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.05);color:inherit;font:600 .8rem/1 system-ui,sans-serif;cursor:pointer;touch-action:manipulation}
.bh-speed button[aria-pressed="true"]{background:rgba(150,200,255,.22);border-color:rgba(150,200,255,.7)}
/* v5.2 · Pilotage naturel : mode simple / manuel, joystick tactile */
.bh-sel{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:#dfe5e2}
.bh-sel select{min-height:36px;border-radius:10px;background:rgba(12,14,20,.9);color:#fff;border:1px solid rgba(255,255,255,.22);padding:2px 6px;font:inherit}
.bh-sel select:disabled{opacity:.45}
.bh-pad[data-m="simple"]{grid-template-columns:repeat(3,1fr)}
.bh-pad[data-m="simple"] .bh-joy,.bh-pad[data-m="simple"] .bh-btn--m{display:none}
.bh-pad[data-m="manual"]{width:min(380px,calc(100vw - 20px));grid-template-columns:112px repeat(3,1fr);grid-auto-rows:minmax(44px,auto)}
.bh-pad[data-m="manual"] .bh-joy{grid-row:span 2}
.bh-joy{position:relative;width:104px;height:104px;align-self:center;justify-self:center;border-radius:50%;background:radial-gradient(circle,rgba(110,230,255,.10),rgba(255,255,255,.05) 62%,rgba(255,255,255,.12));border:1px solid rgba(255,255,255,.26);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab}
.bh-joy::before,.bh-joy::after{content:"";position:absolute;left:50%;top:10px;bottom:10px;width:1px;background:rgba(255,255,255,.14)}
.bh-joy::after{top:50%;left:10px;right:10px;bottom:auto;width:auto;height:1px}
.bh-joy-k{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(110,230,255,.38);border:2px solid rgba(160,240,255,.9);box-shadow:0 2px 10px rgba(0,0,0,.5);pointer-events:none}
.bh-joy.is-on .bh-joy-k{background:rgba(255,170,70,.5);border-color:#ffc27a}
.bh-btn--d{font-weight:700}
