/* ===== 상점 ===== */
.shop-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:0;width:min(640px,100%);max-height:100%;overflow:hidden;display:flex;flex-direction:column}
.shop-top{display:flex;align-items:center;gap:10px;padding:16px 18px 12px;background:linear-gradient(135deg,color-mix(in srgb,var(--postit) 55%,var(--paper)),var(--paper))}
.shop-top h2{font-family:"Jua",sans-serif;font-weight:400;font-size:24px;margin:0;flex:1}
.shop-bal{font-family:"Jua",sans-serif;font-size:24px;background:var(--ink);color:var(--postit);border-radius:999px;padding:4px 14px;white-space:nowrap}
.shop-tabs{display:flex;gap:6px;padding:0 18px 10px;flex-wrap:wrap}
.shop-tab{border:1px solid var(--line);background:var(--memo);border-radius:999px;padding:6px 14px;font-size:13px;color:var(--ink)}
.shop-tab[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.shop-body{padding:4px 18px 18px;overflow-y:auto}
.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.item{border:1px solid var(--line);border-radius:16px;padding:12px;background:var(--memo);display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}
.item.owned{border-color:var(--green)}
.item.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink)}
.item .tier{position:absolute;top:10px;right:10px;font-size:10.5px;border-radius:999px;padding:1px 8px;font-weight:600}
.t-common{background:#E7EAEF;color:#5B6472} .t-rare{background:#DCE9FF;color:#2F5AA8} .t-epic{background:#EDE0FF;color:#6B3FC4}
.t-legend{background:linear-gradient(135deg,#FFD66B,#FF9E6B);color:#6B3E00}
.item .nm{font-family:"Jua",sans-serif;font-size:16px;font-weight:400}
.item .pv{min-height:54px;display:flex;align-items:center;justify-content:center;background:var(--paper);border-radius:12px;padding:8px}
.item .buy{border:0;border-radius:10px;padding:8px;font-size:13.5px;font-weight:600;background:var(--ink);color:var(--paper)}
.item .buy.have{background:var(--memo);color:var(--ink);border:1px solid var(--line)}
.item .buy.equipped{background:var(--green);color:#fff}
.item .buy:disabled{opacity:.45}
.price{font-family:"Jua",sans-serif;font-size:15px;color:var(--ink)}
.price.no{color:var(--muted)}

/* 칭호 */
.title-chip{display:inline-block;font-size:10.5px;font-weight:700;line-height:1.6;padding:0 7px;border-radius:999px;margin-left:5px;vertical-align:1px;white-space:nowrap}
.tc-common{background:#E7EAEF;color:#4A5262}
.tc-rare{background:#2F5AA8;color:#fff}
.tc-epic{background:#6B3FC4;color:#fff}
.tc-legend{background:linear-gradient(90deg,#FFD66B,#FF8FA3,#9ED8FF,#FFD66B);background-size:300% 100%;color:#3A2A00;animation:shimmer 3s linear infinite}
@keyframes shimmer{to{background-position:300% 0}}

/* 말풍선 스킨 */
.bub[class*="bs-"]{position:relative}
.bs-cloud{background:#fff!important;border:0!important;border-radius:22px!important;box-shadow:0 3px 0 rgba(0,0,0,.07),0 0 0 1px rgba(0,0,0,.04)!important;color:#22252E!important}
.bs-postit{background:linear-gradient(135deg,#FFF3B8,#FFD75E)!important;border:0!important;border-radius:4px 4px 16px 4px!important;color:#3A2E05!important;box-shadow:2px 3px 0 rgba(0,0,0,.1)!important}
.bs-mint{background:linear-gradient(135deg,#E6FBF0,#C6F0DC)!important;border:1px solid #67C99A!important;color:#12543A!important;border-radius:16px!important;box-shadow:0 2px 6px rgba(103,201,154,.25)!important}
.bs-paper{background:repeating-linear-gradient(#fff 0 20px,#EAF0FF 20px 21px)!important;border:1px solid #D7DEEC!important;color:#22252E!important;border-radius:4px!important;box-shadow:2px 2px 0 rgba(0,0,0,.05)!important}
.bs-stamp{background:#FFFDF8!important;border:2px dashed #C8342A!important;color:#5A1A15!important;border-radius:6px!important;box-shadow:inset 0 0 0 4px rgba(200,52,42,.06)!important}
.bs-candy{background:linear-gradient(135deg,#FFE3EF,#FFD2E2)!important;border:1px solid #FFB8D2!important;color:#7A3350!important;border-radius:18px!important;
  box-shadow:0 1px 3px rgba(255,150,190,.25)!important}
.bs-sky{background:linear-gradient(120deg,#6FC0FF,#8FA8FF,#C09BFF,#6FC0FF)!important;background-size:260% 100%!important;color:#fff!important;border:0!important;border-radius:20px!important;
  overflow:hidden;animation:shimmer 5s linear infinite;box-shadow:0 6px 20px rgba(120,150,255,.5),inset 0 1px 0 rgba(255,255,255,.6)!important;text-shadow:0 1px 3px rgba(40,50,120,.45)!important}
.bs-sky::before{content:"";position:absolute;top:0;bottom:0;width:45%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);animation:sweep 3.2s ease-in-out infinite}
.bs-night{background:radial-gradient(1.4px 1.4px at 18% 26%,#fff 99%,transparent),radial-gradient(1.2px 1.2px at 72% 20%,#CFE6FF 99%,transparent),radial-gradient(1.6px 1.6px at 42% 68%,#FFE9A0 99%,transparent),radial-gradient(1.2px 1.2px at 86% 62%,#fff 99%,transparent),linear-gradient(140deg,#1D2442,#472C63 60%,#6B3A78)!important;
  color:#F6EFFF!important;border:0!important;border-radius:20px!important;box-shadow:0 8px 22px rgba(35,43,74,.55),inset 0 0 22px rgba(170,140,255,.35)!important;animation:starTwinkle 3.4s ease-in-out infinite}
.bs-night::after{content:"🌙";position:absolute;top:-10px;right:-6px;font-size:16px;filter:drop-shadow(0 0 6px rgba(255,220,120,.95));animation:moonFloat 3.6s ease-in-out infinite}
.bs-neon{background:linear-gradient(145deg,#0E1120,#1A2036)!important;color:#A6F9FF!important;border:1.5px solid #59E3F8!important;border-radius:16px!important;overflow:hidden;
  box-shadow:0 0 14px rgba(79,216,240,.65),0 0 34px rgba(79,216,240,.35),inset 0 0 18px rgba(79,216,240,.25)!important;
  text-shadow:0 0 8px rgba(166,249,255,.95),0 0 18px rgba(79,216,240,.6)!important;animation:neonPulse 2.2s ease-in-out infinite,neonFlicker 7s steps(1) infinite}
.bs-neon::before{content:"";position:absolute;left:0;right:0;height:38%;top:-40%;background:linear-gradient(180deg,rgba(120,240,255,.22),transparent);animation:scan 2.8s linear infinite}
.bs-aurora{border:0!important;border-radius:20px!important;color:#0E2138!important;overflow:hidden;
  background:linear-gradient(115deg,#9BF6E4,#A9C8FF,#EBB6FF,#FFDCA8,#9BF6E4)!important;background-size:320% 100%!important;animation:shimmer 4.5s linear infinite,auroraGlow 3.6s ease-in-out infinite;
  box-shadow:0 8px 26px rgba(150,190,255,.55),inset 0 1px 0 rgba(255,255,255,.85)!important}
.bs-aurora::before{content:"";position:absolute;top:0;bottom:0;width:40%;left:-55%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);animation:sweep 2.8s ease-in-out infinite}
.bs-aurora::after{content:"✧";position:absolute;top:-8px;right:-4px;font-size:15px;color:#8F7BFF;text-shadow:0 0 8px rgba(143,123,255,.8);animation:twinkle 1.8s ease-in-out infinite}
@keyframes sweep{0%{left:-60%}60%,100%{left:120%}}
@keyframes scan{0%{top:-40%}100%{top:110%}}
@keyframes starTwinkle{50%{filter:brightness(1.25)}}
@keyframes moonFloat{50%{transform:translateY(-4px) rotate(-8deg)}}
@keyframes neonFlicker{0%,96%,100%{opacity:1}97%{opacity:.55}98%{opacity:1}99%{opacity:.7}}
@keyframes auroraGlow{50%{box-shadow:0 10px 32px rgba(180,150,255,.7),inset 0 1px 0 rgba(255,255,255,.9)}}
@keyframes neonPulse{50%{box-shadow:0 0 22px rgba(79,216,240,.9),0 0 46px rgba(79,216,240,.5),inset 0 0 22px rgba(79,216,240,.35)}}
@keyframes twinkle{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.2)}}

/* 이름표 스킨 */
.lbl[class*="np-"]{position:relative;overflow:visible}
.np-badge{background:#fff!important;color:#22252E!important;border-left:4px solid #2F5AA8!important;border-radius:4px!important;padding-left:7px!important;box-shadow:0 1px 3px rgba(0,0,0,.18)!important}
.np-pastel{background:linear-gradient(135deg,#EFE6FF,#FFD9EC)!important;color:#4A3B6B!important;box-shadow:0 1px 4px rgba(150,120,200,.3)!important}
.np-forest{background:linear-gradient(135deg,#D6F7E4,#6FC49A)!important;color:#0C3A26!important;box-shadow:0 1px 4px rgba(60,150,110,.35)!important}
.np-gold{background:linear-gradient(100deg,#FFF6D0 0%,#EFBE3F 30%,#FFFBEC 46%,#D79E20 62%,#FFEFB0 100%)!important;background-size:260% 100%!important;
  color:#4A3300!important;font-weight:700;overflow:hidden;box-shadow:0 3px 10px rgba(190,140,0,.55),inset 0 0 0 1px rgba(255,255,255,.65)!important;animation:shimmer 3.6s linear infinite,goldGlow 2.6s ease-in-out infinite}
.np-gold::after{content:"";position:absolute;top:0;bottom:0;width:45%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.85),transparent);animation:sweep 3s ease-in-out infinite}
.np-neon{background:#0B0F1C!important;color:#8CFBFF!important;font-weight:700;box-shadow:0 0 12px rgba(125,249,255,.8),0 0 26px rgba(125,249,255,.45),inset 0 0 0 1px rgba(125,249,255,.65)!important;
  text-shadow:0 0 8px rgba(140,251,255,.95),0 0 16px rgba(79,216,240,.7)!important;animation:neonPulse 2.2s ease-in-out infinite,neonFlicker 6s steps(1) infinite}
.np-rainbow{background:linear-gradient(90deg,#FF8FA3,#FFD66B,#9EF0C8,#9ED8FF,#C9B6FF,#FF8FA3)!important;background-size:340% 100%!important;color:#2A2440!important;font-weight:700;
  box-shadow:0 3px 12px rgba(160,140,255,.6),inset 0 0 0 1px rgba(255,255,255,.7)!important;animation:shimmer 2.6s linear infinite,rbGlow 3s ease-in-out infinite}
.np-rainbow::after{content:"✦";position:absolute;top:-9px;right:-7px;font-size:12px;color:#FFB3D9;text-shadow:0 0 6px rgba(255,140,200,.9);animation:twinkle 1.6s ease-in-out infinite}
.np-crown{background:linear-gradient(135deg,#2A1946,#6B3FC4 55%,#C089FF)!important;color:#FFF0CC!important;font-weight:700;
  box-shadow:0 4px 14px rgba(107,63,196,.6),inset 0 0 0 1.5px rgba(255,214,107,.85)!important;animation:crownGlow 2.8s ease-in-out infinite}
.np-crown::before{content:"👑";position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:14px;filter:drop-shadow(0 0 5px rgba(255,200,80,.95));animation:crownBob 2.2s ease-in-out infinite}
.np-crown::after{content:"";position:absolute;inset:-3px;border-radius:9px;background:conic-gradient(from 0deg,rgba(255,214,107,.0),rgba(255,214,107,.55),rgba(255,214,107,0) 60%);animation:spin 4s linear infinite;z-index:-1}
@keyframes goldGlow{50%{box-shadow:0 4px 16px rgba(255,190,60,.8),inset 0 0 0 1px rgba(255,255,255,.85)}}
@keyframes rbGlow{50%{box-shadow:0 5px 18px rgba(200,150,255,.85),inset 0 0 0 1px rgba(255,255,255,.9)}}
@keyframes crownGlow{50%{box-shadow:0 6px 20px rgba(150,90,255,.8),inset 0 0 0 1.5px rgba(255,235,150,1)}}
@keyframes crownBob{50%{transform:translateX(-50%) translateY(-3px) rotate(-6deg)}}

/* 색상 (파스텔 틴트) */
.tn-sakura{background:linear-gradient(135deg,#FFE7F1,#FFC9DE)!important;border:1px solid #FFB3D0!important;color:#7A3350!important;border-radius:18px!important}
.tn-lavender{background:linear-gradient(135deg,#F0EAFF,#D9CCFF)!important;border:1px solid #C3AFFF!important;color:#4A3A7A!important;border-radius:18px!important}
.tn-mint{background:linear-gradient(135deg,#E4FBF1,#C2F0DC)!important;border:1px solid #93DDBC!important;color:#17543C!important;border-radius:18px!important}
.tn-peach{background:linear-gradient(135deg,#FFEFE2,#FFD9BE)!important;border:1px solid #FFBF95!important;color:#7A4322!important;border-radius:18px!important}
.tn-sky{background:linear-gradient(135deg,#E7F4FF,#C7E4FF)!important;border:1px solid #9CCDF5!important;color:#1E4468!important;border-radius:18px!important}
.tn-butter{background:linear-gradient(135deg,#FFF8DC,#FFEDAE)!important;border:1px solid #F3D871!important;color:#6B5310!important;border-radius:18px!important}
.tn-rosegold{background:linear-gradient(120deg,#FFE9E4,#F6C7C0 45%,#FFF1EC 60%,#E7A79B)!important;background-size:220% 100%!important;border:0!important;color:#6E3A35!important;border-radius:18px!important;
  box-shadow:0 2px 8px rgba(214,150,140,.35),inset 0 0 0 1px rgba(255,255,255,.6)!important;animation:shimmer 6s linear infinite}
.tn-cottoncandy{background:linear-gradient(120deg,#FFD9F0,#D9E7FF 50%,#DDFBF0)!important;background-size:220% 100%!important;border:0!important;color:#5A3A6B!important;border-radius:20px!important;
  box-shadow:0 3px 10px rgba(200,170,255,.35),inset 0 1px 0 rgba(255,255,255,.7)!important;animation:shimmer 7s linear infinite}
.lbl.tn-sakura,.lbl.tn-lavender,.lbl.tn-mint,.lbl.tn-peach,.lbl.tn-sky,.lbl.tn-butter,.lbl.tn-rosegold,.lbl.tn-cottoncandy{border-radius:8px!important;box-shadow:0 1px 3px rgba(0,0,0,.15)!important;font-weight:600}

/* 옷·장난·한정 감정표현 */
.pwrap .back{position:absolute;z-index:0}
.pwrap svg.back{inset:auto!important;left:-32%!important;top:-30%!important;width:164%!important;height:152%!important;overflow:visible}
.pwrap img{z-index:1}
.pwrap .povl{z-index:2}
.cape-sway{animation:capeSway 2.4s ease-in-out infinite;transform-origin:50% 35%}
@keyframes capeSway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
.wing-flap{animation:wingFlap 1.6s ease-in-out infinite;transform-origin:50% 55%}
@keyframes wingFlap{50%{transform:scaleX(.86)}}
.fly-orbit{animation:flyOrbit 2.4s linear infinite;transform-origin:50% 90%}
@keyframes flyOrbit{to{transform:rotate(360deg)}}
.emo-firework .ac,.emo-heartbomb .ac{animation:shock .35s ease-out 4}
.emo-flip .ac{animation:flipSpin .7s ease-in-out 1}
@keyframes flipSpin{50%{transform:rotate(180deg) scale(1.05)}100%{transform:rotate(360deg)}}
.clone-ghost{position:absolute;bottom:2px;left:0;opacity:.45;pointer-events:none;animation:cloneOut 1.4s ease-out forwards}
@keyframes cloneOut{to{opacity:0;transform:translateX(var(--cx)) scale(.9)}}
.prank-row{display:flex;gap:6px;align-items:center;padding:6px 2px;border-bottom:1px dashed var(--line);font-size:13px}
.prank-row .g{flex:1;min-width:0}
.prank-row select,.prank-row button{border:1px solid var(--line);background:var(--memo);border-radius:8px;padding:5px 9px;font-size:12.5px;color:var(--ink)}
.locked{position:relative;opacity:.85}
.locked::after{content:"🔒";position:absolute;top:6px;right:8px;font-size:14px}

/* 주운 돈 */
/* 바닥 코인: 생긴 자리에 가만히 있다(움직임 없음). 누르면 사무실 바닥 클릭처럼 그 자리로 걸어가고, 가까이 가면 주워진다 */
.coin{position:absolute;width:30px;height:30px;pointer-events:auto;z-index:95;filter:drop-shadow(0 3px 3px rgba(0,0,0,.25))}
.coin svg{width:100%;height:100%;display:block}
.coin.gone{animation:coinGone .45s ease-out forwards}
@keyframes coinBob{50%{transform:translateY(-6px)}}
@keyframes coinGone{to{transform:translateY(-34px) scale(.3);opacity:0}}
.coin-pop{position:absolute;font-family:"Jua",sans-serif;font-size:15px;color:#C8942A;pointer-events:none;z-index:96;animation:pop-up 1.3s ease-out forwards;text-shadow:0 1px 0 #fff}

/* 복권 */
.lotto{display:flex;flex-direction:column;align-items:center;gap:12px;padding:6px 0 4px}
.lotto-box{width:min(320px,90%);height:120px;border-radius:18px;border:2px dashed var(--line);display:grid;place-items:center;background:var(--paper);overflow:hidden}
.lotto-reel{font-size:44px;line-height:1.1;text-align:center}
.lotto-reel.rolling{animation:reel .12s steps(1) infinite}
@keyframes reel{50%{opacity:.35;transform:translateY(-4px)}}
.lotto-res{font-family:"Jua",sans-serif;font-size:20px;text-align:center;min-height:26px}
.lotto-go{border:0;border-radius:14px;background:var(--red);color:#fff;font-family:"Jua",sans-serif;font-size:19px;padding:10px 26px}
.lotto-go:disabled{opacity:.5}
.lotto-odds{font-size:11.5px;color:var(--muted);text-align:center;line-height:1.6}
@media (max-width:760px){.shop-grid{grid-template-columns:1fr}.shop-top h2{font-size:20px}}
