:root{--fond:#f4f1ea;--papier:#fffdf7;--papier-voile:#fffdf7f2;--encre:#2b2b2b;--encre-douce:#5c574d;--ligne:#e0d9c9;--creux:#ece6d8;--accent:#c0392b;--accent-fonce:#9a2d21;--jaune:#f3cf3d;--focus:#1f5fbf;--texte:var(--encre);--rayon-s:6px;--rayon:10px;--rayon-l:14px;--rayon-pilule:999px;--ombre-franche:0 3px 0 var(--encre);--ombre-franche-basse:0 1px 0 var(--encre);--ombre-douce:0 2px 12px #2b2b2b29;--espace-1:4px;--espace-2:8px;--espace-3:12px;--espace-4:16px;--espace-5:24px;--cible:44px;--trait:2px;--reserve-son:calc(var(--cible) + 2 * var(--espace-3));--pied:calc(max(6px, env(safe-area-inset-bottom)) + 2.6rem);color:var(--texte);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--fond);touch-action:none;height:100%;margin:0;overflow:hidden}#jeu{position:fixed;inset:0}#interface{pointer-events:none;z-index:2;padding:max(var(--espace-3), env(safe-area-inset-top)) max(var(--reserve-son), env(safe-area-inset-right)) var(--espace-3) max(var(--espace-3), env(safe-area-inset-left));position:fixed;inset:0}#interface>*{pointer-events:auto}h1,h2,h3{letter-spacing:-.01em}.bouton{justify-content:center;align-items:center;gap:var(--espace-2);min-height:var(--cible);min-width:var(--cible);border:var(--trait) solid var(--encre);border-radius:var(--rayon);background:var(--papier);color:var(--encre);font:inherit;text-align:center;box-shadow:var(--ombre-franche);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;padding:10px 18px;font-size:.95rem;font-weight:650;line-height:1.15;transition:transform 80ms ease-out,box-shadow 80ms ease-out,background-color .12s;display:inline-flex}.bouton:hover{background:#fff}.bouton:active:not(:disabled){box-shadow:var(--ombre-franche-basse);transform:translateY(2px)}.bouton:focus-visible,.carte-manif:focus-visible,a:focus-visible,.choix button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.bouton:disabled{background:var(--creux);color:var(--encre-douce);border-color:var(--encre-douce);cursor:not-allowed;box-shadow:var(--ombre-franche-basse);transform:translateY(2px)}.bouton-principal{background:var(--accent);color:#fff;padding-inline:24px;font-size:1.05rem}.bouton-principal:hover{background:var(--accent-fonce)}.bouton-icone{width:var(--cible);padding:0}.bouton-icone[aria-pressed=false]{color:var(--encre-douce);background:var(--creux)}.icone{flex:none;width:24px;height:24px}.icone-petite{width:16px;height:16px}.bouton-son{top:max(var(--espace-3), env(safe-area-inset-top));right:max(var(--espace-3), env(safe-area-inset-right));z-index:4;position:fixed}.carte{background:var(--papier-voile);border:var(--trait) solid var(--encre);border-radius:var(--rayon-l);max-width:28rem;box-shadow:var(--ombre-franche);padding:10px 14px}.carte h1{margin:0 0 4px;font-size:1.1rem;line-height:1.25}.carte p{margin:2px 0;font-size:.9rem}.carte h2.sous-titre{margin:14px 0 0;font-size:.95rem}a.retour{min-height:var(--cible);border-radius:var(--rayon-s);color:var(--accent);align-items:center;gap:6px;margin:-10px 0 -8px -6px;padding:0 6px;font-size:.9rem;font-weight:650;text-decoration:none;display:inline-flex}a.retour:hover{text-decoration:underline}.etat-cortege{font-weight:650}.accueil{max-width:34rem;max-height:calc(100dvh - var(--pied) - 1.5rem);overscroll-behavior:contain;touch-action:pan-y;padding:2px 6px var(--espace-4);margin:0 auto;overflow-y:auto}.accueil-entete{padding:var(--espace-4) var(--espace-4) var(--espace-3);background:var(--papier);border:var(--trait) solid var(--encre);border-radius:var(--rayon-l);box-shadow:var(--ombre-franche)}.banniere{width:100%;max-width:22rem;height:auto;margin:0 0 var(--espace-3);display:block}.accueil-entete h1{margin:0;font-size:1.7rem;line-height:1.1}.accroche{margin:var(--espace-2) 0 0;color:var(--encre-douce);font-size:.95rem;line-height:1.45}.accueil .sous-titre{margin:var(--espace-5) var(--espace-1) var(--espace-2);color:var(--encre-douce);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:750}.liste-manifs{gap:var(--espace-3);margin:0;padding:0;list-style:none;display:grid}.carte-manif{background:var(--papier);border:var(--trait) solid var(--encre);border-radius:var(--rayon-l);box-shadow:var(--ombre-franche);color:inherit;touch-action:pan-y;flex-direction:column;gap:6px;padding:14px 16px;text-decoration:none;transition:transform 80ms ease-out,box-shadow 80ms ease-out;display:flex}.carte-manif:hover{background:#fff}.carte-manif:active{box-shadow:var(--ombre-franche-basse);transform:translateY(2px)}.carte-manif-haut,.carte-manif-bas{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;display:flex}.pastille-etat{border-radius:var(--rayon-pilule);background:var(--creux);padding:2px 8px;font-size:.78rem;font-weight:750}.carte-manif[data-etat=en-marche] .pastille-etat{background:var(--accent);color:#fff}.carte-manif[data-etat=bientot] .pastille-etat{background:var(--jaune)}.carte-manif-compteur{color:var(--encre-douce);font-size:.85rem;font-weight:650}.carte-manif-titre{font-size:1.15rem;line-height:1.25}.carte-manif-bas{color:var(--encre-douce);font-size:.88rem}.carte-manif-heure b{color:var(--encre);font-size:1rem}.carte-manif[data-etat=terminee]{box-shadow:var(--ombre-franche-basse)}.vide{padding:var(--espace-3) var(--espace-4);border:var(--trait) dashed var(--ligne);border-radius:var(--rayon-l);color:var(--encre-douce);background:var(--papier-voile);margin:0}.pied-de-page{z-index:1;padding:6px 12px max(6px, env(safe-area-inset-bottom));text-align:center;border-top:1px solid var(--ligne);background:#f4f1eae6;font-size:.75rem;line-height:1.8;position:fixed;bottom:0;left:0;right:0}.pied-de-page a{color:var(--encre);white-space:nowrap}.page-legale{max-width:42rem;max-height:calc(100dvh - var(--pied) - 1.5rem);overscroll-behavior:contain;touch-action:pan-y;margin:0 auto;padding:12px 18px 16px;line-height:1.5;overflow-y:auto}.page-legale h1{margin:4px 0 8px;font-size:1.35rem}.page-legale h2{margin:18px 0 4px;font-size:1rem}.page-legale p,.page-legale li{margin:4px 0;font-size:.92rem}.page-legale ul{margin:4px 0;padding-left:1.2rem}.page-legale a:not(.retour){color:var(--accent-fonce)}.page-legale mark{outline:2px dashed var(--accent);background:#ffe066;padding:0 2px}.page-legale .mise-a-jour{color:#666;margin-top:16px;font-size:.8rem}#interface>.action{left:max(var(--espace-3), env(safe-area-inset-left));right:max(var(--espace-3), env(safe-area-inset-right));bottom:calc(var(--pied) + 1.4rem);align-items:center;gap:var(--espace-2);pointer-events:none;flex-direction:column;display:flex;position:fixed}.action>*{pointer-events:auto}.action .bouton-principal{min-height:48px;padding-inline:28px}.actions-secondaires{justify-content:center;gap:var(--espace-2);pointer-events:none;flex-wrap:wrap;display:flex}.actions-secondaires>.bouton{pointer-events:auto;padding:8px 14px;font-size:.9rem}.message:empty{display:none}.message{border:1px solid var(--ligne);border-radius:var(--rayon);background:var(--papier-voile);text-align:center;max-width:28rem;margin:0;padding:6px 12px;font-size:.9rem}#interface>.camera{right:max(var(--espace-3), env(safe-area-inset-right));top:calc(max(var(--espace-3), env(safe-area-inset-top)) + var(--cible) + var(--espace-4));align-items:flex-end;gap:var(--espace-2);pointer-events:none;flex-direction:column;display:flex;position:fixed}.camera>*{pointer-events:auto}.bouton-suivre{padding:6px 12px 6px 8px;font-size:.9rem}.barre-outils{background:var(--papier);border:var(--trait) solid var(--encre);border-radius:var(--rayon-l);box-shadow:var(--ombre-franche);flex-direction:column;display:flex;overflow:hidden}.barre-outils>.bouton{box-shadow:none;background:0 0;border:0;border-radius:0}.barre-outils>.bouton+.bouton{border-top:var(--trait) solid var(--ligne)}.barre-outils>.bouton:hover{background:#fff}.barre-outils>.bouton:active{box-shadow:none;background:var(--creux);transform:none}.barre-outils>.bouton:focus-visible{outline-offset:-3px}.bouton-mode{letter-spacing:.03em;font-size:.85rem;font-weight:800}#interface>.attribution{right:0;bottom:calc(var(--pied) + 2px);background:#ffffffd9;border-radius:4px 0 0 4px;margin:0;padding:1px 6px;font-size:.7rem;position:fixed}#interface>.attribution a{color:inherit}#interface>.chant-visuel{pointer-events:none;animation:.2s ease-out apparition;position:fixed;top:44%;left:50%;transform:translate(-50%,-50%)}#interface .chant-pancarte{width:11rem;padding:.9rem;font-size:1.35rem;box-shadow:0 4px #2b2b2b99}#interface .chant-pancarte[data-forme=portrait]{width:7.5rem;font-size:1.15rem}#interface .chant-pancarte[data-forme=rond]{width:10rem;padding:1.5rem}#interface .chant-pancarte[data-forme=losange]{width:11.5rem;box-shadow:none;padding:2.8rem;font-size:1.15rem}.chant-visuel{align-items:center;gap:var(--espace-3);flex-direction:column;display:flex}.chant-legende{border-radius:var(--rayon-pilule);color:#fff;white-space:nowrap;background:#2b2b2bc7;margin:0;padding:2px 10px;font-size:.78rem}.chant-pouls{background:var(--papier-voile);border:var(--trait) solid var(--encre);border-radius:var(--rayon-l);box-shadow:var(--ombre-franche);gap:10px;padding:14px 18px;display:flex}.chant-pouls>span{background:var(--accent);width:14px;height:14px}@keyframes apparition{0%{opacity:0}}#interface>.composition{z-index:3;background:var(--papier);border:var(--trait) solid var(--encre);border-radius:var(--rayon-l) var(--rayon-l) 0 0;border-bottom:0;flex-direction:column;max-width:32rem;max-height:82dvh;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0000002e}.composition-contenu{overscroll-behavior:contain;touch-action:pan-y;padding:14px 16px 4px;overflow-y:auto}.composition-section+.composition-section{margin-top:var(--espace-4);padding-top:var(--espace-3);border-top:var(--trait) dashed var(--ligne)}.composition h2{margin:0 0 8px;font-size:1.1rem}.composition h3{letter-spacing:.06em;text-transform:uppercase;color:var(--encre-douce);margin:14px 0 6px;font-size:.75rem;font-weight:750}.composition>.message{background:0 0;border:0;max-width:none;margin:6px 16px 0;padding:0}.composition-actions{gap:var(--espace-2);padding:12px 16px max(12px, env(safe-area-inset-bottom));border-top:var(--trait) solid var(--ligne);justify-content:flex-end;display:flex}.composition-actions .bouton-principal{flex:1;padding-inline:16px}.choix{flex-wrap:wrap;gap:6px;display:flex}.choix button{min-height:var(--cible);min-width:var(--cible);border:var(--trait) solid var(--ligne);border-radius:var(--rayon);color:var(--texte);font:inherit;touch-action:manipulation;cursor:pointer;background:#fff;font-size:.92rem;transition:border-color .12s}.choix button:hover{border-color:var(--encre-douce)}.choix button[aria-pressed=true]{border-color:var(--encre);box-shadow:0 0 0 2px #fff inset, var(--ombre-franche-basse)}.choix-slogans button{padding:6px 12px}.choix-slogans button[aria-pressed=true]{background:var(--creux);font-weight:650}.choix-couleurs button{width:var(--cible);background:var(--fond)}.choix-formes button{place-items:center;width:56px;display:grid}.cadre-apercu-apparence{justify-content:center;padding:4px 0;display:flex}.apercu-apparence,.vignette-apparence{image-rendering:pixelated}.apercu-apparence{width:144px;height:96px}.section-apparence .choix+.choix{margin-top:8px}.choix-vignettes button{place-items:center;padding:2px;display:grid}.vignette-apparence{width:48px;height:32px}.apercu-pancarte{justify-content:center;padding:4px 0 18px;display:flex}.pancarte{--fond:#f5f2e8;--texte:#222;aspect-ratio:1.6;background:var(--fond);width:9.6rem;color:var(--texte);text-align:center;overflow-wrap:anywhere;border:2px solid #222222b3;place-items:center;padding:8%;font-size:1.05rem;font-weight:700;line-height:1.15;display:grid;position:relative}.apercu-pancarte .pancarte:after{content:"";background:#7a5530;width:6px;height:18px;position:absolute;top:100%;left:calc(50% - 3px)}.pancarte[data-forme=portrait]{aspect-ratio:1.1/1.4;width:6.6rem}.pancarte[data-forme=rond]{aspect-ratio:1;border-radius:50%;width:7.8rem;padding:14%}.pancarte[data-forme=losange]{aspect-ratio:1;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);border:0;width:9rem;padding:24%;font-size:.9rem}.pancarte.mini{background:#888;border:0;width:26px;padding:0}.pancarte.mini[data-forme=portrait]{width:18px}.pancarte.mini[data-forme=rond]{width:22px}.pancarte.mini[data-forme=losange]{width:24px}.vue-image-finale{align-items:center;gap:var(--espace-3);max-height:calc(100dvh - var(--pied) - 1.5rem);overscroll-behavior:contain;touch-action:pan-y;padding:2px 2px var(--espace-3);flex-direction:column;display:flex;overflow-y:auto}.vue-image-finale .carte{width:100%}.partage-image{justify-content:center;gap:var(--espace-2);flex-wrap:wrap;width:min(100%,28rem);display:flex}.partage-image .bouton{flex:10rem}canvas.image-finale{border:var(--trait) solid var(--encre);border-radius:var(--rayon);width:min(100%,28rem,80dvh - 9.6rem);height:auto;box-shadow:var(--ombre-franche);display:block}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.bouton:active:not(:disabled),.carte-manif:active{transform:none}}#jeu>canvas.vue-3d{touch-action:none;width:100%;height:100%;display:block}.etiquettes-3d{pointer-events:none;position:absolute;inset:0;overflow:hidden}.etiquette-3d{white-space:nowrap;will-change:transform;border-radius:3px;padding:1px 5px;font-size:12px;line-height:1.4;position:absolute;top:0;left:0}.etiquette-3d[hidden]{display:none}.etiquette-3d.place{color:#2b2b2b;background:#ffffffd1;font-style:italic}.etiquette-3d.place.arrivee{font-size:14px;font-weight:700}.etiquette-3d.trace{color:#fff;background:#2b2b2b;font-weight:700}.etiquette-3d.toi{color:#222;background:#f1c40f;font-size:13px;font-weight:700}
