/* 드림 글로우 버블(H): 게임 전체 UI 규칙. 가장 마지막에 불러 다른 테마 위에 덮어쓴다.
   낮 = 라벤더 유리 쿠션 + 분홍/하늘 가장자리 빛 + 곡선 하이라이트, 밤(.night-walk) = 어두운 유리 + 네온. */
.rpg-game {
  --b-ink: #263d43; --b-ink-soft: #6a7c81; --b-title: #FF5757;
  --b-glass: rgba(255, 255, 255, 0.55);
  --b-vol: inset 0 2px 10px rgba(255,255,255,0.6), 0 12px 30px rgba(0,0,0,0.08);
  --b-glow: none;
  --b-small: inset 0 2px 6px rgba(255,255,255,0.8), 0 6px 16px rgba(0,0,0,0.05);
  --b-cell: rgba(255,255,255,0.65);
  --b-hl: rgba(255,255,255,0.9);
}
.rpg-game.night-walk {
  --b-ink: #142023; --b-ink-soft: #4a5c61; --b-title: #FFD166;
  --b-glass: rgba(255, 255, 255, 0.45);
  --b-vol: inset 0 2px 10px rgba(255,255,255,0.4), 0 12px 30px rgba(0,0,0,0.15);
  --b-glow: none;
  --b-small: inset 0 2px 6px rgba(255,255,255,0.5), 0 6px 16px rgba(0,0,0,0.1);
  --b-cell: rgba(255,255,255,0.4);
  --b-hl: rgba(255,255,255,0.7);
}
/* ---- 큰 유리 쿠션 ---- */
.rpg-game .rpg-char, .rpg-game .rpg-ally, .rpg-game .rpg-zone, .rpg-game .rpg-gold, .rpg-game .rpg-tracker, .rpg-game .rpg-weather-chip, .rpg-game .rpg-minimap, .rpg-game .rpg-hotbar, .rpg-game .rpg-chat, .rpg-game .emote-bar, .rpg-game .shopping-watch, .rpg-game .gacha-hud .gh-main, .rpg-game .gacha-hud .gh-alt, .rpg-game .live-hud, .rpg-game .rpg-boss, .rpg-game .rpg-target, .rpg-game .rpg-mission, .rpg-game .rpg-party, .rpg-game .chat-open, .rpg-game .rpg-npc-hint {
  background: var(--b-glass) !important; border: 3px solid rgba(255,255,255,0.85) !important; box-shadow: var(--b-vol) !important; color: var(--b-ink) !important;
  backdrop-filter: blur(24px) saturate(1.2) !important; -webkit-backdrop-filter: blur(24px) saturate(1.2) !important;
}
.rpg-game .rpg-char, .rpg-game .rpg-ally, .rpg-game .rpg-zone, .rpg-game .rpg-gold, .rpg-game .rpg-weather-chip, .rpg-game .rpg-tracker { border-radius: 999px !important; }
/* 보스 체력바: 밝은 유리 위에서는 보스 이름을 진한 장밋빛으로(옛 흰 글씨는 묻혔다) */
.rpg-game .rpg-boss b { color: #a3326f !important; letter-spacing: .02em; }
.rpg-game .rpg-hotbar, .rpg-game .rpg-chat, .rpg-game .emote-bar, .rpg-game .shopping-watch, .rpg-game .live-hud, .rpg-game .rpg-minimap, .rpg-game .gacha-hud .gh-main { border-radius: 28px !important; }
.rpg-game .rpg-char b, .rpg-game .rpg-ally b, .rpg-game .rpg-zone, .rpg-game .rpg-tracker b { color: var(--b-ink) !important; font-weight: 900; }
.rpg-game .rpg-zone small, .rpg-game .rpg-tracker p, .rpg-game .rpg-chat small, .rpg-game .shopping-watch small { color: var(--b-ink-soft) !important; }
/* 곡선 하이라이트: 큰 패널 왼쪽 위 모서리를 따라 휘는 흰 빛줄기 */
.rpg-game .rpg-char::after, .rpg-game .rpg-hotbar::after, .rpg-game .rpg-chat::after, .rpg-game .rpg-minimap::after, .rpg-game .rpg-gold::after, .rpg-game .shopping-watch::after {
  content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; border-radius: inherit;
  box-shadow: inset 0 4px 6px rgba(255,255,255,0.5); opacity: .9;
}
.rpg-game .rpg-char, .rpg-game .rpg-gold { position: relative; }
/* 체력·마나: 빛나는 알약 */
.rpg-game .bar { background: rgba(255,255,255,0.6) !important; border: 2px solid rgba(255,255,255,0.9) !important; border-radius: 99px !important; box-shadow: inset 0 2px 4px rgba(0,0,0,0.05) !important; }
.rpg-game .bar i { border-radius: 99px !important; background: #FF5757 !important; box-shadow: 0 4px 0 #D32F2F, inset 0 2px 0 rgba(255,255,255,0.4) !important; transition: width 0.2s; }
.rpg-game .bar.mp i { background: #3dff8a !important; box-shadow: 0 4px 0 #28a745, inset 0 2px 0 rgba(255,255,255,0.4) !important; transition: width 0.2s; }
.rpg-game .rpg-char-face, .rpg-game .rpg-ally-face { border-radius: 50% !important; background: #fff !important; box-shadow: 0 4px 0 rgba(0,0,0,0.1), inset 0 -4px 0 #eee !important; border: 3px solid rgba(255,255,255,0.9) !important; }
/* 코인: 굵은 숫자 */
.rpg-game .rpg-gold { font-family: "Outfit", "Noto Sans KR", sans-serif; font-weight: 900; }
.rpg-game .rpg-gold b { color: var(--b-ink) !important; font-size: 18px; }
/* 동그란 버블 버튼(가방·옷장·메뉴) */
.rpg-game .rpg-menu button { border: 3px solid rgba(255,255,255,0.9) !important; border-radius: 50% !important; background: rgba(255,255,255,0.8) !important; box-shadow: 0 6px 12px rgba(0,0,0,0.1) !important; color: var(--b-ink) !important; transition: transform 0.1s; }
.rpg-game.night-walk .rpg-menu button { background: rgba(255,255,255,0.7) !important; box-shadow: 0 6px 12px rgba(0,0,0,0.15) !important; }
.rpg-game .rpg-menu button small { color: var(--b-ink-soft) !important; }
/* 단축 바 칸: 작은 버블 + 분홍 숫자 배지 */
.rpg-game .rpg-hotbar .slot { border: 0 !important; border-radius: 20px !important; background: var(--b-cell) !important; box-shadow: var(--b-small) !important; color: var(--b-ink) !important; }
.rpg-game .rpg-hotbar .slot .qty:not(:empty) { position: absolute; right: -5px; bottom: -5px; display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 99px; background: var(--b-pink); color: #fff !important; font: 900 11px "Outfit", sans-serif; box-shadow: 0 0 8px rgba(255,61,143,.75), inset 0 2px 0 rgba(255,255,255,.5); }
.rpg-game .rpg-hotbar .slot em { color: #8b6cd8 !important; font-family: "Outfit", sans-serif; }
.rpg-game.night-walk .rpg-hotbar .slot em { color: #9fe8ff !important; }
.rpg-game .rpg-hotbar .slot b { color: var(--b-ink) !important; } .rpg-game .rpg-hotbar .slot small { color: var(--b-ink-soft) !important; }
/* 아이콘 */
.rpg-game .ic { overflow: visible; flex: none; vertical-align: middle; }
.rpg-game .ic .s { fill: none; }
.rpg-game .ic .f { fill: url(#g-candy); stroke: #fff; stroke-width: 2.2; } .rpg-game .ic .a { fill: url(#g-sun); stroke: #fff; stroke-width: 2; }
.rpg-game .ic .l { fill: #fff; stroke: #fff; stroke-width: 3; stroke-linecap: round; } .rpg-game .ic .s { stroke: #8a2f63; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }
.rpg-game .ic-coin .f { fill: url(#g-gold); } .rpg-game .ic-coin .a { fill: url(#g-gold2); } .rpg-game .ic-coin .s { stroke: #9a5a00; }
.rpg-game :is(.ic-tea, .ic-cider, .ic-bus, .ic-map, .ic-rain, .ic-gear, .ic-shield) .f { fill: url(#g-sky); }
.rpg-game :is(.ic-ticket, .ic-film, .ic-moon, .ic-dress, .ic-sticker, .ic-chat) .f { fill: url(#g-lilac); }
.rpg-game :is(.ic-milk, .ic-star, .ic-crown, .ic-trophy, .ic-sword) .f { fill: url(#g-sun); }
.rpg-game .ic { filter: drop-shadow(0 0 1.5px #fff) drop-shadow(0 3px 3px rgba(120,40,140,.3)); }
.rpg-game.night-walk .ic .f, .rpg-game.night-walk .ic .a { fill: rgba(255,79,168,.14); stroke: #ff6fbf; stroke-width: 2.6; }
.rpg-game.night-walk .ic .a { stroke: #6fd6ff; fill: rgba(79,216,255,.14); }
.rpg-game.night-walk .ic .l { fill: none; stroke: #fff; stroke-width: 2; opacity: .8; } .rpg-game.night-walk .ic .s { stroke: #c9a6ff; }
.rpg-game.night-walk .ic { filter: drop-shadow(0 0 3px #ff4fa8) drop-shadow(0 0 6px rgba(120,160,255,.8)); }
.rpg-game.night-walk .ic-coin .f { fill: url(#g-gold); stroke: #ffd166; } .rpg-game.night-walk .ic-coin .a { fill: url(#g-gold2); stroke: #ffd166; }
/* ---- 창(모달): 큰 유리 쿠션 ---- */
.rpg-game .rpg-modal-wrap:not(.cinema-viewer):not(.village-playing) { background: rgba(60,30,110,.28) !important; backdrop-filter: blur(4px) !important; }
.rpg-game .rpg-modal { position: relative; background: var(--b-glass) !important; background-color: transparent !important; border: 0 !important; border-radius: 34px !important; box-shadow: var(--b-vol), var(--b-glow) !important; color: var(--b-ink) !important; backdrop-filter: blur(22px) saturate(1.8) !important; -webkit-backdrop-filter: blur(22px) saturate(1.8) !important; }
.rpg-game .rpg-modal::after { content: ""; position: absolute; left: 9px; top: 7px; width: 46%; height: 44px; pointer-events: none; border-radius: 30px 0 0 0; border-top: 3px solid var(--b-hl); border-left: 3px solid var(--b-hl); -webkit-mask: linear-gradient(90deg, #000, rgba(0,0,0,.5) 45%, transparent), linear-gradient(180deg, #000, transparent); -webkit-mask-composite: source-in; mask-composite: intersect; z-index: 2; }
.rpg-game .rpg-modal header { background: transparent !important; box-shadow: none !important; border-bottom: 1px solid rgba(255,255,255,.35) !important; color: var(--b-title) !important; }
.rpg-game .rpg-modal h2, .rpg-game .rpg-modal h3 { color: var(--b-title) !important; text-shadow: 0 0 12px rgba(255,255,255,.7); font-weight: 900 !important; }
.rpg-game.night-walk .rpg-modal h2 { text-shadow: 0 0 12px rgba(255,120,200,.8); }
.rpg-game .rpg-modal header small { color: #ff4f9a !important; letter-spacing: .14em; }
.rpg-game .rpg-modal p, .rpg-game .rpg-modal li, .rpg-game .rpg-modal label, .rpg-game .rpg-modal b, .rpg-game .rpg-modal td, .rpg-game .rpg-modal th { color: inherit; }
.rpg-game .rpg-modal small, .rpg-game .rpg-modal .rpg-fine { color: var(--b-ink-soft) !important; }
.rpg-game .rpg-modal .x { border: 0 !important; border-radius: 50% !important; background: radial-gradient(circle at 35% 25%, #fff, rgba(255,200,230,.7)) !important; color: #ff3d8f !important; box-shadow: inset 0 -3px 4px rgba(200,60,130,.3), 0 0 10px rgba(255,120,190,.5) !important; }
.rpg-game .rpg-modal .npc-line { background: rgba(255,255,255,.35) !important; border: 0 !important; border-radius: 20px !important; box-shadow: var(--b-small) !important; color: var(--b-ink) !important; }
.rpg-game.night-walk .rpg-modal .npc-line { background: rgba(255,255,255,.06) !important; }
/* 목록 줄·카드·칸: 작은 버블 */
.rpg-game .rpg-modal :is(.product, .shop-row, .bus-ticket, .comment-feed li, .emote-grid article, .cell, .smith-row, .stylist-grid article, .gacha-book article, .now-list li, .quests li, .training-grid > *, .helper-tabs button, .errand-products button, .errand-categories button, .menu-grid button, .gacha-wallet span, .live-setlist li, .daily-list li, .ticket, .gear-slot) {
  background: var(--b-cell) !important; border: 0 !important; border-radius: 22px !important; box-shadow: var(--b-small) !important; color: var(--b-ink) !important;
}
.rpg-game .rpg-modal .comment-feed li.current, .rpg-game .rpg-modal [aria-pressed="true"], .rpg-game .rpg-modal [aria-selected="true"] { box-shadow: var(--b-small), 0 0 0 2.5px #ff7ab8, 0 0 14px rgba(255,122,184,.55) !important; }
.rpg-game .rpg-modal .shelf, .rpg-game .rpg-modal .tickets, .rpg-game .rpg-modal .comment-feed { background: transparent !important; box-shadow: none !important; }
.rpg-game .rpg-modal .bus-ticket .t-stub { border-radius: 22px 0 0 22px; }
.rpg-game .rpg-modal .shelf .p-tag { background: linear-gradient(#ffe58a, #ffbf2e) !important; box-shadow: 0 0 8px rgba(255,190,46,.6); }
/* 버튼: 빛나는 핫핑크 알약 / 라벤더 알약 */
.rpg-game .rpg-btn, .rpg-game .rpg-modal button.rpg-btn, .rpg-game .shelf .p-pos button, .rpg-game .bus-ticket .t-fare button, .rpg-game .rpg-chat button[type="submit"] {
  border: 0 !important; border-radius: 99px !important; background: var(--b-lav) !important; color: #fff !important; font-weight: 900 !important; text-shadow: 0 1px 0 rgba(60,30,140,.35); box-shadow: var(--b-lav-sh) !important;
}
.rpg-game .rpg-btn.gold, .rpg-game .shelf .p-pos button, .rpg-game .bus-ticket .t-fare button, .rpg-game .rpg-chat button[type="submit"], .rpg-game [data-send], .rpg-game [data-send-all], .rpg-game [data-dispatch] { background: var(--b-pink) !important; box-shadow: var(--b-pink-sh) !important; text-shadow: 0 1px 0 rgba(170,10,80,.4); }
.rpg-game .rpg-btn:disabled, .rpg-game .shelf .p-pos button:disabled { filter: grayscale(.6) opacity(.6); }
.rpg-game .rpg-btn:active, .rpg-game .shelf .p-pos button:active { transform: translateY(2px) scale(.98); }
/* 입력창 */
.rpg-game input:not([type="radio"]):not([type="checkbox"]):not([type="range"]), .rpg-game select, .rpg-game textarea { border: 1px solid rgba(255,255,255,.7) !important; border-radius: 99px !important; background: rgba(255,255,255,.45) !important; color: var(--b-ink) !important; box-shadow: inset 0 2px 4px rgba(90,50,150,.12) !important; }
.rpg-game textarea { border-radius: 18px !important; }
.rpg-game.night-walk input:not([type="radio"]):not([type="checkbox"]):not([type="range"]), .rpg-game.night-walk select, .rpg-game.night-walk textarea { background: rgba(255,255,255,.08) !important; border-color: rgba(255,255,255,.25) !important; }
/* 알림: 레벨업 배너는 금빛 크롬, 기록 토스트는 작은 유리 알약 */
.rpg-game .rpg-banner.show { background: linear-gradient(rgba(60,30,110,.55), rgba(60,30,110,.35)) !important; border: 2px solid #ffd98a !important; border-radius: 999px !important; box-shadow: 0 0 18px rgba(255,209,102,.65), inset 0 6px 8px -5px rgba(255,255,255,.5) !important; color: #fff3c4 !important; text-shadow: 0 0 10px rgba(255,200,80,.8), 0 2px 0 #b36b00; backdrop-filter: blur(10px); }
.rpg-game .rpg-banner.show small { color: #fff !important; text-shadow: none; }
.rpg-game .rpg-log p { background: var(--b-glass) !important; border: 0 !important; border-radius: 99px !important; box-shadow: var(--b-small), 0 6px 14px rgba(90,40,150,.18) !important; color: var(--b-ink) !important; backdrop-filter: blur(12px); }
/* 미니게임 테두리도 같은 결 */
.rpg-game .rh-game canvas, .rpg-game .race-game canvas { box-shadow: 0 0 0 3px rgba(255,255,255,.85), 0 0 22px rgba(255,150,220,.55), 0 0 40px rgba(140,200,255,.35) !important; border-radius: 26px !important; }
.rpg-game .rh-pads button, .rpg-game .race-pads button { border: 0 !important; border-radius: 99px !important; box-shadow: var(--b-small), 0 4px 10px rgba(90,40,150,.2) !important; }
/* 지금 할 일 알약 */
.rpg-game .rpg-tracker.now-tracker::before { background: radial-gradient(circle at 35% 30%, #fff, #ffd1e6) !important; box-shadow: 0 0 8px rgba(255,120,190,.6); }
.rpg-game .rpg-hotbar, .rpg-game .rpg-hotbar .slot { overflow: visible !important; } .rpg-game .rpg-hotbar .slot.item .icon { opacity: 1; }
/* 장소 테마 요소도 버블 결로 통일 */
.rpg-game .rpg-modal .store-sign h2 { font: 900 24px "Noto Sans KR", sans-serif !important; letter-spacing: -.03em; text-shadow: 0 0 12px rgba(255,255,255,.8) !important; color: var(--b-title) !important; }
.rpg-game .rpg-modal .mini-banner { border: 0 !important; border-radius: 24px !important; background: linear-gradient(135deg, rgba(255,140,200,.9), rgba(160,140,255,.9)) !important; box-shadow: inset 0 8px 10px -6px rgba(255,255,255,.75), inset 0 -8px 12px -8px rgba(90,40,160,.45), 0 0 16px rgba(255,140,200,.45) !important; color: #fff !important; }
.rpg-game .rpg-modal .mini-banner small, .rpg-game .rpg-modal .mini-banner b { color: #fff !important; }
.rpg-game .rpg-modal .pos-bar { background: rgba(60,30,110,.22) !important; border-radius: 24px !important; box-shadow: var(--b-small) !important; }
.rpg-game .rpg-modal .pos-led { color: var(--b-title) !important; text-shadow: 0 0 10px rgba(255,255,255,.8) !important; font-family: "Outfit", sans-serif !important; font-weight: 900; }
.rpg-game .rpg-modal .shelf .p-have { color: #ff3d8f !important; font-family: "Outfit", sans-serif; }
.rpg-game .rpg-modal .feed-head .yt-dot, .rpg-game .rpg-modal .bus-ticket .t-stub { box-shadow: inset 0 6px 6px -3px rgba(255,255,255,.6), inset 0 -6px 8px -4px rgba(0,0,0,.2); }
.rpg-game .rpg-modal .bus-arrival { background: rgba(60,30,110,.25) !important; color: var(--b-title) !important; border-radius: 18px !important; }
.rpg-game .rpg-hotbar .slot.item.empty .qty { display: none !important; } .rpg-game .rpg-hotbar .slot.item.empty .icon { opacity: .45; filter: grayscale(.5); }
.rpg-game .rpg-modal button.rpg-btn.gold, .rpg-game button.rpg-btn.gold { background: var(--b-pink) !important; box-shadow: var(--b-pink-sh) !important; text-shadow: 0 1px 0 rgba(170,10,80,.4); }

/* ---------- 머리 위 이름표(몬스터·플레이어): 유리 버블 알약 + 레벨 칩 + 광택 체력 막대 ---------- */
.rpg-game[class] .rpg-label:not(._) b{position:relative;display:flex;align-items:center;gap:5px;padding:3px 11px 3px 4px;border-radius:999px;border:0;
  font:800 11.5px "Noto Sans KR",sans-serif;letter-spacing:-.01em;color:#3a2d48;white-space:nowrap;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(250,242,255,.88));
  box-shadow:0 0 0 1.5px rgba(255,255,255,.95),0 0 0 3px var(--lbl-rim,rgba(190,160,230,.55)),0 4px 10px rgba(70,40,90,.22),inset 0 -2px 0 rgba(180,150,210,.25)}
.rpg-game[class] .rpg-label:not(._) b em{display:inline-grid;place-items:center;min-width:30px;height:17px;padding:0 6px;border-radius:999px;font:900 10px "Outfit",sans-serif;font-style:normal;color:#fff;
  background:linear-gradient(180deg,var(--lv-a,#b9a7e8),var(--lv-b,#8f7bd0));box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}
.rpg-game[class] .rpg-label:not(._).lv-gray{--lv-a:#c9c4cf;--lv-b:#a29bab;--lbl-rim:rgba(190,185,200,.5)}
.rpg-game[class] .rpg-label:not(._).lv-even{--lv-a:#8fd8b0;--lv-b:#4fb985;--lbl-rim:rgba(120,210,165,.55)}
.rpg-game[class] .rpg-label:not(._).lv-orange{--lv-a:#ffc98a;--lv-b:#f39a4b;--lbl-rim:rgba(250,180,110,.6)}
.rpg-game[class] .rpg-label:not(._).lv-red{--lv-a:#ff9a9a;--lv-b:#e85d6f;--lbl-rim:rgba(240,120,135,.65)}
.rpg-game[class] .rpg-label:not(._).boss b{font-size:14px;padding:4px 14px 4px 5px;--lbl-rim:rgba(255,140,190,.75)}
.rpg-game[class] .rpg-label:not(._) i{width:58px;height:7px;border-radius:999px;overflow:hidden;background:rgba(60,40,80,.35);box-shadow:0 0 0 1.5px rgba(255,255,255,.9),inset 0 1px 2px rgba(0,0,0,.25)}
.rpg-game[class] .rpg-label:not(._) u{position:relative;background:linear-gradient(180deg,#ffb0a0,#ff6f7d 55%,#e5506a);border-radius:999px}
.rpg-game[class] .rpg-label:not(._) u::after{content:'';position:absolute;inset:1px 3px auto;height:2px;border-radius:2px;background:rgba(255,255,255,.65)}
.rpg-game[class] .rpg-label:not(._).boss i{width:180px;height:10px}
/* ---------- 감각적이고 반짝이는 VIP 캐릭터 네임택 ---------- */
@keyframes nametag-shimmer {
  0% { background-position: -150% 0; }
  100% { background-position: 250% 0; }
}
@keyframes star-twinkle {
  0%, 100% { transform: scale(0.85) rotate(0deg); opacity: 0.75; filter: drop-shadow(0 0 2px var(--star-glow, #ffd700)); }
  50% { transform: scale(1.3) rotate(20deg); opacity: 1; filter: drop-shadow(0 0 6px var(--star-glow, #ffd700)) drop-shadow(0 0 10px #ffffff); }
}
@keyframes nametag-breathe {
  0%, 100% {
    box-shadow: 0 0 0 1.5px rgba(255,255,255,0.95), 0 0 0 3px var(--lbl-rim, rgba(255,200,90,0.8)), 0 3px 10px rgba(70,40,90,0.18), 0 0 8px var(--lbl-glow, rgba(255,215,100,0.35));
  }
  50% {
    box-shadow: 0 0 0 1.5px #ffffff, 0 0 0 3.5px var(--lbl-rim-hi, var(--lbl-rim)), 0 4px 14px rgba(70,40,90,0.25), 0 0 16px var(--lbl-glow-hi, rgba(255,230,130,0.6));
  }
}

.rpg-game[class] .rpg-label.vip-nametag b,
.rpg-game[class] .rpg-label.player b {
  padding: 3.5px 14px 3.5px 12px;
  font: 800 12px/1.3 "Noto Sans KR", -apple-system, sans-serif;
  letter-spacing: -0.01em;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  background-size: 220% 100%;
  animation: nametag-breathe 2.8s ease-in-out infinite, nametag-shimmer 4s ease-in-out infinite;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.rpg-game[class] .rpg-label .star-sparkle {
  display: inline-block;
  font-size: 11px;
  line-height: 1;
  color: var(--star-color, #ffcf33);
  animation: star-twinkle 2s ease-in-out infinite;
  flex-shrink: 0;
  pointer-events: none;
}
.rpg-game[class] .rpg-label .star-sparkle:last-child {
  animation-delay: 1s;
}

/* 1. 내 캐릭터 (Player / Me): 샴페인 골드 & 펄 오로라 */
.rpg-game[class] .rpg-label.player.me b {
  color: #553704;
  --lbl-rim: rgba(255, 198, 60, 0.88);
  --lbl-rim-hi: rgba(255, 225, 110, 1);
  --lbl-glow: rgba(255, 205, 70, 0.4);
  --lbl-glow-hi: rgba(255, 230, 120, 0.7);
  --star-color: #ffc820;
  --star-glow: rgba(255, 200, 40, 0.9);
  background: linear-gradient(110deg, #fffdf7 0%, #fff7e4 30%, #fffef2 48%, #ffe8b3 52%, #fff7e4 70%, #fffdf7 100%);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8), 0 0 6px rgba(255, 220, 140, 0.5);
}

/* 2. 동료 (Ally): 로맨틱 로즈쿼츠 & 벚꽃 핑크 펄 */
.rpg-game[class] .rpg-label.player.ally b {
  color: #5d2847;
  --lbl-rim: rgba(255, 155, 195, 0.85);
  --lbl-rim-hi: rgba(255, 185, 220, 1);
  --lbl-glow: rgba(255, 160, 205, 0.4);
  --lbl-glow-hi: rgba(255, 190, 230, 0.7);
  --star-color: #ff7faf;
  --star-glow: rgba(255, 130, 180, 0.9);
  background: linear-gradient(110deg, #fffcfd 0%, #ffedf5 30%, #ffffff 48%, #ffd2e5 52%, #ffedf5 70%, #fffcfd 100%);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8), 0 0 6px rgba(255, 180, 210, 0.5);
}

/* 3. 2P (Co-op): 스카이블루 크리스탈 */
.rpg-game[class] .rpg-label.player.p2 b {
  color: #1e4578;
  --lbl-rim: rgba(110, 180, 255, 0.85);
  --lbl-rim-hi: rgba(150, 210, 255, 1);
  --lbl-glow: rgba(110, 180, 255, 0.4);
  --lbl-glow-hi: rgba(140, 210, 255, 0.7);
  --star-color: #4da6ff;
  --star-glow: rgba(80, 170, 255, 0.9);
  background: linear-gradient(110deg, #fafdff 0%, #edf5ff 30%, #ffffff 48%, #cce5ff 52%, #edf5ff 70%, #fafdff 100%);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8), 0 0 6px rgba(130, 190, 255, 0.5);
}

/* 4. 파티 동료 (Mate): 에메랄드 민트 스파클 */
.rpg-game[class] .rpg-label.player.mate b {
  color: #1d5f3f;
  --lbl-rim: rgba(100, 215, 160, 0.85);
  --lbl-rim-hi: rgba(140, 235, 190, 1);
  --lbl-glow: rgba(100, 215, 160, 0.4);
  --lbl-glow-hi: rgba(130, 230, 180, 0.7);
  --star-color: #45d690;
  --star-glow: rgba(70, 215, 140, 0.9);
  background: linear-gradient(110deg, #fafffc 0%, #ecfcf3 30%, #ffffff 48%, #c6f6dc 52%, #ecfcf3 70%, #fafffc 100%);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8), 0 0 6px rgba(120, 220, 170, 0.5);
}

/* 5. 개발자 (Developer Guest): 홀로그래픽 트와일라잇 바이올렛 */
.rpg-game[class] .rpg-label.dev-guest b {
  opacity: 0.85 !important;
  color: #55447a !important;
  --lbl-rim: rgba(180, 150, 240, 0.85);
  --lbl-rim-hi: rgba(210, 180, 255, 1);
  --lbl-glow: rgba(180, 150, 240, 0.4);
  --lbl-glow-hi: rgba(210, 180, 255, 0.7);
  --star-color: #b588f8;
  --star-glow: rgba(180, 140, 250, 0.9);
  background: linear-gradient(110deg, #fdfaff 0%, #f3ebfc 30%, #ffffff 48%, #e2cffe 52%, #f3ebfc 70%, #fdfaff 100%) !important;
  animation: nametag-breathe 2.8s ease-in-out infinite, nametag-shimmer 3s ease-in-out infinite !important;
}

.rpg-game[class] .rpg-label.player i u{background:linear-gradient(180deg,#a8f0c4,#4fc985 55%,#2fa76a)}

/* 야간 모드 (Night-walk) 에서의 은은한 달빛 네온 발광 */
.rpg-game.night-walk[class] .rpg-label:not(._) b {
  color: #fff9f0 !important;
  background: linear-gradient(110deg, rgba(45,30,65,0.92) 0%, rgba(65,42,88,0.94) 30%, rgba(100,65,130,0.96) 50%, rgba(65,42,88,0.94) 70%, rgba(45,30,65,0.92) 100%) !important;
  text-shadow: 0 1px 3px rgba(0,0,0,0.8), 0 0 8px var(--lbl-glow-hi, rgba(255,200,120,0.6)) !important;
  box-shadow: 0 0 0 1.5px rgba(255,255,255,0.4), 0 0 0 3px var(--lbl-rim), 0 0 18px var(--lbl-glow-hi, rgba(255,200,120,0.6)) !important;
}

/* ---------- 창 크기에 맞춰 HUD 자동 크기 조절 ----------
   기준 1280×800에서 1. 작은 창은 최소 .62까지 줄고, 큰 창은 1.2까지 커진다(zoom이라 위치·여백도 함께 줄어든다). */
.rpg-game{--ui:1} /* rpg.js가 창 크기에 맞춰 .62~1.2로 바꾼다 */
@supports (zoom:1){
  .rpg-game .rpg-hud-top-left,.rpg-game .rpg-hud-top-right,.rpg-game .rpg-hud-top,.rpg-game .rpg-minimap,.rpg-game .rpg-chat,.rpg-game .rpg-hotbar,
  .rpg-game .rpg-log,.rpg-game .rpg-npc-hint,.rpg-game .rpg-banner,.rpg-game .rpg-tracker,.rpg-game .rpg-zone,.rpg-game .emote-bar,
  .rpg-game .live-hud,.rpg-game .gacha-hud,.rpg-game .rpg-boss,.rpg-game .rpg-mission,.rpg-game .rpg-dpad,.rpg-game .rpg-party{zoom:var(--ui)}
  .rpg-game .rpg-modal-wrap>.rpg-modal{zoom:clamp(.72,var(--ui),1.1)}
}
/* 아주 작은 창(휴대폰·좁은 창)에서는 채팅을 접고 미니맵을 더 작게 */
@media (max-width:700px),(max-height:520px){
  .rpg-game .rpg-chat.local:not(:focus-within) .chat-log,.rpg-game .rpg-chat.local:not(:focus-within) header small{display:none}
  .rpg-game .rpg-minimap{zoom:calc(var(--ui) * .8)}
}

/* 개발자(시크릿 2P): 이름이 보일 듯 말 듯 */
.rpg-game[class] .rpg-label.dev-guest:not(._) b{opacity:.22;background:rgba(255,255,255,.35);color:#6a7ab8;box-shadow:0 0 0 1px rgba(255,255,255,.4);backdrop-filter:blur(2px);animation:dev-shy 4s ease-in-out infinite}
@keyframes dev-shy{0%,100%{opacity:.14}50%{opacity:.3}}
.rpg-game .rpg-ally.dev-guest{opacity:.35}
.rpg-game .chat-lines p.dev b{opacity:.3}
/* 2인 플레이: 대화창 왼쪽의 말하는 사람 토글 */
.rpg-game .chat-who{flex:none;border:0;border-radius:999px;padding:0 10px;font:900 11px "Outfit","Noto Sans KR",sans-serif;background:linear-gradient(180deg,#ffd36b,#f5b638);color:#5a3d10;cursor:pointer}
.rpg-game .chat-who.p2{background:linear-gradient(180deg,#9fd5ff,#5fb0f0);color:#173a5e}
.rpg-game .chat-who[hidden]{display:none}

/* 시크릿 안내 카드 */
.dev-card{position:absolute;left:50%;top:calc(84px * var(--ui,1));transform:translateX(-50%);z-index:40;display:flex;gap:14px;align-items:flex-start;max-width:min(560px,92vw);padding:16px 44px 16px 16px;border-radius:24px;color:#eef1ff;
  background:linear-gradient(160deg,rgba(60,52,110,.86),rgba(30,26,64,.9));backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);
  box-shadow:0 0 0 1.5px rgba(255,255,255,.18),0 0 0 4px rgba(170,180,255,.18),0 18px 44px rgba(20,10,50,.45),inset 0 1px 0 rgba(255,255,255,.25);animation:dev-in .5s cubic-bezier(.2,1.3,.4,1) both;zoom:var(--ui,1)}
.dev-card.out{animation:dev-out .35s ease-in both}
.dev-card small{display:block;font:800 10.5px "Outfit","Noto Sans KR",sans-serif;letter-spacing:.14em;color:#b8c4ff;opacity:.85}
.dev-card b{display:block;font:900 17px "Noto Sans KR",sans-serif;margin:2px 0 8px}
.dev-card ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font:600 12.5px "Noto Sans KR",sans-serif;color:#dfe4ff}
.dev-card li span{opacity:.7}
.dev-card kbd{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin-right:3px;border-radius:7px;font:800 11px "Outfit","Noto Sans KR",sans-serif;color:#1e1a40;
  background:linear-gradient(180deg,#ffffff,#d9defa);box-shadow:inset 0 -2px 0 rgba(90,100,180,.35),0 1px 0 rgba(255,255,255,.4)}
.dev-card .x{position:absolute;right:10px;top:10px;width:26px;height:26px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:16px;cursor:pointer}
.dev-orb{flex:none;width:44px;height:44px;border-radius:50%;margin-top:2px;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9),rgba(190,205,255,.35) 40%,rgba(140,150,255,.08) 70%);
  box-shadow:0 0 18px rgba(170,185,255,.6),inset 0 0 10px rgba(255,255,255,.5);animation:dev-orb 3s ease-in-out infinite}
@keyframes dev-in{from{opacity:0;transform:translate(-50%,-14px) scale(.94)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes dev-out{to{opacity:0;transform:translate(-50%,-10px) scale(.96)}}
@keyframes dev-orb{50%{transform:scale(.88) rotate(20deg);filter:hue-rotate(40deg)}}

.rpg-game .rpg-menu button:hover { transform: translateY(-2px); }
.rpg-game .rpg-menu button:active { transform: translateY(2px); box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important; }
.rpg-game .rpg-skill { background: rgba(255,255,255,0.85) !important; border: 3px solid #e0e7e6 !important; border-radius: 16px !important; box-shadow: 0 4px 0 #e0e7e6 !important; color: #263d43 !important; font-family: "Jua", sans-serif !important; transition: transform 0.1s, box-shadow 0.1s; }
.rpg-game .rpg-skill:hover { transform: translateY(-2px); box-shadow: 0 6px 0 #e0e7e6 !important; }
.rpg-game .rpg-skill:active { transform: translateY(4px); box-shadow: 0 0 0 #e0e7e6 !important; }
