/* ════════════════════════════════════════════════════════════════════════
   LE GRAND BOUCAN — maquette validée : brandnew/drafts/boucan-01.html
   js/boucan.js (accueil) + js/boucan-jeu.js (en partie). Rayon 0, ombres
   dures, aplats ; bloc noir = ombre colorée (jamais noir sur noir) ; la
   couleur d'une manche passe par sa case d'emoji, jamais par une bordure.
   ════════════════════════════════════════════════════════════════════════ */
/* 1 · la carte de l'accueil */
.bcn-carte { flex: none; border: 4px solid #0A0A0A; box-shadow: 5px 5px 0 var(--yellow, #FFD600); background: #0A0A0A; color: #FFFEF7; padding: 14px; display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; cursor: pointer; }
.bcn-carte .k { font-family: var(--font-d, 'Anton', sans-serif); font-size: 13px; letter-spacing: 1.5px; display: flex; align-items: center; gap: 8px; color: var(--yellow, #FFD600); }
.bcn-carte .k .nemoji { width: 18px; height: 18px; }
.bcn-carte .k .pl { margin-left: auto; font-size: 13px; letter-spacing: .5px; padding: 5px 9px; border: 3px solid #0A0A0A; background: var(--yellow, #FFD600); color: #0A0A0A; white-space: nowrap; }
.bcn-carte .k .pl.rd { background: var(--red, #FF5252); color: #FFFEF7; }
.bcn-carte .t { font-family: var(--font-d, 'Anton', sans-serif); font-size: 32px; line-height: .92; }
.bcn-carte .modes { display: flex; flex-wrap: wrap; gap: 6px; }
.bcn-carte .modes span { display: inline-flex; align-items: center; gap: 4px; font-family: var(--font-d, 'Anton', sans-serif); font-size: 12px; padding: 4px 7px; background: #FFFEF7; color: #0A0A0A; border: 2px solid #FFFEF7; }
.bcn-carte .modes span.on { background: var(--magenta, #FF2E93); color: #FFFEF7; border-color: var(--magenta, #FF2E93); }
.bcn-carte .modes .nemoji { width: 14px; height: 14px; }
.bcn-carte .cag { display: flex; align-items: center; gap: 10px; }
.bcn-carte .cag .v { font-family: var(--font-d, 'Anton', sans-serif); font-size: 40px; line-height: 1; color: var(--yellow, #FFD600); }
.bcn-carte .cag small { font-family: var(--font-m, 'IBM Plex Mono', monospace); font-size: 9.5px; font-weight: 700; letter-spacing: .5px; opacity: .8; line-height: 1.4; }
.bcn-cd { display: flex; gap: 6px; }
.bcn-cd div { flex: 1; background: var(--yellow, #FFD600); color: #0A0A0A; border: 3px solid #0A0A0A; text-align: center; padding: 6px 0; font-family: var(--font-d, 'Anton', sans-serif); font-size: 24px; line-height: 1; }
.bcn-cd small { display: block; font-family: var(--font-m, 'IBM Plex Mono', monospace); font-size: 8px; font-weight: 700; letter-spacing: .8px; margin-top: 3px; }
.bcn-cta { display: block; width: 100%; box-sizing: border-box; font-family: var(--font-d, 'Anton', sans-serif); font-size: 20px; letter-spacing: 1px; padding: 13px; text-align: center; background: var(--green, #5BE885); color: #0A0A0A; border: 4px solid #0A0A0A; box-shadow: 5px 5px 0 #0A0A0A; text-decoration: none; cursor: pointer; border-radius: 0; }
.bcn-cta.jn { background: var(--yellow, #FFD600); }
.bcn-cta.rd { background: var(--red, #FF5252); color: #FFFEF7; }
.bcn-carte .bcn-cta { box-shadow: 5px 5px 0 var(--magenta, #FF2E93); }
html[data-skin="neon"] .bcn-cta { box-shadow: 5px 5px 0 var(--magenta, #FF2E93); }

/* les écrans pleins */
.bcn-ov { position: fixed; inset: 0; z-index: 3000; background: var(--app-bg, #FFFEF7); overflow-y: auto; }
.bcn-ov > .s2 { position: relative; min-height: 100%; display: flex; flex-direction: column; }
.bcn-ov .s2-scroll { display: flex; flex-direction: column; gap: 12px; padding-bottom: 24px; }
.bcn-ov .s2-scroll > * { flex: none; }
.bcn-card { border: 4px solid #0A0A0A; box-shadow: 5px 5px 0 #0A0A0A; background: var(--paper, #FFFEF7); color: var(--ink, #0A0A0A); }
html[data-skin="neon"] .bcn-card { box-shadow: 5px 5px 0 var(--magenta, #FF2E93); }
.bcn-h2 { font-family: var(--font-d, 'Anton', sans-serif); font-size: 13px; letter-spacing: 1.3px; color: var(--ink, #0A0A0A); opacity: .6; display: flex; align-items: center; gap: 8px; }
.bcn-h2::after { content: ''; flex: 1; height: 3px; background: currentColor; opacity: .35; }
/* 2 · le programme : la carte de liste de l'app (case d'emoji colorée + texte + pastille d'heure) */
.bcn-mch { display: flex; align-items: center; gap: 12px; padding: 10px 12px; }
.bcn-mch .ebox { width: 46px; height: 46px; flex: none; border: 3px solid #0A0A0A; background: var(--c); box-shadow: 3px 3px 0 #0A0A0A; display: grid; place-items: center; }
.bcn-mch .ebox .nemoji { width: 28px; height: 28px; }
.bcn-mch .tx { flex: 1; min-width: 0; }
.bcn-mch .tx b { display: block; font-family: var(--font-d, 'Anton', sans-serif); font-size: 20px; font-weight: 400; line-height: 1; }
.bcn-mch .tx small { display: block; font-family: var(--font-m, 'IBM Plex Mono', monospace); font-size: 9px; font-weight: 700; letter-spacing: .3px; opacity: .6; margin-top: 3px; line-height: 1.4; }
.bcn-mch .h { flex: none; font-family: var(--font-d, 'Anton', sans-serif); font-size: 14px; padding: 4px 8px; border: 3px solid #0A0A0A; background: #FFFEF7; color: #0A0A0A; }
.bcn-mch.on .h { background: var(--magenta, #FF2E93); color: #FFFEF7; }
/* 3 · en direct */
.bcn-live { display: flex; align-items: center; gap: 8px; padding: 10px 12px; background: var(--red, #FF5252); color: #FFFEF7; border: 4px solid #0A0A0A; box-shadow: 5px 5px 0 #0A0A0A; }
.bcn-live .dot { width: 12px; height: 12px; background: #FFFEF7; border: 2px solid #0A0A0A; animation: bcn-clig 1s steps(1) infinite; flex: none; }
@keyframes bcn-clig { 50% { background: var(--red, #FF5252); } }
.bcn-live .t { font-family: var(--font-d, 'Anton', sans-serif); font-size: 17px; display: flex; align-items: center; gap: 6px; min-width: 0; }
.bcn-live .t .nemoji { width: 18px; height: 18px; }
.bcn-live .r { margin-left: auto; font-family: var(--font-d, 'Anton', sans-serif); font-size: 22px; }
.bcn-bareme { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.bcn-bareme div { border: 3px solid #0A0A0A; background: #FFFEF7; color: #0A0A0A; padding: 6px 4px; text-align: center; }
.bcn-bareme b { display: block; font-family: var(--font-d, 'Anton', sans-serif); font-size: 20px; font-weight: 400; line-height: 1; }
.bcn-bareme small { font-family: var(--font-m, 'IBM Plex Mono', monospace); font-size: 8px; font-weight: 700; letter-spacing: .4px; }
.bcn-bareme .p { background: var(--green, #5BE885); } .bcn-bareme .n { background: var(--red, #FF5252); color: #FFFEF7; }
.bcn-ln { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border: 3px solid #0A0A0A; background: var(--paper, #FFFEF7); color: var(--ink, #0A0A0A); box-shadow: 3px 3px 0 #0A0A0A; }
html[data-skin="neon"] .bcn-ln { border-color: #FFFEF7; box-shadow: 3px 3px 0 var(--magenta, #FF2E93); }
.bcn-ln .rk { font-family: var(--font-d, 'Anton', sans-serif); font-size: 18px; width: 26px; text-align: center; }
.bcn-ln .a { width: 30px; height: 30px; flex: none; overflow: hidden; display: grid; place-items: center; }
.bcn-ln .n { flex: 1; min-width: 0; font-family: var(--font-d, 'Anton', sans-serif); font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bcn-ln .s { font-family: var(--font-d, 'Anton', sans-serif); font-size: 18px; }
.bcn-ln.moi { border-color: var(--magenta, #FF2E93); box-shadow: 3px 3px 0 var(--magenta, #FF2E93); }
.bcn-ln.or { background: var(--yellow, #FFD600); color: #0A0A0A; border-color: #0A0A0A; }
.bcn-tp { display: flex; gap: 6px; }
.bcn-tp div { flex: 1; border: 3px solid #0A0A0A; background: var(--cyan, #5BD8E5); color: #0A0A0A; text-align: center; padding: 6px 0; font-family: var(--font-d, 'Anton', sans-serif); font-size: 18px; line-height: 1; }
.bcn-tp div.on { background: var(--magenta, #FF2E93); color: #FFFEF7; }
.bcn-tp div.x { background: #FFFEF7; opacity: .5; }
.bcn-tp small { display: block; font-family: var(--font-m, 'IBM Plex Mono', monospace); font-size: 7.5px; font-weight: 700; letter-spacing: .4px; margin-top: 2px; }
/* 6 · le couronnement */
.bcn-sacre { background: var(--yellow, #FFD600); color: #0A0A0A; }
html[data-skin="neon"] .bcn-sacre { background: #2A1A06; color: #FFFEF7; }
.bcn-sacre .s2-scroll { align-items: stretch; }
.bcn-sacre .tt { font-family: var(--font-d, 'Anton', sans-serif); font-size: 15px; letter-spacing: 2px; text-align: center; }
.bcn-sacre .cr { align-self: center; } .bcn-sacre .cr .nemoji { width: 80px; height: 80px; }
.bcn-sacre .nm { font-family: var(--font-d, 'Anton', sans-serif); font-size: 46px; line-height: .9; text-align: center; }
html[data-skin="neon"] .bcn-sacre .tt, html[data-skin="neon"] .bcn-sacre .nm { color: var(--yellow, #FFD600); }
.bcn-titre { align-self: center; font-family: var(--font-d, 'Anton', sans-serif); font-size: 18px; padding: 7px 14px; background: #0A0A0A; color: var(--yellow, #FFD600); border: 3px solid #0A0A0A; box-shadow: 4px 4px 0 var(--magenta, #FF2E93); rotate: -3deg; }
.bcn-pod { display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: 8px; align-items: end; }
.bcn-pod div { border: 4px solid #0A0A0A; background: #FFFEF7; color: #0A0A0A; text-align: center; padding: 8px 4px; box-shadow: 4px 4px 0 #0A0A0A; min-width: 0; }
.bcn-pod .p1 { background: var(--magenta, #FF2E93); color: #FFFEF7; padding-top: 14px; }
.bcn-pod b { display: block; font-family: var(--font-d, 'Anton', sans-serif); font-size: 15px; font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bcn-pod span { display: block; font-family: var(--font-d, 'Anton', sans-serif); font-size: 20px; margin-top: 2px; }
.bcn-pod small { font-family: var(--font-m, 'IBM Plex Mono', monospace); font-size: 8.5px; font-weight: 700; letter-spacing: .4px; }
.bcn-pal div { display: flex; justify-content: space-between; font-family: var(--font-m, 'IBM Plex Mono', monospace); font-size: 10px; font-weight: 700; letter-spacing: .3px; padding: 5px 8px; border: 3px solid #0A0A0A; background: #FFFEF7; color: #0A0A0A; margin-bottom: 5px; }
.bcn-sacre .bcn-h2 { color: inherit; }

/* ── EN PARTIE ── */
/* 💡 DÉLESTAGE : un aplat noir (pas un flou). On peut répondre dans le noir : il laisse passer les doigts. */
.bcn-noir { position: fixed; inset: 0; z-index: 2600; background: #0A0A0A; color: #FFFEF7; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; pointer-events: none; opacity: 0; }
.bcn-noir.on { opacity: 1; }
.bcn-noir .nemoji { width: 40px; height: 40px; }
.bcn-noir b { font-family: var(--font-d, 'Anton', sans-serif); font-size: 28px; font-weight: 400; color: var(--yellow, #FFD600); }
.bcn-noir small { font-family: var(--font-m, 'IBM Plex Mono', monospace); font-size: 10px; font-weight: 700; letter-spacing: 1.5px; opacity: .7; text-align: center; padding: 0 20px; }
/* 💃 COUPÉ-DÉCALÉ : le bandeau du beat */
.bcn-beat { display: flex; align-items: center; gap: 8px; padding: 6px 10px; margin: 0 0 8px; background: var(--magenta, #FF2E93); color: #FFFEF7; border: 3px solid #0A0A0A; box-shadow: 3px 3px 0 #0A0A0A; font-family: var(--font-d, 'Anton', sans-serif); font-size: 14px; }
.bcn-beat .nemoji { width: 18px; height: 18px; }
.bcn-beat b { font-weight: 400; margin-right: auto; }
.bcn-beat i { width: 12px; height: 12px; border: 2px solid #0A0A0A; background: #FFFEF7; }
.bcn-beat i.on { background: var(--yellow, #FFD600); }
.answer-zone .opt { transition: none; }
/* 💸 FAROTAGE : le minimum du leader */
.bcn-min { font-family: var(--font-m, 'IBM Plex Mono', monospace); font-size: 10px; font-weight: 700; letter-spacing: .5px; padding: 6px 10px; margin: 6px auto; max-width: 320px; text-align: center; background: var(--yellow, #FFD600); color: #0A0A0A; border: 3px solid #0A0A0A; }
/* la fin de partie : les points de boucan */
.bcn-fin { border: 4px solid #0A0A0A; box-shadow: 5px 5px 0 var(--magenta, #FF2E93); background: var(--paper, #FFFEF7); color: var(--ink, #0A0A0A); padding: 14px; display: flex; flex-direction: column; gap: 8px; margin: 0 0 14px; }
.bcn-fin .l1 { display: flex; align-items: center; gap: 8px; font-family: var(--font-d, 'Anton', sans-serif); font-size: 15px; }
.bcn-fin .l1 .nemoji { width: 18px; height: 18px; }
.bcn-fin .gros { font-family: var(--font-d, 'Anton', sans-serif); font-size: 46px; line-height: 1; color: var(--magenta, #FF2E93); }
.bcn-fin .det { display: flex; flex-direction: column; gap: 4px; font-family: var(--font-m, 'IBM Plex Mono', monospace); font-size: 10.5px; font-weight: 700; letter-spacing: .3px; }
.bcn-fin .det div { display: flex; justify-content: space-between; padding: 4px 0; border-bottom: 2px dashed currentColor; }
.bcn-fin .det b { font-family: var(--font-d, 'Anton', sans-serif); font-size: 14px; font-weight: 400; }
.bcn-fin .tot { display: flex; justify-content: space-between; align-items: center; font-family: var(--font-d, 'Anton', sans-serif); font-size: 16px; padding: 8px 10px; background: #0A0A0A; color: var(--yellow, #FFD600); border: 3px solid #0A0A0A; }
.bcn-fin .pas { font-family: var(--font-m, 'IBM Plex Mono', monospace); font-size: 10px; font-weight: 700; letter-spacing: .4px; padding: 8px 10px; background: var(--yellow, #FFD600); color: #0A0A0A; border: 3px solid #0A0A0A; }
@media (min-width: 1024px) { .bcn-ov > .s2 { max-width: 640px; margin: 0 auto; width: 100%; padding-top: 12px; } }
@media (prefers-reduced-motion: reduce) { .bcn-live .dot { animation: none; } }
/* les boutons-liens gardent leur encre en néon (un style néon des liens les passait en blanc) */
html[data-theme] a.bcn-cta, html[data-theme] a.bcn-cta:visited { color: #0A0A0A; }
html[data-theme] a.bcn-cta.rd { color: #FFFEF7; }
