/* Les trente défis : une salle de répétition pour construire un paragraphe de dissertation. */
body[data-page="jeux"]{
  --jd-night:#10172a;
  --jd-night-2:#182543;
  --jd-ink:#171c2a;
  --jd-paper:#f7f0df;
  --jd-cream:#fffaf0;
  --jd-gold:#efbe43;
  --jd-coral:#c84f3e;
  --jd-blue:#5bb7d0;
  --jd-muted:#9faac2;
  --repetition-progress:0%;
  background:linear-gradient(180deg,#ece6da,#f7f1e7 48%,#efe3c9);
}
body[data-page="jeux"] .page-hero{
  position:relative;overflow:hidden;min-height:0;
  padding:clamp(18px,2.4vw,30px) clamp(24px,5vw,64px);
  background:
    radial-gradient(circle at 83% 25%,rgba(239,190,67,.2),transparent 22%),
    linear-gradient(126deg,#0a1020,var(--jd-night-2) 62%,#492738);
}
body[data-page="jeux"] .page-hero h1{max-width:760px;margin:.12em 0;font-size:clamp(2.2rem,4.4vw,4.2rem);line-height:.9;letter-spacing:-.055em}
body[data-page="jeux"] .page-hero>p:last-child{max-width:720px;margin:.7rem 0 0;font-size:clamp(.98rem,1.5vw,1.12rem)}
body[data-page="jeux"] .page-main{padding-top:clamp(14px,2vw,24px)}
body[data-page="jeux"] .subject-box{
  display:grid;grid-template-columns:minmax(235px,.8fr) minmax(0,1.2fr);gap:.5rem 1.4rem;align-items:center;
  margin:0 0 .75rem;padding:.9rem 1.05rem;background:var(--jd-cream);border:1px solid rgba(16,23,42,.2);border-left:7px solid var(--jd-coral);box-shadow:0 14px 36px rgba(16,23,42,.08)
}
body[data-page="jeux"] .subject-box .section-label{display:none}
body[data-page="jeux"] .subject-box h2{grid-row:1/3;margin:0;color:var(--jd-night);font-size:clamp(1.32rem,2.2vw,1.8rem);line-height:1.02}
body[data-page="jeux"] .subject-box>p{margin:0;font:650 .86rem/1.42 system-ui,sans-serif;color:#4b4a51}
body[data-page="jeux"] .subject-box .parcours-associe{margin-top:.15rem;color:#6e5320}
body[data-page="jeux"] .subject-box a{color:#744b12;text-underline-offset:3px}

.dissertation-stage{position:relative;isolation:isolate;margin:.8rem 0 2.5rem;color:var(--jd-paper);background:var(--jd-night);box-shadow:0 26px 70px rgba(10,16,32,.26);overflow:hidden}
.dissertation-game-v2 .game-grid[hidden]{display:none!important}
.dissertation-stage::before{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(105deg,rgba(200,79,62,.14),transparent 28%),radial-gradient(circle at var(--repetition-progress) 8%,rgba(239,190,67,.22),transparent 18%),linear-gradient(160deg,#111a30 0,#0d1426 65%,#241829 100%)}
.dissertation-stage::after{content:"";position:absolute;z-index:-1;inset:0;background:repeating-linear-gradient(0deg,transparent 0 4px,rgba(255,255,255,.018) 4px 5px);pointer-events:none}
.repetition-console{padding:clamp(16px,2.6vw,28px);border-bottom:1px solid rgba(247,240,223,.18)}
.repetition-console__title{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.15rem 1rem;align-items:end}
.repetition-console__title>p{grid-column:1/-1;margin:0;color:#f2c7bb;font:900 .69rem/1.2 system-ui,sans-serif;letter-spacing:.17em;text-transform:uppercase}
.repetition-console__title h2{margin:.2rem 0 0;color:#fff;font-size:clamp(1.7rem,3.5vw,3rem);line-height:1;letter-spacing:-.04em}
.repetition-console__title>span{max-width:430px;color:#c9cfdd;font:650 .82rem/1.4 system-ui,sans-serif;text-align:right}
.repetition-console__actions{display:flex;gap:.65rem;flex-wrap:wrap;margin:1rem 0 .8rem}
.repetition-console button,.repetition-welcome button,.panel-actions button,.result-actions button{
  min-height:44px;padding:.65rem .9rem;border:2px solid var(--jd-gold);border-radius:3px;background:transparent;color:#ffe294;font:850 .79rem/1.2 system-ui,sans-serif;cursor:pointer;transition:transform .16s ease,background .16s ease,color .16s ease
}
.repetition-console button:hover,.repetition-console button:focus-visible,.repetition-welcome button:hover,.repetition-welcome button:focus-visible,.panel-actions button:hover,.panel-actions button:focus-visible,.result-actions button:hover,.result-actions button:focus-visible{transform:translateY(-2px);background:var(--jd-gold);color:var(--jd-night);outline:0}
.repetition-console__actions button:first-child{background:var(--jd-coral);border-color:var(--jd-coral);color:#fff}
.repetition-progress{display:flex;justify-content:space-between;gap:1rem;color:#d4d9e5;font:750 .77rem/1.35 system-ui,sans-serif}
.repetition-progress strong{color:#ffe294}
.repetition-lights{display:grid;grid-template-columns:repeat(15,minmax(26px,1fr));gap:8px;margin:.65rem 0 0;padding:0;list-style:none}
.repetition-lights button{display:grid;place-items:center;width:100%;min-height:34px;padding:0;border:1px solid rgba(247,240,223,.4);border-radius:50%;background:#090f1d;color:#96a2ba;font:850 .64rem/1 system-ui,sans-serif;box-shadow:inset 0 0 0 4px #090f1d}
.repetition-lights button:hover,.repetition-lights button:focus-visible{border-color:#fff;background:#17223d;color:#fff}
.repetition-lights button[data-state="current"]{background:#d8dfec;color:#10172a;box-shadow:0 0 17px rgba(216,223,236,.75),inset 0 0 0 4px #182543}
.repetition-lights button[data-state="started"]{border-color:var(--jd-blue);color:#bdebf5}
.repetition-lights button[data-state="done"]{border-color:#ffe27d;background:var(--jd-gold);color:#13182a;box-shadow:0 0 18px rgba(239,190,67,.78),inset 0 0 0 4px #70530f}

.repetition-welcome{position:relative;min-height:520px;padding:clamp(28px,6vw,72px);overflow:hidden}
.welcome-curtain{position:absolute;right:clamp(20px,7vw,90px);bottom:10px;width:min(330px,35vw);height:390px;opacity:.5}
.welcome-curtain i{position:absolute;bottom:0;width:31%;height:100%;border:2px solid rgba(239,190,67,.5);background:linear-gradient(90deg,#521e29,#9d3540 48%,#431923);transform-origin:top}
.welcome-curtain i:nth-child(1){left:0;transform:skewY(9deg)}.welcome-curtain i:nth-child(2){left:34%;height:86%;transform:skewY(-6deg)}.welcome-curtain i:nth-child(3){right:0;transform:skewY(-9deg)}
.repetition-welcome>*:not(.welcome-curtain){position:relative;z-index:1;max-width:690px}
.welcome-kicker{margin:0;color:#f1c7bb;font:900 .7rem/1.2 system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.repetition-welcome h2{margin:.25rem 0 .8rem;color:#fff;font-size:clamp(2.2rem,5vw,5rem);line-height:.88;letter-spacing:-.06em}
.repetition-welcome ol{display:grid;gap:.45rem;margin:1.2rem 0;padding:0;list-style:none;counter-reset:rule}
.repetition-welcome li{counter-increment:rule;display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.65rem;align-items:start;color:#eef0f7;font:650 .96rem/1.42 system-ui,sans-serif}
.repetition-welcome li::before{content:counter(rule);display:grid;place-items:center;width:1.65rem;height:1.65rem;border:1px solid var(--jd-blue);color:#aee6f3;font:900 .68rem/1 system-ui,sans-serif}
.repetition-welcome li>span{min-width:0}
.repetition-welcome>p:not(.welcome-kicker){color:#bcc5d7;font:650 .88rem/1.5 system-ui,sans-serif}
.repetition-welcome>button{margin-top:.5rem;background:var(--jd-gold);color:var(--jd-night)}

.repetition-workspace{background:linear-gradient(180deg,#f9f1df,#fffaf0);color:var(--jd-ink)}
.challenge-header{display:grid;grid-template-columns:minmax(0,1fr);gap:.85rem 1.2rem;padding:clamp(20px,4vw,46px);border-top:1px solid rgba(247,240,223,.18);background:linear-gradient(135deg,#253654,#151f38);color:#fff}
.challenge-header>div>p{margin:0;color:#f3c9bd;font:900 .7rem/1.3 system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase}
.challenge-header h2{max-width:820px;margin:.35rem 0 0;color:#fff;font-size:clamp(1.75rem,3.8vw,3.5rem);line-height:.98;letter-spacing:-.045em}
.challenge-header .challenge-instructions{max-width:760px;margin:.9rem 0 0;color:#d6deec;font:650 .84rem/1.45 system-ui,sans-serif;letter-spacing:0;text-transform:none}
.challenge-subject{grid-column:1/-1;margin-top:.25rem;border-left:5px solid var(--jd-gold);background:rgba(255,255,255,.08)}
.challenge-subject__toggle{display:flex;justify-content:space-between;gap:1rem;width:100%;padding:.8rem 1rem;border:0;background:transparent;color:#f4d67d;font:850 .75rem/1.3 system-ui,sans-serif;text-align:left;cursor:pointer}
.challenge-subject__toggle:hover,.challenge-subject__toggle:focus-visible{background:rgba(255,255,255,.08);outline:2px solid var(--jd-gold);outline-offset:-2px}
.challenge-subject__toggle span{font-size:1rem;line-height:1}
.challenge-subject__panel{display:grid;grid-template-columns:minmax(0,1fr);gap:.65rem;padding:0 1rem 1rem}
.challenge-subject__panel[hidden]{display:none}
.challenge-subject span{color:#f4d67d;font:900 .66rem/1.3 system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.challenge-subject p{margin:0;padding:.8rem;border:1px solid rgba(255,229,157,.35);background:rgba(7,12,27,.26);color:#eef1f7;font:700 .95rem/1.45 Georgia,serif}
.challenge-subject a{justify-self:start;padding:.55rem .7rem;border:1px solid var(--jd-gold);color:#ffe59d;font:800 .72rem/1.2 system-ui,sans-serif;text-decoration:none}
.challenge-howto{margin:0;border-bottom:1px solid #cbbba0;background:#fff4cf;color:#2c3140}
.challenge-howto summary{padding:.85rem clamp(20px,4vw,46px);color:#623d0a;font:900 .82rem/1.35 system-ui,sans-serif;cursor:pointer}
.challenge-howto>div{max-width:960px;padding:0 clamp(20px,4vw,46px) 1rem}
.challenge-howto p{margin:.2rem 0 .7rem;font:650 .88rem/1.5 system-ui,sans-serif}
.challenge-howto ol{display:grid;gap:.35rem;margin:.65rem 0 .85rem;padding-left:1.4rem;font:650 .86rem/1.45 system-ui,sans-serif}
.challenge-road{display:grid;grid-template-columns:repeat(5,1fr);background:#e7dcc7;border-bottom:1px solid #cbbba0}
.challenge-road button{display:grid;grid-template-columns:auto 1fr;gap:.45rem;align-items:center;min-height:62px;padding:.6rem .75rem;border:0;border-right:1px solid #cbbba0;background:transparent;color:#596070;font:800 .72rem/1.2 system-ui,sans-serif;text-align:left;cursor:pointer}
.challenge-road button b{display:grid;place-items:center;width:1.7rem;height:1.7rem;border:1px solid currentColor;border-radius:50%}
.challenge-road button[data-state="current"]{background:var(--jd-coral);color:#fff}
.challenge-road button[data-state="passed"]{background:#dbe6de;color:#24553d}
.challenge-road button:disabled{cursor:not-allowed;opacity:.58}
.challenge-road button:not(:disabled):hover,.challenge-road button:not(:disabled):focus-visible{box-shadow:inset 0 -4px var(--jd-gold);outline:0}
.challenge-panel{padding:clamp(22px,5vw,64px)}
.panel-intro{max-width:900px;margin-bottom:1.25rem}
.panel-intro>p,.challenge-result>header>p{margin:0;color:#9d352c;font:900 .68rem/1.3 system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.panel-intro h3,.challenge-result>header h3{margin:.25rem 0 .35rem;color:var(--jd-night);font-size:clamp(1.8rem,4vw,3.5rem);line-height:.94;letter-spacing:-.05em}
.panel-intro>span,.challenge-result>header>span{display:block;max-width:820px;color:#5c5d65;font:650 .94rem/1.5 system-ui,sans-serif}
.small-help,.reading-check{max-width:860px;margin:0 0 1.2rem;border:1px solid #c9b998;background:#fffaf0}
.small-help summary,.reading-check summary{padding:.8rem 1rem;color:#704a14;font:850 .77rem/1.3 system-ui,sans-serif;cursor:pointer}
.small-help p,.small-help small,.reading-check p{display:block;margin:.3rem 1rem .9rem;color:#4d4a45;font-size:.9rem;line-height:1.5}
.writing-field{display:grid;gap:.45rem;max-width:940px;margin:1rem 0 1.3rem}
.writing-field>span{color:#252b3d;font:900 .82rem/1.25 system-ui,sans-serif;letter-spacing:.07em;text-transform:uppercase}
.writing-field>span em{color:#6f7280;font-size:.68rem;font-style:normal}
.writing-field>small{color:#62636a;font:650 .78rem/1.4 system-ui,sans-serif}
.writing-field textarea{width:100%;min-height:120px;padding:1rem;border:2px solid #b9aa8d;border-radius:2px;background:#fffdf7;color:#1f2330;font:500 1.03rem/1.58 Georgia,serif;resize:vertical;box-shadow:inset 0 2px 8px rgba(55,44,25,.05)}
.writing-field textarea:focus{border-color:#316f89;outline:3px solid rgba(91,183,208,.23)}
.character-counter{justify-self:end;color:#8a5f16;font:850 .72rem/1.2 system-ui,sans-serif}
.character-counter[data-ready="true"]{color:#276044}
.optional-field{margin-top:1.8rem;padding-top:1.4rem;border-top:1px solid #d8cdb9}
.challenge-feedback{min-height:2.8rem;max-width:940px;margin:1rem 0 .65rem;padding:.7rem .9rem;border-left:4px solid var(--jd-blue);background:#edf6f8;color:#345561;font:700 .82rem/1.4 system-ui,sans-serif}
.challenge-feedback[data-kind="help"]{border-left-color:var(--jd-gold);background:#fff5d7;color:#684f19}
.panel-actions,.result-actions{display:flex;flex-wrap:wrap;gap:.7rem;max-width:940px}
.panel-actions button,.result-actions button{border-color:var(--jd-night);background:var(--jd-night);color:#fff}
.panel-actions button.secondary,.result-actions button.secondary{background:transparent;color:var(--jd-night)}
.result-actions button:disabled{cursor:not-allowed;opacity:.52;transform:none!important;background:transparent!important;color:#6d6d72!important}

.lexicon-sun{position:relative;display:grid;place-items:center;width:min(720px,100%);min-height:430px;margin:1.4rem auto 2rem;padding:110px 150px;background:radial-gradient(circle,rgba(239,190,67,.22),transparent 48%)}
.lexicon-center{position:relative;z-index:2;display:grid;align-content:center;width:260px;min-height:160px;padding:1.1rem;border:5px double #8c6815;border-radius:50%;background:var(--jd-gold);color:var(--jd-night);text-align:center;box-shadow:0 0 0 12px rgba(239,190,67,.2)}
.lexicon-center span{font:900 .65rem/1.2 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.lexicon-center p{margin:.35rem 0 0;font:700 .9rem/1.35 Georgia,serif}
.lexicon-rays{position:absolute;inset:0}
.lexicon-rays button{--angle:calc(var(--ray) * 36deg - 90deg);position:absolute;left:50%;top:50%;width:120px;min-height:42px;padding:.45rem .55rem;border:1px solid #9b865f;background:#fffaf0;color:#3b3d49;font:800 .72rem/1.2 system-ui,sans-serif;cursor:pointer;transform:translate(-50%,-50%) rotate(var(--angle)) translateX(245px) rotate(calc(-1 * var(--angle)));box-shadow:0 5px 13px rgba(30,29,29,.09)}
.lexicon-rays button::before{content:"";position:absolute;right:100%;top:50%;width:70px;height:2px;background:#b79238;transform-origin:right}
.lexicon-rays button[aria-pressed="true"]{border-color:#2f7388;background:#dff3f6;color:#164c5c;box-shadow:0 0 0 3px rgba(91,183,208,.25)}
.proof-card{max-width:940px;margin:1.2rem 0;padding:clamp(18px,3vw,34px);border-left:8px solid var(--jd-gold);background:#fff;color:var(--jd-ink);box-shadow:0 15px 38px rgba(20,25,38,.12)}
.argument-reminder{max-width:940px;margin:1rem 0;padding:.85rem 1rem;border-left:5px solid var(--jd-blue);background:#eaf5f7}
.argument-reminder span{display:block;margin-bottom:.3rem;color:#326477;font:900 .66rem/1.2 system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.argument-reminder p{margin:0;color:#25313c;font:700 .96rem/1.45 Georgia,serif}
.proof-card blockquote,.assembled-paragraph blockquote{margin:0;padding:0;border:0;background:transparent;color:inherit;font:600 clamp(1.1rem,2.4vw,1.4rem)/1.55 Georgia,serif}
.proof-card cite,.assembled-paragraph cite{display:block;margin-top:.7rem;color:#6f6870;font:800 .65rem/1.2 system-ui,sans-serif;letter-spacing:.07em}
.proof-card--small{padding:1rem 1.2rem}
.proof-card--small blockquote{font-size:1rem}
.proof-check{display:flex;gap:.55rem;align-items:flex-start;max-width:940px;margin:1rem 0 1.5rem;color:#3f424d;font:750 .88rem/1.45 system-ui,sans-serif}
.proof-check input{width:1.2rem;height:1.2rem;margin-top:.08rem;accent-color:#2f7388}

.challenge-result>header{max-width:900px;margin-bottom:1.5rem}
.assembled-paragraph{max-width:940px;padding:clamp(20px,4vw,46px);border:1px solid #c7bca6;border-top:8px solid var(--jd-gold);background:#fffdf7;color:#252730;box-shadow:0 18px 48px rgba(20,25,38,.12)}
.assembled-paragraph>p{margin:0 0 1rem;font:500 1.02rem/1.7 Georgia,serif}
.assembled-paragraph .assembled-argument{font-weight:700}
.assembled-paragraph .assembled-justification strong{padding:0 .08rem;background:linear-gradient(transparent 58%,rgba(239,190,67,.48) 58%)}
.assembled-paragraph blockquote{margin:1.25rem 0;padding:1rem 1.15rem;border-left:6px solid var(--jd-coral);background:#f7efe0}
.assembled-paragraph .assembled-recap{font-weight:700;color:#293f38}
.assembled-paragraph .assembled-liaison{margin:1.4rem 0 0;padding-top:1rem;border-top:1px solid #d7cbb5;color:#38536c;font-style:italic}
.reading-check{max-width:940px;margin:1.25rem 0}
.reading-check p{font-family:Georgia,serif}
.premiere-reveal{margin:0;padding:clamp(30px,7vw,90px);text-align:center;background:linear-gradient(145deg,#3f1723,#10172a);border:10px double var(--jd-gold)}
.premiere-reveal>p{margin:0;color:#f2c6bc;font:900 .7rem/1.3 system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.premiere-reveal h2{margin:.25rem 0;color:#fff;font-size:clamp(2.5rem,6vw,5.5rem);line-height:.9}
.premiere-reveal blockquote{max-width:780px;margin:1.2rem auto;padding:1.2rem;border:1px solid var(--jd-gold);color:#fff4d2;font:700 clamp(1.2rem,2.4vw,1.7rem)/1.45 Georgia,serif}
.premiere-reveal a{display:inline-block;padding:.8rem 1rem;background:var(--jd-gold);color:var(--jd-night);font:900 .8rem/1.2 system-ui,sans-serif;text-decoration:none}
.reset-all{display:block;margin:.5rem 0 1rem auto;padding:.5rem;border:0;background:transparent;color:#aab4c8;font:650 .72rem/1.2 system-ui,sans-serif;text-decoration:underline;cursor:pointer}
.light-flash .repetition-workspace{animation:light-rise .55s ease-out}
@keyframes light-rise{0%{box-shadow:inset 0 0 0 999px rgba(16,23,42,.5)}55%{box-shadow:inset 0 0 75px rgba(239,190,67,.65)}100%{box-shadow:none}}

@media(max-width:760px){
  body[data-page="jeux"] .subject-box{grid-template-columns:1fr}
  body[data-page="jeux"] .subject-box h2{grid-row:auto}
  .repetition-console__title{grid-template-columns:1fr}.repetition-console__title>span{text-align:left}
  .repetition-lights{grid-template-columns:repeat(10,minmax(24px,1fr));gap:6px}
  .repetition-welcome{min-height:0}.welcome-curtain{display:none}
  .challenge-header{grid-template-columns:1fr}
  .challenge-road button{display:grid;place-items:center;padding:.5rem .2rem;text-align:center}.challenge-road button span{font-size:.62rem}.challenge-road button b{width:1.55rem;height:1.55rem}
  .lexicon-sun{display:block;min-height:0;padding:0;background:none}.lexicon-center{width:auto;min-height:0;margin-bottom:.8rem;border-radius:3px}.lexicon-rays{position:static;display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.lexicon-rays button{position:relative;left:auto;top:auto;width:auto;min-height:44px;transform:none}.lexicon-rays button::before{display:none}
}
@media(max-width:430px){.repetition-lights{grid-template-columns:repeat(6,minmax(24px,1fr))}.challenge-road button span{display:none}.challenge-panel{padding-inline:16px}.repetition-welcome{padding-inline:20px}}
@media(prefers-reduced-motion:reduce){.repetition-console button,.repetition-welcome button,.panel-actions button,.result-actions button{transition:none}.light-flash .repetition-workspace{animation:none}}
@media print{body.dissertation-game-v2 .page-hero,body.dissertation-game-v2 #rail-oeuvre,body.dissertation-game-v2 .main-nav,body.dissertation-game-v2 .subject-box,body.dissertation-game-v2 .repetition-console,body.dissertation-game-v2 .challenge-header,body.dissertation-game-v2 .challenge-road,body.dissertation-game-v2 .panel-intro,body.dissertation-game-v2 .reading-check,body.dissertation-game-v2 .result-actions,body.dissertation-game-v2 .reset-all,body.dissertation-game-v2 footer{display:none!important}body.dissertation-game-v2 .dissertation-stage,body.dissertation-game-v2 .repetition-workspace,body.dissertation-game-v2 .challenge-panel{margin:0;padding:0;background:#fff;box-shadow:none}body.dissertation-game-v2 .assembled-paragraph{max-width:none;border:0;box-shadow:none}}
