body{min-height: 100dvh;background: var(--noir) radial-gradient(140% 70% at 50% 0%,#2b0e19,#120a0e 62%,var(--noir)) no-repeat;background-attachment: fixed}.app{max-width: 480px;margin: 0 auto;min-height: 100dvh;display: flex;flex-direction: column;padding: calc(14px + env(safe-area-inset-top)) 18px calc(10px + env(safe-area-inset-bottom))}.top{display: flex;justify-content: space-between;align-items: center;gap: 10px;font-size: 13px;padding-bottom: 10px}.me{display: flex;align-items: center;gap: 8px;font-weight: 600;min-width: 0}.me span.nom{overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.me .av{--s: 30px}.top .droite{display: flex;align-items: center;gap: 8px}.top .ring{width: 34px;height: 34px}.top .ring b{font-size: 11px}.barre{display: flex;justify-content: space-around;border-top: 1px solid var(--ligne);padding-top: 8px;margin-top: 12px}.barre button{display: flex;flex-direction: column;align-items: center;gap: 3px;font-size: 10.5px;color: var(--texte2);padding: 4px 14px;position: relative;border-radius: 10px}.barre button .ico{width: 20px;height: 20px;color: var(--texte)}.barre button:active{background: rgba(255,255,255,.05)}.barre em{position: absolute;top: 0;right: 6px;font-style: normal;font-size: 9px;font-weight: 700;background: var(--carmin);color: #fff;border-radius: 9px;padding: 0 5px}.vue{flex: 1;display: flex;flex-direction: column;gap: 14px;min-height: 0}.vue.centre{justify-content: center;text-align: center;align-items: center}.pile{display: flex;flex-direction: column;gap: 12px}.spacer{flex: 1}h1.titre,h2.titre{font-family: var(--serif);font-style: italic;font-weight: 600;line-height: 1.12}h1.titre{font-size: 30px}h2.titre{font-size: 26px}.txt{font-size: 14px;color: var(--texte2)}.petit{font-size: 12px;color: var(--texte2)}.lab{font-size: 10.5px;letter-spacing: .14em;text-transform: uppercase;color: var(--texte2);font-weight: 600;margin-bottom: -6px}.field{width: 100%;padding: 12px 14px;border-radius: 12px;background: rgba(255,255,255,.04);border: 1px solid var(--ligne);font-size: 16px;font-weight: 600;outline: none}.field:focus{border-color: var(--or)}.field.code{text-align: center;letter-spacing: .3em;font-size: 26px;text-transform: uppercase}textarea.field{resize: none;min-height: 92px;font-weight: 500;line-height: 1.4}.btn{display: block;width: 100%;text-align: center;padding: 14px;border-radius: 14px;font-weight: 700;font-size: 15px;color: #fff;background: linear-gradient(180deg,#d31b3a,#9c0f27);box-shadow: 0 10px 24px -10px rgba(224,34,63,.8)}.btn:disabled{opacity: .45;box-shadow: none}.btn.ghost{background: transparent;border: 1px solid var(--ligne);color: var(--texte);box-shadow: none}.btn.or{background: linear-gradient(180deg,#d8b46c,#a8843e);color: #1a0f08;box-shadow: 0 10px 24px -12px rgba(201,164,92,.8)}.btns{display: flex;flex-direction: column;gap: 9px;width: 100%}.btns.ligne{flex-direction: row}.note{font-size: 12px;line-height: 1.45;color: var(--texte2);display: flex;gap: 7px;text-align: left}.note .ico{width: 14px;height: 14px;margin-top: 1px;color: var(--or)}.opts{display: flex;flex-wrap: wrap;gap: 7px}.opt{padding: 8px 13px;border-radius: 99px;border: 1px solid var(--ligne);font-size: 13px;color: var(--texte2)}.opt.sel{border-color: var(--carmin-vif);background: rgba(224,34,63,.16);color: #fff}.mgrid{display: grid;grid-template-columns: repeat(6,1fr);gap: 8px;justify-items: center}.mgrid button{border-radius: 50%}.mgrid .av{--s: 44px}.mgrid button:disabled{cursor: default}.grille{display: grid;grid-template-columns: 1fr 1fr;gap: 8px}.tuile{display: flex;align-items: center;gap: 9px;padding: 7px 9px;border-radius: 13px;border: 1px solid var(--ligne);font-size: 14px;font-weight: 600;text-align: left;min-width: 0}.tuile span.nom{overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.tuile .av{--s: 34px}.tuile.sel{border-color: var(--carmin-vif);background: rgba(224,34,63,.14)}.liste{display: flex;flex-direction: column;gap: 8px}.ligne-j{display: flex;align-items: center;gap: 11px;padding: 8px 11px;border-radius: 13px;border: 1px solid var(--ligne);font-size: 15px;font-weight: 600;text-align: left;width: 100%}.ligne-j .av{--s: 36px}.ligne-j .ck{margin-left: auto;width: 24px;height: 24px;border-radius: 50%;border: 1px solid var(--ligne);display: grid;place-items: center}.ligne-j .ck .ico{width: 14px;height: 14px}.ligne-j.sel{border-color: var(--carmin-vif);background: rgba(224,34,63,.12)}.ligne-j.sel .ck{background: var(--carmin-vif);border-color: var(--carmin-vif)}.ligne-j .tag{margin-left: auto;font-size: 11px;color: var(--texte2);font-weight: 500}.ligne-j.absent{opacity: .5}.carte-q{font-family: var(--serif);font-style: italic;font-weight: 600;font-size: 25px;line-height: 1.16}.defi{font-family: var(--serif);font-style: italic;font-size: 21px;line-height: 1.28;padding: 16px;border-radius: 16px;box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--pc,var(--carmin)) 55%,transparent);background: color-mix(in srgb,var(--pc,var(--carmin)) 9%,transparent)}.duo{display: flex;align-items: center;justify-content: center;gap: 12px}.duo .av{--s: 56px}.duo .ico{color: var(--carmin-vif);width: 22px;height: 22px}.choix{text-align: left;padding: 14px 15px;border-radius: 14px;border: 1px solid var(--ligne);width: 100%}.choix b{display: block;font-size: 15px;margin-bottom: 2px}.choix span{font-size: 12.5px;color: var(--texte2);line-height: 1.4;display: block}.choix.sel{border-color: var(--fire);background: rgba(255,59,85,.1);box-shadow: 0 0 22px -8px var(--fire)}.choix.sel b{color: var(--fire)}.flamme{width: 58px;height: 58px;color: var(--fire);filter: drop-shadow(0 0 12px rgba(255,59,85,.8))}.grand-serif{font-family: var(--serif);font-style: italic;font-weight: 700;font-size: 44px;line-height: 1;text-shadow: 0 0 28px rgba(224,34,63,.6)}.gros-code{font-size: 44px;font-weight: 700;letter-spacing: .12em;color: var(--or-clair)}.encadre{border: 1px solid var(--ligne);border-radius: 16px;padding: 14px;background: rgba(255,255,255,.02)}.logo-grand{font-family: var(--serif);font-style: italic;font-weight: 600;font-size: 56px;line-height: 1;text-align: center}.ou{display: flex;align-items: center;gap: 10px;font-size: 11px;color: var(--texte2);letter-spacing: .2em;text-transform: uppercase}.ou::before,.ou::after{content: "";flex: 1;height: 1px;background: var(--ligne)}.podium{display: flex;flex-direction: column;gap: 8px}.masques-salon{display: flex;flex-wrap: wrap;gap: 12px 10px}.masques-salon .j{display: flex;flex-direction: column;align-items: center;gap: 4px;font-size: 12px;width: 62px;text-align: center}.masques-salon .j span{overflow: hidden;text-overflow: ellipsis;white-space: nowrap;max-width: 62px}.masques-salon .av{--s: 46px}.reglage{display: flex;justify-content: space-between;align-items: center;gap: 10px;font-size: 14px}.reglage .val{font-weight: 700;min-width: 70px;text-align: center}.pas{display: flex;align-items: center;gap: 6px}.pas button{width: 36px;height: 36px;border-radius: 50%;border: 1px solid var(--ligne);font-size: 20px;line-height: 1}.bascule{width: 46px;height: 26px;border-radius: 99px;background: rgba(255,255,255,.12);position: relative;flex: none;transition: background .2s}.bascule::after{content: "";position: absolute;top: 3px;left: 3px;width: 20px;height: 20px;border-radius: 50%;background: var(--texte);transition: transform .2s}.bascule.on{background: var(--carmin-vif)}.bascule.on::after{transform: translateX(20px)}details.encadre summary{cursor: pointer;font-weight: 600;font-size: 14px;list-style: none;display: flex;justify-content: space-between}details.encadre[open] summary{margin-bottom: 12px}details.encadre .pile{gap: 14px}.voile{position: fixed;inset: 0;z-index: 20;background: rgba(8,4,6,.82);backdrop-filter: blur(6px);display: flex;align-items: center;justify-content: center;padding: calc(40px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom))}.feuille{width: 100%;max-width: 460px;max-height: 100%;overflow-y: auto;background: linear-gradient(180deg,#2a0f19,#140b10);border: 1px solid var(--ligne);border-radius: 26px;padding: 22px 18px 18px;display: flex;flex-direction: column;gap: 13px}.feuille .entete{display: flex;justify-content: space-between;align-items: center;gap: 10px}.menu-item{display: flex;align-items: center;gap: 12px;padding: 13px 12px;border-radius: 13px;border: 1px solid var(--ligne);font-size: 14.5px;font-weight: 600;text-align: left;width: 100%}.menu-item .ico{color: var(--or);width: 20px;height: 20px}.menu-item small{display: block;font-weight: 400;color: var(--texte2);font-size: 12px}.menu-item.danger .ico{color: var(--carmin-vif)}.toast{position: fixed;left: 50%;bottom: calc(80px + env(safe-area-inset-bottom));transform: translateX(-50%);z-index: 30;background: #2a1219;border: 1px solid var(--ligne);padding: 10px 16px;border-radius: 12px;font-size: 13.5px;max-width: calc(100vw - 32px);box-shadow: 0 10px 30px rgba(0,0,0,.5)}.lueur{position: fixed;inset: 0;pointer-events: none;background: radial-gradient(60% 40% at 50% 38%,rgba(224,34,63,.25),transparent);z-index: -1}.grande-ico .ico{width: 44px;height: 44px}.onglets-f{display: flex;gap: 6px}.onglets-f button{flex: 1;padding: 9px 6px;border-radius: 10px;border: 1px solid var(--ligne);font-size: 13px;color: var(--texte2)}.onglets-f button.on{border-color: var(--or);color: var(--or-clair)}.lien{color: var(--or-clair);text-decoration: underline;text-underline-offset: 3px;font-size: 13px;background: none;border: 0;padding: 0}.qr-bloc{display: flex;flex-direction: column;align-items: center;gap: 8px;text-align: center}.qr-bloc img{width: 180px;height: 180px;padding: 12px;background: #f3e9e4;border-radius: 14px;box-shadow: 0 0 0 3px var(--or),0 0 40px -8px rgba(201,164,92,.5)}.cle{font-size: 18px;font-weight: 700;letter-spacing: .08em;white-space: nowrap;color: var(--or-clair);text-align: center;padding: 14px;border-radius: 14px;border: 1px dashed var(--or);user-select: all}.tarif{display: flex;justify-content: space-between;align-items: center;gap: 10px;padding: 12px 14px;border-radius: 14px;border: 1px solid var(--ligne);width: 100%;text-align: left}.tarif.populaire{border-color: var(--or)}.tarif b{display: block;font-size: 15px}.tarif small{display: block;color: var(--texte2);font-size: 12px}.tarif .prix{font-weight: 700;font-size: 17px;white-space: nowrap;text-align: right}.tarif .prix small{font-weight: 500}.statut{display: inline-block;padding: 4px 10px;border-radius: 99px;border: 1px solid var(--or);color: var(--or-clair);font-size: 12px;font-weight: 600}.pied{text-align: center;font-size: 12px;color: var(--texte2);margin-top: 10px}.pied a{color: var(--texte2)}.opt:disabled,.pas button:disabled{opacity: .35;cursor: default}.affinites-liste .ligne-j{font-weight: 500}.carte-accueil{display: flex;flex-direction: column;gap: 12px;padding: 16px;border-radius: 20px;border: 1px solid var(--ligne);background: linear-gradient(180deg,rgba(42,15,25,.75),rgba(20,11,16,.75))}.home-moi{display: flex;align-items: center;gap: 10px;padding: 10px 12px;border-radius: 14px;border: 1px solid var(--ligne);background: rgba(255,255,255,.03)}.home-moi .qui{flex: 1;display: flex;align-items: center;gap: 8px;font-weight: 700;font-size: 15px;min-width: 0;white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.home-moi .qui .ico{width: 18px;height: 18px;color: var(--or)}.home-pseudo{display: flex;flex-direction: column;gap: 10px}.rejoindre{display: flex;gap: 10px}.rejoindre .field.code{flex: 1;min-width: 0;font-size: 22px;padding-block: 10px}.rejoindre .btn{width: auto;flex: none;padding-inline: 20px}.btn.aide{background: none;border: 1px solid var(--ligne);color: var(--texte2);box-shadow: none;font-weight: 600;font-size: 14px;padding: 11px 14px}.btn .ico{width: 18px;height: 18px;vertical-align: -.25em}#bandeau{position: fixed;right: 14px;top: env(safe-area-inset-top,0px);z-index: 25;display: flex;flex-direction: column;align-items: flex-end}#bandeau.ouvert{align-items: center}#bandeau button{width: 44px;height: 44px;border-radius: 50%;display: grid;place-items: center;background: var(--velours);border: 1px solid var(--ligne);color: var(--texte)}#bandeau button .ico{width: 20px;height: 20px}#bandeau button.on{border-color: var(--or);color: var(--or-clair)}#bandeau button.danger{border-color: var(--carmin-vif);color: var(--carmin-vif)}#bandeau .bd-boutons{display: flex;gap: 8px;padding: 8px 10px 6px;border-radius: 0 0 22px 22px;background: linear-gradient(180deg,#2a0f19,#140b10);border: 1px solid var(--or);border-top: 0;box-shadow: 0 0 22px -8px rgba(201,164,92,.7);animation: bd-deroule .2s ease}#bandeau .bd-poignee{width: 64px;height: 30px;border-radius: 0 0 16px 16px;margin-top: -1px;border-top: 0}#bandeau.ouvert .bd-poignee{border-color: var(--or);color: var(--or-clair)}#bandeau .bd-note{margin-top: 6px;font-size: 12px;padding: 4px 10px;border-radius: 99px;background: var(--velours);border: 1px solid var(--carmin-vif)}@keyframes bd-deroule{from{opacity: 0;transform: translateY(-8px)}to{opacity: 1;transform: none}}@media (prefers-reduced-motion: reduce){#bandeau .bd-boutons{animation: none}}.top .droite{margin-right: 72px}.feuille.pres{text-align: center;gap: 14px}.feuille.pres .txt{font-size: 14.5px;line-height: 1.55}.feuille.pres .btns.ligne .btn{flex: 1}.pres-etapes{display: flex;gap: 6px;justify-content: center}.pres-etapes span{width: 22px;height: 4px;border-radius: 99px;background: var(--ligne)}.pres-etapes span.on{background: var(--or);box-shadow: 0 0 8px var(--or)}.pres-ic{display: flex;justify-content: center;align-items: center;gap: 8px;color: var(--or);min-height: 56px}.pres-ic>.ico{width: 46px;height: 46px;filter: drop-shadow(0 0 8px rgba(201,164,92,.6))}.pres-ic .av + .ico,.pres-ic .ico + .av{margin: 0 2px}.feuille.carte .logo-grand{margin-bottom: -4px}.intro{position: fixed;inset: 0;z-index: 40;overflow: hidden;display: flex;flex-direction: column;align-items: center;justify-content: center;gap: 12px;padding: 16px;background: var(--noir) radial-gradient(120% 60% at 50% 45%,#3a0f1d,#120a0e 60%,var(--noir));animation: intro-sortie .5s ease 3.9s forwards}.intro.passe{animation: intro-sortie .3s ease forwards}@keyframes intro-sortie{to{opacity: 0;visibility: hidden}}.intro .lueur-i{position: absolute;inset: 0;background: radial-gradient(40% 28% at 50% 48%,rgba(224,34,63,.3),transparent 70%);opacity: 0;animation: intro-fondu 1.2s ease 1.2s forwards}.intro .masque{position: absolute;left: 50%;top: 50%;width: 170px;overflow: visible;filter: drop-shadow(0 0 14px rgba(201,164,92,.6));animation: intro-masque 1.9s cubic-bezier(.3,.7,.3,1) .1s both}.intro .masque use{fill: var(--or);stroke: var(--or-clair);stroke-width: 1.2}@keyframes intro-masque{0%{opacity: 0;transform: translate(-50%,-50%) scale(.8)}30%,55%{opacity: 1;transform: translate(-50%,-50%) scale(1)}100%{opacity: 0;transform: translate(-50%,-190%) scale(1.06) rotate(-8deg)}}.intro .logo-grand{position: relative;font-size: 58px}.intro .l{display: inline-block;opacity: 0;animation: intro-lettre .6s ease var(--d) forwards}@keyframes intro-lettre{0%{opacity: 0;transform: translateY(8px)}40%{opacity: 1;text-shadow: 0 0 18px rgba(224,34,63,.95)}100%{opacity: 1;transform: none;text-shadow: 0 0 22px rgba(224,34,63,.45)}}.intro .slogan{position: relative;font-family: var(--serif);font-style: italic;font-size: 19px;color: var(--texte2);opacity: 0;animation: intro-fondu .6s ease 2.6s forwards}@keyframes intro-fondu{to{opacity: 1}}@media (prefers-reduced-motion: reduce){.intro{display: none}}