/* Page /eliottdube/ : carte de visite d’Eliott Dubé */
body.corps-seul{background:#EFEEEA}
.ed{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:48px 16px calc(32px + env(safe-area-inset-bottom));font-family:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;color:#2F2E2B;background:radial-gradient(1200px 600px at 50% -10%,#F9F8F5 0%,rgba(249,248,245,0) 70%),#EFEEEA}
.ed-carte{position:relative;width:100%;max-width:440px;background:#FFFFFF;border:1px solid #E3E2DF;border-radius:32px;overflow:hidden;box-shadow:0 1px 2px rgba(30,29,27,.05),0 24px 60px rgba(30,29,27,.10),0 60px 120px rgba(30,29,27,.06);animation:edCarte .7s cubic-bezier(.2,.8,.2,1) both}

/* Bandeau sombre, quadrillage fin et lueur verte discrète */
.ed-bandeau{position:relative;height:150px;background-color:#262523;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:22px 22px;background-position:center;overflow:hidden}
.ed-bandeau::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(38,37,35,0) 40%,#262523 100%)}
.ed-lueur{position:absolute;left:50%;top:100%;width:420px;height:260px;translate:-50% -60%;border-radius:50%;background:radial-gradient(closest-side,rgba(127,176,142,.30),rgba(127,176,142,0));animation:edLueur 9s ease-in-out infinite alternate}
.ed-marque{position:absolute;top:18px;left:20px;z-index:2;display:flex;align-items:center;gap:9px;min-height:44px;color:#FFFFFF;text-decoration:none;font-family:'Newsreader',Georgia,serif;font-weight:600;font-size:19px;letter-spacing:-0.02em}
.ed-marque:focus-visible,.ed-lien:focus-visible,.ed-copier:focus-visible,.ed-site:focus-visible{outline:2px solid #2A63B5;outline-offset:3px;border-radius:14px}

/* Photo ronde qui chevauche le bandeau */
.ed-photo{position:relative;z-index:2;width:148px;height:148px;margin:-78px auto 0;border-radius:50%;padding:5px;background:#FFFFFF;box-shadow:0 12px 32px rgba(30,29,27,.18);animation:edPhoto .8s .15s cubic-bezier(.2,.8,.2,1) both}
.ed-photo::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(255,255,255,.35)}
.ed-photo img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 22%}

.ed-identite{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 28px 0}
.ed-nom{margin:0;font-family:'Newsreader',Georgia,serif;font-weight:600;font-size:44px;line-height:1.02;letter-spacing:-0.03em}
.ed-role{margin:10px 0 0;font-size:15px;color:#6F6E69}
.ed-phrase{margin:18px 0 0;max-width:320px;font-family:'Newsreader',Georgia,serif;font-style:italic;font-weight:500;font-size:19px;line-height:1.35;color:#3F3E3A}

/* Liens */
.ed-liens{display:flex;flex-direction:column;gap:10px;padding:28px 20px 0}
.ed-ligne{display:flex;gap:10px}
.ed-ligne .ed-lien{flex:1;min-width:0}
.ed-lien{display:flex;align-items:center;gap:14px;min-height:68px;padding:12px 16px 12px 12px;border:1px solid #E3E2DF;border-radius:18px;background:#FFFFFF;color:#2F2E2B;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.ed-lien:hover{transform:translateY(-2px);border-color:#CFCEC9;box-shadow:0 10px 24px rgba(30,29,27,.08)}
.ed-ico{flex:none;width:44px;height:44px;border-radius:13px;background:#F3F2EF;color:#3F3E3A;display:flex;align-items:center;justify-content:center}
.ed-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ed-txt strong{font-size:15.5px;font-weight:600}
.ed-txt span{font-size:13.5px;color:#6F6E69;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-fl{flex:none;color:#9A9993;transition:transform .2s ease}
.ed-lien:hover .ed-fl{transform:translate(2px,-2px)}
.ed-lien-fonce{background:#2F2E2B;border-color:#2F2E2B;color:#FFFFFF}
.ed-lien-fonce:hover{border-color:#2F2E2B;box-shadow:0 14px 30px rgba(30,29,27,.25)}
.ed-lien-fonce .ed-ico{background:rgba(255,255,255,.10);color:#FFFFFF}
.ed-lien-fonce .ed-txt span{color:rgba(255,255,255,.65)}
.ed-lien-fonce .ed-fl{color:#7FB08E}
.ed-copier{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:76px;min-height:68px;border:1px solid #E3E2DF;border-radius:18px;background:#F7F6F3;color:#3F3E3A;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .2s ease}
.ed-copier:hover{background:#EFEEEA}
.ed-copier.is-ok{background:#EAF2EC;border-color:#BFD6C6;color:#2E6340}

.ed-site{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;margin:18px 20px 20px;border-top:1px solid #ECEBE8;padding-top:18px;font-size:14.5px;font-weight:600;color:#2F2E2B;text-decoration:none}
.ed-site span{color:#3B7A4E;transition:transform .2s ease}
.ed-site:hover span{transform:translateX(3px)}
.ed-bas{margin:0;font-size:12.5px;color:#8A8984}

/* Apparition en cascade */
.ed-identite > *,.ed-liens > *,.ed-site{animation:edMonte .6s cubic-bezier(.2,.8,.2,1) both}
.ed-nom{animation-delay:.3s}.ed-role{animation-delay:.35s}.ed-phrase{animation-delay:.4s}
.ed-liens > :nth-child(1){animation-delay:.48s}.ed-liens > :nth-child(2){animation-delay:.54s}.ed-liens > :nth-child(3){animation-delay:.6s}.ed-site{animation-delay:.66s}
@keyframes edCarte{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
@keyframes edPhoto{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
@keyframes edMonte{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes edLueur{from{translate:-62% -60%}to{translate:-38% -55%}}

@media (max-width:420px){
  .ed{padding-top:16px;justify-content:flex-start}
  .ed-carte{border-radius:28px}
  .ed-nom{font-size:38px}
  .ed-liens{padding:24px 14px 0}
  .ed-site{margin:14px 14px 16px}
}
