/* ================= 3D BUTTON SYSTEM ================= */
  .btn3d{
    --depth:6px; --shadow-c:var(--blue-800);
    position:relative;border:none;background:none;padding:0;cursor:pointer;
    font-family:var(--font-display);-webkit-tap-highlight-color:transparent;
  }
  .btn3d .face{
    position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;
    white-space:nowrap;padding:14px 24px;border-radius:16px;font-weight:600;font-size:.92rem;color:#fff;
    background:linear-gradient(135deg,var(--blue-500),var(--blue-600));
    transform:translateY(calc(var(--depth) * -1));
    box-shadow:0 var(--depth) 0 var(--shadow-c), 0 calc(var(--depth) + 14px) 26px -10px rgba(2,8,25,.65);
    transition:transform .12s cubic-bezier(.3,.7,.4,1), box-shadow .12s cubic-bezier(.3,.7,.4,1), filter .15s ease;
  }
  .btn3d:hover .face{filter:brightness(1.07);}
  .btn3d:active .face{transform:translateY(calc((var(--depth) - 3px) * -1));box-shadow:0 3px 0 var(--shadow-c), 0 8px 16px -8px rgba(2,8,25,.5);}
  .btn3d:disabled{cursor:not-allowed;}
  .btn3d:disabled .face{opacity:.42;filter:none;}
  .btn3d.amber{--shadow-c:var(--amber-600);}
  .btn3d.amber .face{background:linear-gradient(135deg,var(--amber-300),var(--amber-400));color:#241800;}
  .btn3d.ghost{--shadow-c:rgba(0,0,0,.55);}
  .btn3d.ghost .face{background:var(--glass-fill-strong);color:var(--ink-0);border:1px solid var(--glass-border);}
  .btn3d.sm{--depth:4px;}
  .btn3d.sm .face{padding:9px 14px;border-radius:12px;font-size:.8rem;}
  .btn3d.xs{--depth:3px;}
  .btn3d.xs .face{padding:7px 11px;border-radius:10px;font-size:.75rem;}
  .btn3d.block{display:block;width:100%;}
  .btn3d.block .face{width:100%;}

  .shake{animation:shake .32s ease;}
  @keyframes shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-6px);}75%{transform:translateX(6px);}}