/* Présentation commune des écrans de départ. */
body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay,#overlay:has(#how:not([hidden])),.loto-hero){
  background:linear-gradient(180deg,#fff 0%,#f7fff2 100%)!important;
  color:#203514!important;
  border-radius:18px!important;
  padding:clamp(12px,2.5vw,22px)!important;
  text-align:center!important;
  overflow-y:auto!important;
  scrollbar-width:thin;
}
body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay,#overlay:has(#how:not([hidden])),.loto-hero)::before{
  content:''!important;position:absolute;inset:0;pointer-events:none!important;
  background:radial-gradient(circle at 16% 20%,rgba(249,115,22,.12) 0 6px,transparent 7px),radial-gradient(circle at 78% 22%,rgba(234,179,8,.14) 0 7px,transparent 8px),radial-gradient(circle at 22% 78%,rgba(99,184,47,.12) 0 7px,transparent 8px),linear-gradient(90deg,rgba(99,184,47,.05) 1px,transparent 1px),linear-gradient(rgba(99,184,47,.05) 1px,transparent 1px)!important;
  background-size:auto,auto,auto,28px 28px,28px 28px!important;
  opacity:1!important;transform:none!important;animation:none!important;
  border:0!important;border-radius:inherit;
}
body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay,#overlay:has(#how:not([hidden]))) :is(.intro-card,.fd-intro-card,.fl-card,.scratch-intro-card,.hb-card,.md-card,.card,.sudoku-intro,.runner-intro-card,.escape-intro-card,.mj-intro-card){
  position:relative;z-index:1;
  width:min(440px,100%)!important;max-width:100%!important;
  box-sizing:border-box;
  padding:12px!important;
  background:transparent!important;border:0!important;border-radius:18px!important;
  box-shadow:none!important;text-align:center!important;color:#203514!important;
  gap:10px!important;
}
body #intro-ov .intro-inner{background:transparent!important;box-shadow:none!important;border:0!important;color:#203514!important}
body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay,#overlay:has(#how:not([hidden])),.loto-hero) :is(.intro-logo,.fl-logo,.fd-logo,.scratch-logo,.hb-logo,.md-logo,.home-logo,.interwheel-logo,.game-logo,.runner-logo,.runner-intro-logo,.escape-logo,.mj-logo,.mj-intro-card>img,.sudoku-logo,.loto-logo){
  width:min(250px,70%)!important;height:auto!important;max-height:132px!important;
  aspect-ratio:auto!important;object-fit:contain!important;flex-shrink:0;
  background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;
  border-radius:0!important;margin:0 auto 6px!important;
  filter:drop-shadow(0 12px 18px rgba(60,120,20,.15))!important;
}
body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay,#overlay:has(#how:not([hidden])),.loto-hero) :is(h1,h2,.hb-title,.escape-title){
  font-family:'Paytone One',system-ui,sans-serif!important;
  font-size:clamp(1.15rem,3.5vw,1.55rem)!important;line-height:1.2!important;
  color:#203514!important;text-shadow:none!important;margin:0 0 8px!important;
}
body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay,#overlay:has(#how:not([hidden])),.loto-hero) :is(p,.md-text,.subtitle,.keyboard-hint){
  color:#687965!important;font-family:inherit!important;font-size:.9rem!important;
  font-weight:600!important;line-height:1.5!important;text-shadow:none!important;
  margin:6px auto 10px!important;max-width:390px;
}
body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay,#overlay:has(#how:not([hidden])),.loto-hero) :is(.intro-tap,.fl-primary,.fd-play,.fd-btn,.scratch-btn,.hb-btn,.md-btn,.primary,.play,.play-button,.solitaire-primary,.runner-btn,.runner-play,.escape-btn,.mj-btn,#mj-start,.sudoku-level-card,.btn-orange,.quota-btn,.loto-btn){
  background:#f97316!important;color:#fff!important;border:0!important;
  border-radius:999px!important;min-height:44px;padding:12px 26px!important;
  font-family:'Paytone One',system-ui,sans-serif!important;font-size:1rem!important;
  font-weight:400!important;line-height:1.3!important;text-shadow:none!important;
  box-shadow:0 4px 12px rgba(249,115,22,.2)!important;animation:none!important;
  cursor:pointer;transition:background .15s,transform .15s;
}
body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay,#overlay:has(#how:not([hidden])),.loto-hero) :is(.intro-tap,.fl-primary,.fd-play,.fd-btn,.scratch-btn,.hb-btn,.md-btn,.primary,.play,.play-button,.solitaire-primary,.runner-btn,.runner-play,.escape-btn,.mj-btn,#mj-start,.sudoku-level-card,.btn-orange,.quota-btn,.loto-btn):not(:disabled):hover{background:#ea580c!important;transform:translateY(-1px)}
body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay,#overlay:has(#how:not([hidden]))) :is(.intro-prize,.runner-intro-prize,.md-feature,.hb-feature,.escape-feature,.fd-feature,.rule,.reward-box,.how-step){
  background:#eaf9df!important;border:1px solid #dcebd4!important;border-radius:14px!important;
  box-shadow:none!important;color:#687965!important;text-shadow:none!important;
}
body :is(#game-intro,#intro-ov,#intro,#game-overlay,#overlay:has(#how:not([hidden]))) :is(.intro-prize,.runner-intro-prize,.md-feature,.hb-feature,.escape-feature,.fd-feature,.rule,.reward-box,.how-step) :is(strong,b){color:#ea580c!important;text-shadow:none!important}
body :is(#game-intro,#intro-ov) :is(.intro-key,.runner-intro-key){background:#fff!important;border:1px solid #dcebd4!important;border-radius:8px!important;color:#687965!important}
body :is(#game-intro,#intro-ov) .mj-intro-rules{background:#fff!important;border:1px solid #dcebd4!important;color:#478626!important;border-radius:999px!important;min-height:44px}
body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay,#overlay:has(#how:not([hidden]))) :is(button,a):focus-visible{outline:3px solid #478626;outline-offset:3px}
body .loto-hero{position:relative;grid-template-columns:1fr!important;justify-items:center!important;text-align:center!important;gap:10px!important;border:1px solid #dcebd4!important;box-shadow:0 8px 20px rgba(60,120,20,.08)!important}
body .loto-hero::after,body .loto-hero-balls{display:none!important}
body .loto-hero :is(.loto-brand-panel,.loto-hero-content){position:relative;z-index:1;background:transparent!important;border:0!important;text-align:center!important}
body .loto-hero .loto-logo-plate{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
body .loto-hero .loto-hero-info>div{background:#eaf9df!important;border:1px solid #dcebd4!important;box-shadow:none!important;color:#687965!important}
body .loto-hero .loto-hero-info strong{color:#ea580c!important}
body .loto-hero .loto-hero-info span{color:#687965!important}
body .loto-hero .loto-brand-panel::after{display:none!important}
body #intro.home-card,body #intro .home-card{font-family:'Nunito',system-ui,sans-serif}
body .loto-hero img{max-height:132px!important;max-width:min(250px,70vw)!important;object-fit:contain!important}
@media(max-width:600px){
  body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay,#overlay:has(#how:not([hidden]))) :is(.intro-logo,.fl-logo,.fd-logo,.scratch-logo,.hb-logo,.md-logo,.home-logo,.interwheel-logo,.game-logo,.runner-logo,.runner-intro-logo,.escape-logo,.mj-logo,.mj-intro-card>img,.sudoku-logo){max-height:92px!important;width:min(180px,60%)!important}
  body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay,#overlay:has(#how:not([hidden]))) :is(p,.md-text,.subtitle,.keyboard-hint){font-size:.82rem!important;line-height:1.4!important}
}
@media(prefers-reduced-motion:reduce){body :is(#game-intro,#fl-intro,#intro-ov,#intro-overlay,#hb-intro,#intro,#game-overlay) *{animation:none!important;transition:none!important}}

body #intro svg{max-height:132px;filter:drop-shadow(0 12px 18px rgba(60,120,20,.15))}
body :is(#game-intro,#intro-ov,#intro) button:disabled{opacity:.5!important;cursor:not-allowed!important}
body :is(#game-intro,#intro-ov,#intro,#hb-intro) :is(.intro-prize,.runner-intro-prize,.md-feature,.hb-feature,.escape-feature,.fd-feature) span{color:#687965!important;text-shadow:none!important}
body :is(#game-intro,#intro-ov,#intro,#hb-intro) :is(.intro-prize,.runner-intro-prize,.md-feature,.hb-feature,.escape-feature,.fd-feature) :is(strong,b){color:#ea580c!important;text-shadow:none!important}
body #intro-overlay .sudoku-level-card :is(strong,span){color:#fff!important}
body #intro-overlay .sudoku-level-card{padding:12px 8px!important;font-size:.85rem!important}
body #intro-ov .intro-card:has(#hero-choice){width:min(760px,100%)!important}
body .loto-page #play-btn{background:#f97316!important;color:#fff!important;border:0!important;border-radius:999px!important;min-height:44px;box-shadow:0 4px 12px rgba(249,115,22,.2)!important}
body #intro-ov :is(.mode-btn,.hero-choice-card){background:#fff!important;color:#203514!important;box-shadow:none!important;border-color:#dcebd4!important;border-radius:14px!important}
body #intro-ov :is(.mode-btn,.hero-choice-card).active{background:#eaf9df!important;border-color:#63b82f!important}
body #intro-ov :is(.mode-btn,.hero-choice-card) span{color:#687965!important}
