@import "https://fonts.googleapis.com/css2?family=Nunito:wght@700;800;900&display=swap";.mo-screen{width:100%;height:100%;display:none;overflow:hidden auto}.mo-screen.active{flex-direction:column;display:flex}#mo-settings{padding:28px 28px 40px}.mo-sett{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;width:100%;max-width:1120px;margin:0 auto;display:grid}.mo-sett-col{flex-direction:column;gap:20px;min-width:0;display:flex}.mo-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;gap:14px;padding:22px 24px;display:flex}.mo-block-h{font-family:var(--font-display);color:var(--text);letter-spacing:-.01em;margin:0;font-size:1.35rem;font-style:italic;font-weight:600}.mo-sub{font:700 .78rem var(--font-ui);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.mo-note{color:var(--muted);margin:0;font-size:.82rem;line-height:1.45}.mo-apercu{color:var(--muted);min-height:1.2em;margin:0;font-size:.82rem;line-height:1.5}.mo-apercu strong{color:var(--text)}.mo-err{color:var(--unread);background:var(--unread-bg);border-radius:var(--r-sm);margin:0;padding:10px 14px;font-size:.88rem;font-weight:600}.mo-err[hidden]{display:none}.mo-screen [hidden]{display:none!important}.mo-modes{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mo-mode,.mo-rep,.mo-jeu{border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;font-family:var(--font-ui);flex-direction:column;align-items:flex-start;gap:4px;min-height:56px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.mo-mode:hover,.mo-rep:hover,.mo-jeu:hover:not(:disabled){border-color:var(--accent)}.mo-mode[aria-pressed=true],.mo-rep[aria-pressed=true],.mo-jeu[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint)}.mo-mode-name,.mo-rep-name{font-size:.98rem;font-weight:700}.mo-mode[aria-pressed=true] .mo-mode-name,.mo-rep[aria-pressed=true] .mo-rep-name{color:var(--accent-hover)}.mo-mode-age{font:700 .72rem var(--font-ui);color:var(--muted)}.mo-rep-desc{color:var(--muted);font-size:.8rem;line-height:1.35}.mo-reps{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mo-mini{align-items:center;gap:3px;height:22px;margin-bottom:4px;display:flex}.mo-mini b{width:16px;height:16px;display:block}.mo-mini b.r{background:#e0493e;border-radius:50%}.mo-mini b.c{background:#2f6fd6;border-radius:3px}.mo-mini b.t{border-bottom:16px solid #2e9e5b;border-left:9px solid #0000;border-right:9px solid #0000;width:0;height:0}.mo-mini b.e{clip-path:polygon(50% 0,62% 35%,100% 38%,70% 60%,80% 100%,50% 78%,20% 100%,30% 60%,0 38%,38% 35%);background:#f2c12e}.mo-mini b.x{outline:2.5px solid var(--unread);outline-offset:2px}.mo-mini i{border:1.5px dashed var(--accent);width:16px;height:18px;font:900 .72rem "Nunito", var(--font-ui);color:var(--accent);border-radius:3px;place-items:center;font-style:normal;display:grid}.mo-mini u{background:repeating-linear-gradient(135deg, var(--accent) 0 4px, var(--accent-hover) 4px 8px);width:19px;height:20px;margin:0 -3px 0 0;display:block}.mo-mini s{width:6px}.mo-mini span{color:var(--muted);padding:0 2px;font-size:.8rem}.mo-presets{flex-wrap:wrap;gap:8px;display:flex}.mo-preset{border:1px dashed var(--border-strong);border-radius:var(--r-pill);font:600 .85rem var(--font-ui);color:var(--muted);cursor:pointer;background:0 0;padding:8px 14px}.mo-preset:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-tint)}.mo-structs{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mo-structs .mo-sub{flex-basis:100%}.mo-struct{border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface);min-height:46px;color:var(--text);cursor:pointer;font-family:var(--font-ui);align-self:stretch;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.mo-struct:hover{border-color:var(--accent)}.mo-struct[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.mo-struct-code{font:800 1.05rem "Nunito", var(--font-ui);letter-spacing:.06em}.mo-struct-age,.mo-struct-lbl{opacity:.7;font-size:.72rem;font-weight:600}.mo-struct--evo{flex-direction:column;justify-content:center;align-items:flex-start;gap:0;padding:6px 14px}.mo-struct--evo .mo-struct-code{letter-spacing:.02em;font-size:.92rem}.mo-atrouver{flex-direction:column;gap:8px;display:flex}.mo-pills{flex-wrap:wrap;gap:8px;display:flex}.mo-pill{border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface);min-width:56px;min-height:48px;font:700 1rem var(--font-ui);color:var(--text);cursor:pointer;padding:0 18px;transition:border-color .15s,background .15s,color .15s}.mo-pill:hover{border-color:var(--accent);color:var(--accent)}.mo-pill[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.mo-jeux{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.mo-jeu{gap:6px}.mo-jeu:disabled{opacity:.45;cursor:not-allowed}.mo-jeu-apercu{gap:4px;height:28px;display:flex}.mo-jeu-obj{width:28px;height:28px;display:block}.mo-jeu-obj svg,.mo-jeu-obj img{object-fit:contain;width:100%;height:100%;display:block}.mo-jeu-obj img{border-radius:4px}.mo-jeu-nom{font-size:.88rem;font-weight:700}.mo-jeu-note{color:var(--muted);font-size:.72rem}.mo-fam-head{border-top:1px solid var(--border-light);justify-content:space-between;align-items:baseline;gap:12px;padding-top:6px;display:flex}.mo-lien{font:600 .85rem var(--font-ui);color:var(--accent)}.mo-lien:hover{text-decoration:underline}.mo-start{border-radius:var(--r-lg);background:var(--accent);color:#fff;width:100%;font:700 1.2rem var(--font-ui);cursor:pointer;border:none;justify-content:center;align-items:center;gap:12px;padding:20px;transition:background .15s,transform .15s;display:flex;box-shadow:0 6px 18px #c25a3847}.mo-start svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.mo-start:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.mo-start:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}#mo-game{gap:10px;padding:14px 24px 16px}.mo-top{flex-shrink:0;align-items:center;gap:10px;display:flex}.mo-scores{gap:8px;display:flex}.mo-score{border-radius:var(--r-md);font:800 1.3rem "Nunito", var(--font-ui);font-variant-numeric:tabular-nums;align-items:center;gap:8px;padding:6px 16px;display:inline-flex}.mo-score:before{content:"";width:18px;height:18px;mask:var(--ico) center / contain no-repeat;-webkit-mask:var(--ico) center / contain no-repeat;background:currentColor}.mo-score--ok{background:var(--success-bg);color:var(--success);--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5 9.5 18 20 6'/%3E%3C/svg%3E")}.mo-score--ko{background:var(--unread-bg);color:var(--unread);--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E")}.mo-progress{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.mo-progress-txt{font:700 1.05rem var(--font-ui);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.mo-bar{background:var(--surface-alt);border-radius:99px;flex:1;height:8px;overflow:hidden}.mo-bar-fill{background:var(--accent);transform-origin:0;border-radius:99px;width:100%;height:100%;transition:transform .5s cubic-bezier(.16,1,.3,1);transform:scaleX(0)}.mo-ghost{border:1px solid var(--border);border-radius:var(--r-md);color:var(--muted);font:600 .88rem var(--font-ui);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:9px 14px;display:inline-flex}.mo-ghost svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.mo-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-tint)}.mo-ghost[aria-pressed=true]{border-color:var(--accent);color:var(--accent-hover);background:var(--accent-tint)}.mo-ghost--stop:hover{border-color:var(--unread);color:var(--unread);background:var(--unread-bg)}.mo-consigne{text-align:center;flex-direction:column;flex-shrink:0;gap:2px;margin:0;display:flex}.mo-consigne-main{font-family:var(--font-display);color:var(--accent);letter-spacing:-.015em;font-size:clamp(2rem,4.8vh,3.3rem);font-style:italic;font-weight:600;line-height:1.05}.mo-consigne-sub{font:600 clamp(1rem, 2.2vh, 1.3rem) var(--font-ui);color:var(--muted)}.mo-stage{--cell:110px;--gap:calc(var(--cell) * .1);justify-content:center;align-items:center;gap:calc(var(--cell) * .35);flex-direction:column;flex:1 1 0;min-height:0;display:flex;overflow:hidden}.mo-stage.dispo-tour{align-items:flex-end;gap:calc(var(--cell) * .9);flex-direction:row}.mo-bande{justify-content:center;align-items:center;gap:var(--gap) calc(var(--gap) * 1.6);flex-wrap:wrap;max-width:100%;display:flex}.mo-bande.is-tour{flex-flow:column-reverse}.mo-bande.is-vague{padding:calc(var(--cell) * .45) 0}.mo-groupe{gap:var(--gap);padding:calc(var(--cell) * .08);border:3px solid #0000;border-radius:999px;transition:border-color .2s,background .2s;display:flex}.mo-bande.is-tour .mo-groupe{border-radius:calc(var(--cell) * .6);flex-direction:column-reverse}.show-paquets .mo-groupe{border-color:var(--accent);background:var(--accent-tint)}.mo-case{width:var(--cell);height:var(--cell);border-radius:calc(var(--cell) * .16);background:var(--surface);box-shadow:var(--shadow-sm);font:inherit;color:inherit;border:none;flex-shrink:0;place-items:center;padding:0;display:grid;position:relative}.is-vague .mo-case{transform:translateY(calc(var(--dy,0) * var(--cell) * -.35))}button.mo-case{cursor:pointer;transition:transform .12s,box-shadow .15s}button.mo-case:hover:not(:disabled){box-shadow:0 0 0 4px var(--accent)}button.mo-case:disabled{cursor:default}.mo-case-obj{place-items:center;width:84%;height:84%;display:grid}.mo-case-obj svg,.mo-case-obj img{object-fit:contain;width:100%;height:100%;display:block}.mo-case-obj img{border-radius:calc(var(--cell) * .08)}.mo-case.is-mystere{background:var(--accent-tint);box-shadow:none;outline:3px dashed var(--accent);outline-offset:-3px}.mo-q{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:calc(var(--cell) * .62);color:var(--accent);user-select:none;line-height:1;position:absolute}.mo-case.is-cache{background:repeating-linear-gradient(135deg, var(--accent) 0 12px, var(--accent-hover) 12px 24px);box-shadow:var(--shadow-md);border-radius:0}.mo-case.is-cache:after{content:"";top:0;bottom:0;right:calc(var(--gap) * -1.7);width:calc(var(--gap) * 1.8);background:inherit;position:absolute}.mo-case.is-cache:has(+.mo-case:not(.is-cache)):after,.mo-case.is-cache:last-child:after{display:none}.mo-case.is-active{outline:5px solid var(--accent);outline-offset:3px;background:var(--accent-light)}.mo-case.is-revealed{outline:3px solid var(--accent);outline-offset:-3px;background:var(--surface)}.mo-case.is-good{outline-color:var(--success)}.mo-case.is-bad{outline:4px solid var(--unread);outline-offset:-4px}.mo-case.is-intrus{outline:5px solid var(--unread);outline-offset:3px;animation:.45s ease-out mo-shake}.mo-bulle{top:calc(var(--cell) * -.62);width:calc(var(--cell) * .55);height:calc(var(--cell) * .55);background:var(--success-bg);outline:3px solid var(--success);border-radius:50%;place-items:center;padding:4px;display:grid;position:absolute;left:50%;translate:-50%}.mo-bulle svg,.mo-bulle img{object-fit:contain;border-radius:50%;width:100%;height:100%}.mo-lettre{bottom:calc(var(--cell) * -.42);font:900 calc(var(--cell) * .26) "Nunito", var(--font-ui);color:var(--muted);display:none;position:absolute}.show-lettres .mo-lettre{display:block}.mo-case.is-mystere .mo-lettre,.mo-case.is-cache .mo-lettre{visibility:hidden}.dispo-tour .mo-lettre{bottom:auto;left:calc(var(--cell) * -.34)}.show-lettres .mo-bande:not(.is-tour){padding-bottom:calc(var(--cell) * .4)}.mo-bande--reponse .mo-case.is-mystere{background:var(--surface-alt)}.mo-palette{border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:8px 18px;display:flex}.mo-palette-lbl{font:700 1rem var(--font-ui);color:var(--muted)}.mo-palette-obj{width:calc(var(--cell) * .5);height:calc(var(--cell) * .5);min-width:36px;min-height:36px}.mo-palette-obj svg,.mo-palette-obj img{object-fit:contain;width:100%;height:100%}.dispo-tour .mo-palette{border-radius:var(--r-lg);flex-direction:column;align-self:center}.mo-note--stage{text-align:center;font-size:1rem}.mo-flip{animation:.55s cubic-bezier(.16,1,.3,1) both mo-flip}@keyframes mo-flip{0%{opacity:0;transform:perspective(900px)rotateY(-80deg)scale(.9)}to{opacity:1;transform:perspective(900px)rotateY(0)scale(1)}}@keyframes mo-shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}45%{transform:translate(8px)}70%{transform:translate(-5px)}}.mo-actions{flex-shrink:0;justify-content:center;align-items:center;gap:12px;min-height:76px;display:flex}.mo-hint{font:600 1.1rem var(--font-ui);color:var(--muted);margin:0}.mo-act{border-radius:var(--r-md);max-width:520px;min-height:76px;font:800 clamp(1.1rem, 2.4vh, 1.45rem) var(--font-ui);cursor:pointer;color:#fff;border:none;flex:1 1 0;justify-content:center;align-items:center;gap:12px;transition:filter .15s,transform .12s;display:inline-flex}.mo-act svg{fill:none;stroke:currentColor;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round;width:28px;height:28px}.mo-act:hover{filter:brightness(1.06);transform:translateY(-1px)}.mo-act--reveal,.mo-act--next{background:var(--text)}.mo-act--ok{background:var(--success)}.mo-act--ko{background:var(--unread)}.mo-choice{border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface);cursor:pointer;width:clamp(96px,14vh,150px);height:clamp(96px,14vh,150px);box-shadow:var(--shadow-sm);flex:0 auto;padding:14px;transition:border-color .15s,transform .12s,background .15s;position:relative}.mo-choice svg,.mo-choice img{object-fit:contain;width:100%;height:100%;display:block}.mo-choice:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px)}.mo-choice-key{font:500 .72rem var(--font-mono);color:var(--subtle);position:absolute;top:6px;left:9px}.mo-choice.is-good{background:var(--success-bg);border-color:var(--success)}.mo-choice.is-bad{background:var(--unread-bg);border-color:var(--unread);animation:.4s ease-out mo-shake}.mo-choice:disabled{cursor:default}.mo-actions.has-choices{min-height:clamp(96px,14vh,150px)}.mo-kbd{text-align:center;color:var(--muted);flex-shrink:0;margin:0;font-size:.78rem}.mo-kbd kbd{font-family:var(--font-mono);background:var(--surface-alt);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:.74rem}@media (hover:none) and (pointer:coarse){.mo-kbd{display:none}}#mo-end{justify-content:center;align-items:center;gap:18px;padding:32px 28px}.mo-end{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:620px;box-shadow:var(--shadow-md);text-align:center;flex-direction:column;align-items:center;gap:26px;padding:40px 44px;display:flex}.mo-end-title{font-family:var(--font-display);color:var(--text);margin:0;font-size:clamp(2.2rem,5vw,3.2rem);font-style:italic;font-weight:600;line-height:1}.mo-end-scores{align-items:center;display:flex}.mo-end-item{flex-direction:column;align-items:center;gap:6px;display:flex}.mo-end-div{background:var(--border);width:1px;height:64px;margin:0 36px}.mo-end-num{font:900 clamp(3.5rem, 10vw, 5rem)/1 "Nunito", var(--font-ui);font-variant-numeric:tabular-nums}.mo-end-num--ok{color:var(--success)}.mo-end-num--ko{color:var(--unread)}.mo-end-lbl{font:600 .9rem var(--font-ui);color:var(--muted)}.mo-end-actions{flex-direction:column;gap:10px;width:100%;max-width:620px;display:flex}.mo-restart{border-radius:var(--r-lg);background:var(--text);color:#fff;font:700 1.05rem var(--font-ui);cursor:pointer;border:none;padding:18px}.mo-restart:hover{filter:brightness(1.2)}.mo-back{border:1px solid var(--border);border-radius:var(--r-lg);color:var(--muted);font:600 .95rem var(--font-ui);cursor:pointer;background:0 0;padding:14px}.mo-back:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-tint)}.mo-modal{z-index:300;background:#0e2a2d8c;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.mo-modal.open{display:flex}.mo-modal-box{background:var(--surface);border-radius:var(--r-lg);width:90%;max-width:380px;box-shadow:var(--shadow-lg);text-align:center;padding:30px 28px}.mo-modal-box h3{font:700 1.2rem var(--font-ui);color:var(--text);margin:0 0 8px}.mo-modal-box p{color:var(--muted);margin:0 0 22px;font-size:.92rem}.mo-modal-actions{gap:10px;display:flex}.mo-modal-actions button{border-radius:var(--r-md);font:700 .95rem var(--font-ui);cursor:pointer;flex:1;padding:13px}.mo-m-cancel{background:var(--surface);color:var(--text);border:1.5px solid var(--border)}.mo-m-confirm{background:var(--accent);color:#fff;border:none}#mo-settings button,#mo-game button,#mo-end button,.mo-modal button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}:where(#mo-settings,#mo-game,#mo-end,.mo-modal) :where(button,a):focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.mo-flip,.mo-choice.is-bad,.mo-case.is-intrus{animation:none!important}.mo-bar-fill{transition:none}}@media (width<=860px){#mo-settings{padding:20px 16px 32px}.mo-sett{grid-template-columns:minmax(0,1fr)}}@media (width<=520px){.mo-modes,.mo-reps{grid-template-columns:minmax(0,1fr)}#mo-game{padding:10px 16px 14px}.mo-top{flex-wrap:wrap}.mo-progress{flex-basis:100%;order:-1}.mo-ghost-lbl{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mo-scores{flex:1}}.mo-case.is-cible{cursor:pointer}.mo-case.is-propose{outline:3px solid var(--border-strong);outline-offset:-3px;background:var(--surface)}.mo-case.is-propose.is-active,button.mo-case.is-choisi{outline:5px solid var(--accent);outline-offset:3px;background:var(--accent-light)}.mo-act--verif{background:var(--accent);flex:none;min-width:220px;margin-left:16px}.mo-act--verif:disabled{opacity:.35;cursor:not-allowed;filter:none;transform:none}
