:root {
    --ink:#314154;
    --muted:#788596;
    --line:rgba(75,93,112,.14);
    --glass:rgba(255,255,255,.86);
  }
  * { box-sizing:border-box; user-select:none; -webkit-user-select:none; }
  html,body { margin:0; width:100%; height:100%; overflow:hidden; background:#fff; color:var(--ink); font-family:Inter,ui-rounded,"Segoe UI",system-ui,sans-serif; }
  body.game-on, body.game-on * { cursor:none !important; }
  #game {
    position:fixed; inset:0; overflow:hidden; isolation:isolate;
    background:#b9d5e8 var(--sky-image, url('ciel_1_bleu.webp')) center center / cover no-repeat;
  }
  #game::before {
    content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
    background:linear-gradient(to bottom,rgba(255,255,255,.12),rgba(242,248,252,.24));
  }
  #game > * { position:relative; }
  #letters,#bonuses,#rain,#fairyAura,#fairyIdle,#fairySpecial,#fairyLose,#fairyWin,#fairyImmo,#wordBoard,#hud,#bonusHud,#feedback,#state,#flash,#clickNote,#startOverlay { position:absolute; }

  #letters { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
  #rain { position:absolute; inset:0; z-index:12; pointer-events:none; overflow:hidden; }
  .drop { position:absolute; left:0; top:0; height:auto; pointer-events:none; will-change:transform; transform-origin:50% 40%; filter:drop-shadow(0 3px 2px rgba(70,105,145,.08)); }
  #bonuses { position:absolute; inset:0; z-index:8; pointer-events:none; overflow:hidden; }
  .bonusToken {
    position:absolute; left:0; top:0; width:62px; height:62px; border-radius:50%;
    display:grid; place-items:center; pointer-events:none; will-change:transform,opacity;
    background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.98),rgba(255,241,181,.90) 42%,rgba(255,188,80,.66) 72%,rgba(255,255,255,.22));
    border:2px solid rgba(255,255,255,.88); box-shadow:0 0 0 3px rgba(255,214,105,.22),0 0 24px rgba(255,221,115,.75),0 8px 20px rgba(40,50,70,.16);
    animation:bonusBob 1.55s ease-in-out infinite alternate;
  }
  .bonusToken .bonusIcon { font-size:34px; line-height:1; filter:drop-shadow(0 2px 2px rgba(50,50,60,.20)); }
  .bonusToken .bonusQuestion { position:absolute; right:-4px; bottom:-4px; width:24px; height:24px; display:grid; place-items:center; border-radius:50%; background:#fff; color:#8658bb; font:900 16px/1 system-ui; box-shadow:0 2px 7px rgba(30,30,50,.2); }
  @keyframes bonusBob { from{transform:translate3d(var(--x),calc(var(--y) - 4px),0) rotate(-4deg) scale(.97)} to{transform:translate3d(var(--x),calc(var(--y) + 5px),0) rotate(4deg) scale(1.04)} }
  .letterGlyph.magicNeeded { filter:drop-shadow(0 0 5px rgba(255,239,115,.95)) drop-shadow(0 0 13px rgba(255,208,70,.95)); -webkit-text-stroke:1px rgba(255,250,204,.88); }

  #bonusHud { z-index:42; left:16px; top:80px; max-width:min(560px,76vw); display:flex; flex-wrap:wrap; gap:6px; pointer-events:none; }
  .bonusBadge { padding:5px 9px; border-radius:999px; background:rgba(255,255,255,.84); border:1px solid rgba(255,255,255,.9); box-shadow:0 3px 12px rgba(37,49,70,.08); backdrop-filter:blur(7px); font:750 12px/1.1 system-ui,sans-serif; color:#5d6879; }
  .bonusBadge.starActive { font-size:15px; font-weight:950; background:rgba(255,247,183,.95); color:#8d6410; border-color:rgba(236,192,55,.72); box-shadow:0 0 18px rgba(255,211,76,.48); }
  #scorePill.doubleScore { border-color:rgba(235,183,36,.72); box-shadow:0 0 0 2px rgba(255,223,107,.28),0 0 28px rgba(255,205,61,.38); }
  #scorePill.doubleScore .label::after { content:' · ×2 ACTIF'; color:#b87900; font-weight:950; }
  .scoreBurst { position:absolute; z-index:55; pointer-events:none; font:950 clamp(30px,5vw,62px)/1 system-ui,sans-serif; color:#fff4a3; text-shadow:0 2px 0 #76561e,0 0 12px #fff,0 0 26px rgba(255,210,63,.92); transform:translate(-50%,-50%); white-space:nowrap; animation:scoreBurst 1.25s ease-out forwards; }
  @keyframes scoreBurst { 0%{opacity:0;transform:translate(-50%,-10%) scale(.55)} 16%{opacity:1;transform:translate(-50%,-50%) scale(1.18)} 62%{opacity:1;transform:translate(-50%,-95%) scale(1)} 100%{opacity:0;transform:translate(-50%,-150%) scale(.92)} }
  .drop.snow { filter:drop-shadow(0 0 5px rgba(215,242,255,.9)); opacity:.96; }
  #game.time-frozen #timePill { box-shadow:0 0 0 2px rgba(119,215,255,.38),0 0 26px rgba(102,207,255,.38); }


  #fairyAura { z-index:19; left:0; top:0; pointer-events:none; display:grid; place-items:start center; border-radius:50%; opacity:0; transition:opacity .16s ease; transform-origin:50% 50%; }
  #fairyAura.visible { opacity:1; }
  #fairyAura.bubble { border:3px solid rgba(180,235,255,.72); box-shadow:inset 0 0 22px rgba(205,245,255,.30),0 0 18px rgba(153,223,255,.50); background:radial-gradient(circle,rgba(218,247,255,.05),rgba(176,230,255,.10)); }
  #fairyAura .auraIcons { margin-top:-24px; font-size:31px; white-space:nowrap; filter:drop-shadow(0 2px 4px rgba(30,40,60,.25)); }

  .letterToken { position:absolute; left:0; top:0; z-index:6; pointer-events:none; will-change:transform,opacity; transform:translate3d(-1000px,-1000px,0); }
  .letterGlyph {
    display:block; font-weight:900; line-height:1; letter-spacing:-.06em;
    color:var(--letter-color,#8868c9);
    font-family:var(--letter-font,Georgia,serif);
    text-shadow:0 2px 0 rgba(255,255,255,.92),0 4px 12px rgba(70,79,100,.18);
    -webkit-text-stroke:.45px rgba(38,45,58,.18);
    animation:letterDance var(--dance,1.6s) ease-in-out infinite alternate;
    transform-origin:50% 55%;
  }
  @keyframes letterDance {
    0% { transform:translate3d(-2px,2px,0) rotate(-3deg) scale(.98); }
    40% { transform:translate3d(2px,-2px,0) rotate(2deg) scale(1.035); }
    72% { transform:translate3d(-1px,-3px,0) rotate(-1deg) scale(1.01); }
    100% { transform:translate3d(2px,2px,0) rotate(3deg) scale(1.045); }
  }
  .letterToken.chosen { z-index:11; }
  .letterToken.chosen .letterGlyph { animation:none; }

  #fairyIdle,#fairySpecial,#fairyLose,#fairyWin,#fairyImmo {
    position:absolute; left:0; top:0; width:150px; height:auto; pointer-events:none;
    z-index:20; will-change:transform,opacity; transform:translate3d(-1000px,-1000px,0);
    transform-origin:50% 44%; filter:drop-shadow(0 4px 4px rgba(60,45,35,.09));
  }
  #fairySpecial,#fairyLose,#fairyWin,#fairyImmo { opacity:0; }

  #wordBoard {
    position:absolute; z-index:9; top:16px; left:50%; transform:translateX(-50%);
    pointer-events:none; text-align:center; padding:10px 16px 12px; border-radius:18px; max-width:min(640px,82vw);
    background:rgba(255,255,255,.82); border:1px solid var(--line);
    backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px);
    box-shadow:0 8px 28px rgba(39,56,75,.06);
  }
  #wordLabel { display:block; text-transform:uppercase; letter-spacing:.13em; font-size:10px; color:var(--muted); margin-bottom:7px; font-weight:750; }
  #wordSlots { display:flex; gap:8px; justify-content:center; align-items:flex-end; }
  #clueBox { margin-top:9px; max-width:min(540px,76vw); display:flex; align-items:baseline; justify-content:center; gap:7px; color:#5c6c7d; font-size:13px; line-height:1.32; }
  #clueLabel { flex:0 0 auto; text-transform:uppercase; letter-spacing:.10em; font-size:9px; font-weight:850; color:#8794a3; }
  #clueText { font-weight:650; }
  .wordSlot {
    width:36px; height:42px; display:grid; place-items:center; border-bottom:3px solid rgba(58,72,89,.44);
    font:900 29px/1 Georgia,serif; color:#506070; transition:transform .18s ease,border-color .18s ease;
  }
  .wordSlot.filled { border-color:rgba(65,122,94,.55); transform:translateY(-2px); }
  .wordSlot.pulse { animation:slotPulse .36s ease-out; }
  @keyframes slotPulse { 0%{transform:scale(.75)} 65%{transform:scale(1.14)} 100%{transform:scale(1)} }

  #hud { position:absolute; z-index:40; top:16px; left:16px; display:flex; gap:8px; flex-wrap:wrap; pointer-events:none; }
  .pill { min-width:96px; padding:8px 11px 9px; border:1px solid var(--line); border-radius:14px; background:var(--glass); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); box-shadow:0 4px 18px rgba(36,48,64,.04); }
  .label { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.09em; color:var(--muted); margin-bottom:2px; }
  .value { font-weight:800; font-variant-numeric:tabular-nums; font-size:18px; line-height:1; }

  #feedback { position:absolute; z-index:45; top:96px; left:50%; transform:translateX(-50%); pointer-events:none; font-weight:850; font-size:17px; opacity:0; white-space:nowrap; text-shadow:0 2px 5px #fff; }
  #feedback.show { animation:feedbackPop .72s ease-out; }
  @keyframes feedbackPop { 0%{opacity:0;transform:translate(-50%,8px) scale(.9)} 20%{opacity:1;transform:translate(-50%,0) scale(1.06)} 80%{opacity:1} 100%{opacity:0;transform:translate(-50%,-12px) scale(1)} }

  #achievementLayer {
    position:absolute; z-index:54; left:50%; top:23%; width:min(560px,92vw); transform:translateX(-50%);
    display:grid; justify-items:center; gap:8px; pointer-events:none;
  }
  .achievementToast {
    --ach-accent:#bd8c79;
    width:min(520px,88vw); min-height:68px; display:grid; grid-template-columns:54px minmax(0,1fr); align-items:center; gap:12px;
    padding:10px 18px 10px 11px; border-radius:999px;
    background:linear-gradient(135deg,rgba(255,255,252,.96),rgba(250,244,232,.94));
    border:1px solid color-mix(in srgb,var(--ach-accent) 32%,rgba(255,255,255,.9));
    box-shadow:0 12px 34px rgba(62,55,46,.13),inset 0 1px rgba(255,255,255,.9);
    backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); overflow:hidden;
    animation:achievementToast 2.75s cubic-bezier(.22,.72,.22,1) both;
  }
  .achievementToast::after {
    content:""; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.55) 43%,transparent 63%);
    transform:translateX(-120%); animation:achievementShimmer 1.25s .28s ease-out both;
  }
  .achievementIcon {
    width:52px; height:52px; border-radius:50%; display:grid; place-items:center; font-size:31px; line-height:1;
    background:color-mix(in srgb,var(--ach-accent) 15%,#fff); border:1px solid color-mix(in srgb,var(--ach-accent) 30%,#fff);
    filter:drop-shadow(0 3px 5px rgba(80,66,50,.11));
    animation:achievementIconPop .72s cubic-bezier(.18,.89,.32,1.28) both;
  }
  .achievementCopy { min-width:0; color:#5d554a; }
  .achievementCopy strong { display:block; margin-bottom:2px; font:800 17px/1.16 Georgia,"Times New Roman",serif; color:#554b40; }
  .achievementCopy span { display:block; font:650 13px/1.3 system-ui,sans-serif; color:#756c60; }
  .achievementToast.heart{--ach-accent:#d58c98}.achievementToast.lightning{--ach-accent:#e6b34b}.achievementToast.caterpillar{--ach-accent:#92ae6f}.achievementToast.snow{--ach-accent:#90b7cf}.achievementToast.bell{--ach-accent:#c6a15f}
  #achievementSnow { position:absolute; inset:0; z-index:53; overflow:hidden; pointer-events:none; }
  .achievementFlake { position:absolute; top:-28px; color:rgba(255,255,255,.94); text-shadow:0 1px 5px rgba(88,126,153,.22); animation:achievementSnowFall var(--fall,2.3s) ease-in forwards; }
  @keyframes achievementToast { 0%{opacity:0;transform:translateY(18px) scale(.88)} 14%{opacity:1;transform:translateY(0) scale(1.035)} 74%{opacity:1;transform:translateY(-3px) scale(1)} 100%{opacity:0;transform:translateY(-24px) scale(.97)} }
  @keyframes achievementIconPop { 0%{transform:scale(.35) rotate(-14deg)} 70%{transform:scale(1.12) rotate(4deg)} 100%{transform:scale(1) rotate(0)} }
  @keyframes achievementShimmer { from{transform:translateX(-120%)} to{transform:translateX(150%)} }
  @keyframes achievementSnowFall { 0%{transform:translate3d(0,-18px,0) rotate(0deg);opacity:0} 12%{opacity:.95} 100%{transform:translate3d(var(--drift,20px),105vh,0) rotate(300deg);opacity:0} }
  @media(max-width:700px){ #achievementLayer{top:28%;}.achievementToast{grid-template-columns:46px minmax(0,1fr);min-height:60px;padding:8px 13px 8px 9px}.achievementIcon{width:44px;height:44px;font-size:27px}.achievementCopy strong{font-size:15px}.achievementCopy span{font-size:12px} }
  @media(prefers-reduced-motion:reduce){ .achievementToast,.achievementIcon,.achievementToast::after,.achievementFlake{animation-duration:.01ms !important;animation-iteration-count:1 !important;} }

  #state { position:absolute; inset:0; z-index:35; display:grid; place-items:center; pointer-events:none; padding:24px; }
  #card { max-width:560px; text-align:center; padding:22px 25px; border:1px solid var(--line); border-radius:22px; background:rgba(255,255,255,.93); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); box-shadow:0 14px 45px rgba(36,48,64,.08); transition:opacity .18s ease,transform .18s ease; }
  #card.hidden { opacity:0; transform:translateY(-6px) scale(.98); }
  #stateTitle { margin:0 0 7px; font-size:clamp(23px,3vw,34px); font-weight:850; letter-spacing:-.025em; }
  #stateText { margin:0; color:var(--muted); line-height:1.5; font-size:15px; }

  #flash { position:absolute; inset:0; pointer-events:none; z-index:30; opacity:0; background:rgba(128,178,222,.16); }
  #flash.hit { animation:hitflash .42s ease-out; }
  @keyframes hitflash { 0%{opacity:1} 100%{opacity:0} }


  .srOnly { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
  #introOverlay { position:absolute; inset:0; z-index:220; display:grid; place-items:center; overflow:hidden; background:linear-gradient(180deg,#dcecf6,#f6e9e3); opacity:1; transition:opacity .38s ease,transform .38s ease; }
  #introOverlay.leaving { opacity:0; transform:scale(1.012); pointer-events:none; }
  #introLanding { position:absolute; inset:0; display:grid; place-items:center; overflow:hidden; }
  #introImageButton { appearance:none; border:0; padding:0; margin:0; width:100vw; height:100vh; height:100dvh; display:flex; align-items:center; justify-content:center; overflow:hidden; background:transparent; cursor:pointer !important; }
  #introImageButton:focus-visible { outline:4px solid rgba(154,112,82,.38); outline-offset:-7px; }
  #introImage { display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; object-position:center; background:linear-gradient(180deg,#cfe6f6,#f7e7df); user-select:none; -webkit-user-drag:none; }
  #introVideoWrap { display:none; position:absolute; inset:0; background:#08090b; place-items:center; }
  #introOverlay.playing #introLanding { display:none; }
  #introOverlay.playing #introVideoWrap { display:grid; }
  #introVideo { display:block; width:100%; height:100%; object-fit:contain; background:#08090b; }
  #introSkipCorner { position:absolute; top:18px; right:18px; z-index:5; min-height:44px; padding:0 18px; border:1px solid rgba(255,255,255,.72); border-radius:14px; background:rgba(35,35,39,.66); color:#fff; font:800 13px/1 system-ui,sans-serif; box-shadow:0 5px 18px rgba(0,0,0,.22); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); cursor:pointer !important; }
  #introSkipCorner:hover { background:rgba(35,35,39,.84); }
  #introSkipCorner:focus-visible { outline:3px solid rgba(255,255,255,.75); outline-offset:3px; }

  #startOverlay { position:absolute; inset:0; z-index:100; display:grid; place-items:center; padding:24px; background:rgba(239,247,252,.62); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); }
  #startPanel { width:min(590px,92vw); text-align:center; padding:30px 28px; border:1px solid rgba(255,255,255,.7); border-radius:26px; background:rgba(255,255,255,.90); box-shadow:0 20px 60px rgba(46,61,81,.16); }
  #startPanel h1 { margin:0 0 10px; font-size:clamp(29px,5vw,46px); letter-spacing:-.04em; }
  #startPanel p { margin:0 auto 20px; max-width:500px; color:var(--muted); line-height:1.55; }
  #startButton { min-height:50px; border:0; border-radius:16px; padding:0 22px; background:#596f89; color:white; font:800 16px/1 inherit; cursor:pointer !important; box-shadow:0 8px 22px rgba(55,75,99,.18); }
  #startButton:focus-visible { outline:3px solid rgba(72,116,167,.35); outline-offset:3px; }
  #startAudioNote { margin-top:12px; font-size:12px; color:#8b97a5; }
  #startButton:disabled { opacity:.55; cursor:wait !important; filter:saturate(.65); }

  #clickNote { position:absolute; right:16px; bottom:14px; z-index:40; font-size:12px; color:#8b97a5; pointer-events:none; background:rgba(255,255,255,.72); padding:6px 9px; border-radius:10px; }


  /* Écran d'accueil de La Féerie des Mots */
  #startOverlay {
    overflow:auto; cursor:auto !important;
    background:
      radial-gradient(circle at 14% 18%, rgba(255,233,188,.52), rgba(255,233,188,0) 25%),
      radial-gradient(circle at 85% 20%, rgba(183,220,255,.40), rgba(183,220,255,0) 24%),
      radial-gradient(circle at 78% 82%, rgba(255,205,220,.22), rgba(255,205,220,0) 20%),
      linear-gradient(180deg,rgba(243,239,229,.82),rgba(229,238,247,.78));
  }
  #startOverlay * { cursor:auto !important; user-select:none; }
  #startPanel {
    width:min(1210px,95vw); max-height:94vh; overflow:auto; text-align:center;
    padding:28px 26px 26px; display:grid; grid-template-columns:1fr; position:relative;
    gap:20px; align-items:start;
    background:
      linear-gradient(180deg,rgba(255,254,251,.985),rgba(245,249,252,.955)),
      radial-gradient(circle at top left, rgba(255,231,196,.22), rgba(255,231,196,0) 35%);
    border:1px solid rgba(255,255,255,.94); border-radius:32px;
    box-shadow:0 26px 80px rgba(46,61,81,.16), inset 0 1px 0 rgba(255,255,255,.75), inset 0 0 0 1px rgba(214,194,175,.16);
    overflow:auto;
  }
  #startPanel::before,
  #startPanel::after {
    content:''; position:absolute; pointer-events:none; border-radius:50%; filter:blur(3px);
  }
  #startPanel::before {
    width:320px; height:320px; left:-110px; top:-80px;
    background:radial-gradient(circle,rgba(255,225,172,.42),rgba(255,225,172,0) 72%);
  }
  #startPanel::after {
    width:350px; height:350px; right:-120px; bottom:-130px;
    background:radial-gradient(circle,rgba(179,220,255,.36),rgba(179,220,255,0) 74%);
  }
  #panelGlow {
    position:absolute; inset:10px; pointer-events:none; border-radius:26px;
    border:1px solid rgba(255,255,255,.45); box-shadow:inset 0 0 0 1px rgba(164,189,210,.10);
  }
  #startDecor { position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:0; }
  .menuSpark {
    position:absolute; color:rgba(255,255,255,.95);
    text-shadow:0 0 10px rgba(255,245,201,.95), 0 0 18px rgba(166,215,255,.55);
    animation:menuTwinkle var(--dur,3.2s) ease-in-out infinite alternate;
    opacity:.9;
  }
  .menuSpark.s1 { left:5.5%; top:8%; font-size:20px; --dur:2.8s; }
  .menuSpark.s2 { left:31%; top:16%; font-size:14px; --dur:3.4s; }
  .menuSpark.s3 { left:93%; top:10%; font-size:18px; --dur:3.0s; }
  .menuSpark.s4 { left:88%; top:72%; font-size:16px; --dur:2.5s; }
  .menuSpark.s5 { left:10%; top:82%; font-size:13px; --dur:3.5s; }
  .menuSpark.s6 { left:58%; top:6%; font-size:15px; --dur:2.9s; }
  @keyframes menuTwinkle {
    from { transform:translateY(0) scale(.92) rotate(-4deg); opacity:.42; }
    to { transform:translateY(-4px) scale(1.12) rotate(4deg); opacity:1; }
  }
  #startLayout {
    width:100%; display:grid; grid-template-columns:minmax(300px,390px) minmax(0,1fr);
    gap:28px; align-items:stretch; position:relative; z-index:1;
  }
  #choiceVideoWrap {
    order:-1; position:relative; width:100%; max-width:370px; aspect-ratio:9 / 16;
    justify-self:center; align-self:center; overflow:hidden; padding:12px;
    border-radius:34px;
    background:linear-gradient(180deg,rgba(255,248,237,.98),rgba(233,244,252,.98));
    border:1px solid rgba(255,255,255,.96);
    box-shadow:0 22px 50px rgba(45,57,72,.20), inset 0 0 0 1px rgba(158,124,90,.14);
  }
  #choiceVideoWrap::before {
    content:'✦ Orage enchanté ✦';
    position:absolute; left:20px; right:20px; top:16px; z-index:2;
    padding:10px 12px; border-radius:999px;
    background:rgba(255,255,255,.78); color:#786557;
    font:800 12px/1 system-ui,sans-serif; letter-spacing:.16em; text-transform:uppercase;
    box-shadow:0 8px 18px rgba(62,76,93,.10); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  }
  #choiceVideoWrap::after {
    content:''; position:absolute; inset:12px; border-radius:24px; pointer-events:none;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.52), inset 0 0 28px rgba(255,255,255,.16);
  }
  #choiceVideo {
    display:block; width:100%; height:100%; object-fit:cover; background:#e9eef2;
    pointer-events:none; border-radius:24px; box-shadow:0 12px 32px rgba(53,65,80,.15);
  }
  #introSoundButton {
    position:absolute; right:18px; top:18px; z-index:4; width:48px; height:48px; padding:0;
    display:grid; place-items:center; border-radius:50%; border:1px solid rgba(255,255,255,.88);
    background:rgba(70,60,52,.72); color:#fff; box-shadow:0 5px 18px rgba(24,38,54,.24);
    backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); cursor:pointer !important;
    font:700 24px/1 system-ui,sans-serif; transition:transform .12s ease,background .12s ease;
  }
  #introSoundButton:hover { background:rgba(70,60,52,.88); transform:scale(1.045); }
  #introSoundButton:active { transform:scale(.96); }
  #introSoundButton:focus-visible { outline:3px solid rgba(158,124,90,.32); outline-offset:3px; }
  #startCopy { min-width:0; max-width:none; margin:0 auto; width:100%; text-align:left; position:relative; z-index:1; }
  #storyBadge {
    display:inline-flex; align-items:center; gap:8px; margin:0 0 12px; padding:9px 16px; border-radius:999px;
    background:linear-gradient(180deg,rgba(255,248,237,.98),rgba(252,240,221,.92));
    border:1px solid rgba(205,179,146,.34); box-shadow:0 8px 18px rgba(84,69,57,.07);
    color:#856958; font:800 12px/1 system-ui,sans-serif; letter-spacing:.14em; text-transform:uppercase;
  }
  #storyBadge::before { content:'✨'; font-size:14px; }
  #startCopy h1 {
    display:block; margin:0 0 14px; padding:20px 22px; border-radius:26px;
    background:linear-gradient(135deg,rgba(255,248,239,.995),rgba(239,247,252,.965));
    border:1px solid rgba(214,194,175,.40); box-shadow:0 14px 34px rgba(78,89,101,.09);
    color:#5a493f; font-size:clamp(28px,3.6vw,47px); line-height:1.12; letter-spacing:-.04em;
    text-wrap:balance;
  }
  #tagline {
    margin:0 0 16px; padding:14px 16px; max-width:980px; color:#6f6458;
    font:700 15px/1.65 Georgia,"Times New Roman",serif;
    background:linear-gradient(180deg,rgba(255,255,255,.74),rgba(251,246,240,.58));
    border:1px solid rgba(201,190,177,.22); border-radius:18px; box-shadow:0 8px 18px rgba(68,58,49,.04);
  }
  #rulesTitle,#levelTitle {
    margin:14px 0 10px; display:inline-flex; align-items:center; gap:8px; padding:9px 15px;
    border-radius:999px; background:rgba(255,251,245,.88); border:1px solid rgba(207,188,169,.28);
    box-shadow:0 5px 14px rgba(68,58,49,.05); font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:#7b6d62;
  }
  #rulesTitle::before { content:'☁️'; }
  #levelTitle::before { content:'🪄'; }
  #rules { margin:0 auto 10px; padding:0; color:#6d665f; line-height:1.48; font-size:14px; list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; max-width:1120px; }
  #rules li {
    background:linear-gradient(180deg,rgba(255,251,245,.96),rgba(252,247,241,.88));
    border:1px solid rgba(197,180,160,.26); border-radius:18px; padding:14px 15px 14px 16px;
    box-shadow:0 10px 20px rgba(68,58,49,.05); text-align:left; position:relative; overflow:hidden;
  }
  #rules li::before { content:'✦'; position:absolute; right:12px; top:8px; color:rgba(219,173,103,.36); font-size:15px; }
  #rules li strong { color:#56493f; }
  #difficultyChoices { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0 0 18px; }
  .difficultyButton {
    min-height:96px; border:1px solid rgba(138,127,117,.18); border-radius:20px; padding:13px 10px 12px;
    background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,245,240,.88)); color:var(--ink); text-align:center; font:inherit;
    box-shadow:0 9px 22px rgba(36,48,64,.05); cursor:pointer !important; position:relative; overflow:hidden;
    transition:border-color .14s ease, transform .14s ease, background .14s ease, box-shadow .14s ease;
  }
  .difficultyButton::before {
    content:''; position:absolute; left:0; right:0; top:0; height:8px;
    background:linear-gradient(90deg,rgba(255,214,143,.92),rgba(185,222,255,.92));
  }
  .difficultyButton:nth-child(2)::before { background:linear-gradient(90deg,rgba(176,221,255,.92),rgba(209,204,255,.92)); }
  .difficultyButton:nth-child(3)::before { background:linear-gradient(90deg,rgba(241,201,150,.92),rgba(242,174,174,.92)); }
  .difficultyButton:nth-child(4)::before { background:linear-gradient(90deg,rgba(203,165,231,.96),rgba(121,149,212,.96)); }
  .difficultyButton:hover { transform:translateY(-3px); box-shadow:0 14px 24px rgba(53,66,80,.09); }
  .difficultyButton strong { display:block; font-size:16px; margin-bottom:6px; color:#5d5248; }
  .difficultyButton span { display:block; font-size:11px; line-height:1.4; color:#7b817f; }
  .difficultyButton[aria-pressed="true"] {
    border-color:#9e7c5a; background:linear-gradient(180deg,#fffaf2,#fff2d7);
    box-shadow:inset 0 0 0 1px #9e7c5a, 0 14px 28px rgba(93,73,55,.09); transform:translateY(-1px);
  }
  .difficultyButton:focus-visible,#startButton:focus-visible { outline:3px solid rgba(158,124,90,.28); outline-offset:2px; }
  #startActions { display:flex; align-items:center; justify-content:flex-start; gap:12px; flex-wrap:wrap; }
  #startButton {
    min-width:220px; background:linear-gradient(180deg,#b98a6f,#976f5c); color:#fff;
    box-shadow:0 12px 28px rgba(110,81,63,.22); border:1px solid rgba(122,88,71,.18);
  }
  #startHallButton { min-width:145px; }
  #startHallButton, #startGuideButton {
    min-height:44px; border-radius:15px; border:1px solid rgba(123,135,146,.15);
    background:linear-gradient(180deg,#f9fbfc,#eef3f6); color:#5e7082; box-shadow:0 7px 16px rgba(61,76,92,.07);
  }
  #startGuideButton { min-width:170px; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
  #startGuideButton:hover, #startHallButton:hover { background:linear-gradient(180deg,#ffffff,#f3f7fa); }
  #startAudioNote {
    margin:2px 0 0; flex-basis:100%; min-width:0; max-width:860px; text-align:left; line-height:1.45;
    font-size:12px; color:#8c8075; padding:10px 12px; border-radius:14px;
    background:rgba(255,255,255,.58); border:1px solid rgba(204,194,181,.18);
  }
  .menuCredit {
    margin:14px 0 0 !important; color:#a09387 !important; font:italic 11px/1.35 Georgia,"Times New Roman",serif !important;
    letter-spacing:.02em; opacity:.92; text-align:left;
  }
  #difficultyHud { min-width:88px; }
  #fullscreenButton {
    position:absolute; right:16px; top:16px; z-index:120; display:none;
    min-height:42px; padding:0 14px; border:1px solid rgba(255,255,255,.75); border-radius:13px;
    background:rgba(40,61,82,.88); color:#fff; font:800 13px/1 inherit; cursor:pointer !important;
    box-shadow:0 6px 20px rgba(26,43,61,.20); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  }
  #fullscreenButton.visible { display:block; }

  @media (max-width:980px) {
    #startLayout { grid-template-columns:minmax(230px,300px) minmax(0,1fr); gap:18px; }
    #choiceVideoWrap { max-width:280px; border-radius:24px; }
    #startCopy h1 { font-size:clamp(24px,3.4vw,40px); }
    #rules { grid-template-columns:repeat(2,minmax(0,1fr)); }
  }

  @media (max-width:760px) {
    #startLayout { grid-template-columns:1fr; gap:14px; }
    #choiceVideoWrap { width:min(252px,72vw); max-width:252px; order:2; justify-self:center; }
    #startCopy { text-align:center; }
    #storyBadge, #rulesTitle, #levelTitle { margin-left:auto; margin-right:auto; }
    #startActions { justify-content:center; }
    #startAudioNote,.menuCredit { text-align:center; margin-left:auto; margin-right:auto; }
  }

  @media (max-width:980px) {
    #rules { grid-template-columns:repeat(2,minmax(0,1fr)); }
    #difficultyChoices { grid-template-columns:repeat(2,minmax(0,1fr)); }
  }

  @media (max-width:760px) {
    #authorCredit { bottom:8px; font-size:10px; padding:5px 9px; }
    #introSkipCorner { top:10px; right:10px; min-height:40px; padding:0 14px; }
    #startPanel { gap:12px; padding:12px; width:min(100vw,100vw); max-height:100vh; border-radius:0; }
    #panelGlow { display:none; }
    #startCopy h1 { padding:15px 14px; font-size:clamp(22px,7vw,31px); text-align:center; }
    #tagline { font-size:14px; text-align:center; }
    #rules { grid-template-columns:1fr; gap:8px; font-size:13px; }
    #difficultyChoices { gap:6px; }
    .difficultyButton { min-height:72px; padding:8px 5px; }
    .difficultyButton strong { font-size:13px; }
    .difficultyButton span { font-size:10px; }
    #startActions { gap:8px; }
    #startButton,#startHallButton,#startGuideButton { min-width:0; width:100%; }
    #startAudioNote { text-align:center; }
  }

  @media (max-width:700px) {
    #wordBoard { top:72px; padding:8px 12px 10px; }
    #wordSlots { gap:5px; }
    .wordSlot { width:clamp(25px,8vw,30px); height:36px; font-size:23px; }
    #hud { top:8px; left:8px; gap:5px; }
    .pill { min-width:79px; padding:6px 8px 7px; }
    .value { font-size:15px; }
    #feedback { top:123px; }
    #clickNote { right:8px; bottom:8px; font-size:10px; }
  }
  @media (prefers-reduced-motion:reduce) {
    .letterGlyph { animation:none; }
    #card { transition:none; }
  }

  body.ui-mode, body.ui-mode * { cursor:auto !important; }
  #timePill {
    min-width:228px; padding:8px 10px 9px; display:flex; align-items:center; gap:10px;
    background:linear-gradient(180deg, rgba(255,255,255,.93), rgba(246,250,253,.88));
  }
  #timeContent { min-width:126px; }
  #timePill .label { margin-bottom:4px; }
  #timeBig { font-weight:950; font-size:28px; line-height:1; font-variant-numeric:tabular-nums; letter-spacing:-.045em; color:#4b5d71; }
  #time { display:block; margin-top:3px; font-size:12px; color:#7d8b99; font-weight:700; }
  #timerHint { margin-top:4px; font-size:11px; color:#77899c; font-weight:650; max-width:154px; }
  #clepsydraWrap {
    position:relative; width:58px; height:92px; flex:0 0 auto;
    filter:drop-shadow(0 6px 14px rgba(53,67,88,.16));
  }
  #clepsydraSvg { width:100%; height:100%; display:block; overflow:visible; }
  .clepGold { fill:url(#goldGrad); stroke:rgba(124,88,45,.72); stroke-width:1.15; }
  .clepGlass { fill:url(#glassGrad); stroke:rgba(112,135,165,.44); stroke-width:1.15; }
  .clepWater { fill:url(#sandGrad); opacity:.96; }
  .clepHighlight { fill:none; stroke:rgba(255,255,255,.9); stroke-width:1.2; stroke-linecap:round; opacity:.82; }
  .clepStream { stroke:url(#sandGrad); stroke-width:3; stroke-linecap:round; opacity:.96; stroke-dasharray:2.5 3.2; animation:clepFlow .46s linear infinite; }
  .clepDrop { fill:#f4d367; opacity:.94; filter:url(#softGlow); animation:clepDrop .92s ease-in infinite; transform-origin:50% 50%; }
  .clepSparkle { fill:#fff7cb; filter:url(#softGlow); animation:clepTwinkle 1.5s ease-in-out infinite alternate; }
  #clepsydraWrap.urgent { animation:clepUrgent .68s ease-in-out infinite alternate; }
  #clepsydraWrap.critical { animation:clepCritical .38s ease-in-out infinite alternate; }
  @keyframes clepFlow { from{stroke-dashoffset:0} to{stroke-dashoffset:-11} }
  @keyframes clepDrop { 0%{transform:translateY(-2px) scale(.74);opacity:0} 20%{opacity:1} 100%{transform:translateY(12px) scale(1.05);opacity:0} }
  @keyframes clepTwinkle { from{opacity:.3;transform:scale(.75)} to{opacity:1;transform:scale(1.22)} }
  @keyframes clepUrgent { from{filter:drop-shadow(0 6px 14px rgba(53,67,88,.16))} to{filter:drop-shadow(0 0 16px rgba(244,188,76,.45))} }
  @keyframes clepCritical { from{transform:scale(1)} to{transform:scale(1.04)} }
  @media (max-width:760px) {
    #hud { max-width:calc(100vw - 16px); }
    #timePill { min-width:198px; gap:8px; padding:7px 9px 8px; }
    #clepsydraWrap { width:50px; height:79px; }
    #timeBig { font-size:24px; }
    #timerHint { max-width:126px; }
    #resultAnimWrap { min-height:200px; }
    .soundRow { grid-template-columns:1fr; }
    .soundVal { text-align:left; }
  }



  /* V25 — HUD harmonisé + vraies fenêtres modales */
  #hud {
    top:14px; left:14px; gap:7px; flex-wrap:nowrap; align-items:stretch;
  }
  #hud .pill {
    height:76px; min-width:106px; padding:9px 11px; display:flex; flex-direction:column; justify-content:center;
    border-radius:15px; background:rgba(255,255,255,.90); border:1px solid rgba(81,103,128,.13);
    box-shadow:0 5px 18px rgba(38,56,76,.055); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  }
  #hud .label { font-size:9px; letter-spacing:.095em; margin-bottom:6px; }
  #hud .value { font-size:20px; color:#43566d; }
  #difficultyHud { min-width:96px !important; }

  #timePill {
    width:172px; min-width:172px !important; height:76px !important; padding:6px 10px !important;
    flex-direction:row !important; align-items:center; justify-content:flex-start !important; gap:8px;
  }
  #timeContent { min-width:0; flex:1; display:flex; flex-direction:column; justify-content:center; }
  #timePill .label { margin:0 0 5px; }
  #timeBig { font-size:23px; line-height:1; min-width:0; text-align:left; color:#43566d; }
  #time { display:none !important; }
  #timerHint { display:none !important; }
  #clepsydraWrap { width:39px; height:62px; flex:0 0 39px; filter:drop-shadow(0 3px 5px rgba(53,67,88,.14)); }
  #clepsydraWrap.urgent { animation:clepUrgent .68s ease-in-out infinite alternate; }
  #clepsydraWrap.critical { animation:clepCritical .38s ease-in-out infinite alternate; }

  /* Le sablier est du verre transparent ; seules les masses jaunes bougent derrière les masques. */
  .clepGlass { fill:rgba(245,250,254,.28); stroke:rgba(94,119,148,.46); stroke-width:1.35; }
  .clepWater { fill:url(#sandGrad); opacity:.98; }
  .clepStream { stroke:url(#sandGrad); }
  .clepDrop { fill:#efc954; }
  .clepHighlight { opacity:.72; }
  .clepSparkle { opacity:.55; }

  #resultOverlay, #pauseOverlay, #hallOverlay, #nameOverlay {
    position:absolute; inset:0; z-index:160; display:none; place-items:center; padding:24px;
    background:rgba(25,42,61,.34); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px);
    pointer-events:auto; cursor:auto !important;
  }
  #nameOverlay { z-index:180; }
  #hallOverlay { z-index:175; }
  #resultOverlay.visible, #pauseOverlay.visible, #hallOverlay.visible, #nameOverlay.visible { display:grid; }
  #resultOverlay *, #pauseOverlay *, #hallOverlay *, #nameOverlay * { cursor:auto !important; }
  #resultText { white-space:pre-line; }

  /* V45 — Palmarès partagé PHP + séquence de fin corrigée + animation d’inscription. */
  #startHallButton { min-width:145px; }
  #startGuideButton { min-width:170px; background:#f3efe3; color:#65705e; border-color:rgba(101,112,94,.20); text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
  #startGuideButton:hover { background:#faf7ef; }
  #manualOverlay { position:absolute; inset:0; z-index:180; display:none; background:rgba(238,242,232,.84); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); padding:10px; }
  #manualOverlay.visible { display:block; }
  #manualPanel { position:relative; width:100%; height:100%; border-radius:22px; overflow:hidden; box-shadow:0 20px 70px rgba(55,50,42,.20); border:1px solid rgba(255,255,255,.72); background:#f8f3e8; }
  #manualFrame { width:100%; height:100%; border:0; display:block; background:#f8f3e8; }
  #manualClose { position:absolute; right:14px; top:12px; z-index:4; width:40px; height:40px; min-width:0; padding:0; display:grid; place-items:center; border-radius:50%; background:rgba(255,252,244,.68); color:#675a48; border:1px solid rgba(102,113,95,.18); box-shadow:0 4px 14px rgba(65,60,51,.10); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); font:800 18px/1 system-ui,sans-serif; cursor:pointer; opacity:.72; }
  #manualClose:hover { background:rgba(255,255,255,.94); opacity:1; transform:translateY(-1px); }
  @media(max-width:650px){ #manualOverlay{padding:0} #manualPanel{border-radius:0;border:0} #manualClose{right:9px;top:8px} }
  #hallPanel { width:min(1040px,96vw); max-height:92vh; }
  #namePanel { width:min(610px,94vw); text-align:center; }
  #hallPanel h2, #namePanel h2 { margin:0 0 7px; text-align:center; font-size:29px; color:#405268; }
  #hallIntro, #hallQualifyText { margin:0 0 14px; text-align:center; color:#718195; font-size:13px; line-height:1.45; }
  #hallStatus { min-height:18px; margin:-5px 0 10px; text-align:center; font:800 11px/1.3 system-ui,sans-serif; color:#5f7e69; }
  #hallStatus.offline { color:#a46b5e; }
  #hallLayout { display:grid; grid-template-columns:minmax(230px,330px) minmax(0,1fr); gap:24px; align-items:start; }
  #hallArtWrap { display:flex; align-items:flex-start; justify-content:center; min-width:0; }
  #hallArt { display:block; width:100%; max-width:320px; max-height:65vh; object-fit:contain; border-radius:20px; filter:drop-shadow(0 12px 25px rgba(63,70,75,.10)); }
  #hallRanking { min-width:0; }
  #palmaresArt { display:block; width:min(400px,76vw); max-height:43vh; object-fit:contain; margin:4px auto 14px; border-radius:20px; }
  #hallNameLabel { display:block; margin:4px 0 7px; font-weight:850; color:#53677d; }
  #hallNameInput { width:min(340px,100%); min-height:46px; padding:0 14px; border:1px solid rgba(75,96,120,.24); border-radius:13px; background:#fff; color:#405268; font:800 17px/1 system-ui,sans-serif; text-align:center; outline:none; }
  #hallNameInput:focus { border-color:#6d89a8; box-shadow:0 0 0 3px rgba(92,124,158,.13); }
  #hallTabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin:0 0 13px; }
  .hallTab { min-height:40px; padding:6px 7px; border:1px solid rgba(75,96,120,.14); border-radius:11px; background:#f5f8fa; color:#60738a; font:800 12px/1.15 system-ui,sans-serif; }
  .hallTab.active { background:#5d7590; color:white; border-color:#5d7590; }
  #hallHeader, .hallRow { display:grid; grid-template-columns:46px minmax(110px,1fr) 72px 110px 92px; gap:8px; align-items:center; }
  #hallHeader { padding:0 10px 7px; color:#8a97a6; font:800 10px/1.1 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.05em; }
  #hallRows { border:1px solid rgba(75,96,120,.12); border-radius:14px; overflow:hidden; background:#fbfdfe; }
  .hallRow { min-height:40px; padding:6px 10px; border-top:1px solid rgba(75,96,120,.09); color:#53677d; font-size:12px; }
  .hallRow:first-child { border-top:0; }
  .hallRow.highlight { background:#fff7d8; }
  .hallRank { font-weight:950; text-align:center; }
  .hallPlayer { font-weight:850; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .hallScore { font-weight:900; font-variant-numeric:tabular-nums; text-align:right; }
  .hallRound, .hallDate { text-align:center; color:#7a8999; }
  .hallEmpty { padding:28px 14px; text-align:center; color:#8995a3; font-size:13px; }
  #hallSearchBox { margin-top:14px; padding:12px; border:1px solid rgba(75,96,120,.12); border-radius:14px; background:#f8fafc; }
  #hallSearchTitle { margin:0 0 8px; font:850 12px/1.2 system-ui,sans-serif; color:#5d7086; }
  #hallSearchControls { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; }
  #hallSearchInput { min-height:40px; padding:0 11px; border:1px solid rgba(75,96,120,.2); border-radius:10px; background:#fff; color:#405268; font:750 13px/1 system-ui,sans-serif; outline:none; }
  #hallSearchInput:focus { border-color:#6d89a8; box-shadow:0 0 0 3px rgba(92,124,158,.10); }
  #hallSearchResults { margin-top:8px; max-height:170px; overflow:auto; }
  .searchResult { display:grid; grid-template-columns:minmax(90px,1fr) 92px 88px; gap:8px; padding:7px 8px; border-top:1px solid rgba(75,96,120,.08); font-size:11px; color:#617389; }
  .searchResult:first-child { border-top:0; }
  .searchResult strong { color:#465b72; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .searchResult span:nth-child(2) { text-align:right; font-weight:850; }
  .searchResult span:nth-child(3) { text-align:right; }
  @media (max-width:760px) {
    #hallLayout { grid-template-columns:1fr; gap:12px; }
    #hallArt { max-width:230px; max-height:28vh; }
    #hallTabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
    #hallHeader, .hallRow { grid-template-columns:38px minmax(90px,1fr) 58px 86px; }
    #hallHeader span:last-child, .hallRow .hallDate { display:none; }
    #palmaresArt { max-height:34vh; }
  }

  /* V36 — La Danse des Lettres : ciel fixe, aucune pluie, aucun bonus. */
  #game.dance-mode {
    background:#bfe8ff url('ciel_5_arc_en_ciel.webp') center center / cover no-repeat;
  }
  #game.dance-mode::before {
    background:linear-gradient(to bottom,rgba(255,255,255,.05),rgba(255,255,255,.18));
  }
  #game.dance-mode #rain,
  #game.dance-mode #bonuses,
  #game.dance-mode #bonusHud { display:none !important; }
  #game.dance-mode .letterGlyph {
    animation-name:celestialLetterDance;
    animation-timing-function:ease-in-out;
  }
  @keyframes celestialLetterDance {
    0%   { transform:rotate(-8deg) scale(.96); }
    24%  { transform:rotate(5deg) scale(1.08); }
    51%  { transform:rotate(-3deg) scale(1.01); }
    76%  { transform:rotate(9deg) scale(1.10); }
    100% { transform:rotate(-6deg) scale(.98); }
  }
  .overlayPanel {
    width:min(500px,92vw); max-height:min(720px,90vh); overflow:auto;
    padding:25px 28px 24px; border-radius:24px; background:rgba(255,255,255,.965);
    border:1px solid rgba(255,255,255,.9); box-shadow:0 24px 70px rgba(24,37,54,.28);
    color:#405268;
  }
  #pausePanel { width:min(440px,90vw); }
  #pausePanel h2, #resultPanel h2 {
    margin:0 0 7px; text-align:center; font-size:26px; letter-spacing:-.025em; color:#405268;
  }
  #pausePanel > p, #resultText {
    margin:0 0 20px; text-align:center; color:#768596; line-height:1.45; font-size:13px;
  }
  .soundRow {
    display:grid; grid-template-columns:82px 1fr 48px; align-items:center; gap:10px;
    padding:10px 0; border-top:1px solid rgba(74,94,116,.10);
  }
  .soundRow:first-of-type { border-top:0; }
  .soundRow label { font-weight:750; font-size:13px; color:#53677d; }
  .soundRow input[type="range"] { width:100%; accent-color:#6885a4; }
  .soundVal { text-align:right; font-size:12px; font-weight:800; color:#718299; font-variant-numeric:tabular-nums; }
  #pauseActions, .overlayActions {
    display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin-top:20px;
  }
  .uiButton {
    appearance:none; border:1px solid rgba(75,96,120,.13); border-radius:13px; min-height:42px; padding:0 17px;
    background:#f2f6f9; color:#4b6077; font:800 13px/1 system-ui,sans-serif; box-shadow:0 4px 12px rgba(42,57,75,.07);
  }
  .uiButton.primary { background:#5d7590; color:#fff; border-color:#5d7590; }
  .uiButton:hover { filter:brightness(.985); }
  .uiButton:active { transform:translateY(1px); }
  #resultAnimWrap { min-height:245px; display:grid; place-items:center; margin:4px 0 10px; }
  #resultAnim { display:block; width:min(250px,55vw); height:auto; filter:drop-shadow(0 8px 15px rgba(42,54,70,.15)); }

  @media (max-width:760px) {
    #hud { top:8px; left:8px; right:8px; gap:5px; flex-wrap:wrap; }
    #hud .pill { height:62px; min-width:82px; padding:6px 8px; }
    #hud .value { font-size:16px; }
    #timePill { width:150px; min-width:150px !important; height:62px !important; padding:5px 7px !important; }
    #clepsydraWrap { width:31px; height:50px; flex-basis:31px; }
    #timeBig { font-size:19px; }
    .overlayPanel { padding:22px 20px; }
    .soundRow { grid-template-columns:72px 1fr 42px; gap:7px; }
  }


  /* V71 — intégration de la maquette illustrée validée */
  #startOverlay{
    padding:0 !important;
    overflow:hidden !important;
    background:rgba(241,246,248,.68) !important;
    backdrop-filter:blur(2px) !important;
    -webkit-backdrop-filter:blur(2px) !important;
  }
  #startPanel{
    width:min(96vw, calc(96vh * 1672 / 941)) !important;
    max-width:1672px !important;
    aspect-ratio:1672 / 941 !important;
    max-height:96vh !important;
    height:auto !important;
    padding:0 !important;
    display:block !important;
    overflow:hidden !important;
    border:none !important;
    border-radius:24px !important;
    background:transparent !important;
    box-shadow:0 18px 44px rgba(52,65,78,.16) !important;
    position:relative !important;
  }
  #startPanel::before{
    content:'' !important;
    position:absolute !important;
    inset:0 !important;
    background:none !important;
    z-index:2 !important;
    pointer-events:none !important;
  }
  #startPanel::after,
  #startDecor,
  #panelGlow,
  #storyBadge,
  #tagline,
  #rulesTitle,
  #rules,
  #levelTitle,
  .menuCredit,
  #startAudioNote{
    display:none !important;
  }
  #startLayout{
    display:block !important;
    width:100% !important;
    height:100% !important;
  }
  #startCopy{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    z-index:3 !important;
    margin:0 !important;
    padding:0 !important;
  }
  #startCopy h1{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    clip:rect(0 0 0 0) !important;
    clip-path:inset(50%) !important;
    white-space:nowrap !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
  }
  #choiceVideoWrap{
    position:absolute !important;
    left:3.7% !important;
    top:8.7% !important;
    width:25.4% !important;
    height:auto !important;
    aspect-ratio:9 / 16 !important;
    max-width:none !important;
    z-index:1 !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
    border:none !important;
    border-radius:18px !important;
    background:#111 !important;
    box-shadow:none !important;
  }
  #choiceVideoWrap::before,
  #choiceVideoWrap::after{
    content:none !important;
    display:none !important;
  }
  #choiceVideo{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    border-radius:18px !important;
    box-shadow:none !important;
    background:#111 !important;
  }
  #difficultyChoices{
    position:absolute !important;
    left:49.4% !important;
    top:46.4% !important;
    width:45.4% !important;
    height:11.2% !important;
    margin:0 !important;
    display:grid !important;
    grid-template-columns:repeat(4, 1fr) !important;
    gap:1.1% !important;
    z-index:4 !important;
  }
  .difficultyButton{
    min-height:0 !important;
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:none !important;
    border-radius:999px !important;
    background:transparent !important;
    box-shadow:none !important;
    cursor:pointer !important;
    position:relative !important;
  }
  .difficultyButton,
  .difficultyButton *{
    font-size:0 !important;
    line-height:0 !important;
    color:transparent !important;
  }
  .difficultyButton[aria-pressed="true"]{
    background:rgba(255,255,255,.12) !important;
    box-shadow:0 0 0 3px rgba(88,92,60,.28), inset 0 0 0 2px rgba(255,255,255,.36) !important;
  }
  .difficultyButton:hover{
    background:rgba(255,255,255,.08) !important;
    transform:none !important;
  }
  #startActions{
    position:absolute !important;
    left:34.3% !important;
    top:78.9% !important;
    width:62.9% !important;
    height:12.2% !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    z-index:4 !important;
  }
  #startButton,
  #startHallButton,
  #startGuideButton{
    position:absolute !important;
    top:0 !important;
    height:73% !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:none !important;
    border-radius:999px !important;
    background:transparent !important;
    box-shadow:none !important;
    color:transparent !important;
    font-size:0 !important;
    line-height:0 !important;
    text-decoration:none !important;
    cursor:pointer !important;
  }
  #startButton{ left:0 !important; width:43.2% !important; }
  #startHallButton{ left:46.3% !important; width:24.8% !important; }
  #startGuideButton{ left:74.0% !important; width:25.2% !important; display:block !important; }
  #startButton:hover,
  #startHallButton:hover,
  #startGuideButton:hover,
  .difficultyButton:hover{
    filter:brightness(1.02) !important;
  }
  #startButton:focus-visible,
  #startHallButton:focus-visible,
  #startGuideButton:focus-visible,
  .difficultyButton:focus-visible{
    outline:3px solid rgba(90,118,72,.38) !important;
    outline-offset:2px !important;
  }
  #startButton:disabled{
    opacity:.55 !important;
    filter:grayscale(.1) !important;
  }
  #introSoundButton{
    position:absolute !important;
    right:1.2% !important;
    top:1.5% !important;
    z-index:5 !important;
    width:42px !important;
    height:42px !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.72) !important;
    color:#5c4d43 !important;
    box-shadow:0 4px 14px rgba(61,73,84,.12) !important;
  }
  @media (max-width: 1100px){
    #startPanel{ width:min(98vw, calc(94vh * 1672 / 941)) !important; }
    #introSoundButton{ width:38px !important; height:38px !important; }
  }


  /* V72 — correction de l’intégration desktop */
  #startOverlay{
    padding:0 !important;
    overflow:hidden !important;
    background:rgba(241,246,248,.38) !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  #startPanel{
    width:min(96vw, calc(96vh * 1672 / 941)) !important;
    max-width:1672px !important;
    aspect-ratio:1672 / 941 !important;
    max-height:96vh !important;
    height:auto !important;
    padding:0 !important;
    display:block !important;
    overflow:hidden !important;
    border:none !important;
    border-radius:22px !important;
    background:none !important;
    box-shadow:0 14px 34px rgba(52,65,78,.12) !important;
    position:relative !important;
  }
  #startPanel::before,
  #startPanel::after,
  #startDecor,
  #panelGlow,
  #storyBadge,
  #tagline,
  #rulesTitle,
  #rules,
  #levelTitle,
  .menuCredit,
  #startAudioNote{
    display:none !important;
    content:none !important;
  }
  #startArtwork{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    display:block !important;
    z-index:2 !important;
    pointer-events:none !important;
    user-select:none !important;
  }
  #startLayout{
    display:block !important;
    width:100% !important;
    height:100% !important;
  }
  #startCopy{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    z-index:3 !important;
    margin:0 !important;
    padding:0 !important;
  }
  #startCopy h1{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    clip:rect(0 0 0 0) !important;
    clip-path:inset(50%) !important;
    white-space:nowrap !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    background:none !important;
    box-shadow:none !important;
  }
  #choiceVideoWrap{
    position:absolute !important;
    left:5.1% !important;
    top:8.7% !important;
    width:21.8% !important;
    height:80.2% !important;
    aspect-ratio:auto !important;
    max-width:none !important;
    z-index:1 !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
    border:none !important;
    border-radius:16px !important;
    background:#000 !important;
    box-shadow:none !important;
  }
  #choiceVideoWrap::before,
  #choiceVideoWrap::after{
    content:none !important;
    display:none !important;
  }
  #choiceVideo{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    border-radius:16px !important;
    box-shadow:none !important;
    background:#000 !important;
  }
  #difficultyChoices{
    position:absolute !important;
    left:49.2% !important;
    top:46.0% !important;
    width:45.7% !important;
    height:11.7% !important;
    margin:0 !important;
    display:grid !important;
    grid-template-columns:repeat(4, 1fr) !important;
    gap:1.0% !important;
    z-index:4 !important;
  }
  .difficultyButton{
    min-height:0 !important;
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:none !important;
    border-radius:999px !important;
    background:transparent !important;
    box-shadow:none !important;
    cursor:pointer !important;
    position:relative !important;
    transform:none !important;
  }
  .difficultyButton,
  .difficultyButton *{
    font-size:0 !important;
    line-height:0 !important;
    color:transparent !important;
  }
  .difficultyButton[aria-pressed="true"]{
    background:rgba(255,255,255,.10) !important;
    box-shadow:0 0 0 3px rgba(88,92,60,.25), inset 0 0 0 2px rgba(255,255,255,.32) !important;
  }
  #startActions{
    position:absolute !important;
    left:34.4% !important;
    top:79.0% !important;
    width:62.9% !important;
    height:11.8% !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    z-index:4 !important;
  }
  #startButton,
  #startHallButton,
  #startGuideButton{
    position:absolute !important;
    top:0 !important;
    height:73.5% !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:none !important;
    border-radius:999px !important;
    background:transparent !important;
    box-shadow:none !important;
    color:transparent !important;
    font-size:0 !important;
    line-height:0 !important;
    text-decoration:none !important;
    cursor:pointer !important;
    display:block !important;
  }
  #startButton{ left:0 !important; width:43.1% !important; }
  #startHallButton{ left:46.2% !important; width:24.8% !important; }
  #startGuideButton{ left:74.0% !important; width:25.2% !important; }
  #startButton:hover,
  #startHallButton:hover,
  #startGuideButton:hover,
  .difficultyButton:hover{ filter:brightness(1.03) !important; }
  #startButton:focus-visible,
  #startHallButton:focus-visible,
  #startGuideButton:focus-visible,
  .difficultyButton:focus-visible{
    outline:3px solid rgba(90,118,72,.38) !important;
    outline-offset:2px !important;
  }
  #startButton:disabled{ opacity:.55 !important; filter:grayscale(.1) !important; }
  #introSoundButton{
    position:absolute !important;
    right:1.2% !important;
    top:1.6% !important;
    z-index:5 !important;
    width:42px !important;
    height:42px !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.76) !important;
    color:#5c4d43 !important;
    box-shadow:0 4px 12px rgba(61,73,84,.10) !important;
  }
  @media (max-width:1100px){
    #startPanel{ width:min(98vw, calc(94vh * 1672 / 941)) !important; }
    #introSoundButton{ width:38px !important; height:38px !important; }
  }


  /* V73 — plein écran desktop + vidéo +5 % + niveaux réellement interactifs */
  #startOverlay{
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    padding:0 !important;
    margin:0 !important;
    place-items:stretch !important;
    overflow:hidden !important;
    background:#f2f5ef !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  #startPanel{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:none !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    overflow:hidden !important;
    border:0 !important;
    border-radius:0 !important;
    background:#f4f5ee !important;
    box-shadow:none !important;
  }
  #startPanel::before,
  #startPanel::after,
  #startDecor,
  #panelGlow,
  #storyBadge,
  #tagline,
  #rulesTitle,
  #rules,
  #levelTitle,
  .menuCredit,
  #startAudioNote{
    display:none !important;
    content:none !important;
  }
  #startArtwork{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:fill !important;
    display:block !important;
    z-index:2 !important;
    pointer-events:none !important;
    user-select:none !important;
    -webkit-user-drag:none !important;
  }
  #startLayout{
    position:absolute !important;
    inset:0 !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    padding:0 !important;
    z-index:1 !important;
  }
  #startCopy{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    z-index:3 !important;
    margin:0 !important;
    padding:0 !important;
    pointer-events:none !important;
  }
  #startCopy h1{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    clip:rect(0 0 0 0) !important;
    clip-path:inset(50%) !important;
    white-space:nowrap !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    background:none !important;
    box-shadow:none !important;
  }
  /* V72 : x=5.1%, y=8.7%, l=21.8%, h=80.2%.
     V73 : agrandissement relatif de 5% autour du même centre. */
  #choiceVideoWrap{
    position:absolute !important;
    left:4.555% !important;
    top:6.695% !important;
    width:22.89% !important;
    height:84.21% !important;
    aspect-ratio:auto !important;
    max-width:none !important;
    z-index:1 !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
    border:0 !important;
    border-radius:16px !important;
    background:#111 !important;
    box-shadow:none !important;
    pointer-events:none !important;
  }
  #choiceVideoWrap::before,
  #choiceVideoWrap::after{
    content:none !important;
    display:none !important;
  }
  #choiceVideo{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    border-radius:16px !important;
    background:#111 !important;
    box-shadow:none !important;
    pointer-events:none !important;
  }
  #difficultyChoices{
    position:absolute !important;
    left:49.2% !important;
    top:45.8% !important;
    width:45.7% !important;
    height:12.0% !important;
    margin:0 !important;
    padding:0 !important;
    display:grid !important;
    grid-template-columns:repeat(4,1fr) !important;
    gap:1% !important;
    z-index:20 !important;
    pointer-events:auto !important;
  }
  .difficultyButton{
    position:relative !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:999px !important;
    background:transparent !important;
    box-shadow:none !important;
    transform:none !important;
    cursor:pointer !important;
    pointer-events:auto !important;
    overflow:visible !important;
  }
  .difficultyButton::before{ content:none !important; display:none !important; }
  .difficultyButton,
  .difficultyButton *{
    font-size:0 !important;
    line-height:0 !important;
    color:transparent !important;
  }
  .difficultyButton[aria-pressed="true"]{
    background:rgba(255,255,255,.18) !important;
    box-shadow:0 0 0 4px rgba(91,111,72,.48), 0 0 18px rgba(255,255,255,.7), inset 0 0 0 2px rgba(255,255,255,.50) !important;
  }
  .difficultyButton[aria-pressed="true"]::after{
    content:'✓' !important;
    display:grid !important;
    place-items:center !important;
    position:absolute !important;
    right:6% !important;
    top:-12% !important;
    width:26px !important;
    height:26px !important;
    border-radius:50% !important;
    background:rgba(255,255,255,.92) !important;
    color:#61724d !important;
    font:900 17px/1 system-ui,sans-serif !important;
    box-shadow:0 3px 10px rgba(54,70,47,.18) !important;
  }
  #startActions{
    position:absolute !important;
    left:34.3% !important;
    top:78.7% !important;
    width:63.0% !important;
    height:12.3% !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    z-index:20 !important;
    pointer-events:none !important;
  }
  #startButton,
  #startHallButton,
  #startGuideButton{
    position:absolute !important;
    top:0 !important;
    height:74% !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border-radius:999px !important;
    cursor:pointer !important;
    pointer-events:auto !important;
  }
  #startButton{
    left:0 !important;
    width:43.2% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    border:1px solid rgba(96,111,73,.30) !important;
    background:rgba(226,233,202,.90) !important;
    color:#554b42 !important;
    font:800 clamp(15px,1.55vw,27px)/1 Georgia,'Times New Roman',serif !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.72), 0 5px 14px rgba(77,83,61,.10) !important;
    text-shadow:0 1px 0 rgba(255,255,255,.65) !important;
  }
  #startHallButton{
    left:46.3% !important; width:24.8% !important;
    border:0 !important; background:transparent !important; box-shadow:none !important;
    color:transparent !important; font-size:0 !important;
  }
  #startGuideButton{
    left:74.0% !important; width:25.2% !important; display:block !important;
    border:0 !important; background:transparent !important; box-shadow:none !important;
    color:transparent !important; font-size:0 !important; text-decoration:none !important;
  }
  #startButton:hover{ filter:brightness(1.035) !important; }
  #startHallButton:hover,
  #startGuideButton:hover{ background:rgba(255,255,255,.10) !important; }
  #startButton:focus-visible,
  #startHallButton:focus-visible,
  #startGuideButton:focus-visible,
  .difficultyButton:focus-visible{
    outline:4px solid rgba(91,111,72,.42) !important;
    outline-offset:2px !important;
  }
  #startButton:disabled{ opacity:.55 !important; filter:grayscale(.1) !important; }
  #introSoundButton{
    position:absolute !important;
    right:1.0% !important;
    top:1.4% !important;
    z-index:30 !important;
    width:42px !important;
    height:42px !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.80) !important;
    color:#5c4d43 !important;
    box-shadow:0 4px 12px rgba(61,73,84,.12) !important;
    pointer-events:auto !important;
  }


  /* V74 — correctif définitif des zones cliquables de difficulté */
  #startLayout{
    z-index:auto !important;
    pointer-events:none !important;
  }
  #choiceVideoWrap{
    z-index:0 !important;
    pointer-events:none !important;
  }
  #startArtwork{
    z-index:1 !important;
    pointer-events:none !important;
  }
  #startCopy{
    z-index:2 !important;
    pointer-events:auto !important;
  }
  #difficultyChoices{
    z-index:50 !important;
    pointer-events:auto !important;
    isolation:isolate !important;
  }
  .difficultyButton{
    z-index:51 !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
  }
  #startActions{
    z-index:50 !important;
    pointer-events:none !important;
  }
  #startButton,#startHallButton,#startGuideButton{
    z-index:51 !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
  }



  /* V75 — boutons plus discrets pour préserver l’illustration */
  #difficultyChoices{
    left:49.5% !important;
    top:46.3% !important;
    width:44.8% !important;
    height:9.6% !important;
    gap:0.6% !important;
  }
  .difficultyButton{
    justify-self:center !important;
    align-self:center !important;
    width:88% !important;
    height:76% !important;
    background:transparent !important;
    box-shadow:none !important;
    border-radius:999px !important;
  }
  .difficultyButton[aria-pressed="true"]{
    background:transparent !important;
    box-shadow:0 0 0 2px rgba(104,123,80,.40), 0 0 8px rgba(255,255,255,.45) !important;
  }
  .difficultyButton[aria-pressed="true"]::after{
    right:7% !important;
    top:-8% !important;
    width:20px !important;
    height:20px !important;
    font:900 13px/1 system-ui,sans-serif !important;
    box-shadow:0 2px 7px rgba(54,70,47,.14) !important;
  }
  .difficultyButton:hover{
    background:transparent !important;
    filter:none !important;
    box-shadow:0 0 0 2px rgba(104,123,80,.22) !important;
  }
  #startActions{
    left:35.0% !important;
    top:79.7% !important;
    width:61.2% !important;
    height:9.7% !important;
  }
  #startButton,
  #startHallButton,
  #startGuideButton{
    top:10% !important;
    height:58% !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    color:transparent !important;
    text-shadow:none !important;
    font-size:0 !important;
    line-height:0 !important;
  }
  #startButton{ left:1.0% !important; width:39.5% !important; }
  #startHallButton{ left:47.5% !important; width:22.1% !important; }
  #startGuideButton{ left:75.3% !important; width:22.6% !important; }
  #startButton:hover,
  #startHallButton:hover,
  #startGuideButton:hover{
    background:transparent !important;
    filter:none !important;
    box-shadow:0 0 0 2px rgba(104,123,80,.18) !important;
  }



  /* V76 — finition millimétrique des zones interactives */
  #difficultyChoices{
    left:49.15% !important;
    top:44.85% !important;
    width:45.55% !important;
    height:10.55% !important;
    display:grid !important;
    grid-template-columns:repeat(4,1fr) !important;
    gap:.55% !important;
    pointer-events:none !important;
  }
  .difficultyButton{
    width:90% !important;
    height:72% !important;
    place-self:center !important;
    border:0 !important;
    border-radius:999px !important;
    background:transparent !important;
    box-shadow:none !important;
    outline:none !important;
    pointer-events:auto !important;
    overflow:visible !important;
  }
  .difficultyButton::before{
    content:none !important;
    display:none !important;
  }
  .difficultyButton[aria-pressed="true"]{
    background:transparent !important;
    box-shadow:inset 0 0 0 2px rgba(91,111,72,.40) !important;
  }
  .difficultyButton[aria-pressed="true"]::after{
    content:'' !important;
    display:block !important;
    position:absolute !important;
    width:8px !important;
    height:8px !important;
    right:8% !important;
    top:8% !important;
    border-radius:50% !important;
    background:rgba(91,111,72,.72) !important;
    box-shadow:0 0 0 2px rgba(255,255,255,.78) !important;
  }
  .difficultyButton:hover{
    background:transparent !important;
    box-shadow:inset 0 0 0 1px rgba(91,111,72,.25) !important;
    filter:none !important;
  }
  .difficultyButton[aria-pressed="true"]:hover{
    box-shadow:inset 0 0 0 2px rgba(91,111,72,.44) !important;
  }

  #startActions{
    left:34.15% !important;
    top:78.65% !important;
    width:63.15% !important;
    height:11.55% !important;
    pointer-events:none !important;
  }
  #startButton,
  #startHallButton,
  #startGuideButton{
    top:12% !important;
    height:62% !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    color:transparent !important;
    text-shadow:none !important;
    font-size:0 !important;
    line-height:0 !important;
    pointer-events:auto !important;
  }
  #startButton{ left:1.2% !important; width:40.0% !important; }
  #startHallButton{ left:47.25% !important; width:22.65% !important; }
  #startGuideButton{ left:74.65% !important; width:23.25% !important; }
  #startButton:hover,
  #startHallButton:hover,
  #startGuideButton:hover{
    background:transparent !important;
    box-shadow:inset 0 0 0 1px rgba(91,111,72,.20) !important;
    filter:none !important;
  }
  #startButton:focus-visible,
  #startHallButton:focus-visible,
  #startGuideButton:focus-visible,
  .difficultyButton:focus-visible{
    outline:2px solid rgba(91,111,72,.48) !important;
    outline-offset:2px !important;
  }



  /* V78 — changement d’état par échange d’image, sans contour visible */
  .difficultyButton,
  .difficultyButton:hover,
  .difficultyButton[aria-pressed="true"],
  .difficultyButton:focus,
  .difficultyButton:focus-visible,
  #startButton,
  #startButton:hover,
  #startButton:focus,
  #startButton:focus-visible,
  #startHallButton,
  #startHallButton:hover,
  #startHallButton:focus,
  #startHallButton:focus-visible,
  #startGuideButton,
  #startGuideButton:hover,
  #startGuideButton:focus,
  #startGuideButton:focus-visible {
    background:transparent !important;
    box-shadow:none !important;
    outline:none !important;
    border:none !important;
    filter:none !important;
  }
  .difficultyButton::before,
  .difficultyButton::after{ content:none !important; display:none !important; }



  /* V80 — hotspots exacts et totalement invisibles */
  #difficultyChoices{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    pointer-events:none !important;
    z-index:50 !important;
  }
  .difficultyButton{
    position:absolute !important;
    top:44.7% !important;
    height:10.5% !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:22px !important;
    background:transparent !important;
    box-shadow:none !important;
    outline:none !important;
    filter:none !important;
    transform:none !important;
    cursor:pointer !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
  }
  .difficultyButton:nth-child(1){ left:49.7% !important; width:10.0% !important; }
  .difficultyButton:nth-child(2){ left:60.2% !important; width:10.4% !important; }
  .difficultyButton:nth-child(3){ left:71.2% !important; width:10.8% !important; }
  .difficultyButton:nth-child(4){ left:82.4% !important; width:11.3% !important; }
  .difficultyButton,
  .difficultyButton:hover,
  .difficultyButton:active,
  .difficultyButton:focus,
  .difficultyButton:focus-visible,
  .difficultyButton[aria-pressed="true"]{
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    outline:none !important;
    filter:none !important;
  }
  .difficultyButton::before,
  .difficultyButton::after{ content:none !important; display:none !important; }

  #startActions{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    pointer-events:none !important;
    z-index:50 !important;
  }
  #startButton,#startHallButton,#startGuideButton{
    position:absolute !important;
    top:79.0% !important;
    height:10.6% !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:22px !important;
    background:transparent !important;
    box-shadow:none !important;
    outline:none !important;
    filter:none !important;
    color:transparent !important;
    text-shadow:none !important;
    font-size:0 !important;
    line-height:0 !important;
    cursor:pointer !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
    text-decoration:none !important;
  }
  #startButton{ left:34.0% !important; width:17.8% !important; }
  #startHallButton{ left:53.2% !important; width:17.7% !important; }
  #startGuideButton{ left:73.1% !important; width:18.2% !important; display:block !important; }
  #startButton:hover,#startButton:active,#startButton:focus,#startButton:focus-visible,
  #startHallButton:hover,#startHallButton:active,#startHallButton:focus,#startHallButton:focus-visible,
  #startGuideButton:hover,#startGuideButton:active,#startGuideButton:focus,#startGuideButton:focus-visible{
    background:transparent !important;
    box-shadow:none !important;
    outline:none !important;
    filter:none !important;
  }



  /* V82 — visuel unique final, alpha réel, hotspots invisibles */
  #startArtwork{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    z-index:2 !important;
    pointer-events:none !important;
  }

  /* Vidéo verticale 9:16, agrandie d’environ 5 % derrière l’ouverture alpha. */
  #choiceVideoWrap{
    position:absolute !important;
    left:3.02% !important;
    top:4.90% !important;
    width:25.30% !important;
    height:auto !important;
    aspect-ratio:9 / 16 !important;
    max-width:none !important;
    z-index:1 !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
    border:0 !important;
    border-radius:0 !important;
    background:#000 !important;
    box-shadow:none !important;
    pointer-events:none !important;
  }
  #choiceVideoWrap::before,#choiceVideoWrap::after{content:none !important;display:none !important}
  #choiceVideo{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    pointer-events:none !important;
  }

  /* Les quatre niveaux sont des zones cliquables totalement invisibles. */
  #difficultyChoices{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    z-index:50 !important;
    pointer-events:none !important;
  }
  .difficultyButton{
    position:absolute !important;
    top:44.85% !important;
    height:10.55% !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:24px !important;
    background:transparent !important;
    box-shadow:none !important;
    outline:none !important;
    filter:none !important;
    transform:none !important;
    opacity:1 !important;
    cursor:pointer !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
  }
  .difficultyButton:nth-child(1){left:49.70% !important;width:10.00% !important}
  .difficultyButton:nth-child(2){left:60.20% !important;width:10.40% !important}
  .difficultyButton:nth-child(3){left:71.00% !important;width:10.65% !important}
  .difficultyButton:nth-child(4){left:82.00% !important;width:11.40% !important}
  .difficultyButton,.difficultyButton:hover,.difficultyButton:active,
  .difficultyButton:focus,.difficultyButton:focus-visible,
  .difficultyButton[aria-pressed="true"]{
    border:0 !important;background:transparent !important;box-shadow:none !important;
    outline:none !important;filter:none !important;transform:none !important;
  }
  .difficultyButton::before,.difficultyButton::after{content:none !important;display:none !important}

  /* Jouer / Palmarès / Mode d’emploi : hotspots invisibles sur les boutons dessinés. */
  #startActions{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    z-index:50 !important;
    pointer-events:none !important;
  }
  #startButton,#startHallButton,#startGuideButton{
    position:absolute !important;
    top:79.20% !important;
    height:9.40% !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:24px !important;
    background:transparent !important;
    box-shadow:none !important;
    outline:none !important;
    filter:none !important;
    color:transparent !important;
    text-shadow:none !important;
    font-size:0 !important;
    line-height:0 !important;
    cursor:pointer !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
    text-decoration:none !important;
  }
  #startButton{left:34.00% !important;width:17.80% !important}
  #startHallButton{left:53.00% !important;width:17.80% !important}
  #startGuideButton{left:72.40% !important;width:18.20% !important;display:block !important}
  #startButton:hover,#startButton:active,#startButton:focus,#startButton:focus-visible,
  #startHallButton:hover,#startHallButton:active,#startHallButton:focus,#startHallButton:focus-visible,
  #startGuideButton:hover,#startGuideButton:active,#startGuideButton:focus,#startGuideButton:focus-visible{
    background:transparent !important;box-shadow:none !important;outline:none !important;filter:none !important;
  }



  /* V89 — Écran d'inscription au Palmarès entièrement reconstruit en CSS.
     Le "cache" visuel (fond + vignette), le parchemin, le cadre vidéo et les
     décorations restent des éléments CSS : aucune maquette aplatie n'est utilisée. */
  #nameOverlay {
    z-index:190;
    overflow:auto;
    padding:clamp(10px,2vw,30px);
    isolation:isolate;
    background:
      linear-gradient(115deg,rgba(21,36,30,.38),rgba(62,47,55,.22) 45%,rgba(31,43,58,.38)),
      url('ecran_entree.webp') center/cover no-repeat;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  #nameOverlay::before {
    content:'';
    position:absolute; inset:0; z-index:0;
    pointer-events:none;
    background:rgba(26,31,37,.20);
    backdrop-filter:blur(9px) saturate(.86) brightness(.86);
    -webkit-backdrop-filter:blur(9px) saturate(.86) brightness(.86);
  }
  #nameOverlay::after {
    content:'';
    position:absolute; inset:0; z-index:0;
    pointer-events:none;
    background:
      radial-gradient(circle at 50% 42%,rgba(255,248,223,.13),transparent 48%),
      radial-gradient(circle at 50% 50%,transparent 52%,rgba(22,28,35,.34) 100%);
  }

  #namePanel.overlayPanel {
    position:relative; z-index:1;
    width:min(1510px,96vw);
    max-height:none;
    min-height:min(740px,91vh);
    overflow:hidden;
    padding:0;
    display:grid;
    grid-template-columns:minmax(430px,.96fr) minmax(540px,1.04fr);
    border-radius:34px;
    border:1px solid rgba(255,246,210,.68);
    background:rgba(255,248,230,.94);
    color:#563d39;
    box-shadow:
      0 34px 90px rgba(20,26,27,.42),
      0 0 0 5px rgba(120,79,41,.22),
      0 0 0 7px rgba(255,229,156,.30),
      inset 0 0 45px rgba(128,82,37,.10);
  }
  #namePanel::before {
    content:'';
    position:absolute; inset:10px;
    z-index:4; pointer-events:none;
    border:1px solid rgba(165,109,49,.26);
    border-radius:27px;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.34);
  }
  #namePanel::after {
    content:'✦  ❀  ✦';
    position:absolute; left:50%; bottom:9px; z-index:5;
    transform:translateX(-50%);
    color:rgba(154,100,42,.62);
    font:700 14px/1 Georgia,serif;
    letter-spacing:.45em;
    pointer-events:none;
  }

  .qualificationVisual {
    position:relative;
    min-width:0;
    padding:clamp(24px,2.1vw,38px) clamp(20px,1.8vw,32px) clamp(26px,2.3vw,42px);
    display:flex; flex-direction:column; justify-content:center;
    overflow:hidden;
    background:
      radial-gradient(circle at 50% 22%,rgba(255,228,143,.21),transparent 38%),
      linear-gradient(145deg,rgba(32,61,44,.91),rgba(58,72,49,.90) 45%,rgba(67,50,40,.94)),
      url('con-gratulation2-poster.webp') center/cover no-repeat;
    border-right:1px solid rgba(111,74,39,.35);
  }
  .qualificationVisual::before,
  .qualificationVisual::after {
    position:absolute; z-index:0; pointer-events:none;
    color:rgba(255,244,193,.82);
    text-shadow:0 0 15px rgba(255,226,119,.45);
  }
  .qualificationVisual::before {
    content:'❀  ❀  ✦  ❀';
    left:22px; top:15px;
    font:700 clamp(16px,1.5vw,24px)/1 Georgia,serif;
    letter-spacing:.35em;
    transform:rotate(-2deg);
  }
  .qualificationVisual::after {
    content:'❀  ✦  ❀  ❀';
    right:18px; bottom:18px;
    font:700 clamp(15px,1.4vw,22px)/1 Georgia,serif;
    letter-spacing:.32em;
    transform:rotate(2deg);
  }
  .qualificationQuote,
  .qualificationVideoFrame,
  .qualificationWish { position:relative; z-index:1; }
  .qualificationQuote {
    align-self:flex-start;
    margin:0 0 15px 5px;
    padding:9px 15px 10px;
    border:1px solid rgba(248,221,158,.42);
    border-radius:10px 10px 12px 8px;
    background:linear-gradient(180deg,rgba(128,86,45,.62),rgba(84,57,38,.72));
    box-shadow:0 8px 22px rgba(19,30,24,.20),inset 0 1px rgba(255,255,255,.20);
    color:#fff4d1;
    font:italic 600 clamp(13px,1vw,16px)/1.25 Georgia,serif;
    transform:rotate(-1.1deg);
  }
  .qualificationQuote::after { content:'  ♥'; color:#efb0ae; font-style:normal; }

  .qualificationVideoFrame {
    padding:6px;
    border-radius:30px;
    background:linear-gradient(135deg,#f6df99 0%,#9f6e32 20%,#f7e5a9 48%,#76502f 76%,#f0d98e 100%);
    box-shadow:
      0 20px 45px rgba(16,29,23,.38),
      0 0 0 2px rgba(255,246,208,.35),
      0 0 28px rgba(255,217,111,.13);
  }
  .qualificationVideoFrame::before,
  .qualificationVideoFrame::after {
    content:'❀'; position:absolute; z-index:4;
    width:42px; height:42px; display:grid; place-items:center;
    color:#fff2bf; font-size:30px;
    text-shadow:0 2px 8px rgba(85,56,24,.55),0 0 10px rgba(255,231,147,.55);
  }
  .qualificationVideoFrame::before { left:-12px; top:-16px; transform:rotate(-14deg); }
  .qualificationVideoFrame::after { right:-10px; bottom:-15px; transform:rotate(17deg); }
  .qualificationVideoMask {
    position:relative;
    aspect-ratio:16/9;
    overflow:hidden;
    border-radius:24px;
    background:#18231d;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),inset 0 0 34px rgba(0,0,0,.18);
    /* Cache CSS : la vidéo est découpée dans le cadre et ses bords sont adoucis. */
    -webkit-mask-image:radial-gradient(ellipse 118% 116% at 50% 50%,#000 82%,rgba(0,0,0,.96) 93%,rgba(0,0,0,.78) 100%);
    mask-image:radial-gradient(ellipse 118% 116% at 50% 50%,#000 82%,rgba(0,0,0,.96) 93%,rgba(0,0,0,.78) 100%);
  }
  #palmaresArt {
    width:100%; height:100%; max-height:none; margin:0;
    object-fit:cover; border-radius:0;
    display:block;
    filter:saturate(.98) contrast(1.02) brightness(1.02);
  }
  .qualificationVideoGlow {
    position:absolute; inset:0; z-index:2; pointer-events:none;
    background:
      linear-gradient(to top,rgba(16,28,22,.62),transparent 27%),
      radial-gradient(circle at 80% 18%,rgba(255,242,182,.22),transparent 24%);
  }
  .qualificationVideoBadge {
    position:absolute; left:15px; top:14px; z-index:3;
    padding:6px 10px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:999px;
    background:rgba(30,47,37,.46);
    backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
    color:#fff8dd;
    font:800 10px/1 system-ui,sans-serif;
    letter-spacing:.11em; text-transform:uppercase;
  }
  .qualificationVideoControls {
    position:absolute; left:14px; right:14px; bottom:12px; z-index:4;
    display:grid; grid-template-columns:32px minmax(60px,1fr) auto 32px;
    align-items:center; gap:10px;
    color:#fff9e8;
  }
  .qualificationVideoControls button {
    width:32px; height:32px; min-width:0; padding:0;
    display:grid; place-items:center;
    border:1px solid rgba(255,255,255,.24); border-radius:50%;
    background:rgba(25,38,31,.50); color:#fff9df;
    backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px);
    font:800 13px/1 system-ui,sans-serif;
    cursor:pointer;
  }
  .qualificationVideoControls button:hover { background:rgba(255,247,218,.18); }
  .qualificationVideoTrack {
    height:6px; overflow:hidden; border-radius:999px;
    background:rgba(255,255,255,.26);
    box-shadow:inset 0 1px 3px rgba(0,0,0,.16);
    cursor:pointer;
  }
  #palmaresVideoProgress {
    display:block; width:0%; height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#f7df91,#fff5bf);
    box-shadow:0 0 10px rgba(255,230,130,.55);
  }
  #palmaresVideoTime {
    min-width:72px; text-align:right;
    color:rgba(255,249,232,.92);
    font:750 10px/1 system-ui,sans-serif;
    font-variant-numeric:tabular-nums;
  }
  .qualificationWish {
    align-self:center;
    margin:16px 0 0;
    padding:8px 17px 9px;
    border:1px solid rgba(247,224,174,.25);
    border-radius:10px;
    background:rgba(54,47,37,.30);
    color:#fff1ce;
    font:italic 650 clamp(13px,1.05vw,16px)/1.2 Georgia,serif;
    text-align:center;
  }

  .qualificationCard {
    position:relative;
    min-width:0;
    padding:clamp(28px,3.2vw,52px) clamp(28px,3.3vw,58px) clamp(27px,2.7vw,45px);
    display:flex; flex-direction:column; justify-content:center;
    overflow:hidden;
    background:
      radial-gradient(circle at 13% 17%,rgba(171,111,56,.055) 0 1px,transparent 1.5px) 0 0/18px 18px,
      radial-gradient(circle at 74% 68%,rgba(171,111,56,.04) 0 1px,transparent 1.5px) 0 0/25px 25px,
      linear-gradient(105deg,rgba(255,251,238,.98),rgba(250,238,211,.97));
  }
  .qualificationCard::before {
    content:'❀   ❦   ✦   ❦   ❀';
    position:absolute; left:50%; top:18px;
    transform:translateX(-50%);
    color:rgba(115,130,77,.66);
    font:700 clamp(14px,1.25vw,20px)/1 Georgia,serif;
    letter-spacing:.28em;
    white-space:nowrap;
  }
  .qualificationCard::after {
    content:'';
    position:absolute; inset:18px;
    pointer-events:none;
    border:1px solid rgba(157,107,55,.14);
    border-radius:22px;
  }
  .qualificationBrand {
    position:relative; z-index:1;
    margin:0 0 5px;
    color:#80562f;
    text-align:center;
    font:700 clamp(24px,2.2vw,38px)/.94 Georgia,'Times New Roman',serif;
    font-style:italic;
    letter-spacing:-.035em;
  }
  .qualificationBrand span { color:#9a4167; }
  #namePanel #nameTitle {
    position:relative; z-index:1;
    margin:6px 0 0;
    color:#8a5428;
    text-align:center;
    font:700 clamp(43px,4.5vw,72px)/.95 Georgia,'Times New Roman',serif;
    font-style:italic;
    letter-spacing:-.045em;
    text-shadow:0 1px 0 rgba(255,255,255,.78);
  }
  .qualificationSubtitle {
    position:relative; z-index:1;
    margin:3px 0 12px;
    color:#8c305d;
    text-align:center;
    font:700 clamp(25px,2.6vw,42px)/1 Georgia,'Times New Roman',serif;
    font-style:italic;
    letter-spacing:-.025em;
  }
  #namePanel #hallQualifyText {
    position:relative; z-index:1;
    max-width:720px;
    margin:0 auto clamp(16px,1.8vw,24px);
    color:#63564d;
    text-align:center;
    font:600 clamp(12px,1vw,15px)/1.45 system-ui,sans-serif;
  }
  .qualificationFieldWrap { position:relative; z-index:1; margin:0 auto; width:min(650px,100%); }
  #namePanel #hallNameLabel {
    display:flex; align-items:flex-end; justify-content:space-between; gap:10px;
    margin:0 7px 8px;
    color:#8a5831;
    font:800 13px/1.2 system-ui,sans-serif;
  }
  #hallNameCount {
    color:#8f8793;
    font:750 11px/1 system-ui,sans-serif;
    font-variant-numeric:tabular-nums;
  }
  #namePanel #hallNameInput {
    width:100%; min-height:62px;
    padding:0 22px;
    border:2px solid rgba(193,137,58,.58);
    border-radius:18px;
    background:rgba(255,255,255,.79);
    color:#513246;
    font:800 clamp(18px,1.55vw,25px)/1 Georgia,serif;
    text-align:left;
    outline:none;
    box-shadow:
      0 0 0 4px rgba(255,226,130,.20),
      inset 0 1px 5px rgba(90,59,39,.06),
      0 8px 20px rgba(91,59,42,.08);
    transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
  }
  #namePanel #hallNameInput::placeholder { color:#a69c97; font-weight:500; }
  #namePanel #hallNameInput:focus {
    border-color:#d79e3f;
    background:#fffefa;
    box-shadow:0 0 0 5px rgba(244,198,91,.24),0 0 25px rgba(226,177,67,.20),inset 0 1px 4px rgba(90,59,39,.05);
  }

  .qualificationStats {
    position:relative; z-index:1;
    display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px;
    width:min(720px,100%);
    margin:clamp(16px,1.8vw,24px) auto 0;
  }
  .qualificationStat {
    position:relative;
    min-height:94px;
    padding:12px 8px 10px;
    border:1px solid rgba(158,108,59,.20);
    border-radius:14px;
    background:linear-gradient(180deg,rgba(255,252,240,.90),rgba(246,231,201,.72));
    box-shadow:0 7px 16px rgba(91,65,44,.07),inset 0 1px rgba(255,255,255,.75);
    text-align:center;
  }
  .qualificationStat::after {
    content:''; position:absolute; left:12px; right:12px; bottom:6px; height:1px;
    background:linear-gradient(90deg,transparent,rgba(115,130,77,.25),transparent);
  }
  .qualificationStatIcon { display:block; margin-bottom:3px; font-size:22px; line-height:1; }
  .qualificationStatLabel {
    display:block; margin-bottom:3px;
    color:#7d705f;
    font:750 10px/1.1 system-ui,sans-serif;
    text-transform:uppercase; letter-spacing:.055em;
  }
  .qualificationStatValue {
    display:block;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    color:#744327;
    font:800 clamp(16px,1.45vw,23px)/1.05 Georgia,serif;
    font-variant-numeric:tabular-nums;
  }
  .qualificationStat:nth-child(1) .qualificationStatValue { color:#486943; }
  .qualificationStat:nth-child(2) .qualificationStatValue { color:#8d3c39; }
  .qualificationStat:nth-child(3) .qualificationStatValue { color:#3f6287; }
  .qualificationStat:nth-child(4) .qualificationStatValue { color:#70416e; }

  #namePanel .overlayActions {
    position:relative; z-index:1;
    width:min(690px,100%);
    margin:clamp(18px,2vw,28px) auto 0;
    display:grid; grid-template-columns:minmax(0,1.22fr) minmax(0,.78fr); gap:13px;
  }
  #namePanel .uiButton {
    min-height:62px;
    border-radius:20px;
    font:800 clamp(15px,1.3vw,20px)/1 system-ui,sans-serif;
    transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
  }
  #namePanel .uiButton:hover { transform:translateY(-2px); filter:none; }
  #namePanel #hallSave {
    border:1px solid rgba(136,66,91,.54);
    background:linear-gradient(180deg,#b96883,#9d4e6b);
    color:#fffaf5;
    box-shadow:0 10px 24px rgba(129,60,83,.22),inset 0 1px rgba(255,255,255,.34),0 0 0 4px rgba(229,187,116,.20);
    text-shadow:0 1px 1px rgba(83,40,55,.35);
  }
  #namePanel #hallSave::before { content:'✦'; margin-right:9px; color:#ffeaa2; }
  #namePanel #hallSave:hover { box-shadow:0 13px 30px rgba(129,60,83,.28),inset 0 1px rgba(255,255,255,.34),0 0 0 5px rgba(229,187,116,.24); }
  #namePanel #hallSkip {
    border:1px solid rgba(82,110,79,.30);
    background:linear-gradient(180deg,#dfe7d6,#cad8c4);
    color:#49634a;
    box-shadow:0 9px 19px rgba(69,91,65,.12),inset 0 1px rgba(255,255,255,.72);
  }
  #namePanel #hallSkip::before { content:'↻'; margin-right:8px; font-size:1.15em; }
  #nameReturnMenu {
    position:relative; z-index:1;
    align-self:center;
    margin:13px auto 0;
    padding:5px 10px;
    border:0; background:transparent;
    color:#596d92;
    font:700 12px/1.2 system-ui,sans-serif;
    text-decoration:underline;
    text-decoration-color:rgba(89,109,146,.38);
    text-underline-offset:3px;
    cursor:pointer;
  }
  #nameReturnMenu:hover { color:#3f557c; }
  #nameReturnMenu::before { content:'← '; }

  @media (max-width:1100px) {
    #namePanel.overlayPanel { grid-template-columns:minmax(360px,.9fr) minmax(480px,1.1fr); }
    .qualificationStats { gap:6px; }
    .qualificationStat { min-height:84px; padding:10px 5px 9px; }
    #namePanel #hallNameInput { min-height:56px; }
    #namePanel .uiButton { min-height:56px; }
  }
  @media (max-width:820px) {
    #nameOverlay { place-items:start center; padding:10px; }
    #namePanel.overlayPanel {
      width:min(700px,97vw); min-height:0;
      grid-template-columns:1fr;
      border-radius:24px;
    }
    .qualificationVisual { padding:24px 20px 20px; }
    .qualificationVideoFrame { width:min(560px,100%); margin:auto; }
    .qualificationQuote { display:none; }
    .qualificationWish { margin-top:10px; }
    .qualificationCard { padding:34px 24px 30px; }
    .qualificationBrand { font-size:26px; }
    #namePanel #nameTitle { font-size:48px; }
    .qualificationSubtitle { font-size:28px; }
    .qualificationStats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .qualificationStat { min-height:76px; }
    #namePanel .overlayActions { grid-template-columns:1fr; }
  }
  @media (max-width:500px) {
    .qualificationVisual { padding:19px 13px 16px; }
    .qualificationVideoControls { grid-template-columns:30px minmax(45px,1fr) 66px 30px; gap:6px; left:9px; right:9px; bottom:8px; }
    .qualificationVideoControls button { width:30px; height:30px; }
    .qualificationCard { padding:32px 16px 27px; }
    #namePanel #nameTitle { font-size:42px; }
    .qualificationSubtitle { font-size:25px; }
    #namePanel #hallNameInput { min-height:54px; font-size:19px; }
  }

/* V91 — finition accessibilité et petits écrans. */
:where(button,a,input,[role="slider"]):focus-visible {
  outline:3px solid rgba(255,220,120,.72);
  outline-offset:3px;
}
@media (max-height:720px) and (min-width:821px) {
  #nameOverlay { padding:10px; }
  #namePanel.overlayPanel { width:min(1450px,96vw); min-height:min(700px,94vh); }
  .qualificationCard { padding-top:28px; padding-bottom:24px; }
  #namePanel #nameTitle { font-size:clamp(38px,4vw,60px); }
  .qualificationSubtitle { font-size:clamp(22px,2.35vw,34px); }
  .qualificationStats { margin-top:14px; }
  .qualificationStat { min-height:78px; }
  #namePanel .overlayActions { margin-top:15px; }
}
@media (prefers-reduced-motion:reduce) {
  #introOverlay,.overlayPanel,.uiButton,.achievementToast,#flash,#fairyAura { transition-duration:.01ms !important; }
  .achievementToast,.scoreBurst { animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}
