:root {
  --pv-font-rounded:"Proveryalka Rounded","Nunito",ui-rounded,"Arial Rounded MT Bold","Varela Round","Avenir Next Rounded Std","Trebuchet MS",system-ui,sans-serif;
  --pv-font-text:"Manrope","Proveryalka Rounded",system-ui,sans-serif;
}

/* Final polish for shop drops, help widget, and rounded brand typography. */
html,
body,
button,
input,
textarea,
select,
.platform-home,
.profile-page,
.site-footer,
.qchat-panel,
.quest-panel,
.auth-card,
.modal,
.card {
  font-family:var(--pv-font-rounded) !important;
  letter-spacing:0 !important;
}

p,
small,
.muted,
.hint,
.loader-text,
.ph-lead,
.ph-card p,
.ph-plan p,
.ph-side p,
.site-footer p,
.qchat-msg,
.qd-reward span {
  font-family:var(--pv-font-text) !important;
}

h1,h2,h3,h4,h5,h6,
.brand,
.brand-text,
.nav-link,
.pv-pushable__front,
.pv-start-button,
.btn,
.drawer-link,
.stat-pill,
.hud-pill {
  font-family:var(--pv-font-rounded) !important;
  letter-spacing:0 !important;
}

.ph-ms,
.material-symbols-rounded {
  font-family:"Material Symbols Rounded" !important;
}

.pv-chest-mounted,
.pv-shop-chest,
.pv-feature-chest {
  display:grid;
  place-items:center;
}

.pv-chest-svg {
  width:100%;
  height:100%;
  min-width:0;
  overflow:visible;
  --chest-dark:#3a2415;
  --chest-mid:#573e1c;
  --chest-wood:#875d26;
  --chest-deep:#3b2314;
  --chest-lid:#5b3d1a;
  --chest-gold:#ffe309;
  --chest-gold-2:#f6bb49;
  --chest-gold-3:#ffd00a;
  --chest-cream:#fff;
  --chest-ink:#422918;
  --chest-iris:#1d70b7;
  --chest-iris-2:#4bbced;
  --chest-wire-a:#009ee2;
  --chest-wire-b:#e5007e;
  --chest-lock:#214459;
  --chest-finger:#c5efef;
  filter:drop-shadow(0 24px 28px rgba(10,21,37,.18));
}

.pv-chest--rare {
  --chest-gold:#8fe5ff;
  --chest-gold-2:#30b9ec;
  --chest-gold-3:#61d4ff;
  --chest-wood:#1e78a8;
  --chest-mid:#155879;
  --chest-lid:#174963;
  --chest-wire-a:#65d26b;
  --chest-wire-b:#24b0e9;
}

.pv-chest--epic {
  --chest-gold:#d8c4ff;
  --chest-gold-2:#9a72f5;
  --chest-gold-3:#b895ff;
  --chest-wood:#6740b8;
  --chest-mid:#432079;
  --chest-lid:#35205c;
  --chest-wire-a:#24b0e9;
  --chest-wire-b:#ff5fc8;
}

.pv-chest--mythic {
  --chest-gold:#ffc4e9;
  --chest-gold-2:#ff5fc8;
  --chest-gold-3:#ff91da;
  --chest-wood:#8f2f79;
  --chest-mid:#5b1d52;
  --chest-lid:#411840;
  --chest-wire-a:#65d26b;
  --chest-wire-b:#ffd00a;
}

.pv-chest--legendary {
  --chest-gold:#fff101;
  --chest-gold-2:#ffb800;
  --chest-gold-3:#ffe05a;
  --chest-wood:#b65b16;
  --chest-mid:#783315;
  --chest-lid:#5b2812;
  --chest-wire-a:#24b0e9;
  --chest-wire-b:#e5007e;
}

.pv-chest-svg .cls-1{fill:var(--chest-dark)}.pv-chest-svg .cls-2{fill:var(--chest-mid)}.pv-chest-svg .cls-3{fill:var(--chest-gold)}.pv-chest-svg .cls-4{fill:var(--chest-wood)}.pv-chest-svg .cls-5{fill:var(--chest-deep)}.pv-chest-svg .cls-6{fill:var(--chest-gold)}.pv-chest-svg .cls-7{fill:var(--chest-gold-2)}.pv-chest-svg .cls-8{fill:var(--chest-gold-3)}.pv-chest-svg .cls-9{fill:var(--chest-lid)}.pv-chest-svg .cls-10,.pv-chest-svg .cls-12{fill:var(--chest-mid)}.pv-chest-svg .cls-11,.pv-chest-svg .cls-18,.pv-chest-svg .cls-26,.pv-chest-svg .cls-28{fill:var(--chest-cream)}.pv-chest-svg .cls-11{opacity:.34}.pv-chest-svg .cls-12{opacity:.25}.pv-chest-svg .cls-13,.pv-chest-svg .cls-22{fill:var(--chest-ink)}.pv-chest-svg .cls-14{fill:var(--chest-iris)}.pv-chest-svg .cls-15{fill:var(--chest-iris-2)}.pv-chest-svg .cls-16,.pv-chest-svg .cls-25,.pv-chest-svg .cls-30,.pv-chest-svg .cls-32,.pv-chest-svg .cls-33,.pv-chest-svg .cls-34{fill:none;stroke-miterlimit:10}.pv-chest-svg .cls-16{stroke:var(--chest-gold);stroke-width:3.46px}.pv-chest-svg .cls-16,.pv-chest-svg .cls-32,.pv-chest-svg .cls-33,.pv-chest-svg .cls-34{stroke-linecap:round}.pv-chest-svg .cls-17{fill:#a2d7e5}.pv-chest-svg .cls-19{fill:var(--chest-wood)}.pv-chest-svg .cls-20{fill:var(--chest-wire-a)}.pv-chest-svg .cls-21{fill:var(--chest-wire-b)}.pv-chest-svg .cls-22{opacity:.35}.pv-chest-svg .cls-23{fill:var(--chest-gold)}.pv-chest-svg .cls-24{fill:var(--chest-gold-2)}.pv-chest-svg .cls-25{stroke:var(--chest-ink);stroke-width:1.83px}.pv-chest-svg .cls-26{opacity:.86}.pv-chest-svg .cls-27{fill:var(--chest-gold)}.pv-chest-svg .cls-28{opacity:.65}.pv-chest-svg .cls-29{fill:var(--chest-lock)}.pv-chest-svg .cls-30{stroke:var(--chest-ink);stroke-width:5.19px}.pv-chest-svg .cls-31{fill:var(--chest-finger)}.pv-chest-svg .cls-32{stroke:#80cad5;stroke-width:3.69px}.pv-chest-svg .cls-33{stroke:#d1eaf6;stroke-width:.87px}.pv-chest-svg .cls-34{stroke:var(--chest-wire-b);stroke-width:5.19px}

.pv-chest-svg #sparkles,
.pv-chest-svg #lock,
.pv-chest-svg #top,
.pv-chest-svg #bottom,
.pv-chest-svg #wires_bottom {
  transform-origin:250px 200px;
}

.pv-chest-svg #lock { transform-origin:200px 200px; }
.pv-chest-svg #left_handle { transform-origin:10% 50%; }
.pv-chest-svg #right_handle { transform-origin:80% 50%; }
.pv-chest-svg #lock_line { opacity:0; }
.pv-chest-svg #sparkle_mid { opacity:0; animation:pvChestSpark 2s infinite alternate; }
.pv-chest-svg #sparkle_left { opacity:0; animation:pvChestSpark 2s infinite alternate .75s; }
.pv-chest-svg #sparkle_right { opacity:0; animation:pvChestSpark 2s infinite alternate 1.5s; }

.pv-chest-svg.is-shaking #lock,
.qd-stage.shake .pv-chest-svg #lock { animation:pvChestShakeTop 1.05s ease; }
.pv-chest-svg.is-shaking #top,
.pv-chest-svg.is-shaking #sparkles,
.qd-stage.shake .pv-chest-svg #top,
.qd-stage.shake .pv-chest-svg #sparkles { animation:pvChestShakeTop 1.05s ease; }
.pv-chest-svg.is-shaking #bottom,
.pv-chest-svg.is-shaking #wires_bottom,
.qd-stage.shake .pv-chest-svg #bottom,
.qd-stage.shake .pv-chest-svg #wires_bottom { animation:pvChestShakeBottom 1.05s ease; }
.pv-chest-svg.is-shaking #left_handle,
.pv-chest-svg.is-shaking #right_handle,
.qd-stage.shake .pv-chest-svg #left_handle,
.qd-stage.shake .pv-chest-svg #right_handle { animation:pvChestHandle .95s ease; }

.pv-chest-svg.is-upgrading,
.qd-stage.pulse .pv-chest-svg { animation:pvChestUpgrade .62s var(--pv-ease); }

.pv-chest-svg.is-opening #lock,
.qd-stage.open .pv-chest-svg #lock {
  animation:pvChestOpenLock 1.05s ease forwards .25s;
}

.pv-chest-svg.is-opening #top,
.qd-stage.open .pv-chest-svg #top {
  animation:pvChestOpenTop 1.35s cubic-bezier(.16,1,.3,1) forwards .95s;
}

.pv-chest-svg.is-opening #sparkles,
.pv-chest-svg.is-opening #wires_bottom,
.qd-stage.open .pv-chest-svg #sparkles,
.qd-stage.open .pv-chest-svg #wires_bottom {
  opacity:0;
  transition:opacity .45s ease 1.2s;
}

.pv-chest-svg.is-opening #lock_line,
.qd-stage.open .pv-chest-svg #lock_line {
  opacity:1;
  animation:pvChestScan .95s linear forwards;
}

.pv-shop-chest .pv-chest-svg {
  width:84px;
  height:76px;
}

.pv-feature-chest .pv-chest-svg {
  width:82px;
  height:76px;
}

@keyframes pvChestSpark { from{opacity:0;transform:scale(.86)} to{opacity:1;transform:scale(1)} }
@keyframes pvChestShakeBottom { 0%,70%,100%{transform:translateY(0) rotate(0)} 15%{transform:translateY(-5px) rotate(-2deg)} 28%{transform:translateY(-10px) rotate(.6deg)} 42%{transform:translateY(-3px) rotate(1.6deg)} }
@keyframes pvChestShakeTop { 0%,70%,100%{transform:translateY(0) rotate(0)} 15%{transform:translateY(-10px) rotate(2deg)} 28%{transform:translateY(-21px) rotate(-2deg)} 42%{transform:translateY(-14px) rotate(1.8deg)} }
@keyframes pvChestHandle { 0%,100%{transform:rotate(0)} 20%{transform:rotate(-6deg)} 42%{transform:rotate(6deg)} 62%{transform:rotate(-3deg)} }
@keyframes pvChestUpgrade { 0%{transform:scale(1)} 36%{transform:scale(1.08) translateY(-8px);filter:drop-shadow(0 26px 36px var(--qd-glow)) saturate(1.25)} 100%{transform:scale(1)} }
@keyframes pvChestOpenLock { 0%{transform:rotate(0) scale(1);opacity:1} 34%{transform:rotate(-9deg) scale(1.05);opacity:1} 100%{transform:translate(-18px,44px) rotate(-22deg) scale(.74);opacity:0} }
@keyframes pvChestOpenTop { 0%{transform:translateY(0) rotate(0);opacity:1} 34%{transform:translateY(-8%) rotate(-1.6deg);opacity:1} 100%{transform:translateY(-28%) rotate(-3deg);opacity:0} }
@keyframes pvChestScan { 0%{transform:translateY(0);opacity:0} 20%{opacity:1} 58%{transform:translateY(16.5%);opacity:1} 100%{transform:translateY(16.5%);opacity:0} }

.qd-pop {
  overflow:hidden !important;
  padding:clamp(14px,3vw,28px) !important;
  background:rgba(8,14,25,.52) !important;
  backdrop-filter:blur(10px) saturate(1.06) !important;
  -webkit-backdrop-filter:blur(10px) saturate(1.06) !important;
}

[data-theme="dark"] .qd-pop {
  background:rgba(3,8,18,.66) !important;
}

.qd-card {
  width:min(640px,calc(100vw - 28px)) !important;
  max-height:none !important;
  overflow:hidden !important;
  padding:clamp(22px,4vw,34px) !important;
  border-radius:34px !important;
  color:var(--pv-ink-950) !important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(244,250,255,.94)),
    radial-gradient(320px 160px at 50% 2%,rgba(255,255,255,.72),transparent 70%) !important;
  border:1px solid rgba(10,21,37,.10) !important;
  box-shadow:0 30px 90px rgba(10,21,37,.22),inset 0 1px 0 rgba(255,255,255,.78) !important;
}

[data-theme="dark"] .qd-card {
  color:#eaf4ff !important;
  background:
    linear-gradient(180deg,rgba(15,30,50,.94),rgba(7,17,31,.92)),
    radial-gradient(320px 160px at 50% 2%,rgba(255,255,255,.10),transparent 70%) !important;
  border-color:rgba(203,229,255,.15) !important;
  box-shadow:0 34px 100px rgba(0,0,0,.50),inset 0 1px 0 rgba(255,255,255,.10) !important;
}

.qd-card:before {
  border-radius:34px !important;
  opacity:.85 !important;
}

.qd-card-title {
  margin:0 0 8px !important;
  color:#0877ad !important;
  font-size:14px !important;
  letter-spacing:.08em !important;
}

[data-theme="dark"] .qd-card-title {
  color:#82dcff !important;
}

.qd-close {
  color:#0a1525 !important;
  background:rgba(255,255,255,.74) !important;
  border-color:rgba(10,21,37,.10) !important;
}

[data-theme="dark"] .qd-close {
  color:#eaf4ff !important;
  background:rgba(255,255,255,.08) !important;
  border-color:rgba(203,229,255,.14) !important;
}

.qd-stage {
  height:clamp(250px,42vh,340px) !important;
  margin:0 !important;
  border-radius:30px !important;
  background:
    radial-gradient(ellipse at 50% 78%,rgba(10,21,37,.10),transparent 42%),
    linear-gradient(180deg,rgba(255,255,255,.66),rgba(237,249,255,.42)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.80), inset 0 -1px 0 rgba(10,21,37,.06) !important;
}

[data-theme="dark"] .qd-stage {
  background:
    radial-gradient(ellipse at 50% 78%,rgba(0,0,0,.32),transparent 42%),
    linear-gradient(180deg,rgba(255,255,255,.08),rgba(36,176,233,.04)) !important;
}

.qd-stage:before {
  top:74% !important;
  height:48px !important;
  opacity:.64 !important;
  background:radial-gradient(ellipse,rgba(10,21,37,.22),transparent 72%) !important;
  filter:blur(1px) !important;
}

.qd-aura,
.qd-stage.lit .qd-aura,
.qd-stage.open .qd-aura {
  display:none !important;
  opacity:0 !important;
  animation:none !important;
}

.qd-chest {
  width:min(245px,52vw) !important;
  height:min(245px,52vw) !important;
  filter:drop-shadow(0 28px 38px rgba(10,21,37,.18)) drop-shadow(0 0 22px var(--qd-glow)) !important;
}

.qd-hint {
  margin:14px 0 0 !important;
  color:#496375 !important;
  font-size:14px !important;
  letter-spacing:.04em !important;
}

[data-theme="dark"] .qd-hint {
  color:#b8cbd9 !important;
}

.qd-taps {
  margin:15px 0 4px !important;
}

.qd-tap-dot {
  width:13px !important;
  height:13px !important;
  background:rgba(36,176,233,.18) !important;
  box-shadow:inset 0 0 0 1px rgba(36,176,233,.20) !important;
}

.qd-tap-dot.done {
  background:rgba(101,210,107,.36) !important;
}

.qd-tap-dot.up {
  background:var(--qd-accent) !important;
  box-shadow:0 0 18px var(--qd-accent) !important;
}

.qd-result.show {
  margin-top:14px !important;
  animation:qdRewardPop .42s cubic-bezier(.34,1.56,.64,1) both !important;
}

@keyframes qdRewardPop {
  0% { opacity:0; transform:translateY(20px) scale(.88); }
  72% { opacity:1; transform:translateY(-2px) scale(1.025); }
  100% { opacity:1; transform:none; }
}

.qd-rarity {
  box-shadow:0 10px 24px -8px var(--qd-glow) !important;
}

.qd-reward {
  max-width:440px !important;
  border-radius:24px !important;
  background:rgba(255,255,255,.78) !important;
  border-color:rgba(10,21,37,.10) !important;
}

[data-theme="dark"] .qd-reward {
  background:rgba(255,255,255,.07) !important;
  border-color:rgba(203,229,255,.13) !important;
}

.qd-reward b {
  color:var(--pv-ink-950) !important;
}

.qd-reward span {
  color:#5e7485 !important;
}

[data-theme="dark"] .qd-reward b {
  color:#fff !important;
}

[data-theme="dark"] .qd-reward span {
  color:#b8cbd9 !important;
}

.qd-reward-ico {
  width:64px !important;
  height:64px !important;
  border-radius:20px !important;
  background-color:#fff !important;
}

@media (max-width:560px) {
  .qd-card { border-radius:28px !important; }
  .qd-stage { height:clamp(230px,40vh,300px) !important; }
  .qd-reward { align-items:center !important; padding:14px !important; }
}
