.stamp { width: 120px; height: 124px; position: relative; filter: drop-shadow(0 8px 6px rgba(0,0,0,.3)); }
.stamp-knob { position: absolute; left: 50%; top: 0; width: 56px; height: 46px; margin-left: -28px; border-radius: 50% 50% 40% 40%;
  background: radial-gradient(circle at 35% 30%, #8a5a3a, #4a2c18); box-shadow: inset 0 -4px 0 rgba(0,0,0,.3); }
.stamp-neck { position: absolute; left: 50%; top: 40px; width: 22px; height: 38px; margin-left: -11px; background: linear-gradient(90deg, #3b3f58, #6b7194, #3b3f58); }
.stamp-base { position: absolute; left: 0; right: 0; bottom: 0; height: 48px; border-radius: 8px; display: flex; align-items: flex-end; justify-content: center;
  box-shadow: inset 0 4px 0 rgba(255,255,255,.3), inset 0 -10px 0 rgba(0,0,0,.25); }
.stamp-base span { font-size: 11px; font-weight: 900; letter-spacing: .12em; color: rgba(255,255,255,.9); margin-bottom: 14px; }
.stamp.approved .stamp-base { background: linear-gradient(#35c776, #1a8f4f); }
.stamp.rejected .stamp-base { background: linear-gradient(#f2625a, #b9302a); }

#inspect.stamping, #inspect.stamping * { cursor: none !important; }
.stamp-cursor { position: fixed; left: 0; top: 0; z-index: 10; pointer-events: none; will-change: transform; }
.stamp-holder { position: absolute; left: 0; top: 0; transform-origin: 50% 100%; }
.stamp-holder .stamp { filter: drop-shadow(0 4px 2px rgba(0,0,0,.25)); }
.stamp-shadow { position: absolute; left: -54px; top: -14px; width: 108px; height: 28px; border-radius: 50%; background: rgba(0,0,0,.28); filter: blur(5px);
  transform: translate(14px, 10px) scale(1.1); transition: transform .12s, opacity .12s; }
.stamp-shadow.hit { transform: translate(0, 0) scale(.9); opacity: .6; }
