

.gw-btn, .gw-chip, .gw-panel, .gw-num, .gw-sectitle { box-sizing:border-box; }


.gw-btn {
  --b:var(--gw-accent-rgb);
  appearance:none; font-family:var(--gw-font-ui); font-size:var(--gw-fs-label); font-weight:600;
  color:var(--gw-text); cursor:pointer; border-radius:var(--gw-r-pill);
  padding:.55rem 1.15rem; display:inline-flex; align-items:center; gap:.5rem;
  background:rgba(var(--b),.12); border:1px solid rgba(var(--b),.5);
  box-shadow:0 1px 0 rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.05);
  transition: transform var(--gw-dur-press) var(--gw-ease-spring),
              background var(--gw-dur-hover) var(--gw-ease-out),
              box-shadow var(--gw-dur-hover) var(--gw-ease-out),
              border-color var(--gw-dur-hover) var(--gw-ease-out);
}
.gw-btn:hover {
  background:rgba(var(--b),.2); border-color:rgba(var(--b),.85);
  transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(var(--b),.22), inset 0 1px 0 rgba(255,255,255,.06);
}
.gw-btn:active {
  transform:translateY(2px) scale(.98);
  box-shadow:inset 0 3px 7px rgba(0,0,0,.42);
  transition-duration:var(--gw-dur-press);
}
.gw-btn:focus-visible { outline:2px solid rgba(var(--b),.9); outline-offset:2px; }
.gw-btn:disabled {
  opacity:.5; cursor:default; transform:none; box-shadow:none;
  background:transparent; border-color:var(--gw-line); color:var(--gw-muted);
}

.gw-btn--primary {
  background:linear-gradient(180deg, rgba(var(--b),.34), rgba(var(--b),.2));
  border-color:rgba(var(--b),.9); color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.4);
}
.gw-btn--primary:hover { box-shadow:0 5px 18px rgba(var(--b),.4), inset 0 1px 0 rgba(255,255,255,.12); }
.gw-btn--ghost { background:transparent; border-color:var(--gw-line); color:var(--gw-muted); }
.gw-btn--ghost:hover { color:var(--gw-text); border-color:rgba(var(--b),.5); background:rgba(var(--b),.06); }
.gw-btn--danger { --b:209,104,90; color:#f2c9c0; }


.wfree-go, .bones-intro-btn, .bones-next, .bi-accept, .bones-challenge,
.rd-act, .rd-close, .hc-done, .gw-ghostbtn {
  background:rgba(227,164,78,.12) !important;
  border:1px solid rgba(227,164,78,.5) !important;
  color:#efe4cd !important; text-shadow:none !important;
  box-shadow:0 1px 0 rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.05) !important;
  border-radius:10px !important; font-weight:600 !important;
  transition:transform .12s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease !important;
}
.wfree-go:hover, .bones-intro-btn:hover, .bones-next:hover, .bi-accept:hover, .bones-challenge:hover,
.rd-act:hover, .rd-close:hover, .hc-done:hover, .gw-ghostbtn:hover {
  background:rgba(227,164,78,.2) !important; border-color:rgba(227,164,78,.85) !important;
  color:#fff !important; transform:translateY(-1px) !important; filter:none !important;
  box-shadow:0 4px 14px rgba(227,164,78,.24), inset 0 1px 0 rgba(255,255,255,.06) !important;
}
.wfree-go:active, .bones-intro-btn:active, .bones-next:active, .bi-accept:active, .bones-challenge:active,
.rd-act:active, .rd-close:active, .hc-done:active, .gw-ghostbtn:active {
  transform:translateY(1px) scale(.98) !important;
  box-shadow:inset 0 3px 7px rgba(0,0,0,.4) !important;
}
.bones-challenge::before { display:none !important; }   


.gw-btn.is-avail { animation:gw-avail 2.1s ease-in-out infinite; }
@keyframes gw-avail {
  0%,100% { box-shadow:0 0 0 rgba(var(--gw-glow),0), inset 0 1px 0 rgba(255,255,255,.05); }
  50%     { box-shadow:0 0 16px rgba(var(--gw-glow),.5), 0 0 4px rgba(var(--gw-glow),.4); }
}


.gw-chip {
  font-size:var(--gw-fs-caption); color:var(--gw-muted);
  border:1px solid var(--gw-line); border-radius:var(--gw-r-pill);
  padding:.18rem .6rem; display:inline-flex; gap:.35rem; align-items:center;
}
.gw-chip--accent { color:var(--gw-accent); border-color:rgba(var(--gw-glow),.45); }


.gw-panel {
  background:var(--gw-card); border:1px solid var(--gw-line);
  border-radius:var(--gw-r-lg); padding:var(--gw-sp-5);
}
.gw-sectitle {
  font-size:var(--gw-fs-label); text-transform:uppercase; letter-spacing:1.1px;
  color:var(--gw-accent); font-weight:700;
  display:flex; align-items:center; gap:var(--gw-sp-2);
}
.gw-sectitle::after { content:''; flex:1; height:1px; background:linear-gradient(90deg,rgba(var(--gw-glow),.4),transparent); }


.gw-lore { font-family:var(--gw-font-lore); font-style:italic; color:#cdbfa8; line-height:1.6; }


.gw-num { font-variant-numeric:tabular-nums; display:inline-block; }
.gw-num.gw-pop { animation:gw-pop var(--gw-dur-reward) var(--gw-ease-spring); }
@keyframes gw-pop { 0%{transform:scale(1)} 35%{transform:scale(1.22)} 100%{transform:scale(1)} }
.gw-glow { animation:gw-glowpulse 700ms var(--gw-ease-out); }
@keyframes gw-glowpulse {
  0%{box-shadow:0 0 0 rgba(var(--gw-glow),0)}
  30%{box-shadow:0 0 26px rgba(var(--gw-glow),.55)}
  100%{box-shadow:0 0 0 rgba(var(--gw-glow),0)}
}
.gw-spark { position:absolute; width:5px; height:5px; border-radius:50%; background:rgb(var(--gw-glow)); pointer-events:none; z-index:2; }


@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}
