/* ---------- v2: controles do mundo ---------- */
.eng-ui { position: fixed; inset: 0; pointer-events: none; z-index: 12; transition: opacity .3s; }
.eng-ui.hidden { opacity: 0; }
.eng-ui.hidden * { pointer-events: none !important; }
.action-btn {
  position: fixed; right: calc(22px + var(--safe-r)); bottom: calc(26px + var(--safe-b)); width: clamp(92px, 19vmin, 130px); height: clamp(92px, 19vmin, 130px);
  border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff, #fff 40%, color-mix(in srgb, var(--c, #ff6fa8) 25%, white));
  box-shadow: 0 8px 0 color-mix(in srgb, var(--c, #ff6fa8) 70%, #000 10%), 0 16px 34px rgba(0,0,0,.25);
  font-size: clamp(46px, 10vmin, 66px); display: grid; place-items: center; pointer-events: auto;
  transform: scale(0); transition: transform .35s cubic-bezier(.3,1.6,.5,1);
}
.action-btn.show { transform: scale(1); animation: abPulse 1.6s ease-in-out .4s infinite; }
.action-btn.pressed { transform: scale(.9); }
.ab-ring { position: absolute; inset: -8px; border-radius: 50%; border: 5px solid var(--c, #ff6fa8); opacity: .6; animation: abRing 1.6s ease-out infinite; }
@keyframes abPulse { 50% { transform: scale(1.07); } }
@keyframes abRing { from { transform: scale(.9); opacity: .7; } to { transform: scale(1.35); opacity: 0; } }
.jump-btn {
  position: fixed; right: calc(30px + var(--safe-r)); bottom: calc(clamp(130px, 26vmin, 175px) + var(--safe-b)); width: 64px; height: 64px; border-radius: 50%;
  background: rgba(255,255,255,.85); box-shadow: 0 5px 0 rgba(74,59,107,.15); font-size: 30px; display: none; place-items: center; z-index: 12; align-items: center; justify-content: center;
}
.fly-box { position: fixed; right: calc(150px + var(--safe-r)); bottom: calc(26px + var(--safe-b)); display: none; flex-direction: column-reverse; gap: 10px; pointer-events: auto; }
.fly-box.show { display: flex; }
.fly-btn { width: clamp(64px, 13vmin, 84px); height: clamp(64px, 13vmin, 84px); border-radius: 26px; background: rgba(255,255,255,.92); box-shadow: 0 6px 0 rgba(74,59,107,.18); font-size: clamp(30px, 6.5vmin, 42px); display: grid; place-items: center; transition: transform .12s; }
.fly-btn.small { width: 56px; height: 56px; font-size: 26px; opacity: .85; }
.fly-btn.toggle.on { background: #dff3ff; box-shadow: 0 0 0 4px #7fc8ff, 0 6px 0 rgba(74,59,107,.18); }
.fly-btn.pressed { transform: scale(.9); }
.joy { position: fixed; left: 0; top: 0; width: 140px; height: 140px; margin: -70px 0 0 -70px; border-radius: 50%; background: rgba(255,255,255,.22); border: 3px solid rgba(255,255,255,.6); opacity: 0; pointer-events: none; z-index: 13; transition: opacity .15s; }
.joy.on { opacity: 1; }
.joy-knob { position: absolute; left: 40px; top: 40px; width: 60px; height: 60px; border-radius: 50%; background: rgba(255,255,255,.92); box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.fader { position: fixed; inset: 0; background: #fff; opacity: 0; pointer-events: none; z-index: 900; transition: opacity .42s; }
.fader.on { opacity: 1; pointer-events: auto; }

/* nível */
.lvl-badge { position: relative; width: clamp(52px, 10vmin, 66px); height: clamp(52px, 10vmin, 66px); border-radius: 50%; background: linear-gradient(180deg, #ffe08a, #ffb83d); box-shadow: 0 5px 0 #d98a12; display: grid; place-items: center; }
.lb-n { font-weight: 900; font-size: clamp(22px, 4.6vmin, 30px); color: #6a3b00; z-index: 1; }
.lb-ring { position: absolute; inset: -5px; width: calc(100% + 10px); height: calc(100% + 10px); transform: rotate(-90deg); }
.lb-ring .bg { fill: none; stroke: rgba(255,255,255,.6); stroke-width: 3.5; }
.lb-ring .fg { fill: none; stroke: #ff6fa8; stroke-width: 3.5; stroke-linecap: round; stroke-dasharray: 0 200; transition: stroke-dasharray .6s; }
.lvl-badge.bump { animation: bounce .6s; }

/* montarias */
.mount-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(clamp(130px, 26vmin, 190px), 1fr)); gap: 12px; min-width: min(86vw, 820px); }
.mount-card { background: #fff; border-radius: 26px; padding: 14px 8px; box-shadow: 0 7px 0 #f1d7b8, 0 12px 24px rgba(74,59,107,.12); display: flex; flex-direction: column; align-items: center; gap: 4px; transition: transform .15s; }
.mount-card.pressed { transform: scale(.94); }
.mount-card.locked { filter: grayscale(.8); opacity: .65; }
.mc-ico { font-size: clamp(54px, 11vmin, 80px); }
.mc-nm { font-weight: 900; font-size: clamp(15px, 3vmin, 20px); text-align: center; }
.mc-tag { font-weight: 800; color: #3a8fd0; }
.mc-lock { font-weight: 800; color: var(--ink-soft); }

/* provador */
.wardrobe { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 12px calc(14px + var(--safe-r)) calc(14px + var(--safe-b)) calc(14px + var(--safe-l)); background: linear-gradient(180deg, rgba(255,250,243,0), rgba(255,250,243,.96) 30%); transform: translateY(110%); transition: transform .4s cubic-bezier(.3,1.3,.5,1); display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; gap: 10px; align-items: end; }
.wardrobe.show { transform: none; }
.wd-tabs { grid-column: 1 / 2; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.wd-tab { flex: none; width: clamp(56px, 11vmin, 72px); height: clamp(56px, 11vmin, 72px); border-radius: 20px; background: #fff; font-size: clamp(28px, 6vmin, 40px); box-shadow: 0 5px 0 rgba(74,59,107,.12); display: grid; place-items: center; transition: transform .15s; }
.wd-tab.on { box-shadow: 0 0 0 4px var(--pink), 0 5px 0 rgba(74,59,107,.12); transform: translateY(-4px); }
.wd-opts { grid-column: 1 / 2; display: flex; gap: 10px; overflow-x: auto; padding: 8px 4px; scrollbar-width: none; }
.wd-sw, .wd-style { flex: none; width: clamp(64px, 13vmin, 84px); height: clamp(64px, 13vmin, 84px); border-radius: 50%; box-shadow: 0 5px 0 rgba(74,59,107,.15), inset 0 0 0 3px rgba(255,255,255,.7); display: grid; place-items: center; position: relative; font-size: clamp(30px, 6.5vmin, 44px); background: #fff; transition: transform .15s; }
.wd-sw.sel, .wd-style.sel { box-shadow: 0 0 0 5px var(--pink), 0 5px 0 rgba(74,59,107,.15); transform: scale(1.08); }
.wd-n { position: absolute; bottom: -6px; right: -4px; background: var(--pink); color: #fff; border-radius: 12px; font-size: 13px; font-weight: 900; padding: 1px 7px; }
.wd-ok { grid-column: 2 / 3; grid-row: 1 / 3; align-self: end; width: clamp(84px, 16vmin, 110px); height: clamp(84px, 16vmin, 110px); border-radius: 50%; font-size: clamp(36px, 8vmin, 54px); padding: 0; }
.title-screen.v2 { background: radial-gradient(circle at 50% 45%, rgba(255,255,255,.25), rgba(255,255,255,0) 65%); }

.jump-btn.off { opacity: 0; pointer-events: none; }

