:root{--fond:#fff6ec;--carte:rgba(255,252,247,.94);--encre:#4a2c1c;--doux:#7a4a30;--terre:#c9502a;--or1:#ff6b35;--or2:#f7931e;--trait:rgba(201,80,42,.18);--vert:#3f7d4e}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'Poppins',system-ui,-apple-system,sans-serif;font-size:17px;line-height:1.6;color:var(--encre);min-height:100vh;
  background:radial-gradient(120% 70% at 50% 0%,#ffe3c4 0%,var(--fond) 55%,#fdeedd 100%);padding:28px 16px 48px}
.carte{max-width:560px;margin:0 auto;background:var(--carte);border:1px solid var(--trait);border-radius:26px;
  padding:clamp(22px,5vw,40px);box-shadow:0 24px 60px -28px rgba(140,60,20,.35)}
.graine{display:flex;justify-content:center;margin-bottom:10px}
.graine svg{filter:drop-shadow(0 8px 18px rgba(201,80,42,.35))}
.sur{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--terre);text-align:center}
h1{font-size:clamp(26px,6vw,34px);font-weight:800;line-height:1.18;text-align:center;margin:10px 0 14px}
h1 span{color:var(--terre)}
h2{font-size:19px;font-weight:800;margin-bottom:10px}
.intro{text-align:center;color:var(--doux)}
.intro a{color:var(--terre);font-weight:600}
.etapes{list-style:none;padding:0;margin:22px 0;display:grid;gap:10px}
.etapes li{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--trait);border-radius:16px;padding:12px 14px}
.etapes b{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--or1),var(--or2));font-size:15px}
form{display:grid;gap:14px}
label{display:grid;gap:6px;font-weight:600;font-size:15px}
input{width:100%;min-width:0;font:inherit;font-size:17px;padding:14px 16px;border-radius:14px;border:1.5px solid var(--trait);background:#fff;color:var(--encre);min-height:52px}
input:focus{outline:none;border-color:var(--terre);box-shadow:0 0 0 4px rgba(201,80,42,.12)}
.lingot,.creux{font:inherit;font-weight:700;font-size:17px;min-height:54px;padding:0 22px;border-radius:16px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.lingot{border:0;color:#fff;background:linear-gradient(135deg,var(--or1),var(--or2));box-shadow:0 12px 26px -12px rgba(201,80,42,.7)}
.lingot:hover{transform:translateY(-2px)}
.lingot:disabled{opacity:.6;cursor:wait}
.creux{background:#fff;color:var(--terre);border:1.5px solid rgba(201,80,42,.45)}
.msg{min-height:1.4em;font-size:15px;text-align:center;color:var(--doux)}
.msg.ok{color:var(--vert);font-weight:600}.msg.ko{color:#b0361f;font-weight:600}
.regle{margin-top:20px;font-size:14.5px;color:var(--doux);text-align:center}
.bienvenue{margin-top:12px;text-align:center;font-size:15px;color:var(--vert);font-weight:600}
.cagnotte{text-align:center;margin:18px 0 8px;padding:24px 16px;border-radius:22px;color:#fff;
  background:radial-gradient(90% 120% at 30% 0%,#ffb36b,var(--terre));box-shadow:0 18px 40px -20px rgba(201,80,42,.8)}
.cagnotte .etiquette{display:block;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;opacity:.92}
.cagnotte strong{display:block;font-size:clamp(46px,13vw,64px);font-weight:800;line-height:1.1;margin:4px 0}
.cagnotte .murit{font-size:15px;font-weight:500}
.bloc{margin-top:22px;padding-top:20px;border-top:1px solid var(--trait)}
.bloc > p{margin-bottom:12px}
.lien{background:#fff;border:1.5px dashed rgba(201,80,42,.45);border-radius:14px;padding:14px;text-align:center;margin-bottom:12px;overflow-wrap:anywhere}
.lien code{font-family:inherit;font-weight:700;font-size:17px;color:var(--terre)}
.duo{display:grid;grid-template-columns:1fr auto;gap:10px}
.petit{font-size:14.5px;color:var(--doux);margin-top:8px}
.code{font-size:26px;font-weight:800;letter-spacing:.08em;text-align:center;padding:14px;border-radius:14px;background:#fff;border:1.5px solid var(--terre);color:var(--terre);margin:8px 0;user-select:all}
#cadeau .lingot{width:100%;margin-top:12px}
#codeActif{background:#fffaf3;border:1px solid var(--trait);border-radius:18px;padding:16px;margin-bottom:14px}
.cadeaux{list-style:none;padding:0;display:grid;gap:8px;margin-top:12px}
.cadeaux li{display:grid;grid-template-columns:1fr auto;grid-template-areas:"nom prix" "btn btn";gap:6px 12px;align-items:center;
  background:#fff;border:1px solid var(--trait);border-radius:14px;padding:12px 14px}
.cadeaux .nom{grid-area:nom;font-weight:600;font-size:16px;line-height:1.35}
.cadeaux .prix{grid-area:prix;font-weight:800;color:var(--terre)}
.cadeaux button{grid-area:btn;font:inherit;font-weight:700;font-size:15px;min-height:44px;border-radius:12px;cursor:pointer}
.cadeaux .offrir{border:0;color:#fff;background:linear-gradient(135deg,var(--or1),var(--or2))}
.cadeaux .offrir.partiel{background:#fff;color:var(--terre);border:1.5px solid rgba(201,80,42,.45)}
.cadeaux .pris{border:1px dashed var(--trait);background:transparent;color:var(--doux);cursor:default}
@media (min-width:520px){.cadeaux li{grid-template-columns:1fr auto 150px;grid-template-areas:"nom prix btn"}}
.journal{list-style:none;padding:0;display:grid;gap:8px;margin-top:10px}
.journal li{display:flex;justify-content:space-between;gap:12px;font-size:15px;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid var(--trait)}
.journal li.oui{border-color:rgba(63,125,78,.35)}
.journal li.oui span{color:var(--vert);font-weight:600}
.journal li.non span{color:var(--doux)}
.journal time{flex:none;color:var(--doux);font-size:13.5px}
.journal li.vide{justify-content:center;color:var(--doux)}
.regles ul{padding-left:20px;display:grid;gap:6px;font-size:15.5px;color:var(--doux)}
@media (max-width:440px){.duo{grid-template-columns:1fr}}
