/* PPS Link · vitrine : ce que la démo de la carte de visite pose par-dessus la vraie page publique (appareil photo, fiche contact). */
body.demo-carte{overflow:hidden}
.doigt{position:fixed;left:0;top:0;width:44px;height:44px;border-radius:50%;z-index:500;pointer-events:none;opacity:0;
  background:radial-gradient(circle,rgb(30 60 38 / .45) 0 38%,rgb(30 60 38 / .18) 40%);border:2px solid rgb(255 255 255 / .85);
  box-shadow:0 6px 18px rgb(0 0 0 / .25);transition:transform .6s cubic-bezier(.3,.7,.2,1),opacity .3s,scale .15s}
.doigt.appui{scale:.82}
#scanner{position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:#000 url(../../assets/photos/reunion-equipe-bureau.webp) center/cover;transition:opacity .45s,transform .45s}
#scanner::before{content:"";position:absolute;inset:0;backdrop-filter:blur(14px) brightness(.55)}
#scanner.parti{opacity:0;transform:scale(1.06);pointer-events:none}
.viseur{--coin:#fff;position:relative;transition:--coin .3s;width:250px;height:250px;display:grid;place-items:center;border-radius:28px;
  background:linear-gradient(var(--coin),var(--coin)) 0 0/34px 4px no-repeat,linear-gradient(var(--coin),var(--coin)) 0 0/4px 34px no-repeat,
  linear-gradient(var(--coin),var(--coin)) 100% 0/34px 4px no-repeat,linear-gradient(var(--coin),var(--coin)) 100% 0/4px 34px no-repeat,
  linear-gradient(var(--coin),var(--coin)) 0 100%/34px 4px no-repeat,linear-gradient(var(--coin),var(--coin)) 0 100%/4px 34px no-repeat,
  linear-gradient(var(--coin),var(--coin)) 100% 100%/34px 4px no-repeat,linear-gradient(var(--coin),var(--coin)) 100% 100%/4px 34px no-repeat}
#scanner.detecte .viseur{--coin:#ffd60a}
.qr-papier{width:180px;padding:14px 14px 10px;background:#fff;border-radius:10px;display:grid;justify-items:center;gap:2px;color:#15241b;rotate:-4deg;box-shadow:0 20px 40px #0008}
.qr-papier img{width:100%;display:block}.qr-papier b{font-size:13px;margin-top:6px}.qr-papier small{font-size:11px;color:#5c6c60}
.bulle{position:absolute;top:64px;left:50%;translate:-50% -20px;opacity:0;display:grid;gap:2px;text-align:left;width:min(320px,86%);padding:12px 16px;border:0;border-radius:18px;
  background:#ffd60a;color:#1c1c1c;font:14px/1.3 system-ui,sans-serif;transition:.35s;cursor:pointer}
.bulle b{font-size:12px;text-transform:uppercase;letter-spacing:.04em;opacity:.7}
#scanner.detecte .bulle{opacity:1;translate:-50% 0}
.consigne{position:absolute;bottom:90px;margin:0;color:#fff;font:600 15px system-ui,sans-serif;text-shadow:0 1px 6px #0009}
#fiche{position:fixed;inset:0;z-index:20;display:grid;align-items:end;background:#0007;animation:fondu .3s}
#fiche[hidden]{display:none}
.fiche-carte{background:var(--c);color:var(--t);border-radius:22px 22px 0 0;padding:24px 22px 34px;display:grid;justify-items:center;gap:6px;animation:monte .35s ease-out}
.fiche-av{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:var(--a);color:#17200c;font:700 26px system-ui,sans-serif;margin-bottom:6px}
.fiche-carte b{font-size:20px}.fiche-carte small{color:var(--m)}
.fiche-carte p{width:100%;margin:0;padding:10px 0;border-top:1px solid var(--l);display:grid}.fiche-carte p span{font-size:12px;color:var(--m)}
.fiche-ok{width:100%;margin-top:10px;padding:14px;border:0;border-radius:12px;background:var(--a);color:#17200c;font:700 16px system-ui,sans-serif;cursor:pointer}
.toast{position:fixed;left:16px;right:16px;bottom:24px;z-index:30;display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:14px;
  background:var(--c);border:1px solid var(--l);box-shadow:0 14px 40px #0004;transform:translateY(140%);transition:.3s}
.toast.show{transform:none}.toast img{width:28px;height:28px}
@keyframes monte{from{transform:translateY(100%)}}@keyframes fondu{from{opacity:0}}
@media (prefers-reduced-motion:reduce){.doigt{display:none}}
