:root{--papier: #fbf7ef;--papier-ligne: #e8e0d0;--encre: #1b2a4a;--encre-doux: #4a5878;--corail: #ff6b4a;--corail-fonce: #e8492a;--vert: #2eb872;--vert-fonce: #1f8f57;--soleil: #ffc247;--ciel: #5aa9e6;--blanc: #ffffff;--ombre: 0 8px 24px rgba(27, 42, 74, .12);--ombre-forte: 0 12px 32px rgba(27, 42, 74, .2);--rayon: 18px;--rayon-sm: 12px;--police-titre: "Fredoka", system-ui, sans-serif;--police-texte: "Nunito", system-ui, sans-serif;--police-main: "Patrick Hand", cursive}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--police-texte);color:var(--encre);background-color:var(--papier);background-image:linear-gradient(var(--papier-ligne) 1px,transparent 1px);background-size:100% 34px;background-position:0 -1px;min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--police-titre);line-height:1.1}button{font-family:var(--police-titre);cursor:pointer;border:none}a{color:inherit}.app{max-width:980px;margin:0 auto;padding:0 20px 80px}.contenu{animation:apparition .4s ease both}@keyframes apparition{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.carte{background:var(--blanc);border-radius:var(--rayon);box-shadow:var(--ombre);padding:22px;border:2px solid rgba(27,42,74,.06)}.btn{background:var(--corail);color:var(--blanc);font-size:1.05rem;font-weight:600;padding:12px 22px;border-radius:999px;box-shadow:0 4px 0 var(--corail-fonce);transition:transform .08s ease,box-shadow .08s ease}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--corail-fonce)}.btn.vert{background:var(--vert);box-shadow:0 4px 0 var(--vert-fonce)}.btn.vert:active{box-shadow:0 1px 0 var(--vert-fonce)}.btn.fantome{background:transparent;color:var(--encre);box-shadow:inset 0 0 0 2px #1b2a4a33}.btn.fantome:active{transform:translateY(2px)}.btn:disabled{opacity:.45;cursor:not-allowed}.pastille{display:inline-flex;align-items:center;gap:6px;background:var(--soleil);color:var(--encre);font-family:var(--police-titre);font-weight:600;padding:6px 14px;border-radius:999px;font-size:.95rem}.manuscrit{font-family:var(--police-main)}.grille{display:grid;gap:18px}@media (min-width: 640px){.grille-2{grid-template-columns:1fr 1fr}.grille-3{grid-template-columns:repeat(3,1fr)}}.fete-voile{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none;display:grid;place-items:center;overflow:hidden}.fete-message{background:var(--blanc);border:3px solid var(--vert);color:var(--encre);font-family:var(--police-titre);font-weight:700;font-size:1.4rem;padding:18px 28px;border-radius:var(--rayon);box-shadow:var(--ombre-forte);animation:fete-pop .5s cubic-bezier(.2,.8,.3,1.4) both;text-align:center}@keyframes fete-pop{0%{opacity:0;transform:scale(.7) translateY(10px)}to{opacity:1;transform:none}}.confetti{position:absolute;top:-24px;font-size:1.4rem;animation:confetti-chute linear forwards}@keyframes confetti-chute{to{transform:translateY(105vh) rotate(540deg);opacity:.9}}.tuile-bloc{display:block;text-align:center;padding:26px 16px;border-radius:16px;color:#fff;height:100%;border:3px solid rgba(255,255,255,.4);box-shadow:0 8px #1b2a4a38;transition:transform .12s ease,box-shadow .12s ease}.tuile-bloc:hover{transform:translateY(-4px);box-shadow:0 12px #1b2a4a38}.tuile-bloc:active{transform:translateY(4px);box-shadow:0 2px #1b2a4a38}.tuile-bloc h2{color:#fff}.cube{width:46px;height:46px;border-radius:9px;display:grid;place-items:center;font-size:1.35rem;color:#fff;border:2px solid rgba(255,255,255,.55);box-shadow:0 5px #1b2a4a38;animation:bloc-pose .35s cubic-bezier(.2,.8,.3,1.4) both}.cube.vide{background:var(--papier);color:var(--encre-doux);border:2px dashed rgba(27,42,74,.25);box-shadow:0 5px #1b2a4a14}@keyframes bloc-pose{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
