/* Full-character outfits: every PNG already contains Shīfu and his clothing. */
.dress-stage{aspect-ratio:4/5;cursor:pointer;touch-action:manipulation}
.dress-stage>.dress-background{z-index:0}
.dress-stage>.dress-complete-character{z-index:2;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 14px 12px rgba(50,39,25,.2));transform-origin:50% 92%}
.dress-stage::after{content:"";position:absolute;z-index:1;left:50%;bottom:5%;width:38%;height:4%;border-radius:50%;background:rgba(48,39,28,.28);filter:blur(7px);transform:translateX(-50%);pointer-events:none}
.dress-wardrobe-title{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:16px}
.dress-wardrobe-title p{margin:0 0 4px;color:#9b5745;font-size:10px;font-weight:800;letter-spacing:.14em}
.dress-wardrobe-title h2{margin:0;font-family:Georgia,serif}
.dress-wardrobe-title>span{max-width:280px;color:#647269;font-size:11px;text-align:right}
.dress-complete-outfits{grid-template-columns:repeat(3,minmax(0,1fr))}
.dress-complete-outfits img{aspect-ratio:2/3;object-fit:contain;object-position:center bottom}
.dress-complete-outfits button{padding:10px;transition:transform .18s ease,box-shadow .18s ease}
.dress-complete-outfits button:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(68,55,36,.13)}
.dress-outfit-collection+.dress-outfit-collection{margin-top:26px;padding-top:22px;border-top:1px solid rgba(112,84,55,.18)}
.dress-collection-title{display:flex;align-items:baseline;gap:10px;margin:0 0 10px}
.dress-collection-title small{color:#9b5745;font-weight:800;letter-spacing:.12em}
.dress-collection-title h3{margin:0;font-family:Georgia,serif;font-size:19px}
.dress-complete-outfits .is-locked{position:relative;overflow:hidden;background:linear-gradient(145deg,#d8d2c8,#b9b4ad);color:#383b38}
.dress-complete-outfits .is-locked img{opacity:.3;filter:brightness(.08) grayscale(1) blur(10px);transform:scale(1.08)}
.dress-complete-outfits .is-locked strong{position:relative;z-index:2;letter-spacing:.04em}
.dress-complete-outfits .is-locked span{position:relative;z-index:2;color:#303530;font-weight:700}
.dress-lock{position:absolute;z-index:3;left:50%;top:37%;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;transform:translate(-50%,-50%);background:rgba(30,37,33,.9);color:#fff;font:700 24px/1 Georgia,serif;box-shadow:0 8px 20px rgba(0,0,0,.25);font-style:normal}
.dress-next-mystery{display:grid;place-items:center;flex:0 0 80px;width:80px;height:80px;border-radius:18px;background:linear-gradient(145deg,#454d48,#222925);color:#fff;font:700 34px/1 Georgia,serif;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.dress-touch-sparkle{position:absolute;z-index:4;left:67%;top:18%;font-size:38px;color:#df2737;opacity:0;pointer-events:none;text-shadow:0 3px 10px rgba(255,255,255,.8)}
.dress-stage:focus-visible{outline:4px solid #bc7541;outline-offset:4px}
.dress-stage.is-shifu-tapped>.dress-complete-character{animation:shifu-jump .98s cubic-bezier(.2,.8,.25,1)}
.dress-stage.is-shifu-tapped>.dress-touch-sparkle{animation:shifu-heart .98s ease-out}
.dress-stage.is-shifu-tapped::after{animation:shifu-jump-shadow .98s ease-in-out}
.dress-stage.is-shifu-dressed>.dress-complete-character{animation:shifu-dress-pop .72s cubic-bezier(.18,.85,.3,1.25)}
@keyframes shifu-jump{0%,100%{transform:translateY(0) scale(1) rotate(0)}12%{transform:translateY(2.5%) scaleX(1.07) scaleY(.93)}30%{transform:translateY(-10%) scaleX(.98) scaleY(1.05) rotate(-1.5deg)}46%{transform:translateY(-17%) scaleX(1.11) scaleY(.98) rotate(1deg)}61%{transform:translateY(-11%) scaleX(1.06) scaleY(1.01) rotate(-1deg)}78%{transform:translateY(1.5%) scaleX(1.08) scaleY(.92)}89%{transform:translateY(-2.5%) scale(.99,1.025)}96%{transform:translateY(.5%) scale(1.015,.985)}}
@keyframes shifu-jump-shadow{0%,100%{opacity:1;transform:translateX(-50%) scaleX(1)}12%,78%{opacity:.9;transform:translateX(-50%) scaleX(1.08)}46%{opacity:.28;transform:translateX(-50%) scaleX(.55)}}
@keyframes shifu-heart{0%{opacity:0;transform:translate(-15px,25px) scale(.35) rotate(-18deg)}34%{opacity:1;transform:translate(0,-10px) scale(1.25) rotate(10deg)}66%{opacity:1;transform:translate(10px,-45px) scale(1) rotate(-6deg)}100%{opacity:0;transform:translate(18px,-75px) scale(.65) rotate(18deg)}}
@keyframes shifu-dress-pop{0%{opacity:.25;transform:scale(.82) rotate(-2deg)}45%{opacity:1;transform:scale(1.055) rotate(1deg)}72%{transform:scale(.985)}100%{transform:scale(1)}}
@media(max-width:620px){.dress-wardrobe-title{display:block}.dress-wardrobe-title>span{display:block;margin-top:8px;text-align:left}.dress-complete-outfits{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.dress-complete-outfits button{transition:none}.dress-stage.is-shifu-tapped>.dress-complete-character,.dress-stage.is-shifu-tapped>.dress-touch-sparkle,.dress-stage.is-shifu-tapped::after,.dress-stage.is-shifu-dressed>.dress-complete-character{animation:none}}

/* 1.5.74 — shared, responsive Chinese dressing room. */
#dressingPage{background:linear-gradient(145deg,rgba(255,249,238,.96),rgba(239,244,237,.94));overflow:hidden}
.dress-room-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}
.dress-room-layout.has-drawer{grid-template-columns:minmax(0,1fr) minmax(330px,420px)}
.dress-room{position:relative;isolation:isolate;aspect-ratio:16/10;min-height:420px;overflow:hidden;border-radius:26px;background:#6c3424;box-shadow:0 20px 55px rgba(71,38,24,.28)}
.dress-room-background{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover}
.dress-room::after{content:"";position:absolute;z-index:1;inset:auto 0 0;height:34%;background:linear-gradient(transparent,rgba(48,22,13,.24));pointer-events:none}
.dress-room-character{position:absolute;z-index:var(--z);left:var(--x);bottom:calc(100% - var(--y));width:var(--w);height:auto;aspect-ratio:1;border:0;padding:0;background:transparent;transform:translate(-50%,50%);transform-origin:50% 88%;cursor:pointer;filter:drop-shadow(0 13px 9px rgba(44,25,16,.34));touch-action:manipulation}
.dress-room-character::after{content:"";position:absolute;z-index:-1;left:50%;bottom:7%;width:58%;height:8%;border-radius:50%;background:rgba(38,19,13,.35);filter:blur(5px);transform:translateX(-50%)}
.dress-room-character-image{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;pointer-events:none;user-select:none}
.dress-room-character:hover:not(.is-locked){filter:drop-shadow(0 16px 12px rgba(44,25,16,.42)) brightness(1.04)}
.dress-room-character:focus-visible{outline:4px solid #ffe7a6;outline-offset:5px;border-radius:24px}
.dress-room-character.is-locked .dress-room-character-image{filter:brightness(.09) grayscale(1) blur(5px);opacity:.78}
.dress-room-character.is-locked{cursor:not-allowed;filter:drop-shadow(0 10px 8px rgba(25,17,14,.28))}
.dress-room-lock{position:absolute;z-index:3;left:50%;top:43%;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;transform:translate(-50%,-50%);background:rgba(31,25,22,.88);color:white;font-size:20px;box-shadow:0 8px 22px rgba(0,0,0,.35)}
.dress-room-character>small{position:absolute;z-index:3;left:50%;bottom:5%;width:max-content;max-width:150%;padding:5px 8px;border-radius:999px;transform:translateX(-50%);background:rgba(37,27,22,.84);color:#fff;font-size:clamp(7px,.7vw,10px);font-weight:800;white-space:nowrap}
.dress-room-heart,.dress-drawer-heart{position:absolute;z-index:4;left:68%;top:5%;color:#ef4053;font-size:clamp(22px,3vw,42px);opacity:0;text-shadow:0 2px 8px rgba(255,255,255,.9);pointer-events:none}
.dress-room-instruction{position:absolute;z-index:8;left:50%;bottom:16px;padding:9px 15px;border:1px solid rgba(255,255,255,.35);border-radius:999px;transform:translateX(-50%);background:rgba(44,28,20,.7);backdrop-filter:blur(8px);color:#fff9e8;font-size:12px;font-weight:850;letter-spacing:.04em;pointer-events:none}
[data-visual="white-bear-base"]{filter:grayscale(1) brightness(2.45) contrast(.64) drop-shadow(0 13px 9px rgba(44,25,16,.28))}
.dress-room-character.is-locked [data-visual="white-bear-base"]{filter:brightness(.09) grayscale(1) blur(5px)}
.dress-drawer{min-width:0;max-height:min(72vh,760px);overflow:auto;border:1px solid rgba(142,94,58,.22);border-radius:24px;padding:16px;background:rgba(255,250,242,.97);box-shadow:0 18px 46px rgba(63,38,23,.18);scrollbar-color:#b9815b transparent}
.dress-drawer>header{position:sticky;z-index:8;top:-16px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-16px -16px 12px;padding:16px;background:rgba(255,250,242,.96);backdrop-filter:blur(10px);border-bottom:1px solid rgba(132,91,61,.16)}
.dress-drawer>header small{color:#9b5745;font-size:9px;font-weight:900;letter-spacing:.14em}
.dress-drawer>header h2{margin:2px 0;font:700 25px/1.1 Georgia,serif}
.dress-drawer>header span{color:#68736d;font-size:11px}
.dress-drawer>header button{flex:0 0 40px;width:40px;height:40px;border:0;border-radius:50%;background:#eadfce;color:#49392e;cursor:pointer;font:700 25px/1 sans-serif}
.dress-drawer-hero{position:relative;display:block;width:100%;height:230px;margin-bottom:14px;border:1px solid rgba(154,106,68,.18);border-radius:18px;background:radial-gradient(circle at 50% 42%,#fffef9,#f2e4cf);cursor:pointer;overflow:hidden;touch-action:manipulation}
.dress-drawer-character{width:100%;height:100%;object-fit:contain;object-position:center bottom;transform-origin:50% 90%;filter:drop-shadow(0 12px 9px rgba(62,42,27,.22))}
.dress-drawer-hero [data-visual="white-bear-base"]{filter:grayscale(1) brightness(2.45) contrast(.64) drop-shadow(0 12px 9px rgba(62,42,27,.18))}
.dress-drawer .dress-complete-outfits{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.dress-outfit-card{position:relative;min-height:200px}
.dress-outfit-card>img{height:128px;aspect-ratio:auto!important}
.dress-mystery-preview{display:grid;place-items:center;width:100%;height:128px;margin-bottom:5px;border-radius:12px;background:radial-gradient(circle,#666b67,#2c312e 72%);color:#fff;font:700 36px/1 Georgia,serif;filter:none!important}
.dress-outfit-card.is-locked{background:linear-gradient(145deg,#d7d2ca,#b6b2ac)!important}
.dress-outfit-card.is-locked strong,.dress-outfit-card.is-locked span{position:relative;z-index:2}
.dress-bare-card [data-visual="white-bear-base"]{filter:grayscale(1) brightness(2.45) contrast(.64)}
.dress-room-next{max-width:720px;margin:18px auto 0}
.dress-room-character.is-character-tapped{animation:companion-jump .92s cubic-bezier(.2,.8,.25,1)}
.dress-drawer-hero.is-character-tapped .dress-drawer-character{animation:companion-drawer-jump .92s cubic-bezier(.2,.8,.25,1)}
.dress-room-character.is-character-tapped .dress-room-heart,.dress-drawer-hero.is-character-tapped .dress-drawer-heart{animation:companion-heart .92s ease-out}
.dress-room-character.is-character-tapped::after{animation:companion-shadow .92s ease-in-out}
.dress-drawer-hero.is-character-dressed .dress-drawer-character{animation:companion-dress-pop .66s cubic-bezier(.18,.85,.3,1.25)}
.dress-room-character.is-locked-shake{animation:companion-locked .42s ease-in-out}
@keyframes companion-jump{0%,100%{transform:translate(-50%,50%) translateY(0) scale(1) rotate(0)}13%{transform:translate(-50%,50%) translateY(2%) scale(1.07,.93)}34%{transform:translate(-50%,50%) translateY(-18%) scale(.98,1.06) rotate(-2deg)}51%{transform:translate(-50%,50%) translateY(-25%) scale(1.09,.98) rotate(2deg)}72%{transform:translate(-50%,50%) translateY(-8%) scale(1.03)}86%{transform:translate(-50%,50%) translateY(1%) scale(1.06,.94)}}
@keyframes companion-heart{0%{opacity:0;transform:translate(-12px,20px) scale(.4)}35%{opacity:1;transform:translate(0,-5px) scale(1.2)}75%{opacity:1;transform:translate(10px,-35px) scale(.95)}100%{opacity:0;transform:translate(18px,-62px) scale(.6)}}
@keyframes companion-drawer-jump{0%,100%{transform:translateY(0) scale(1) rotate(0)}13%{transform:translateY(2%) scale(1.07,.93)}34%{transform:translateY(-10%) scale(.98,1.06) rotate(-2deg)}51%{transform:translateY(-15%) scale(1.09,.98) rotate(2deg)}72%{transform:translateY(-5%) scale(1.03)}86%{transform:translateY(1%) scale(1.06,.94)}}
@keyframes companion-shadow{0%,100%{opacity:1;transform:translateX(-50%) scaleX(1)}51%{opacity:.25;transform:translateX(-50%) scaleX(.55)}}
@keyframes companion-dress-pop{0%{opacity:.3;transform:scale(.82) rotate(-2deg)}48%{opacity:1;transform:scale(1.06) rotate(1deg)}74%{transform:scale(.985)}100%{transform:scale(1)}}
@keyframes companion-locked{0%,100%{transform:translate(-50%,50%)}25%{transform:translate(calc(-50% - 7px),50%)}75%{transform:translate(calc(-50% + 7px),50%)}}
@media(max-width:1100px){.dress-room-layout.has-drawer{grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr)}.dress-room{min-height:360px}.dress-room-character>small{display:none}}
@media(max-width:820px){.dress-room-layout.has-drawer{grid-template-columns:1fr}.dress-room{min-height:0;aspect-ratio:16/11}.dress-drawer{max-height:none}.dress-room-character{--w:24%!important}.dress-room-character[data-room-character="shifu"]{--x:19%!important}.dress-room-character[data-room-character="blue_bear"]{--x:40%!important}.dress-room-character[data-room-character="pink_bunny"]{--x:62%!important}.dress-room-character[data-room-character="white_bear"]{--x:83%!important}.dress-room-instruction{bottom:8px}}
@media(max-width:520px){#dressingPage{padding:12px;border-radius:18px}.dress-heading{margin-bottom:14px}.dress-room{aspect-ratio:4/3;border-radius:18px}.dress-room-layout.has-drawer .dress-room{position:sticky;z-index:5;top:6px}.dress-room-character{--w:28%!important}.dress-room-character[data-room-character="shifu"]{--x:16%!important}.dress-room-character[data-room-character="blue_bear"]{--x:39%!important}.dress-room-character[data-room-character="pink_bunny"]{--x:64%!important}.dress-room-character[data-room-character="white_bear"]{--x:87%!important}.dress-room-lock{width:32px;height:32px;font-size:15px}.dress-room-instruction{font-size:10px;padding:6px 10px}.dress-drawer{padding:12px;border-radius:18px}.dress-drawer>header{top:-12px;margin:-12px -12px 10px;padding:12px}.dress-drawer-hero{height:190px}.dress-outfit-card{min-height:178px}.dress-outfit-card>img,.dress-mystery-preview{height:108px}}
@media(prefers-reduced-motion:reduce){.dress-room-character.is-character-tapped,.dress-room-character.is-character-tapped .dress-room-heart,.dress-drawer-hero.is-character-tapped .dress-drawer-character,.dress-drawer-hero.is-character-tapped .dress-drawer-heart,.dress-drawer-hero.is-character-dressed .dress-drawer-character,.dress-room-character.is-locked-shake{animation:none}}

/* Dressing behaves like Écouter and Quiz: one full page at a time. */
#dressingPage{width:100%;max-width:none;min-height:calc(100vh - 118px);box-sizing:border-box}
.dress-room-layout{width:100%}
.dress-wardrobe-screen{width:100%;min-height:calc(100vh - 160px);padding:clamp(14px,2vw,28px);box-sizing:border-box;border:1px solid rgba(142,94,58,.2);border-radius:26px;background:rgba(255,250,242,.82);box-shadow:0 18px 48px rgba(63,38,23,.14)}
.dress-wardrobe-screen-head{display:flex;align-items:center;gap:22px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid rgba(132,91,61,.16)}
.dress-wardrobe-screen-head>div{flex:1;text-align:center}
.dress-wardrobe-screen-head small{color:#9b5745;font-size:10px;font-weight:900;letter-spacing:.16em}
.dress-wardrobe-screen-head h2{margin:4px 0;font:700 clamp(26px,3vw,42px)/1.05 Georgia,serif;color:#293e39}
.dress-wardrobe-screen-head span{color:#68736d;font-size:12px}
.dress-wardrobe-layout{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.5fr);gap:24px;align-items:start}
.dress-wardrobe-layout>.dress-drawer-hero{height:clamp(390px,58vh,650px);position:sticky;top:18px}
.dress-wardrobe-layout>.dress-items{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.dress-wardrobe-layout .dress-outfit-card{min-height:215px}
.dress-wardrobe-layout .dress-outfit-card>img,.dress-wardrobe-layout .dress-mystery-preview{height:148px}
.dress-wardrobe-layout .dress-drawer-hero [data-visual="white-bear-base"]{filter:grayscale(1) brightness(2.45) contrast(.64) drop-shadow(0 12px 9px rgba(62,42,27,.18))}
@media(max-width:1050px){.dress-wardrobe-layout{grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr)}.dress-wardrobe-layout>.dress-items{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.dress-wardrobe-screen{border-radius:18px;padding:12px}.dress-wardrobe-screen-head{align-items:stretch;flex-direction:column;gap:10px}.dress-wardrobe-screen-head>div{text-align:left}.dress-wardrobe-layout{grid-template-columns:1fr}.dress-wardrobe-layout>.dress-drawer-hero{position:relative;top:auto;height:300px}.dress-wardrobe-layout>.dress-items{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.dress-wardrobe-layout>.dress-items{grid-template-columns:repeat(2,minmax(0,1fr))}.dress-wardrobe-layout .dress-outfit-card{min-height:178px}.dress-wardrobe-layout .dress-outfit-card>img,.dress-wardrobe-layout .dress-mystery-preview{height:108px}}


/* ========================================================================
   Lóngmò 1.5.77 — DRESSING SALON PLEIN ÉCRAN
   L'entrée Dressing est désormais uniquement la pièce chinoise + les doudous.
   Aucun bandeau, aucune carte de progression, aucun panneau déroulant.
   Toucher un doudou ouvre sa garde-robe comme une seconde vue plein écran.
   ======================================================================== */
body[data-current-view="dressing"] #dressingPage.page-view.active{
  position:fixed!important;
  inset:0 0 0 var(--sidebar-w)!important;
  z-index:120!important;
  width:auto!important;
  max-width:none!important;
  min-height:100vh!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:#6c3424!important;
}
body[data-current-view="dressing"] #dressingPage>.dress-room{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  aspect-ratio:auto!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
body[data-current-view="dressing"] #dressingPage>.dress-room::after{
  height:24%!important;
  background:linear-gradient(transparent,rgba(48,22,13,.16))!important;
}
body[data-current-view="dressing"] #dressingPage .dress-room-background{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
}
body[data-current-view="dressing"] #dressingPage>.dress-wardrobe-screen{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:100vh!important;
  margin:0!important;
  padding:clamp(16px,2.2vw,30px)!important;
  overflow:auto!important;
  border:0!important;
  border-radius:0!important;
  background:rgba(255,250,242,.985)!important;
  box-shadow:none!important;
}
body[data-current-view="dressing"] .dress-wardrobe-screen-head{
  position:sticky!important;
  top:0!important;
  z-index:12!important;
  margin:-8px 0 18px!important;
  padding:8px 0 16px!important;
  background:rgba(255,250,242,.97)!important;
  backdrop-filter:blur(10px)!important;
  -webkit-backdrop-filter:blur(10px)!important;
}
body[data-current-view="dressing"] .teacher-buddy{display:none!important}
@media(max-width:780px){
  body[data-current-view="dressing"] #dressingPage.page-view.active{inset:0!important;padding-bottom:78px!important}
  body[data-current-view="dressing"] #dressingPage>.dress-room{bottom:78px!important}
  body[data-current-view="dressing"] #dressingPage>.dress-wardrobe-screen{bottom:78px!important;height:auto!important;min-height:0!important}
}

/* Five companions share the salon once the Detective reward is available. */
@media(max-width:820px){
 .dress-room-character{--w:20%!important}
 .dress-room-character[data-room-character="shifu"]{--x:12%!important}
 .dress-room-character[data-room-character="blue_bear"]{--x:31%!important}
 .dress-room-character[data-room-character="pink_bunny"]{--x:50%!important}
 .dress-room-character[data-room-character="white_bear"]{--x:69%!important}
 .dress-room-character[data-room-character="banana_cat"]{--x:88%!important}
}
