@font-face{font-family:Public Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/public-sans-400.woff2)format("woff2")}@font-face{font-family:Public Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/public-sans-700.woff2)format("woff2")}@font-face{font-family:Public Sans;font-style:normal;font-weight:900;font-display:swap;src:url(../fonts/public-sans-900.woff2)format("woff2")}:root{--violet:#4c0297;--violet-fonce:#2c0157;--rouge:#d1271c;--rouge-vif:#f91616;--creme:#fffcf4;--charbon:#212320;--jaune:#f9c900;--texte-doux:#5b5d55;--ombre-plate:3px 3px 0 var(--charbon);--ombre-plate-sm:2px 2px 0 var(--charbon);--ombre-modale:6px 6px 0 var(--charbon)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{height:100%}body{color:var(--charbon);background:var(--creme);font-family:Public Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#jeu{flex-direction:column;height:100dvh;display:flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.pilule-rouge{border:2.5px solid var(--charbon);background:var(--rouge);color:var(--creme);cursor:pointer;box-shadow:var(--ombre-plate);border-radius:999px;padding:13px 26px;font:700 17px Public Sans,sans-serif;transition:transform .1s,box-shadow .1s,background .15s}.pilule-rouge:hover:not(:disabled){background:var(--rouge-vif)}.pilule-rouge:active:not(:disabled){box-shadow:0 0 0 var(--charbon);transform:translate(3px,3px)}.pilule-rouge:disabled{opacity:.75;cursor:wait}.pilule-bordee{border:2.5px solid var(--charbon);background:var(--creme);color:var(--charbon);cursor:pointer;box-shadow:var(--ombre-plate-sm);border-radius:999px;padding:10px 18px;font:700 15px Public Sans,sans-serif;transition:transform .1s,box-shadow .1s,background .15s}.pilule-bordee:hover{background:var(--jaune)}.pilule-bordee:active{box-shadow:0 0 0 var(--charbon);transform:translate(2px,2px)}.pilule-retour{border:2px solid var(--charbon);background:var(--creme);min-height:44px;color:var(--charbon);cursor:pointer;box-shadow:var(--ombre-plate-sm);border-radius:999px;align-items:center;padding:4px 14px;font:700 14px Public Sans,sans-serif;text-decoration:none;display:inline-flex}.pilule-retour:active{box-shadow:0 0 0 var(--charbon);transform:translate(2px,2px)}:focus-visible{outline:3px solid var(--rouge);outline-offset:3px}.label-ecran{letter-spacing:.12em;text-transform:uppercase;color:var(--texte-doux);font-size:12px;font-weight:700}.ecran{flex-direction:column;flex:1;min-height:0;display:none}.ecran.actif{display:flex}.qg-haut{padding:max(12px, env(safe-area-inset-top)) 16px 0}.qg-corps{padding:12px 20px calc(20px + env(safe-area-inset-bottom));text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;width:100%;max-width:480px;margin:0 auto;display:flex}.titre-jeu{letter-spacing:-.01em;font-size:clamp(38px,10vw,54px);font-weight:900;line-height:1}.tj-mili{color:var(--violet)}.tj-memory{color:var(--rouge)}.niveaux{flex-direction:column;gap:10px;width:100%;margin-top:8px;display:flex}.niveau{border:2.5px solid var(--charbon);cursor:pointer;text-align:left;width:100%;min-height:56px;box-shadow:var(--ombre-plate-sm);background:#fff;border-radius:14px;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 14px;font-family:inherit;transition:transform .1s,box-shadow .1s,background .15s;display:flex}.niveau b{font-size:16px;font-weight:800}.niveau small{color:var(--texte-doux);font-size:12.5px}.niveau[aria-checked=true]{background:var(--violet);color:var(--creme);box-shadow:var(--ombre-plate)}.niveau[aria-checked=true] small{color:#fffcf4d9}.niveau:active{box-shadow:0 0 0 var(--charbon);transform:translate(2px,2px)}#btn-jouer{min-width:210px;margin-top:10px}.points i{font-style:normal;animation:1.2s step-end infinite point-pulse}.points i:nth-child(2){animation-delay:.4s}.points i:nth-child(3){animation-delay:.8s}@keyframes point-pulse{0%,to{opacity:1}50%{opacity:.15}}.terrain-haut{min-height:52px;padding:max(8px, env(safe-area-inset-top)) 12px 8px;border-bottom:2px solid var(--charbon);background:var(--creme);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.label-terrain{text-align:center;flex:1}.scores{gap:8px;display:flex}.pastille-score{border:2px solid var(--charbon);text-align:center;background:#fff;border-radius:10px;min-width:86px;padding:5px 10px;font-size:13px;font-weight:700;display:inline-block}.pastille-score b{font-weight:900;display:inline-block}.pastille-score b.pop{animation:.25s score-pop}@keyframes score-pop{50%{transform:scale(1.35)}}.toast-jeu{z-index:5;border:2px solid var(--charbon);background:var(--creme);max-width:92%;box-shadow:var(--ombre-plate-sm);text-align:center;opacity:0;pointer-events:none;border-radius:12px;padding:7px 14px;font-size:13.5px;font-weight:700;transition:opacity .16s,transform .16s;position:absolute;top:66px;left:50%;transform:translate(-50%)translateY(-4px)}.toast-jeu.visible{opacity:1;transform:translate(-50%)translateY(0)}#ecran-terrain{position:relative}.plateau{grid-template-columns:repeat(var(--cols,4), var(--taille,80px));grid-auto-rows:var(--taille,80px);gap:var(--gap,10px);flex:1;place-content:center;min-height:0;padding:10px 12px;display:grid}.terrain-bas{padding:8px 12px max(12px, env(safe-area-inset-bottom));justify-content:center;display:flex}@media (width<=559px){.label-terrain{display:none}.terrain-haut{padding:max(6px, env(safe-area-inset-top)) 10px 6px;flex-wrap:nowrap;gap:6px;min-height:0}.terrain-haut .pilule-retour{min-height:38px;padding:3px 11px;font-size:13px}.scores{flex:1;justify-content:center;gap:6px}.pastille-score{white-space:nowrap;border-radius:9px;min-width:0;padding:4px 9px;font-size:12.5px}.btn-sons{width:38px;height:38px;font-size:15px}.toast-jeu{top:56px}}.carte{cursor:pointer;perspective:900px;border-radius:var(--carte-r,14px);-webkit-user-select:none;user-select:none;touch-action:manipulation;background:0 0;border:none;width:100%;height:100%;padding:0;font-family:inherit;position:relative}.c3d{transform-style:preserve-3d;border-radius:inherit;transition:transform .38s cubic-bezier(.3,.85,.35,1.08);position:absolute;inset:0}.carte.retournee .c3d{transform:rotateY(180deg)}.face{backface-visibility:hidden;border-radius:inherit;background:var(--violet);border:2px solid var(--violet-fonce);box-shadow:var(--ombre-plate-sm);padding:4.5%;position:absolute;inset:0;overflow:hidden}.face img{object-fit:cover;border-radius:calc(var(--carte-r,14px) * .55);pointer-events:none;width:100%;height:100%;display:block}.face-avant{transform:rotateY(180deg)}.nom-v{writing-mode:vertical-rl;color:#fff;font-weight:800;font-size:clamp(9px, calc(var(--taille,90px) * .115), 17px);letter-spacing:.02em;text-shadow:0 1px 2px #1e003cd9;pointer-events:none;justify-content:center;align-items:center;max-height:100%;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.nom-g{left:4.5%;transform:rotate(180deg)}.nom-d{right:4.5%}.dos-bandeau{border-radius:0 0 calc(var(--carte-r,14px) * .55) calc(var(--carte-r,14px) * .55);text-align:center;font-weight:900;font-size:clamp(9px, calc(var(--taille,90px) * .13), 20px);pointer-events:none;background:#fff;padding:4% 0;position:absolute;bottom:4.5%;left:4.5%;right:4.5%}.dos-bandeau b{color:var(--violet)}.dos-bandeau i{color:var(--rouge);font-style:normal}@media (hover:hover) and (pointer:fine){.carte:not(.retournee):not(.appariee):hover{transform:translateY(-3px)}.carte:not(.retournee):not(.appariee):hover .face{box-shadow:5px 5px #212320cc}.carte{transition:transform .12s}}.carte:not(.retournee):not(.appariee):active .c3d{transform:translate(2px,2px)}.carte.appariee{cursor:default}.carte.appariee .c3d{transform:rotateY(180deg)scale(.97)}.carte.appariee .face-avant{border-color:var(--jaune);box-shadow:var(--ombre-plate-sm), 0 0 0 2px var(--jaune) inset}.carte.pop-match .c3d{animation:.35s cubic-bezier(.3,1.6,.4,1) pop-match}@keyframes pop-match{45%{transform:rotateY(180deg)scale(1.08)}to{transform:rotateY(180deg)scale(.97)}}.carte.secoue .c3d{animation:.32s secoue}@keyframes secoue{20%{transform:rotateY(180deg)translate(-5px)}45%{transform:rotateY(180deg)translate(5px)}70%{transform:rotateY(180deg)translate(-3px)}to{transform:rotateY(180deg)}}.carte.finale .c3d{animation:.9s ease-in-out infinite alternate finale}.carte.finale:nth-of-type(2n) .c3d{animation-delay:.4s}@keyframes finale{50%{transform:scale(1.03)}}.plateau.ola .carte .c3d{animation:.3s ease-in-out ola;animation-delay:calc(var(--col,0) * 40ms)}@keyframes ola{35%{transform:rotateY(180deg)rotate(-3deg)scale(1.06)}70%{transform:rotateY(180deg)rotate(3deg)scale(1.06)}to{transform:rotateY(180deg)}}.plateau.entree .carte{animation:.3s cubic-bezier(.2,.8,.3,1.15) backwards carte-entree;animation-delay:calc(var(--idx,0) * 22ms)}@keyframes carte-entree{0%{opacity:0;transform:translateY(10px)scale(.92)}}.victoire-overlay{z-index:20;background:#2123208c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.victoire-overlay[hidden]{display:none}.victoire-modale{z-index:2;background:var(--creme);border:3px solid var(--charbon);box-shadow:var(--ombre-modale);text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:400px;max-height:94vh;padding:20px 20px 18px;display:flex;position:relative;overflow-y:auto}.victoire-modale h2{color:var(--violet);border:3px solid var(--charbon);box-shadow:var(--ombre-plate);background:#fff;border-radius:14px;padding:4px 18px;font-size:clamp(34px,9vw,44px);font-weight:900}.partage-format{background:#21232012;border-radius:999px;gap:4px;margin-top:2px;padding:4px;display:inline-flex}.format-btn{cursor:pointer;color:var(--texte-doux);background:0 0;border:none;border-radius:999px;padding:7px 16px;font:700 14px Public Sans,sans-serif}.format-btn.actif{background:var(--charbon);color:var(--creme)}.carte-apercu{border:2.5px solid var(--charbon);box-shadow:var(--ombre-plate-sm);border-radius:10px;width:auto;max-width:min(62vw,210px);height:auto;max-height:46vh;display:block}.carte-apercu.carre{max-width:min(78vw,280px)}.victoire-actions{flex-direction:column;gap:9px;width:100%;margin-top:6px;display:flex}.victoire-actions button{width:100%}#confettis{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.confetti{border:1.5px solid var(--charbon);width:12px;height:12px;animation:linear forwards chute;position:absolute;top:-4vh}.confetti.tri{border:none;border-left:7px solid #0000;border-right:7px solid #0000;border-bottom:13px solid var(--conf,var(--rouge));width:0;height:0;background:0 0!important}@keyframes chute{to{transform:translateY(110vh) rotate(var(--rot,540deg))}}@media (prefers-reduced-motion:reduce){.c3d{transition:none}.plateau.entree .carte,.plateau.ola .carte .c3d,.carte.pop-match .c3d,.carte.secoue .c3d,.carte.finale .c3d{animation:none}.confetti{animation:none;top:auto;bottom:4vh}.toast-jeu{transition:none}.pastille-score b.pop{animation:none}}@media (width>=980px){.carte{--carte-r:16px}.niveaux{flex-direction:row;gap:14px;margin-top:14px}.niveau{border-radius:16px;flex:1;gap:5px;min-height:92px;padding:14px 18px}.niveau b{font-size:19px}.niveau small{font-size:14px}.qg-corps{gap:16px;max-width:760px}.titre-jeu{font-size:82px}#btn-jouer{min-width:280px;margin-top:16px;padding:16px 36px;font-size:20px}}.rail-seulement{display:none}@media (width>=980px){#ecran-terrain{flex-direction:row}.terrain-haut{width:248px;min-height:0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));border-bottom:none;border-right:2px solid var(--charbon);flex-direction:column;justify-content:flex-start;align-items:stretch;gap:12px}.terrain-haut .pilule-retour{align-self:flex-start}.label-terrain{text-align:left;flex:none;margin:2px 2px 0}.scores{flex-direction:column;gap:10px}.pastille-score{text-align:left;border-radius:12px;padding:10px 14px;font-size:15px}.btn-sons{margin-top:auto}.rail-seulement{width:100%;display:block}.terrain-bas{display:none}.toast-jeu{top:18px;left:calc(50% + 124px)}.plateau{padding:18px 24px}.victoire-actions{flex-flow:wrap}.victoire-actions button{white-space:nowrap;flex:1;width:auto}.victoire-modale{max-width:520px}}.btn-sons{border:2px solid var(--charbon);background:var(--creme);cursor:pointer;width:44px;height:44px;box-shadow:var(--ombre-plate-sm);border-radius:999px;flex:none;font-size:18px}.btn-sons:active{box-shadow:0 0 0 var(--charbon);transform:translate(2px,2px)}
