@font-face{font-family:Baloo;src:url(/fonts/baloo2.ttf) format("truetype");font-weight:400 800;font-display:swap}
:root{--papier:#f5f1ff;--encre:#2e2340;--doux:#65587a;--bloupo:#7c4dff;--bloupo-f:#5a2fd6;--soleil:#ffc83d;--trait:#e2d9f7;--blanc:#fff;--choisie:#ff4d4d}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papier);color:var(--encre);font:18px/1.6 Baloo,system-ui,sans-serif}
a{color:var(--bloupo-f)}img{max-width:100%;height:auto;display:block}
:focus-visible{outline:4px solid var(--soleil);outline-offset:3px;border-radius:12px}
.wrap{max-width:1100px;margin:0 auto;padding:0 16px}
header{background:var(--blanc);border-bottom:3px solid var(--trait)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:10px;padding-bottom:10px}
.logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:26px;white-space:nowrap;text-decoration:none;color:var(--bloupo-f)}
.logo svg{width:38px;height:42px;flex:none}
header nav a{text-decoration:none;font-weight:700;margin-left:16px}
h1{font-size:clamp(32px,5.2vw,52px);line-height:1.08;margin:28px 0 10px;letter-spacing:-.01em}
h2{font-size:clamp(24px,3vw,30px);line-height:1.2;margin:40px 0 12px}
p{max-width:68ch}.lead{font-size:20px;color:var(--doux)}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--bloupo);color:#fff;border:0;border-radius:999px;padding:12px 22px;
font:inherit;font-weight:700;text-decoration:none;cursor:pointer;box-shadow:0 4px 0 var(--bloupo-f);transition:transform .08s,box-shadow .08s}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--bloupo-f)}
.btn.alt{background:var(--blanc);color:var(--bloupo-f);box-shadow:0 4px 0 var(--trait);border:2px solid var(--trait)}
.btn.alt:active{box-shadow:0 1px 0 var(--trait)}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}
/* accueil : Bloupo à colorier */
.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:24px;align-items:center;margin-top:8px}
.hero-jeu{position:relative;text-align:center}
.hero-jeu svg{width:min(340px,100%);height:auto;touch-action:manipulation}
.hero-jeu .z{cursor:pointer;transition:fill .25s;transform-box:fill-box;transform-origin:center}
.hero-jeu .z.pop{animation:pop .35s}
.hero-jeu figcaption{font-weight:700;color:var(--doux);margin-top:4px}
@keyframes pop{40%{transform:scale(1.08)}}
/* filtres */
.filtres{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0 4px}
.filtres button{font:inherit;font-weight:700;border:2px solid var(--trait);background:var(--blanc);color:var(--encre);border-radius:999px;padding:8px 18px;cursor:pointer}
.filtres button[aria-pressed=true]{background:var(--encre);border-color:var(--encre);color:#fff}
.rayon[hidden]{display:none}
/* galerie : dessins aimantés sur le frigo */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:26px 22px;margin:20px 0}
.card{position:relative;background:var(--blanc);padding:10px 10px 8px;text-decoration:none;color:var(--encre);border-radius:4px;
box-shadow:0 2px 0 var(--trait),0 10px 18px -12px rgba(46,35,64,.35);transform:rotate(var(--r,0deg));transition:transform .15s}
.card:nth-child(4n+1){--r:-1.4deg;--m:#ff4d4d}.card:nth-child(4n+2){--r:1deg;--m:#ffc83d}.card:nth-child(4n+3){--r:-.6deg;--m:#22b573}.card:nth-child(4n){--r:1.5deg;--m:#5fc8ff}
.card::before{content:"";position:absolute;top:-9px;left:50%;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:var(--m);box-shadow:inset 0 -3px 0 rgba(0,0,0,.18)}
.card:hover,.card:focus-visible{transform:rotate(0) scale(1.03)}
.card b{display:block;text-align:center;margin-top:6px;line-height:1.25}
.page{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;align-items:start}
.sheet{background:var(--blanc);border-radius:6px;padding:12px;box-shadow:0 2px 0 var(--trait),0 16px 30px -18px rgba(46,35,64,.4)}
.ariane{font-size:15px;color:var(--doux);margin:18px 0 -14px}.ariane a{text-decoration:none}.ariane span{margin:0 6px}
.rubriques{display:flex;flex-wrap:wrap;gap:6px 18px;margin:8px 0}
.idee{background:#fff1c9;border-radius:18px 18px 18px 4px;padding:14px 18px}
.video{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#2a1f3d;margin-top:10px}
.video button{all:unset;cursor:pointer;position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.video img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85}
.video .play{position:relative;background:#ff3b3b;color:#fff;border-radius:16px;padding:10px 22px;font-weight:800}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* atelier de coloriage */
.studio{margin-top:16px}
.outils{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:var(--blanc);border-radius:22px;padding:8px;box-shadow:0 3px 0 var(--trait)}
.outil{font:inherit;font-weight:700;border:0;background:transparent;color:var(--encre);border-radius:16px;padding:8px 14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.outil[aria-pressed=true]{background:var(--encre);color:#fff}
.outil .ico{font-size:24px;line-height:1}
#tailles{display:inline-flex;gap:4px;align-items:center;padding-left:6px;border-left:2px solid var(--trait)}#tailles[hidden]{display:none}
#tailles button{width:40px;height:40px;border:0;border-radius:12px;background:transparent;cursor:pointer;display:grid;place-items:center}
#tailles button[aria-pressed=true]{background:var(--papier)}
#tailles i{display:block;border-radius:50%;background:var(--choisie)}
.outils .espace{flex:1}
.atelier{display:grid;grid-template-columns:132px minmax(0,1fr) 170px;gap:16px;align-items:start;margin-top:14px}
.palette{display:grid;grid-template-columns:repeat(2,58px);gap:10px;position:sticky;top:12px}
.pastille{width:58px;height:58px;border-radius:50% 50% 46% 54%/56% 48% 52% 44%;border:0;cursor:pointer;background:var(--c);
box-shadow:inset 0 -6px 0 rgba(0,0,0,.16),0 0 0 3px var(--blanc);transition:transform .12s}
.pastille:nth-child(3n){border-radius:46% 54% 50% 50%/50% 46% 54% 50%}
.pastille.arc{background:conic-gradient(#ff4d4d,#ffc83d,#8ce05a,#5fc8ff,#9b5cff,#ff8fc8,#ff4d4d)}
.pastille.active{transform:scale(1.12);box-shadow:inset 0 -6px 0 rgba(0,0,0,.16),0 0 0 4px var(--blanc),0 0 0 8px var(--encre)}
.zone{position:relative;background:var(--blanc);border-radius:8px;padding:8px;min-height:240px;box-shadow:0 3px 0 var(--trait),0 22px 40px -26px rgba(46,35,64,.45)}
#toile{display:block;margin:0 auto;max-width:100%;max-height:max(440px,calc(100vh - 215px));width:auto;height:auto;touch-action:none;cursor:pointer}
#toile[data-outil=pinceau],#toile[data-outil=gomme]{cursor:crosshair}
#fete{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#chargement{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;margin:0;max-width:none;font-weight:700;color:var(--doux)}#chargement[hidden]{display:none}
.mascotte{position:sticky;top:12px;text-align:center}
#bulle{position:relative;background:var(--blanc);border-radius:20px;padding:10px 12px;font-weight:800;font-size:20px;line-height:1.2;margin:0 0 14px;max-width:none;
box-shadow:0 3px 0 var(--trait);opacity:0;transform:translateY(6px) scale(.95);transition:opacity .2s,transform .2s;min-height:1.2em}
#bulle::after{content:"";position:absolute;bottom:-10px;left:50%;margin-left:-10px;border:10px solid transparent;border-bottom:0;border-top-color:var(--blanc)}
#bulle.visible{opacity:1;transform:none}
#mascotte{width:130px;height:auto}
#mascotte.saute{animation:saute .45s cubic-bezier(.3,1.6,.5,1)}
@keyframes saute{30%{transform:translateY(-22px) scaleY(1.06)}60%{transform:translateY(0) scale(1.08,.92)}}
.fini{margin-top:18px;width:100%;justify-content:center;font-size:20px;background:var(--soleil);color:var(--encre);box-shadow:0 4px 0 #d99b00}
.fini:active{box-shadow:0 1px 0 #d99b00}
.fin-actions{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.fin-actions .btn{justify-content:center;padding:9px 14px;font-size:16px}
.fin-actions.montre .btn{animation:pop .4s}
.aide{color:var(--doux)}.grid.mini{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:20px 16px}
footer{margin-top:56px;border-top:3px solid var(--trait);background:var(--blanc);font-size:15px;color:var(--doux)}
footer .wrap{padding-top:18px;padding-bottom:24px}
@media (max-width:900px){.atelier{grid-template-columns:minmax(0,1fr)}
.palette{position:sticky;bottom:0;top:auto;z-index:5;order:2;display:flex;gap:10px;overflow-x:auto;margin:0 -16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));
background:rgba(245,241,255,.94);backdrop-filter:blur(6px);border-top:3px solid var(--trait);scrollbar-width:none}
.palette::-webkit-scrollbar{display:none}.pastille{flex:none;width:50px;height:50px}.zone{order:1}.mascotte{order:3;position:static;display:grid;grid-template-columns:90px 1fr;gap:8px 14px;align-items:center;text-align:left}
#mascotte{width:90px;grid-row:1}#bulle{grid-column:2;grid-row:1;margin:0}#bulle::after{bottom:auto;top:50%;left:-10px;margin:-10px 0 0;border:10px solid transparent;border-left:0;border-right-color:var(--blanc)}
.fini{grid-column:1/-1;margin-top:4px}.fin-actions{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}.fin-actions .btn{flex:1 1 140px}
#toile{max-height:none}}
@media (max-width:760px){.hero{grid-template-columns:1fr}.hero-jeu{order:-1}.page{grid-template-columns:1fr}
.logo{font-size:21px}.logo svg{width:30px;height:34px}header nav a{margin-left:12px;font-size:16px}header nav a:first-child{display:none}.hero-jeu svg{width:170px}.outil .txt{display:none}.outil{padding:8px 11px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media print{@page{size:A4;margin:8mm}header,footer,h1,.noprint{display:none!important}body{background:#fff}.page{display:block}.sheet{box-shadow:none;padding:0}
.sheet img{width:100%;max-height:100vh;object-fit:contain}}
