/* Glass + subtle 3D */

.ff-card{
  border-radius:var(--ff-radius);
  border:1px solid var(--ff-border);
  background:var(--ff-glass);
  box-shadow:var(--ff-shadow2);
  backdrop-filter: blur(var(--ff-blur));
  -webkit-backdrop-filter: blur(var(--ff-blur));
}
.ff-card--glass{background: linear-gradient(180deg, rgba(255,255,255,.085), rgba(255,255,255,.05));}

/* subtle tilt */
[data-tilt]{transform-style: preserve-3d;}
.ff-tilt{transition: transform 180ms ease, box-shadow 180ms ease}
.ff-tilt:hover{box-shadow: var(--ff-shadow);}

.ff-badge{
  position:absolute;
  top:10px; left:10px;
  font-size:12px;
  padding:6px 8px;
  border-radius:999px;
  border:1px solid var(--ff-border);
  background: rgba(0,0,0,.35);
  backdrop-filter: blur(var(--ff-blur));
}
.ff-badge--featured{border-color: rgba(255,79,216,.35); color: var(--ff-accent)}
.ff-badge--top{border-color: rgba(120,168,255,.35); color: rgba(190,220,255,.95)}


.ff-iconbtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid var(--ff-border);
  background: rgba(255,255,255,.04);
  color: var(--ff-txt);
  cursor:pointer;
}
.ff-iconbtn:hover{filter:brightness(1.08)}

.ff-spinner{
  width:22px; height:22px;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.18);
  border-top-color: rgba(255,255,255,.65);
  animation: ffspin .8s linear infinite;
  margin: 14px auto;
}
@keyframes ffspin{to{transform:rotate(360deg)}}
