/* Édition collector : une couche visuelle indépendante de la logique du jeu. */
:root{--cream:#fff8e9;--pink:#f487b5;--cyan:#94dfc7;--yellow:#ffe478;--lav:#c5a6eb;--mint:#c7edd9;--ink:#29242f;--line:var(--ink);--font:Arial,Helvetica,sans-serif}
body{background:#f3e9dc;background-image:radial-gradient(#29242f10 .7px,transparent .7px);background-size:6px 6px;line-height:1.45}
button,input,select,textarea,.display,.hand,.logo,.collector-top,.collector-subtitle,.caption,.personalize h3,.slogan,.tier,.page-heading h1,.side-title{font-family:var(--font);font-style:normal}
.display,.page-heading h1,.side-title,.personalize h3{font-weight:800;letter-spacing:-.045em;text-transform:none;text-shadow:none}
.hand{font-weight:400;letter-spacing:0}.shell{max-width:520px;padding-bottom:110px}
.demo{background:var(--ink);color:var(--cream);font-size:10px;letter-spacing:.06em;padding:7px 12px;line-height:1.5}
.header{align-items:center;gap:14px;padding-top:20px;padding-bottom:24px}
.logo{width:136px;height:70px;padding:0;background:none;border:0;box-shadow:none;transform:rotate(-4deg);position:relative;flex-shrink:0;line-height:1}
.logo:before,.logo:after{content:none}.logo img{display:block;width:136px;height:56px;object-fit:contain}.logo span{font-family:var(--font);font-size:11px;font-weight:800;letter-spacing:.08em;background:var(--yellow);border:1.5px solid var(--ink);border-radius:6px;display:block;position:absolute;right:2px;bottom:0;padding:3px 8px;transform:rotate(7deg)}
.version{font-size:9px;line-height:1.65;letter-spacing:.035em}.version b{font-size:9px}.header-right{gap:12px}.avatar-button{border:2px solid var(--ink);box-shadow:3px 3px var(--mint);transform:none;border-radius:50%}
.eyebrow{font-size:10px;letter-spacing:.12em;font-weight:700;line-height:1.6;color:#625365;transform:none}
.edition-hero{background:var(--cream) url('collector/recto-illustration.webp') center/cover;position:relative;border:2px solid var(--ink);border-radius:22px;box-shadow:4px 5px var(--ink);height:190px;margin:14px 0 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.edition-age{display:block;width:64%;max-width:280px;height:98px;object-fit:contain;filter:drop-shadow(0 2px 0 #fff8)}
.edition-slogan{margin:-3px 0 0;width:88%;height:66px;line-height:1;display:flex;align-items:center;justify-content:center}
.edition-slogan img{display:block;width:100%;height:100%;object-fit:contain;transform:scale(1.28)}
.tagline{font-size:15px;margin:14px 0 20px;transform:none;text-align:center}.home-grid>.eyebrow{text-align:center}
.btn{border:2px solid var(--ink);border-radius:12px;background:var(--cream);box-shadow:3px 3px var(--ink);font-weight:700;transform:none;min-height:46px;line-height:1.3;transition:box-shadow .15s,background .15s}
.btn.primary,.modal .btn.primary{color:var(--ink);background:var(--pink);border:2px solid var(--ink);border-radius:12px;box-shadow:3px 3px var(--ink);transform:none}
.btn.yellow,.cta-row .yellow{background:var(--yellow);border-radius:12px;transform:none;box-shadow:3px 3px var(--ink)}
.btn:active{box-shadow:1px 1px var(--ink)}.btn.small{min-height:44px}.surprise,.cta-row .surprise{background:var(--mint);border:2px solid var(--ink);border-radius:18px;box-shadow:3px 3px var(--ink);transform:rotate(4deg);color:var(--ink);text-shadow:none}
.card-stage{border:2px solid var(--ink);background:var(--mint);border-radius:24px;padding:22px 20px 14px;box-shadow:5px 6px var(--ink);margin:18px 0 26px;overflow:visible;transform:none}
.card-stage:before,.card-stage:after{content:none}.card-stage-label{font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--ink)}
.home-collector{margin:18px auto 0;max-width:300px;width:100%;transform:rotate(-2deg)}
.collector{background:var(--card-bg);border:2px solid var(--ink);border-radius:18px;box-shadow:4px 5px var(--ink);padding:9px;transform:none}
.collector-inner{border:1.5px solid var(--ink);border-radius:11px;background:var(--cream);padding:12px;overflow:hidden}
.collector-top{font-size:24px;font-weight:800;line-height:1.1;letter-spacing:-.04em;gap:8px;transform:none;text-shadow:none}.collector-top>span{min-width:0;overflow-wrap:anywhere}.collector-top small{font-size:10px;line-height:1.5;letter-spacing:0;flex-shrink:0}
.portrait-main{border:2px solid var(--ink);border-radius:12px;background:var(--cream) url('collector/recto-illustration.webp') center/cover;overflow:hidden;transform:none;margin-top:12px}
.portrait-main img{border-radius:0;transform:none}.sticker-one,.sticker-two{filter:drop-shadow(1px 2px 0 var(--cream))}.collector-subtitle{font-size:11px;font-weight:700;line-height:1.4;background:var(--yellow);border:1.5px solid var(--ink);border-radius:6px;transform:none;padding:7px;margin:10px 0}
.stat{font-size:10px}.stat b{font-weight:700}.bar{border:1px solid var(--ink);height:7px;border-radius:5px;background:#eadfd5}.bar span{background:#d45b92}.stat:nth-child(2) .bar span{background:#55b69b}.stat:nth-child(3) .bar span{background:#9171bb}.stat:nth-child(4) .bar span{background:#d5a843}.stats-note{font-size:9px;line-height:1.4;color:#625365}
.card-stage-foot{margin-top:21px;gap:10px;flex-wrap:wrap}.card-stage-foot b{background:var(--yellow);border:1.5px solid var(--ink);border-radius:7px;transform:none}.card-hint{font-size:12px;transform:none;color:#504655}
.section-note{background:var(--cream);border:1.5px dashed #7b667a;border-radius:14px;box-shadow:none;transform:none;line-height:1.55}.section-note:after{content:none}
.side-title{font-size:27px;background:none;box-shadow:none;padding:0;transform:none;margin:30px 0 18px}
.quick,.quick:nth-child(2),.quick:nth-child(3){border:2px solid var(--ink);border-radius:15px;transform:none;box-shadow:3px 4px var(--ink);font-size:12px;padding:17px 5px}.quick:first-child:before{content:none}.quick svg{transform:none}.quick:nth-child(1){background:var(--mint)}.quick:nth-child(2){background:var(--yellow)}.quick:nth-child(3){background:var(--lav)}
.stars{border:1.5px solid var(--ink);border-radius:15px;transform:none;background:var(--cream);box-shadow:none}.hero-photo{transform:rotate(-1deg);border:2px solid var(--ink);border-radius:12px;box-shadow:4px 5px var(--ink);margin:26px 4px}.hero-photo img{border-radius:7px}.caption{font-size:13px;font-weight:700;line-height:1.4;transform:none}.hero-photo:after{content:none}
.page-heading{align-items:center;gap:12px;margin:12px 0 25px}.page-heading h1{font-size:38px;background:none;box-shadow:none;padding:0;margin:7px 0;transform:none;line-height:1.1;overflow-wrap:anywhere}.page-heading .ribbon{background:var(--mint);border:1.5px solid var(--ink);border-radius:8px;transform:rotate(3deg)}
.toolbar{gap:10px;margin:16px 0 24px}.toolbar .chip,.toolbar .chip:nth-child(2n){min-height:44px;border:1.5px solid var(--ink);border-radius:22px;transform:none;box-shadow:none;padding:10px 13px;font-weight:700}.chip.active{background:var(--yellow)}
.missions{gap:18px 14px}.mission,.mission:nth-child(2n),.mission:nth-child(3n){transform:none;border:2px solid var(--ink);border-radius:16px;box-shadow:3px 4px var(--ink);background:var(--cream);min-height:190px;padding:14px 12px;overflow:hidden}.mission:nth-child(4n+2){background:#f9d6e5}.mission:nth-child(4n+3){background:#e2d5f4}.mission:nth-child(4n){background:#fbedb3}.mission:before,.mission:nth-child(2n):before{content:none}.mission.done{background:var(--mint)}.mission-art,.mission:nth-child(2n) .mission-art{font-size:43px;transform:rotate(-6deg);margin:10px 0 12px}.mission h3{font-size:15px;font-weight:800;line-height:1.3;letter-spacing:-.02em}.mission-number{font-size:10px}.mission .stamp{transform:none;background:var(--cream);border:1.5px solid var(--ink);border-radius:6px}
.album{gap:25px}.photo-card,.photo-card:nth-child(2n){transform:none;background:var(--cream);border:2px solid var(--ink);border-radius:16px;box-shadow:4px 5px var(--ink);padding:12px}.photo-card img{border-radius:8px;border:1px solid var(--ink)}.photo-card h3{transform:none;line-height:1.3}.photo-card:nth-child(3n):after{content:none}.reaction,.reaction:nth-child(2n){transform:none;box-shadow:none;border:1.5px solid var(--ink);border-radius:18px;min-height:44px;background:#fffdf6;font-size:12px}.reaction.selected{background:var(--yellow);outline:2px solid var(--ink);outline-offset:2px}
.profile-caption{transform:none;border:1.5px solid var(--ink);border-radius:7px;background:var(--yellow);box-shadow:none;font-size:10px;letter-spacing:.06em}.profile-front{border:2px solid var(--ink);background:var(--mint);border-radius:24px;box-shadow:5px 6px var(--ink);transform:none;padding:24px 18px 20px}.profile-front:before{content:none}.profile-front>.collector{transform:rotate(-1deg);max-width:350px;margin:0 auto}.profile-front .collector-top{font-size:27px}.profile-front .collector-subtitle{font-size:11px}.profile-front .card-actions{gap:12px;margin-top:24px;flex-wrap:wrap}.card-actions .btn,.card-actions .btn.primary{transform:none;border-radius:12px;border:2px solid var(--ink);box-shadow:3px 3px var(--ink)}
.card-owner-note{transform:none;font-size:14px}.profile-front .collection{border:2px solid var(--ink);border-radius:15px;background:var(--cream);transform:none;box-shadow:3px 4px var(--ink)}.mission-stamp,.mission-stamp:nth-child(2n){transform:none;border-radius:7px;border:1px dashed #82727f}.mission-stamp.done{background:var(--mint);border:1.5px solid var(--ink);box-shadow:none}.badge,.badge:nth-child(2n){border-radius:12px;transform:none;border:1px dashed #82727f;min-height:92px}.badge.earned{background:var(--yellow);border:1.5px solid var(--ink);box-shadow:none}.tier-stop,.tier-stop:nth-child(2),.tier-stop:nth-child(3){transform:none;border-radius:11px;box-shadow:none;border:1px solid #82727f}.tier-stop.active{border:2px solid var(--ink);background:var(--yellow);box-shadow:2px 3px var(--ink)}
.personalize{transform:none;border:2px solid var(--ink);border-radius:16px;box-shadow:3px 4px var(--ink);background:var(--cream)}.personalize:before{content:none}.personalize h3{font-size:24px;transform:none}.swatch,.swatch:nth-child(2n){transform:none;border-radius:50%;box-shadow:none;min-width:44px;min-height:44px}.sticker-btn,.sticker-btn:nth-child(2n){transform:none;border-radius:10px;box-shadow:none;min-width:44px;min-height:44px}
.player,.player:nth-child(2n){transform:none;border:2px solid var(--ink);border-radius:16px;box-shadow:3px 4px var(--ink);background:var(--cream)}.rank,.rank:nth-child(2n){transform:none;border:1.5px solid var(--ink);border-radius:13px;box-shadow:none;background:var(--cream);padding:13px;margin-bottom:12px}.rank:first-child{background:var(--yellow)}
.capsule{transform:none;background:var(--cream);border:2px solid var(--ink);border-radius:22px;box-shadow:4px 5px var(--lav);padding:24px}.capsule .display{font-size:30px}.capsule textarea{line-height:1.5}
.dock{background:var(--cream);border:2px solid var(--ink);border-radius:20px;box-shadow:0 5px 0 var(--ink);gap:4px;padding:7px;bottom:calc(12px + env(safe-area-inset-bottom));max-width:460px;width:calc(100% - 24px);outline:none}.dock button{border-radius:12px;transform:none;font-size:10px;min-height:52px}.dock button.active{background:var(--yellow);color:var(--ink)}.dock .photo{background:var(--pink);border:1.5px solid var(--ink);border-radius:12px;color:var(--ink);box-shadow:none;transform:none}
.modal{background:var(--cream);border:2px solid var(--ink);border-radius:22px;box-shadow:5px 6px var(--ink);max-width:560px;line-height:1.5}.modal h2,.modal h3{font-weight:800;letter-spacing:-.025em}.modal .choice{border:1.5px solid var(--ink);border-radius:12px;box-shadow:none;transform:none;min-height:46px}.modal .choice.active{border:2px solid var(--ink);background:var(--mint);box-shadow:none}.upload-zone{border:2px dashed #78647b;border-radius:16px;background:#f4ece8}.upload-zone:after{content:none}.field{background:#fffdf6;border:1.5px solid #78647b;border-radius:10px;min-height:46px;font-size:16px;line-height:1.4}.field-label{font-weight:700;font-size:13px}.note{border-radius:12px;background:#eee4f4;line-height:1.55}.regie-item{border:1.5px solid var(--ink);border-radius:12px;background:#fffdf6}.recovery-key{border-radius:12px}.empty{border-radius:16px;line-height:1.6}.footer-note{color:#625365;font-size:11px;line-height:1.6}
.auth-panel{max-width:430px;margin:0 auto;padding-top:6px}.auth-panel .edition-hero{height:190px}.auth-panel>p{line-height:1.6}.auth-panel .btn{margin-top:12px}.auth-panel .eyebrow{text-align:center}.auth-panel .field{margin-bottom:14px}.auth-art{margin-bottom:25px}
@media(min-width:700px){.edition-hero{height:230px}.edition-age{height:125px}.edition-slogan{height:76px}.home-grid .edition-hero{grid-column:1/-1}.home-grid>.eyebrow{grid-column:1/-1}.header{padding-bottom:30px}}
@media(max-width:360px){.shell{padding-left:16px;padding-right:16px}.header-right .version{display:none}.edition-hero,.auth-panel .edition-hero{height:170px}.edition-age{height:86px}.edition-slogan{height:58px}.collector-top{font-size:22px}.profile-front{padding:20px 12px}.profile-front .collector-top{font-size:24px}.page-heading h1{font-size:33px}.mission h3{font-size:14px}.card-stage{padding-left:14px;padding-right:14px}.stats .stat b{width:108px}.quick{font-size:11px}.btn{padding:12px 13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Relief cartoon et composition décalée, sans changer l'ordre des écrans. */
:root{--pink:#f77fb3;--mint:#aee7cd;--yellow:#ffe36b;--lav:#bd9ce7}
body{background-color:#f0dce6;background-image:radial-gradient(#29242f13 1px,transparent 1px);background-size:9px 9px}
.shell{background-color:var(--cream);border:0;box-shadow:12px 0 0 #bfa6ed40,-12px 0 0 #94dfc730;overflow:clip;padding-left:25px;padding-right:25px}
.header{border-bottom:2px dashed #b39dba;margin-bottom:25px}.logo{transform:rotate(-7deg)}
.edition-hero{border-radius:40px 11px 34px 13px;transform:rotate(-1.5deg);box-shadow:5px 7px var(--ink),10px 12px var(--pink);margin:20px 4px 28px;background-size:auto 100%}
.edition-age{transform:rotate(-5deg);width:72%;height:108px}.edition-slogan{transform:rotate(3deg)}
.eyebrow{letter-spacing:.08em}.home-grid>.eyebrow,.auth-panel>.eyebrow{display:table;margin:0 auto;padding:5px 10px;background:var(--yellow);border:1.5px solid var(--ink);border-radius:8px 3px 9px 4px;transform:rotate(-3deg);color:var(--ink)}
.page-heading{margin:15px 2px 29px;position:relative}.page-heading h1,.side-title,.modal-head h2{font-weight:900;font-style:italic;letter-spacing:-.055em;color:var(--cream);-webkit-text-stroke:1.2px var(--ink);paint-order:stroke fill;text-shadow:2px 2px 0 var(--ink),4px 4px 0 var(--pink),5px 5px 0 var(--ink);transform:rotate(-3deg);line-height:1.18}
.page-heading h1{padding:0 4px 7px 0}.side-title{font-size:30px;padding:3px 4px 9px;transform:rotate(-2deg);margin-top:35px}.modal-head h2{font-size:29px;padding-bottom:7px;max-width:calc(100% - 52px)}
.page-heading:after{content:'✦';position:absolute;right:9px;top:0;color:var(--yellow);font-size:37px;-webkit-text-stroke:1.5px var(--ink);transform:rotate(13deg);pointer-events:none}.page-heading:has(.ribbon):after{content:none}
.btn,.btn.primary,.modal .btn.primary,.btn.yellow,.cta-row .yellow{border-radius:8px 18px 7px 16px;box-shadow:3px 4px var(--ink);transform:rotate(-.7deg)}
.btn.primary,.modal .btn.primary{border-radius:18px 6px 17px 7px;transform:rotate(.7deg)}
.cta-row{gap:17px;margin:28px 2px}.cta-row .yellow{transform:rotate(-2deg);box-shadow:4px 5px var(--ink)}.cta-row .surprise{transform:rotate(7deg);border-radius:43% 51% 41% 48%;box-shadow:3px 4px var(--ink)}
.card-stage{border-radius:35px 10px 30px 12px;background:var(--mint);transform:rotate(.6deg);box-shadow:5px 6px var(--ink),9px 10px var(--lav);margin:27px 2px 30px;position:relative;padding-top:29px}
.card-stage-label{display:table;background:var(--yellow);border:1.5px solid var(--ink);border-radius:5px 11px 4px 9px;padding:6px 9px;transform:rotate(-3deg);margin:-6px auto 0;box-shadow:2px 2px var(--ink)}
.card-stage:after{content:'✦';position:absolute;right:0;bottom:3px;font-size:42px;color:var(--pink);-webkit-text-stroke:1.5px var(--ink);transform:rotate(16deg);pointer-events:none}
.home-collector{transform:rotate(-3deg);margin-top:24px}.collector{border-radius:16px 7px 20px 8px;box-shadow:4px 5px var(--ink)}.collector-inner{border-radius:10px 5px 12px 5px}.collector-top{font-style:italic;letter-spacing:-.055em}.collector-top small{font-style:normal;letter-spacing:0}.portrait-main{border-radius:13px 5px 12px 4px}.collector-subtitle{border-radius:5px 10px 4px 8px;transform:rotate(-1deg)}
.card-stage-foot b{transform:rotate(-2deg);border-radius:6px 3px 9px 4px}.card-hint{transform:rotate(1deg);margin-top:15px}
.quick-links{gap:14px;padding:6px 2px 12px}.quick,.quick:nth-child(2),.quick:nth-child(3){border-radius:17px 6px 20px 7px;transform:rotate(-4deg);box-shadow:3px 5px var(--ink)}.quick:nth-child(2){transform:rotate(3deg);border-radius:6px 18px 7px 17px}.quick:nth-child(3){transform:rotate(-2deg);border-radius:18px 7px 16px 5px}.quick:first-child:before{content:'✦';position:absolute;left:-8px;top:-16px;font-size:28px;color:var(--pink);-webkit-text-stroke:1px var(--ink);pointer-events:none}
.section-note{transform:rotate(1deg);border-radius:7px 22px 8px 17px;border:1.5px dashed #78647b;box-shadow:3px 3px #bd9ce750;margin:27px 3px}.stars{transform:rotate(-1deg);border-radius:18px 7px 19px 8px}.hero-photo{transform:rotate(-2deg);border-radius:5px 14px 6px 10px;margin:32px 7px}.hero-photo .caption{transform:rotate(-1deg)}
.toolbar .chip,.toolbar .chip:nth-child(2n){border-radius:17px 7px 18px 7px;transform:rotate(-2deg)}.toolbar .chip:nth-child(2n){border-radius:7px 17px 8px 18px;transform:rotate(2deg)}.toolbar .chip.active{box-shadow:2px 3px var(--ink)}
.missions{gap:24px 18px;padding:6px 4px 12px}.mission,.mission:nth-child(2n),.mission:nth-child(3n){border-radius:6px 23px 8px 18px;transform:rotate(-2deg);box-shadow:4px 5px var(--ink);overflow:visible}.mission:nth-child(2n){border-radius:20px 7px 22px 6px;transform:rotate(2deg)}.mission:nth-child(3n){transform:rotate(-1deg)}.mission:before,.mission:nth-child(2n):before{content:'';position:absolute;top:-7px;left:13px;right:auto;width:42px;height:12px;background:var(--mint);border:1px solid var(--ink);transform:rotate(-8deg);pointer-events:none}.mission:nth-child(2n):before{background:var(--pink);transform:rotate(8deg)}.mission-art,.mission:nth-child(2n) .mission-art{transform:rotate(-10deg);filter:drop-shadow(2px 2px 0 #fff9)}.mission:nth-child(2n) .mission-art{transform:rotate(10deg)}.mission h3{font-style:italic;font-weight:800}.mission .stamp{transform:rotate(-4deg)}
.album{gap:34px;padding:6px 5px 15px}.photo-card,.photo-card:nth-child(2n){border-radius:5px 18px 7px 14px;transform:rotate(-1.5deg);box-shadow:4px 5px var(--ink)}.photo-card:nth-child(2n){border-radius:17px 6px 15px 7px;transform:rotate(1.5deg);box-shadow:4px 5px var(--lav)}.photo-card img{border-radius:8px 3px 10px 3px}.reaction,.reaction:nth-child(2n){border-radius:13px 5px 14px 6px}.reaction:nth-child(2n){border-radius:5px 13px 6px 14px}
.profile-caption{transform:rotate(-2deg);border-radius:5px 11px 4px 8px;box-shadow:2px 3px var(--ink);margin-left:3px}.profile-front{border-radius:30px 8px 32px 11px;transform:rotate(.6deg);box-shadow:5px 6px var(--ink),9px 10px var(--lav);margin:5px 3px 20px}.profile-front>.collector{transform:rotate(-2deg)}.profile-front .card-actions{padding:0 2px}.card-actions .btn,.card-actions .btn.primary{border-radius:7px 16px 6px 13px;transform:rotate(-1deg)}.card-actions .btn.primary{transform:rotate(1deg)}
.tier-stop,.tier-stop:nth-child(2),.tier-stop:nth-child(3){border-radius:6px 15px 7px 12px;transform:rotate(-2deg)}.tier-stop:nth-child(2){transform:rotate(2deg)}.personalize{border-radius:7px 23px 8px 18px;transform:rotate(-.5deg);margin:25px 3px}.swatch,.swatch:nth-child(2n){border-radius:43% 49% 40% 48%}.sticker-btn,.sticker-btn:nth-child(2n){border-radius:7px 13px 6px 12px;transform:rotate(-3deg)}.sticker-btn:nth-child(2n){transform:rotate(3deg)}
.player-grid{gap:23px 17px;padding:5px 4px 15px}.player,.player:nth-child(2n){border-radius:7px 22px 8px 16px;transform:rotate(-2deg)}.player:nth-child(2n){border-radius:20px 8px 17px 6px;transform:rotate(2deg)}.rank,.rank:nth-child(2n){border-radius:7px 18px 8px 14px;transform:rotate(-.7deg);margin:0 4px 15px;box-shadow:2px 3px var(--lav)}.rank:nth-child(2n){transform:rotate(.7deg)}
.capsule{border-radius:9px 31px 10px 24px;transform:rotate(-1deg);margin:6px 4px 18px;box-shadow:5px 6px var(--ink),9px 10px var(--pink)}
.modal{border-radius:28px 9px 25px 12px;box-shadow:6px 7px var(--ink),11px 12px var(--lav);background-image:linear-gradient(120deg,#fff8e900 70%,#f487b51c);padding-top:25px;overflow-x:clip}.modal-head{padding:3px 0 10px;align-items:flex-start;gap:10px}.close{width:44px;height:44px;flex-shrink:0;background:var(--yellow);border:2px solid var(--ink);border-radius:45% 52% 43% 48%;box-shadow:2px 3px var(--ink);transform:rotate(8deg)}
.modal .choice{border-radius:7px 18px 8px 15px}.modal .choice.active{box-shadow:2px 3px var(--ink);transform:rotate(-1deg)}.steps{gap:8px;margin:8px 0 15px}.step{width:10px;height:10px;border:1px solid var(--ink);border-radius:3px;transform:rotate(12deg)}.step.done{background:var(--pink)}
.upload-zone{position:relative;background:var(--cream) url('collector/recto-illustration.webp') center/cover;border:2px solid var(--ink);border-radius:25px 7px 23px 9px;box-shadow:3px 4px var(--ink);margin:20px 3px;transform:rotate(-1deg);isolation:isolate}.upload-zone:before{content:'';position:absolute;inset:12px;background:#fff8e9db;border:1.5px dashed #78647b;border-radius:16px 5px 15px 6px;z-index:-1;pointer-events:none}.upload-zone:after{content:'✦';position:absolute;right:0;top:-15px;font-size:34px;color:var(--yellow);-webkit-text-stroke:1.5px var(--ink);pointer-events:none}.upload-zone>svg{width:43px;height:43px;transform:rotate(-7deg)}
.note{border-radius:6px 19px 7px 15px;border-left:3px solid var(--ink)}.field{border-radius:7px 13px 6px 11px}.regie-item{border-radius:7px 20px 8px 16px}.empty{border-radius:8px 22px 9px 17px;background:#e2d5f4}.dock{border-radius:22px 10px 24px 12px;box-shadow:0 5px var(--ink),3px 8px var(--pink)}.dock .photo{transform:rotate(3deg);border-radius:15px 6px 17px 7px;box-shadow:2px 2px var(--ink)}
@media(max-width:360px){.shell{padding-left:19px;padding-right:19px}.edition-age{height:92px}.mission h3{font-size:13px}.missions{gap:22px 14px}.modal-head h2{font-size:26px}.card-stage{padding-left:13px;padding-right:13px}}


:root{--display-font:OupsCartoon,Arial,Helvetica,sans-serif;--shadow-strong:4px 5px var(--ink);--shadow-soft:2px 3px #29242f;--body-muted:#655764}
/* Une famille expressive pour les titres, une famille neutre pour les informations. */
.display,.page-heading h1,.side-title,.modal h2,.modal h3,.collector-top>span,.mission h3,.personalize h3{font-family:var(--display-font);font-weight:400;font-style:normal;font-synthesis:none;letter-spacing:.005em}
.page-heading h1,.side-title,.modal-head h2,.modal>#modalTitle{color:var(--cream);-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:2px 2px var(--ink),4px 4px var(--pink),5px 5px var(--ink);transform:rotate(-2deg);line-height:1.15;letter-spacing:.005em}
.page-heading h1{font-size:39px;max-width:100%;margin-top:8px;padding:0 3px 8px 0}.side-title{font-size:30px}.modal-head h2,.modal>#modalTitle{font-size:31px;padding-bottom:8px}.modal>#modalTitle{margin:12px 0 18px}.modal h3{font-size:23px;color:var(--ink);-webkit-text-stroke:0;text-shadow:none;transform:none}
.collector-top>span{font-size:29px;color:var(--ink);line-height:1.07;letter-spacing:.005em}.collector-top small,.collector-top .tier{font-family:var(--font);font-weight:700;font-style:normal;letter-spacing:0}.collector-top{background:none;padding:0;border:0;box-shadow:none;transform:none}.collector-top>span:before,.collector-top>span:after{content:none}.collector-top>span{background:none;box-shadow:none;border:0;transform:none;padding:0}
.shell{background-image:none;padding-bottom:35px}.header{padding-top:18px;padding-bottom:19px;border-bottom:1px dashed #b49aa8;margin-bottom:26px}.header-right:before{font-family:var(--font);font-size:11px;font-style:normal}.logo img{filter:none}.demo{font-size:10px;font-weight:700;letter-spacing:.025em}.footer-note{color:var(--body-muted)}
.home-grid>.eyebrow{font-size:9px;letter-spacing:.055em;max-width:100%;text-align:center}.edition-hero{margin-top:19px;border-width:2px;box-shadow:4px 5px var(--ink),8px 9px var(--pink)}.edition-age{width:74%;max-width:310px}.tagline{font-size:14px;margin:16px 0 24px;color:var(--body-muted)}
.card-stage{box-shadow:5px 6px var(--ink),9px 10px var(--lav);background:#b8e6d1;padding-top:25px;margin-bottom:32px}.card-stage-label{position:relative;left:auto;top:auto;margin:-7px auto 0;font-size:9px;letter-spacing:.045em;padding:5px 8px;box-shadow:2px 2px var(--ink)}.home-collector{max-width:285px;margin-top:21px}.card-stage:after{font-size:33px;top:auto;bottom:10px;right:2px}.card-stage-foot{font-size:13px;margin-top:22px}.card-hint{font-size:11px;line-height:1.6;margin:16px 0 0}.collector:before{inset:5px -4px -4px 7px;border-radius:16px 6px 20px 8px}.collector-inner{padding:11px}.collector-subtitle{font-size:10px;line-height:1.5;font-weight:700}.stats .stat b{font-size:10px}.stats .stat em{font-size:10px}.stats-note{font-size:9px;line-height:1.5}
/* Les petits contrôles restent légers ; les actions primaires ont du relief. */
.btn,.btn.yellow,.cta-row .yellow{box-shadow:2px 3px var(--ink);font-size:14px;font-weight:700}.btn.primary,.modal .btn.primary{box-shadow:3px 4px var(--ink);background:#eb86b2}.btn.small{box-shadow:none;border-width:1.5px}.btn:disabled,.modal .btn:disabled{opacity:1;color:#776b75;background:#e7dde3;border-color:#b3a5ae;box-shadow:none;transform:none}.btn:active:not(:disabled){box-shadow:1px 1px var(--ink)}
.toolbar{gap:9px;margin-top:19px;margin-bottom:28px;padding:0 2px;flex-wrap:wrap}.chip,.chip.active,.toolbar .chip,.toolbar .chip.active{color:var(--ink);font-size:12px;font-weight:700}.toolbar .chip{border-width:1.5px;box-shadow:none;min-height:44px;padding:10px 12px}.toolbar .chip.active{box-shadow:2px 3px var(--ink);background:var(--yellow)}
.quick-links{gap:16px;padding:5px 3px 15px}.quick,.quick:nth-child(2),.quick:nth-child(3){box-shadow:2px 3px var(--ink);font-weight:700}.quick svg{width:27px;height:27px;stroke-width:2}.section-note{color:#514450;font-size:13px;border:0;box-shadow:none;background:#f2e5f1;padding:17px;margin-top:29px}.stars{border-width:1px;box-shadow:none}
/* Dessins dédiés aux missions : lisibles à petite taille, sans rendu emoji variable. */
.missions{gap:25px 18px;padding:5px 4px 18px;align-items:stretch}.mission,.mission:nth-child(2n),.mission:nth-child(3n){min-height:207px;padding:15px 13px 14px;box-shadow:3px 4px var(--ink);display:flex;flex-direction:column;align-items:flex-start;text-align:left;transform:rotate(-1.5deg)}.mission:nth-child(2n){transform:rotate(1.5deg)}.mission:nth-child(3n){transform:rotate(-.5deg)}.mission.done{background:#b8e6d1}.mission-number{position:absolute;right:11px;top:12px;font-size:9px;font-weight:700;letter-spacing:.04em;color:#655764}.mission-art,.mission:nth-child(2n) .mission-art{display:block;width:83px;height:83px;font-size:0;filter:none;transform:rotate(-4deg);margin:11px 0 8px}.mission:nth-child(2n) .mission-art{transform:rotate(4deg)}.mission-art img{width:100%;height:100%;object-fit:contain;display:block}.mission h3{font-size:18px;line-height:1.12;margin:0 0 12px;color:var(--ink);text-shadow:none;-webkit-text-stroke:0;transform:none;overflow-wrap:anywhere}.mission .status{font-size:10px;line-height:1.5;margin-top:auto;min-height:18px}.mission .stamp{font-size:9px;white-space:normal;line-height:1.5;padding:3px 6px}.mission .stamp svg{width:14px;height:14px}.mission-detail-art{width:112px!important;height:112px!important;margin:7px auto 15px!important;transform:rotate(-5deg)!important}.mission-stamp img{display:block;width:34px;height:34px;margin:auto}.mission-stamp,.mission-stamp:nth-child(2n){min-height:52px}
.photo-card,.photo-card:nth-child(2n){box-shadow:3px 4px var(--ink)}.photo-card h3{font-family:var(--display-font);font-weight:400;font-style:normal;font-size:23px;line-height:1.15;margin:18px 0 9px}.photo-card .by{font-size:12px;color:#655764}.reaction,.reaction:nth-child(2n){background:#fffdf6;min-height:44px;font-size:12px;box-shadow:none;border-width:1px;padding:9px 11px}.reaction.selected{background:var(--yellow);outline-width:1px}.reactions{gap:9px;flex-wrap:wrap}.photo-card:after{content:none}
.profile-front .collector-top>span{font-size:30px}.profile-front .collector-subtitle{font-size:11px}.profile-front{padding:24px 16px 22px}.profile-caption{font-size:9px;letter-spacing:.035em;line-height:1.5;display:inline-block;max-width:100%;overflow-wrap:anywhere}.profile-layout{min-width:0}.profile-front .card-actions{gap:11px}.card-actions .btn,.card-actions .btn.primary{font-size:12px;padding:11px 10px;box-shadow:2px 3px var(--ink)}.personalize h3{font-size:25px}.personalize{box-shadow:2px 3px var(--ink)}.tier-stop{line-height:1.5}.tier-stop b{font-size:9px}.player,.player:nth-child(2n){box-shadow:2px 3px var(--ink)}.player b{font-family:var(--display-font);font-size:20px;font-weight:400;line-height:1.1;overflow-wrap:anywhere}.player .small{font-size:10px;line-height:1.5}.rank,.rank:nth-child(2n){box-shadow:none;border-width:1.5px}.rank b{font-family:var(--display-font);font-size:21px;font-weight:400;line-height:1.1;overflow-wrap:anywhere;min-width:0}.rank strong{font-family:var(--font);font-weight:800;font-size:17px}.rank strong small{font-size:10px}
.capsule{box-shadow:3px 4px var(--ink),7px 8px var(--pink);padding:23px 20px}.capsule .display{font-family:var(--display-font);font-size:33px;line-height:1.1;font-weight:400;font-style:normal;color:var(--ink)}
.modal{box-shadow:5px 6px var(--ink),9px 10px var(--lav);padding:22px 20px 24px;max-height:calc(100dvh - 32px);overflow-y:auto;overflow-x:hidden;background-image:none;scroll-padding-top:15px}.modal-head{gap:12px;padding-bottom:0}.modal-head h2{font-size:31px;max-width:calc(100% - 52px);margin:8px 0 12px;overflow-wrap:anywhere}.steps{margin:8px 0 12px;gap:7px}.step-label{font-size:10px;margin-right:5px;letter-spacing:.04em}.step{width:8px;height:8px}.close{width:44px;height:44px;min-width:44px;box-shadow:2px 2px var(--ink);font-family:var(--font)}
.upload-zone{min-height:190px;margin:19px 3px 25px;border-radius:24px 7px 22px 9px;box-shadow:3px 4px var(--ink);background-position:center;position:relative}.upload-zone:before{inset:12px;background:#fff8e9ed;border-radius:14px 5px 15px 6px;border:1px dashed #78647b}.upload-zone:after{font-size:28px;top:-12px;right:2px;background:none;border:0;padding:0;border-radius:0;box-shadow:none;color:var(--yellow);-webkit-text-stroke:1px var(--ink);transform:rotate(10deg)}.upload-zone>svg{color:#c94d87;width:43px;height:43px;stroke-width:2}.upload-zone .hand{font-size:14px;color:var(--ink);font-weight:700}.upload-zone:has(img){background:var(--cream);transform:none;border-radius:13px;overflow:hidden;min-height:0}.upload-zone:has(img):before,.upload-zone:has(img):after{content:none}.wizard-preview{border-radius:10px;max-height:240px;object-fit:contain;background:#eee4df}
.modal .choice-row{gap:10px;flex-wrap:wrap}.modal .choice{font-size:12px;padding:11px 9px;box-shadow:none;transform:none}.modal .choice.active{box-shadow:1px 2px var(--ink);transform:none}.modal .note{font-size:12px;line-height:1.65;padding:13px}.modal .small{font-size:11px;line-height:1.6}.modal .field-label{font-size:12px;line-height:1.6}.wizard-actions{gap:12px;padding:0 2px;margin-top:20px}.field{font-size:16px;line-height:1.5;color:var(--ink);min-width:0;max-width:100%}.field::placeholder{color:#766573}.regie-item{box-shadow:none}.regie-item h3{font-family:var(--display-font)}
.dock{padding:7px;max-width:440px;box-shadow:0 4px var(--ink),3px 7px var(--pink);border-radius:20px 9px 22px 11px}.dock button{min-height:53px;font-size:10px;font-weight:700;background:none;color:var(--ink)}.dock button.active{background:#ffe681}.dock .photo{background:#eb86b2;box-shadow:2px 2px var(--ink);transform:rotate(2deg)}.dock svg{width:23px;height:23px}
.auth-panel .edition-hero{margin-top:21px}.auth-panel{padding-bottom:24px}.auth-panel .note{font-size:12px;line-height:1.65}.auth-panel .field-label{display:block;margin-top:15px}.auth-panel .upload-zone{min-height:168px}.auth-panel .edition-slogan{font-family:var(--font);font-size:0;-webkit-text-stroke:0;text-shadow:none}
@media(max-width:390px){.shell{padding-left:20px;padding-right:20px}.header{gap:10px}.logo{width:128px}.logo img{width:128px}.missions{gap:24px 16px}.mission,.mission:nth-child(2n),.mission:nth-child(3n){padding:14px 11px;min-height:210px}.mission h3{font-size:17px}.mission-art,.mission:nth-child(2n) .mission-art{width:73px;height:73px}.page-heading h1{font-size:35px}.modal>#modalTitle,.modal-head h2{font-size:29px}.header-right{gap:7px}.card-stage{padding:24px 13px 14px}.profile-front{padding-left:12px;padding-right:12px}.profile-front .collector-top>span{font-size:28px}}
@media(max-width:340px){.shell{padding-left:18px;padding-right:18px}.header-right:before{display:none}.edition-hero{height:168px;margin-left:0;margin-right:0}.edition-age{height:91px}.edition-slogan{height:57px}.missions{gap:24px 13px;padding-left:2px;padding-right:2px}.mission h3{font-size:16px}.mission-art,.mission:nth-child(2n) .mission-art{width:65px;height:65px}.mission-number{font-size:8px}.mission .status{font-size:9px}.page-heading h1{font-size:32px}.page-heading:after{font-size:28px;right:0}.modal{padding:18px 16px 22px;max-height:calc(100dvh - 24px)}.modal>#modalTitle,.modal-head h2{font-size:27px}.modal .choice{font-size:11px}.collector-top>span{font-size:26px}.collector-inner{padding:9px}.profile-front .collector-top>span{font-size:26px}.stats .stat b{width:100px}.card-actions .btn,.card-actions .btn.primary{font-size:11px;padding-left:8px;padding-right:8px}.profile-caption{font-size:8px}.quick,.quick:nth-child(2),.quick:nth-child(3){font-size:11px}}

.page-heading{margin-bottom:22px}.page-heading h1{margin-bottom:4px}.mission-detail-art img{max-width:none}.auth-panel .edition-slogan{transform:rotate(3deg)}

.edition-icon{display:block;width:100%;height:100%;object-fit:contain}.badge span{display:block;width:44px;height:44px;margin:0 auto 7px}.badge .edition-icon{width:44px;height:44px}.badge{font-size:10px;line-height:1.4;padding:12px 5px}.rank-num .edition-icon{width:34px;height:34px}.capsule>.edition-icon{width:87px;height:87px;margin:0 auto 13px;transform:rotate(-6deg)}.mission-selection-label{color:var(--ink);font-weight:700;margin:9px 0 0;line-height:1.5}.capsule .paper{border:1px solid #b6a5b3;border-radius:8px 15px 7px 12px;box-shadow:none;padding:17px;text-align:left;background:#fffdf6}.capsule .paper p{overflow-wrap:anywhere}.capsule h3{font-family:var(--display-font);font-weight:400;font-size:24px}

.logo{color:var(--ink);-webkit-text-stroke:0;text-shadow:none}.logo span{color:var(--ink);-webkit-text-stroke:0;text-shadow:none;box-shadow:1px 2px var(--ink);font-family:var(--display-font);font-size:12px;font-weight:400;letter-spacing:.04em}.badge:not(.earned){opacity:1;color:#655764;background:#f1e8ec}.badge .edition-icon{opacity:1}

@font-face{font-family:OupsCartoon;src:url('fonts/Fredoka-Bold.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
/* Les lettrages principaux sont composés en SVG : chaque lettre a sa propre pose. */
.title-art{display:block;width:100%;height:auto;max-height:115px;object-fit:contain;object-position:left center}
.page-heading h1:has(.title-art),.side-title:has(.title-art),.modal h2:has(.title-art),.customize-title:has(.title-art){-webkit-text-stroke:0;text-shadow:none;transform:none;line-height:1;margin:0;padding:0;max-width:100%;font-size:0}
.page-heading h1:has(.title-art){width:max-content;max-width:100%;margin-top:7px}.page-heading h1 .title-art{width:auto;height:66px;max-width:100%;object-fit:contain}.page-heading>div{min-width:0;flex:1}.page-heading .eyebrow{font-size:9px;letter-spacing:.08em}.page-heading{gap:12px;margin:10px 0 24px}.page-heading:after{content:none}.page-heading .ribbon{flex-shrink:0;align-self:flex-start;margin-top:26px}
.side-title:has(.title-art){width:100%;margin:35px 0 22px}.side-title .title-art{height:118px;object-position:center;transform:rotate(-2deg)}
.modal h2 .title-art{height:99px;object-position:left}.modal h2:has(.title-art){margin:10px 0 18px}.customize-title .title-art{height:95px;object-position:center}
/* Bandeau : le logo, l'édition et une vraie carte miniature forment une composition. */
.header{position:relative;background:#fff8e9;border:0;border-bottom:2px solid var(--ink);border-radius:0 0 25px 8px;padding:16px 4px 17px;margin:0 0 27px;min-height:126px;gap:14px;align-items:center;isolation:isolate}
.header:before{content:'';position:absolute;bottom:-7px;left:10px;right:3px;height:7px;background:var(--mint);border-bottom:1.5px solid var(--ink);border-radius:0 0 25px 8px;z-index:-1}
.header .logo{width:148px;height:79px;transform:rotate(-6deg);flex-shrink:0}.header .logo img{width:148px;height:62px}.header .logo span{bottom:0;right:0;font-size:13px;padding:4px 9px}
.header-right{position:static;gap:16px;align-items:center;display:flex;min-width:0}.header-right:before,.header-right:after{content:none}.header-edition{font:700 8px/1.55 Arial,Helvetica,sans-serif;letter-spacing:.07em;text-align:center;transform:rotate(-3deg);background:var(--yellow);padding:7px 8px;border:1.5px solid var(--ink);border-radius:7px 15px 5px 11px;box-shadow:2px 2px var(--ink)}.header-edition b{font-size:9px}
.avatar-button{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;width:77px;height:102px;border:0;background:none;box-shadow:none;border-radius:0;padding:0;overflow:visible;flex-shrink:0;transform:none}
.avatar-button:before,.avatar-button:after{content:none}.avatar-button .mini-card{display:flex;flex-direction:column;width:62px;height:81px;background:var(--yellow);border:2px solid var(--ink);border-radius:6px 9px 5px 7px;box-shadow:3px 4px var(--mint),4px 5px var(--ink);padding:4px;transform:rotate(7deg)}
.mini-card-photo{display:block;flex:1;min-height:0;border:1px solid var(--ink);border-radius:3px;overflow:hidden;background:var(--cream)}.avatar-button .mini-card-photo img{display:block;width:100%;height:100%;object-fit:cover;border:0;border-radius:0;transform:none;aspect-ratio:auto;position:static;max-width:none}.mini-card-name{display:block;font-family:var(--display-font);font-size:9px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5;margin-top:3px;color:var(--ink);-webkit-text-stroke:0;text-shadow:none;transform:none}.mini-card-label{font:700 8px/1 Arial,Helvetica,sans-serif;letter-spacing:.07em;margin-top:10px;transform:rotate(3deg)}
body.auth .header{justify-content:center;min-height:115px}body.auth .header-right{display:none}
/* Raccourcis : des emblèmes illustrés, et non des icônes posées sur une boîte. */
.quick-links{gap:14px;padding:5px 3px 17px}.quick,.quick:nth-child(2),.quick:nth-child(3){position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:148px;border:2px solid var(--ink);box-shadow:3px 5px var(--ink);border-radius:27px 9px 30px 10px;padding:12px 4px 15px;background:var(--mint);transform:rotate(-4deg)}
.quick:nth-child(2){background:var(--yellow);border-radius:10px 30px 12px 26px;transform:rotate(3deg)}.quick:nth-child(3){background:var(--lav);border-radius:29px 11px 26px 9px;transform:rotate(-2deg)}
.quick .edition-icon{width:74px;height:74px;filter:drop-shadow(1px 2px 0 #fff8e9)}.quick>span{font-family:var(--display-font);font-weight:400;font-size:16px;line-height:1.05;max-width:100%;color:var(--ink)}.quick:after{content:'';position:absolute;inset:5px;border:1px dashed #29242f70;border-radius:22px 6px 25px 7px;pointer-events:none}.quick:first-child:before{font-size:25px;top:-12px;left:-7px;z-index:1}
.stars{background:#fff8e9;border:0;border-left:3px solid var(--ink);border-radius:3px 17px 5px 13px;padding:16px 15px;box-shadow:3px 3px #b8e6d180;margin:18px 3px 26px;transform:rotate(-.5deg)}.star{justify-content:flex-start;gap:13px;align-items:center;text-align:left}.star .portrait{width:48px;height:48px;flex-shrink:0;border:1.5px solid var(--ink);background:var(--yellow)}.star b{font-family:var(--display-font);font-size:20px;font-weight:400}.star small{font-size:11px;color:#655764}
/* Réactions : quatre stickers qui expriment une émotion avant de compter. */
.reactions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 13px;padding:4px 3px 8px;margin:17px 0 4px}.reaction,.reaction:nth-child(2n){position:relative;display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:5px;min-width:0;min-height:59px;padding:7px 8px;border:1.5px solid var(--ink);border-radius:19px 6px 18px 7px;box-shadow:2px 3px var(--ink);background:#ffe9a0;transform:rotate(-2deg);color:var(--ink);outline:none}
.reaction:nth-child(2){background:#e2d2f6;border-radius:6px 20px 7px 18px;transform:rotate(2deg)}.reaction:nth-child(3){background:#f8c9dd;transform:rotate(1deg)}.reaction:nth-child(4){background:#b8e6d1;border-radius:7px 19px 6px 18px;transform:rotate(-1.5deg)}.reaction .edition-icon{width:36px;height:36px;filter:drop-shadow(1px 1px 0 #fff8e9)}.reaction b{font-family:var(--display-font);font-size:14px;font-weight:400;line-height:1.05;text-align:left}.reaction-count{background:var(--cream);border:1px solid var(--ink);border-radius:50%;min-width:21px;height:21px;display:grid;place-items:center;font:700 10px/1 Arial;padding:2px}.reaction.selected{outline:2px solid var(--ink);outline-offset:3px;box-shadow:3px 4px var(--ink)}.reaction.selected:after{content:'✓';position:absolute;right:-6px;top:-8px;background:var(--cream);border:1.5px solid var(--ink);border-radius:50%;font:700 12px/20px Arial;width:21px;height:21px;transform:rotate(8deg)}
/* Paliers : la surface de la carte évolue, tout comme le portrait du joueur. */
.tier-road{gap:13px;padding:6px 3px 17px;margin-top:21px}.tier-stop,.tier-stop:nth-child(2),.tier-stop:nth-child(3){position:relative;border:1.5px solid var(--ink);border-radius:7px 18px 6px 14px;background:#fff8e9;box-shadow:2px 3px var(--ink);transform:rotate(-3deg);padding:9px 4px 12px;min-width:0;font-size:10px;line-height:1.4;color:#655764}
.tier-stop:nth-child(2){transform:rotate(2deg);background:#eee4fa;border-radius:17px 6px 15px 7px}.tier-stop:nth-child(3){transform:rotate(-1deg);background:linear-gradient(125deg,#d1f0e4,#eddaf5 45%,#fbd4e0 75%,#fff0bc);border-radius:7px 17px 6px 15px}.tier-stop>span{display:block;width:64px;height:71px;margin:0 auto 5px}.tier-stop .edition-icon{width:64px;height:71px}.tier-stop b{font-family:var(--display-font);font-weight:400;font-size:11px;line-height:1.2;color:var(--ink);letter-spacing:0;margin-bottom:7px}.tier-stop.active{background:var(--yellow);border:2px solid var(--ink);box-shadow:3px 4px var(--ink)}.tier-stop.active:after{content:'✓';position:absolute;top:-7px;right:-5px;width:19px;height:19px;border:1.5px solid var(--ink);border-radius:50%;background:var(--mint);font:700 11px/17px Arial;color:var(--ink)}
.personalize{background:#f0e4f7;border:2px solid var(--ink);border-radius:21px 7px 23px 9px;padding:20px 17px;margin-top:27px;box-shadow:4px 5px var(--ink)}.personalize label{font:700 12px/1.5 Arial;display:block;margin-top:16px}.personalize #nickname{font-family:Arial,Helvetica,sans-serif;font-size:16px;width:100%;max-width:100%;min-height:47px;background:#fffdf6;border:1.5px solid var(--ink);border-radius:7px 13px 6px 11px;padding:10px 12px}.swatches{gap:12px;margin:10px 0 18px}.swatch,.swatch:nth-child(2n){border:2px solid var(--ink);box-shadow:2px 2px var(--ink);width:44px;height:44px;transform:rotate(-3deg)}.swatch.active{outline:2px solid var(--ink);outline-offset:4px}.sticker-btn,.sticker-btn:nth-child(2n){background:var(--cream);border:1.5px solid var(--ink);box-shadow:2px 2px var(--ink);width:44px;height:44px}.sticker-btn.active{background:var(--yellow);outline:2px solid var(--ink);outline-offset:3px}
@media(max-width:390px){.header{gap:9px;padding-left:2px;padding-right:2px}.header .logo{width:130px;height:74px}.header .logo img{width:130px;height:56px}.header-right{gap:11px}.header-edition{font-size:7px;padding:6px}.header-edition b{font-size:8px}.avatar-button{width:66px}.page-heading h1 .title-art{height:61px}.modal h2 .title-art{height:97px}.quick .edition-icon{width:65px;height:65px}.quick>span{font-size:15px}.quick,.quick:nth-child(2),.quick:nth-child(3){min-height:136px}.reaction,.reaction:nth-child(2n){grid-template-columns:32px 1fr auto;gap:4px;padding:7px 6px}.reaction .edition-icon{width:32px;height:32px}.reaction b{font-size:13px}.reaction-count{min-width:19px;height:19px;font-size:9px}.tier-stop b{font-size:10px}.tier-stop>span,.tier-stop .edition-icon{width:58px;height:65px}}
@media(max-width:340px){.header-edition{display:none}.header .logo{width:142px}.header .logo img{width:142px;height:60px}.header .logo span{font-size:12px}.header-right{gap:0}.header{min-height:123px}.page-heading h1 .title-art{height:56px}.side-title .title-art{height:106px}.quick-links{gap:11px}.quick .edition-icon{width:57px;height:57px}.quick>span{font-size:13px}.quick,.quick:nth-child(2),.quick:nth-child(3){min-height:128px}.reaction,.reaction:nth-child(2n){grid-template-columns:28px 1fr auto;gap:3px}.reaction .edition-icon{width:28px;height:28px}.reaction b{font-size:12px}.tier-road{gap:10px}.tier-stop b{font-size:9px}.tier-stop>span,.tier-stop .edition-icon{width:52px;height:60px}.tier-stop{font-size:9px}.customize-title .title-art{height:88px}}

.quick>span{min-height:34px;display:flex;align-items:center;justify-content:center;max-width:100%;width:100%}.reaction .edition-icon{border:0;border-radius:0;box-shadow:none;background:none}.reaction,.reaction:nth-child(2n){grid-template-columns:32px minmax(0,1fr) auto}.reaction b{font-size:12px;min-width:0}.tier-stop b{font-family:Arial,Helvetica,sans-serif;font-weight:800;font-size:9px;line-height:1.4;white-space:nowrap;letter-spacing:-.02em}.tier-stop>span{flex-shrink:0}
@media(max-width:340px){.reaction,.reaction:nth-child(2n){grid-template-columns:27px minmax(0,1fr) auto;padding:7px 5px;gap:3px}.reaction .edition-icon{width:27px;height:27px}.reaction b{font-size:11px}.tier-stop b{font-size:8px;letter-spacing:-.01em}}

.personalize .swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;justify-items:center;width:100%;max-width:260px;margin:13px 0 23px}.personalize .stickers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;justify-items:center;width:100%;max-width:260px;margin-top:12px}.portrait img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}.star .portrait img{border:0;box-shadow:none}.player .portrait{width:68px;height:68px;border:2px solid var(--ink);box-shadow:2px 3px var(--mint);background:var(--cream)}.player .portrait img{border:0;transform:none}.player b{font-size:20px;margin:9px 0 3px}.player{padding:19px 10px}.ranking .rank-num{flex-shrink:0}.rank .portrait{border:1.5px solid var(--ink);flex-shrink:0}.rank b{line-height:1.1;text-align:left}.rank strong{flex-shrink:0}

.reaction,.reaction:nth-child(2n){grid-template-columns:minmax(0,1fr) auto;grid-template-rows:34px auto;gap:4px 7px;min-height:79px;padding:8px 10px}.reaction .edition-icon{grid-column:1;grid-row:1;width:34px;height:34px;justify-self:start}.reaction b{grid-column:1/-1;grid-row:2;width:100%;font-size:14px;line-height:1.15}.reaction-count{grid-column:2;grid-row:1;align-self:start;margin-top:4px}.reaction.selected:after{top:auto;right:-5px;bottom:-7px}.reactions{gap:14px 13px;padding-bottom:11px}
@media(max-width:340px){.reaction,.reaction:nth-child(2n){grid-template-columns:minmax(0,1fr) auto;grid-template-rows:30px auto;min-height:74px;padding:7px 9px;gap:4px 6px}.reaction .edition-icon{width:30px;height:30px}.reaction b{font-size:13px;line-height:1.1}.reaction-count{min-width:19px;height:19px}}

.collector-top.long-name{display:flex;flex-direction:column;align-items:stretch;gap:5px}.collector-top.long-name small{order:-1;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;width:100%}.collector-top.long-name small br{display:none}.collector-top.long-name>span{width:100%;max-width:100%;font-size:24px;line-height:1.06;overflow-wrap:anywhere}.profile-front .collector-top.long-name>span{font-size:25px}.capsule h2:has(.title-art){font-size:0;line-height:1;margin:17px 0 20px}.capsule h2 .title-art{height:101px;max-height:101px;object-position:center}

/* Accès au jeu : ticket et petite pochette surprise composés ensemble. */
.cta-row{display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:15px;align-items:stretch;margin:29px 3px 18px}
.cta-row .mission-entry{display:grid;grid-template-columns:48px minmax(0,1fr) 23px;gap:8px;text-align:left;padding:12px 11px;border-radius:8px 23px 7px 18px;min-height:94px;box-shadow:3px 4px var(--ink);position:relative;transform:rotate(-1.5deg)}
.mission-entry .edition-icon{width:48px;height:59px}.mission-entry>span{font-family:var(--display-font);font-size:20px;font-weight:400;line-height:1.02}.mission-entry>svg{width:23px;height:23px}
.cta-row .surprise{clip-path:none;min-width:0;max-width:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:var(--mint);border:2px solid var(--ink);border-radius:26px 8px 24px 7px;padding:8px 4px;transform:rotate(5deg);box-shadow:3px 4px var(--ink);text-shadow:none}
.surprise .edition-icon{width:55px;height:57px}.surprise>span{font-family:var(--display-font);font-weight:400;font-size:13px;line-height:1.1}
.section-note{position:relative;background:none;border:0;box-shadow:none;padding:9px 3px 12px;margin:0 4px 20px;transform:rotate(-.5deg);font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.6;color:#655764;text-align:left;border-bottom:1px dashed #b39dba;border-radius:0}
.section-note>span{display:block}.section-note>span:first-child{font-weight:700;color:var(--ink)}
/* Les filtres forment l'index de l'album, chacun avec un repère propre. */
.album-intro{display:flex;flex-wrap:wrap;gap:3px 6px;align-items:baseline;font-size:12px;line-height:1.6;margin:6px 2px 20px;color:#655764}.album-intro b{font-weight:700;color:var(--ink)}
.album-toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px 10px;padding:5px 2px 12px;margin:0 0 24px}
.album-toolbar .chip,.album-toolbar .chip:nth-child(2n){position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;min-height:82px;padding:10px 9px 8px;background:#f8e9b9;border:1.5px solid var(--ink);border-radius:7px 16px 5px 9px;box-shadow:2px 3px var(--ink);transform:rotate(-1deg);font-size:11px;line-height:1.2}
.album-toolbar .chip:before{content:'';position:absolute;width:34px;height:8px;top:-7px;left:9px;background:inherit;border:1.5px solid var(--ink);border-bottom:0;border-radius:6px 7px 0 0}
.album-toolbar .chip:nth-child(2){background:#f5d0e2;transform:rotate(1deg)}.album-toolbar .chip:nth-child(3){background:#e2d4f2;transform:rotate(-1deg)}.album-toolbar .chip:nth-child(4){background:#c9eadc;transform:rotate(1deg)}
.album-toolbar .chip .edition-icon{width:28px;height:28px;border:0;border-radius:0}.album-toolbar .chip>span{font-family:var(--font);font-weight:700;line-height:1.3;max-width:100%}.album-toolbar .chip.active{background:var(--yellow);border-width:2px;box-shadow:3px 4px var(--ink)}.album-toolbar .chip.active:after{content:'✓';position:absolute;right:6px;top:8px;color:var(--ink);font:700 12px Arial}
/* Stars : portrait et identité côte à côte, sans espace central vide. */
.stars{display:grid;grid-template-columns:1fr;gap:14px;background:none;border:0;border-radius:0;box-shadow:none;padding:0;margin:21px 4px 29px;transform:none}.stars:empty{display:none}
.star{display:grid;grid-template-columns:61px minmax(0,1fr) 33px;gap:13px;align-items:center;min-height:98px;background:var(--cream);border:1.5px solid var(--ink);border-radius:8px 23px 7px 18px;padding:13px;box-shadow:3px 4px var(--mint);transform:rotate(-1deg);flex:none;text-align:left}
.star:nth-child(2){transform:rotate(1deg);box-shadow:3px 4px var(--pink)}.star>.portrait{width:59px;height:59px;max-width:59px;min-width:59px;flex:none;margin:0;border:2px solid var(--ink);box-shadow:2px 2px var(--yellow);background:var(--cream)}.star>.star-info{min-width:0;display:flex;flex-direction:column;gap:5px;flex:none;align-items:flex-start}.star b{font-family:var(--display-font);font-size:21px;line-height:1.1;overflow-wrap:anywhere}.star small{font-family:var(--font);font-size:10px;line-height:1.4}.star-seal{display:block;width:33px;height:43px;transform:rotate(8deg)}.star-seal .edition-icon{width:33px;height:43px}
@media(max-width:390px){.album-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.album-toolbar .chip,.album-toolbar .chip:nth-child(2n){flex-direction:row;align-items:center;justify-content:flex-start;gap:7px;min-height:55px;padding:9px 10px;font-size:12px}.album-toolbar .chip .edition-icon{width:25px;height:25px;flex-shrink:0}.album-toolbar .chip.active:after{top:3px;right:4px;font-size:9px}.cta-row .mission-entry{grid-template-columns:40px minmax(0,1fr) 20px;gap:5px;padding:10px 8px}.mission-entry .edition-icon{width:40px;height:52px}.mission-entry>span{font-size:18px}.mission-entry>svg{width:20px;height:20px}.star{gap:10px}.star b{font-size:20px}}
@media(max-width:340px){.cta-row{grid-template-columns:minmax(0,1fr) 78px;gap:12px}.cta-row .mission-entry{grid-template-columns:33px minmax(0,1fr) 17px;gap:4px;padding:10px 6px}.mission-entry .edition-icon{width:33px;height:46px}.mission-entry>span{font-size:16px}.mission-entry>svg{width:17px;height:17px}.surprise .edition-icon{width:48px;height:51px}.surprise>span{font-size:12px}.album-toolbar .chip,.album-toolbar .chip:nth-child(2n){gap:5px;padding:9px 8px;font-size:11px}.album-toolbar .chip .edition-icon{width:23px;height:23px}.star{grid-template-columns:52px minmax(0,1fr) 27px;gap:8px;padding:11px}.star>.portrait{width:50px;height:50px;min-width:50px;max-width:50px}.star b{font-size:18px}.star-seal,.star-seal .edition-icon{width:27px;height:36px}.section-note{font-size:11px}}
/* Une identité unique ; l'accueil donne au logo sa pleine dimension. */
.header{border-bottom:0!important;display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:26px}
.header .birthday-logo{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:174px;height:107px;padding:3px 8px 16px;transform:rotate(-3deg);background:var(--cream) url('collector/recto-illustration.webp') center/cover;border:2px solid var(--ink);border-radius:24px 8px 20px 8px;box-shadow:3px 4px var(--ink),6px 7px var(--pink);overflow:visible}
.header .birthday-logo .brand-age{width:92%;height:58px;object-fit:contain;transform:rotate(-3deg)}
.header .birthday-logo .brand-slogan{width:100%;height:30px;object-fit:contain;transform:scale(1.14)}
.header .birthday-logo .brand-year{position:absolute;bottom:-11px;right:9px;font-family:var(--display-font);font-size:12px;background:var(--yellow);padding:3px 9px;border:1.5px solid var(--ink);border-radius:5px 9px 4px 8px}
.home-brand .header{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding-top:13px;padding-bottom:20px}
.home-brand .header-right{grid-column:2;grid-row:1;justify-content:flex-end}
.home-brand .header .birthday-logo{grid-column:1/-1;grid-row:2;width:100%;height:210px;margin:3px 0 7px;transform:rotate(-1.5deg);border-radius:37px 12px 32px 13px;box-shadow:4px 5px var(--ink),8px 9px var(--pink);padding:8px 15px 21px}
.home-brand .header .brand-age{width:76%;height:124px;max-width:420px}
.home-brand .header .brand-slogan{width:90%;height:64px;max-width:510px;transform:scale(1.16)}
.home-brand .header .brand-year{bottom:7px;right:12px;font-size:13px}
.home-brand .header:before{content:'ÉDITION DES 30 ANS';font:700 10px/1.4 Arial,sans-serif;letter-spacing:.1em;grid-column:1;grid-row:1}
.home-grid>.tagline{display:none}.home-grid .album-entry{display:flex;align-items:center;justify-content:center;gap:16px;background:var(--mint);border:2px solid var(--ink);border-radius:27px 8px 24px 9px;box-shadow:3px 5px var(--ink);padding:15px 17px;min-height:89px;width:100%;transform:rotate(-1deg)}
.album-entry .edition-icon{width:48px;height:52px;flex-shrink:0}.album-entry>span{font:400 21px/1.05 var(--display-font);text-align:left}.album-entry small{font:700 12px/1.6 Arial,sans-serif}.album-entry>svg{width:27px;height:27px;margin-left:auto}
.footer-note{display:flex;flex-direction:column;gap:10px;font:11px/1.5 Arial,sans-serif;text-align:center;border-top:1px dashed #c4b5bc;padding-top:19px;margin-top:26px}
.rules-link{border:0;background:none;box-shadow:none;align-self:center;font:700 12px/1.4 Arial,sans-serif;text-decoration:underline;text-underline-offset:4px;padding:8px;color:var(--ink);transform:none;border-radius:0;min-height:40px}
/* Photo : silhouette d'appareil, viseur et témoin de déclenchement. */
.dock #nav-photo{position:relative;overflow:visible;background:var(--pink);border:2px solid var(--ink);border-radius:12px 13px 10px 10px;box-shadow:3px 4px var(--ink);transform:rotate(3deg);margin-top:5px;min-height:56px;color:var(--ink)}
.dock #nav-photo:before{content:'';position:absolute;top:-8px;left:16%;width:34%;height:8px;background:var(--pink);border:2px solid var(--ink);border-bottom:0;border-radius:5px 5px 0 0}
.dock #nav-photo:after{content:'';position:absolute;top:7px;right:8px;width:6px;height:6px;background:#fff8ec;border:1.5px solid var(--ink);border-radius:50%}
.dock #nav-photo svg{width:30px;height:28px;filter:drop-shadow(1px 1px 0 #fff5)}
button[data-action="publish"]:not(#nav-photo){position:relative;background:var(--pink);border:2px solid var(--ink);border-radius:16px 7px 14px 7px;box-shadow:3px 4px var(--ink);padding:12px 14px;transform:rotate(2deg);min-height:48px}
button[data-action="publish"]:not(#nav-photo):before{content:'';position:absolute;top:-7px;left:12px;width:23px;height:7px;background:var(--pink);border:2px solid var(--ink);border-bottom:0;border-radius:4px 4px 0 0}
@media(max-width:340px){.header .birthday-logo{width:159px;height:99px}.header .birthday-logo .brand-age{height:52px}.header .birthday-logo .brand-slogan{height:26px}.home-brand .header .birthday-logo{width:100%;height:183px}.home-brand .header .brand-age{height:105px}.home-brand .header .brand-slogan{height:52px}.album-entry>span{font-size:19px}.album-entry .edition-icon{width:39px}}
@media(min-width:700px){.home-brand .header .birthday-logo{height:280px}.home-brand .header .brand-age{height:173px}.home-brand .header .brand-slogan{height:80px}}

.home-brand .header:before{position:static;inset:auto;transform:rotate(-2deg);width:auto;height:auto;background:none;border:0;box-shadow:none;padding:0;color:var(--ink)}
.header:after{content:none!important}.identity-sr-title{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.home-grid>.identity-sr-title{margin:0;min-height:0}
/* L'accueil est une couverture : sa grande carte remplace le raccourci de profil. */
.home-brand .header-right{display:none}.home-brand .header{grid-template-columns:1fr;gap:12px;min-height:0;padding-top:19px;padding-bottom:8px;margin-bottom:25px}
.home-brand .header:before{grid-column:1;justify-self:center;font-size:9px;background:var(--yellow);padding:5px 10px;border:1.5px solid var(--ink);border-radius:7px 12px 4px 8px;transform:rotate(-2deg)}
.home-brand .header .birthday-logo{grid-column:1;grid-row:2}
/* Éviter les recouvrements des décorations avec les pictogrammes. */
.dock #nav-photo svg{position:relative;z-index:2;flex-shrink:0}.dock #nav-photo:after{z-index:0}.dock #nav-photo:before{z-index:0}

.photo-emblem{display:inline-block;width:36px;height:36px;object-fit:contain;vertical-align:middle;flex-shrink:0}
.dock #nav-photo .photo-emblem{width:48px;height:45px;position:relative;z-index:2;margin-top:-5px;margin-bottom:0;transform:rotate(-5deg)}
.dock #nav-photo{font-size:9px;gap:1px;padding-top:3px;padding-bottom:4px}
button[data-action="publish"]:not(#nav-photo){display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 12px}
button[data-action="publish"]:not(#nav-photo) .photo-emblem{width:41px;height:39px}
button[data-action="capture"] .photo-emblem{width:46px;height:44px;margin-right:8px}
.upload-zone .photo-emblem{width:67px;height:67px}

/* L'appareil constitue le bouton lui-même : aucun cadre rose supplémentaire. */
.dock #nav-photo,.dock #nav-photo.active{position:relative;min-height:76px;margin-top:-9px;align-self:center;background:transparent;border:0;box-shadow:none;border-radius:0;transform:rotate(3deg);padding:0;overflow:visible;isolation:isolate}
.dock #nav-photo:before,.dock #nav-photo:after{content:none}
.dock #nav-photo .photo-emblem{position:absolute;inset:0;width:100%;height:100%;margin:0;transform:none;object-fit:fill;z-index:0}
.dock #nav-photo>span{position:absolute;bottom:7px;left:23%;width:54%;font:700 10px/1 Arial,sans-serif;transform:rotate(-3deg);z-index:1;color:var(--ink);text-align:center}
.page-heading button[data-action="publish"]{position:relative;width:88px;height:83px;flex-shrink:0;background:none;border:0;box-shadow:none;border-radius:0;padding:0;transform:rotate(4deg);isolation:isolate;overflow:visible}
.page-heading button[data-action="publish"]:before{content:none}
.page-heading button[data-action="publish"] .photo-emblem{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:0}
.page-heading button[data-action="publish"]>span{position:absolute;bottom:8px;left:23%;width:54%;font:700 11px/1 Arial,sans-serif;transform:rotate(-3deg);z-index:1;text-align:center}
@media(max-width:340px){.page-heading button[data-action="publish"]{width:77px;height:75px}.dock #nav-photo>span{font-size:9px;bottom:8px}}
.page-heading button[data-action="publish"]:not(#nav-photo){background:transparent;border:0;box-shadow:none;padding:0;border-radius:0;display:block}
.page-heading button[data-action="publish"]:not(#nav-photo):before{content:none}
.page-heading button[data-action="publish"]:not(#nav-photo) .photo-emblem{width:100%;height:100%;margin:0;inset:0;position:absolute;object-fit:fill}
/* Optique plus ample et tirage lisible : la silhouette reste nette à petite taille. */
.dock #nav-photo{min-height:82px;margin-top:-12px}
.dock #nav-photo>span{bottom:9px;left:25%;width:51%;font-size:10px}
.page-heading button[data-action="publish"]{height:94px;width:94px}
.page-heading button[data-action="publish"]>span{bottom:12px;left:25%;width:51%;font-size:11px}
@media(max-width:340px){.page-heading button[data-action="publish"]{width:82px;height:85px}.dock #nav-photo>span{font-size:9px}}

/* Tirage et lettrage sont dessinés ensemble dans le SVG, sans texte superposé. */
.dock #nav-photo{transform:rotate(-5deg)}
.page-heading button[data-action="publish"]:not(#nav-photo){transform:rotate(-5deg)}
.dock #nav-photo>span,.page-heading button[data-action="publish"]>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;padding:0}

/* Le raccourci de profil reprend le caractère rond des lettrages. */
.mini-card-label{font-family:var(--display-font);font-size:12px;font-weight:400;line-height:1.05;letter-spacing:0;text-transform:none;color:var(--ink);margin-top:9px;transform:rotate(-2deg);white-space:nowrap;text-shadow:.7px 1px #f7a2c5}
.mini-card-label>span{display:inline-block;font-family:Arial,sans-serif;font-size:12px;margin-left:1px;text-shadow:none;transform:rotate(4deg)}
@media(max-width:340px){.mini-card-label{font-size:11px}}

.mini-card-label{display:flex;align-items:center;justify-content:center;gap:3px;width:93px;margin-left:-12px;margin-right:-12px;margin-top:8px;transform:rotate(-3deg);text-shadow:none;line-height:1}
.avatar-button .mini-card-label img{display:block;position:static;width:78px;height:25px;object-fit:contain;border:0;border-radius:0;aspect-ratio:auto;max-width:none;background:none;transform:none}
.mini-card-label>span{font-size:15px;color:var(--ink);margin-left:0;transform:rotate(9deg)}
@media(max-width:340px){.mini-card-label{width:88px}.avatar-button .mini-card-label img{width:73px;height:24px}}
/* Deux vrais objets d'interface : l'étiquette de carte et l'appareil instantané. */
.mini-card-label{position:relative;z-index:3;width:91px;height:32px;gap:0;margin-top:-3px;margin-left:-10px;margin-right:-10px;transform:rotate(-5deg)}
.avatar-button .mini-card-label img{width:91px;height:32px;object-fit:contain}
.mini-card-label>span{display:none}
.avatar-button .mini-card{transform:rotate(6deg);box-shadow:2px 3px var(--ink)}
.header-right .avatar-button{padding-bottom:0;min-height:119px}
.dock #nav-photo{transform:rotate(-4deg);margin-top:-13px;min-height:85px}
.page-heading button[data-action="publish"]:not(#nav-photo){transform:rotate(-4deg);width:95px;height:102px}
@media(max-width:340px){.mini-card-label,.avatar-button .mini-card-label img{width:84px;height:30px}.page-heading button[data-action="publish"]:not(#nav-photo){width:82px;height:94px}}
/* Reprise des contrôles : une vraie petite carte, un bouton instantané. */
.header-right .avatar-button{width:88px;height:121px;min-height:0;padding:0;transform:rotate(4deg);display:flex;justify-content:center}
.avatar-button .mini-card{display:grid;grid-template-rows:11px minmax(0,1fr) 23px;gap:3px;width:82px;height:112px;padding:5px 5px 3px;border:2px solid var(--ink);border-radius:10px 5px 9px 5px;background:var(--cream);box-shadow:3px 4px var(--ink),6px 7px var(--mint);transform:none;overflow:visible}
.mini-card-name{grid-row:1;font:700 8px/11px Arial,sans-serif;margin:0;text-align:left;letter-spacing:.03em;color:var(--ink)}
.mini-card-photo{grid-row:2;border:1.5px solid var(--ink);border-radius:4px 6px 3px 4px;background:var(--pink)}
.avatar-button .mini-card-label{grid-row:3;width:100%;height:23px;position:static;margin:0;transform:none;display:block;background:none}
.avatar-button .mini-card-label img{width:100%;height:23px;object-fit:contain}
.dock #nav-photo{width:calc(100% + 5px);min-height:85px;margin-top:-12px;margin-left:-2px;transform:rotate(-6deg)}
.dock #nav-photo .photo-emblem{object-fit:contain}
.page-heading button[data-action="publish"]:not(#nav-photo){width:106px;height:100px;transform:rotate(-6deg)}
.page-heading button[data-action="publish"]:not(#nav-photo) .photo-emblem{object-fit:contain}
@media(max-width:390px){.header-right .avatar-button{width:84px;height:119px}.avatar-button .mini-card{width:77px;height:108px}.page-heading button[data-action="publish"]:not(#nav-photo){width:97px;height:95px}}
@media(max-width:340px){.header-right .avatar-button{width:78px;height:112px}.avatar-button .mini-card{width:72px;height:102px;grid-template-rows:10px minmax(0,1fr) 22px}.page-heading button[data-action="publish"]:not(#nav-photo){width:86px;height:90px}}
/* La carte est une pièce collector compacte, avec une vraie hiérarchie. */
.avatar-button .mini-card{background:#fff7e8;border-radius:11px 6px 10px 5px;padding:5px;gap:4px;box-shadow:2px 3px var(--ink),5px 6px #b3e4d4}
.mini-card-name{font-size:8px;letter-spacing:.035em;line-height:11px;border-bottom:1px solid #edb6ce;padding-bottom:2px}
.mini-card-photo{border-radius:6px 8px 4px 5px;box-shadow:1px 1px #eed1df}
.avatar-button .mini-card-label{height:24px;transform:rotate(-1deg)}
.avatar-button .mini-card-label img{height:24px}
.dock #nav-photo{min-height:91px;margin-top:-17px;transform:rotate(-6deg)}
.page-heading button[data-action="publish"]:not(#nav-photo){width:99px;height:111px;transform:rotate(-6deg)}
@media(max-width:340px){.page-heading button[data-action="publish"]:not(#nav-photo){width:85px;height:100px}}
/* Photo : une silhouette illustrée, posée sur son support tactile rose. */
.dock #nav-photo{isolation:isolate}
.dock #nav-photo::before{content:"";position:absolute;inset:23px 0 3px;z-index:-1;background:#f1a3c6;border:1.8px solid var(--ink);border-radius:17px 9px 18px 8px;box-shadow:2px 3px var(--ink);transform:rotate(5deg)}
.dock #nav-photo:active{transform:translateY(2px) rotate(-6deg)}
.dock #nav-photo:focus-visible{outline:3px solid #087b83;outline-offset:5px}

/* Illustration pastel validée : le libellé est imprimé sur le tirage. */
.dock #nav-photo::before{display:none}
.dock #nav-photo>span,.page-heading button[data-action="publish"]>span{position:absolute;clip-path:none;overflow:visible;white-space:nowrap;display:block;inset:auto 0 8%;width:100%;height:auto;padding:0;margin:0;text-align:center;font-family:"Fredoka",sans-serif;font-size:14px;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.025em;z-index:3;transform:rotate(3deg)}
.page-heading button[data-action="publish"]>span{bottom:12%;font-size:16px}
@media(max-width:340px){.dock #nav-photo>span{font-size:12px}.page-heading button[data-action="publish"]>span{font-size:14px}}
/* Libellé distinct : le tirage reste une illustration, PHOTO indique l’action. */
.dock #nav-photo .photo-emblem{inset:0 0 auto;height:calc(100% - 18px);width:100%;object-fit:contain}
.dock #nav-photo>span{inset:auto 0 0;font-family:var(--display-font);font-weight:400;font-size:13px;line-height:16px;letter-spacing:.035em;transform:none}
.page-heading button[data-action="publish"]:not(#nav-photo) .photo-emblem{inset:0 0 auto;height:calc(100% - 20px);width:100%;object-fit:contain}
.page-heading button[data-action="publish"]>span{inset:auto 0 0;font-family:var(--display-font);font-weight:400;font-size:14px;line-height:18px;transform:none}
/* Appareil seul : le libellé reste disponible aux lecteurs d’écran. */
.dock #nav-photo>span,.page-heading button[data-action="publish"]>span{position:absolute;inset:auto;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.dock #nav-photo .photo-emblem{inset:0;width:100%;height:100%;object-fit:contain}
.page-heading button[data-action="publish"]:not(#nav-photo) .photo-emblem{inset:0;width:100%;height:100%;object-fit:contain}
/* Un support rose explicite distingue l’action photo des illustrations. */
.dock #nav-photo{width:100%;margin-left:0;margin-top:-12px;min-height:85px;transform:rotate(-3deg);border:2px solid var(--ink);border-radius:19px 10px 20px 11px;background:#f1a3c6;box-shadow:3px 4px var(--ink);overflow:visible}
.dock #nav-photo .photo-emblem{inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);object-fit:contain}
.page-heading button[data-action="publish"]:not(#nav-photo){width:99px;height:105px;padding:6px;border:2px solid var(--ink);border-radius:21px 12px 22px 12px;background:#f1a3c6;box-shadow:3px 4px var(--ink);transform:rotate(-3deg)}
.page-heading button[data-action="publish"]:not(#nav-photo) .photo-emblem{inset:6px;width:calc(100% - 12px);height:calc(100% - 12px)}
.dock #nav-photo:active,.page-heading button[data-action="publish"]:active{transform:translate(2px,2px) rotate(-3deg);box-shadow:1px 2px var(--ink)}
@media(max-width:340px){.page-heading button[data-action="publish"]:not(#nav-photo){width:85px;height:94px}}
/* Finition du bouton instantané : cadre souple, marges et ombre équilibrés. */
.dock #nav-photo{min-height:80px;margin-top:-8px;border-width:1.8px;border-radius:22px 14px 23px 13px;background:#ed91ba;box-shadow:2px 3px var(--ink);transform:rotate(-2deg)}
.dock #nav-photo .photo-emblem{inset:3px 2px 4px;width:calc(100% - 4px);height:calc(100% - 7px);filter:drop-shadow(0 1px 0 #29242f35)}
.page-heading button[data-action="publish"]:not(#nav-photo){width:90px;height:96px;border-width:1.8px;border-radius:24px 15px 25px 14px;background:#ed91ba;box-shadow:2px 3px var(--ink);transform:rotate(-2deg)}
.page-heading button[data-action="publish"]:not(#nav-photo) .photo-emblem{inset:4px 3px 5px;width:calc(100% - 6px);height:calc(100% - 9px);filter:drop-shadow(0 1px 0 #29242f35)}
.dock #nav-photo:active,.page-heading button[data-action="publish"]:active{transform:translate(1px,2px) rotate(-2deg);box-shadow:1px 1px var(--ink)}
.page-heading button[data-action="publish"]:focus-visible{outline:3px solid #087b83;outline-offset:5px}
@media(max-width:340px){.page-heading button[data-action="publish"]:not(#nav-photo){width:79px;height:87px}}
/* Bouton photo compact : support circulaire, illustration en léger débord. */
.dock #nav-photo{width:70px;height:70px;min-height:70px;justify-self:center;margin:-5px 0 0;padding:0;border:2px solid var(--ink);border-radius:50%;background:#ed91ba;box-shadow:2px 3px var(--ink);transform:rotate(-3deg)}
.dock #nav-photo .photo-emblem{inset:-10px -3px auto;width:76px;height:76px;object-fit:contain;filter:drop-shadow(0 1px 0 #29242f30)}
.page-heading button[data-action="publish"]:not(#nav-photo){width:76px;height:76px;min-height:76px;padding:0;border:2px solid var(--ink);border-radius:50%;background:#ed91ba;box-shadow:2px 3px var(--ink);transform:rotate(-3deg)}
.page-heading button[data-action="publish"]:not(#nav-photo) .photo-emblem{inset:-10px -3px auto;width:82px;height:82px;object-fit:contain}
@media(max-width:340px){.dock #nav-photo{width:61px;height:61px;min-height:61px}.dock #nav-photo .photo-emblem{width:67px;height:67px;inset:-9px -3px auto}.page-heading button[data-action="publish"]:not(#nav-photo){width:67px;height:67px;min-height:67px}.page-heading button[data-action="publish"]:not(#nav-photo) .photo-emblem{width:73px;height:73px;inset:-9px -3px auto}}
/* Dernier équilibre : cercle visible et appareil centré sur son support. */
.dock #nav-photo .photo-emblem{inset:-6px 2px auto;width:66px;height:70px;object-fit:contain}
.page-heading button[data-action="publish"]:not(#nav-photo) .photo-emblem{inset:-6px 2px auto;width:72px;height:76px;object-fit:contain}
@media(max-width:340px){.dock #nav-photo .photo-emblem{inset:-5px 2px auto;width:57px;height:61px}.page-heading button[data-action="publish"]:not(#nav-photo) .photo-emblem{inset:-5px 2px auto;width:63px;height:67px}}

.award-card h3{font-family:var(--display-font);font-size:24px}.award-card{margin:16px 0}.award-photo{display:block;width:100%;max-height:260px;object-fit:contain;border-radius:12px;margin-bottom:10px}.award-card .btn{margin-top:8px}.award-card .btn span{display:block}

.award-card .btn{display:block;white-space:normal;min-width:0;text-align:left;padding:12px;width:100%}.award-card .award-photo{width:100%;max-width:100%;height:auto;max-height:220px;object-fit:contain;transform:none;border:0;box-shadow:none;margin:0 0 12px}.award-card .btn b{display:block;overflow-wrap:anywhere}.award-card .btn .small{margin-top:6px}
